@mux/mux-video 0.20.1 → 0.20.2

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/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var ze=Object.defineProperty;var oi=Object.getOwnPropertyDescriptor;var ai=Object.getOwnPropertyNames;var di=Object.getPrototypeOf,ci=Object.prototype.hasOwnProperty;var ui=Reflect.get;var hi=(t,i,e)=>i in t?ze(t,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[i]=e;var li=(t,i)=>{for(var e in i)ze(t,e,{get:i[e],enumerable:!0})},fi=(t,i,e,s)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of ai(i))!ci.call(t,n)&&n!==e&&ze(t,n,{get:()=>i[n],enumerable:!(s=oi(i,n))||s.enumerable});return t};var mi=t=>fi(ze({},"__esModule",{value:!0}),t);var b=(t,i,e)=>(hi(t,typeof i!="symbol"?i+"":i,e),e),pt=(t,i,e)=>{if(!i.has(t))throw TypeError("Cannot "+e)};var r=(t,i,e)=>(pt(t,i,"read from private field"),e?e.call(t):i.get(t)),u=(t,i,e)=>{if(i.has(t))throw TypeError("Cannot add the same private member more than once");i instanceof WeakSet?i.add(t):i.set(t,e)},h=(t,i,e,s)=>(pt(t,i,"write to private field"),s?s.call(t,e):i.set(t,e),e);var R=(t,i,e)=>(pt(t,i,"access private method"),e),Xe=(t,i,e)=>ui(di(t),e,i);var Ii={};li(Ii,{Attributes:()=>c,MediaError:()=>f.MediaError,VideoEvents:()=>Qe,default:()=>Pi});module.exports=mi(Ii);var ge=class{addEventListener(){}removeEventListener(){}dispatchEvent(i){return!0}};if(typeof DocumentFragment=="undefined"){class t extends ge{}globalThis.DocumentFragment=t}var Me=class extends ge{},gt=class extends ge{},pi={get(t){},define(t,i,e){},upgrade(t){},whenDefined(t){return Promise.resolve(Me)}},we,Et=class{constructor(i,e={}){u(this,we,void 0);h(this,we,e==null?void 0:e.detail)}get detail(){return r(this,we)}initCustomEvent(){}};we=new WeakMap;function gi(t,i){return new Me}var Ot={document:{createElement:gi},DocumentFragment,customElements:pi,CustomEvent:Et,EventTarget:ge,HTMLElement:Me,HTMLVideoElement:gt},_t=typeof window=="undefined"||typeof globalThis.customElements=="undefined",Je=_t?Ot:globalThis,wi=_t?Ot.document:globalThis.document;var f=require("@mux/playback-core");var Ei=()=>{try{return"0.20.1"}catch{}return"UNKNOWN"},vi=Ei(),Pt=()=>vi;var Qe=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"];function bi(t){return`
1
+ "use strict";var ze=Object.defineProperty;var oi=Object.getOwnPropertyDescriptor;var ai=Object.getOwnPropertyNames;var di=Object.getPrototypeOf,ci=Object.prototype.hasOwnProperty;var ui=Reflect.get;var hi=(t,i,e)=>i in t?ze(t,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[i]=e;var li=(t,i)=>{for(var e in i)ze(t,e,{get:i[e],enumerable:!0})},fi=(t,i,e,s)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of ai(i))!ci.call(t,n)&&n!==e&&ze(t,n,{get:()=>i[n],enumerable:!(s=oi(i,n))||s.enumerable});return t};var mi=t=>fi(ze({},"__esModule",{value:!0}),t);var b=(t,i,e)=>(hi(t,typeof i!="symbol"?i+"":i,e),e),pt=(t,i,e)=>{if(!i.has(t))throw TypeError("Cannot "+e)};var r=(t,i,e)=>(pt(t,i,"read from private field"),e?e.call(t):i.get(t)),u=(t,i,e)=>{if(i.has(t))throw TypeError("Cannot add the same private member more than once");i instanceof WeakSet?i.add(t):i.set(t,e)},h=(t,i,e,s)=>(pt(t,i,"write to private field"),s?s.call(t,e):i.set(t,e),e);var R=(t,i,e)=>(pt(t,i,"access private method"),e),Xe=(t,i,e)=>ui(di(t),e,i);var Ii={};li(Ii,{Attributes:()=>c,MediaError:()=>f.MediaError,VideoEvents:()=>Qe,default:()=>Pi});module.exports=mi(Ii);var ge=class{addEventListener(){}removeEventListener(){}dispatchEvent(i){return!0}};if(typeof DocumentFragment=="undefined"){class t extends ge{}globalThis.DocumentFragment=t}var Me=class extends ge{},gt=class extends ge{},pi={get(t){},define(t,i,e){},upgrade(t){},whenDefined(t){return Promise.resolve(Me)}},we,Et=class{constructor(i,e={}){u(this,we,void 0);h(this,we,e==null?void 0:e.detail)}get detail(){return r(this,we)}initCustomEvent(){}};we=new WeakMap;function gi(t,i){return new Me}var Ot={document:{createElement:gi},DocumentFragment,customElements:pi,CustomEvent:Et,EventTarget:ge,HTMLElement:Me,HTMLVideoElement:gt},_t=typeof window=="undefined"||typeof globalThis.customElements=="undefined",Je=_t?Ot:globalThis,wi=_t?Ot.document:globalThis.document;var f=require("@mux/playback-core");var Ei=()=>{try{return"0.20.2"}catch{}return"UNKNOWN"},vi=Ei(),Pt=()=>vi;var Qe=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"];function bi(t){return`
2
2
  <style>
3
3
  :host {
4
4
  display: inline-flex;
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- var oi=Object.defineProperty;var ai=Object.getPrototypeOf;var di=Reflect.get;var ci=(t,i,e)=>i in t?oi(t,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[i]=e;var v=(t,i,e)=>(ci(t,typeof i!="symbol"?i+"":i,e),e),ft=(t,i,e)=>{if(!i.has(t))throw TypeError("Cannot "+e)};var r=(t,i,e)=>(ft(t,i,"read from private field"),e?e.call(t):i.get(t)),u=(t,i,e)=>{if(i.has(t))throw TypeError("Cannot add the same private member more than once");i instanceof WeakSet?i.add(t):i.set(t,e)},h=(t,i,e,s)=>(ft(t,i,"write to private field"),s?s.call(t,e):i.set(t,e),e);var k=(t,i,e)=>(ft(t,i,"access private method"),e),$e=(t,i,e)=>di(ai(t),e,i);var pe=class{addEventListener(){}removeEventListener(){}dispatchEvent(i){return!0}};if(typeof DocumentFragment=="undefined"){class t extends pe{}globalThis.DocumentFragment=t}var Le=class extends pe{},mt=class extends pe{},ui={get(t){},define(t,i,e){},upgrade(t){},whenDefined(t){return Promise.resolve(Le)}},Me,pt=class{constructor(i,e={}){u(this,Me,void 0);h(this,Me,e==null?void 0:e.detail)}get detail(){return r(this,Me)}initCustomEvent(){}};Me=new WeakMap;function hi(t,i){return new Le}var Ct={document:{createElement:hi},DocumentFragment,customElements:ui,CustomEvent:pt,EventTarget:pe,HTMLElement:Le,HTMLVideoElement:mt},Ot=typeof window=="undefined"||typeof globalThis.customElements=="undefined",ze=Ot?Ct:globalThis,Ki=Ot?Ct.document:globalThis.document;import{initialize as yi,teardown as Ai,generatePlayerInitTime as ki,PlaybackTypes as ht,toMuxVideoURL as Ri,MediaError as Es,getError as Si,CmcdTypeValues as ni,addCuePoints as Ci,getCuePoints as Oi,getActiveCuePoint as _i,addChapters as Pi,getActiveChapter as Ii,getStartDate as Li,getCurrentPdt as Mi,getStreamType as wi,getTargetLiveWindow as xi,getLiveEdgeStart as Ni,getSeekable as Di,getEnded as Vi,getChapters as Gi,toPlaybackIdFromSrc as Fi}from"@mux/playback-core";var li=()=>{try{return"0.20.1"}catch{}return"UNKNOWN"},fi=li(),_t=()=>fi;var Et=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"];function mi(t){return`
1
+ var oi=Object.defineProperty;var ai=Object.getPrototypeOf;var di=Reflect.get;var ci=(t,i,e)=>i in t?oi(t,i,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[i]=e;var v=(t,i,e)=>(ci(t,typeof i!="symbol"?i+"":i,e),e),ft=(t,i,e)=>{if(!i.has(t))throw TypeError("Cannot "+e)};var r=(t,i,e)=>(ft(t,i,"read from private field"),e?e.call(t):i.get(t)),u=(t,i,e)=>{if(i.has(t))throw TypeError("Cannot add the same private member more than once");i instanceof WeakSet?i.add(t):i.set(t,e)},h=(t,i,e,s)=>(ft(t,i,"write to private field"),s?s.call(t,e):i.set(t,e),e);var k=(t,i,e)=>(ft(t,i,"access private method"),e),$e=(t,i,e)=>di(ai(t),e,i);var pe=class{addEventListener(){}removeEventListener(){}dispatchEvent(i){return!0}};if(typeof DocumentFragment=="undefined"){class t extends pe{}globalThis.DocumentFragment=t}var Le=class extends pe{},mt=class extends pe{},ui={get(t){},define(t,i,e){},upgrade(t){},whenDefined(t){return Promise.resolve(Le)}},Me,pt=class{constructor(i,e={}){u(this,Me,void 0);h(this,Me,e==null?void 0:e.detail)}get detail(){return r(this,Me)}initCustomEvent(){}};Me=new WeakMap;function hi(t,i){return new Le}var Ct={document:{createElement:hi},DocumentFragment,customElements:ui,CustomEvent:pt,EventTarget:pe,HTMLElement:Le,HTMLVideoElement:mt},Ot=typeof window=="undefined"||typeof globalThis.customElements=="undefined",ze=Ot?Ct:globalThis,Ki=Ot?Ct.document:globalThis.document;import{initialize as yi,teardown as Ai,generatePlayerInitTime as ki,PlaybackTypes as ht,toMuxVideoURL as Ri,MediaError as Es,getError as Si,CmcdTypeValues as ni,addCuePoints as Ci,getCuePoints as Oi,getActiveCuePoint as _i,addChapters as Pi,getActiveChapter as Ii,getStartDate as Li,getCurrentPdt as Mi,getStreamType as wi,getTargetLiveWindow as xi,getLiveEdgeStart as Ni,getSeekable as Di,getEnded as Vi,getChapters as Gi,toPlaybackIdFromSrc as Fi}from"@mux/playback-core";var li=()=>{try{return"0.20.2"}catch{}return"UNKNOWN"},fi=li(),_t=()=>fi;var Et=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"];function mi(t){return`
2
2
  <style>
3
3
  :host {
4
4
  display: inline-flex;
package/dist/mux-video.js CHANGED
@@ -39,7 +39,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
39
39
  `:(n=i.childNodes)!=null&&n.length?wc(i,e):e?t+i.textContent.trim().replace(/\s+/g," "):t+i.textContent},"")}function Mg(s,e,t){let i="http://www.w3.org/ns/ttml#styling",r=null,n=["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"],a=s!=null&&s.hasAttribute("style")?s.getAttribute("style"):null;return a&&t.hasOwnProperty(a)&&(r=t[a]),n.reduce((o,l)=>{let c=pn(e,i,l)||pn(s,i,l)||pn(r,i,l);return c&&(o[l]=c),o},{})}function pn(s,e,t){return s&&s.hasAttributeNS(e,t)?s.getAttributeNS(e,t):null}function wl(s){return new Error(`Could not parse ttml timestamp ${s}`)}function vn(s,e){if(!s)return null;let t=Ac(s);return t===null&&(Ic.test(s)?t=Ng(s,e):Dc.test(s)&&(t=Fg(s,e))),t}function Ng(s,e){let t=Ic.exec(s),i=(t[4]|0)+(t[5]|0)/e.subFrameRate;return(t[1]|0)*3600+(t[2]|0)*60+(t[3]|0)+i/e.frameRate}function Fg(s,e){let t=Dc.exec(s),i=Number(t[1]);switch(t[2]){case"h":return i*3600;case"m":return i*60;case"ms":return i*1e3;case"f":return i/e.frameRate;case"t":return i/e.tickRate}return i}var ma=class{constructor(e){this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=Cl(),this.captionsProperties=void 0,this.hls=e,this.config=e.config,this.Cues=e.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},e.on(v.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(v.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(v.MANIFEST_LOADING,this.onManifestLoading,this),e.on(v.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(v.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(v.FRAG_LOADING,this.onFragLoading,this),e.on(v.FRAG_LOADED,this.onFragLoaded,this),e.on(v.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(v.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(v.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(v.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(v.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){let{hls:e}=this;e.off(v.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(v.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(v.MANIFEST_LOADING,this.onManifestLoading,this),e.off(v.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(v.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(v.FRAG_LOADING,this.onFragLoading,this),e.off(v.FRAG_LOADED,this.onFragLoaded,this),e.off(v.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(v.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(v.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(v.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(v.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=null,this.cea608Parser1=this.cea608Parser2=void 0}initCea608Parsers(){if(this.config.enableCEA708Captions&&(!this.cea608Parser1||!this.cea608Parser2)){let e=new ci(this,"textTrack1"),t=new ci(this,"textTrack2"),i=new ci(this,"textTrack3"),r=new ci(this,"textTrack4");this.cea608Parser1=new ur(1,e,t),this.cea608Parser2=new ur(3,i,r)}}addCues(e,t,i,r,n){let a=!1;for(let o=n.length;o--;){let l=n[o],c=Ug(l[0],l[1],t,i);if(c>=0&&(l[0]=Math.min(l[0],t),l[1]=Math.max(l[1],i),a=!0,c/(i-t)>.5))return}if(a||n.push([t,i]),this.config.renderTextTracksNatively){let o=this.captionsTracks[e];this.Cues.newCue(o,t,i,r)}else{let o=this.Cues.newCue(null,t,i,r);this.hls.trigger(v.CUES_PARSED,{type:"captions",cues:o,track:e})}}onInitPtsFound(e,{frag:t,id:i,initPTS:r,timescale:n}){let{unparsedVttFrags:a}=this;i==="main"&&(this.initPTS[t.cc]={baseTime:r,timescale:n}),a.length&&(this.unparsedVttFrags=[],a.forEach(o=>{this.onFragLoaded(v.FRAG_LOADED,o)}))}getExistingTrack(e,t){let{media:i}=this;if(i)for(let r=0;r<i.textTracks.length;r++){let n=i.textTracks[r];if(kl(n,{name:e,lang:t,attrs:{}}))return n}return null}createCaptionsTrack(e){this.config.renderTextTracksNatively?this.createNativeTrack(e):this.createNonNativeTrack(e)}createNativeTrack(e){if(this.captionsTracks[e])return;let{captionsProperties:t,captionsTracks:i,media:r}=this,{label:n,languageCode:a}=t[e],o=this.getExistingTrack(n,a);if(o)i[e]=o,li(i[e]),Zl(i[e],r);else{let l=this.createTextTrack("captions",n,a);l&&(l[e]=!0,i[e]=l)}}createNonNativeTrack(e){if(this.nonNativeCaptionsTracks[e])return;let t=this.captionsProperties[e];if(!t)return;let i=t.label,r={_id:e,label:i,kind:"captions",default:t.media?!!t.media.default:!1,closedCaptions:t.media};this.nonNativeCaptionsTracks[e]=r,this.hls.trigger(v.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[r]})}createTextTrack(e,t,i){let r=this.media;if(r)return r.addTextTrack(e,t,i)}onMediaAttaching(e,t){this.media=t.media,this._cleanTracks()}onMediaDetaching(){let{captionsTracks:e}=this;Object.keys(e).forEach(t=>{li(e[t]),delete e[t]}),this.nonNativeCaptionsTracks={}}onManifestLoading(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=Cl(),this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())}_cleanTracks(){let{media:e}=this;if(!e)return;let t=e.textTracks;if(t)for(let i=0;i<t.length;i++)li(t[i])}onSubtitleTracksUpdated(e,t){let i=t.subtitleTracks||[],r=i.some(n=>n.textCodec===mn);if(this.config.enableWebVTT||r&&this.config.enableIMSC1){if(bc(this.tracks,i)){this.tracks=i;return}if(this.textTracks=[],this.tracks=i,this.config.renderTextTracksNatively){let a=this.media,o=a?Ms(a.textTracks):null;if(this.tracks.forEach((l,c)=>{let u;if(o){let d=null;for(let h=0;h<o.length;h++)if(o[h]&&kl(o[h],l)){d=o[h],o[h]=null;break}d&&(u=d)}if(u)li(u);else{let d=kc(l);u=this.createTextTrack(d,l.name,l.lang),u&&(u.mode="disabled")}u&&this.textTracks.push(u)}),o!=null&&o.length){let l=o.filter(c=>c!==null).map(c=>c.label);l.length&&R.warn(`Media element contains unused subtitle tracks: ${l.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`)}}else if(this.tracks.length){let a=this.tracks.map(o=>({label:o.name,kind:o.type.toLowerCase(),default:o.default,subtitleTrack:o}));this.hls.trigger(v.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:a})}}}onManifestLoaded(e,t){this.config.enableCEA708Captions&&t.captions&&t.captions.forEach(i=>{let r=/(?:CC|SERVICE)([1-4])/.exec(i.instreamId);if(!r)return;let n=`textTrack${r[1]}`,a=this.captionsProperties[n];a&&(a.label=i.name,i.lang&&(a.languageCode=i.lang),a.media=i)})}closedCaptionsForLevel(e){let t=this.hls.levels[e.level];return t==null?void 0:t.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,t){if(this.enabled&&t.frag.type===j.MAIN){var i,r;let{cea608Parser1:n,cea608Parser2:a,lastSn:o}=this,{cc:l,sn:c}=t.frag,u=(i=(r=t.part)==null?void 0:r.index)!=null?i:-1;n&&a&&(c!==o+1||c===o&&u!==this.lastPartIndex+1||l!==this.lastCc)&&(n.reset(),a.reset()),this.lastCc=l,this.lastSn=c,this.lastPartIndex=u}}onFragLoaded(e,t){let{frag:i,payload:r}=t;if(i.type===j.SUBTITLE)if(r.byteLength){let n=i.decryptdata,a="stats"in t;if(n==null||!n.encrypted||a){let o=this.tracks[i.level],l=this.vttCCs;l[i.cc]||(l[i.cc]={start:i.start,prevCC:this.prevCC,new:!0},this.prevCC=i.cc),o&&o.textCodec===mn?this._parseIMSC1(i,r):this._parseVTTs(t)}}else this.hls.trigger(v.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:i,error:new Error("Empty subtitle payload")})}_parseIMSC1(e,t){let i=this.hls;Il(t,this.initPTS[e.cc],r=>{this._appendCues(r,e.level),i.trigger(v.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})},r=>{R.log(`Failed to parse IMSC1: ${r}`),i.trigger(v.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e,error:r})})}_parseVTTs(e){var t;let{frag:i,payload:r}=e,{initPTS:n,unparsedVttFrags:a}=this,o=n.length-1;if(!n[i.cc]&&o===-1){a.push(e);return}let l=this.hls,c=(t=i.initSegment)!=null&&t.data?Ge(i.initSegment.data,new Uint8Array(r)):r;Cg(c,this.initPTS[i.cc],this.vttCCs,i.cc,i.start,u=>{this._appendCues(u,i.level),l.trigger(v.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:i})},u=>{let d=u.message==="Missing initPTS for VTT MPEGTS";d?a.push(e):this._fallbackToIMSC1(i,r),R.log(`Failed to parse VTT cue: ${u}`),!(d&&o>i.cc)&&l.trigger(v.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:i,error:u})})}_fallbackToIMSC1(e,t){let i=this.tracks[e.level];i.textCodec||Il(t,this.initPTS[e.cc],()=>{i.textCodec=mn,this._parseIMSC1(e,t)},()=>{i.textCodec="wvtt"})}_appendCues(e,t){let i=this.hls;if(this.config.renderTextTracksNatively){let r=this.textTracks[t];if(!r||r.mode==="disabled")return;e.forEach(n=>ec(r,n))}else{let r=this.tracks[t];if(!r)return;let n=r.default?"default":"subtitles"+t;i.trigger(v.CUES_PARSED,{type:"subtitles",cues:e,track:n})}}onFragDecrypted(e,t){let{frag:i}=t;i.type===j.SUBTITLE&&this.onFragLoaded(v.FRAG_LOADED,t)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(e,t){this.initCea608Parsers();let{cea608Parser1:i,cea608Parser2:r}=this;if(!this.enabled||!i||!r)return;let{frag:n,samples:a}=t;if(!(n.type===j.MAIN&&this.closedCaptionsForLevel(n)==="NONE"))for(let o=0;o<a.length;o++){let l=a[o].bytes;if(l){let c=this.extractCea608Data(l);i.addData(a[o].pts,c[0]),r.addData(a[o].pts,c[1])}}}onBufferFlushing(e,{startOffset:t,endOffset:i,endOffsetSubtitles:r,type:n}){let{media:a}=this;if(!(!a||a.currentTime<i)){if(!n||n==="video"){let{captionsTracks:o}=this;Object.keys(o).forEach(l=>An(o[l],t,i))}if(this.config.renderTextTracksNatively&&t===0&&r!==void 0){let{textTracks:o}=this;Object.keys(o).forEach(l=>An(o[l],t,r))}}}extractCea608Data(e){let t=[[],[]],i=e[0]&31,r=2;for(let n=0;n<i;n++){let a=e[r++],o=127&e[r++],l=127&e[r++];if(o===0&&l===0)continue;if((4&a)!==0){let u=3&a;(u===0||u===1)&&(t[u].push(o),t[u].push(l))}}return t}};function kc(s){return s.characteristics&&/transcribes-spoken-dialog/gi.test(s.characteristics)&&/describes-music-and-sound/gi.test(s.characteristics)?"captions":"subtitles"}function kl(s,e){return!!s&&s.kind===kc(e)&&Zn(e,s)}function Ug(s,e,t,i){return Math.min(e,i)-Math.max(s,t)}function Cl(){return{ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}}}var ga=class s{constructor(e){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=e,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(e){this.streamController=e}destroy(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){let{hls:e}=this;e.on(v.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.on(v.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(v.MANIFEST_PARSED,this.onManifestParsed,this),e.on(v.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(v.BUFFER_CODECS,this.onBufferCodecs,this),e.on(v.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){let{hls:e}=this;e.off(v.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.off(v.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(v.MANIFEST_PARSED,this.onManifestParsed,this),e.off(v.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(v.BUFFER_CODECS,this.onBufferCodecs,this),e.off(v.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(e,t){let i=this.hls.levels[t.droppedLevel];this.isLevelAllowed(i)&&this.restrictedLevels.push({bitrate:i.bitrate,height:i.height,width:i.width})}onMediaAttaching(e,t){this.media=t.media instanceof HTMLVideoElement?t.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()}onManifestParsed(e,t){let i=this.hls;this.restrictedLevels=[],this.firstLevel=t.firstLevel,i.config.capLevelToPlayerSize&&t.video&&this.startCapping()}onLevelsUpdated(e,t){this.timer&&G(this.autoLevelCapping)&&this.detectPlayerSize()}onBufferCodecs(e,t){this.hls.config.capLevelToPlayerSize&&t.video&&this.startCapping()}onMediaDetaching(){this.stopCapping()}detectPlayerSize(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0){this.clientRect=null;return}let e=this.hls.levels;if(e.length){let t=this.hls,i=this.getMaxLevel(e.length-1);i!==this.autoLevelCapping&&R.log(`Setting autoLevelCapping to ${i}: ${e[i].height}p@${e[i].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`),t.autoLevelCapping=i,t.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping}}}getMaxLevel(e){let t=this.hls.levels;if(!t.length)return-1;let i=t.filter((r,n)=>this.isLevelAllowed(r)&&n<=e);return this.clientRect=null,s.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())}stopCapping(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)}getDimensions(){if(this.clientRect)return this.clientRect;let e=this.media,t={width:0,height:0};if(e){let i=e.getBoundingClientRect();t.width=i.width,t.height=i.height,!t.width&&!t.height&&(t.width=i.right-i.left||e.width||0,t.height=i.bottom-i.top||e.height||0)}return this.clientRect=t,t}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let e=1;if(!this.hls.config.ignoreDevicePixelRatio)try{e=self.devicePixelRatio}catch{}return e}isLevelAllowed(e){return!this.restrictedLevels.some(i=>e.bitrate===i.bitrate&&e.width===i.width&&e.height===i.height)}static getMaxLevelByMediaSize(e,t,i){if(!(e!=null&&e.length))return-1;let r=(o,l)=>l?o.width!==l.width||o.height!==l.height:!0,n=e.length-1,a=Math.max(t,i);for(let o=0;o<e.length;o+=1){let l=e[o];if((l.width>=a||l.height>=a)&&r(l,e[o+1])){n=o;break}}return n}},pa=class{constructor(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners()}setStreamController(e){this.streamController=e}registerListeners(){this.hls.on(v.MEDIA_ATTACHING,this.onMediaAttaching,this)}unregisterListeners(){this.hls.off(v.MEDIA_ATTACHING,this.onMediaAttaching,this)}destroy(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(e,t){let i=this.hls.config;if(i.capLevelOnFPSDrop){let r=t.media instanceof self.HTMLVideoElement?t.media:null;this.media=r,r&&typeof r.getVideoPlaybackQuality=="function"&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),i.fpsDroppedMonitoringPeriod)}}checkFPS(e,t,i){let r=performance.now();if(t){if(this.lastTime){let n=r-this.lastTime,a=i-this.lastDroppedFrames,o=t-this.lastDecodedFrames,l=1e3*a/n,c=this.hls;if(c.trigger(v.FPS_DROP,{currentDropped:a,currentDecoded:o,totalDroppedFrames:i}),l>0&&a>c.config.fpsDroppedMonitoringThreshold*o){let u=c.currentLevel;R.warn("drop FPS ratio greater than max allowed value for currentLevel: "+u),u>0&&(c.autoLevelCapping===-1||c.autoLevelCapping>=u)&&(u=u-1,c.trigger(v.FPS_DROP_LEVEL_CAPPING,{level:u,droppedLevel:c.currentLevel}),c.autoLevelCapping=u,this.streamController.nextLevelSwitch())}}this.lastTime=r,this.lastDroppedFrames=i,this.lastDecodedFrames=t}}checkFPSInterval(){let e=this.media;if(e)if(this.isVideoPlaybackQualityAvailable){let t=e.getVideoPlaybackQuality();this.checkFPS(e,t.totalVideoFrames,t.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)}},Ps="[eme]",dr=class s{constructor(e){this.hls=void 0,this.config=void 0,this.media=null,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.setMediaKeysQueue=s.CDMCleanupPromise?[s.CDMCleanupPromise]:[],this.onMediaEncrypted=this._onMediaEncrypted.bind(this),this.onWaitingForKey=this._onWaitingForKey.bind(this),this.debug=R.debug.bind(R,Ps),this.log=R.log.bind(R,Ps),this.warn=R.warn.bind(R,Ps),this.error=R.error.bind(R,Ps),this.hls=e,this.config=e.config,this.registerListeners()}destroy(){this.unregisterListeners(),this.onMediaDetached();let e=this.config;e.requestMediaKeySystemAccessFunc=null,e.licenseXhrSetup=e.licenseResponseCallback=void 0,e.drmSystems=e.drmSystemOptions={},this.hls=this.onMediaEncrypted=this.onWaitingForKey=this.keyIdToKeySessionPromise=null,this.config=null}registerListeners(){this.hls.on(v.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(v.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(v.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(v.MANIFEST_LOADED,this.onManifestLoaded,this)}unregisterListeners(){this.hls.off(v.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(v.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(v.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(v.MANIFEST_LOADED,this.onManifestLoaded,this)}getLicenseServerUrl(e){let{drmSystems:t,widevineLicenseUrl:i}=this.config,r=t[e];if(r)return r.licenseUrl;if(e===ce.WIDEVINE&&i)return i;throw new Error(`no license server URL configured for key-system "${e}"`)}getServerCertificateUrl(e){let{drmSystems:t}=this.config,i=t[e];if(i)return i.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${e}"]`)}attemptKeySystemAccess(e){let t=this.hls.levels,i=(a,o,l)=>!!a&&l.indexOf(a)===o,r=t.map(a=>a.audioCodec).filter(i),n=t.map(a=>a.videoCodec).filter(i);return r.length+n.length===0&&n.push("avc1.42e01e"),new Promise((a,o)=>{let l=c=>{let u=c.shift();this.getMediaKeysPromise(u,r,n).then(d=>a({keySystem:u,mediaKeys:d})).catch(d=>{c.length?l(c):d instanceof Oe?o(d):o(new Oe({type:z.KEY_SYSTEM_ERROR,details:k.KEY_SYSTEM_NO_ACCESS,error:d,fatal:!0},d.message))})};l(e)})}requestMediaKeySystemAccess(e,t){let{requestMediaKeySystemAccessFunc:i}=this.config;if(typeof i!="function"){let r=`Configured requestMediaKeySystemAccess is not a function ${i}`;return $l===null&&self.location.protocol==="http:"&&(r=`navigator.requestMediaKeySystemAccess is not available over insecure protocol ${location.protocol}`),Promise.reject(new Error(r))}return i(e,t)}getMediaKeysPromise(e,t,i){let r=If(e,t,i,this.config.drmSystemOptions),n=this.keySystemAccessPromises[e],a=n==null?void 0:n.keySystemAccess;if(!a){this.log(`Requesting encrypted media "${e}" key-system access with config: ${JSON.stringify(r)}`),a=this.requestMediaKeySystemAccess(e,r);let o=this.keySystemAccessPromises[e]={keySystemAccess:a};return a.catch(l=>{this.log(`Failed to obtain access to key-system "${e}": ${l}`)}),a.then(l=>{this.log(`Access for key-system "${l.keySystem}" obtained`);let c=this.fetchServerCertificate(e);return this.log(`Create media-keys for "${e}"`),o.mediaKeys=l.createMediaKeys().then(u=>(this.log(`Media-keys created for "${e}"`),c.then(d=>d?this.setMediaKeysServerCertificate(u,e,d):u))),o.mediaKeys.catch(u=>{this.error(`Failed to create media-keys for "${e}"}: ${u}`)}),o.mediaKeys})}return a.then(()=>n.mediaKeys)}createMediaKeySessionContext({decryptdata:e,keySystem:t,mediaKeys:i}){this.log(`Creating key-system session "${t}" keyId: ${Qe.hexDump(e.keyId||[])}`);let r=i.createSession(),n={decryptdata:e,keySystem:t,mediaKeys:i,mediaKeysSession:r,keyStatus:"status-pending"};return this.mediaKeySessions.push(n),n}renewKeySession(e){let t=e.decryptdata;if(t.pssh){let i=this.createMediaKeySessionContext(e),r=this.getKeyIdString(t),n="cenc";this.keyIdToKeySessionPromise[r]=this.generateRequestWithPreferredKeySession(i,n,t.pssh,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(e)}getKeyIdString(e){if(!e)throw new Error("Could not read keyId of undefined decryptdata");if(e.keyId===null)throw new Error("keyId is null");return Qe.hexDump(e.keyId)}updateKeySession(e,t){var i;let r=e.mediaKeysSession;return this.log(`Updating key-session "${r.sessionId}" for keyID ${Qe.hexDump(((i=e.decryptdata)==null?void 0:i.keyId)||[])}
40
40
  } (data length: ${t&&t.byteLength})`),r.update(t)}selectKeySystemFormat(e){let t=Object.keys(e.levelkeys||{});return this.keyFormatPromise||(this.log(`Selecting key-system from fragment (sn: ${e.sn} ${e.type}: ${e.level}) key formats ${t.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(t)),this.keyFormatPromise}getKeyFormatPromise(e){return new Promise((t,i)=>{let r=Zr(this.config),n=e.map(Wo).filter(a=>!!a&&r.indexOf(a)!==-1);return this.getKeySystemSelectionPromise(n).then(({keySystem:a})=>{let o=jo(a);o?t(o):i(new Error(`Unable to find format for key-system "${a}"`))}).catch(i)})}loadKey(e){let t=e.keyInfo.decryptdata,i=this.getKeyIdString(t),r=`(keyId: ${i} format: "${t.keyFormat}" method: ${t.method} uri: ${t.uri})`;this.log(`Starting session for key ${r}`);let n=this.keyIdToKeySessionPromise[i];return n||(n=this.keyIdToKeySessionPromise[i]=this.getKeySystemForKeyPromise(t).then(({keySystem:a,mediaKeys:o})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${e.frag.sn} ${e.frag.type}: ${e.frag.level} using key ${r}`),this.attemptSetMediaKeys(a,o).then(()=>{this.throwIfDestroyed();let l=this.createMediaKeySessionContext({keySystem:a,mediaKeys:o,decryptdata:t}),c="cenc";return this.generateRequestWithPreferredKeySession(l,c,t.pssh,"playlist-key")}))),n.catch(a=>this.handleError(a))),n}throwIfDestroyed(e="Invalid state"){if(!this.hls)throw new Error("invalid state")}handleError(e){this.hls&&(this.error(e.message),e instanceof Oe?this.hls.trigger(v.ERROR,e.data):this.hls.trigger(v.ERROR,{type:z.KEY_SYSTEM_ERROR,details:k.KEY_SYSTEM_NO_KEYS,error:e,fatal:!0}))}getKeySystemForKeyPromise(e){let t=this.getKeyIdString(e),i=this.keyIdToKeySessionPromise[t];if(!i){let r=Wo(e.keyFormat),n=r?[r]:Zr(this.config);return this.attemptKeySystemAccess(n)}return i}getKeySystemSelectionPromise(e){if(e.length||(e=Zr(this.config)),e.length===0)throw new Oe({type:z.KEY_SYSTEM_ERROR,details:k.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},`Missing key-system license configuration options ${JSON.stringify({drmSystems:this.config.drmSystems})}`);return this.attemptKeySystemAccess(e)}_onMediaEncrypted(e){let{initDataType:t,initData:i}=e;if(this.debug(`"${e.type}" event: init data type: "${t}"`),i===null)return;let r,n;if(t==="sinf"&&this.config.drmSystems[ce.FAIRPLAY]){let u=Te(new Uint8Array(i));try{let d=Da(JSON.parse(u).sinf),h=Yl(new Uint8Array(d));if(!h)return;r=h.subarray(8,24),n=ce.FAIRPLAY}catch{this.warn('Failed to parse sinf "encrypted" event message initData');return}}else{let u=Zf(i);if(u===null)return;u.version===0&&u.systemId===Bl.WIDEVINE&&u.data&&(r=u.data.subarray(8,24)),n=Rf(u.systemId)}if(!n||!r)return;let a=Qe.hexDump(r),{keyIdToKeySessionPromise:o,mediaKeySessions:l}=this,c=o[a];for(let u=0;u<l.length;u++){let d=l[u],h=d.decryptdata;if(h.pssh||!h.keyId)continue;let f=Qe.hexDump(h.keyId);if(a===f||h.uri.replace(/-/g,"").indexOf(a)!==-1){c=o[f],delete o[f],h.pssh=new Uint8Array(i),h.keyId=r,c=o[a]=c.then(()=>this.generateRequestWithPreferredKeySession(d,t,i,"encrypted-event-key-match"));break}}c||(c=o[a]=this.getKeySystemSelectionPromise([n]).then(({keySystem:u,mediaKeys:d})=>{var h;this.throwIfDestroyed();let f=new Vi("ISO-23001-7",a,(h=jo(u))!=null?h:"");return f.pssh=new Uint8Array(i),f.keyId=r,this.attemptSetMediaKeys(u,d).then(()=>{this.throwIfDestroyed();let m=this.createMediaKeySessionContext({decryptdata:f,keySystem:u,mediaKeys:d});return this.generateRequestWithPreferredKeySession(m,t,i,"encrypted-event-no-match")})})),c.catch(u=>this.handleError(u))}_onWaitingForKey(e){this.log(`"${e.type}" event`)}attemptSetMediaKeys(e,t){let i=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${e}"`);let r=Promise.all(i).then(()=>{if(!this.media)throw new Error("Attempted to set mediaKeys without media element attached");return this.media.setMediaKeys(t)});return this.setMediaKeysQueue.push(r),r.then(()=>{this.log(`Media-keys set for "${e}"`),i.push(r),this.setMediaKeysQueue=this.setMediaKeysQueue.filter(n=>i.indexOf(n)===-1)})}generateRequestWithPreferredKeySession(e,t,i,r){var n,a;let o=(n=this.config.drmSystems)==null||(a=n[e.keySystem])==null?void 0:a.generateRequest;if(o)try{let m=o.call(this.hls,t,i,e);if(!m)throw new Error("Invalid response from configured generateRequest filter");t=m.initDataType,i=e.decryptdata.pssh=m.initData?new Uint8Array(m.initData):null}catch(m){var l;if(this.warn(m.message),(l=this.hls)!=null&&l.config.debug)throw m}if(i===null)return this.log(`Skipping key-session request for "${r}" (no initData)`),Promise.resolve(e);let c=this.getKeyIdString(e.decryptdata);this.log(`Generating key-session request for "${r}": ${c} (init data type: ${t} length: ${i?i.byteLength:null})`);let u=new Na,d=e._onmessage=m=>{let g=e.mediaKeysSession;if(!g){u.emit("error",new Error("invalid state"));return}let{messageType:p,message:y}=m;this.log(`"${p}" message event for session "${g.sessionId}" message size: ${y.byteLength}`),p==="license-request"||p==="license-renewal"?this.renewLicense(e,y).catch(E=>{this.handleError(E),u.emit("error",E)}):p==="license-release"?e.keySystem===ce.FAIRPLAY&&(this.updateKeySession(e,Sn("acknowledged")),this.removeSession(e)):this.warn(`unhandled media key message type "${p}"`)},h=e._onkeystatuseschange=m=>{if(!e.mediaKeysSession){u.emit("error",new Error("invalid state"));return}this.onKeyStatusChange(e);let p=e.keyStatus;u.emit("keyStatus",p),p==="expired"&&(this.warn(`${e.keySystem} expired for key ${c}`),this.renewKeySession(e))};e.mediaKeysSession.addEventListener("message",d),e.mediaKeysSession.addEventListener("keystatuseschange",h);let f=new Promise((m,g)=>{u.on("error",g),u.on("keyStatus",p=>{p.startsWith("usable")?m():p==="output-restricted"?g(new Oe({type:z.KEY_SYSTEM_ERROR,details:k.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,fatal:!1},"HDCP level output restricted")):p==="internal-error"?g(new Oe({type:z.KEY_SYSTEM_ERROR,details:k.KEY_SYSTEM_STATUS_INTERNAL_ERROR,fatal:!0},`key status changed to "${p}"`)):p==="expired"?g(new Error("key expired while generating request")):this.warn(`unhandled key status change "${p}"`)})});return e.mediaKeysSession.generateRequest(t,i).then(()=>{var m;this.log(`Request generated for key-session "${(m=e.mediaKeysSession)==null?void 0:m.sessionId}" keyId: ${c}`)}).catch(m=>{throw new Oe({type:z.KEY_SYSTEM_ERROR,details:k.KEY_SYSTEM_NO_SESSION,error:m,fatal:!1},`Error generating key-session request: ${m}`)}).then(()=>f).catch(m=>{throw u.removeAllListeners(),this.removeSession(e),m}).then(()=>(u.removeAllListeners(),e))}onKeyStatusChange(e){e.mediaKeysSession.keyStatuses.forEach((t,i)=>{this.log(`key status change "${t}" for keyStatuses keyId: ${Qe.hexDump("buffer"in i?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i))} session keyId: ${Qe.hexDump(new Uint8Array(e.decryptdata.keyId||[]))} uri: ${e.decryptdata.uri}`),e.keyStatus=t})}fetchServerCertificate(e){let t=this.config,i=t.loader,r=new i(t),n=this.getServerCertificateUrl(e);return n?(this.log(`Fetching server certificate for "${e}"`),new Promise((a,o)=>{let l={responseType:"arraybuffer",url:n},c=t.certLoadPolicy.default,u={loadPolicy:c,timeout:c.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},d={onSuccess:(h,f,m,g)=>{a(h.data)},onError:(h,f,m,g)=>{o(new Oe({type:z.KEY_SYSTEM_ERROR,details:k.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:m,response:Re({url:l.url,data:void 0},h)},`"${e}" certificate request failed (${n}). Status: ${h.code} (${h.text})`))},onTimeout:(h,f,m)=>{o(new Oe({type:z.KEY_SYSTEM_ERROR,details:k.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:m,response:{url:l.url,data:void 0}},`"${e}" certificate request timed out (${n})`))},onAbort:(h,f,m)=>{o(new Error("aborted"))}};r.load(l,u,d)})):Promise.resolve()}setMediaKeysServerCertificate(e,t,i){return new Promise((r,n)=>{e.setServerCertificate(i).then(a=>{this.log(`setServerCertificate ${a?"success":"not supported by CDM"} (${i==null?void 0:i.byteLength}) on "${t}"`),r(e)}).catch(a=>{n(new Oe({type:z.KEY_SYSTEM_ERROR,details:k.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:a,fatal:!0},a.message))})})}renewLicense(e,t){return this.requestLicense(e,new Uint8Array(t)).then(i=>this.updateKeySession(e,new Uint8Array(i)).catch(r=>{throw new Oe({type:z.KEY_SYSTEM_ERROR,details:k.KEY_SYSTEM_SESSION_UPDATE_FAILED,error:r,fatal:!0},r.message)}))}unpackPlayReadyKeyMessage(e,t){let i=String.fromCharCode.apply(null,new Uint16Array(t.buffer));if(!i.includes("PlayReadyKeyMessage"))return e.setRequestHeader("Content-Type","text/xml; charset=utf-8"),t;let r=new DOMParser().parseFromString(i,"application/xml"),n=r.querySelectorAll("HttpHeader");if(n.length>0){let u;for(let d=0,h=n.length;d<h;d++){var a,o;u=n[d];let f=(a=u.querySelector("name"))==null?void 0:a.textContent,m=(o=u.querySelector("value"))==null?void 0:o.textContent;f&&m&&e.setRequestHeader(f,m)}}let l=r.querySelector("Challenge"),c=l==null?void 0:l.textContent;if(!c)throw new Error("Cannot find <Challenge> in key message");return Sn(atob(c))}setupLicenseXHR(e,t,i,r){let n=this.config.licenseXhrSetup;return n?Promise.resolve().then(()=>{if(!i.decryptdata)throw new Error("Key removed");return n.call(this.hls,e,t,i,r)}).catch(a=>{if(!i.decryptdata)throw a;return e.open("POST",t,!0),n.call(this.hls,e,t,i,r)}).then(a=>(e.readyState||e.open("POST",t,!0),{xhr:e,licenseChallenge:a||r})):(e.open("POST",t,!0),Promise.resolve({xhr:e,licenseChallenge:r}))}requestLicense(e,t){let i=this.config.keyLoadPolicy.default;return new Promise((r,n)=>{let a=this.getLicenseServerUrl(e.keySystem);this.log(`Sending license request to URL: ${a}`);let o=new XMLHttpRequest;o.responseType="arraybuffer",o.onreadystatechange=()=>{if(!this.hls||!e.mediaKeysSession)return n(new Error("invalid state"));if(o.readyState===4)if(o.status===200){this._requestLicenseFailureCount=0;let l=o.response;this.log(`License received ${l instanceof ArrayBuffer?l.byteLength:l}`);let c=this.config.licenseResponseCallback;if(c)try{l=c.call(this.hls,o,a,e)}catch(u){this.error(u)}r(l)}else{let l=i.errorRetry,c=l?l.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>c||o.status>=400&&o.status<500)n(new Oe({type:z.KEY_SYSTEM_ERROR,details:k.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:o,response:{url:a,data:void 0,code:o.status,text:o.statusText}},`License Request XHR failed (${a}). Status: ${o.status} (${o.statusText})`));else{let u=c-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${u} attempts left`),this.requestLicense(e,t).then(r,n)}}},e.licenseXhr&&e.licenseXhr.readyState!==XMLHttpRequest.DONE&&e.licenseXhr.abort(),e.licenseXhr=o,this.setupLicenseXHR(o,a,e,t).then(({xhr:l,licenseChallenge:c})=>{e.keySystem==ce.PLAYREADY&&(c=this.unpackPlayReadyKeyMessage(l,c)),l.send(c)})})}onMediaAttached(e,t){if(!this.config.emeEnabled)return;let i=t.media;this.media=i,i.addEventListener("encrypted",this.onMediaEncrypted),i.addEventListener("waitingforkey",this.onWaitingForKey)}onMediaDetached(){let e=this.media,t=this.mediaKeySessions;e&&(e.removeEventListener("encrypted",this.onMediaEncrypted),e.removeEventListener("waitingforkey",this.onWaitingForKey),this.media=null),this._requestLicenseFailureCount=0,this.setMediaKeysQueue=[],this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},Vi.clearKeyUriToKeyIdMap();let i=t.length;s.CDMCleanupPromise=Promise.all(t.map(r=>this.removeSession(r)).concat(e==null?void 0:e.setMediaKeys(null).catch(r=>{this.log(`Could not clear media keys: ${r}`)}))).then(()=>{i&&(this.log("finished closing key sessions and clearing media keys"),t.length=0)}).catch(r=>{this.log(`Could not close sessions and clear media keys: ${r}`)})}onManifestLoading(){this.keyFormatPromise=null}onManifestLoaded(e,{sessionKeys:t}){if(!(!t||!this.config.emeEnabled)&&!this.keyFormatPromise){let i=t.reduce((r,n)=>(r.indexOf(n.keyFormat)===-1&&r.push(n.keyFormat),r),[]);this.log(`Selecting key-system from session-keys ${i.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(i)}}removeSession(e){let{mediaKeysSession:t,licenseXhr:i}=e;if(t){this.log(`Remove licenses and keys and close session ${t.sessionId}`),e._onmessage&&(t.removeEventListener("message",e._onmessage),e._onmessage=void 0),e._onkeystatuseschange&&(t.removeEventListener("keystatuseschange",e._onkeystatuseschange),e._onkeystatuseschange=void 0),i&&i.readyState!==XMLHttpRequest.DONE&&i.abort(),e.mediaKeysSession=e.decryptdata=e.licenseXhr=void 0;let r=this.mediaKeySessions.indexOf(e);return r>-1&&this.mediaKeySessions.splice(r,1),t.remove().catch(n=>{this.log(`Could not remove session: ${n}`)}).then(()=>t.close()).catch(n=>{this.log(`Could not close session: ${n}`)})}}};dr.CDMCleanupPromise=void 0;var Oe=class extends Error{constructor(e,t){super(t),this.data=void 0,e.error||(e.error=new Error(t)),this.data=e,e.err=e.error}},ke;(function(s){s.MANIFEST="m",s.AUDIO="a",s.VIDEO="v",s.MUXED="av",s.INIT="i",s.CAPTION="c",s.TIMED_TEXT="tt",s.KEY="k",s.OTHER="o"})(ke||(ke={}));var va;(function(s){s.DASH="d",s.HLS="h",s.SMOOTH="s",s.OTHER="o"})(va||(va={}));var Ht;(function(s){s.OBJECT="CMCD-Object",s.REQUEST="CMCD-Request",s.SESSION="CMCD-Session",s.STATUS="CMCD-Status"})(Ht||(Ht={}));var Bg={[Ht.OBJECT]:["br","d","ot","tb"],[Ht.REQUEST]:["bl","dl","mtp","nor","nrr","su"],[Ht.SESSION]:["cid","pr","sf","sid","st","v"],[Ht.STATUS]:["bs","rtp"]},Xi=class s{constructor(e,t){this.value=void 0,this.params=void 0,Array.isArray(e)&&(e=e.map(i=>i instanceof s?i:new s(i))),this.value=e,this.params=t}},hr=class{constructor(e){this.description=void 0,this.description=e}},$g="Dict";function Gg(s){return Array.isArray(s)?JSON.stringify(s):s instanceof Map?"Map{}":s instanceof Set?"Set{}":typeof s=="object"?JSON.stringify(s):String(s)}function Hg(s,e,t,i){return new Error(`failed to ${s} "${Gg(e)}" as ${t}`,{cause:i})}var Pl="Bare Item",Vg="Boolean",Kg="Byte Sequence",qg="Decimal",Wg="Integer";function jg(s){return s<-999999999999999||999999999999999<s}var Yg=/[\x00-\x1f\x7f]+/,zg="Token",Xg="Key";function tt(s,e,t){return Hg("serialize",s,e,t)}function Qg(s){if(typeof s!="boolean")throw tt(s,Vg);return s?"?1":"?0"}function Jg(s){return btoa(String.fromCharCode(...s))}function Zg(s){if(ArrayBuffer.isView(s)===!1)throw tt(s,Kg);return`:${Jg(s)}:`}function Cc(s){if(jg(s))throw tt(s,Wg);return s.toString()}function ep(s){return`@${Cc(s.getTime()/1e3)}`}function Pc(s,e){if(s<0)return-Pc(-s,e);let t=Math.pow(10,e);if(Math.abs(s*t%1-.5)<Number.EPSILON){let r=Math.floor(s*t);return(r%2===0?r:r+1)/t}else return Math.round(s*t)/t}function tp(s){let e=Pc(s,3);if(Math.floor(Math.abs(e)).toString().length>12)throw tt(s,qg);let t=e.toString();return t.includes(".")?t:`${t}.0`}var ip="String";function sp(s){if(Yg.test(s))throw tt(s,ip);return`"${s.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function rp(s){return s.description||s.toString().slice(7,-1)}function Ol(s){let e=rp(s);if(/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(e)===!1)throw tt(e,zg);return e}function ya(s){switch(typeof s){case"number":if(!G(s))throw tt(s,Pl);return Number.isInteger(s)?Cc(s):tp(s);case"string":return sp(s);case"symbol":return Ol(s);case"boolean":return Qg(s);case"object":if(s instanceof Date)return ep(s);if(s instanceof Uint8Array)return Zg(s);if(s instanceof hr)return Ol(s);default:throw tt(s,Pl)}}function Ta(s){if(/^[a-z*][a-z0-9\-_.*]*$/.test(s)===!1)throw tt(s,Xg);return s}function Ba(s){return s==null?"":Object.entries(s).map(([e,t])=>t===!0?`;${Ta(e)}`:`;${Ta(e)}=${ya(t)}`).join("")}function Oc(s){return s instanceof Xi?`${ya(s.value)}${Ba(s.params)}`:ya(s)}function np(s){return`(${s.value.map(Oc).join(" ")})${Ba(s.params)}`}function ap(s,e={whitespace:!0}){if(typeof s!="object")throw tt(s,$g);let t=s instanceof Map?s.entries():Object.entries(s),i=e!=null&&e.whitespace?" ":"";return Array.from(t).map(([r,n])=>{n instanceof Xi||(n=new Xi(n));let a=Ta(r);return n.value===!0?a+=Ba(n.params):(a+="=",Array.isArray(n.value)?a+=np(n):a+=Oc(n)),a}).join(`,${i}`)}function op(s,e){return ap(s,e)}var lp=s=>s==="ot"||s==="sf"||s==="st",cp=s=>typeof s=="number"?G(s):s!=null&&s!==""&&s!==!1;function up(s,e){let t=new URL(s),i=new URL(e);if(t.origin!==i.origin)return s;let r=t.pathname.split("/").slice(1),n=i.pathname.split("/").slice(1,-1);for(;r[0]===n[0];)r.shift(),n.shift();for(;n.length;)n.shift(),r.unshift("..");return r.join("/")}function dp(){try{return crypto.randomUUID()}catch{try{let e=URL.createObjectURL(new Blob),t=e.toString();return URL.revokeObjectURL(e),t.slice(t.lastIndexOf("/")+1)}catch{let t=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{let n=(t+Math.random()*16)%16|0;return t=Math.floor(t/16),(r=="x"?n:n&3|8).toString(16)})}}}var $s=s=>Math.round(s),hp=(s,e)=>(e!=null&&e.baseUrl&&(s=up(s,e.baseUrl)),encodeURIComponent(s)),Os=s=>$s(s/100)*100,fp={br:$s,d:$s,bl:Os,dl:Os,mtp:Os,nor:hp,rtp:Os,tb:$s};function mp(s,e){let t={};if(s==null||typeof s!="object")return t;let i=Object.keys(s).sort(),r=pe({},fp,e==null?void 0:e.formatters),n=e==null?void 0:e.filter;return i.forEach(a=>{if(n!=null&&n(a))return;let o=s[a],l=r[a];l&&(o=l(o,e)),!(a==="v"&&o===1)&&(a=="pr"&&o===1||cp(o)&&(lp(a)&&typeof o=="string"&&(o=new hr(o)),t[a]=o))}),t}function Mc(s,e={}){return s?op(mp(s,e),pe({whitespace:!1},e)):""}function gp(s,e={}){if(!s)return{};let t=Object.entries(s),i=Object.entries(Bg).concat(Object.entries((e==null?void 0:e.customHeaderMap)||{})),r=t.reduce((n,a)=>{var o,l;let[c,u]=a,d=((o=i.find(h=>h[1].includes(c)))==null?void 0:o[0])||Ht.REQUEST;return(l=n[d])!=null||(n[d]={}),n[d][c]=u,n},{});return Object.entries(r).reduce((n,[a,o])=>(n[a]=Mc(o,e),n),{})}function pp(s,e,t){return pe(s,gp(e,t))}var vp="CMCD";function yp(s,e={}){if(!s)return"";let t=Mc(s,e);return`${vp}=${encodeURIComponent(t)}`}var Ml=/CMCD=[^&#]+/;function Tp(s,e,t){let i=yp(e,t);if(!i)return s;if(Ml.test(s))return s.replace(Ml,i);let r=s.includes("?")?"&":"?";return`${s}${r}${i}`}var Ea=class{constructor(e){this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.includeKeys=void 0,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=()=>{this.initialized&&(this.starved=!0),this.buffering=!0},this.onPlaying=()=>{this.initialized||(this.initialized=!0),this.buffering=!1},this.applyPlaylistData=r=>{try{this.apply(r,{ot:ke.MANIFEST,su:!this.initialized})}catch(n){R.warn("Could not generate manifest CMCD data.",n)}},this.applyFragmentData=r=>{try{let n=r.frag,a=this.hls.levels[n.level],o=this.getObjectType(n),l={d:n.duration*1e3,ot:o};(o===ke.VIDEO||o===ke.AUDIO||o==ke.MUXED)&&(l.br=a.bitrate/1e3,l.tb=this.getTopBandwidth(o)/1e3,l.bl=this.getBufferLength(o)),this.apply(r,l)}catch(n){R.warn("Could not generate segment CMCD data.",n)}},this.hls=e;let t=this.config=e.config,{cmcd:i}=t;i!=null&&(t.pLoader=this.createPlaylistLoader(),t.fLoader=this.createFragmentLoader(),this.sid=i.sessionId||dp(),this.cid=i.contentId,this.useHeaders=i.useHeaders===!0,this.includeKeys=i.includeKeys,this.registerListeners())}registerListeners(){let e=this.hls;e.on(v.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(v.MEDIA_DETACHED,this.onMediaDetached,this),e.on(v.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){let e=this.hls;e.off(v.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(v.MEDIA_DETACHED,this.onMediaDetached,this),e.off(v.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=null}onMediaAttached(e,t){this.media=t.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}onBufferCreated(e,t){var i,r;this.audioBuffer=(i=t.tracks.audio)==null?void 0:i.buffer,this.videoBuffer=(r=t.tracks.video)==null?void 0:r.buffer}createData(){var e;return{v:1,sf:va.HLS,sid:this.sid,cid:this.cid,pr:(e=this.media)==null?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}}apply(e,t={}){pe(t,this.createData());let i=t.ot===ke.INIT||t.ot===ke.VIDEO||t.ot===ke.MUXED;this.starved&&i&&(t.bs=!0,t.su=!0,this.starved=!1),t.su==null&&(t.su=this.buffering);let{includeKeys:r}=this;r&&(t=Object.keys(t).reduce((n,a)=>(r.includes(a)&&(n[a]=t[a]),n),{})),this.useHeaders?(e.headers||(e.headers={}),pp(e.headers,t)):e.url=Tp(e.url,t)}getObjectType(e){let{type:t}=e;if(t==="subtitle")return ke.TIMED_TEXT;if(e.sn==="initSegment")return ke.INIT;if(t==="audio")return ke.AUDIO;if(t==="main")return this.hls.audioTracks.length?ke.VIDEO:ke.MUXED}getTopBandwidth(e){let t=0,i,r=this.hls;if(e===ke.AUDIO)i=r.audioTracks;else{let n=r.maxAutoLevel,a=n>-1?n+1:r.levels.length;i=r.levels.slice(0,a)}for(let n of i)n.bitrate>t&&(t=n.bitrate);return t>0?t:NaN}getBufferLength(e){let t=this.hls.media,i=e===ke.AUDIO?this.audioBuffer:this.videoBuffer;return!i||!t?NaN:le.bufferInfo(i,t.currentTime,this.config.maxBufferHole).len*1e3}createPlaylistLoader(){let{pLoader:e}=this.config,t=this.applyPlaylistData,i=e||this.config.loader;return class{constructor(n){this.loader=void 0,this.loader=new i(n)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(n,a,o){t(n),this.loader.load(n,a,o)}}}createFragmentLoader(){let{fLoader:e}=this.config,t=this.applyFragmentData,i=e||this.config.loader;return class{constructor(n){this.loader=void 0,this.loader=new i(n)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(n,a,o){t(n),this.loader.load(n,a,o)}}}},Ep=3e5,xa=class{constructor(e){this.hls=void 0,this.log=void 0,this.loader=null,this.uri=null,this.pathwayId=".",this.pathwayPriority=null,this.timeToLoad=300,this.reloadTimer=-1,this.updated=0,this.started=!1,this.enabled=!0,this.levels=null,this.audioTracks=null,this.subtitleTracks=null,this.penalizedPathways={},this.hls=e,this.log=R.log.bind(R,"[content-steering]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(v.MANIFEST_LOADING,this.onManifestLoading,this),e.on(v.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(v.MANIFEST_PARSED,this.onManifestParsed,this),e.on(v.ERROR,this.onError,this)}unregisterListeners(){let e=this.hls;e&&(e.off(v.MANIFEST_LOADING,this.onManifestLoading,this),e.off(v.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(v.MANIFEST_PARSED,this.onManifestParsed,this),e.off(v.ERROR,this.onError,this))}startLoad(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){let e=this.timeToLoad*1e3-(performance.now()-this.updated);if(e>0){this.scheduleRefresh(this.uri,e);return}}this.loadSteeringManifest(this.uri)}}stopLoad(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout()}clearTimeout(){this.reloadTimer!==-1&&(self.clearTimeout(this.reloadTimer),this.reloadTimer=-1)}destroy(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null}removeLevel(e){let t=this.levels;t&&(this.levels=t.filter(i=>i!==e))}onManifestLoading(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null}onManifestLoaded(e,t){let{contentSteering:i}=t;i!==null&&(this.pathwayId=i.pathwayId,this.uri=i.uri,this.started&&this.startLoad())}onManifestParsed(e,t){this.audioTracks=t.audioTracks,this.subtitleTracks=t.subtitleTracks}onError(e,t){let{errorAction:i}=t;if((i==null?void 0:i.action)===Ae.SendAlternateToPenaltyBox&&i.flags===Ve.MoveAllAlternatesMatchingHost){let r=this.levels,n=this.pathwayPriority,a=this.pathwayId;if(t.context){let{groupId:o,pathwayId:l,type:c}=t.context;o&&r?a=this.getPathwayForGroupId(o,c,a):l&&(a=l)}a in this.penalizedPathways||(this.penalizedPathways[a]=performance.now()),!n&&r&&(n=r.reduce((o,l)=>(o.indexOf(l.pathwayId)===-1&&o.push(l.pathwayId),o),[])),n&&n.length>1&&(this.updatePathwayPriority(n),i.resolved=this.pathwayId!==a),i.resolved||R.warn(`Could not resolve ${t.details} ("${t.error.message}") with content-steering for Pathway: ${a} levels: ${r&&r.length} priorities: ${JSON.stringify(n)} penalized: ${JSON.stringify(this.penalizedPathways)}`)}}filterParsedLevels(e){this.levels=e;let t=this.getLevelsForPathway(this.pathwayId);if(t.length===0){let i=e[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${i}"`),t=this.getLevelsForPathway(i),this.pathwayId=i}return t.length!==e.length?(this.log(`Found ${t.length}/${e.length} levels in Pathway "${this.pathwayId}"`),t):e}getLevelsForPathway(e){return this.levels===null?[]:this.levels.filter(t=>e===t.pathwayId)}updatePathwayPriority(e){this.pathwayPriority=e;let t,i=this.penalizedPathways,r=performance.now();Object.keys(i).forEach(n=>{r-i[n]>Ep&&delete i[n]});for(let n=0;n<e.length;n++){let a=e[n];if(a in i)continue;if(a===this.pathwayId)return;let o=this.hls.nextLoadLevel,l=this.hls.levels[o];if(t=this.getLevelsForPathway(a),t.length>0){this.log(`Setting Pathway to "${a}"`),this.pathwayId=a,rc(t),this.hls.trigger(v.LEVELS_UPDATED,{levels:t});let c=this.hls.levels[o];l&&c&&this.levels&&(c.attrs["STABLE-VARIANT-ID"]!==l.attrs["STABLE-VARIANT-ID"]&&c.bitrate!==l.bitrate&&this.log(`Unstable Pathways change from bitrate ${l.bitrate} to ${c.bitrate}`),this.hls.nextLoadLevel=o);break}}}getPathwayForGroupId(e,t,i){let r=this.getLevelsForPathway(i).concat(this.levels||[]);for(let n=0;n<r.length;n++)if(t===te.AUDIO_TRACK&&r[n].hasAudioGroup(e)||t===te.SUBTITLE_TRACK&&r[n].hasSubtitleGroup(e))return r[n].pathwayId;return i}clonePathways(e){let t=this.levels;if(!t)return;let i={},r={};e.forEach(n=>{let{ID:a,"BASE-ID":o,"URI-REPLACEMENT":l}=n;if(t.some(u=>u.pathwayId===a))return;let c=this.getLevelsForPathway(o).map(u=>{let d=new de(u.attrs);d["PATHWAY-ID"]=a;let h=d.AUDIO&&`${d.AUDIO}_clone_${a}`,f=d.SUBTITLES&&`${d.SUBTITLES}_clone_${a}`;h&&(i[d.AUDIO]=h,d.AUDIO=h),f&&(r[d.SUBTITLES]=f,d.SUBTITLES=f);let m=Nc(u.uri,d["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",l),g=new mt({attrs:d,audioCodec:u.audioCodec,bitrate:u.bitrate,height:u.height,name:u.name,url:m,videoCodec:u.videoCodec,width:u.width});if(u.audioGroups)for(let p=1;p<u.audioGroups.length;p++)g.addGroupId("audio",`${u.audioGroups[p]}_clone_${a}`);if(u.subtitleGroups)for(let p=1;p<u.subtitleGroups.length;p++)g.addGroupId("text",`${u.subtitleGroups[p]}_clone_${a}`);return g});t.push(...c),Nl(this.audioTracks,i,l,a),Nl(this.subtitleTracks,r,l,a)})}loadSteeringManifest(e){let t=this.hls.config,i=t.loader;this.loader&&this.loader.destroy(),this.loader=new i(t);let r;try{r=new self.URL(e)}catch{this.enabled=!1,this.log(`Failed to parse Steering Manifest URI: ${e}`);return}if(r.protocol!=="data:"){let u=(this.hls.bandwidthEstimate||t.abrEwmaDefaultEstimate)|0;r.searchParams.set("_HLS_pathway",this.pathwayId),r.searchParams.set("_HLS_throughput",""+u)}let n={responseType:"json",url:r.href},a=t.steeringManifestLoadPolicy.default,o=a.errorRetry||a.timeoutRetry||{},l={loadPolicy:a,timeout:a.maxLoadTimeMs,maxRetry:o.maxNumRetry||0,retryDelay:o.retryDelayMs||0,maxRetryDelay:o.maxRetryDelayMs||0},c={onSuccess:(u,d,h,f)=>{this.log(`Loaded steering manifest: "${r}"`);let m=u.data;if(m.VERSION!==1){this.log(`Steering VERSION ${m.VERSION} not supported!`);return}this.updated=performance.now(),this.timeToLoad=m.TTL;let{"RELOAD-URI":g,"PATHWAY-CLONES":p,"PATHWAY-PRIORITY":y}=m;if(g)try{this.uri=new self.URL(g,r).href}catch{this.enabled=!1,this.log(`Failed to parse Steering Manifest RELOAD-URI: ${g}`);return}this.scheduleRefresh(this.uri||h.url),p&&this.clonePathways(p);let E={steeringManifest:m,url:r.toString()};this.hls.trigger(v.STEERING_MANIFEST_LOADED,E),y&&this.updatePathwayPriority(y)},onError:(u,d,h,f)=>{if(this.log(`Error loading steering manifest: ${u.code} ${u.text} (${d.url})`),this.stopLoad(),u.code===410){this.enabled=!1,this.log(`Steering manifest ${d.url} no longer available`);return}let m=this.timeToLoad*1e3;if(u.code===429){let g=this.loader;if(typeof(g==null?void 0:g.getResponseHeader)=="function"){let p=g.getResponseHeader("Retry-After");p&&(m=parseFloat(p)*1e3)}this.log(`Steering manifest ${d.url} rate limited`);return}this.scheduleRefresh(this.uri||d.url,m)},onTimeout:(u,d,h)=>{this.log(`Timeout loading steering manifest (${d.url})`),this.scheduleRefresh(this.uri||d.url)}};this.log(`Requesting steering manifest: ${r}`),this.loader.load(n,l,c)}scheduleRefresh(e,t=this.timeToLoad*1e3){this.clearTimeout(),this.reloadTimer=self.setTimeout(()=>{var i;let r=(i=this.hls)==null?void 0:i.media;if(r&&!r.ended){this.loadSteeringManifest(e);return}this.scheduleRefresh(e,this.timeToLoad*1e3)},t)}};function Nl(s,e,t,i){s&&Object.keys(e).forEach(r=>{let n=s.filter(a=>a.groupId===r).map(a=>{let o=pe({},a);return o.details=void 0,o.attrs=new de(o.attrs),o.url=o.attrs.URI=Nc(a.url,a.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",t),o.groupId=o.attrs["GROUP-ID"]=e[r],o.attrs["PATHWAY-ID"]=i,o});s.push(...n)})}function Nc(s,e,t,i){let{HOST:r,PARAMS:n,[t]:a}=i,o;e&&(o=a==null?void 0:a[e],o&&(s=o));let l=new self.URL(s);return r&&!o&&(l.host=r),n&&Object.keys(n).sort().forEach(c=>{c&&l.searchParams.set(c,n[c])}),l.href}var xp=/^age:\s*[\d.]+\s*$/im,fr=class{constructor(e){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=null,this.loader=null,this.stats=void 0,this.xhrSetup=e&&e.xhrSetup||null,this.stats=new hi,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null}abortInternal(){let e=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),e&&(e.onreadystatechange=null,e.onprogress=null,e.readyState!==4&&(this.stats.aborted=!0,e.abort()))}abort(){var e;this.abortInternal(),(e=this.callbacks)!=null&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(e,t,i){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=e,this.config=t,this.callbacks=i,this.loadInternal()}loadInternal(){let{config:e,context:t}=this;if(!e||!t)return;let i=this.loader=new self.XMLHttpRequest,r=this.stats;r.loading.first=0,r.loaded=0,r.aborted=!1;let n=this.xhrSetup;n?Promise.resolve().then(()=>{if(!(this.loader!==i||this.stats.aborted))return n(i,t.url)}).catch(a=>{if(!(this.loader!==i||this.stats.aborted))return i.open("GET",t.url,!0),n(i,t.url)}).then(()=>{this.loader!==i||this.stats.aborted||this.openAndSendXhr(i,t,e)}).catch(a=>{this.callbacks.onError({code:i.status,text:a.message},t,i,r)}):this.openAndSendXhr(i,t,e)}openAndSendXhr(e,t,i){e.readyState||e.open("GET",t.url,!0);let r=t.headers,{maxTimeToFirstByteMs:n,maxLoadTimeMs:a}=i.loadPolicy;if(r)for(let o in r)e.setRequestHeader(o,r[o]);t.rangeEnd&&e.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=t.responseType,self.clearTimeout(this.requestTimeout),i.timeout=n&&G(n)?n:a,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),i.timeout),e.send()}readystatechange(){let{context:e,loader:t,stats:i}=this;if(!e||!t)return;let r=t.readyState,n=this.config;if(!i.aborted&&r>=2&&(i.loading.first===0&&(i.loading.first=Math.max(self.performance.now(),i.loading.start),n.timeout!==n.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),n.timeout=n.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),n.loadPolicy.maxLoadTimeMs-(i.loading.first-i.loading.start)))),r===4)){self.clearTimeout(this.requestTimeout),t.onreadystatechange=null,t.onprogress=null;let a=t.status,o=t.responseType!=="text";if(a>=200&&a<300&&(o&&t.response||t.responseText!==null)){i.loading.end=Math.max(self.performance.now(),i.loading.first);let l=o?t.response:t.responseText,c=t.responseType==="arraybuffer"?l.byteLength:l.length;if(i.loaded=i.total=c,i.bwEstimate=i.total*8e3/(i.loading.end-i.loading.first),!this.callbacks)return;let u=this.callbacks.onProgress;if(u&&u(i,e,l,t),!this.callbacks)return;let d={url:t.responseURL,data:l,code:a};this.callbacks.onSuccess(d,i,e,t)}else{let l=n.loadPolicy.errorRetry,c=i.retry,u={url:e.url,data:void 0,code:a};Qs(l,c,!1,u)?this.retry(l):(R.error(`${a} while loading ${e.url}`),this.callbacks.onError({code:a,text:t.statusText},e,t,i))}}}loadtimeout(){if(!this.config)return;let e=this.config.loadPolicy.timeoutRetry,t=this.stats.retry;if(Qs(e,t,!0))this.retry(e);else{var i;R.warn(`timeout while loading ${(i=this.context)==null?void 0:i.url}`);let r=this.callbacks;r&&(this.abortInternal(),r.onTimeout(this.stats,this.context,this.loader))}}retry(e){let{context:t,stats:i}=this;this.retryDelay=Ca(e,i.retry),i.retry++,R.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${t==null?void 0:t.url}, retrying ${i.retry}/${e.maxNumRetry} in ${this.retryDelay}ms`),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)}loadprogress(e){let t=this.stats;t.loaded=e.loaded,e.lengthComputable&&(t.total=e.total)}getCacheAge(){let e=null;if(this.loader&&xp.test(this.loader.getAllResponseHeaders())){let t=this.loader.getResponseHeader("age");e=t?parseFloat(t):null}return e}getResponseHeader(e){return this.loader&&new RegExp(`^${e}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(e):null}};function Sp(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch{}return!1}var bp=/(\d+)-(\d+)\/(\d+)/,mr=class{constructor(e){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=null,this.response=null,this.controller=void 0,this.context=null,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=e.fetchSetup||Rp,this.controller=new self.AbortController,this.stats=new hi}destroy(){this.loader=this.callbacks=this.context=this.config=this.request=null,this.abortInternal(),this.response=null,this.fetchSetup=this.controller=this.stats=null}abortInternal(){this.controller&&!this.stats.loading.end&&(this.stats.aborted=!0,this.controller.abort())}abort(){var e;this.abortInternal(),(e=this.callbacks)!=null&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(e,t,i){let r=this.stats;if(r.loading.start)throw new Error("Loader can only be used once.");r.loading.start=self.performance.now();let n=_p(e,this.controller.signal),a=i.onProgress,o=e.responseType==="arraybuffer",l=o?"byteLength":"length",{maxTimeToFirstByteMs:c,maxLoadTimeMs:u}=t.loadPolicy;this.context=e,this.config=t,this.callbacks=i,this.request=this.fetchSetup(e,n),self.clearTimeout(this.requestTimeout),t.timeout=c&&G(c)?c:u,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(r,e,this.response)},t.timeout),self.fetch(this.request).then(d=>{this.response=this.loader=d;let h=Math.max(self.performance.now(),r.loading.start);if(self.clearTimeout(this.requestTimeout),t.timeout=u,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(r,e,this.response)},u-(h-r.loading.start)),!d.ok){let{status:f,statusText:m}=d;throw new Sa(m||"fetch, bad network response",f,d)}return r.loading.first=h,r.total=Lp(d.headers)||r.total,a&&G(t.highWaterMark)?this.loadProgressively(d,r,e,t.highWaterMark,a):o?d.arrayBuffer():e.responseType==="json"?d.json():d.text()}).then(d=>{let h=this.response;if(!h)throw new Error("loader destroyed");self.clearTimeout(this.requestTimeout),r.loading.end=Math.max(self.performance.now(),r.loading.first);let f=d[l];f&&(r.loaded=r.total=f);let m={url:h.url,data:d,code:h.status};a&&!G(t.highWaterMark)&&a(r,e,d,h),i.onSuccess(m,r,e,h)}).catch(d=>{if(self.clearTimeout(this.requestTimeout),r.aborted)return;let h=d&&d.code||0,f=d?d.message:null;i.onError({code:h,text:f},e,d?d.details:null,r)})}getCacheAge(){let e=null;if(this.response){let t=this.response.headers.get("age");e=t?parseFloat(t):null}return e}getResponseHeader(e){return this.response?this.response.headers.get(e):null}loadProgressively(e,t,i,r=0,n){let a=new er,o=e.body.getReader(),l=()=>o.read().then(c=>{if(c.done)return a.dataLength&&n(t,i,a.flush(),e),Promise.resolve(new ArrayBuffer(0));let u=c.value,d=u.length;return t.loaded+=d,d<r||a.dataLength?(a.push(u),a.dataLength>=r&&n(t,i,a.flush(),e)):n(t,i,u,e),l()}).catch(()=>Promise.reject());return l()}};function _p(s,e){let t={method:"GET",mode:"cors",credentials:"same-origin",signal:e,headers:new self.Headers(pe({},s.headers))};return s.rangeEnd&&t.headers.set("Range","bytes="+s.rangeStart+"-"+String(s.rangeEnd-1)),t}function Ap(s){let e=bp.exec(s);if(e)return parseInt(e[2])-parseInt(e[1])+1}function Lp(s){let e=s.get("Content-Range");if(e){let i=Ap(e);if(G(i))return i}let t=s.get("Content-Length");if(t)return parseInt(t)}function Rp(s,e){return new self.Request(s.url,e)}var Sa=class extends Error{constructor(e,t,i){super(e),this.code=void 0,this.details=void 0,this.code=t,this.details=i}},Ip=/\s/,Dp={newCue(s,e,t,i){let r=[],n,a,o,l,c,u=self.VTTCue||self.TextTrackCue;for(let h=0;h<i.rows.length;h++)if(n=i.rows[h],o=!0,l=0,c="",!n.isEmpty()){var d;for(let g=0;g<n.chars.length;g++)Ip.test(n.chars[g].uchar)&&o?l++:(c+=n.chars[g].uchar,o=!1);n.cueStartTime=e,e===t&&(t+=1e-4),l>=16?l--:l++;let f=Rc(c.trim()),m=Ua(e,t,f);s!=null&&(d=s.cues)!=null&&d.getCueById(m)||(a=new u(e,t,f),a.id=m,a.line=h+1,a.align="left",a.position=10+Math.min(80,Math.floor(l*8/32)*10),r.push(a))}return s&&r.length&&(r.sort((h,f)=>h.line==="auto"||f.line==="auto"?0:h.line>8&&f.line>8?f.line-h.line:h.line-f.line),r.forEach(h=>ec(s,h))),r}},wp={maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null},Fc=Re(Re({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,maxBufferSize:60*1e3*1e3,maxBufferHole:.1,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,maxFragLookUpTolerance:.25,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,loader:fr,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:On,bufferController:aa,capLevelController:ga,errorController:Cn,fpsController:pa,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrEwmaDefaultEstimateMax:5e6,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:$l,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableID3MetadataCues:!0,useMediaCapabilities:!0,certLoadPolicy:{default:wp},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:12e4,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3},kp()),{},{subtitleStreamController:ia,subtitleTrackController:ra,timelineController:ma,audioStreamController:ea,audioTrackController:ta,emeController:dr,cmcdController:Ea,contentSteeringController:xa});function kp(){return{cueHandler:Dp,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}}function Cp(s,e){if((e.liveSyncDurationCount||e.liveMaxLatencyDurationCount)&&(e.liveSyncDuration||e.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(e.liveMaxLatencyDurationCount!==void 0&&(e.liveSyncDurationCount===void 0||e.liveMaxLatencyDurationCount<=e.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(e.liveMaxLatencyDuration!==void 0&&(e.liveSyncDuration===void 0||e.liveMaxLatencyDuration<=e.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');let t=ba(s),i=["manifest","level","frag"],r=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return i.forEach(n=>{let a=`${n==="level"?"playlist":n}LoadPolicy`,o=e[a]===void 0,l=[];r.forEach(c=>{let u=`${n}Loading${c}`,d=e[u];if(d!==void 0&&o){l.push(u);let h=t[a].default;switch(e[a]={default:h},c){case"TimeOut":h.maxLoadTimeMs=d,h.maxTimeToFirstByteMs=d;break;case"MaxRetry":h.errorRetry.maxNumRetry=d,h.timeoutRetry.maxNumRetry=d;break;case"RetryDelay":h.errorRetry.retryDelayMs=d,h.timeoutRetry.retryDelayMs=d;break;case"MaxRetryTimeout":h.errorRetry.maxRetryDelayMs=d,h.timeoutRetry.maxRetryDelayMs=d;break}}}),l.length&&R.warn(`hls.js config: "${l.join('", "')}" setting(s) are deprecated, use "${a}": ${JSON.stringify(e[a])}`)}),Re(Re({},t),e)}function ba(s){return s&&typeof s=="object"?Array.isArray(s)?s.map(ba):Object.keys(s).reduce((e,t)=>(e[t]=ba(s[t]),e),{}):s}function Pp(s){let e=s.loader;e!==mr&&e!==fr?(R.log("[config]: Custom loader detected, cannot enable progressive streaming"),s.progressive=!1):Sp()&&(s.loader=mr,s.progressive=!0,s.enableSoftwareAES=!0,R.log("[config]: Progressive streaming enabled, using FetchLoader"))}var yn,_a=class extends qi{constructor(e,t){super(e,"[level-controller]"),this._levels=[],this._firstLevel=-1,this._maxAutoLevel=-1,this._startLevel=void 0,this.currentLevel=null,this.currentLevelIndex=-1,this.manualLevelIndex=-1,this.steering=void 0,this.onParsedComplete=void 0,this.steering=t,this._registerListeners()}_registerListeners(){let{hls:e}=this;e.on(v.MANIFEST_LOADING,this.onManifestLoading,this),e.on(v.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(v.LEVEL_LOADED,this.onLevelLoaded,this),e.on(v.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(v.FRAG_BUFFERED,this.onFragBuffered,this),e.on(v.ERROR,this.onError,this)}_unregisterListeners(){let{hls:e}=this;e.off(v.MANIFEST_LOADING,this.onManifestLoading,this),e.off(v.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(v.LEVEL_LOADED,this.onLevelLoaded,this),e.off(v.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(v.FRAG_BUFFERED,this.onFragBuffered,this),e.off(v.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}stopLoad(){this._levels.forEach(t=>{t.loadError=0,t.fragmentError=0}),super.stopLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1}onManifestLoading(e,t){this.resetLevels()}onManifestLoaded(e,t){let i=this.hls.config.preferManagedMediaSource,r=[],n={},a={},o=!1,l=!1,c=!1;t.levels.forEach(u=>{var d,h;let f=u.attrs,{audioCodec:m,videoCodec:g}=u;((d=m)==null?void 0:d.indexOf("mp4a.40.34"))!==-1&&(yn||(yn=/chrome|firefox/i.test(navigator.userAgent)),yn&&(u.audioCodec=m=void 0)),m&&(u.audioCodec=m=js(m,i)),((h=g)==null?void 0:h.indexOf("avc1"))===0&&(g=u.videoCodec=am(g));let{width:p,height:y,unknownCodecs:E}=u;if(o||(o=!!(p&&y)),l||(l=!!g),c||(c=!!m),E!=null&&E.length||m&&!rn(m,"audio",i)||g&&!rn(g,"video",i))return;let{CODECS:T,"FRAME-RATE":S,"HDCP-LEVEL":x,"PATHWAY-ID":I,RESOLUTION:A,"VIDEO-RANGE":L}=f,b=`${`${I||"."}-`}${u.bitrate}-${A}-${S}-${T}-${L}-${x}`;if(n[b])if(n[b].uri!==u.url&&!u.attrs["PATHWAY-ID"]){let w=a[b]+=1;u.attrs["PATHWAY-ID"]=new Array(w+1).join(".");let P=new mt(u);n[b]=P,r.push(P)}else n[b].addGroupId("audio",f.AUDIO),n[b].addGroupId("text",f.SUBTITLES);else{let w=new mt(u);n[b]=w,a[b]=1,r.push(w)}}),this.filterAndSortMediaOptions(r,t,o,l,c)}filterAndSortMediaOptions(e,t,i,r,n){let a=[],o=[],l=e;if((i||r)&&n&&(l=l.filter(({videoCodec:m,videoRange:g,width:p,height:y})=>(!!m||!!(p&&y))&&pm(g))),l.length===0){Promise.resolve().then(()=>{if(this.hls){t.levels.length&&this.warn(`One or more CODECS in variant not supported: ${JSON.stringify(t.levels[0].attrs)}`);let m=new Error("no level with compatible codecs found in manifest");this.hls.trigger(v.ERROR,{type:z.MEDIA_ERROR,details:k.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:t.url,error:m,reason:m.message})}});return}if(t.audioTracks){let{preferManagedMediaSource:m}=this.hls.config;a=t.audioTracks.filter(g=>!g.audioCodec||rn(g.audioCodec,"audio",m)),Fl(a)}t.subtitles&&(o=t.subtitles,Fl(o));let c=l.slice(0);l.sort((m,g)=>{if(m.attrs["HDCP-LEVEL"]!==g.attrs["HDCP-LEVEL"])return(m.attrs["HDCP-LEVEL"]||"")>(g.attrs["HDCP-LEVEL"]||"")?1:-1;if(i&&m.height!==g.height)return m.height-g.height;if(m.frameRate!==g.frameRate)return m.frameRate-g.frameRate;if(m.videoRange!==g.videoRange)return Ys.indexOf(m.videoRange)-Ys.indexOf(g.videoRange);if(m.videoCodec!==g.videoCodec){let p=Jo(m.videoCodec),y=Jo(g.videoCodec);if(p!==y)return y-p}if(m.uri===g.uri&&m.codecSet!==g.codecSet){let p=Ws(m.codecSet),y=Ws(g.codecSet);if(p!==y)return y-p}return m.averageBitrate!==g.averageBitrate?m.averageBitrate-g.averageBitrate:0});let u=c[0];if(this.steering&&(l=this.steering.filterParsedLevels(l),l.length!==c.length)){for(let m=0;m<c.length;m++)if(c[m].pathwayId===l[0].pathwayId){u=c[m];break}}this._levels=l;for(let m=0;m<l.length;m++)if(l[m]===u){var d;this._firstLevel=m;let g=u.bitrate,p=this.hls.bandwidthEstimate;if(this.log(`manifest loaded, ${l.length} level(s) found, first bitrate: ${g}`),((d=this.hls.userConfig)==null?void 0:d.abrEwmaDefaultEstimate)===void 0){let y=Math.min(g,this.hls.config.abrEwmaDefaultEstimateMax);y>p&&p===Fc.abrEwmaDefaultEstimate&&(this.hls.bandwidthEstimate=y)}break}let h=n&&!r,f={levels:l,audioTracks:a,subtitleTracks:o,sessionData:t.sessionData,sessionKeys:t.sessionKeys,firstLevel:this._firstLevel,stats:t.stats,audio:n,video:r,altAudio:!h&&a.some(m=>!!m.url)};this.hls.trigger(v.MANIFEST_PARSED,f),(this.hls.config.autoStartLoad||this.hls.forceStartLoad)&&this.hls.startLoad(this.hls.config.startPosition)}get levels(){return this._levels.length===0?null:this._levels}get level(){return this.currentLevelIndex}set level(e){let t=this._levels;if(t.length===0)return;if(e<0||e>=t.length){let u=new Error("invalid level idx"),d=e<0;if(this.hls.trigger(v.ERROR,{type:z.OTHER_ERROR,details:k.LEVEL_SWITCH_ERROR,level:e,fatal:d,error:u,reason:u.message}),d)return;e=Math.min(e,t.length-1)}let i=this.currentLevelIndex,r=this.currentLevel,n=r?r.attrs["PATHWAY-ID"]:void 0,a=t[e],o=a.attrs["PATHWAY-ID"];if(this.currentLevelIndex=e,this.currentLevel=a,i===e&&a.details&&r&&n===o)return;this.log(`Switching to level ${e} (${a.height?a.height+"p ":""}${a.videoRange?a.videoRange+" ":""}${a.codecSet?a.codecSet+" ":""}@${a.bitrate})${o?" with Pathway "+o:""} from level ${i}${n?" with Pathway "+n:""}`);let l={level:e,attrs:a.attrs,details:a.details,bitrate:a.bitrate,averageBitrate:a.averageBitrate,maxBitrate:a.maxBitrate,realBitrate:a.realBitrate,width:a.width,height:a.height,codecSet:a.codecSet,audioCodec:a.audioCodec,videoCodec:a.videoCodec,audioGroups:a.audioGroups,subtitleGroups:a.subtitleGroups,loaded:a.loaded,loadError:a.loadError,fragmentError:a.fragmentError,name:a.name,id:a.id,uri:a.uri,url:a.url,urlId:0,audioGroupIds:a.audioGroupIds,textGroupIds:a.textGroupIds};this.hls.trigger(v.LEVEL_SWITCHING,l);let c=a.details;if(!c||c.live){let u=this.switchParams(a.uri,r==null?void 0:r.details,c);this.loadPlaylist(u)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(e){this.manualLevelIndex=e,this._startLevel===void 0&&(this._startLevel=e),e!==-1&&(this.level=e)}get firstLevel(){return this._firstLevel}set firstLevel(e){this._firstLevel=e}get startLevel(){if(this._startLevel===void 0){let e=this.hls.config.startLevel;return e!==void 0?e:this.hls.firstAutoLevel}return this._startLevel}set startLevel(e){this._startLevel=e}onError(e,t){t.fatal||!t.context||t.context.type===te.LEVEL&&t.context.level===this.level&&this.checkRetry(t)}onFragBuffered(e,{frag:t}){if(t!==void 0&&t.type===j.MAIN){let i=t.elementaryStreams;if(!Object.keys(i).some(n=>!!i[n]))return;let r=this._levels[t.level];r!=null&&r.loadError&&(this.log(`Resetting level error count of ${r.loadError} on frag buffered`),r.loadError=0)}}onLevelLoaded(e,t){var i;let{level:r,details:n}=t,a=this._levels[r];if(!a){var o;this.warn(`Invalid level index ${r}`),(o=t.deliveryDirectives)!=null&&o.skip&&(n.deltaUpdateFailed=!0);return}r===this.currentLevelIndex?(a.fragmentError===0&&(a.loadError=0),this.playlistLoaded(r,t,a.details)):(i=t.deliveryDirectives)!=null&&i.skip&&(n.deltaUpdateFailed=!0)}loadPlaylist(e){super.loadPlaylist();let t=this.currentLevelIndex,i=this.currentLevel;if(i&&this.shouldLoadPlaylist(i)){let r=i.uri;if(e)try{r=e.addDirectives(r)}catch(a){this.warn(`Could not construct new URL with HLS Delivery Directives: ${a}`)}let n=i.attrs["PATHWAY-ID"];this.log(`Loading level index ${t}${(e==null?void 0:e.msn)!==void 0?" at sn "+e.msn+" part "+e.part:""} with${n?" Pathway "+n:""} ${r}`),this.clearTimer(),this.hls.trigger(v.LEVEL_LOADING,{url:r,level:t,pathwayId:i.attrs["PATHWAY-ID"],id:0,deliveryDirectives:e||null})}}get nextLoadLevel(){return this.manualLevelIndex!==-1?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(e){this.level=e,this.manualLevelIndex===-1&&(this.hls.nextAutoLevel=e)}removeLevel(e){var t;let i=this._levels.filter((r,n)=>n!==e?!0:(this.steering&&this.steering.removeLevel(r),r===this.currentLevel&&(this.currentLevel=null,this.currentLevelIndex=-1,r.details&&r.details.fragments.forEach(a=>a.level=-1)),!1));rc(i),this._levels=i,this.currentLevelIndex>-1&&(t=this.currentLevel)!=null&&t.details&&(this.currentLevelIndex=this.currentLevel.details.fragments[0].level),this.hls.trigger(v.LEVELS_UPDATED,{levels:i})}onLevelsUpdated(e,{levels:t}){this._levels=t}checkMaxAutoUpdated(){let{autoLevelCapping:e,maxAutoLevel:t,maxHdcpLevel:i}=this.hls;this._maxAutoLevel!==t&&(this._maxAutoLevel=t,this.hls.trigger(v.MAX_AUTO_LEVEL_UPDATED,{autoLevelCapping:e,levels:this.levels,maxAutoLevel:t,minAutoLevel:this.hls.minAutoLevel,maxHdcpLevel:i}))}};function Fl(s){let e={};s.forEach(t=>{let i=t.groupId||"";t.id=e[i]=e[i]||0,e[i]++})}var Aa=class{constructor(e){this.config=void 0,this.keyUriToKeyInfo={},this.emeController=null,this.config=e}abort(e){for(let i in this.keyUriToKeyInfo){let r=this.keyUriToKeyInfo[i].loader;if(r){var t;if(e&&e!==((t=r.context)==null?void 0:t.frag.type))return;r.abort()}}}detach(){for(let e in this.keyUriToKeyInfo){let t=this.keyUriToKeyInfo[e];(t.mediaKeySessionContext||t.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[e]}}destroy(){this.detach();for(let e in this.keyUriToKeyInfo){let t=this.keyUriToKeyInfo[e].loader;t&&t.destroy()}this.keyUriToKeyInfo={}}createKeyLoadError(e,t=k.KEY_LOAD_ERROR,i,r,n){return new qe({type:z.NETWORK_ERROR,details:t,fatal:!1,frag:e,response:n,error:i,networkDetails:r})}loadClear(e,t){if(this.emeController&&this.config.emeEnabled){let{sn:i,cc:r}=e;for(let n=0;n<t.length;n++){let a=t[n];if(r<=a.cc&&(i==="initSegment"||a.sn==="initSegment"||i<a.sn)){this.emeController.selectKeySystemFormat(a).then(o=>{a.setKeyFormat(o)});break}}}}load(e){return!e.decryptdata&&e.encrypted&&this.emeController?this.emeController.selectKeySystemFormat(e).then(t=>this.loadInternal(e,t)):this.loadInternal(e)}loadInternal(e,t){var i,r;t&&e.setKeyFormat(t);let n=e.decryptdata;if(!n){let c=new Error(t?`Expected frag.decryptdata to be defined after setting format ${t}`:"Missing decryption data on fragment in onKeyLoading");return Promise.reject(this.createKeyLoadError(e,k.KEY_LOAD_ERROR,c))}let a=n.uri;if(!a)return Promise.reject(this.createKeyLoadError(e,k.KEY_LOAD_ERROR,new Error(`Invalid key URI: "${a}"`)));let o=this.keyUriToKeyInfo[a];if((i=o)!=null&&i.decryptdata.key)return n.key=o.decryptdata.key,Promise.resolve({frag:e,keyInfo:o});if((r=o)!=null&&r.keyLoadPromise){var l;switch((l=o.mediaKeySessionContext)==null?void 0:l.keyStatus){case void 0:case"status-pending":case"usable":case"usable-in-future":return o.keyLoadPromise.then(c=>(n.key=c.keyInfo.decryptdata.key,{frag:e,keyInfo:o}))}}switch(o=this.keyUriToKeyInfo[a]={decryptdata:n,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},n.method){case"ISO-23001-7":case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return n.keyFormat==="identity"?this.loadKeyHTTP(o,e):this.loadKeyEME(o,e);case"AES-128":return this.loadKeyHTTP(o,e);default:return Promise.reject(this.createKeyLoadError(e,k.KEY_LOAD_ERROR,new Error(`Key supplied with unsupported METHOD: "${n.method}"`)))}}loadKeyEME(e,t){let i={frag:t,keyInfo:e};if(this.emeController&&this.config.emeEnabled){let r=this.emeController.loadKey(i);if(r)return(e.keyLoadPromise=r.then(n=>(e.mediaKeySessionContext=n,i))).catch(n=>{throw e.keyLoadPromise=null,n})}return Promise.resolve(i)}loadKeyHTTP(e,t){let i=this.config,r=i.loader,n=new r(i);return t.keyLoader=e.loader=n,e.keyLoadPromise=new Promise((a,o)=>{let l={keyInfo:e,frag:t,responseType:"arraybuffer",url:e.decryptdata.uri},c=i.keyLoadPolicy.default,u={loadPolicy:c,timeout:c.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},d={onSuccess:(h,f,m,g)=>{let{frag:p,keyInfo:y,url:E}=m;if(!p.decryptdata||y!==this.keyUriToKeyInfo[E])return o(this.createKeyLoadError(p,k.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),g));y.decryptdata.key=p.decryptdata.key=new Uint8Array(h.data),p.keyLoader=null,y.loader=null,a({frag:p,keyInfo:y})},onError:(h,f,m,g)=>{this.resetLoader(f),o(this.createKeyLoadError(t,k.KEY_LOAD_ERROR,new Error(`HTTP Error ${h.code} loading key ${h.text}`),m,Re({url:l.url,data:void 0},h)))},onTimeout:(h,f,m)=>{this.resetLoader(f),o(this.createKeyLoadError(t,k.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),m))},onAbort:(h,f,m)=>{this.resetLoader(f),o(this.createKeyLoadError(t,k.INTERNAL_ABORTED,new Error("key loading aborted"),m))}};n.load(l,u,d)})}resetLoader(e){let{frag:t,keyInfo:i,url:r}=e,n=i.loader;t.keyLoader===n&&(t.keyLoader=null,i.loader=null),delete this.keyUriToKeyInfo[r],n&&n.destroy()}};function Uc(){return self.SourceBuffer||self.WebKitSourceBuffer}function Bc(){if(!Kt())return!1;let e=Uc();return!e||e.prototype&&typeof e.prototype.appendBuffer=="function"&&typeof e.prototype.remove=="function"}function Op(){if(!Bc())return!1;let s=Kt();return typeof(s==null?void 0:s.isTypeSupported)=="function"&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some(e=>s.isTypeSupported(Ki(e,"video")))||["mp4a.40.2","fLaC"].some(e=>s.isTypeSupported(Ki(e,"audio"))))}function Mp(){var s;let e=Uc();return typeof(e==null||(s=e.prototype)==null?void 0:s.changeType)=="function"}var Np=250,Gs=2,Fp=.1,Up=.05,La=class{constructor(e,t,i,r){this.config=void 0,this.media=null,this.fragmentTracker=void 0,this.hls=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.config=e,this.media=t,this.fragmentTracker=i,this.hls=r}destroy(){this.media=null,this.hls=this.fragmentTracker=null}poll(e,t){let{config:i,media:r,stalled:n}=this;if(r===null)return;let{currentTime:a,seeking:o}=r,l=this.seeking&&!o,c=!this.seeking&&o;if(this.seeking=o,a!==e){if(this.moved=!0,o||(this.nudgeRetry=0),n!==null){if(this.stallReported){let p=self.performance.now()-n;R.warn(`playback not stuck anymore @${a}, after ${Math.round(p)}ms`),this.stallReported=!1}this.stalled=null}return}if(c||l){this.stalled=null;return}if(r.paused&&!o||r.ended||r.playbackRate===0||!le.getBuffered(r).length){this.nudgeRetry=0;return}let u=le.bufferInfo(r,a,0),d=u.nextStart||0;if(o){let p=u.len>Gs,y=!d||t&&t.start<=a||d-a>Gs&&!this.fragmentTracker.getPartialFragment(a);if(p||y)return;this.moved=!1}if(!this.moved&&this.stalled!==null){var h;if(!(u.len>0)&&!d)return;let y=Math.max(d,u.start||0)-a,E=this.hls.levels?this.hls.levels[this.hls.currentLevel]:null,S=(E==null||(h=E.details)==null?void 0:h.live)?E.details.targetduration*2:Gs,x=this.fragmentTracker.getPartialFragment(a);if(y>0&&(y<=S||x)){r.paused||this._trySkipBufferHole(x);return}}let f=self.performance.now();if(n===null){this.stalled=f;return}let m=f-n;if(!o&&m>=Np&&(this._reportStall(u),!this.media))return;let g=le.bufferInfo(r,a,i.maxBufferHole);this._tryFixBufferStall(g,m)}_tryFixBufferStall(e,t){let{config:i,fragmentTracker:r,media:n}=this;if(n===null)return;let a=n.currentTime,o=r.getPartialFragment(a);o&&(this._trySkipBufferHole(o)||!this.media)||(e.len>i.maxBufferHole||e.nextStart&&e.nextStart-a<i.maxBufferHole)&&t>i.highBufferWatchdogPeriod*1e3&&(R.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())}_reportStall(e){let{hls:t,media:i,stallReported:r}=this;if(!r&&i){this.stallReported=!0;let n=new Error(`Playback stalling at @${i.currentTime} due to low buffer (${JSON.stringify(e)})`);R.warn(n.message),t.trigger(v.ERROR,{type:z.MEDIA_ERROR,details:k.BUFFER_STALLED_ERROR,fatal:!1,error:n,buffer:e.len})}}_trySkipBufferHole(e){let{config:t,hls:i,media:r}=this;if(r===null)return 0;let n=r.currentTime,a=le.bufferInfo(r,n,0),o=n<a.start?a.start:a.nextStart;if(o){let l=a.len<=t.maxBufferHole,c=a.len>0&&a.len<1&&r.readyState<3,u=o-n;if(u>0&&(l||c)){if(u>t.maxBufferHole){let{fragmentTracker:h}=this,f=!1;if(n===0){let m=h.getAppendedFrag(0,j.MAIN);m&&o<m.end&&(f=!0)}if(!f){let m=e||h.getAppendedFrag(n,j.MAIN);if(m){let g=!1,p=m.end;for(;p<o;){let y=h.getPartialFragment(p);if(y)p+=y.duration;else{g=!0;break}}if(g)return 0}}}let d=Math.max(o+Up,n+Fp);if(R.warn(`skipping hole, adjusting currentTime from ${n} to ${d}`),this.moved=!0,this.stalled=null,r.currentTime=d,e&&!e.gap){let h=new Error(`fragment loaded with buffer holes, seeking from ${n} to ${d}`);i.trigger(v.ERROR,{type:z.MEDIA_ERROR,details:k.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:h,reason:h.message,frag:e})}return d}}return 0}_tryNudgeBuffer(){let{config:e,hls:t,media:i,nudgeRetry:r}=this;if(i===null)return;let n=i.currentTime;if(this.nudgeRetry++,r<e.nudgeMaxRetry){let a=n+(r+1)*e.nudgeOffset,o=new Error(`Nudging 'currentTime' from ${n} to ${a}`);R.warn(o.message),i.currentTime=a,t.trigger(v.ERROR,{type:z.MEDIA_ERROR,details:k.BUFFER_NUDGE_ON_STALL,error:o,fatal:!1})}else{let a=new Error(`Playhead still not moving while enough data buffered @${n} after ${e.nudgeMaxRetry} nudges`);R.error(a.message),t.trigger(v.ERROR,{type:z.MEDIA_ERROR,details:k.BUFFER_STALLED_ERROR,error:a,fatal:!0})}}},Bp=100,Ra=class extends Yi{constructor(e,t,i){super(e,t,i,"[stream-controller]",j.MAIN),this.audioCodecSwap=!1,this.gapController=null,this.level=-1,this._forceStartLoad=!1,this.altAudio=!1,this.audioOnly=!1,this.fragPlaying=null,this.onvplaying=null,this.onvseeked=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this._registerListeners()}_registerListeners(){let{hls:e}=this;e.on(v.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(v.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(v.MANIFEST_LOADING,this.onManifestLoading,this),e.on(v.MANIFEST_PARSED,this.onManifestParsed,this),e.on(v.LEVEL_LOADING,this.onLevelLoading,this),e.on(v.LEVEL_LOADED,this.onLevelLoaded,this),e.on(v.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.on(v.ERROR,this.onError,this),e.on(v.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(v.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.on(v.BUFFER_CREATED,this.onBufferCreated,this),e.on(v.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(v.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(v.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(v.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(v.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(v.MANIFEST_LOADING,this.onManifestLoading,this),e.off(v.MANIFEST_PARSED,this.onManifestParsed,this),e.off(v.LEVEL_LOADED,this.onLevelLoaded,this),e.off(v.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),e.off(v.ERROR,this.onError,this),e.off(v.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(v.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),e.off(v.BUFFER_CREATED,this.onBufferCreated,this),e.off(v.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(v.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(v.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying()}startLoad(e){if(this.levels){let{lastCurrentTime:t,hls:i}=this;if(this.stopLoad(),this.setInterval(Bp),this.level=-1,!this.startFragRequested){let r=i.startLevel;r===-1&&(i.config.testBandwidth&&this.levels.length>1?(r=0,this.bitrateTest=!0):r=i.firstAutoLevel),i.nextLoadLevel=r,this.level=i.loadLevel,this.loadedmetadata=!1}t>0&&e===-1&&(this.log(`Override startPosition with lastCurrentTime @${t.toFixed(3)}`),e=t),this.state=C.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}else this._forceStartLoad=!0,this.state=C.STOPPED}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case C.WAITING_LEVEL:{let{levels:t,level:i}=this,r=t==null?void 0:t[i],n=r==null?void 0:r.details;if(n&&(!n.live||this.levelLastLoaded===r)){if(this.waitForCdnTuneIn(n))break;this.state=C.IDLE;break}else if(this.hls.nextLoadLevel!==this.level){this.state=C.IDLE;break}break}case C.FRAG_LOADING_WAITING_RETRY:{var e;let t=self.performance.now(),i=this.retryDate;if(!i||t>=i||(e=this.media)!=null&&e.seeking){let{levels:r,level:n}=this,a=r==null?void 0:r[n];this.resetStartWhenNotLoaded(a||null),this.state=C.IDLE}}break}this.state===C.IDLE&&this.doTickIdle(),this.onTickEnd()}onTickEnd(){super.onTickEnd(),this.checkBuffer(),this.checkFragmentChanged()}doTickIdle(){let{hls:e,levelLastLoaded:t,levels:i,media:r}=this;if(t===null||!r&&(this.startFragRequested||!e.config.startFragPrefetch)||this.altAudio&&this.audioOnly)return;let n=e.nextLoadLevel;if(!(i!=null&&i[n]))return;let a=i[n],o=this.getMainFwdBufferInfo();if(o===null)return;let l=this.getLevelDetails();if(l&&this._streamEnded(o,l)){let g={};this.altAudio&&(g.type="video"),this.hls.trigger(v.BUFFER_EOS,g),this.state=C.ENDED;return}e.loadLevel!==n&&e.manualLevel===-1&&this.log(`Adapting to level ${n} from level ${this.level}`),this.level=e.nextLoadLevel=n;let c=a.details;if(!c||this.state===C.WAITING_LEVEL||c.live&&this.levelLastLoaded!==a){this.level=n,this.state=C.WAITING_LEVEL;return}let u=o.len,d=this.getMaxBufferLength(a.maxBitrate);if(u>=d)return;this.backtrackFragment&&this.backtrackFragment.start>o.end&&(this.backtrackFragment=null);let h=this.backtrackFragment?this.backtrackFragment.start:o.end,f=this.getNextFragment(h,c);if(this.couldBacktrack&&!this.fragPrevious&&f&&f.sn!=="initSegment"&&this.fragmentTracker.getState(f)!==Le.OK){var m;let p=((m=this.backtrackFragment)!=null?m:f).sn-c.startSN,y=c.fragments[p-1];y&&f.cc===y.cc&&(f=y,this.fragmentTracker.removeFragment(y))}else this.backtrackFragment&&o.len&&(this.backtrackFragment=null);if(f&&this.isLoopLoading(f,h)){if(!f.gap){let p=this.audioOnly&&!this.altAudio?ae.AUDIO:ae.VIDEO,y=(p===ae.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;y&&this.afterBufferFlushed(y,p,j.MAIN)}f=this.getNextFragmentLoopLoading(f,c,o,j.MAIN,d)}f&&(f.initSegment&&!f.initSegment.data&&!this.bitrateTest&&(f=f.initSegment),this.loadFragment(f,a,h))}loadFragment(e,t,i){let r=this.fragmentTracker.getState(e);this.fragCurrent=e,r===Le.NOT_LOADED||r===Le.PARTIAL?e.sn==="initSegment"?this._loadInitSegment(e,t):this.bitrateTest?(this.log(`Fragment ${e.sn} of level ${e.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(e,t)):(this.startFragRequested=!0,super.loadFragment(e,t,i)):this.clearTrackerIfNeeded(e)}getBufferedFrag(e){return this.fragmentTracker.getBufferedFrag(e,j.MAIN)}followingBufferedFrag(e){return e?this.getBufferedFrag(e.end+.5):null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}nextLevelSwitch(){let{levels:e,media:t}=this;if(t!=null&&t.readyState){let i,r=this.getAppendedFrag(t.currentTime);r&&r.start>1&&this.flushMainBuffer(0,r.start-1);let n=this.getLevelDetails();if(n!=null&&n.live){let o=this.getMainFwdBufferInfo();if(!o||o.len<n.targetduration*2)return}if(!t.paused&&e){let o=this.hls.nextLoadLevel,l=e[o],c=this.fragLastKbps;c&&this.fragCurrent?i=this.fragCurrent.duration*l.maxBitrate/(1e3*c)+1:i=0}else i=0;let a=this.getBufferedFrag(t.currentTime+i);if(a){let o=this.followingBufferedFrag(a);if(o){this.abortCurrentFrag();let l=o.maxStartPTS?o.maxStartPTS:o.start,c=o.duration,u=Math.max(a.end,l+Math.min(Math.max(c-this.config.maxFragLookUpTolerance,c*(this.couldBacktrack?.5:.125)),c*(this.couldBacktrack?.75:.25)));this.flushMainBuffer(u,Number.POSITIVE_INFINITY)}}}}abortCurrentFrag(){let e=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,e&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.state){case C.KEY_LOADING:case C.FRAG_LOADING:case C.FRAG_LOADING_WAITING_RETRY:case C.PARSING:case C.PARSED:this.state=C.IDLE;break}this.nextLoadPosition=this.getLoadPosition()}flushMainBuffer(e,t){super.flushMainBuffer(e,t,this.altAudio?"video":null)}onMediaAttached(e,t){super.onMediaAttached(e,t);let i=t.media;this.onvplaying=this.onMediaPlaying.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),i.addEventListener("playing",this.onvplaying),i.addEventListener("seeked",this.onvseeked),this.gapController=new La(this.config,i,this.fragmentTracker,this.hls)}onMediaDetaching(){let{media:e}=this;e&&this.onvplaying&&this.onvseeked&&(e.removeEventListener("playing",this.onvplaying),e.removeEventListener("seeked",this.onvseeked),this.onvplaying=this.onvseeked=null,this.videoBuffer=null),this.fragPlaying=null,this.gapController&&(this.gapController.destroy(),this.gapController=null),super.onMediaDetaching()}onMediaPlaying(){this.tick()}onMediaSeeked(){let e=this.media,t=e?e.currentTime:null;G(t)&&this.log(`Media seeked to ${t.toFixed(3)}`);let i=this.getMainFwdBufferInfo();if(i===null||i.len===0){this.warn(`Main forward buffer length on "seeked" event ${i?i.len:"empty"})`);return}this.tick()}onManifestLoading(){this.log("Trigger BUFFER_RESET"),this.hls.trigger(v.BUFFER_RESET,void 0),this.fragmentTracker.removeAllFragments(),this.couldBacktrack=!1,this.startPosition=this.lastCurrentTime=this.fragLastKbps=0,this.levels=this.fragPlaying=this.backtrackFragment=this.levelLastLoaded=null,this.altAudio=this.audioOnly=this.startFragRequested=!1}onManifestParsed(e,t){let i=!1,r=!1;t.levels.forEach(n=>{let a=n.audioCodec;a&&(i=i||a.indexOf("mp4a.40.2")!==-1,r=r||a.indexOf("mp4a.40.5")!==-1)}),this.audioCodecSwitch=i&&r&&!Mp(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=t.levels,this.startFragRequested=!1}onLevelLoading(e,t){let{levels:i}=this;if(!i||this.state!==C.IDLE)return;let r=i[t.level];(!r.details||r.details.live&&this.levelLastLoaded!==r||this.waitForCdnTuneIn(r.details))&&(this.state=C.WAITING_LEVEL)}onLevelLoaded(e,t){var i;let{levels:r}=this,n=t.level,a=t.details,o=a.totalduration;if(!r){this.warn(`Levels were reset while loading level ${n}`);return}this.log(`Level ${n} loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""}, cc [${a.startCC}, ${a.endCC}] duration:${o}`);let l=r[n],c=this.fragCurrent;c&&(this.state===C.FRAG_LOADING||this.state===C.FRAG_LOADING_WAITING_RETRY)&&c.level!==t.level&&c.loader&&this.abortCurrentFrag();let u=0;if(a.live||(i=l.details)!=null&&i.live){var d;if(this.checkLiveUpdate(a),a.deltaUpdateFailed)return;u=this.alignPlaylists(a,l.details,(d=this.levelLastLoaded)==null?void 0:d.details)}if(l.details=a,this.levelLastLoaded=l,this.hls.trigger(v.LEVEL_UPDATED,{details:a,level:n}),this.state===C.WAITING_LEVEL){if(this.waitForCdnTuneIn(a))return;this.state=C.IDLE}this.startFragRequested?a.live&&this.synchronizeToLiveEdge(a):this.setStartPosition(a,u),this.tick()}_handleFragmentLoadProgress(e){var t;let{frag:i,part:r,payload:n}=e,{levels:a}=this;if(!a){this.warn(`Levels were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);return}let o=a[i.level],l=o.details;if(!l){this.warn(`Dropping fragment ${i.sn} of level ${i.level} after level details were reset`),this.fragmentTracker.removeFragment(i);return}let c=o.videoCodec,u=l.PTSKnown||!l.live,d=(t=i.initSegment)==null?void 0:t.data,h=this._getAudioCodec(o),f=this.transmuxer=this.transmuxer||new or(this.hls,j.MAIN,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),m=r?r.index:-1,g=m!==-1,p=new Wi(i.level,i.sn,i.stats.chunkCount,n.byteLength,m,g),y=this.initPTS[i.cc];f.push(n,d,h,c,i,r,l.totalduration,u,p,y)}onAudioTrackSwitching(e,t){let i=this.altAudio;if(!!!t.url){if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;let a=this.fragCurrent;a&&(this.log("Switching to main audio track, cancel main fragment load"),a.abortRequests(),this.fragmentTracker.removeFragment(a)),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();let n=this.hls;i&&(n.trigger(v.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null}),this.fragmentTracker.removeAllFragments()),n.trigger(v.AUDIO_TRACK_SWITCHED,t)}}onAudioTrackSwitched(e,t){let i=t.id,r=!!this.hls.audioTracks[i].url;if(r){let n=this.videoBuffer;n&&this.mediaBuffer!==n&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=n)}this.altAudio=r,this.tick()}onBufferCreated(e,t){let i=t.tracks,r,n,a=!1;for(let o in i){let l=i[o];if(l.id==="main"){if(n=o,r=l,o==="video"){let c=i[o];c&&(this.videoBuffer=c.buffer)}}else a=!0}a&&r?(this.log(`Alternate track found, use ${n}.buffered to schedule main fragment loading`),this.mediaBuffer=r.buffer):this.mediaBuffer=this.media}onFragBuffered(e,t){let{frag:i,part:r}=t;if(i&&i.type!==j.MAIN)return;if(this.fragContextChanged(i)){this.warn(`Fragment ${i.sn}${r?" p: "+r.index:""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}`),this.state===C.PARSED&&(this.state=C.IDLE);return}let n=r?r.stats:i.stats;this.fragLastKbps=Math.round(8*n.total/(n.buffering.end-n.loading.first)),i.sn!=="initSegment"&&(this.fragPrevious=i),this.fragBufferedComplete(i,r)}onError(e,t){var i;if(t.fatal){this.state=C.ERROR;return}switch(t.details){case k.FRAG_GAP:case k.FRAG_PARSING_ERROR:case k.FRAG_DECRYPT_ERROR:case k.FRAG_LOAD_ERROR:case k.FRAG_LOAD_TIMEOUT:case k.KEY_LOAD_ERROR:case k.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(j.MAIN,t);break;case k.LEVEL_LOAD_ERROR:case k.LEVEL_LOAD_TIMEOUT:case k.LEVEL_PARSING_ERROR:!t.levelRetry&&this.state===C.WAITING_LEVEL&&((i=t.context)==null?void 0:i.type)===te.LEVEL&&(this.state=C.IDLE);break;case k.BUFFER_APPEND_ERROR:case k.BUFFER_FULL_ERROR:if(!t.parent||t.parent!=="main")return;if(t.details===k.BUFFER_APPEND_ERROR){this.resetLoadingState();return}this.reduceLengthAndFlushBuffer(t)&&this.flushMainBuffer(0,Number.POSITIVE_INFINITY);break;case k.INTERNAL_EXCEPTION:this.recoverWorkerError(t);break}}checkBuffer(){let{media:e,gapController:t}=this;if(!(!e||!t||!e.readyState)){if(this.loadedmetadata||!le.getBuffered(e).length){let i=this.state!==C.IDLE?this.fragCurrent:null;t.poll(this.lastCurrentTime,i)}this.lastCurrentTime=e.currentTime}}onFragLoadEmergencyAborted(){this.state=C.IDLE,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tickImmediate()}onBufferFlushed(e,{type:t}){if(t!==ae.AUDIO||this.audioOnly&&!this.altAudio){let i=(t===ae.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;this.afterBufferFlushed(i,t,j.MAIN),this.tick()}}onLevelsUpdated(e,t){this.level>-1&&this.fragCurrent&&(this.level=this.fragCurrent.level),this.levels=t.levels}swapAudioCodec(){this.audioCodecSwap=!this.audioCodecSwap}seekToStartPos(){let{media:e}=this;if(!e)return;let t=e.currentTime,i=this.startPosition;if(i>=0&&t<i){if(e.seeking){this.log(`could not seek to ${i}, already seeking at ${t}`);return}let r=le.getBuffered(e),a=(r.length?r.start(0):0)-i;a>0&&(a<this.config.maxBufferHole||a<this.config.maxFragLookUpTolerance)&&(this.log(`adjusting start position by ${a} to match buffer start`),i+=a,this.startPosition=i),this.log(`seek to target start position ${i} from current time ${t}`),e.currentTime=i}}_getAudioCodec(e){let t=this.config.defaultAudioCodec||e.audioCodec;return this.audioCodecSwap&&t&&(this.log("Swapping audio codec"),t.indexOf("mp4a.40.5")!==-1?t="mp4a.40.2":t="mp4a.40.5"),t}_loadBitrateTestFrag(e,t){e.bitrateTest=!0,this._doFragLoad(e,t).then(i=>{let{hls:r}=this;if(!i||this.fragContextChanged(e))return;t.fragmentError=0,this.state=C.IDLE,this.startFragRequested=!1,this.bitrateTest=!1;let n=e.stats;n.parsing.start=n.parsing.end=n.buffering.start=n.buffering.end=self.performance.now(),r.trigger(v.FRAG_LOADED,i),e.bitrateTest=!1})}_handleTransmuxComplete(e){var t;let i="main",{hls:r}=this,{remuxResult:n,chunkMeta:a}=e,o=this.getCurrentContext(a);if(!o){this.resetWhenMissingContext(a);return}let{frag:l,part:c,level:u}=o,{video:d,text:h,id3:f,initSegment:m}=n,{details:g}=u,p=this.altAudio?void 0:n.audio;if(this.fragContextChanged(l)){this.fragmentTracker.removeFragment(l);return}if(this.state=C.PARSING,m){if(m!=null&&m.tracks){let T=l.initSegment||l;this._bufferInitSegment(u,m.tracks,T,a),r.trigger(v.FRAG_PARSING_INIT_SEGMENT,{frag:T,id:i,tracks:m.tracks})}let y=m.initPTS,E=m.timescale;G(y)&&(this.initPTS[l.cc]={baseTime:y,timescale:E},r.trigger(v.INIT_PTS_FOUND,{frag:l,id:i,initPTS:y,timescale:E}))}if(d&&g&&l.sn!=="initSegment"){let y=g.fragments[l.sn-1-g.startSN],E=l.sn===g.startSN,T=!y||l.cc>y.cc;if(n.independent!==!1){let{startPTS:S,endPTS:x,startDTS:I,endDTS:A}=d;if(c)c.elementaryStreams[d.type]={startPTS:S,endPTS:x,startDTS:I,endDTS:A};else if(d.firstKeyFrame&&d.independent&&a.id===1&&!T&&(this.couldBacktrack=!0),d.dropped&&d.independent){let L=this.getMainFwdBufferInfo(),D=(L?L.end:this.getLoadPosition())+this.config.maxBufferHole,b=d.firstKeyFramePTS?d.firstKeyFramePTS:S;if(!E&&D<b-this.config.maxBufferHole&&!T){this.backtrack(l);return}else T&&(l.gap=!0);l.setElementaryStreamInfo(d.type,l.start,x,l.start,A,!0)}else E&&S>Gs&&(l.gap=!0);l.setElementaryStreamInfo(d.type,S,x,I,A),this.backtrackFragment&&(this.backtrackFragment=l),this.bufferFragmentData(d,l,c,a,E||T)}else if(E||T)l.gap=!0;else{this.backtrack(l);return}}if(p){let{startPTS:y,endPTS:E,startDTS:T,endDTS:S}=p;c&&(c.elementaryStreams[ae.AUDIO]={startPTS:y,endPTS:E,startDTS:T,endDTS:S}),l.setElementaryStreamInfo(ae.AUDIO,y,E,T,S),this.bufferFragmentData(p,l,c,a)}if(g&&f!=null&&(t=f.samples)!=null&&t.length){let y={id:i,frag:l,details:g,samples:f.samples};r.trigger(v.FRAG_PARSING_METADATA,y)}if(g&&h){let y={id:i,frag:l,details:g,samples:h.samples};r.trigger(v.FRAG_PARSING_USERDATA,y)}}_bufferInitSegment(e,t,i,r){if(this.state!==C.PARSING)return;this.audioOnly=!!t.audio&&!t.video,this.altAudio&&!this.audioOnly&&delete t.audio;let{audio:n,video:a,audiovideo:o}=t;if(n){let l=e.audioCodec,c=navigator.userAgent.toLowerCase();if(this.audioCodecSwitch){l&&(l.indexOf("mp4a.40.5")!==-1?l="mp4a.40.2":l="mp4a.40.5");let u=n.metadata;u&&"channelCount"in u&&(u.channelCount||1)!==1&&c.indexOf("firefox")===-1&&(l="mp4a.40.5")}l&&l.indexOf("mp4a.40.5")!==-1&&c.indexOf("android")!==-1&&n.container!=="audio/mpeg"&&(l="mp4a.40.2",this.log(`Android: force audio codec to ${l}`)),e.audioCodec&&e.audioCodec!==l&&this.log(`Swapping manifest audio codec "${e.audioCodec}" for "${l}"`),n.levelCodec=l,n.id="main",this.log(`Init audio buffer, container:${n.container}, codecs[selected/level/parsed]=[${l||""}/${e.audioCodec||""}/${n.codec}]`)}a&&(a.levelCodec=e.videoCodec,a.id="main",this.log(`Init video buffer, container:${a.container}, codecs[level/parsed]=[${e.videoCodec||""}/${a.codec}]`)),o&&this.log(`Init audiovideo buffer, container:${o.container}, codecs[level/parsed]=[${e.codecs}/${o.codec}]`),this.hls.trigger(v.BUFFER_CODECS,t),Object.keys(t).forEach(l=>{let u=t[l].initSegment;u!=null&&u.byteLength&&this.hls.trigger(v.BUFFER_APPENDING,{type:l,data:u,frag:i,part:null,chunkMeta:r,parent:i.type})}),this.tickImmediate()}getMainFwdBufferInfo(){return this.getFwdBufferInfo(this.mediaBuffer?this.mediaBuffer:this.media,j.MAIN)}backtrack(e){this.couldBacktrack=!0,this.backtrackFragment=e,this.resetTransmuxer(),this.flushBufferGap(e),this.fragmentTracker.removeFragment(e),this.fragPrevious=null,this.nextLoadPosition=e.start,this.state=C.IDLE}checkFragmentChanged(){let e=this.media,t=null;if(e&&e.readyState>1&&e.seeking===!1){let i=e.currentTime;if(le.isBuffered(e,i)?t=this.getAppendedFrag(i):le.isBuffered(e,i+.1)&&(t=this.getAppendedFrag(i+.1)),t){this.backtrackFragment=null;let r=this.fragPlaying,n=t.level;(!r||t.sn!==r.sn||r.level!==n)&&(this.fragPlaying=t,this.hls.trigger(v.FRAG_CHANGED,{frag:t}),(!r||r.level!==n)&&this.hls.trigger(v.LEVEL_SWITCHED,{level:n}))}}}get nextLevel(){let e=this.nextBufferedFrag;return e?e.level:-1}get currentFrag(){let e=this.media;return e?this.fragPlaying||this.getAppendedFrag(e.currentTime):null}get currentProgramDateTime(){let e=this.media;if(e){let t=e.currentTime,i=this.currentFrag;if(i&&G(t)&&G(i.programDateTime)){let r=i.programDateTime+(t-i.start)*1e3;return new Date(r)}}return null}get currentLevel(){let e=this.currentFrag;return e?e.level:-1}get nextBufferedFrag(){let e=this.currentFrag;return e?this.followingBufferedFrag(e):null}get forceStartLoad(){return this._forceStartLoad}},Qi=class s{static get version(){return"1.5.11"}static isMSESupported(){return Bc()}static isSupported(){return Op()}static getMediaSource(){return Kt()}static get Events(){return v}static get ErrorTypes(){return z}static get ErrorDetails(){return k}static get DefaultConfig(){return s.defaultConfig?s.defaultConfig:Fc}static set DefaultConfig(e){s.defaultConfig=e}constructor(e={}){this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this.started=!1,this._emitter=new Na,this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null,this.triggeringException=void 0,Tf(e.debug||!1,"Hls instance");let t=this.config=Cp(s.DefaultConfig,e);this.userConfig=e,t.progressive&&Pp(t);let{abrController:i,bufferController:r,capLevelController:n,errorController:a,fpsController:o}=t,l=new a(this),c=this.abrController=new i(this),u=this.bufferController=new r(this),d=this.capLevelController=new n(this),h=new o(this),f=new _n(this),m=new Rn(this),g=t.contentSteeringController,p=g?new g(this):null,y=this.levelController=new _a(this,p),E=new Nn(this),T=new Aa(this.config),S=this.streamController=new Ra(this,E,T);d.setStreamController(S),h.setStreamController(S);let x=[f,y,S];p&&x.splice(1,0,p),this.networkControllers=x;let I=[c,u,d,h,m,E];this.audioTrackController=this.createController(t.audioTrackController,x);let A=t.audioStreamController;A&&x.push(new A(this,E,T)),this.subtitleTrackController=this.createController(t.subtitleTrackController,x);let L=t.subtitleStreamController;L&&x.push(new L(this,E,T)),this.createController(t.timelineController,I),T.emeController=this.emeController=this.createController(t.emeController,I),this.cmcdController=this.createController(t.cmcdController,I),this.latencyController=this.createController(In,I),this.coreComponents=I,x.push(l);let D=l.onErrorOut;typeof D=="function"&&this.on(v.ERROR,D,l)}createController(e,t){if(e){let i=new e(this);return t&&t.push(i),i}return null}on(e,t,i=this){this._emitter.on(e,t,i)}once(e,t,i=this){this._emitter.once(e,t,i)}removeAllListeners(e){this._emitter.removeAllListeners(e)}off(e,t,i=this,r){this._emitter.off(e,t,i,r)}listeners(e){return this._emitter.listeners(e)}emit(e,t,i){return this._emitter.emit(e,t,i)}trigger(e,t){if(this.config.debug)return this.emit(e,e,t);try{return this.emit(e,e,t)}catch(i){if(R.error("An internal error happened while handling event "+e+'. Error message: "'+i.message+'". Here is a stacktrace:',i),!this.triggeringException){this.triggeringException=!0;let r=e===v.ERROR;this.trigger(v.ERROR,{type:z.OTHER_ERROR,details:k.INTERNAL_EXCEPTION,fatal:r,event:e,error:i}),this.triggeringException=!1}}return!1}listenerCount(e){return this._emitter.listenerCount(e)}destroy(){R.log("destroy"),this.trigger(v.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this.url=null,this.networkControllers.forEach(t=>t.destroy()),this.networkControllers.length=0,this.coreComponents.forEach(t=>t.destroy()),this.coreComponents.length=0;let e=this.config;e.xhrSetup=e.fetchSetup=void 0,this.userConfig=null}attachMedia(e){R.log("attachMedia"),this._media=e,this.trigger(v.MEDIA_ATTACHING,{media:e})}detachMedia(){R.log("detachMedia"),this.trigger(v.MEDIA_DETACHING,void 0),this._media=null}loadSource(e){this.stopLoad();let t=this.media,i=this.url,r=this.url=Ia.buildAbsoluteURL(self.location.href,e,{alwaysNormalize:!0});this._autoLevelCapping=-1,this._maxHdcpLevel=null,R.log(`loadSource:${r}`),t&&i&&(i!==r||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(t)),this.trigger(v.MANIFEST_LOADING,{url:e})}startLoad(e=-1){R.log(`startLoad(${e})`),this.started=!0,this.networkControllers.forEach(t=>{t.startLoad(e)})}stopLoad(){R.log("stopLoad"),this.started=!1,this.networkControllers.forEach(e=>{e.stopLoad()})}resumeBuffering(){this.started&&this.networkControllers.forEach(e=>{"fragmentLoader"in e&&e.startLoad(-1)})}pauseBuffering(){this.networkControllers.forEach(e=>{"fragmentLoader"in e&&e.stopLoad()})}swapAudioCodec(){R.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){R.log("recoverMediaError");let e=this._media;this.detachMedia(),e&&this.attachMedia(e)}removeLevel(e){this.levelController.removeLevel(e)}get levels(){let e=this.levelController.levels;return e||[]}get currentLevel(){return this.streamController.currentLevel}set currentLevel(e){R.log(`set currentLevel:${e}`),this.levelController.manualLevel=e,this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(e){R.log(`set nextLevel:${e}`),this.levelController.manualLevel=e,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(e){R.log(`set loadLevel:${e}`),this.levelController.manualLevel=e}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(e){this.levelController.nextLoadLevel=e}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(e){R.log(`set firstLevel:${e}`),this.levelController.firstLevel=e}get startLevel(){let e=this.levelController.startLevel;return e===-1&&this.abrController.forcedAutoLevel>-1?this.abrController.forcedAutoLevel:e}set startLevel(e){R.log(`set startLevel:${e}`),e!==-1&&(e=Math.max(e,this.minAutoLevel)),this.levelController.startLevel=e}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(e){let t=!!e;t!==this.config.capLevelToPlayerSize&&(t?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=t)}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){let{bwEstimator:e}=this.abrController;return e?e.getEstimate():NaN}set bandwidthEstimate(e){this.abrController.resetEstimator(e)}get ttfbEstimate(){let{bwEstimator:e}=this.abrController;return e?e.getEstimateTTFB():NaN}set autoLevelCapping(e){this._autoLevelCapping!==e&&(R.log(`set autoLevelCapping:${e}`),this._autoLevelCapping=e,this.levelController.checkMaxAutoUpdated())}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(e){gm(e)&&this._maxHdcpLevel!==e&&(this._maxHdcpLevel=e,this.levelController.checkMaxAutoUpdated())}get autoLevelEnabled(){return this.levelController.manualLevel===-1}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){let{levels:e,config:{minAutoBitrate:t}}=this;if(!e)return 0;let i=e.length;for(let r=0;r<i;r++)if(e[r].maxBitrate>=t)return r;return 0}get maxAutoLevel(){let{levels:e,autoLevelCapping:t,maxHdcpLevel:i}=this,r;if(t===-1&&e!=null&&e.length?r=e.length-1:r=t,i)for(let n=r;n--;){let a=e[n].attrs["HDCP-LEVEL"];if(a&&a<=i)return n}return r}get firstAutoLevel(){return this.abrController.firstAutoLevel}get nextAutoLevel(){return this.abrController.nextAutoLevel}set nextAutoLevel(e){this.abrController.nextAutoLevel=e}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}setAudioOption(e){var t;return(t=this.audioTrackController)==null?void 0:t.setAudioOption(e)}setSubtitleOption(e){var t;return(t=this.subtitleTrackController)==null||t.setSubtitleOption(e),null}get allAudioTracks(){let e=this.audioTrackController;return e?e.allAudioTracks:[]}get audioTracks(){let e=this.audioTrackController;return e?e.audioTracks:[]}get audioTrack(){let e=this.audioTrackController;return e?e.audioTrack:-1}set audioTrack(e){let t=this.audioTrackController;t&&(t.audioTrack=e)}get allSubtitleTracks(){let e=this.subtitleTrackController;return e?e.allSubtitleTracks:[]}get subtitleTracks(){let e=this.subtitleTrackController;return e?e.subtitleTracks:[]}get subtitleTrack(){let e=this.subtitleTrackController;return e?e.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(e){let t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}get subtitleDisplay(){let e=this.subtitleTrackController;return e?e.subtitleDisplay:!1}set subtitleDisplay(e){let t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(e){this.config.lowLatencyMode=e}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}};Qi.defaultConfig=void 0;var he=Qi,gt=class Ji extends Error{constructor(e,t=Ji.MEDIA_ERR_CUSTOM,i,r){var n;super(e),this.name="MediaError",this.code=t,this.context=r,this.fatal=i!=null?i:t>=Ji.MEDIA_ERR_NETWORK&&t<=Ji.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(n=Ji.defaultMessages[this.code])!=null?n:"")}};gt.MEDIA_ERR_ABORTED=1,gt.MEDIA_ERR_NETWORK=2,gt.MEDIA_ERR_DECODE=3,gt.MEDIA_ERR_SRC_NOT_SUPPORTED=4,gt.MEDIA_ERR_ENCRYPTED=5,gt.MEDIA_ERR_CUSTOM=100,gt.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail.",3:"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.",4:"An unsupported error occurred. The server or network failed, or your browser does not support this format.",5:"The media is encrypted and there are no keys to decrypt it."};var qt=gt,$p=s=>s==null,qc=(s,e)=>$p(e)?!1:s in e,Va={ANY:"any",MUTED:"muted"},Ne={ON_DEMAND:"on-demand",LIVE:"live",UNKNOWN:"unknown"},Wt={MSE:"mse",NATIVE:"native"},pr={HEADER:"header",QUERY:"query",NONE:"none"},Ya=Object.values(pr),vt={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},Ka={HLS:vt.M3U8},$0=Object.keys(Ka),G0=[...Object.values(vt),"hls","HLS"];var xe=(s,e,t,i,r=s)=>{r.addEventListener(e,t,i),s.addEventListener("teardown",()=>{r.removeEventListener(e,t)},{once:!0})};function Gp(s,e,t){e&&t>e&&(t=e);for(let i=0;i<s.length;i++)if(s.start(i)<=t&&s.end(i)>=t)return!0;return!1}var Hp=s=>{let e=s.indexOf("?");if(e<0)return[s];let t=s.slice(0,e),i=s.slice(e);return[t,i]},Tr=s=>{let e=s.type;if(e){let i=e.toUpperCase();return qc(i,Ka)?Ka[i]:e}let{src:t}=s;return t?Vp(t):""},Wc=s=>s==="VOD"?Ne.ON_DEMAND:Ne.LIVE,jc=s=>s==="EVENT"?Number.POSITIVE_INFINITY:s==="VOD"?Number.NaN:0,Vp=s=>{let e="";try{e=new URL(s).pathname}catch{console.error("invalid url")}let t=e.lastIndexOf(".");if(t<0)return"";let i=e.slice(t+1).toUpperCase();return qc(i,vt)?vt[i]:""},Kp=Object.values(Va),$c=s=>typeof s=="boolean"||typeof s=="string"&&Kp.includes(s),qp=(s,e,t)=>{let{autoplay:i}=s,r=!1,n=!1,a=$c(i)?i:!!i,o=()=>{r||xe(e,"playing",()=>{r=!0},{once:!0})};if(o(),xe(e,"loadstart",()=>{r=!1,o(),$a(e,a)},{once:!0}),xe(e,"loadstart",()=>{t||(s.streamType&&s.streamType!==Ne.UNKNOWN?n=s.streamType===Ne.LIVE:n=!Number.isFinite(e.duration)),$a(e,a)},{once:!0}),t&&t.once(he.Events.LEVEL_LOADED,(l,c)=>{var u;s.streamType&&s.streamType!==Ne.UNKNOWN?n=s.streamType===Ne.LIVE:n=(u=c.details.live)!=null?u:!1}),!a){let l=()=>{!n||Number.isFinite(s.startTime)||(t!=null&&t.liveSyncPosition?e.currentTime=t.liveSyncPosition:Number.isFinite(e.seekable.end(0))&&(e.currentTime=e.seekable.end(0)))};t&&xe(e,"play",()=>{e.preload==="metadata"?t.once(he.Events.LEVEL_UPDATED,l):l()},{once:!0})}return l=>{r||(a=$c(l)?l:!!l,$a(e,a))}},$a=(s,e)=>{if(!e)return;let t=s.muted,i=()=>s.muted=t;switch(e){case Va.ANY:s.play().catch(()=>{s.muted=!0,s.play().catch(i)});break;case Va.MUTED:s.muted=!0,s.play().catch(i);break;default:s.play().catch(()=>{});break}},Wp=({preload:s,src:e},t,i)=>{let r=d=>{d!=null&&["","none","metadata","auto"].includes(d)?t.setAttribute("preload",d):t.removeAttribute("preload")};if(!i)return r(s),r;let n=!1,a=!1,o=i.config.maxBufferLength,l=i.config.maxBufferSize,c=d=>{r(d);let h=d!=null?d:t.preload;a||h==="none"||(h==="metadata"?(i.config.maxBufferLength=1,i.config.maxBufferSize=1):(i.config.maxBufferLength=o,i.config.maxBufferSize=l),u())},u=()=>{!n&&e&&(n=!0,i.loadSource(e))};return xe(t,"play",()=>{a=!0,i.config.maxBufferLength=o,i.config.maxBufferSize=l,u()},{once:!0}),c(s),c};function jp(s,e){var t;if(!("videoTracks"in s))return;let i=new WeakMap;e.on(he.Events.MANIFEST_PARSED,function(c,u){l();let d=s.addVideoTrack("main");d.selected=!0;for(let[h,f]of u.levels.entries()){let m=d.addRendition(f.url[0],f.width,f.height,f.videoCodec,f.bitrate);i.set(f,`${h}`),m.id=`${h}`}}),e.on(he.Events.AUDIO_TRACKS_UPDATED,function(c,u){o();for(let d of u.audioTracks){let h=d.default?"main":"alternative",f=s.addAudioTrack(h,d.name,d.lang);f.id=`${d.id}`,d.default&&(f.enabled=!0)}}),s.audioTracks.addEventListener("change",()=>{var c;let u=+((c=[...s.audioTracks].find(h=>h.enabled))==null?void 0:c.id),d=e.audioTracks.map(h=>h.id);u!=e.audioTrack&&d.includes(u)&&(e.audioTrack=u)}),e.on(he.Events.LEVELS_UPDATED,function(c,u){var d;let h=s.videoTracks[(d=s.videoTracks.selectedIndex)!=null?d:0];if(!h)return;let f=u.levels.map(m=>i.get(m));for(let m of s.videoRenditions)m.id&&!f.includes(m.id)&&h.removeRendition(m)});let r=c=>{let u=c.target.selectedIndex;u!=e.nextLevel&&n(u)},n=c=>{let u=s.currentTime,d=!1,h=(f,m)=>{d||(d=!Number.isFinite(m.endOffset))};e.on(he.Events.BUFFER_FLUSHING,h),e.nextLevel=c,e.off(he.Events.BUFFER_FLUSHING,h),d||e.trigger(he.Events.BUFFER_FLUSHING,{startOffset:u+10,endOffset:1/0,type:"video"})};(t=s.videoRenditions)==null||t.addEventListener("change",r);let a=()=>{for(let c of s.videoTracks)s.removeVideoTrack(c)},o=()=>{for(let c of s.audioTracks)s.removeAudioTrack(c)},l=()=>{a(),o()};e.once(he.Events.DESTROYING,l)}var Ga=s=>"time"in s?s.time:s.startTime;function Yp(s,e){e.on(he.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(r,{tracks:n})=>{n.forEach(a=>{var o;let l=(o=a.subtitleTrack)!=null?o:a.closedCaptions,c=e.subtitleTracks.findIndex(({lang:u,name:d,type:h})=>u==(l==null?void 0:l.lang)&&d===a.label&&h.toLowerCase()===a.kind);Yc(s,a.kind,a.label,l==null?void 0:l.lang,`${a.kind}${c}`)})});let t=()=>{var r;if(!e.subtitleTracks.length)return;let n=Array.from(s.textTracks).find(o=>o.id&&o.mode==="showing"&&["subtitles","captions"].includes(o.kind)),a=`${(r=e.subtitleTracks[e.subtitleTrack])==null?void 0:r.type.toLowerCase()}${e.subtitleTrack}`;if(n&&(e.subtitleTrack<0||(n==null?void 0:n.id)!==a)){let o=e.subtitleTracks.findIndex(({lang:l,name:c,type:u})=>l==n.language&&c===n.label&&u.toLowerCase()===n.kind);e.subtitleTrack=o}n&&(n==null?void 0:n.id)===a&&n.cues&&Array.from(n.cues).forEach(o=>{n.addCue(o)})};s.textTracks.addEventListener("change",t),e.on(he.Events.CUES_PARSED,(r,{track:n,cues:a})=>{let o=s.textTracks.getTrackById(n);if(!o)return;let l=o.mode==="disabled";l&&(o.mode="hidden"),a.forEach(c=>{var u;(u=o.cues)!=null&&u.getCueById(c.id)||o.addCue(c)}),l&&(o.mode="disabled")}),e.once(he.Events.DESTROYING,()=>{s.textTracks.removeEventListener("change",t),s.querySelectorAll("track[data-removeondestroy]").forEach(r=>{r.remove()})});let i=()=>{Array.from(s.textTracks).forEach(r=>{var n,a;if(!["subtitles","caption"].includes(r.kind)&&r.label==="thumbnails"){if(!((n=r.cues)!=null&&n.length)){let o=s.querySelector('track[label="thumbnails"]'),l=(a=o==null?void 0:o.getAttribute("src"))!=null?a:"";o==null||o.removeAttribute("src"),setTimeout(()=>{o==null||o.setAttribute("src",l)},0)}r.mode!=="hidden"&&(r.mode="hidden")}})};e.once(he.Events.MANIFEST_LOADED,i),e.once(he.Events.MEDIA_ATTACHED,i)}function Yc(s,e,t,i,r){let n=document.createElement("track");return n.kind=e,n.label=t,i&&(n.srclang=i),r&&(n.id=r),n.track.mode=["subtitles","captions"].includes(e)?"disabled":"hidden",n.setAttribute("data-removeondestroy",""),s.append(n),n.track}function es(s,e,t){var i;return(i=Array.from(s.querySelectorAll("track")).find(r=>r.track.label===e&&r.track.kind===t))==null?void 0:i.track}async function zc(s,e,t,i){let r=es(s,t,i);return r||(r=Yc(s,i,t),r.mode="hidden",await new Promise(n=>setTimeout(()=>n(void 0),0))),r.mode!=="hidden"&&(r.mode="hidden"),[...e].sort((n,a)=>Ga(a)-Ga(n)).forEach(n=>{var a,o;let l=n.value,c=Ga(n);if("endTime"in n&&n.endTime!=null)r==null||r.addCue(new VTTCue(c,n.endTime,i==="chapters"?l:JSON.stringify(l!=null?l:null)));else{let u=Array.prototype.findIndex.call(r==null?void 0:r.cues,m=>m.startTime>=c),d=(a=r==null?void 0:r.cues)==null?void 0:a[u],h=d?d.startTime:Number.isFinite(s.duration)?s.duration:Number.MAX_SAFE_INTEGER,f=(o=r==null?void 0:r.cues)==null?void 0:o[u-1];f&&(f.endTime=c),r==null||r.addCue(new VTTCue(c,h,i==="chapters"?l:JSON.stringify(l!=null?l:null)))}}),s.textTracks.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})),r}var za="cuepoints",Xc=Object.freeze({label:za});async function Xa(s,e,t=Xc){return zc(s,e,t.label,"metadata")}var qa=s=>({time:s.startTime,value:JSON.parse(s.text)});function Qc(s,e={label:za}){let t=es(s,e.label,"metadata");return t!=null&&t.cues?Array.from(t.cues,i=>qa(i)):[]}function Qa(s,e={label:za}){var t,i;let r=es(s,e.label,"metadata");if(!((t=r==null?void 0:r.activeCues)!=null&&t.length))return;if(r.activeCues.length===1)return qa(r.activeCues[0]);let{currentTime:n}=s,a=Array.prototype.find.call((i=r.activeCues)!=null?i:[],({startTime:o,endTime:l})=>o<=n&&l>n);return qa(a||r.activeCues[0])}async function zp(s,e=Xc){return new Promise(t=>{xe(s,"loadstart",async()=>{let i=await Xa(s,[],e);xe(s,"cuechange",()=>{let r=Qa(s);if(r){let n=new CustomEvent("cuepointchange",{composed:!0,bubbles:!0,detail:r});s.dispatchEvent(n)}},{},i),t(i)})})}var Ja="chapters",Jc=Object.freeze({label:Ja}),Wa=s=>({startTime:s.startTime,endTime:s.endTime,value:s.text});async function Za(s,e,t=Jc){return zc(s,e,t.label,"chapters")}function Zc(s,e={label:Ja}){var t;let i=es(s,e.label,"chapters");return(t=i==null?void 0:i.cues)!=null&&t.length?Array.from(i.cues,r=>Wa(r)):[]}function eo(s,e={label:Ja}){var t,i;let r=es(s,e.label,"chapters");if(!((t=r==null?void 0:r.activeCues)!=null&&t.length))return;if(r.activeCues.length===1)return Wa(r.activeCues[0]);let{currentTime:n}=s,a=Array.prototype.find.call((i=r.activeCues)!=null?i:[],({startTime:o,endTime:l})=>o<=n&&l>n);return Wa(a||r.activeCues[0])}async function Xp(s,e=Jc){return new Promise(t=>{xe(s,"loadstart",async()=>{let i=await Za(s,[],e);xe(s,"cuechange",()=>{let r=eo(s);if(r){let n=new CustomEvent("chapterchange",{composed:!0,bubbles:!0,detail:r});s.dispatchEvent(n)}},{},i),t(i)})})}function eu(s,e){if(e){let t=e.playingDate;if(t!=null)return new Date(t.getTime()-s.currentTime*1e3)}return typeof s.getStartDate=="function"?s.getStartDate():new Date(NaN)}function tu(s,e){if(e&&e.playingDate)return e.playingDate;if(typeof s.getStartDate=="function"){let t=s.getStartDate();return new Date(t.getTime()+s.currentTime*1e3)}return new Date(NaN)}var Qp=async s=>fetch(s).then(e=>e.text()).then(e=>{let t=e.split(`
41
41
  `).find((i,r,n)=>r&&n[r-1].startsWith("#EXT-X-STREAM-INF"));return fetch(t).then(i=>i.text()).then(i=>i.split(`
42
- `))}),Jp=s=>{var e,t,i;let r=(t=((e=s.find(l=>l.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?e:"").split(":")[1])==null?void 0:t.trim(),n=Wc(r),a=jc(r),o;if(n===Ne.LIVE){let l=s.find(c=>c.startsWith("#EXT-X-PART-INF"));if(l)o=+l.split(":")[1].split("=")[1]*2;else{let c=s.find(d=>d.startsWith("#EXT-X-TARGETDURATION")),u=(i=c==null?void 0:c.split(":"))==null?void 0:i[1];o=+(u!=null?u:6)*3}}return{streamType:n,targetLiveWindow:a,liveEdgeStartOffset:o}},Zp=async(s,e)=>{if(e===vt.MP4)return{streamType:Ne.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0};if(e===vt.M3U8){let t=await Qp(s);return Jp(t)}return console.error(`Media type ${e} is an unrecognized or unsupported type for src ${s}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0}},Ha=async(s,e,t=Tr({src:s}))=>{var i,r,n;let{streamType:a,targetLiveWindow:o,liveEdgeStartOffset:l}=await Zp(s,t);((i=De.get(e))!=null?i:{}).liveEdgeStartOffset=l,((r=De.get(e))!=null?r:{}).targetLiveWindow=o,e.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((n=De.get(e))!=null?n:{}).streamType=a,e.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},e0=s=>{var e;let t=s.type,i=Wc(t),r=jc(t),n,a=!!((e=s.partList)!=null&&e.length);return i===Ne.LIVE&&(n=a?s.partTarget*2:s.targetduration*3),{streamType:i,targetLiveWindow:r,liveEdgeStartOffset:n,lowLatency:a}},t0=(s,e,t)=>{var i,r,n,a,o,l,c,u;let{streamType:d,targetLiveWindow:h,liveEdgeStartOffset:f,lowLatency:m}=e0(s);if(d===Ne.LIVE){m?(t.config.backBufferLength=(i=t.userConfig.backBufferLength)!=null?i:4,t.config.maxFragLookUpTolerance=(r=t.userConfig.maxFragLookUpTolerance)!=null?r:.001,t.config.abrBandWidthUpFactor=(n=t.userConfig.abrBandWidthUpFactor)!=null?n:t.config.abrBandWidthFactor):t.config.backBufferLength=(a=t.userConfig.backBufferLength)!=null?a:8;let g=Object.freeze({get length(){return e.seekable.length},start(p){return e.seekable.start(p)},end(p){var y;return p>this.length||p<0||Number.isFinite(e.duration)?e.seekable.end(p):(y=t.liveSyncPosition)!=null?y:e.seekable.end(p)}});((o=De.get(e))!=null?o:{}).seekable=g}((l=De.get(e))!=null?l:{}).liveEdgeStartOffset=f,((c=De.get(e))!=null?c:{}).targetLiveWindow=h,e.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((u=De.get(e))!=null?u:{}).streamType=d,e.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},Gc,Hc,i0=(Hc=(Gc=globalThis==null?void 0:globalThis.navigator)==null?void 0:Gc.userAgent)!=null?Hc:"",s0=i0.toLowerCase().indexOf("android")!==-1,De=new WeakMap,pt="mux.com",Vc,Kc,iu=(Kc=(Vc=he).isSupported)==null?void 0:Kc.call(Vc),r0=s0,su=()=>_s.utils.now(),n0=_s.utils.generateUUID,ru=({playbackId:s,customDomain:e=pt,maxResolution:t,minResolution:i,renditionOrder:r,programStartTime:n,programEndTime:a,tokens:{playback:o}={},extraSourceParams:l={}}={})=>{if(!s)return;let[c,u=""]=Hp(s),d=new URL(`https://stream.${e}/${c}.m3u8${u}`);return o||d.searchParams.has("token")?(d.searchParams.forEach((h,f)=>{f!="token"&&d.searchParams.delete(f)}),o&&d.searchParams.set("token",o)):(t&&d.searchParams.set("max_resolution",t),i&&(d.searchParams.set("min_resolution",i),t&&+t.slice(0,-1)<+i.slice(0,-1)&&console.error("minResolution must be <= maxResolution","minResolution",i,"maxResolution",t)),r&&d.searchParams.set("rendition_order",r),n&&d.searchParams.set("program_start_time",`${n}`),a&&d.searchParams.set("program_end_time",`${a}`),Object.entries(l).forEach(([h,f])=>{f!=null&&d.searchParams.set(h,f)})),d.toString()},a0=s=>{if(!s)return;let[e]=s.split("?");return e||void 0},Er=s=>{if(!s||!s.startsWith("https://stream."))return;let[e]=new URL(s).pathname.slice(1).split(".m3u8");return e||void 0},o0=s=>{var e,t,i;return(e=s==null?void 0:s.metadata)!=null&&e.video_id?s.metadata.video_id:fu(s)&&(i=(t=a0(s.playbackId))!=null?t:Er(s.src))!=null?i:s.src},nu=s=>{var e;return(e=De.get(s))==null?void 0:e.error},yr=s=>{var e,t;return(t=(e=De.get(s))==null?void 0:e.streamType)!=null?t:Ne.UNKNOWN},au=s=>{var e,t;return(t=(e=De.get(s))==null?void 0:e.targetLiveWindow)!=null?t:Number.NaN},Zi=s=>{var e,t;return(t=(e=De.get(s))==null?void 0:e.seekable)!=null?t:s.seekable},ou=s=>{var e;let t=(e=De.get(s))==null?void 0:e.liveEdgeStartOffset;if(typeof t!="number")return Number.NaN;let i=Zi(s);return i.length?i.end(i.length-1)-t:Number.NaN},to=.034,l0=(s,e,t=to)=>Math.abs(s-e)<=t,lu=(s,e,t=to)=>s>e||l0(s,e,t),c0=(s,e=to)=>s.paused&&lu(s.currentTime,s.duration,e),cu=(s,e)=>{var t,i,r;if(!e||!s.buffered.length)return;if(s.readyState>2)return!1;let n=e.currentLevel>=0?(i=(t=e.levels)==null?void 0:t[e.currentLevel])==null?void 0:i.details:(r=e.levels.find(d=>!!d.details))==null?void 0:r.details;if(!n||n.live)return;let{fragments:a}=n;if(!(a!=null&&a.length))return;if(s.currentTime<s.duration-(n.targetduration+.5))return!1;let o=a[a.length-1];if(s.currentTime<=o.start)return!1;let l=o.start+o.duration/2,c=s.buffered.start(s.buffered.length-1),u=s.buffered.end(s.buffered.length-1);return l>c&&l<u},io=(s,e)=>s.ended||s.loop?s.ended:e&&cu(s,e)?!0:c0(s),uu=(s,e,t)=>{so(e,t);let{metadata:i={}}=s,{view_session_id:r=n0()}=i,n=o0(s);i.view_session_id=r,i.video_id=n,s.metadata=i,De.set(e,{});let a=u0(s,e),o=Wp(s,e,a);p0(s,e,a),v0(s,e,a),zp(e),Xp(e);let l=qp(s,e,a);return{engine:a,setAutoplay:l,setPreload:o}},so=(s,e)=>{let t=e==null?void 0:e.engine;t&&(t.detachMedia(),t.destroy()),s!=null&&s.mux&&!s.mux.deleted&&(s.mux.destroy(),delete s.mux),s&&(s.removeAttribute("src"),s.load(),s.removeEventListener("error",gu),s.removeEventListener("error",ja),s.removeEventListener("durationchange",mu),De.delete(s),s.dispatchEvent(new Event("teardown")))};function du(s,e){var t;let i=Tr(s);if(i!==vt.M3U8)return!0;let r=!i||((t=e.canPlayType(i))!=null?t:!0),{preferPlayback:n}=s,a=n===Wt.MSE,o=n===Wt.NATIVE;return r&&(o||!(iu&&(a||r0)))}var u0=(s,e)=>{let{debug:t,streamType:i,startTime:r=-1,metadata:n,preferCmcd:a,_hlsConfig:o={}}=s,l=Tr(s)===vt.M3U8,c=du(s,e);if(l&&!c&&iu){let u={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelToPlayerSize:!0,capLevelOnFPSDrop:!0},d=d0(i),h=h0(s),f=a!==pr.NONE?{useHeaders:a===pr.HEADER,sessionId:n==null?void 0:n.view_session_id,contentId:n==null?void 0:n.video_id}:void 0;return new he({debug:t,startPosition:r,cmcd:f,xhrSetup:(m,g)=>{var p,y;if(a&&a!==pr.QUERY)return;let E=new URL(g);if(!E.searchParams.has("CMCD"))return;let T=((y=(p=E.searchParams.get("CMCD"))==null?void 0:p.split(","))!=null?y:[]).filter(S=>S.startsWith("sid")||S.startsWith("cid")).join(",");E.searchParams.set("CMCD",T),m.open("GET",E)},...u,...d,...h,...o})}},d0=s=>s===Ne.LIVE?{backBufferLength:8}:{},h0=s=>{let{drmToken:e,src:t,playbackId:i=Er(t)}=s;return!e||!i?{}:{emeEnabled:!0,drmSystems:{"com.apple.fps":{licenseUrl:vr(s,"fairplay"),serverCertificateUrl:hu(s,"fairplay")},"com.widevine.alpha":{licenseUrl:vr(s,"widevine")},"com.microsoft.playready":{licenseUrl:vr(s,"playready")}},requestMediaKeySystemAccessFunc:(r,n)=>(r==="com.widevine.alpha"&&(n=[...n.map(a=>{var o;let l=(o=a.videoCapabilities)==null?void 0:o.map(c=>({...c,robustness:"HW_SECURE_ALL"}));return{...a,videoCapabilities:l}}),...n]),navigator.requestMediaKeySystemAccess(r,n))}},f0=async s=>await(await fetch(s)).arrayBuffer(),m0=async(s,e)=>{let t=await(await fetch(e,{method:"POST",headers:{"Content-type":"application/octet-stream"},body:s})).arrayBuffer();return new Uint8Array(t)},g0=(s,e)=>{xe(e,"encrypted",async t=>{try{let i=t.initDataType;if(i!=="skd"){console.error(`Received unexpected initialization data type "${i}"`);return}if(!e.mediaKeys){let l=await(await navigator.requestMediaKeySystemAccess("com.apple.fps",[{initDataTypes:[i],videoCapabilities:[{contentType:"application/vnd.apple.mpegurl",robustness:""}],distinctiveIdentifier:"not-allowed",persistentState:"not-allowed",sessionTypes:["temporary"]}])).createMediaKeys(),c=await f0(hu(s,"fairplay"));await l.setServerCertificate(c),await e.setMediaKeys(l)}let r=t.initData;if(r==null){console.error(`Could not start encrypted playback due to missing initData in ${t.type} event`);return}let n=e.mediaKeys.createSession();n.generateRequest(i,r);let a=await new Promise(l=>{n.addEventListener("message",c=>{l(c.message)},{once:!0})}),o=await m0(a,vr(s,"fairplay"));return await n.update(o),n}catch(i){console.error(`Could not start encrypted playback due to exception "${i}"`)}})},vr=({playbackId:s,drmToken:e,customDomain:t=pt},i)=>`https://license.${t.toLocaleLowerCase().endsWith(pt)?t:pt}/license/${i}/${s}?token=${e}`,hu=({playbackId:s,drmToken:e,customDomain:t=pt},i)=>`https://license.${t.toLocaleLowerCase().endsWith(pt)?t:pt}/appcert/${i}/${s}?token=${e}`,fu=({playbackId:s,src:e,customDomain:t})=>{if(s)return!0;if(typeof e!="string")return!1;let i=window==null?void 0:window.location.href,r=new URL(e,i).hostname.toLocaleLowerCase();return r.includes(pt)||!!t&&r.includes(t.toLocaleLowerCase())},p0=(s,e,t)=>{var i;let{envKey:r,disableTracking:n}=s,a=fu(s);if(!n&&(r||a)){let{playerInitTime:o,playerSoftwareName:l,playerSoftwareVersion:c,beaconCollectionDomain:u,debug:d,disableCookies:h}=s,f={...s.metadata,video_title:((i=s==null?void 0:s.metadata)==null?void 0:i.video_title)||void 0},m=g=>typeof g.player_error_code=="string"?!1:typeof s.errorTranslator=="function"?s.errorTranslator(g):g;_s.monitor(e,{debug:d,beaconCollectionDomain:u,hlsjs:t,Hls:t?he:void 0,automaticErrorTracking:!1,errorTranslator:m,disableCookies:h,data:{...r?{env_key:r}:{},player_software_name:l,player_software:l,player_software_version:c,player_init_time:o,...f}})}},v0=(s,e,t)=>{var i;let r=du(s,e),{src:n}=s,a=()=>{e.ended||!io(e,t)||(cu(e,t)?e.currentTime=e.buffered.end(e.buffered.length-1):e.dispatchEvent(new Event("ended")))},o,l,c=()=>{var u,d;let h=(u=Zi(e))==null?void 0:u.start(0),f=(d=Zi(e))==null?void 0:d.end(0);(l!==f||o!==h)&&e.dispatchEvent(new CustomEvent("seekablechange",{composed:!0})),o=h,l=f};if(xe(e,"durationchange",c),e&&r){let u=Tr(s);if(typeof n=="string"){let d=()=>{if(yr(e)!==Ne.LIVE||Number.isFinite(e.duration))return;let h=setInterval(c,1e3);e.addEventListener("teardown",()=>{clearInterval(h)},{once:!0}),xe(e,"durationchange",()=>{Number.isFinite(e.duration)&&clearInterval(h)})};if(e.preload==="none"){let h=()=>{Ha(n,e,u).then(d),e.removeEventListener("loadedmetadata",f)},f=()=>{Ha(n,e,u).then(d),e.removeEventListener("play",h)};xe(e,"play",h,{once:!0}),xe(e,"loadedmetadata",f,{once:!0})}else Ha(n,e,u).then(d);s.drmToken&&g0(s,e),e.setAttribute("src",n),s.startTime&&(((i=De.get(e))!=null?i:{}).startTime=s.startTime,e.addEventListener("durationchange",mu,{once:!0}))}else e.removeAttribute("src");e.addEventListener("error",gu),e.addEventListener("error",ja),e.addEventListener("emptied",()=>{e.querySelectorAll("track[data-removeondestroy]").forEach(d=>{d.remove()})},{once:!0}),xe(e,"pause",a),xe(e,"seeked",a),xe(e,"play",()=>{e.ended||lu(e.currentTime,e.duration)&&(e.currentTime=e.seekable.start(0))})}else t&&n?(t.once(he.Events.LEVEL_LOADED,(u,d)=>{t0(d.details,e,t),c(),yr(e)===Ne.LIVE&&!Number.isFinite(e.duration)&&(t.on(he.Events.LEVEL_UPDATED,c),xe(e,"durationchange",()=>{Number.isFinite(e.duration)&&t.off(he.Events.LEVELS_UPDATED,c)}))}),t.on(he.Events.ERROR,(u,d)=>{let h={[he.ErrorTypes.NETWORK_ERROR]:qt.MEDIA_ERR_NETWORK,[he.ErrorTypes.MEDIA_ERROR]:qt.MEDIA_ERR_DECODE},f=new qt("",h[d.type]);f.fatal=d.fatal,f.data=d,e.dispatchEvent(new CustomEvent("error",{detail:f}))}),e.addEventListener("error",ja),xe(e,"waiting",a),jp(s,t),Yp(e,t),t.attachMedia(e)):console.error("It looks like the video you're trying to play will not work on this system! If possible, try upgrading to the newest versions of your browser or software.")};function mu(s){var e;let t=s.target,i=(e=De.get(t))==null?void 0:e.startTime;if(i&&Gp(t.seekable,t.duration,i)){let r=t.preload==="auto";r&&(t.preload="none"),t.currentTime=i,r&&(t.preload="auto")}}async function gu(s){if(!s.isTrusted)return;s.stopImmediatePropagation();let e=s.target;if(!(e!=null&&e.error))return;let{message:t,code:i}=e.error,r=new qt(t,i);if(e.src&&(i!==qt.MEDIA_ERR_DECODE||i!==void 0))try{let{status:n}=await fetch(e.src);r.data={response:{code:n}}}catch{}e.dispatchEvent(new CustomEvent("error",{detail:r}))}function ja(s){var e,t;if(!(s instanceof CustomEvent)||!(s.detail instanceof qt))return;let i=s.target,r=s.detail;!r||!r.fatal||(((e=De.get(i))!=null?e:{}).error=r,(t=i.mux)==null||t.emit("error",{player_error_code:r.code,player_error_message:r.message,player_error_context:r.context}))}var y0=()=>{try{return"0.20.1"}catch{}return"UNKNOWN"},T0=y0(),pu=()=>T0;var no=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"];function E0(s){return`
42
+ `))}),Jp=s=>{var e,t,i;let r=(t=((e=s.find(l=>l.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?e:"").split(":")[1])==null?void 0:t.trim(),n=Wc(r),a=jc(r),o;if(n===Ne.LIVE){let l=s.find(c=>c.startsWith("#EXT-X-PART-INF"));if(l)o=+l.split(":")[1].split("=")[1]*2;else{let c=s.find(d=>d.startsWith("#EXT-X-TARGETDURATION")),u=(i=c==null?void 0:c.split(":"))==null?void 0:i[1];o=+(u!=null?u:6)*3}}return{streamType:n,targetLiveWindow:a,liveEdgeStartOffset:o}},Zp=async(s,e)=>{if(e===vt.MP4)return{streamType:Ne.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0};if(e===vt.M3U8){let t=await Qp(s);return Jp(t)}return console.error(`Media type ${e} is an unrecognized or unsupported type for src ${s}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0}},Ha=async(s,e,t=Tr({src:s}))=>{var i,r,n;let{streamType:a,targetLiveWindow:o,liveEdgeStartOffset:l}=await Zp(s,t);((i=De.get(e))!=null?i:{}).liveEdgeStartOffset=l,((r=De.get(e))!=null?r:{}).targetLiveWindow=o,e.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((n=De.get(e))!=null?n:{}).streamType=a,e.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},e0=s=>{var e;let t=s.type,i=Wc(t),r=jc(t),n,a=!!((e=s.partList)!=null&&e.length);return i===Ne.LIVE&&(n=a?s.partTarget*2:s.targetduration*3),{streamType:i,targetLiveWindow:r,liveEdgeStartOffset:n,lowLatency:a}},t0=(s,e,t)=>{var i,r,n,a,o,l,c,u;let{streamType:d,targetLiveWindow:h,liveEdgeStartOffset:f,lowLatency:m}=e0(s);if(d===Ne.LIVE){m?(t.config.backBufferLength=(i=t.userConfig.backBufferLength)!=null?i:4,t.config.maxFragLookUpTolerance=(r=t.userConfig.maxFragLookUpTolerance)!=null?r:.001,t.config.abrBandWidthUpFactor=(n=t.userConfig.abrBandWidthUpFactor)!=null?n:t.config.abrBandWidthFactor):t.config.backBufferLength=(a=t.userConfig.backBufferLength)!=null?a:8;let g=Object.freeze({get length(){return e.seekable.length},start(p){return e.seekable.start(p)},end(p){var y;return p>this.length||p<0||Number.isFinite(e.duration)?e.seekable.end(p):(y=t.liveSyncPosition)!=null?y:e.seekable.end(p)}});((o=De.get(e))!=null?o:{}).seekable=g}((l=De.get(e))!=null?l:{}).liveEdgeStartOffset=f,((c=De.get(e))!=null?c:{}).targetLiveWindow=h,e.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((u=De.get(e))!=null?u:{}).streamType=d,e.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},Gc,Hc,i0=(Hc=(Gc=globalThis==null?void 0:globalThis.navigator)==null?void 0:Gc.userAgent)!=null?Hc:"",s0=i0.toLowerCase().indexOf("android")!==-1,De=new WeakMap,pt="mux.com",Vc,Kc,iu=(Kc=(Vc=he).isSupported)==null?void 0:Kc.call(Vc),r0=s0,su=()=>_s.utils.now(),n0=_s.utils.generateUUID,ru=({playbackId:s,customDomain:e=pt,maxResolution:t,minResolution:i,renditionOrder:r,programStartTime:n,programEndTime:a,tokens:{playback:o}={},extraSourceParams:l={}}={})=>{if(!s)return;let[c,u=""]=Hp(s),d=new URL(`https://stream.${e}/${c}.m3u8${u}`);return o||d.searchParams.has("token")?(d.searchParams.forEach((h,f)=>{f!="token"&&d.searchParams.delete(f)}),o&&d.searchParams.set("token",o)):(t&&d.searchParams.set("max_resolution",t),i&&(d.searchParams.set("min_resolution",i),t&&+t.slice(0,-1)<+i.slice(0,-1)&&console.error("minResolution must be <= maxResolution","minResolution",i,"maxResolution",t)),r&&d.searchParams.set("rendition_order",r),n&&d.searchParams.set("program_start_time",`${n}`),a&&d.searchParams.set("program_end_time",`${a}`),Object.entries(l).forEach(([h,f])=>{f!=null&&d.searchParams.set(h,f)})),d.toString()},a0=s=>{if(!s)return;let[e]=s.split("?");return e||void 0},Er=s=>{if(!s||!s.startsWith("https://stream."))return;let[e]=new URL(s).pathname.slice(1).split(".m3u8");return e||void 0},o0=s=>{var e,t,i;return(e=s==null?void 0:s.metadata)!=null&&e.video_id?s.metadata.video_id:fu(s)&&(i=(t=a0(s.playbackId))!=null?t:Er(s.src))!=null?i:s.src},nu=s=>{var e;return(e=De.get(s))==null?void 0:e.error},yr=s=>{var e,t;return(t=(e=De.get(s))==null?void 0:e.streamType)!=null?t:Ne.UNKNOWN},au=s=>{var e,t;return(t=(e=De.get(s))==null?void 0:e.targetLiveWindow)!=null?t:Number.NaN},Zi=s=>{var e,t;return(t=(e=De.get(s))==null?void 0:e.seekable)!=null?t:s.seekable},ou=s=>{var e;let t=(e=De.get(s))==null?void 0:e.liveEdgeStartOffset;if(typeof t!="number")return Number.NaN;let i=Zi(s);return i.length?i.end(i.length-1)-t:Number.NaN},to=.034,l0=(s,e,t=to)=>Math.abs(s-e)<=t,lu=(s,e,t=to)=>s>e||l0(s,e,t),c0=(s,e=to)=>s.paused&&lu(s.currentTime,s.duration,e),cu=(s,e)=>{var t,i,r;if(!e||!s.buffered.length)return;if(s.readyState>2)return!1;let n=e.currentLevel>=0?(i=(t=e.levels)==null?void 0:t[e.currentLevel])==null?void 0:i.details:(r=e.levels.find(d=>!!d.details))==null?void 0:r.details;if(!n||n.live)return;let{fragments:a}=n;if(!(a!=null&&a.length))return;if(s.currentTime<s.duration-(n.targetduration+.5))return!1;let o=a[a.length-1];if(s.currentTime<=o.start)return!1;let l=o.start+o.duration/2,c=s.buffered.start(s.buffered.length-1),u=s.buffered.end(s.buffered.length-1);return l>c&&l<u},io=(s,e)=>s.ended||s.loop?s.ended:e&&cu(s,e)?!0:c0(s),uu=(s,e,t)=>{so(e,t);let{metadata:i={}}=s,{view_session_id:r=n0()}=i,n=o0(s);i.view_session_id=r,i.video_id=n,s.metadata=i,De.set(e,{});let a=u0(s,e),o=Wp(s,e,a);p0(s,e,a),v0(s,e,a),zp(e),Xp(e);let l=qp(s,e,a);return{engine:a,setAutoplay:l,setPreload:o}},so=(s,e)=>{let t=e==null?void 0:e.engine;t&&(t.detachMedia(),t.destroy()),s!=null&&s.mux&&!s.mux.deleted&&(s.mux.destroy(),delete s.mux),s&&(s.removeAttribute("src"),s.load(),s.removeEventListener("error",gu),s.removeEventListener("error",ja),s.removeEventListener("durationchange",mu),De.delete(s),s.dispatchEvent(new Event("teardown")))};function du(s,e){var t;let i=Tr(s);if(i!==vt.M3U8)return!0;let r=!i||((t=e.canPlayType(i))!=null?t:!0),{preferPlayback:n}=s,a=n===Wt.MSE,o=n===Wt.NATIVE;return r&&(o||!(iu&&(a||r0)))}var u0=(s,e)=>{let{debug:t,streamType:i,startTime:r=-1,metadata:n,preferCmcd:a,_hlsConfig:o={}}=s,l=Tr(s)===vt.M3U8,c=du(s,e);if(l&&!c&&iu){let u={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelToPlayerSize:!0,capLevelOnFPSDrop:!0},d=d0(i),h=h0(s),f=a!==pr.NONE?{useHeaders:a===pr.HEADER,sessionId:n==null?void 0:n.view_session_id,contentId:n==null?void 0:n.video_id}:void 0;return new he({debug:t,startPosition:r,cmcd:f,xhrSetup:(m,g)=>{var p,y;if(a&&a!==pr.QUERY)return;let E=new URL(g);if(!E.searchParams.has("CMCD"))return;let T=((y=(p=E.searchParams.get("CMCD"))==null?void 0:p.split(","))!=null?y:[]).filter(S=>S.startsWith("sid")||S.startsWith("cid")).join(",");E.searchParams.set("CMCD",T),m.open("GET",E)},...u,...d,...h,...o})}},d0=s=>s===Ne.LIVE?{backBufferLength:8}:{},h0=s=>{let{drmToken:e,src:t,playbackId:i=Er(t)}=s;return!e||!i?{}:{emeEnabled:!0,drmSystems:{"com.apple.fps":{licenseUrl:vr(s,"fairplay"),serverCertificateUrl:hu(s,"fairplay")},"com.widevine.alpha":{licenseUrl:vr(s,"widevine")},"com.microsoft.playready":{licenseUrl:vr(s,"playready")}},requestMediaKeySystemAccessFunc:(r,n)=>(r==="com.widevine.alpha"&&(n=[...n.map(a=>{var o;let l=(o=a.videoCapabilities)==null?void 0:o.map(c=>({...c,robustness:"HW_SECURE_ALL"}));return{...a,videoCapabilities:l}}),...n]),navigator.requestMediaKeySystemAccess(r,n))}},f0=async s=>await(await fetch(s)).arrayBuffer(),m0=async(s,e)=>{let t=await(await fetch(e,{method:"POST",headers:{"Content-type":"application/octet-stream"},body:s})).arrayBuffer();return new Uint8Array(t)},g0=(s,e)=>{xe(e,"encrypted",async t=>{try{let i=t.initDataType;if(i!=="skd"){console.error(`Received unexpected initialization data type "${i}"`);return}if(!e.mediaKeys){let l=await(await navigator.requestMediaKeySystemAccess("com.apple.fps",[{initDataTypes:[i],videoCapabilities:[{contentType:"application/vnd.apple.mpegurl",robustness:""}],distinctiveIdentifier:"not-allowed",persistentState:"not-allowed",sessionTypes:["temporary"]}])).createMediaKeys(),c=await f0(hu(s,"fairplay"));await l.setServerCertificate(c),await e.setMediaKeys(l)}let r=t.initData;if(r==null){console.error(`Could not start encrypted playback due to missing initData in ${t.type} event`);return}let n=e.mediaKeys.createSession();n.generateRequest(i,r);let a=await new Promise(l=>{n.addEventListener("message",c=>{l(c.message)},{once:!0})}),o=await m0(a,vr(s,"fairplay"));return await n.update(o),n}catch(i){console.error(`Could not start encrypted playback due to exception "${i}"`)}})},vr=({playbackId:s,drmToken:e,customDomain:t=pt},i)=>`https://license.${t.toLocaleLowerCase().endsWith(pt)?t:pt}/license/${i}/${s}?token=${e}`,hu=({playbackId:s,drmToken:e,customDomain:t=pt},i)=>`https://license.${t.toLocaleLowerCase().endsWith(pt)?t:pt}/appcert/${i}/${s}?token=${e}`,fu=({playbackId:s,src:e,customDomain:t})=>{if(s)return!0;if(typeof e!="string")return!1;let i=window==null?void 0:window.location.href,r=new URL(e,i).hostname.toLocaleLowerCase();return r.includes(pt)||!!t&&r.includes(t.toLocaleLowerCase())},p0=(s,e,t)=>{var i;let{envKey:r,disableTracking:n}=s,a=fu(s);if(!n&&(r||a)){let{playerInitTime:o,playerSoftwareName:l,playerSoftwareVersion:c,beaconCollectionDomain:u,debug:d,disableCookies:h}=s,f={...s.metadata,video_title:((i=s==null?void 0:s.metadata)==null?void 0:i.video_title)||void 0},m=g=>typeof g.player_error_code=="string"?!1:typeof s.errorTranslator=="function"?s.errorTranslator(g):g;_s.monitor(e,{debug:d,beaconCollectionDomain:u,hlsjs:t,Hls:t?he:void 0,automaticErrorTracking:!1,errorTranslator:m,disableCookies:h,data:{...r?{env_key:r}:{},player_software_name:l,player_software:l,player_software_version:c,player_init_time:o,...f}})}},v0=(s,e,t)=>{var i;let r=du(s,e),{src:n}=s,a=()=>{e.ended||!io(e,t)||(cu(e,t)?e.currentTime=e.buffered.end(e.buffered.length-1):e.dispatchEvent(new Event("ended")))},o,l,c=()=>{var u,d;let h=(u=Zi(e))==null?void 0:u.start(0),f=(d=Zi(e))==null?void 0:d.end(0);(l!==f||o!==h)&&e.dispatchEvent(new CustomEvent("seekablechange",{composed:!0})),o=h,l=f};if(xe(e,"durationchange",c),e&&r){let u=Tr(s);if(typeof n=="string"){let d=()=>{if(yr(e)!==Ne.LIVE||Number.isFinite(e.duration))return;let h=setInterval(c,1e3);e.addEventListener("teardown",()=>{clearInterval(h)},{once:!0}),xe(e,"durationchange",()=>{Number.isFinite(e.duration)&&clearInterval(h)})};if(e.preload==="none"){let h=()=>{Ha(n,e,u).then(d),e.removeEventListener("loadedmetadata",f)},f=()=>{Ha(n,e,u).then(d),e.removeEventListener("play",h)};xe(e,"play",h,{once:!0}),xe(e,"loadedmetadata",f,{once:!0})}else Ha(n,e,u).then(d);s.drmToken&&g0(s,e),e.setAttribute("src",n),s.startTime&&(((i=De.get(e))!=null?i:{}).startTime=s.startTime,e.addEventListener("durationchange",mu,{once:!0}))}else e.removeAttribute("src");e.addEventListener("error",gu),e.addEventListener("error",ja),e.addEventListener("emptied",()=>{e.querySelectorAll("track[data-removeondestroy]").forEach(d=>{d.remove()})},{once:!0}),xe(e,"pause",a),xe(e,"seeked",a),xe(e,"play",()=>{e.ended||lu(e.currentTime,e.duration)&&(e.currentTime=e.seekable.length?e.seekable.start(0):0)})}else t&&n?(t.once(he.Events.LEVEL_LOADED,(u,d)=>{t0(d.details,e,t),c(),yr(e)===Ne.LIVE&&!Number.isFinite(e.duration)&&(t.on(he.Events.LEVEL_UPDATED,c),xe(e,"durationchange",()=>{Number.isFinite(e.duration)&&t.off(he.Events.LEVELS_UPDATED,c)}))}),t.on(he.Events.ERROR,(u,d)=>{let h={[he.ErrorTypes.NETWORK_ERROR]:qt.MEDIA_ERR_NETWORK,[he.ErrorTypes.MEDIA_ERROR]:qt.MEDIA_ERR_DECODE},f=new qt("",h[d.type]);f.fatal=d.fatal,f.data=d,e.dispatchEvent(new CustomEvent("error",{detail:f}))}),e.addEventListener("error",ja),xe(e,"waiting",a),jp(s,t),Yp(e,t),t.attachMedia(e)):console.error("It looks like the video you're trying to play will not work on this system! If possible, try upgrading to the newest versions of your browser or software.")};function mu(s){var e;let t=s.target,i=(e=De.get(t))==null?void 0:e.startTime;if(i&&Gp(t.seekable,t.duration,i)){let r=t.preload==="auto";r&&(t.preload="none"),t.currentTime=i,r&&(t.preload="auto")}}async function gu(s){if(!s.isTrusted)return;s.stopImmediatePropagation();let e=s.target;if(!(e!=null&&e.error))return;let{message:t,code:i}=e.error,r=new qt(t,i);if(e.src&&(i!==qt.MEDIA_ERR_DECODE||i!==void 0))try{let{status:n}=await fetch(e.src);r.data={response:{code:n}}}catch{}e.dispatchEvent(new CustomEvent("error",{detail:r}))}function ja(s){var e,t;if(!(s instanceof CustomEvent)||!(s.detail instanceof qt))return;let i=s.target,r=s.detail;!r||!r.fatal||(((e=De.get(i))!=null?e:{}).error=r,(t=i.mux)==null||t.emit("error",{player_error_code:r.code,player_error_message:r.message,player_error_context:r.context}))}var y0=()=>{try{return"0.20.2"}catch{}return"UNKNOWN"},T0=y0(),pu=()=>T0;var no=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"];function E0(s){return`
43
43
  <style>
44
44
  :host {
45
45
  display: inline-flex;