🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@mux/playback-core

Package Overview
Dependencies
Maintainers
4
Versions
720
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mux/playback-core - npm Package Compare versions

Comparing version
0.35.1-canary.3
to
0.35.2
+49
dist/types-ts3.4/network-recovery.d.ts
import Hls from './hls';
import { ErrorData } from 'hls.js';
import { MediaError } from './errors';
import { MuxMediaState } from './types';
export interface NetworkRecoveryConfig {
hls: Pick<Hls, 'on' | 'loadSource' | 'startLoad'>;
mediaEl: HTMLMediaElement;
/** The current source, used to re-request the manifest if it never loaded. */
src: string | undefined;
muxMediaState: MuxMediaState;
saveAndDispatchError: (mediaEl: HTMLMediaElement, error: MediaError) => void;
/** Max reconnect attempts per stall episode before surfacing a terminal error and stopping. */
maxRetries: number;
}
export interface NetworkRecovery {
/**
* Call from the hls ERROR handler. Returns true when recovery has taken over the error (the
* caller should stop processing it, i.e. not dispatch it as a fatal error).
*/
handleHlsError: (data: ErrorData, error: MediaError) => boolean;
/**
* Call from the hls MANIFEST_LOADED handler. Records that the manifest has loaded and stops any
* pending retry, but does NOT end recovery as fragments could still fail.
* Defers loading to engine.
*/
onManifestLoaded: () => void;
}
/**
* --- Network interruption recovery ---
* hls.js retries non-fatal network errors itself; once it gives up (fatal) it stops loading and
* won't resume - including on flaky networks where the browser never fires `offline`/`online`
* (navigator.onLine only reflects a network link, not whether requests succeed).
*
* When playback stalls during an outage we let hls.js run (and give up on) its own internal
* retries, and *after* it reports a fatal error we wait a backoff delay and call startLoad() to make
* it try again.
* Each fatal drives the next attempt, up to maxRetries, then we surface a terminal error and stop
* (bounded - no infinite polling).
*
* Backoff before each attempt, e.g. maxRetries=6 -> ~1s + 2s + 4s + 8s + 16s + 30s (plus however
* long hls.js's own internal retries take in between).
*
* The retry loop and its "Reconnecting..." UI are tied to the stall (same condition as the loading
* spinner): while there's still playable buffer, hls.js's own retry handles refilling and we stay
* silent.
*
* `online` is a fast path that retries immediately with a fresh budget.
*/
export declare const setupNetworkRecovery: ({ hls, mediaEl, src, muxMediaState, saveAndDispatchError, maxRetries, }: NetworkRecoveryConfig) => NetworkRecovery;
import Hls from './hls';
import type { ErrorData } from 'hls.js';
import { MediaError } from './errors';
import type { MuxMediaState } from './types';
export interface NetworkRecoveryConfig {
hls: Pick<Hls, 'on' | 'loadSource' | 'startLoad'>;
mediaEl: HTMLMediaElement;
/** The current source, used to re-request the manifest if it never loaded. */
src: string | undefined;
muxMediaState: MuxMediaState;
saveAndDispatchError: (mediaEl: HTMLMediaElement, error: MediaError) => void;
/** Max reconnect attempts per stall episode before surfacing a terminal error and stopping. */
maxRetries: number;
}
export interface NetworkRecovery {
/**
* Call from the hls ERROR handler. Returns true when recovery has taken over the error (the
* caller should stop processing it, i.e. not dispatch it as a fatal error).
*/
handleHlsError: (data: ErrorData, error: MediaError) => boolean;
/**
* Call from the hls MANIFEST_LOADED handler. Records that the manifest has loaded and stops any
* pending retry, but does NOT end recovery as fragments could still fail.
* Defers loading to engine.
*/
onManifestLoaded: () => void;
}
/**
* --- Network interruption recovery ---
* hls.js retries non-fatal network errors itself; once it gives up (fatal) it stops loading and
* won't resume - including on flaky networks where the browser never fires `offline`/`online`
* (navigator.onLine only reflects a network link, not whether requests succeed).
*
* When playback stalls during an outage we let hls.js run (and give up on) its own internal
* retries, and *after* it reports a fatal error we wait a backoff delay and call startLoad() to make
* it try again.
* Each fatal drives the next attempt, up to maxRetries, then we surface a terminal error and stop
* (bounded - no infinite polling).
*
* Backoff before each attempt, e.g. maxRetries=6 -> ~1s + 2s + 4s + 8s + 16s + 30s (plus however
* long hls.js's own internal retries take in between).
*
* The retry loop and its "Reconnecting..." UI are tied to the stall (same condition as the loading
* spinner): while there's still playable buffer, hls.js's own retry handles refilling and we stay
* silent.
*
* `online` is a fast path that retries immediately with a fresh budget.
*/
export declare const setupNetworkRecovery: ({ hls, mediaEl, src, muxMediaState, saveAndDispatchError, maxRetries, }: NetworkRecoveryConfig) => NetworkRecovery;
+5
-5

@@ -1,5 +0,5 @@

"use strict";var $t=Object.create;var q=Object.defineProperty;var Bt=Object.getOwnPropertyDescriptor;var jt=Object.getOwnPropertyNames;var Jt=Object.getPrototypeOf,Gt=Object.prototype.hasOwnProperty;var qt=(e,t)=>{for(var r in t)q(e,r,{get:t[r],enumerable:!0})},Ae=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of jt(t))!Gt.call(e,o)&&o!==r&&q(e,o,{get:()=>t[o],enumerable:!(n=Bt(t,o))||n.enumerable});return e};var Se=(e,t,r)=>(r=e!=null?$t(Jt(e)):{},Ae(t||!e||!e.__esModule?q(r,"default",{value:e,enumerable:!0}):r,e)),zt=e=>Ae(q({},"__esModule",{value:!0}),e);var Sr={};qt(Sr,{AutoplayTypes:()=>F,CmcdTypeValues:()=>Qt,CmcdTypes:()=>N,ExtensionMimeTypeMap:()=>w,Hls:()=>b,MaxAutoResolution:()=>or,MaxResolution:()=>tr,MediaError:()=>T,MimeTypeShorthandMap:()=>V,MinCapLevelController:()=>j,MinResolution:()=>rr,MuxErrorCategory:()=>k,MuxErrorCode:()=>C,MuxJWTAud:()=>oe,PlaybackTypes:()=>z,RenditionOrder:()=>nr,StreamTypes:()=>h,addChapters:()=>ge,addCuePoints:()=>ye,addTextTrack:()=>ne,allMediaTypes:()=>er,errorCategoryToTokenNameOrPrefix:()=>W,fetchAndDispatchMuxMetadata:()=>se,generatePlayerInitTime:()=>vr,generateUUID:()=>kt,getActiveChapter:()=>Me,getActiveCuePoint:()=>Te,getAppCertificate:()=>Ot,getCapLevelControllerConfig:()=>Kt,getChapters:()=>et,getCoreReference:()=>_r,getCuePoints:()=>Qe,getCurrentPdt:()=>rt,getDRMConfig:()=>Nt,getEnded:()=>ht,getError:()=>Dt,getLicenseKey:()=>Ut,getLiveEdgeStart:()=>hr,getMediaPlaylistFromMultivariantPlaylist:()=>Tt,getMetadata:()=>Pr,getMultivariantPlaylistSessionData:()=>mt,getSeekable:()=>ke,getStartDate:()=>tt,getStreamInfoFromHlsjsLevelDetails:()=>Rt,getStreamInfoFromPlaylist:()=>gt,getStreamInfoFromSrcAndType:()=>Mt,getStreamType:()=>xe,getStreamTypeConfig:()=>It,getTargetLiveWindow:()=>Lr,getTextTrack:()=>O,i18n:()=>x,initialize:()=>_t,isKeyOf:()=>H,isMuxVideoSrc:()=>he,isPseudoEnded:()=>Lt,isStuckOnLastFragment:()=>Pe,loadMedia:()=>Ft,mux:()=>G.default,muxMediaState:()=>P,parseJwt:()=>ee,parseTagAttributes:()=>Et,removeTextTrack:()=>qe,setupChapters:()=>be,setupCuePoints:()=>me,setupHls:()=>St,setupMux:()=>Wt,setupNativeFairplayDRM:()=>Ht,shorthandKeys:()=>Zt,teardown:()=>wt,toAppCertURL:()=>Le,toDRMTypeFromKeySystem:()=>yt,toLicenseKeyURL:()=>J,toMuxVideoURL:()=>kr,toPlaybackIdFromSrc:()=>ve,toPlaybackIdParts:()=>Y,updateStreamInfoFromHlsjsLevelDetails:()=>xt,updateStreamInfoFromSrc:()=>bt});module.exports=zt(Sr);var G=Se(require("mux-embed"));var Ie=Se(require("hls.js")),b=Ie.default;var ft=require("hls.js");var k={VIDEO:"video",THUMBNAIL:"thumbnail",STORYBOARD:"storyboard",DRM:"drm"},C={NOT_AN_ERROR:0,NETWORK_OFFLINE:2000002,NETWORK_UNKNOWN_ERROR:2e6,NETWORK_NO_STATUS:2000001,NETWORK_INVALID_URL:24e5,NETWORK_NOT_FOUND:2404e3,NETWORK_NOT_READY:2412e3,NETWORK_GENERIC_SERVER_FAIL:25e5,NETWORK_TOKEN_MISSING:2403201,NETWORK_TOKEN_MALFORMED:2412202,NETWORK_TOKEN_EXPIRED:2403210,NETWORK_TOKEN_AUD_MISSING:2403221,NETWORK_TOKEN_AUD_MISMATCH:2403222,NETWORK_TOKEN_SUB_MISMATCH:2403232,ENCRYPTED_ERROR:5e6,ENCRYPTED_UNSUPPORTED_KEY_SYSTEM:5000001,ENCRYPTED_GENERATE_REQUEST_FAILED:5000002,ENCRYPTED_UPDATE_LICENSE_FAILED:5000003,ENCRYPTED_UPDATE_SERVER_CERT_FAILED:5000004,ENCRYPTED_CDM_ERROR:5000005,ENCRYPTED_OUTPUT_RESTRICTED:5000006,ENCRYPTED_MISSING_TOKEN:5000002},W=e=>e===k.VIDEO?"playback":e,_=class _ extends Error{constructor(t,r=_.MEDIA_ERR_CUSTOM,n,o){var s;super(t),this.name="MediaError",this.code=r,this.context=o,this.fatal=n!=null?n:r>=_.MEDIA_ERR_NETWORK&&r<=_.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(s=_.defaultMessages[this.code])!=null?s:"")}};_.MEDIA_ERR_ABORTED=1,_.MEDIA_ERR_NETWORK=2,_.MEDIA_ERR_DECODE=3,_.MEDIA_ERR_SRC_NOT_SUPPORTED=4,_.MEDIA_ERR_ENCRYPTED=5,_.MEDIA_ERR_CUSTOM=100,_.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 T=_;var Xt=e=>e==null,H=(e,t)=>Xt(t)?!1:e in t,F={ANY:"any",MUTED:"muted"},h={ON_DEMAND:"on-demand",LIVE:"live",UNKNOWN:"unknown"},z={MSE:"mse",NATIVE:"native"},N={HEADER:"header",QUERY:"query",NONE:"none"},Qt=Object.values(N),w={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},V={HLS:w.M3U8},Zt=Object.keys(V),er=[...Object.values(w),"hls","HLS"],tr={upTo720p:"720p",upTo1080p:"1080p",upTo1440p:"1440p",upTo2160p:"2160p"},rr={noLessThan480p:"480p",noLessThan540p:"540p",noLessThan720p:"720p",noLessThan1080p:"1080p",noLessThan1440p:"1440p",noLessThan2160p:"2160p"},nr={DESCENDING:"desc"},or={upTo720p:"720p",upTo1080p:"1080p",upTo1440p:"1440p",upTo2160p:"2160p"};var ar="en",X={code:ar};var L=(e,t,r,n,o=e)=>{o.addEventListener(t,r,n),e.addEventListener("teardown",()=>{o.removeEventListener(t,r)},{once:!0})};function Ne(e,t,r){t&&r>t&&(r=t);for(let n=0;n<e.length;n++)if(e.start(n)<=r&&e.end(n)>=r)return!0;return!1}var Y=e=>{let t=e.indexOf("?");if(t<0)return[e];let r=e.slice(0,t),n=e.slice(t);return[r,n]},$=e=>{let{type:t}=e;if(t){let r=t.toUpperCase();return H(r,V)?V[r]:t}return sr(e)},ue=e=>e==="VOD"?h.ON_DEMAND:h.LIVE,le=e=>e==="EVENT"?Number.POSITIVE_INFINITY:e==="VOD"?Number.NaN:0,sr=e=>{let{src:t}=e;if(!t)return"";let r="";try{r=Z(t).pathname}catch{console.error("Invalid url when trying to infer mime type",t)}let n=r.lastIndexOf(".");if(n<0)return cr(e)?w.M3U8:"";let s=r.slice(n+1).toUpperCase();return H(s,w)?w[s]:""},Q=e=>{try{return new URL(e),!1}catch{return!0}},Oe=e=>e.split(`
`).find((t,r,n)=>r>0&&n[r-1].startsWith("#EXT-X-STREAM-INF")),Z=(e,t)=>{var o;if(!Q(e))return new URL(e);let r=(o=window==null?void 0:window.location)==null?void 0:o.href,n=t!=null?t:r;return t&&Q(t.toString())&&(n=new URL(t,r)),new URL(e,n)},ir="mux.com",cr=({src:e,customDomain:t=ir})=>{let r;try{r=new URL(`${e}`)}catch{return!1}let n=r.protocol==="https:",o=r.hostname===`stream.${t}`.toLowerCase(),s=r.pathname.split("/"),a=s.length===2,i=!(s!=null&&s[1].includes("."));return n&&o&&a&&i},ee=e=>{let t=(e!=null?e:"").split(".")[1];if(t)try{let r=t.replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(atob(r).split("").map(function(o){return"%"+("00"+o.charCodeAt(0).toString(16)).slice(-2)}).join(""));return JSON.parse(n)}catch{return}},Ue=({exp:e},t=Date.now())=>!e||e*1e3<t,He=({sub:e},t)=>e!==t,Ke=({aud:e},t)=>!e,We=({aud:e},t)=>e!==t,Fe="en";function x(e,t=!0){var o,s;let r=t&&(s=(o=X)==null?void 0:o[e])!=null?s:e,n=t?X.code:Fe;return new ce(r,n)}var ce=class{constructor(t,r=(n=>(n=X)!=null?n:Fe)()){this.message=t,this.locale=r}format(t){return this.message.replace(/\{(\w+)\}/g,(r,n)=>{var o;return(o=t[n])!=null?o:""})}toString(){return this.message}};var ur=Object.values(F),Ve=e=>typeof e=="boolean"||typeof e=="string"&&ur.includes(e),Ye=(e,t,r)=>{let{autoplay:n}=e,o=!1,s=!1,a=Ve(n)?n:!!n,i=()=>{o||L(t,"playing",()=>{o=!0},{once:!0})};if(i(),L(t,"loadstart",()=>{o=!1,i(),de(t,a)},{once:!0}),L(t,"loadstart",()=>{r||(e.streamType&&e.streamType!==h.UNKNOWN?s=e.streamType===h.LIVE:s=!Number.isFinite(t.duration)),de(t,a)},{once:!0}),r&&r.once(b.Events.LEVEL_LOADED,(u,f)=>{var c;e.streamType&&e.streamType!==h.UNKNOWN?s=e.streamType===h.LIVE:s=(c=f.details.live)!=null?c:!1}),!a){let u=()=>{!s||Number.isFinite(e.startTime)||(r!=null&&r.liveSyncPosition?t.currentTime=r.liveSyncPosition:Number.isFinite(t.seekable.end(0))&&(t.currentTime=t.seekable.end(0)))};r&&L(t,"play",()=>{t.preload==="metadata"?r.once(b.Events.LEVEL_UPDATED,u):u()},{once:!0})}return u=>{o||(a=Ve(u)?u:!!u,de(t,a))}},de=(e,t)=>{if(!t)return;let r=e.muted,n=()=>e.muted=r;switch(t){case F.ANY:e.play().catch(()=>{e.muted=!0,e.play().catch(n)});break;case F.MUTED:e.muted=!0,e.play().catch(n);break;default:e.play().catch(()=>{});break}};var $e=({preload:e,src:t},r,n)=>{let o=c=>{c!=null&&["","none","metadata","auto"].includes(c)?r.setAttribute("preload",c):r.removeAttribute("preload")};if(!n)return o(e),o;let s=!1,a=!1,i=n.config.maxBufferLength,l=n.config.maxBufferSize,u=c=>{o(c);let y=c!=null?c:r.preload;a||y==="none"||(y==="metadata"?(n.config.maxBufferLength=1,n.config.maxBufferSize=1):(n.config.maxBufferLength=i,n.config.maxBufferSize=l),f())},f=()=>{!s&&t&&(s=!0,n.loadSource(t))};return L(r,"play",()=>{a=!0,n.config.maxBufferLength=i,n.config.maxBufferSize=l,f()},{once:!0}),u(e),u};var Be=(e,t,r)=>{let{minPreloadSegments:n}=e;if(n==null||n<=0||!r)return;let o=0,s=!1,a=t.playbackRate||1,i=()=>{t.playbackRate!==0&&(a=t.playbackRate,t.playbackRate=0)};t.playbackRate=0,L(t,"ratechange",i);let l=(u,{frag:f})=>{s||f.type!=="main"||(o++,o>=n&&(s=!0,t.removeEventListener("ratechange",i),t.playbackRate=a))};r.on(b.Events.FRAG_BUFFERED,l),t.addEventListener("teardown",()=>{s||(s=!0,r.off(b.Events.FRAG_BUFFERED,l),t.playbackRate=a)},{once:!0})},je=(e,t,r)=>{let{initialEstimateSegments:n}=e;if(n==null||n<=0||!r)return;let o=0;r.on(b.Events.FRAG_BUFFERED,(s,{frag:a})=>{a.type==="main"&&(o++,o<n&&r.abrController.resetEstimator(r.config.abrEwmaDefaultEstimate))})};function Je(e,t){var l;if(!("videoTracks"in e))return;let r=new WeakMap;t.on(b.Events.MANIFEST_PARSED,function(u,f){i();let c=e.addVideoTrack("main");c.selected=!0;for(let[y,d]of f.levels.entries()){let p=c.addRendition(d.url[0],d.width,d.height,d.videoCodec,d.bitrate);r.set(d,`${y}`),p.id=`${y}`}}),t.on(b.Events.AUDIO_TRACKS_UPDATED,function(u,f){a();for(let c of f.audioTracks){let y=c.default?"main":"alternative",d=e.addAudioTrack(y,c.name,c.lang);d.id=`${c.id}`,c.default&&(d.enabled=!0)}});let n=()=>{var c;let u=+((c=[...e.audioTracks].find(y=>y.enabled))==null?void 0:c.id),f=t.audioTracks.map(y=>y.id);u!=t.audioTrack&&f.includes(u)&&(t.audioTrack=u)};e.audioTracks.addEventListener("change",n),t.on(b.Events.LEVELS_UPDATED,function(u,f){var d;let c=e.videoTracks[(d=e.videoTracks.selectedIndex)!=null?d:0];if(!c)return;let y=f.levels.map(p=>r.get(p));for(let p of e.videoRenditions)p.id&&!y.includes(p.id)&&c.removeRendition(p)});let o=u=>{let f=u.target.selectedIndex;f!=t.nextLevel&&(t.nextLevel=f)};(l=e.videoRenditions)==null||l.addEventListener("change",o);let s=()=>{for(let u of e.videoTracks)e.removeVideoTrack(u)},a=()=>{for(let u of e.audioTracks)e.removeAudioTrack(u)},i=()=>{s(),a()};t.once(b.Events.DESTROYING,()=>{var u,f;i(),(u=e.audioTracks)==null||u.removeEventListener("change",n),(f=e.videoRenditions)==null||f.removeEventListener("change",o)})}var pe=e=>"time"in e?e.time:e.startTime;function Ge(e,t){t.on(b.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(o,{tracks:s})=>{s.forEach(a=>{var f,c;let i=(f=a.subtitleTrack)!=null?f:a.closedCaptions,l=t.subtitleTracks.findIndex(({lang:y,name:d,type:p})=>y==(i==null?void 0:i.lang)&&d===a.label&&p.toLowerCase()===a.kind),u=((c=a._id)!=null?c:a.default)?"default":`${a.kind}${l}`;ne(e,a.kind,a.label,i==null?void 0:i.lang,u,a.default)})});let r=()=>{if(!t.subtitleTracks.length)return;let o=Array.from(e.textTracks).find(i=>i.id&&i.mode==="showing"&&["subtitles","captions"].includes(i.kind));if(!o)return;let s=t.subtitleTracks[t.subtitleTrack],a=s?s.default?"default":`${t.subtitleTracks[t.subtitleTrack].type.toLowerCase()}${t.subtitleTrack}`:void 0;if(t.subtitleTrack<0||(o==null?void 0:o.id)!==a){let i=t.subtitleTracks.findIndex(({lang:l,name:u,type:f,default:c})=>o.id==="default"&&c||l==o.language&&u===o.label&&f.toLowerCase()===o.kind);t.subtitleTrack=i}(o==null?void 0:o.id)===a&&o.cues&&Array.from(o.cues).forEach(i=>{o.addCue(i)})};e.textTracks.addEventListener("change",r),t.on(b.Events.CUES_PARSED,(o,{track:s,cues:a})=>{let i=e.textTracks.getTrackById(s);if(!i)return;let l=i.mode==="disabled";l&&(i.mode="hidden"),a.forEach(u=>{var f;(f=i.cues)!=null&&f.getCueById(u.id)||i.addCue(u)}),l&&(i.mode="disabled")}),t.once(b.Events.DESTROYING,()=>{e.textTracks.removeEventListener("change",r),e.querySelectorAll("track[data-removeondestroy]").forEach(s=>{s.remove()})});let n=()=>{Array.from(e.textTracks).forEach(o=>{var s,a;if(!["subtitles","caption"].includes(o.kind)&&(o.label==="thumbnails"||o.kind==="chapters")){if(!((s=o.cues)!=null&&s.length)){let i="track";o.kind&&(i+=`[kind="${o.kind}"]`),o.label&&(i+=`[label="${o.label}"]`);let l=e.querySelector(i),u=(a=l==null?void 0:l.getAttribute("src"))!=null?a:"";l==null||l.removeAttribute("src"),setTimeout(()=>{l==null||l.setAttribute("src",u)},0)}o.mode!=="hidden"&&(o.mode="hidden")}})};t.once(b.Events.MANIFEST_LOADED,n),t.once(b.Events.MEDIA_ATTACHED,n)}function ne(e,t,r,n,o,s){let a=document.createElement("track");return a.kind=t,a.label=r,n&&(a.srclang=n),o&&(a.id=o),s&&(a.default=!0),a.track.mode=["subtitles","captions"].includes(t)?"disabled":"hidden",a.setAttribute("data-removeondestroy",""),e.append(a),a.track}function qe(e,t){let r=Array.prototype.find.call(e.querySelectorAll("track"),n=>n.track===t);r==null||r.remove()}function O(e,t,r){var n;return(n=Array.from(e.querySelectorAll("track")).find(o=>o.track.label===t&&o.track.kind===r))==null?void 0:n.track}async function ze(e,t,r,n){let o=O(e,r,n);return o||(o=ne(e,n,r),o.mode="hidden",await new Promise(s=>setTimeout(()=>s(void 0),0))),o.mode!=="hidden"&&(o.mode="hidden"),[...t].sort((s,a)=>pe(a)-pe(s)).forEach(s=>{var l,u;let a=s.value,i=pe(s);if("endTime"in s&&s.endTime!=null)o==null||o.addCue(new VTTCue(i,s.endTime,n==="chapters"?a:JSON.stringify(a!=null?a:null)));else{let f=Array.prototype.findIndex.call(o==null?void 0:o.cues,p=>p.startTime>=i),c=(l=o==null?void 0:o.cues)==null?void 0:l[f],y=c?c.startTime:Number.isFinite(e.duration)?e.duration:Number.MAX_SAFE_INTEGER,d=(u=o==null?void 0:o.cues)==null?void 0:u[f-1];d&&(d.endTime=i),o==null||o.addCue(new VTTCue(i,y,n==="chapters"?a:JSON.stringify(a!=null?a:null)))}}),e.textTracks.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})),o}var fe="cuepoints",Xe=Object.freeze({label:fe});async function ye(e,t,r=Xe){return ze(e,t,r.label,"metadata")}var te=e=>({time:e.startTime,value:JSON.parse(e.text)});function Qe(e,t={label:fe}){let r=O(e,t.label,"metadata");return r!=null&&r.cues?Array.from(r.cues,n=>te(n)):[]}function Te(e,t={label:fe}){var s,a;let r=O(e,t.label,"metadata");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return te(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:l})=>i<=n&&l>n);return te(o||r.activeCues[0])}async function me(e,t=Xe){return new Promise(r=>{L(e,"loadstart",async()=>{let n=await ye(e,[],t);L(e,"cuechange",()=>{let o=Te(e);if(o){let s=new CustomEvent("cuepointchange",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}var Ee="chapters",Ze=Object.freeze({label:Ee}),re=e=>({startTime:e.startTime,endTime:e.endTime,value:e.text});async function ge(e,t,r=Ze){return ze(e,t,r.label,"chapters")}function et(e,t={label:Ee}){var n;let r=O(e,t.label,"chapters");return(n=r==null?void 0:r.cues)!=null&&n.length?Array.from(r.cues,o=>re(o)):[]}function Me(e,t={label:Ee}){var s,a;let r=O(e,t.label,"chapters");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return re(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:l})=>i<=n&&l>n);return re(o||r.activeCues[0])}async function be(e,t=Ze){return new Promise(r=>{L(e,"loadstart",async()=>{let n=await ge(e,[],t);L(e,"cuechange",()=>{let o=Me(e);if(o){let s=new CustomEvent("chapterchange",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}function tt(e,t){if(t){let r=t.playingDate;if(r!=null)return new Date(r.getTime()-e.currentTime*1e3)}return typeof e.getStartDate=="function"?e.getStartDate():new Date(NaN)}function rt(e,t){if(t&&t.playingDate)return t.playingDate;if(typeof e.getStartDate=="function"){let r=e.getStartDate();return new Date(r.getTime()+e.currentTime*1e3)}return new Date(NaN)}var oe={VIDEO:"v",THUMBNAIL:"t",STORYBOARD:"s",DRM:"d"},lr=e=>{if(e===k.VIDEO)return oe.VIDEO;if(e===k.DRM)return oe.DRM},dr=(e,t)=>{var o,s;let r=W(e),n=`${r}Token`;return(o=t.tokens)!=null&&o[r]?(s=t.tokens)==null?void 0:s[r]:H(n,t)?t[n]:void 0},B=(e,t,r,n,o=!1,s=!(a=>(a=globalThis.navigator)==null?void 0:a.onLine)())=>{var E,D;if(s){let g=x("Your device appears to be offline",o),R=void 0,m=T.MEDIA_ERR_NETWORK,v=new T(g,m,!1,R);return v.errorCategory=t,v.muxCode=C.NETWORK_OFFLINE,v.data=e,v}let i="status"in e?e.status:e.code,l=Date.now(),u=T.MEDIA_ERR_NETWORK;if(i===200)return;let f=W(t),c=dr(t,r),y=lr(t),[d]=Y((E=r.playbackId)!=null?E:"");if(!i||!d)return;let p=ee(c);if(c&&!p){let g=x("The {tokenNamePrefix}-token provided is invalid or malformed.",o).format({tokenNamePrefix:f}),R=x("Compact JWT string: {token}",o).format({token:c}),m=new T(g,u,!0,R);return m.errorCategory=t,m.muxCode=C.NETWORK_TOKEN_MALFORMED,m.data=e,m}if(i>=500){let g=new T("",u,n!=null?n:!0);return g.errorCategory=t,g.muxCode=C.NETWORK_UNKNOWN_ERROR,g}if(i===403)if(p){if(Ue(p,l)){let g={timeStyle:"medium",dateStyle:"medium"},R=x("The video\u2019s secured {tokenNamePrefix}-token has expired.",o).format({tokenNamePrefix:f}),m=x("Expired at: {expiredDate}. Current time: {currentDate}.",o).format({expiredDate:new Intl.DateTimeFormat("en",g).format((D=p.exp)!=null?D:0*1e3),currentDate:new Intl.DateTimeFormat("en",g).format(l)}),v=new T(R,u,!0,m);return v.errorCategory=t,v.muxCode=C.NETWORK_TOKEN_EXPIRED,v.data=e,v}if(He(p,d)){let g=x("The video\u2019s playback ID does not match the one encoded in the {tokenNamePrefix}-token.",o).format({tokenNamePrefix:f}),R=x("Specified playback ID: {playbackId} and the playback ID encoded in the {tokenNamePrefix}-token: {tokenPlaybackId}",o).format({tokenNamePrefix:f,playbackId:d,tokenPlaybackId:p.sub}),m=new T(g,u,!0,R);return m.errorCategory=t,m.muxCode=C.NETWORK_TOKEN_SUB_MISMATCH,m.data=e,m}if(Ke(p,y)){let g=x("The {tokenNamePrefix}-token is formatted with incorrect information.",o).format({tokenNamePrefix:f}),R=x("The {tokenNamePrefix}-token has no aud value. aud value should be {expectedAud}.",o).format({tokenNamePrefix:f,expectedAud:y}),m=new T(g,u,!0,R);return m.errorCategory=t,m.muxCode=C.NETWORK_TOKEN_AUD_MISSING,m.data=e,m}if(We(p,y)){let g=x("The {tokenNamePrefix}-token is formatted with incorrect information.",o).format({tokenNamePrefix:f}),R=x("The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.",o).format({tokenNamePrefix:f,expectedAud:y,aud:p.aud}),m=new T(g,u,!0,R);return m.errorCategory=t,m.muxCode=C.NETWORK_TOKEN_AUD_MISMATCH,m.data=e,m}}else{let g=x("Authorization error trying to access this {category} URL. If this is a signed URL, you might need to provide a {tokenNamePrefix}-token.",o).format({tokenNamePrefix:f,category:t}),R=x("Specified playback ID: {playbackId}",o).format({playbackId:d}),m=new T(g,u,n!=null?n:!0,R);return m.errorCategory=t,m.muxCode=C.NETWORK_TOKEN_MISSING,m.data=e,m}if(i===412){let g=x("This playback-id may belong to a live stream that is not currently active or an asset that is not ready.",o),R=x("Specified playback ID: {playbackId}",o).format({playbackId:d}),m=new T(g,u,n!=null?n:!0,R);return m.errorCategory=t,m.muxCode=C.NETWORK_NOT_READY,m.streamType=r.streamType===h.LIVE?"live":r.streamType===h.ON_DEMAND?"on-demand":"unknown",m.data=e,m}if(i===404){let g=x("This URL or playback-id does not exist. You may have used an Asset ID or an ID from a different resource.",o),R=x("Specified playback ID: {playbackId}",o).format({playbackId:d}),m=new T(g,u,n!=null?n:!0,R);return m.errorCategory=t,m.muxCode=C.NETWORK_NOT_FOUND,m.data=e,m}if(i===400){let g=x("The URL or playback-id was invalid. You may have used an invalid value as a playback-id."),R=x("Specified playback ID: {playbackId}",o).format({playbackId:d}),m=new T(g,u,n!=null?n:!0,R);return m.errorCategory=t,m.muxCode=C.NETWORK_INVALID_URL,m.data=e,m}let M=new T("",u,n!=null?n:!0);return M.errorCategory=t,M.muxCode=C.NETWORK_UNKNOWN_ERROR,M.data=e,M};var nt=b.DefaultConfig.capLevelController,pr={"720p":921600,"1080p":2073600,"1440p":4194304,"2160p":8294400};function fr(e){let t=e.toLowerCase().trim();return pr[t]}var S=class S extends nt{constructor(t){super(t)}static setMaxAutoResolution(t,r){r?S.maxAutoResolution.set(t,r):S.maxAutoResolution.delete(t)}getMaxAutoResolution(){var r;let t=this.hls;return(r=S.maxAutoResolution.get(t))!=null?r:void 0}get levels(){var t;return(t=this.hls.levels)!=null?t:[]}getValidLevels(t){return this.levels.filter((r,n)=>this.isLevelAllowed(r)&&n<=t)}getMaxLevelCapped(t){let r=this.getValidLevels(t),n=this.getMaxAutoResolution();if(!n)return super.getMaxLevel(t);let o=fr(n);if(!o)return super.getMaxLevel(t);let s=r.filter(l=>l.width*l.height<=o),a=s.findIndex(l=>l.width*l.height===o);if(a!==-1){let l=s[a];return r.findIndex(u=>u===l)}if(s.length===0)return 0;let i=s[s.length-1];return r.findIndex(l=>l===i)}getMaxLevel(t){if(this.getMaxAutoResolution()!==void 0)return this.getMaxLevelCapped(t);let r=super.getMaxLevel(t),n=this.getValidLevels(t);if(!n[r])return r;let o=Math.min(n[r].width,n[r].height),s=S.minMaxResolution;return o>=s?r:nt.getMaxLevelByMediaSize(n,s*(16/9),s)}};S.minMaxResolution=720,S.maxAutoResolution=new WeakMap;var Re=S,j=Re;var yr="com.apple.fps.1_0",Tr="application/vnd.apple.mpegurl",ot=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o})=>{if(!window.WebKitMediaKeys||!("onwebkitneedkey"in e)){console.error("No WebKitMediaKeys. FairPlay may not be supported");let y=x("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),d=new T(y,T.MEDIA_ERR_ENCRYPTED,!0);return d.errorCategory=k.DRM,d.muxCode=C.ENCRYPTED_CDM_ERROR,n(e,d),()=>{}}let s=e,a=t(),i=null,l=y=>{(async()=>{try{s.webkitKeys||u();let p=await a;if(y.initData===null||p==null)return;let M=mr(y.initData,p);f(M)}catch(p){console.error("Could not start encrypted playback due to exception",p),n(s,p)}})()},u=()=>{try{let y=new WebKitMediaKeys(yr);s.webkitSetMediaKeys(y),o()}catch{let y="Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.",d=new T(y,T.MEDIA_ERR_ENCRYPTED,!0);throw d.errorCategory=k.DRM,d.muxCode=C.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,d}},f=y=>{let d=s.webkitKeys.createSession(Tr,y),p=async D=>{try{let g=D.message,R=await r(g);d.update(R)}catch(g){console.error("Error on FairPlay session message",g),n(e,g)}},M=D=>{let g=D.target.error;if(!g)return;console.error(`Internal Webkit Key Session Error - sysCode: ${g.systemCode} code: ${g.code}`);let R=x("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser."),m=new T(R,T.MEDIA_ERR_ENCRYPTED,!0);m.errorCategory=k.DRM,m.muxCode=C.ENCRYPTED_CDM_ERROR,n(e,m)},E=()=>{d.removeEventListener("webkitkeymessage",p),d.removeEventListener("webkitkeyerror",M),e.removeEventListener("teardown",E),"webkitCurrentPlaybackTargetIsWireless"in e&&e.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",E),i=null;try{d.close()}catch{}};"webkitCurrentPlaybackTargetIsWireless"in e&&e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",E,{once:!0}),d.addEventListener("webkitkeymessage",p),d.addEventListener("webkitkeyerror",M),e.addEventListener("teardown",E),i=E},c=()=>{e.removeEventListener("webkitneedkey",l),e.removeEventListener("teardown",c),i==null||i();try{s.webkitSetMediaKeys(null)}catch{}};return e.addEventListener("webkitneedkey",l),e.addEventListener("teardown",c,{once:!0}),c},mr=(e,t)=>{let r=gr(Er(e)),n=new Uint8Array(e),o=new Uint8Array(r),s=new Uint8Array(t),a=n.byteLength+4+s.byteLength+4+o.byteLength,i=new Uint8Array(a),l=0,u=c=>{i.set(c,l),l+=c.byteLength},f=c=>{let y=new DataView(i.buffer),d=c.byteLength;y.setUint32(l,d,!0),l+=4,u(c)};return u(n),f(o),f(s),i},Er=e=>new TextDecoder("utf-16le").decode(e).replace("skd://","").slice(1);function gr(e){let t=new ArrayBuffer(e.length*2),r=new DataView(t);for(let n=0;n<e.length;n++)r.setUint16(n*2,e.charCodeAt(n),!0);return t}var at=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o,fallbackToWebkitFairplay:s})=>{let a=null,i=async c=>{try{let y=c.initDataType;if(y!=="skd"){console.error(`Received unexpected initialization data type "${y}"`);return}e.mediaKeys||await l(y);let d=c.initData;if(d==null){console.error(`Could not start encrypted playback due to missing initData in ${c.type} event`);return}await u(y,d)}catch(y){n(e,y);return}},l=async c=>{let y=await navigator.requestMediaKeySystemAccess("com.apple.fps",[{initDataTypes:[c],videoCapabilities:[{contentType:"application/vnd.apple.mpegurl",robustness:""}],distinctiveIdentifier:"not-allowed",persistentState:"not-allowed",sessionTypes:["temporary"]}]).then(p=>(o(),p)).catch(()=>{let p=x("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),M=new T(p,T.MEDIA_ERR_ENCRYPTED,!0);M.errorCategory=k.DRM,M.muxCode=C.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,n(e,M)});if(!y)return;let d=await y.createMediaKeys();try{let p=await t();await d.setServerCertificate(p).catch(()=>{let M=x("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate."),E=new T(M,T.MEDIA_ERR_ENCRYPTED,!0);return E.errorCategory=k.DRM,E.muxCode=C.ENCRYPTED_UPDATE_SERVER_CERT_FAILED,Promise.reject(E)})}catch(p){n(e,p);return}await e.setMediaKeys(d)},u=async(c,y)=>{let d=e.mediaKeys.createSession(),p=async D=>{let g=D.message,R=await r(g);try{await d.update(R)}catch{let m=x("Failed to update DRM license. This may be an issue with the player or your protected content."),v=new T(m,T.MEDIA_ERR_ENCRYPTED,!0);v.errorCategory=k.DRM,v.muxCode=C.ENCRYPTED_UPDATE_LICENSE_FAILED,n(e,v)}},M=()=>{let D=g=>{let R;if(g==="internal-error"){let m=x("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser.");R=new T(m,T.MEDIA_ERR_ENCRYPTED,!0),R.errorCategory=k.DRM,R.muxCode=C.ENCRYPTED_CDM_ERROR}else if(g==="output-restricted"||g==="output-downscaled"){let m=x("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");R=new T(m,T.MEDIA_ERR_ENCRYPTED,!1),R.errorCategory=k.DRM,R.muxCode=C.ENCRYPTED_OUTPUT_RESTRICTED}R&&n(e,R)};d.keyStatuses.forEach(g=>D(g))};d.addEventListener("keystatuseschange",M),d.addEventListener("message",p);let E=async()=>{d.removeEventListener("keystatuseschange",M),d.removeEventListener("message",p),"webkitCurrentPlaybackTargetIsWireless"in e&&e.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",E),e.removeEventListener("teardown",E),await d.close().catch(D=>{console.warn("There was an error when closing EME session",D)}),a=null};"webkitCurrentPlaybackTargetIsWireless"in e&&e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",E,{once:!0}),e.addEventListener("teardown",E,{once:!0}),a=E,await d.generateRequest(c,y).catch(async D=>{if(D.name==="NotSupportedError"&&"webkitCurrentPlaybackTargetIsWireless"in e&&e.webkitCurrentPlaybackTargetIsWireless)console.warn("Failed to generate a DRM license request. Attempting to fallback to Webkit DRM"),s==null||s();else{let g=x("Failed to generate a DRM license request. This may be an issue with the player or your protected content."),R=new T(g,T.MEDIA_ERR_ENCRYPTED,!0);return R.errorCategory=k.DRM,R.muxCode=C.ENCRYPTED_GENERATE_REQUEST_FAILED,console.error("Failed to generate license request",D),Promise.reject(R)}})},f=async()=>{e.removeEventListener("encrypted",i),e.removeEventListener("teardown",f),a&&await a(),await e.setMediaKeys(null).catch(()=>{})};return e.addEventListener("encrypted",i),e.addEventListener("teardown",f,{once:!0}),f};var ae={FAIRPLAY:"fairplay",PLAYREADY:"playready",WIDEVINE:"widevine"},yt=e=>{if(e.includes("fps"))return ae.FAIRPLAY;if(e.includes("playready"))return ae.PLAYREADY;if(e.includes("widevine"))return ae.WIDEVINE},Tt=(e,t)=>{let r=Oe(e);if(!r)return Promise.reject(new Error("No media playlist URL found in multivariant playlist"));if(Q(r)&&!t)return Promise.reject(new Error("masterPlaylistUrl is required to resolve relative media playlist URL"));let n;try{n=Z(r,t)}catch(o){return Promise.reject(o)}return fetch(n).then(o=>o.status!==200?Promise.reject(o):o.text())},mt=e=>{let t=e.split(`
`).filter(n=>n.startsWith("#EXT-X-SESSION-DATA"));if(!t.length)return{};let r={};for(let n of t){let o=Et(n),s=o["DATA-ID"];s&&(r[s]={...o})}return{sessionData:r}},Mr=/([A-Z0-9-]+)="?(.*?)"?(?:,|$)/g;function Et(e){let t=[...e.matchAll(Mr)];return Object.fromEntries(t.map(([,r,n])=>[r,n]))}var gt=e=>{var i,l,u;let t=e.split(`
`),n=(l=((i=t.find(f=>f.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?i:"").split(":")[1])==null?void 0:l.trim(),o=ue(n),s=le(n),a;if(o===h.LIVE){let f=t.find(y=>y.startsWith("#EXT-X-PART-INF"));if(!!f)a=+f.split(":")[1].split("=")[1]*2;else{let y=t.find(M=>M.startsWith("#EXT-X-TARGETDURATION")),d=(u=y==null?void 0:y.split(":"))==null?void 0:u[1];a=+(d!=null?d:6)*3}}return{streamType:o,targetLiveWindow:s,liveEdgeStartOffset:a}},Mt=async(e,t)=>{if(t===w.MP4)return{streamType:h.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0,sessionData:void 0};if(t===w.M3U8){let r=await fetch(e);if(!r.ok)return Promise.reject(r);let n=await r.text(),o=await Tt(n,r.url);return{...mt(n),...gt(o)}}return console.error(`Media type ${t} is an unrecognized or unsupported type for src ${e}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0,sessionData:void 0}},bt=async(e,t,r=$({src:e}))=>{var l,u,f,c;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,sessionData:a}=await Mt(e,r),i=a==null?void 0:a["com.apple.hls.chapters"];(i!=null&&i.URI||i!=null&&i.VALUE.toLocaleLowerCase().startsWith("http"))&&se((l=i.URI)!=null?l:i.VALUE,t),((u=P.get(t))!=null?u:{}).liveEdgeStartOffset=s,((f=P.get(t))!=null?f:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((c=P.get(t))!=null?c:{}).streamType=n,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},se=async(e,t)=>{var r,n;try{let o=await fetch(e);if(!o.ok)throw new Error(`Failed to fetch Mux metadata: ${o.status} ${o.statusText}`);let s=await o.json(),a={};if(!((r=s==null?void 0:s[0])!=null&&r.metadata))return;for(let l of s[0].metadata)l.key&&l.value&&(a[l.key]=l.value);((n=P.get(t))!=null?n:{}).metadata=a;let i=new CustomEvent("muxmetadata");t.dispatchEvent(i)}catch(o){console.error(o)}},Rt=e=>{var a;let t=e.type,r=ue(t),n=le(t),o,s=!!((a=e.partList)!=null&&a.length);return r===h.LIVE&&(o=s?e.partTarget*2:e.targetduration*3),{streamType:r,targetLiveWindow:n,liveEdgeStartOffset:o,lowLatency:s}},xt=(e,t,r)=>{var i,l,u,f,c,y,d,p;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,lowLatency:a}=Rt(e);if(n===h.LIVE){a?(r.config.backBufferLength=(i=r.userConfig.backBufferLength)!=null?i:4,r.config.maxFragLookUpTolerance=(l=r.userConfig.maxFragLookUpTolerance)!=null?l:.001,r.config.abrBandWidthUpFactor=(u=r.userConfig.abrBandWidthUpFactor)!=null?u:r.config.abrBandWidthFactor):r.config.backBufferLength=(f=r.userConfig.backBufferLength)!=null?f:8;let M=Object.freeze({get length(){return t.seekable.length},start(E){return t.seekable.start(E)},end(E){var D;return E>this.length||E<0||Number.isFinite(t.duration)?t.seekable.end(E):(D=r.liveSyncPosition)!=null?D:t.seekable.end(E)}});((c=P.get(t))!=null?c:{}).seekable=M}((y=P.get(t))!=null?y:{}).liveEdgeStartOffset=s,((d=P.get(t))!=null?d:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((p=P.get(t))!=null?p:{}).streamType=n,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},st,it,Ct=(it=(st=globalThis==null?void 0:globalThis.navigator)==null?void 0:st.userAgent)!=null?it:"",ct,ut,lt,br=(lt=(ut=(ct=globalThis==null?void 0:globalThis.navigator)==null?void 0:ct.userAgentData)==null?void 0:ut.platform)!=null?lt:"",Rr=Ct.toLowerCase().includes("android")||["x11","android"].some(e=>br.toLowerCase().includes(e)),xr=e=>/^((?!chrome|android).)*safari/i.test(Ct)&&!!e.canPlayType("application/vnd.apple.mpegurl"),P=new WeakMap,A="mux.com",dt,pt,vt=(pt=(dt=b).isSupported)==null?void 0:pt.call(dt),Cr=e=>Rr||!xr(e),vr=()=>{if(typeof window!="undefined")return G.default.utils.now()},kt=G.default.utils.generateUUID,kr=({playbackId:e,customDomain:t=A,maxResolution:r,minResolution:n,renditionOrder:o,programStartTime:s,programEndTime:a,assetStartTime:i,assetEndTime:l,playbackToken:u,tokens:{playback:f=u}={},extraSourceParams:c={}}={})=>{if(!e)return;let[y,d=""]=Y(e),p=new URL(`https://stream.${t}/${y}.m3u8${d}`);return f||p.searchParams.has("token")?(p.searchParams.forEach((M,E)=>{E!="token"&&p.searchParams.delete(E)}),f&&p.searchParams.set("token",f)):(r&&p.searchParams.set("max_resolution",r),n&&(p.searchParams.set("min_resolution",n),r&&+r.slice(0,-1)<+n.slice(0,-1)&&console.error("minResolution must be <= maxResolution","minResolution",n,"maxResolution",r)),o&&p.searchParams.set("rendition_order",o),s&&p.searchParams.set("program_start_time",`${s}`),a&&p.searchParams.set("program_end_time",`${a}`),i&&p.searchParams.set("asset_start_time",`${i}`),l&&p.searchParams.set("asset_end_time",`${l}`),Object.entries(c).forEach(([M,E])=>{E!=null&&p.searchParams.set(M,E)})),p.toString()},ie=e=>{if(!e)return;let[t]=e.split("?");return t||void 0},ve=e=>{if(!e||!e.startsWith("https://stream."))return;let[t]=new URL(e).pathname.slice(1).split(/\.m3u8|\//);return t||void 0},Dr=e=>{var t,r,n;return(t=e==null?void 0:e.metadata)!=null&&t.video_id?e.metadata.video_id:he(e)&&(n=(r=ie(e.playbackId))!=null?r:ve(e.src))!=null?n:e.src},Dt=e=>{var t;return(t=P.get(e))==null?void 0:t.error},Pr=e=>{var t;return(t=P.get(e))==null?void 0:t.metadata},xe=e=>{var t,r;return(r=(t=P.get(e))==null?void 0:t.streamType)!=null?r:h.UNKNOWN},Lr=e=>{var t,r;return(r=(t=P.get(e))==null?void 0:t.targetLiveWindow)!=null?r:Number.NaN},ke=e=>{var t,r;return(r=(t=P.get(e))==null?void 0:t.seekable)!=null?r:e.seekable},hr=e=>{var n;let t=(n=P.get(e))==null?void 0:n.liveEdgeStartOffset;if(typeof t!="number")return Number.NaN;let r=ke(e);return r.length?r.end(r.length-1)-t:Number.NaN},_r=e=>{var t;return(t=P.get(e))==null?void 0:t.coreReference},De=.034,wr=(e,t,r=De)=>Math.abs(e-t)<=r,Pt=(e,t,r=De)=>e>t||wr(e,t,r),Lt=(e,t=De)=>e.paused&&Pt(e.currentTime,e.duration,t),Pe=(e,t)=>{var u,f,c;if(!t||!e.buffered.length)return;if(e.readyState>2)return!1;let r=t.currentLevel>=0?(f=(u=t.levels)==null?void 0:u[t.currentLevel])==null?void 0:f.details:(c=t.levels.find(y=>!!y.details))==null?void 0:c.details;if(!r||r.live)return;let{fragments:n}=r;if(!(n!=null&&n.length))return;if(e.currentTime<e.duration-(r.targetduration+.5))return!1;let o=n[n.length-1];if(e.currentTime<=o.start)return!1;let s=o.start+o.duration/2,a=e.buffered.start(e.buffered.length-1),i=e.buffered.end(e.buffered.length-1);return s>a&&s<i},ht=(e,t)=>e.ended||e.loop?e.ended:t&&Pe(e,t)?!0:Lt(e),_t=(e,t,r)=>{wt(t,r,e);let{metadata:n={}}=e,{view_session_id:o=kt()}=n,s=Dr(e);n.view_session_id=o,n.video_id=s,e.metadata=n;let a=y=>{var d;(d=t.mux)==null||d.emit("hb",{view_drm_type:y})};e.drmTypeCb=a,e.fallbackToWebkitFairplay=async()=>{var E;let y=!t.paused,d=t.currentTime;e.useWebkitFairplay=!0;let p=e.muxDataKeepSession;e.muxDataKeepSession=!0;let M=(E=P.get(t))==null?void 0:E.coreReference;_t(e,t,M),e.muxDataKeepSession=p,e.useWebkitFairplay=!1,y&&await t.play().then(()=>{t.currentTime=d}).catch(()=>{}),t.currentTime=d},P.set(t,{retryCount:0});let i=St(e,t),l=$e(e,t,i);e!=null&&e.muxDataKeepSession&&(t!=null&&t.mux)&&!t.mux.deleted?i&&t.mux.addHLSJS({hlsjs:i,Hls:i?b:void 0}):Wt(e,t,i),Ft(e,t,i),me(t),be(t);let u=Ye(e,t,i);Be(e,t,i),je(e,t,i);let f={engine:i,setAutoplay:u,setPreload:l},c=P.get(t);return c&&(c.coreReference=f),f},wt=(e,t,r)=>{let n=t==null?void 0:t.engine;e!=null&&e.mux&&!e.mux.deleted&&(r!=null&&r.muxDataKeepSession?n&&e.mux.removeHLSJS():(e.mux.destroy(),delete e.mux)),n&&(n.detachMedia(),n.destroy()),e&&(e.hasAttribute("src")&&(e.removeAttribute("src"),e.load()),e.removeEventListener("error",Yt),e.removeEventListener("error",Ce),e.removeEventListener("durationchange",Vt),P.delete(e),e.dispatchEvent(new Event("teardown")))};function At(e,t){var u;let r=$(e);if(!(r===w.M3U8))return!0;let o=!r||((u=t.canPlayType(r))!=null?u:!0),{preferPlayback:s}=e,a=s===z.MSE,i=s===z.NATIVE,l=vt&&(a||Cr(t));return o&&(i||!l)}var St=(e,t)=>{let{debug:r,streamType:n,startTime:o=-1,metadata:s,preferCmcd:a,_hlsConfig:i={},maxAutoResolution:l,initialBandwidthEstimateKbps:u}=e,c=$(e)===w.M3U8,y=At(e,t);if(c&&!y&&vt){let d={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelOnFPSDrop:!0,...u!=null?{abrEwmaDefaultEstimate:u*1e3}:{}},p=It(n),M=Nt(e),E=[N.QUERY,N.HEADER].includes(a)?{useHeaders:a===N.HEADER,sessionId:s==null?void 0:s.view_session_id,contentId:s==null?void 0:s.video_id}:void 0,D=Kt(e,i),g=new b({debug:r,startPosition:o,cmcd:E,xhrSetup:(R,m)=>{var K,_e;if(a&&a!==N.QUERY)return;let v=Z(m);if(!v.searchParams.has("CMCD"))return;let U=((_e=(K=v.searchParams.get("CMCD"))==null?void 0:K.split(","))!=null?_e:[]).filter(we=>we.startsWith("sid")||we.startsWith("cid")).join(",");v.searchParams.set("CMCD",U),R.open("GET",v)},...d,...D,...p,...M,...i});return D.capLevelController===j&&l!==void 0&&j.setMaxAutoResolution(g,l),g.on(b.Events.MANIFEST_PARSED,async function(R,m){var U,K;let v=(U=m.sessionData)==null?void 0:U["com.apple.hls.chapters"];(v!=null&&v.URI||v!=null&&v.VALUE.toLocaleLowerCase().startsWith("http"))&&se((K=v==null?void 0:v.URI)!=null?K:v==null?void 0:v.VALUE,t)}),g}},It=e=>e===h.LIVE?{backBufferLength:8}:{},Nt=e=>{let{tokens:{drm:t}={},playbackId:r,drmTypeCb:n}=e,o=ie(r);return!t||!o?{}:{emeEnabled:!0,drmSystems:{"com.apple.fps":{licenseUrl:J(e,"fairplay"),serverCertificateUrl:Le(e,"fairplay")},"com.widevine.alpha":{licenseUrl:J(e,"widevine")},"com.microsoft.playready":{licenseUrl:J(e,"playready")}},requestMediaKeySystemAccessFunc:(s,a)=>(s==="com.widevine.alpha"&&(a=[...a.map(i=>{var u;let l=(u=i.videoCapabilities)==null?void 0:u.map(f=>({...f,robustness:"HW_SECURE_ALL"}));return{...i,videoCapabilities:l}}),...a]),navigator.requestMediaKeySystemAccess(s,a).then(i=>{let l=yt(s);return n==null||n(l),i}))}},Ot=async e=>{let t=await fetch(e);return t.status!==200?Promise.reject(t):await t.arrayBuffer()},Ut=async(e,t)=>{let r=await fetch(t,{method:"POST",headers:{"Content-type":"application/octet-stream"},body:e});if(r.status!==200)return Promise.reject(r);let n=await r.arrayBuffer();return new Uint8Array(n)},Ht=(e,t)=>{let o={mediaEl:t,getAppCertificate:()=>Ot(Le(e,"fairplay")).catch(s=>{if(s instanceof Response){let a=B(s,k.DRM,e);return console.error("mediaError",a==null?void 0:a.message,a==null?void 0:a.context),a?Promise.reject(a):Promise.reject(new Error("Unexpected error in app cert request"))}return Promise.reject(s)}),getLicenseKey:s=>Ut(s,J(e,"fairplay")).catch(a=>{if(a instanceof Response){let i=B(a,k.DRM,e);return console.error("mediaError",i==null?void 0:i.message,i==null?void 0:i.context),i?Promise.reject(i):Promise.reject(new Error("Unexpected error in license key request"))}return Promise.reject(a)}),saveAndDispatchError:I,drmTypeCb:()=>{var s;(s=e.drmTypeCb)==null||s.call(e,ae.FAIRPLAY)}};if(e.useWebkitFairplay)ot(o);else{let s={fallbackToWebkitFairplay:async()=>{var i;await a(),(i=e.fallbackToWebkitFairplay)==null||i.call(e)},...o},a=at(s)}},J=({playbackId:e,tokens:{drm:t}={},customDomain:r=A},n)=>{let o=ie(e);return`https://license.${r.toLocaleLowerCase().endsWith(A)?r:A}/license/${n}/${o}?token=${t}`},Le=({playbackId:e,tokens:{drm:t}={},customDomain:r=A},n)=>{let o=ie(e);return`https://license.${r.toLocaleLowerCase().endsWith(A)?r:A}/appcert/${n}/${o}?token=${t}`},he=({playbackId:e,src:t,customDomain:r})=>{if(e)return!0;if(typeof t!="string")return!1;let n=window==null?void 0:window.location.href,o=new URL(t,n).hostname.toLocaleLowerCase();return o.includes(A)||!!r&&o.includes(r.toLocaleLowerCase())},Kt=(e,t)=>{let r={};return r.capLevelToPlayerSize=e.capRenditionToPlayerSize,r.capLevelToPlayerSize==null?(r.capLevelController=j,r.capLevelToPlayerSize=!0):r.capLevelController=ft.CapLevelController,r},Wt=(e,t,r)=>{var l;let{envKey:n,disableTracking:o,muxDataSDK:s=G.default,muxDataSDKOptions:a={}}=e,i=he(e);if(!o&&(n||i)){let{playerInitTime:u,playerSoftwareName:f,playerSoftwareVersion:c,beaconCollectionDomain:y,debug:d,disableCookies:p}=e,M={...e.metadata,video_title:((l=e==null?void 0:e.metadata)==null?void 0:l.video_title)||void 0},E=D=>typeof D.player_error_code=="string"?!1:typeof e.errorTranslator=="function"?e.errorTranslator(D):D;s.monitor(t,{debug:d,beaconCollectionDomain:y,hlsjs:r,Hls:r?b:void 0,automaticErrorTracking:!1,errorTranslator:E,disableCookies:p,...a,data:{...n?{env_key:n}:{},player_software_name:f,player_software:f,player_software_version:c,player_init_time:u,...M}})}},Ft=(e,t,r)=>{var f,c;let n=At(e,t),{src:o,customDomain:s=A}=e,a=()=>{t.ended||e.disablePseudoEnded||!ht(t,r)||(Pe(t,r)?t.currentTime=t.buffered.end(t.buffered.length-1):t.dispatchEvent(new Event("ended")))},i,l,u=()=>{let y=ke(t),d,p;y.length>0&&(d=y.start(0),p=y.end(0)),(l!==p||i!==d)&&t.dispatchEvent(new CustomEvent("seekablechange",{composed:!0})),i=d,l=p};if(L(t,"durationchange",u),t&&n){let y=$(e);if(typeof o=="string"){if(o.endsWith(".mp4")&&o.includes(s)){let M=ve(o),E=new URL(`https://stream.${s}/${M}/metadata.json`);se(E.toString(),t)}let d=()=>{if(xe(t)!==h.LIVE||Number.isFinite(t.duration))return;let M=setInterval(u,1e3);t.addEventListener("teardown",()=>{clearInterval(M)},{once:!0}),L(t,"durationchange",()=>{Number.isFinite(t.duration)&&clearInterval(M)})},p=async()=>bt(o,t,y).then(d).catch(M=>{if(M instanceof Response){let E=B(M,k.VIDEO,e);if(E){I(t,E);return}}else M instanceof Error});if(t.preload==="none"){let M=()=>{p(),t.removeEventListener("loadedmetadata",E)},E=()=>{p(),t.removeEventListener("play",M)};L(t,"play",M,{once:!0}),L(t,"loadedmetadata",E,{once:!0})}else p();(f=e.tokens)!=null&&f.drm?Ht(e,t):L(t,"encrypted",()=>{let M=x("Attempting to play DRM-protected content without providing a DRM token."),E=new T(M,T.MEDIA_ERR_ENCRYPTED,!0);E.errorCategory=k.DRM,E.muxCode=C.ENCRYPTED_MISSING_TOKEN,I(t,E)},{once:!0}),t.setAttribute("src",o),e.startTime&&(((c=P.get(t))!=null?c:{}).startTime=e.startTime,t.addEventListener("durationchange",Vt,{once:!0}))}else t.removeAttribute("src");t.addEventListener("error",Yt),t.addEventListener("error",Ce),t.addEventListener("emptied",()=>{t.querySelectorAll("track[data-removeondestroy]").forEach(p=>{p.remove()})},{once:!0}),L(t,"pause",a),L(t,"seeked",a),L(t,"play",()=>{t.ended||Pt(t.currentTime,t.duration)&&(t.currentTime=t.seekable.length?t.seekable.start(0):0)})}else r&&o?(r.once(b.Events.LEVEL_LOADED,(y,d)=>{xt(d.details,t,r),u(),xe(t)===h.LIVE&&!Number.isFinite(t.duration)&&(r.on(b.Events.LEVEL_UPDATED,u),L(t,"durationchange",()=>{Number.isFinite(t.duration)&&r.off(b.Events.LEVELS_UPDATED,u)}))}),r.on(b.Events.ERROR,(y,d)=>{var M,E;let p=Ar(d,e);if(p.muxCode===C.NETWORK_NOT_READY){let g=(M=P.get(t))!=null?M:{},R=(E=g.retryCount)!=null?E:0;if(R<6){let m=R===0?5e3:6e4,v=new T(`Retrying in ${m/1e3} seconds...`,p.code,p.fatal);Object.assign(v,p),I(t,v);let U=setTimeout(()=>{g.retryCount=R+1,d.details==="manifestLoadError"&&d.url&&r.loadSource(d.url)},m);t.addEventListener("teardown",()=>clearTimeout(U),{once:!0});return}else{g.retryCount=0;let m=new T('Try again later or <a href="#" onclick="window.location.reload(); return false;" style="color: #4a90e2;">click here to retry</a>',p.code,p.fatal);Object.assign(m,p),I(t,m);return}}I(t,p)}),r.on(b.Events.MANIFEST_LOADED,()=>{let y=P.get(t);y&&y.error&&(y.error=null,y.retryCount=0,t.dispatchEvent(new Event("emptied")),t.dispatchEvent(new Event("loadstart")))}),t.addEventListener("error",Ce),L(t,"waiting",a),Je(e,r),Ge(t,r),r.attachMedia(t)):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 Vt(e){var n;let t=e.target,r=(n=P.get(t))==null?void 0:n.startTime;if(r&&Ne(t.seekable,t.duration,r)){let o=t.preload==="auto";o&&(t.preload="none"),t.currentTime=r,o&&(t.preload="auto")}}async function Yt(e){if(!e.isTrusted)return;e.stopImmediatePropagation();let t=e.target;if(!(t!=null&&t.error))return;let{message:r,code:n}=t.error,o=new T(r,n);if(t.src&&n===T.MEDIA_ERR_SRC_NOT_SUPPORTED&&t.readyState===HTMLMediaElement.HAVE_NOTHING){setTimeout(()=>{var a;let s=(a=Dt(t))!=null?a:t.error;(s==null?void 0:s.code)===T.MEDIA_ERR_SRC_NOT_SUPPORTED&&I(t,o)},500);return}if(t.src&&(n!==T.MEDIA_ERR_DECODE||n!==void 0))try{let{status:s}=await fetch(t.src);o.data={response:{code:s}}}catch{}I(t,o)}function I(e,t){var r;t.fatal&&(((r=P.get(e))!=null?r:{}).error=t,e.dispatchEvent(new CustomEvent("error",{detail:t})))}function Ce(e){var n,o;if(!(e instanceof CustomEvent)||!(e.detail instanceof T))return;let t=e.target,r=e.detail;!r||!r.fatal||(((n=P.get(t))!=null?n:{}).error=r,(o=t.mux)==null||o.emit("error",{player_error_code:r.code,player_error_message:r.message,player_error_context:r.context}))}var Ar=(e,t)=>{var l,u,f;!e.fatal?t.debug&&console.warn("getErrorFromHlsErrorData() (non-fatal)",e):console.error("getErrorFromHlsErrorData()",e);let n={[b.ErrorTypes.NETWORK_ERROR]:T.MEDIA_ERR_NETWORK,[b.ErrorTypes.MEDIA_ERROR]:T.MEDIA_ERR_DECODE,[b.ErrorTypes.KEY_SYSTEM_ERROR]:T.MEDIA_ERR_ENCRYPTED},o=c=>[b.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,b.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED].includes(c.details)?T.MEDIA_ERR_NETWORK:n[c.type],s=c=>{if(c.type===b.ErrorTypes.KEY_SYSTEM_ERROR)return k.DRM;if(c.type===b.ErrorTypes.NETWORK_ERROR)return k.VIDEO},a,i=o(e);if(i===T.MEDIA_ERR_NETWORK&&e.response){let c=(l=s(e))!=null?l:k.VIDEO;a=(u=B(e.response,c,t,e.fatal))!=null?u:new T("",i,e.fatal)}else if(i===T.MEDIA_ERR_ENCRYPTED)if(e.details===b.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE){let c=x("Attempting to play DRM-protected content without providing a DRM token.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_MISSING_TOKEN}else if(e.details===b.ErrorDetails.KEY_SYSTEM_NO_ACCESS){let c=x("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM}else if(e.details===b.ErrorDetails.KEY_SYSTEM_NO_SESSION){let c=x("Failed to generate a DRM license request. This may be an issue with the player or your protected content.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,!0),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_GENERATE_REQUEST_FAILED}else if(e.details===b.ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED){let c=x("Failed to update DRM license. This may be an issue with the player or your protected content.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_UPDATE_LICENSE_FAILED}else if(e.details===b.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED){let c=x("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_UPDATE_SERVER_CERT_FAILED}else if(e.details===b.ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR){let c=x("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_CDM_ERROR}else if(e.details===b.ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED){let c=x("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,!1),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_OUTPUT_RESTRICTED}else a=new T(e.error.message,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_ERROR;else a=new T("",i,e.fatal);return a.context||(a.context=`${e.url?`url: ${e.url}
"use strict";var Xt=Object.create;var Z=Object.defineProperty;var Qt=Object.getOwnPropertyDescriptor;var Zt=Object.getOwnPropertyNames;var er=Object.getPrototypeOf,tr=Object.prototype.hasOwnProperty;var rr=(e,t)=>{for(var r in t)Z(e,r,{get:t[r],enumerable:!0})},He=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Zt(t))!tr.call(e,o)&&o!==r&&Z(e,o,{get:()=>t[o],enumerable:!(n=Qt(t,o))||n.enumerable});return e};var Ke=(e,t,r)=>(r=e!=null?Xt(er(e)):{},He(t||!e||!e.__esModule?Z(r,"default",{value:e,enumerable:!0}):r,e)),nr=e=>He(Z({},"__esModule",{value:!0}),e);var Wr={};rr(Wr,{AutoplayTypes:()=>$,CmcdTypeValues:()=>ar,CmcdTypes:()=>H,ExtensionMimeTypeMap:()=>S,Hls:()=>b,MaxAutoResolution:()=>lr,MaxResolution:()=>cr,MediaError:()=>y,MimeTypeShorthandMap:()=>j,MinCapLevelController:()=>z,MinResolution:()=>ur,MuxErrorCategory:()=>P,MuxErrorCode:()=>k,MuxJWTAud:()=>ce,PlaybackTypes:()=>ee,RenditionOrder:()=>dr,StreamTypes:()=>_,addChapters:()=>xe,addCuePoints:()=>ge,addTextTrack:()=>ie,allMediaTypes:()=>ir,errorCategoryToTokenNameOrPrefix:()=>B,fetchAndDispatchMuxMetadata:()=>de,generatePlayerInitTime:()=>wr,generateUUID:()=>At,getActiveChapter:()=>ve,getActiveCuePoint:()=>Me,getAppCertificate:()=>Yt,getCapLevelControllerConfig:()=>jt,getChapters:()=>st,getCoreReference:()=>Ur,getCuePoints:()=>ot,getCurrentPdt:()=>ct,getDRMConfig:()=>Vt,getEnded:()=>Ot,getError:()=>St,getLicenseKey:()=>Bt,getLiveEdgeStart:()=>Or,getMediaPlaylistFromMultivariantPlaylist:()=>xt,getMetadata:()=>Nr,getMultivariantPlaylistSessionData:()=>vt,getSeekable:()=>he,getStartDate:()=>it,getStreamInfoFromHlsjsLevelDetails:()=>Lt,getStreamInfoFromPlaylist:()=>kt,getStreamInfoFromSrcAndType:()=>Dt,getStreamType:()=>De,getStreamTypeConfig:()=>Ft,getTargetLiveWindow:()=>Ir,getTextTrack:()=>K,i18n:()=>C,initialize:()=>Ut,isKeyOf:()=>V,isMuxVideoSrc:()=>Se,isPseudoEnded:()=>It,isStuckOnLastFragment:()=>we,loadMedia:()=>Jt,mux:()=>Q.default,muxMediaState:()=>h,parseJwt:()=>oe,parseTagAttributes:()=>Ct,removeTextTrack:()=>tt,setupChapters:()=>Ce,setupCuePoints:()=>Re,setupHls:()=>Wt,setupMux:()=>Gt,setupNativeFairplayDRM:()=>$t,shorthandKeys:()=>sr,teardown:()=>Ht,toAppCertURL:()=>Ae,toDRMTypeFromKeySystem:()=>bt,toLicenseKeyURL:()=>X,toMuxVideoURL:()=>Ar,toPlaybackIdFromSrc:()=>Le,toPlaybackIdParts:()=>G,updateStreamInfoFromHlsjsLevelDetails:()=>ht,updateStreamInfoFromSrc:()=>Pt});module.exports=nr(Wr);var Q=Ke(require("mux-embed"));var We=Ke(require("hls.js")),b=We.default;var Rt=require("hls.js");var P={VIDEO:"video",THUMBNAIL:"thumbnail",STORYBOARD:"storyboard",DRM:"drm"},k={NOT_AN_ERROR:0,NETWORK_OFFLINE:2000002,NETWORK_RECONNECTING:2000003,NETWORK_UNKNOWN_ERROR:2e6,NETWORK_NO_STATUS:2000001,NETWORK_INVALID_URL:24e5,NETWORK_NOT_FOUND:2404e3,NETWORK_NOT_READY:2412e3,NETWORK_GENERIC_SERVER_FAIL:25e5,NETWORK_TOKEN_MISSING:2403201,NETWORK_TOKEN_MALFORMED:2412202,NETWORK_TOKEN_EXPIRED:2403210,NETWORK_TOKEN_AUD_MISSING:2403221,NETWORK_TOKEN_AUD_MISMATCH:2403222,NETWORK_TOKEN_SUB_MISMATCH:2403232,ENCRYPTED_ERROR:5e6,ENCRYPTED_UNSUPPORTED_KEY_SYSTEM:5000001,ENCRYPTED_GENERATE_REQUEST_FAILED:5000002,ENCRYPTED_UPDATE_LICENSE_FAILED:5000003,ENCRYPTED_UPDATE_SERVER_CERT_FAILED:5000004,ENCRYPTED_CDM_ERROR:5000005,ENCRYPTED_OUTPUT_RESTRICTED:5000006,ENCRYPTED_MISSING_TOKEN:5000002},B=e=>e===P.VIDEO?"playback":e,A=class A extends Error{constructor(t,r=A.MEDIA_ERR_CUSTOM,n,o){var s;super(t),this.name="MediaError",this.code=r,this.context=o,this.fatal=n!=null?n:r>=A.MEDIA_ERR_NETWORK&&r<=A.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(s=A.defaultMessages[this.code])!=null?s:"")}};A.MEDIA_ERR_ABORTED=1,A.MEDIA_ERR_NETWORK=2,A.MEDIA_ERR_DECODE=3,A.MEDIA_ERR_SRC_NOT_SUPPORTED=4,A.MEDIA_ERR_ENCRYPTED=5,A.MEDIA_ERR_CUSTOM=100,A.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 y=A;var or=e=>e==null,V=(e,t)=>or(t)?!1:e in t,$={ANY:"any",MUTED:"muted"},_={ON_DEMAND:"on-demand",LIVE:"live",UNKNOWN:"unknown"},ee={MSE:"mse",NATIVE:"native"},H={HEADER:"header",QUERY:"query",NONE:"none"},ar=Object.values(H),S={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},j={HLS:S.M3U8},sr=Object.keys(j),ir=[...Object.values(S),"hls","HLS"],cr={upTo720p:"720p",upTo1080p:"1080p",upTo1440p:"1440p",upTo2160p:"2160p"},ur={noLessThan480p:"480p",noLessThan540p:"540p",noLessThan720p:"720p",noLessThan1080p:"1080p",noLessThan1440p:"1440p",noLessThan2160p:"2160p"},dr={DESCENDING:"desc"},lr={upTo720p:"720p",upTo1080p:"1080p",upTo1440p:"1440p",upTo2160p:"2160p"};var pr="en",te={code:pr};var L=(e,t,r,n,o=e)=>{o.addEventListener(t,r,n),e.addEventListener("teardown",()=>{o.removeEventListener(t,r)},{once:!0})};function Fe(e,t,r){t&&r>t&&(r=t);for(let n=0;n<e.length;n++)if(e.start(n)<=r&&e.end(n)>=r)return!0;return!1}var G=e=>{let t=e.indexOf("?");if(t<0)return[e];let r=e.slice(0,t),n=e.slice(t);return[r,n]},J=e=>{let{type:t}=e;if(t){let r=t.toUpperCase();return V(r,j)?j[r]:t}return fr(e)},fe=e=>e==="VOD"?_.ON_DEMAND:_.LIVE,ye=e=>e==="EVENT"?Number.POSITIVE_INFINITY:e==="VOD"?Number.NaN:0,fr=e=>{let{src:t}=e;if(!t)return"";let r="";try{r=ne(t).pathname}catch{console.error("Invalid url when trying to infer mime type",t)}let n=r.lastIndexOf(".");if(n<0)return Tr(e)?S.M3U8:"";let s=r.slice(n+1).toUpperCase();return V(s,S)?S[s]:""},re=e=>{try{return new URL(e),!1}catch{return!0}},Ve=e=>e.split(`
`).find((t,r,n)=>r>0&&n[r-1].startsWith("#EXT-X-STREAM-INF")),ne=(e,t)=>{var o;if(!re(e))return new URL(e);let r=(o=window==null?void 0:window.location)==null?void 0:o.href,n=t!=null?t:r;return t&&re(t.toString())&&(n=new URL(t,r)),new URL(e,n)},yr="mux.com",Tr=({src:e,customDomain:t=yr})=>{let r;try{r=new URL(`${e}`)}catch{return!1}let n=r.protocol==="https:",o=r.hostname===`stream.${t}`.toLowerCase(),s=r.pathname.split("/"),a=s.length===2,i=!(s!=null&&s[1].includes("."));return n&&o&&a&&i},oe=e=>{let t=(e!=null?e:"").split(".")[1];if(t)try{let r=t.replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(atob(r).split("").map(function(o){return"%"+("00"+o.charCodeAt(0).toString(16)).slice(-2)}).join(""));return JSON.parse(n)}catch{return}},Ye=({exp:e},t=Date.now())=>!e||e*1e3<t,Be=({sub:e},t)=>e!==t,$e=({aud:e},t)=>!e,je=({aud:e},t)=>e!==t,Ge="en";function C(e,t=!0){var o,s;let r=t&&(s=(o=te)==null?void 0:o[e])!=null?s:e,n=t?te.code:Ge;return new pe(r,n)}var pe=class{constructor(t,r=(n=>(n=te)!=null?n:Ge)()){this.message=t,this.locale=r}format(t){return this.message.replace(/\{(\w+)\}/g,(r,n)=>{var o;return(o=t[n])!=null?o:""})}toString(){return this.message}};var mr=Object.values($),Je=e=>typeof e=="boolean"||typeof e=="string"&&mr.includes(e),qe=(e,t,r)=>{let{autoplay:n}=e,o=!1,s=!1,a=Je(n)?n:!!n,i=()=>{o||L(t,"playing",()=>{o=!0},{once:!0})};if(i(),L(t,"loadstart",()=>{o=!1,i(),Te(t,a)},{once:!0}),L(t,"loadstart",()=>{r||(e.streamType&&e.streamType!==_.UNKNOWN?s=e.streamType===_.LIVE:s=!Number.isFinite(t.duration)),Te(t,a)},{once:!0}),r&&r.once(b.Events.LEVEL_LOADED,(u,p)=>{var c;e.streamType&&e.streamType!==_.UNKNOWN?s=e.streamType===_.LIVE:s=(c=p.details.live)!=null?c:!1}),!a){let u=()=>{!s||Number.isFinite(e.startTime)||(r!=null&&r.liveSyncPosition?t.currentTime=r.liveSyncPosition:Number.isFinite(t.seekable.end(0))&&(t.currentTime=t.seekable.end(0)))};r&&L(t,"play",()=>{t.preload==="metadata"?r.once(b.Events.LEVEL_UPDATED,u):u()},{once:!0})}return u=>{o||(a=Je(u)?u:!!u,Te(t,a))}},Te=(e,t)=>{if(!t)return;let r=e.muted,n=()=>e.muted=r;switch(t){case $.ANY:e.play().catch(()=>{e.muted=!0,e.play().catch(n)});break;case $.MUTED:e.muted=!0,e.play().catch(n);break;default:e.play().catch(()=>{});break}};var ze=({preload:e,src:t},r,n)=>{let o=c=>{c!=null&&["","none","metadata","auto"].includes(c)?r.setAttribute("preload",c):r.removeAttribute("preload")};if(!n)return o(e),o;let s=!1,a=!1,i=n.config.maxBufferLength,d=n.config.maxBufferSize,u=c=>{o(c);let T=c!=null?c:r.preload;a||T==="none"||(T==="metadata"?(n.config.maxBufferLength=1,n.config.maxBufferSize=1):(n.config.maxBufferLength=i,n.config.maxBufferSize=d),p())},p=()=>{!s&&t&&(s=!0,n.loadSource(t))};return L(r,"play",()=>{a=!0,n.config.maxBufferLength=i,n.config.maxBufferSize=d,p()},{once:!0}),u(e),u};var Xe=(e,t,r)=>{let{minPreloadSegments:n}=e;if(n==null||n<=0||!r)return;let o=0,s=!1,a=t.playbackRate||1,i=()=>{t.playbackRate!==0&&(a=t.playbackRate,t.playbackRate=0)};t.playbackRate=0,L(t,"ratechange",i);let d=(u,{frag:p})=>{s||p.type!=="main"||(o++,o>=n&&(s=!0,t.removeEventListener("ratechange",i),t.playbackRate=a))};r.on(b.Events.FRAG_BUFFERED,d),t.addEventListener("teardown",()=>{s||(s=!0,r.off(b.Events.FRAG_BUFFERED,d),t.playbackRate=a)},{once:!0})},Qe=(e,t,r)=>{let{initialEstimateSegments:n}=e;if(n==null||n<=0||!r)return;let o=0;r.on(b.Events.FRAG_BUFFERED,(s,{frag:a})=>{a.type==="main"&&(o++,o<n&&r.abrController.resetEstimator(r.config.abrEwmaDefaultEstimate))})};function Ze(e,t){var d;if(!("videoTracks"in e))return;let r=new WeakMap;t.on(b.Events.MANIFEST_PARSED,function(u,p){i();let c=e.addVideoTrack("main");c.selected=!0;for(let[T,l]of p.levels.entries()){let f=c.addRendition(l.url[0],l.width,l.height,l.videoCodec,l.bitrate);r.set(l,`${T}`),f.id=`${T}`}}),t.on(b.Events.AUDIO_TRACKS_UPDATED,function(u,p){a();for(let c of p.audioTracks){let T=c.default?"main":"alternative",l=e.addAudioTrack(T,c.name,c.lang);l.id=`${c.id}`,c.default&&(l.enabled=!0)}});let n=()=>{var c;let u=+((c=[...e.audioTracks].find(T=>T.enabled))==null?void 0:c.id),p=t.audioTracks.map(T=>T.id);u!=t.audioTrack&&p.includes(u)&&(t.audioTrack=u)};e.audioTracks.addEventListener("change",n),t.on(b.Events.LEVELS_UPDATED,function(u,p){var l;let c=e.videoTracks[(l=e.videoTracks.selectedIndex)!=null?l:0];if(!c)return;let T=p.levels.map(f=>r.get(f));for(let f of e.videoRenditions)f.id&&!T.includes(f.id)&&c.removeRendition(f)});let o=u=>{let p=u.target.selectedIndex;p!=t.nextLevel&&(t.nextLevel=p)};(d=e.videoRenditions)==null||d.addEventListener("change",o);let s=()=>{for(let u of e.videoTracks)e.removeVideoTrack(u)},a=()=>{for(let u of e.audioTracks)e.removeAudioTrack(u)},i=()=>{s(),a()};t.once(b.Events.DESTROYING,()=>{var u,p;i(),(u=e.audioTracks)==null||u.removeEventListener("change",n),(p=e.videoRenditions)==null||p.removeEventListener("change",o)})}var me=e=>"time"in e?e.time:e.startTime;function et(e,t){t.on(b.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(o,{tracks:s})=>{s.forEach(a=>{var p,c;let i=(p=a.subtitleTrack)!=null?p:a.closedCaptions,d=t.subtitleTracks.findIndex(({lang:T,name:l,type:f})=>T==(i==null?void 0:i.lang)&&l===a.label&&f.toLowerCase()===a.kind),u=((c=a._id)!=null?c:a.default)?"default":`${a.kind}${d}`;ie(e,a.kind,a.label,i==null?void 0:i.lang,u,a.default)})});let r=()=>{if(!t.subtitleTracks.length)return;let o=Array.from(e.textTracks).find(i=>i.id&&i.mode==="showing"&&["subtitles","captions"].includes(i.kind));if(!o)return;let s=t.subtitleTracks[t.subtitleTrack],a=s?s.default?"default":`${t.subtitleTracks[t.subtitleTrack].type.toLowerCase()}${t.subtitleTrack}`:void 0;if(t.subtitleTrack<0||(o==null?void 0:o.id)!==a){let i=t.subtitleTracks.findIndex(({lang:d,name:u,type:p,default:c})=>o.id==="default"&&c||d==o.language&&u===o.label&&p.toLowerCase()===o.kind);t.subtitleTrack=i}(o==null?void 0:o.id)===a&&o.cues&&Array.from(o.cues).forEach(i=>{o.addCue(i)})};e.textTracks.addEventListener("change",r),t.on(b.Events.CUES_PARSED,(o,{track:s,cues:a})=>{let i=e.textTracks.getTrackById(s);if(!i)return;let d=i.mode==="disabled";d&&(i.mode="hidden"),a.forEach(u=>{var p;(p=i.cues)!=null&&p.getCueById(u.id)||i.addCue(u)}),d&&(i.mode="disabled")}),t.once(b.Events.DESTROYING,()=>{e.textTracks.removeEventListener("change",r),e.querySelectorAll("track[data-removeondestroy]").forEach(s=>{s.remove()})});let n=()=>{Array.from(e.textTracks).forEach(o=>{var s,a;if(!["subtitles","caption"].includes(o.kind)&&(o.label==="thumbnails"||o.kind==="chapters")){if(!((s=o.cues)!=null&&s.length)){let i="track";o.kind&&(i+=`[kind="${o.kind}"]`),o.label&&(i+=`[label="${o.label}"]`);let d=e.querySelector(i),u=(a=d==null?void 0:d.getAttribute("src"))!=null?a:"";d==null||d.removeAttribute("src"),setTimeout(()=>{d==null||d.setAttribute("src",u)},0)}o.mode!=="hidden"&&(o.mode="hidden")}})};t.once(b.Events.MANIFEST_LOADED,n),t.once(b.Events.MEDIA_ATTACHED,n)}function ie(e,t,r,n,o,s){let a=document.createElement("track");return a.kind=t,a.label=r,n&&(a.srclang=n),o&&(a.id=o),s&&(a.default=!0),a.track.mode=["subtitles","captions"].includes(t)?"disabled":"hidden",a.setAttribute("data-removeondestroy",""),e.append(a),a.track}function tt(e,t){let r=Array.prototype.find.call(e.querySelectorAll("track"),n=>n.track===t);r==null||r.remove()}function K(e,t,r){var n;return(n=Array.from(e.querySelectorAll("track")).find(o=>o.track.label===t&&o.track.kind===r))==null?void 0:n.track}async function rt(e,t,r,n){let o=K(e,r,n);return o||(o=ie(e,n,r),o.mode="hidden",await new Promise(s=>setTimeout(()=>s(void 0),0))),o.mode!=="hidden"&&(o.mode="hidden"),[...t].sort((s,a)=>me(a)-me(s)).forEach(s=>{var d,u;let a=s.value,i=me(s);if("endTime"in s&&s.endTime!=null)o==null||o.addCue(new VTTCue(i,s.endTime,n==="chapters"?a:JSON.stringify(a!=null?a:null)));else{let p=Array.prototype.findIndex.call(o==null?void 0:o.cues,f=>f.startTime>=i),c=(d=o==null?void 0:o.cues)==null?void 0:d[p],T=c?c.startTime:Number.isFinite(e.duration)?e.duration:Number.MAX_SAFE_INTEGER,l=(u=o==null?void 0:o.cues)==null?void 0:u[p-1];l&&(l.endTime=i),o==null||o.addCue(new VTTCue(i,T,n==="chapters"?a:JSON.stringify(a!=null?a:null)))}}),e.textTracks.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})),o}var Ee="cuepoints",nt=Object.freeze({label:Ee});async function ge(e,t,r=nt){return rt(e,t,r.label,"metadata")}var ae=e=>({time:e.startTime,value:JSON.parse(e.text)});function ot(e,t={label:Ee}){let r=K(e,t.label,"metadata");return r!=null&&r.cues?Array.from(r.cues,n=>ae(n)):[]}function Me(e,t={label:Ee}){var s,a;let r=K(e,t.label,"metadata");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return ae(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:d})=>i<=n&&d>n);return ae(o||r.activeCues[0])}async function Re(e,t=nt){return new Promise(r=>{L(e,"loadstart",async()=>{let n=await ge(e,[],t);L(e,"cuechange",()=>{let o=Me(e);if(o){let s=new CustomEvent("cuepointchange",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}var be="chapters",at=Object.freeze({label:be}),se=e=>({startTime:e.startTime,endTime:e.endTime,value:e.text});async function xe(e,t,r=at){return rt(e,t,r.label,"chapters")}function st(e,t={label:be}){var n;let r=K(e,t.label,"chapters");return(n=r==null?void 0:r.cues)!=null&&n.length?Array.from(r.cues,o=>se(o)):[]}function ve(e,t={label:be}){var s,a;let r=K(e,t.label,"chapters");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return se(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:d})=>i<=n&&d>n);return se(o||r.activeCues[0])}async function Ce(e,t=at){return new Promise(r=>{L(e,"loadstart",async()=>{let n=await xe(e,[],t);L(e,"cuechange",()=>{let o=ve(e);if(o){let s=new CustomEvent("chapterchange",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}function it(e,t){if(t){let r=t.playingDate;if(r!=null)return new Date(r.getTime()-e.currentTime*1e3)}return typeof e.getStartDate=="function"?e.getStartDate():new Date(NaN)}function ct(e,t){if(t&&t.playingDate)return t.playingDate;if(typeof e.getStartDate=="function"){let r=e.getStartDate();return new Date(r.getTime()+e.currentTime*1e3)}return new Date(NaN)}var ce={VIDEO:"v",THUMBNAIL:"t",STORYBOARD:"s",DRM:"d"},Er=e=>{if(e===P.VIDEO)return ce.VIDEO;if(e===P.DRM)return ce.DRM},gr=(e,t)=>{var o,s;let r=B(e),n=`${r}Token`;return(o=t.tokens)!=null&&o[r]?(s=t.tokens)==null?void 0:s[r]:V(n,t)?t[n]:void 0},q=(e,t,r,n,o=!1,s=!(a=>(a=globalThis.navigator)==null?void 0:a.onLine)())=>{var m,R;if(s){let M=C("Your device appears to be offline",o),x=void 0,E=y.MEDIA_ERR_NETWORK,D=new y(M,E,!1,x);return D.errorCategory=t,D.muxCode=k.NETWORK_OFFLINE,D.data=e,D}let i="status"in e?e.status:e.code,d=Date.now(),u=y.MEDIA_ERR_NETWORK;if(i===200)return;let p=B(t),c=gr(t,r),T=Er(t),[l]=G((m=r.playbackId)!=null?m:"");if(!i||!l)return;let f=oe(c);if(c&&!f){let M=C("The {tokenNamePrefix}-token provided is invalid or malformed.",o).format({tokenNamePrefix:p}),x=C("Compact JWT string: {token}",o).format({token:c}),E=new y(M,u,!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_MALFORMED,E.data=e,E}if(i>=500){let M=new y("",u,n!=null?n:!0);return M.errorCategory=t,M.muxCode=k.NETWORK_UNKNOWN_ERROR,M}if(i===403)if(f){if(Ye(f,d)){let M={timeStyle:"medium",dateStyle:"medium"},x=C("The video\u2019s secured {tokenNamePrefix}-token has expired.",o).format({tokenNamePrefix:p}),E=C("Expired at: {expiredDate}. Current time: {currentDate}.",o).format({expiredDate:new Intl.DateTimeFormat("en",M).format((R=f.exp)!=null?R:0*1e3),currentDate:new Intl.DateTimeFormat("en",M).format(d)}),D=new y(x,u,!0,E);return D.errorCategory=t,D.muxCode=k.NETWORK_TOKEN_EXPIRED,D.data=e,D}if(Be(f,l)){let M=C("The video\u2019s playback ID does not match the one encoded in the {tokenNamePrefix}-token.",o).format({tokenNamePrefix:p}),x=C("Specified playback ID: {playbackId} and the playback ID encoded in the {tokenNamePrefix}-token: {tokenPlaybackId}",o).format({tokenNamePrefix:p,playbackId:l,tokenPlaybackId:f.sub}),E=new y(M,u,!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_SUB_MISMATCH,E.data=e,E}if($e(f,T)){let M=C("The {tokenNamePrefix}-token is formatted with incorrect information.",o).format({tokenNamePrefix:p}),x=C("The {tokenNamePrefix}-token has no aud value. aud value should be {expectedAud}.",o).format({tokenNamePrefix:p,expectedAud:T}),E=new y(M,u,!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_AUD_MISSING,E.data=e,E}if(je(f,T)){let M=C("The {tokenNamePrefix}-token is formatted with incorrect information.",o).format({tokenNamePrefix:p}),x=C("The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.",o).format({tokenNamePrefix:p,expectedAud:T,aud:f.aud}),E=new y(M,u,!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_AUD_MISMATCH,E.data=e,E}}else{let M=C("Authorization error trying to access this {category} URL. If this is a signed URL, you might need to provide a {tokenNamePrefix}-token.",o).format({tokenNamePrefix:p,category:t}),x=C("Specified playback ID: {playbackId}",o).format({playbackId:l}),E=new y(M,u,n!=null?n:!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_MISSING,E.data=e,E}if(i===412){let M=C("This playback-id may belong to a live stream that is not currently active or an asset that is not ready.",o),x=C("Specified playback ID: {playbackId}",o).format({playbackId:l}),E=new y(M,u,n!=null?n:!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_NOT_READY,E.streamType=r.streamType===_.LIVE?"live":r.streamType===_.ON_DEMAND?"on-demand":"unknown",E.data=e,E}if(i===404){let M=C("This URL or playback-id does not exist. You may have used an Asset ID or an ID from a different resource.",o),x=C("Specified playback ID: {playbackId}",o).format({playbackId:l}),E=new y(M,u,n!=null?n:!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_NOT_FOUND,E.data=e,E}if(i===400){let M=C("The URL or playback-id was invalid. You may have used an invalid value as a playback-id."),x=C("Specified playback ID: {playbackId}",o).format({playbackId:l}),E=new y(M,u,n!=null?n:!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_INVALID_URL,E.data=e,E}let g=new y("",u,n!=null?n:!0);return g.errorCategory=t,g.muxCode=k.NETWORK_UNKNOWN_ERROR,g.data=e,g};var ut=b.DefaultConfig.capLevelController,Mr={"720p":921600,"1080p":2073600,"1440p":4194304,"2160p":8294400};function Rr(e){let t=e.toLowerCase().trim();return Mr[t]}var U=class U extends ut{constructor(t){super(t)}static setMaxAutoResolution(t,r){r?U.maxAutoResolution.set(t,r):U.maxAutoResolution.delete(t)}getMaxAutoResolution(){var r;let t=this.hls;return(r=U.maxAutoResolution.get(t))!=null?r:void 0}get levels(){var t;return(t=this.hls.levels)!=null?t:[]}getValidLevels(t){return this.levels.filter((r,n)=>this.isLevelAllowed(r)&&n<=t)}getMaxLevelCapped(t){let r=this.getValidLevels(t),n=this.getMaxAutoResolution();if(!n)return super.getMaxLevel(t);let o=Rr(n);if(!o)return super.getMaxLevel(t);let s=r.filter(d=>d.width*d.height<=o),a=s.findIndex(d=>d.width*d.height===o);if(a!==-1){let d=s[a];return r.findIndex(u=>u===d)}if(s.length===0)return 0;let i=s[s.length-1];return r.findIndex(d=>d===i)}getMaxLevel(t){if(this.getMaxAutoResolution()!==void 0)return this.getMaxLevelCapped(t);let r=super.getMaxLevel(t),n=this.getValidLevels(t);if(!n[r])return r;let o=Math.min(n[r].width,n[r].height),s=U.minMaxResolution;return o>=s?r:ut.getMaxLevelByMediaSize(n,s*(16/9),s)}};U.minMaxResolution=720,U.maxAutoResolution=new WeakMap;var ke=U,z=ke;var br="com.apple.fps.1_0",xr="application/vnd.apple.mpegurl",dt=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o})=>{if(!window.WebKitMediaKeys||!("onwebkitneedkey"in e)){console.error("No WebKitMediaKeys. FairPlay may not be supported");let T=C("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),l=new y(T,y.MEDIA_ERR_ENCRYPTED,!0);return l.errorCategory=P.DRM,l.muxCode=k.ENCRYPTED_CDM_ERROR,n(e,l),()=>{}}let s=e,a=t(),i=null,d=T=>{(async()=>{try{s.webkitKeys||u();let f=await a;if(T.initData===null||f==null)return;let g=vr(T.initData,f);p(g)}catch(f){console.error("Could not start encrypted playback due to exception",f),n(s,f)}})()},u=()=>{try{let T=new WebKitMediaKeys(br);s.webkitSetMediaKeys(T),o()}catch{let T="Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.",l=new y(T,y.MEDIA_ERR_ENCRYPTED,!0);throw l.errorCategory=P.DRM,l.muxCode=k.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,l}},p=T=>{let l=s.webkitKeys.createSession(xr,T),f=async R=>{try{let M=R.message,x=await r(M);l.update(x)}catch(M){console.error("Error on FairPlay session message",M),n(e,M)}},g=R=>{let M=R.target.error;if(!M)return;console.error(`Internal Webkit Key Session Error - sysCode: ${M.systemCode} code: ${M.code}`);let x=C("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser."),E=new y(x,y.MEDIA_ERR_ENCRYPTED,!0);E.errorCategory=P.DRM,E.muxCode=k.ENCRYPTED_CDM_ERROR,n(e,E)},m=()=>{l.removeEventListener("webkitkeymessage",f),l.removeEventListener("webkitkeyerror",g),e.removeEventListener("teardown",m),"webkitCurrentPlaybackTargetIsWireless"in e&&e.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",m),i=null;try{l.close()}catch{}};"webkitCurrentPlaybackTargetIsWireless"in e&&e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",m,{once:!0}),l.addEventListener("webkitkeymessage",f),l.addEventListener("webkitkeyerror",g),e.addEventListener("teardown",m),i=m},c=()=>{e.removeEventListener("webkitneedkey",d),e.removeEventListener("teardown",c),i==null||i();try{s.webkitSetMediaKeys(null)}catch{}};return e.addEventListener("webkitneedkey",d),e.addEventListener("teardown",c,{once:!0}),c},vr=(e,t)=>{let r=kr(Cr(e)),n=new Uint8Array(e),o=new Uint8Array(r),s=new Uint8Array(t),a=n.byteLength+4+s.byteLength+4+o.byteLength,i=new Uint8Array(a),d=0,u=c=>{i.set(c,d),d+=c.byteLength},p=c=>{let T=new DataView(i.buffer),l=c.byteLength;T.setUint32(d,l,!0),d+=4,u(c)};return u(n),p(o),p(s),i},Cr=e=>new TextDecoder("utf-16le").decode(e).replace("skd://","").slice(1);function kr(e){let t=new ArrayBuffer(e.length*2),r=new DataView(t);for(let n=0;n<e.length;n++)r.setUint16(n*2,e.charCodeAt(n),!0);return t}var lt=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o,fallbackToWebkitFairplay:s})=>{let a=null,i=async c=>{try{let T=c.initDataType;if(T!=="skd"){console.error(`Received unexpected initialization data type "${T}"`);return}e.mediaKeys||await d(T);let l=c.initData;if(l==null){console.error(`Could not start encrypted playback due to missing initData in ${c.type} event`);return}await u(T,l)}catch(T){n(e,T);return}},d=async c=>{let T=await navigator.requestMediaKeySystemAccess("com.apple.fps",[{initDataTypes:[c],videoCapabilities:[{contentType:"application/vnd.apple.mpegurl",robustness:""}],distinctiveIdentifier:"not-allowed",persistentState:"not-allowed",sessionTypes:["temporary"]}]).then(f=>(o(),f)).catch(()=>{let f=C("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),g=new y(f,y.MEDIA_ERR_ENCRYPTED,!0);g.errorCategory=P.DRM,g.muxCode=k.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,n(e,g)});if(!T)return;let l=await T.createMediaKeys();try{let f=await t();await l.setServerCertificate(f).catch(()=>{let g=C("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate."),m=new y(g,y.MEDIA_ERR_ENCRYPTED,!0);return m.errorCategory=P.DRM,m.muxCode=k.ENCRYPTED_UPDATE_SERVER_CERT_FAILED,Promise.reject(m)})}catch(f){n(e,f);return}await e.setMediaKeys(l)},u=async(c,T)=>{let l=e.mediaKeys.createSession(),f=async R=>{let M=R.message,x=await r(M);try{await l.update(x)}catch{let E=C("Failed to update DRM license. This may be an issue with the player or your protected content."),D=new y(E,y.MEDIA_ERR_ENCRYPTED,!0);D.errorCategory=P.DRM,D.muxCode=k.ENCRYPTED_UPDATE_LICENSE_FAILED,n(e,D)}},g=()=>{let R=M=>{let x;if(M==="internal-error"){let E=C("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser.");x=new y(E,y.MEDIA_ERR_ENCRYPTED,!0),x.errorCategory=P.DRM,x.muxCode=k.ENCRYPTED_CDM_ERROR}else if(M==="output-restricted"||M==="output-downscaled"){let E=C("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");x=new y(E,y.MEDIA_ERR_ENCRYPTED,!1),x.errorCategory=P.DRM,x.muxCode=k.ENCRYPTED_OUTPUT_RESTRICTED}x&&n(e,x)};l.keyStatuses.forEach(M=>R(M))};l.addEventListener("keystatuseschange",g),l.addEventListener("message",f);let m=async()=>{l.removeEventListener("keystatuseschange",g),l.removeEventListener("message",f),"webkitCurrentPlaybackTargetIsWireless"in e&&e.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",m),e.removeEventListener("teardown",m),await l.close().catch(R=>{console.warn("There was an error when closing EME session",R)}),a=null};"webkitCurrentPlaybackTargetIsWireless"in e&&e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",m,{once:!0}),e.addEventListener("teardown",m,{once:!0}),a=m,await l.generateRequest(c,T).catch(async R=>{if(R.name==="NotSupportedError"&&"webkitCurrentPlaybackTargetIsWireless"in e&&e.webkitCurrentPlaybackTargetIsWireless)console.warn("Failed to generate a DRM license request. Attempting to fallback to Webkit DRM"),s==null||s();else{let M=C("Failed to generate a DRM license request. This may be an issue with the player or your protected content."),x=new y(M,y.MEDIA_ERR_ENCRYPTED,!0);return x.errorCategory=P.DRM,x.muxCode=k.ENCRYPTED_GENERATE_REQUEST_FAILED,console.error("Failed to generate license request",R),Promise.reject(x)}})},p=async()=>{e.removeEventListener("encrypted",i),e.removeEventListener("teardown",p),a&&await a(),await e.setMediaKeys(null).catch(()=>{})};return e.addEventListener("encrypted",i),e.addEventListener("teardown",p,{once:!0}),p};var pt=({hls:e,mediaEl:t,src:r,muxMediaState:n,saveAndDispatchError:o,maxRetries:s})=>{var Ne;let d,u=0,p=!1,c=!1,T=!1,l=()=>{d!=null&&(clearTimeout(d),d=void 0)},f=v=>(v==null?void 0:v.muxCode)===k.NETWORK_RECONNECTING,g=()=>!t.paused&&t.readyState<HTMLMediaElement.HAVE_FUTURE_DATA,m=()=>{let v=n.get(t);if(f(v==null?void 0:v.error))return;let F=new y(C("Attempting to reconnect..."),y.MEDIA_ERR_NETWORK,!1);F.errorCategory=P.VIDEO,F.muxCode=k.NETWORK_RECONNECTING,v&&(v.error=F),t.dispatchEvent(new CustomEvent("error",{detail:F}))},R=()=>{if(!T&&r){e.loadSource(r);return}e.startLoad(t.currentTime)},M=()=>{p=!1,c=!0,l();let v=new y(C("Network error, try reloading."),y.MEDIA_ERR_NETWORK,!0);v.errorCategory=P.VIDEO,v.reload=!0,o(t,v)},x=()=>{if(d!=null||p)return;if(u>=s){M();return}p=!0;let v=Math.min(1e3*2**u,3e4);d=setTimeout(()=>{d=void 0,u+=1,R()},v)},E=()=>{let v=n.get(t);!(v!=null&&v.networkError)||c||g()&&(m(),x())},D=()=>{let v=n.get(t);v&&(v.networkError=!0),p=!1,E()},N=()=>{let v=n.get(t);v!=null&&v.networkError&&(u=0,c=!1,l(),p=!0,R())};(Ne=globalThis.addEventListener)==null||Ne.call(globalThis,"online",N);let w=()=>{let v=n.get(t);v&&(!v.networkError&&!f(v.error)||(v.networkError=!1,p=!1,u=0,c=!1,l(),v.error&&(v.error=null,t.dispatchEvent(new Event("emptied")))))};return e.on(b.Events.FRAG_BUFFERED,w),L(t,"playing",()=>{let v=n.get(t);v!=null&&v.networkError&&(p=!1,u=0,c=!1,l(),v.error&&(v.error=null))}),L(t,"waiting",E),t.addEventListener("teardown",()=>{var v;(v=globalThis.removeEventListener)==null||v.call(globalThis,"online",N),l()},{once:!0}),{handleHlsError:(v,F)=>{var Oe,Ue;if(v.type!==b.ErrorTypes.NETWORK_ERROR)return!1;let Ie=(Ue=(Oe=v.response)==null?void 0:Oe.code)!=null?Ue:0;return(F.muxCode===k.NETWORK_OFFLINE||Ie===0||Ie>=500)&&v.fatal?(D(),!0):!1},onManifestLoaded:()=>{T=!0,p=!1,l()}}};var ue={FAIRPLAY:"fairplay",PLAYREADY:"playready",WIDEVINE:"widevine"},bt=e=>{if(e.includes("fps"))return ue.FAIRPLAY;if(e.includes("playready"))return ue.PLAYREADY;if(e.includes("widevine"))return ue.WIDEVINE},xt=(e,t)=>{let r=Ve(e);if(!r)return Promise.reject(new Error("No media playlist URL found in multivariant playlist"));if(re(r)&&!t)return Promise.reject(new Error("masterPlaylistUrl is required to resolve relative media playlist URL"));let n;try{n=ne(r,t)}catch(o){return Promise.reject(o)}return fetch(n).then(o=>o.status!==200?Promise.reject(o):o.text())},vt=e=>{let t=e.split(`
`).filter(n=>n.startsWith("#EXT-X-SESSION-DATA"));if(!t.length)return{};let r={};for(let n of t){let o=Ct(n),s=o["DATA-ID"];s&&(r[s]={...o})}return{sessionData:r}},Dr=/([A-Z0-9-]+)="?(.*?)"?(?:,|$)/g;function Ct(e){let t=[...e.matchAll(Dr)];return Object.fromEntries(t.map(([,r,n])=>[r,n]))}var kt=e=>{var i,d,u;let t=e.split(`
`),n=(d=((i=t.find(p=>p.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?i:"").split(":")[1])==null?void 0:d.trim(),o=fe(n),s=ye(n),a;if(o===_.LIVE){let p=t.find(T=>T.startsWith("#EXT-X-PART-INF"));if(!!p)a=+p.split(":")[1].split("=")[1]*2;else{let T=t.find(g=>g.startsWith("#EXT-X-TARGETDURATION")),l=(u=T==null?void 0:T.split(":"))==null?void 0:u[1];a=+(l!=null?l:6)*3}}return{streamType:o,targetLiveWindow:s,liveEdgeStartOffset:a}},Dt=async(e,t)=>{if(t===S.MP4)return{streamType:_.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0,sessionData:void 0};if(t===S.M3U8){let r=await fetch(e);if(!r.ok)return Promise.reject(r);let n=await r.text(),o=await xt(n,r.url);return{...vt(n),...kt(o)}}return console.error(`Media type ${t} is an unrecognized or unsupported type for src ${e}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0,sessionData:void 0}},Pt=async(e,t,r=J({src:e}))=>{var d,u,p,c;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,sessionData:a}=await Dt(e,r),i=a==null?void 0:a["com.apple.hls.chapters"];(i!=null&&i.URI||i!=null&&i.VALUE.toLocaleLowerCase().startsWith("http"))&&de((d=i.URI)!=null?d:i.VALUE,t),((u=h.get(t))!=null?u:{}).liveEdgeStartOffset=s,((p=h.get(t))!=null?p:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((c=h.get(t))!=null?c:{}).streamType=n,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},de=async(e,t)=>{var r,n;try{let o=await fetch(e);if(!o.ok)throw new Error(`Failed to fetch Mux metadata: ${o.status} ${o.statusText}`);let s=await o.json(),a={};if(!((r=s==null?void 0:s[0])!=null&&r.metadata))return;for(let d of s[0].metadata)d.key&&d.value&&(a[d.key]=d.value);((n=h.get(t))!=null?n:{}).metadata=a;let i=new CustomEvent("muxmetadata");t.dispatchEvent(i)}catch(o){console.error(o)}},Lt=e=>{var a;let t=e.type,r=fe(t),n=ye(t),o,s=!!((a=e.partList)!=null&&a.length);return r===_.LIVE&&(o=s?e.partTarget*2:e.targetduration*3),{streamType:r,targetLiveWindow:n,liveEdgeStartOffset:o,lowLatency:s}},ht=(e,t,r)=>{var i,d,u,p,c,T,l,f;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,lowLatency:a}=Lt(e);if(n===_.LIVE){a?(r.config.backBufferLength=(i=r.userConfig.backBufferLength)!=null?i:4,r.config.maxFragLookUpTolerance=(d=r.userConfig.maxFragLookUpTolerance)!=null?d:.001,r.config.abrBandWidthUpFactor=(u=r.userConfig.abrBandWidthUpFactor)!=null?u:r.config.abrBandWidthFactor):r.config.backBufferLength=(p=r.userConfig.backBufferLength)!=null?p:8;let g=Object.freeze({get length(){return t.seekable.length},start(m){return t.seekable.start(m)},end(m){var R;return m>this.length||m<0||Number.isFinite(t.duration)?t.seekable.end(m):(R=r.liveSyncPosition)!=null?R:t.seekable.end(m)}});((c=h.get(t))!=null?c:{}).seekable=g}((T=h.get(t))!=null?T:{}).liveEdgeStartOffset=s,((l=h.get(t))!=null?l:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((f=h.get(t))!=null?f:{}).streamType=n,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},ft,yt,_t=(yt=(ft=globalThis==null?void 0:globalThis.navigator)==null?void 0:ft.userAgent)!=null?yt:"",Tt,mt,Et,Pr=(Et=(mt=(Tt=globalThis==null?void 0:globalThis.navigator)==null?void 0:Tt.userAgentData)==null?void 0:mt.platform)!=null?Et:"",Lr=_t.toLowerCase().includes("android")||["x11","android"].some(e=>Pr.toLowerCase().includes(e)),hr=e=>/^((?!chrome|android).)*safari/i.test(_t)&&!!e.canPlayType("application/vnd.apple.mpegurl"),h=new WeakMap,O="mux.com",gt,Mt,wt=(Mt=(gt=b).isSupported)==null?void 0:Mt.call(gt),_r=e=>Lr||!hr(e),wr=()=>{if(typeof window!="undefined")return Q.default.utils.now()},At=Q.default.utils.generateUUID,Ar=({playbackId:e,customDomain:t=O,maxResolution:r,minResolution:n,renditionOrder:o,programStartTime:s,programEndTime:a,assetStartTime:i,assetEndTime:d,playbackToken:u,tokens:{playback:p=u}={},extraSourceParams:c={}}={})=>{if(!e)return;let[T,l=""]=G(e),f=new URL(`https://stream.${t}/${T}.m3u8${l}`);return p||f.searchParams.has("token")?(f.searchParams.forEach((g,m)=>{m!="token"&&f.searchParams.delete(m)}),p&&f.searchParams.set("token",p)):(r&&f.searchParams.set("max_resolution",r),n&&(f.searchParams.set("min_resolution",n),r&&+r.slice(0,-1)<+n.slice(0,-1)&&console.error("minResolution must be <= maxResolution","minResolution",n,"maxResolution",r)),o&&f.searchParams.set("rendition_order",o),s&&f.searchParams.set("program_start_time",`${s}`),a&&f.searchParams.set("program_end_time",`${a}`),i&&f.searchParams.set("asset_start_time",`${i}`),d&&f.searchParams.set("asset_end_time",`${d}`),Object.entries(c).forEach(([g,m])=>{m!=null&&f.searchParams.set(g,m)})),f.toString()},le=e=>{if(!e)return;let[t]=e.split("?");return t||void 0},Le=e=>{if(!e||!e.startsWith("https://stream."))return;let[t]=new URL(e).pathname.slice(1).split(/\.m3u8|\//);return t||void 0},Sr=e=>{var t,r,n;return(t=e==null?void 0:e.metadata)!=null&&t.video_id?e.metadata.video_id:Se(e)&&(n=(r=le(e.playbackId))!=null?r:Le(e.src))!=null?n:e.src},St=e=>{var t;return(t=h.get(e))==null?void 0:t.error},Nr=e=>{var t;return(t=h.get(e))==null?void 0:t.metadata},De=e=>{var t,r;return(r=(t=h.get(e))==null?void 0:t.streamType)!=null?r:_.UNKNOWN},Ir=e=>{var t,r;return(r=(t=h.get(e))==null?void 0:t.targetLiveWindow)!=null?r:Number.NaN},he=e=>{var t,r;return(r=(t=h.get(e))==null?void 0:t.seekable)!=null?r:e.seekable},Or=e=>{var n;let t=(n=h.get(e))==null?void 0:n.liveEdgeStartOffset;if(typeof t!="number")return Number.NaN;let r=he(e);return r.length?r.end(r.length-1)-t:Number.NaN},Ur=e=>{var t;return(t=h.get(e))==null?void 0:t.coreReference},_e=.034,Hr=(e,t,r=_e)=>Math.abs(e-t)<=r,Nt=(e,t,r=_e)=>e>t||Hr(e,t,r),It=(e,t=_e)=>e.paused&&Nt(e.currentTime,e.duration,t),we=(e,t)=>{var u,p,c;if(!t||!e.buffered.length)return;if(e.readyState>2)return!1;let r=t.currentLevel>=0?(p=(u=t.levels)==null?void 0:u[t.currentLevel])==null?void 0:p.details:(c=t.levels.find(T=>!!T.details))==null?void 0:c.details;if(!r||r.live)return;let{fragments:n}=r;if(!(n!=null&&n.length))return;if(e.currentTime<e.duration-(r.targetduration+.5))return!1;let o=n[n.length-1];if(e.currentTime<=o.start)return!1;let s=o.start+o.duration/2,a=e.buffered.start(e.buffered.length-1),i=e.buffered.end(e.buffered.length-1);return s>a&&s<i},Ot=(e,t)=>e.ended||e.loop?e.ended:t&&we(e,t)?!0:It(e),Ut=(e,t,r)=>{Ht(t,r,e);let{metadata:n={}}=e,{view_session_id:o=At()}=n,s=Sr(e);n.view_session_id=o,n.video_id=s,e.metadata=n;let a=T=>{var l;(l=t.mux)==null||l.emit("hb",{view_drm_type:T})};e.drmTypeCb=a,e.fallbackToWebkitFairplay=async()=>{var m;let T=!t.paused,l=t.currentTime;e.useWebkitFairplay=!0;let f=e.muxDataKeepSession;e.muxDataKeepSession=!0;let g=(m=h.get(t))==null?void 0:m.coreReference;Ut(e,t,g),e.muxDataKeepSession=f,e.useWebkitFairplay=!1,T&&await t.play().then(()=>{t.currentTime=l}).catch(()=>{}),t.currentTime=l},h.set(t,{retryCount:0});let i=Wt(e,t),d=ze(e,t,i);e!=null&&e.muxDataKeepSession&&(t!=null&&t.mux)&&!t.mux.deleted?i&&t.mux.addHLSJS({hlsjs:i,Hls:i?b:void 0}):Gt(e,t,i),Jt(e,t,i),Re(t),Ce(t);let u=qe(e,t,i);Xe(e,t,i),Qe(e,t,i);let p={engine:i,setAutoplay:u,setPreload:d},c=h.get(t);return c&&(c.coreReference=p),p},Ht=(e,t,r)=>{let n=t==null?void 0:t.engine;e!=null&&e.mux&&!e.mux.deleted&&(r!=null&&r.muxDataKeepSession?n&&e.mux.removeHLSJS():(e.mux.destroy(),delete e.mux)),n&&(n.detachMedia(),n.destroy()),e&&(e.hasAttribute("src")&&(e.removeAttribute("src"),e.load()),e.removeEventListener("error",zt),e.removeEventListener("error",Pe),e.removeEventListener("durationchange",qt),h.delete(e),e.dispatchEvent(new Event("teardown")))};function Kt(e,t){var u;let r=J(e);if(!(r===S.M3U8))return!0;let o=!r||((u=t.canPlayType(r))!=null?u:!0),{preferPlayback:s}=e,a=s===ee.MSE,i=s===ee.NATIVE,d=wt&&(a||_r(t));return o&&(i||!d)}var Wt=(e,t)=>{let{debug:r,streamType:n,startTime:o=-1,metadata:s,preferCmcd:a,_hlsConfig:i={},maxAutoResolution:d,initialBandwidthEstimateKbps:u}=e,c=J(e)===S.M3U8,T=Kt(e,t);if(c&&!T&&wt){let l={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelOnFPSDrop:!0,...u!=null?{abrEwmaDefaultEstimate:u*1e3}:{}},f=Ft(n),g=Vt(e),m=[H.QUERY,H.HEADER].includes(a)?{useHeaders:a===H.HEADER,sessionId:s==null?void 0:s.view_session_id,contentId:s==null?void 0:s.video_id}:void 0,R=jt(e,i),M=new b({debug:r,startPosition:o,cmcd:m,xhrSetup:(x,E)=>{var w,W;if(a&&a!==H.QUERY)return;let D=ne(E);if(!D.searchParams.has("CMCD"))return;let N=((W=(w=D.searchParams.get("CMCD"))==null?void 0:w.split(","))!=null?W:[]).filter(Y=>Y.startsWith("sid")||Y.startsWith("cid")).join(",");D.searchParams.set("CMCD",N),x.open("GET",D)},...l,...R,...f,...g,...i});return R.capLevelController===z&&d!==void 0&&z.setMaxAutoResolution(M,d),M.on(b.Events.MANIFEST_PARSED,async function(x,E){var N,w;let D=(N=E.sessionData)==null?void 0:N["com.apple.hls.chapters"];(D!=null&&D.URI||D!=null&&D.VALUE.toLocaleLowerCase().startsWith("http"))&&de((w=D==null?void 0:D.URI)!=null?w:D==null?void 0:D.VALUE,t)}),M}},Ft=e=>e===_.LIVE?{backBufferLength:8}:{},Vt=e=>{let{tokens:{drm:t}={},playbackId:r,drmTypeCb:n}=e,o=le(r);return!t||!o?{}:{emeEnabled:!0,drmSystems:{"com.apple.fps":{licenseUrl:X(e,"fairplay"),serverCertificateUrl:Ae(e,"fairplay")},"com.widevine.alpha":{licenseUrl:X(e,"widevine")},"com.microsoft.playready":{licenseUrl:X(e,"playready")}},requestMediaKeySystemAccessFunc:(s,a)=>(s==="com.widevine.alpha"&&(a=[...a.map(i=>{var u;let d=(u=i.videoCapabilities)==null?void 0:u.map(p=>({...p,robustness:"HW_SECURE_ALL"}));return{...i,videoCapabilities:d}}),...a]),navigator.requestMediaKeySystemAccess(s,a).then(i=>{let d=bt(s);return n==null||n(d),i}))}},Yt=async e=>{let t=await fetch(e);return t.status!==200?Promise.reject(t):await t.arrayBuffer()},Bt=async(e,t)=>{let r=await fetch(t,{method:"POST",headers:{"Content-type":"application/octet-stream"},body:e});if(r.status!==200)return Promise.reject(r);let n=await r.arrayBuffer();return new Uint8Array(n)},$t=(e,t)=>{let o={mediaEl:t,getAppCertificate:()=>Yt(Ae(e,"fairplay")).catch(s=>{if(s instanceof Response){let a=q(s,P.DRM,e);return console.error("mediaError",a==null?void 0:a.message,a==null?void 0:a.context),a?Promise.reject(a):Promise.reject(new Error("Unexpected error in app cert request"))}return Promise.reject(s)}),getLicenseKey:s=>Bt(s,X(e,"fairplay")).catch(a=>{if(a instanceof Response){let i=q(a,P.DRM,e);return console.error("mediaError",i==null?void 0:i.message,i==null?void 0:i.context),i?Promise.reject(i):Promise.reject(new Error("Unexpected error in license key request"))}return Promise.reject(a)}),saveAndDispatchError:I,drmTypeCb:()=>{var s;(s=e.drmTypeCb)==null||s.call(e,ue.FAIRPLAY)}};if(e.useWebkitFairplay)dt(o);else{let s={fallbackToWebkitFairplay:async()=>{var i;await a(),(i=e.fallbackToWebkitFairplay)==null||i.call(e)},...o},a=lt(s)}},X=({playbackId:e,tokens:{drm:t}={},customDomain:r=O},n)=>{let o=le(e);return`https://license.${r.toLocaleLowerCase().endsWith(O)?r:O}/license/${n}/${o}?token=${t}`},Ae=({playbackId:e,tokens:{drm:t}={},customDomain:r=O},n)=>{let o=le(e);return`https://license.${r.toLocaleLowerCase().endsWith(O)?r:O}/appcert/${n}/${o}?token=${t}`},Se=({playbackId:e,src:t,customDomain:r})=>{if(e)return!0;if(typeof t!="string")return!1;let n=window==null?void 0:window.location.href,o=new URL(t,n).hostname.toLocaleLowerCase();return o.includes(O)||!!r&&o.includes(r.toLocaleLowerCase())},jt=(e,t)=>{let r={};return r.capLevelToPlayerSize=e.capRenditionToPlayerSize,r.capLevelToPlayerSize==null?(r.capLevelController=z,r.capLevelToPlayerSize=!0):r.capLevelController=Rt.CapLevelController,r},Gt=(e,t,r)=>{var d;let{envKey:n,disableTracking:o,muxDataSDK:s=Q.default,muxDataSDKOptions:a={}}=e,i=Se(e);if(!o&&(n||i)){let{playerInitTime:u,playerSoftwareName:p,playerSoftwareVersion:c,beaconCollectionDomain:T,debug:l,disableCookies:f}=e,g={...e.metadata,video_title:((d=e==null?void 0:e.metadata)==null?void 0:d.video_title)||void 0},m=R=>typeof R.player_error_code=="string"?!1:typeof e.errorTranslator=="function"?e.errorTranslator(R):R;s.monitor(t,{debug:l,beaconCollectionDomain:T,hlsjs:r,Hls:r?b:void 0,automaticErrorTracking:!1,errorTranslator:m,disableCookies:f,...a,data:{...n?{env_key:n}:{},player_software_name:p,player_software:p,player_software_version:c,player_init_time:u,...g}})}},Jt=(e,t,r)=>{var p,c,T;let n=Kt(e,t),{src:o,customDomain:s=O}=e,a=()=>{t.ended||e.disablePseudoEnded||!Ot(t,r)||(we(t,r)?t.currentTime=t.buffered.end(t.buffered.length-1):t.dispatchEvent(new Event("ended")))},i,d,u=()=>{let l=he(t),f,g;l.length>0&&(f=l.start(0),g=l.end(0)),(d!==g||i!==f)&&t.dispatchEvent(new CustomEvent("seekablechange",{composed:!0})),i=f,d=g};if(L(t,"durationchange",u),t&&n){let l=J(e);if(typeof o=="string"){if(o.endsWith(".mp4")&&o.includes(s)){let m=Le(o),R=new URL(`https://stream.${s}/${m}/metadata.json`);de(R.toString(),t)}let f=()=>{if(De(t)!==_.LIVE||Number.isFinite(t.duration))return;let m=setInterval(u,1e3);t.addEventListener("teardown",()=>{clearInterval(m)},{once:!0}),L(t,"durationchange",()=>{Number.isFinite(t.duration)&&clearInterval(m)})},g=async()=>Pt(o,t,l).then(f).catch(m=>{if(m instanceof Response){let R=q(m,P.VIDEO,e);if(R){I(t,R);return}}else m instanceof Error});if(t.preload==="none"){let m=()=>{g(),t.removeEventListener("loadedmetadata",R)},R=()=>{g(),t.removeEventListener("play",m)};L(t,"play",m,{once:!0}),L(t,"loadedmetadata",R,{once:!0})}else g();(p=e.tokens)!=null&&p.drm?$t(e,t):L(t,"encrypted",()=>{let m=C("Attempting to play DRM-protected content without providing a DRM token."),R=new y(m,y.MEDIA_ERR_ENCRYPTED,!0);R.errorCategory=P.DRM,R.muxCode=k.ENCRYPTED_MISSING_TOKEN,I(t,R)},{once:!0}),t.setAttribute("src",o),e.startTime&&(((c=h.get(t))!=null?c:{}).startTime=e.startTime,t.addEventListener("durationchange",qt,{once:!0}))}else t.removeAttribute("src");t.addEventListener("error",zt),t.addEventListener("error",Pe),t.addEventListener("emptied",()=>{t.querySelectorAll("track[data-removeondestroy]").forEach(g=>{g.remove()})},{once:!0}),L(t,"pause",a),L(t,"seeked",a),L(t,"play",()=>{t.ended||Nt(t.currentTime,t.duration)&&(t.currentTime=t.seekable.length?t.seekable.start(0):0)})}else if(r&&o){r.once(b.Events.LEVEL_LOADED,(g,m)=>{ht(m.details,t,r),u(),De(t)===_.LIVE&&!Number.isFinite(t.duration)&&(r.on(b.Events.LEVEL_UPDATED,u),L(t,"durationchange",()=>{Number.isFinite(t.duration)&&r.off(b.Events.LEVELS_UPDATED,u)}))});let l=(T=e.maxReconnectRetries)!=null?T:0,f=l>0?pt({hls:r,mediaEl:t,src:o,muxMediaState:h,saveAndDispatchError:I,maxRetries:l}):void 0;r.on(b.Events.ERROR,(g,m)=>{var M,x;let R=Kr(m,e);if(R.muxCode===k.NETWORK_NOT_READY){let D=(M=h.get(t))!=null?M:{},N=(x=D.retryCount)!=null?x:0;if(N<6){let w=N===0?5e3:6e4,W=new y(`Retrying in ${w/1e3} seconds...`,R.code,R.fatal);Object.assign(W,R),I(t,W);let Y=setTimeout(()=>{D.retryCount=N+1,m.details==="manifestLoadError"&&m.url&&r.loadSource(m.url)},w);t.addEventListener("teardown",()=>clearTimeout(Y),{once:!0});return}else{D.retryCount=0;let w=new y("Network error, try reloading.",R.code,R.fatal);Object.assign(w,R),w.reload=!0,I(t,w);return}}f!=null&&f.handleHlsError(m,R)||I(t,R)}),r.on(b.Events.MANIFEST_LOADED,()=>{f==null||f.onManifestLoaded();let g=h.get(t);g!=null&&g.networkError||g&&g.error&&(g.error=null,g.retryCount=0,t.dispatchEvent(new Event("emptied")),t.dispatchEvent(new Event("loadstart")))}),t.addEventListener("error",Pe),L(t,"waiting",a),Ze(e,r),et(t,r),r.attachMedia(t)}else 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 qt(e){var n;let t=e.target,r=(n=h.get(t))==null?void 0:n.startTime;if(r&&Fe(t.seekable,t.duration,r)){let o=t.preload==="auto";o&&(t.preload="none"),t.currentTime=r,o&&(t.preload="auto")}}async function zt(e){if(!e.isTrusted)return;e.stopImmediatePropagation();let t=e.target;if(!(t!=null&&t.error))return;let{message:r,code:n}=t.error,o=new y(r,n);if(t.src&&n===y.MEDIA_ERR_SRC_NOT_SUPPORTED&&t.readyState===HTMLMediaElement.HAVE_NOTHING){setTimeout(()=>{var a;let s=(a=St(t))!=null?a:t.error;(s==null?void 0:s.code)===y.MEDIA_ERR_SRC_NOT_SUPPORTED&&I(t,o)},500);return}if(t.src&&(n!==y.MEDIA_ERR_DECODE||n!==void 0))try{let{status:s}=await fetch(t.src);o.data={response:{code:s}}}catch{}I(t,o)}function I(e,t){var r;t.fatal&&(((r=h.get(e))!=null?r:{}).error=t,e.dispatchEvent(new CustomEvent("error",{detail:t})))}function Pe(e){var n,o;if(!(e instanceof CustomEvent)||!(e.detail instanceof y))return;let t=e.target,r=e.detail;!r||!r.fatal||(((n=h.get(t))!=null?n:{}).error=r,(o=t.mux)==null||o.emit("error",{player_error_code:r.code,player_error_message:r.message,player_error_context:r.context}))}var Kr=(e,t)=>{var d,u,p;!e.fatal?t.debug&&console.warn("getErrorFromHlsErrorData() (non-fatal)",e):console.error("getErrorFromHlsErrorData()",e);let n={[b.ErrorTypes.NETWORK_ERROR]:y.MEDIA_ERR_NETWORK,[b.ErrorTypes.MEDIA_ERROR]:y.MEDIA_ERR_DECODE,[b.ErrorTypes.KEY_SYSTEM_ERROR]:y.MEDIA_ERR_ENCRYPTED},o=c=>[b.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,b.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED].includes(c.details)?y.MEDIA_ERR_NETWORK:n[c.type],s=c=>{if(c.type===b.ErrorTypes.KEY_SYSTEM_ERROR)return P.DRM;if(c.type===b.ErrorTypes.NETWORK_ERROR)return P.VIDEO},a,i=o(e);if(i===y.MEDIA_ERR_NETWORK&&e.response){let c=(d=s(e))!=null?d:P.VIDEO;a=(u=q(e.response,c,t,e.fatal))!=null?u:new y("",i,e.fatal)}else if(i===y.MEDIA_ERR_ENCRYPTED)if(e.details===b.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE){let c=C("Attempting to play DRM-protected content without providing a DRM token.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_MISSING_TOKEN}else if(e.details===b.ErrorDetails.KEY_SYSTEM_NO_ACCESS){let c=C("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM}else if(e.details===b.ErrorDetails.KEY_SYSTEM_NO_SESSION){let c=C("Failed to generate a DRM license request. This may be an issue with the player or your protected content.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,!0),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_GENERATE_REQUEST_FAILED}else if(e.details===b.ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED){let c=C("Failed to update DRM license. This may be an issue with the player or your protected content.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_UPDATE_LICENSE_FAILED}else if(e.details===b.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED){let c=C("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_UPDATE_SERVER_CERT_FAILED}else if(e.details===b.ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR){let c=C("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_CDM_ERROR}else if(e.details===b.ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED){let c=C("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,!1),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_OUTPUT_RESTRICTED}else a=new y(e.error.message,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_ERROR;else a=new y("",i,e.fatal);return a.context||(a.context=`${e.url?`url: ${e.url}
`:""}${e.response&&(e.response.code||e.response.text)?`response: ${e.response.code}, ${e.response.text}

@@ -12,4 +12,4 @@ `:""}${e.reason?`failure reason: ${e.reason}

`:""}${e.event?`event: ${e.event}
`:""}${e.err?`error message: ${(f=e.err)==null?void 0:f.message}
`:""}${e.err?`error message: ${(p=e.err)==null?void 0:p.message}
`:""}`),a.data=e,a};
//# sourceMappingURL=index.cjs.js.map

@@ -1,5 +0,5 @@

import ye from"mux-embed";import lt from"hls.js";var R=lt;import{CapLevelController as wt}from"hls.js";var k={VIDEO:"video",THUMBNAIL:"thumbnail",STORYBOARD:"storyboard",DRM:"drm"},C={NOT_AN_ERROR:0,NETWORK_OFFLINE:2000002,NETWORK_UNKNOWN_ERROR:2e6,NETWORK_NO_STATUS:2000001,NETWORK_INVALID_URL:24e5,NETWORK_NOT_FOUND:2404e3,NETWORK_NOT_READY:2412e3,NETWORK_GENERIC_SERVER_FAIL:25e5,NETWORK_TOKEN_MISSING:2403201,NETWORK_TOKEN_MALFORMED:2412202,NETWORK_TOKEN_EXPIRED:2403210,NETWORK_TOKEN_AUD_MISSING:2403221,NETWORK_TOKEN_AUD_MISMATCH:2403222,NETWORK_TOKEN_SUB_MISMATCH:2403232,ENCRYPTED_ERROR:5e6,ENCRYPTED_UNSUPPORTED_KEY_SYSTEM:5000001,ENCRYPTED_GENERATE_REQUEST_FAILED:5000002,ENCRYPTED_UPDATE_LICENSE_FAILED:5000003,ENCRYPTED_UPDATE_SERVER_CERT_FAILED:5000004,ENCRYPTED_CDM_ERROR:5000005,ENCRYPTED_OUTPUT_RESTRICTED:5000006,ENCRYPTED_MISSING_TOKEN:5000002},V=e=>e===k.VIDEO?"playback":e,_=class _ extends Error{constructor(t,r=_.MEDIA_ERR_CUSTOM,n,o){var s;super(t),this.name="MediaError",this.code=r,this.context=o,this.fatal=n!=null?n:r>=_.MEDIA_ERR_NETWORK&&r<=_.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(s=_.defaultMessages[this.code])!=null?s:"")}};_.MEDIA_ERR_ABORTED=1,_.MEDIA_ERR_NETWORK=2,_.MEDIA_ERR_DECODE=3,_.MEDIA_ERR_SRC_NOT_SUPPORTED=4,_.MEDIA_ERR_ENCRYPTED=5,_.MEDIA_ERR_CUSTOM=100,_.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 T=_;var dt=e=>e==null,K=(e,t)=>dt(t)?!1:e in t,Y={ANY:"any",MUTED:"muted"},h={ON_DEMAND:"on-demand",LIVE:"live",UNKNOWN:"unknown"},te={MSE:"mse",NATIVE:"native"},O={HEADER:"header",QUERY:"query",NONE:"none"},fr=Object.values(O),w={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},$={HLS:w.M3U8},yr=Object.keys($),Tr=[...Object.values(w),"hls","HLS"],mr={upTo720p:"720p",upTo1080p:"1080p",upTo1440p:"1440p",upTo2160p:"2160p"},Er={noLessThan480p:"480p",noLessThan540p:"540p",noLessThan720p:"720p",noLessThan1080p:"1080p",noLessThan1440p:"1440p",noLessThan2160p:"2160p"},gr={DESCENDING:"desc"},Mr={upTo720p:"720p",upTo1080p:"1080p",upTo1440p:"1440p",upTo2160p:"2160p"};var pt="en",B={code:pt};var P=(e,t,r,n,o=e)=>{o.addEventListener(t,r,n),e.addEventListener("teardown",()=>{o.removeEventListener(t,r)},{once:!0})};function Me(e,t,r){t&&r>t&&(r=t);for(let n=0;n<e.length;n++)if(e.start(n)<=r&&e.end(n)>=r)return!0;return!1}var J=e=>{let t=e.indexOf("?");if(t<0)return[e];let r=e.slice(0,t),n=e.slice(t);return[r,n]},W=e=>{let{type:t}=e;if(t){let r=t.toUpperCase();return K(r,$)?$[r]:t}return ft(e)},ne=e=>e==="VOD"?h.ON_DEMAND:h.LIVE,oe=e=>e==="EVENT"?Number.POSITIVE_INFINITY:e==="VOD"?Number.NaN:0,ft=e=>{let{src:t}=e;if(!t)return"";let r="";try{r=G(t).pathname}catch{console.error("Invalid url when trying to infer mime type",t)}let n=r.lastIndexOf(".");if(n<0)return Tt(e)?w.M3U8:"";let s=r.slice(n+1).toUpperCase();return K(s,w)?w[s]:""},j=e=>{try{return new URL(e),!1}catch{return!0}},be=e=>e.split(`
`).find((t,r,n)=>r>0&&n[r-1].startsWith("#EXT-X-STREAM-INF")),G=(e,t)=>{var o;if(!j(e))return new URL(e);let r=(o=window==null?void 0:window.location)==null?void 0:o.href,n=t!=null?t:r;return t&&j(t.toString())&&(n=new URL(t,r)),new URL(e,n)},yt="mux.com",Tt=({src:e,customDomain:t=yt})=>{let r;try{r=new URL(`${e}`)}catch{return!1}let n=r.protocol==="https:",o=r.hostname===`stream.${t}`.toLowerCase(),s=r.pathname.split("/"),a=s.length===2,i=!(s!=null&&s[1].includes("."));return n&&o&&a&&i},ae=e=>{let t=(e!=null?e:"").split(".")[1];if(t)try{let r=t.replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(atob(r).split("").map(function(o){return"%"+("00"+o.charCodeAt(0).toString(16)).slice(-2)}).join(""));return JSON.parse(n)}catch{return}},Re=({exp:e},t=Date.now())=>!e||e*1e3<t,xe=({sub:e},t)=>e!==t,Ce=({aud:e},t)=>!e,ve=({aud:e},t)=>e!==t,ke="en";function x(e,t=!0){var o,s;let r=t&&(s=(o=B)==null?void 0:o[e])!=null?s:e,n=t?B.code:ke;return new re(r,n)}var re=class{constructor(t,r=(n=>(n=B)!=null?n:ke)()){this.message=t,this.locale=r}format(t){return this.message.replace(/\{(\w+)\}/g,(r,n)=>{var o;return(o=t[n])!=null?o:""})}toString(){return this.message}};var mt=Object.values(Y),De=e=>typeof e=="boolean"||typeof e=="string"&&mt.includes(e),Pe=(e,t,r)=>{let{autoplay:n}=e,o=!1,s=!1,a=De(n)?n:!!n,i=()=>{o||P(t,"playing",()=>{o=!0},{once:!0})};if(i(),P(t,"loadstart",()=>{o=!1,i(),se(t,a)},{once:!0}),P(t,"loadstart",()=>{r||(e.streamType&&e.streamType!==h.UNKNOWN?s=e.streamType===h.LIVE:s=!Number.isFinite(t.duration)),se(t,a)},{once:!0}),r&&r.once(R.Events.LEVEL_LOADED,(u,f)=>{var c;e.streamType&&e.streamType!==h.UNKNOWN?s=e.streamType===h.LIVE:s=(c=f.details.live)!=null?c:!1}),!a){let u=()=>{!s||Number.isFinite(e.startTime)||(r!=null&&r.liveSyncPosition?t.currentTime=r.liveSyncPosition:Number.isFinite(t.seekable.end(0))&&(t.currentTime=t.seekable.end(0)))};r&&P(t,"play",()=>{t.preload==="metadata"?r.once(R.Events.LEVEL_UPDATED,u):u()},{once:!0})}return u=>{o||(a=De(u)?u:!!u,se(t,a))}},se=(e,t)=>{if(!t)return;let r=e.muted,n=()=>e.muted=r;switch(t){case Y.ANY:e.play().catch(()=>{e.muted=!0,e.play().catch(n)});break;case Y.MUTED:e.muted=!0,e.play().catch(n);break;default:e.play().catch(()=>{});break}};var Le=({preload:e,src:t},r,n)=>{let o=c=>{c!=null&&["","none","metadata","auto"].includes(c)?r.setAttribute("preload",c):r.removeAttribute("preload")};if(!n)return o(e),o;let s=!1,a=!1,i=n.config.maxBufferLength,l=n.config.maxBufferSize,u=c=>{o(c);let y=c!=null?c:r.preload;a||y==="none"||(y==="metadata"?(n.config.maxBufferLength=1,n.config.maxBufferSize=1):(n.config.maxBufferLength=i,n.config.maxBufferSize=l),f())},f=()=>{!s&&t&&(s=!0,n.loadSource(t))};return P(r,"play",()=>{a=!0,n.config.maxBufferLength=i,n.config.maxBufferSize=l,f()},{once:!0}),u(e),u};var he=(e,t,r)=>{let{minPreloadSegments:n}=e;if(n==null||n<=0||!r)return;let o=0,s=!1,a=t.playbackRate||1,i=()=>{t.playbackRate!==0&&(a=t.playbackRate,t.playbackRate=0)};t.playbackRate=0,P(t,"ratechange",i);let l=(u,{frag:f})=>{s||f.type!=="main"||(o++,o>=n&&(s=!0,t.removeEventListener("ratechange",i),t.playbackRate=a))};r.on(R.Events.FRAG_BUFFERED,l),t.addEventListener("teardown",()=>{s||(s=!0,r.off(R.Events.FRAG_BUFFERED,l),t.playbackRate=a)},{once:!0})},_e=(e,t,r)=>{let{initialEstimateSegments:n}=e;if(n==null||n<=0||!r)return;let o=0;r.on(R.Events.FRAG_BUFFERED,(s,{frag:a})=>{a.type==="main"&&(o++,o<n&&r.abrController.resetEstimator(r.config.abrEwmaDefaultEstimate))})};function we(e,t){var l;if(!("videoTracks"in e))return;let r=new WeakMap;t.on(R.Events.MANIFEST_PARSED,function(u,f){i();let c=e.addVideoTrack("main");c.selected=!0;for(let[y,d]of f.levels.entries()){let p=c.addRendition(d.url[0],d.width,d.height,d.videoCodec,d.bitrate);r.set(d,`${y}`),p.id=`${y}`}}),t.on(R.Events.AUDIO_TRACKS_UPDATED,function(u,f){a();for(let c of f.audioTracks){let y=c.default?"main":"alternative",d=e.addAudioTrack(y,c.name,c.lang);d.id=`${c.id}`,c.default&&(d.enabled=!0)}});let n=()=>{var c;let u=+((c=[...e.audioTracks].find(y=>y.enabled))==null?void 0:c.id),f=t.audioTracks.map(y=>y.id);u!=t.audioTrack&&f.includes(u)&&(t.audioTrack=u)};e.audioTracks.addEventListener("change",n),t.on(R.Events.LEVELS_UPDATED,function(u,f){var d;let c=e.videoTracks[(d=e.videoTracks.selectedIndex)!=null?d:0];if(!c)return;let y=f.levels.map(p=>r.get(p));for(let p of e.videoRenditions)p.id&&!y.includes(p.id)&&c.removeRendition(p)});let o=u=>{let f=u.target.selectedIndex;f!=t.nextLevel&&(t.nextLevel=f)};(l=e.videoRenditions)==null||l.addEventListener("change",o);let s=()=>{for(let u of e.videoTracks)e.removeVideoTrack(u)},a=()=>{for(let u of e.audioTracks)e.removeAudioTrack(u)},i=()=>{s(),a()};t.once(R.Events.DESTROYING,()=>{var u,f;i(),(u=e.audioTracks)==null||u.removeEventListener("change",n),(f=e.videoRenditions)==null||f.removeEventListener("change",o)})}var ie=e=>"time"in e?e.time:e.startTime;function Ae(e,t){t.on(R.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(o,{tracks:s})=>{s.forEach(a=>{var f,c;let i=(f=a.subtitleTrack)!=null?f:a.closedCaptions,l=t.subtitleTracks.findIndex(({lang:y,name:d,type:p})=>y==(i==null?void 0:i.lang)&&d===a.label&&p.toLowerCase()===a.kind),u=((c=a._id)!=null?c:a.default)?"default":`${a.kind}${l}`;ce(e,a.kind,a.label,i==null?void 0:i.lang,u,a.default)})});let r=()=>{if(!t.subtitleTracks.length)return;let o=Array.from(e.textTracks).find(i=>i.id&&i.mode==="showing"&&["subtitles","captions"].includes(i.kind));if(!o)return;let s=t.subtitleTracks[t.subtitleTrack],a=s?s.default?"default":`${t.subtitleTracks[t.subtitleTrack].type.toLowerCase()}${t.subtitleTrack}`:void 0;if(t.subtitleTrack<0||(o==null?void 0:o.id)!==a){let i=t.subtitleTracks.findIndex(({lang:l,name:u,type:f,default:c})=>o.id==="default"&&c||l==o.language&&u===o.label&&f.toLowerCase()===o.kind);t.subtitleTrack=i}(o==null?void 0:o.id)===a&&o.cues&&Array.from(o.cues).forEach(i=>{o.addCue(i)})};e.textTracks.addEventListener("change",r),t.on(R.Events.CUES_PARSED,(o,{track:s,cues:a})=>{let i=e.textTracks.getTrackById(s);if(!i)return;let l=i.mode==="disabled";l&&(i.mode="hidden"),a.forEach(u=>{var f;(f=i.cues)!=null&&f.getCueById(u.id)||i.addCue(u)}),l&&(i.mode="disabled")}),t.once(R.Events.DESTROYING,()=>{e.textTracks.removeEventListener("change",r),e.querySelectorAll("track[data-removeondestroy]").forEach(s=>{s.remove()})});let n=()=>{Array.from(e.textTracks).forEach(o=>{var s,a;if(!["subtitles","caption"].includes(o.kind)&&(o.label==="thumbnails"||o.kind==="chapters")){if(!((s=o.cues)!=null&&s.length)){let i="track";o.kind&&(i+=`[kind="${o.kind}"]`),o.label&&(i+=`[label="${o.label}"]`);let l=e.querySelector(i),u=(a=l==null?void 0:l.getAttribute("src"))!=null?a:"";l==null||l.removeAttribute("src"),setTimeout(()=>{l==null||l.setAttribute("src",u)},0)}o.mode!=="hidden"&&(o.mode="hidden")}})};t.once(R.Events.MANIFEST_LOADED,n),t.once(R.Events.MEDIA_ATTACHED,n)}function ce(e,t,r,n,o,s){let a=document.createElement("track");return a.kind=t,a.label=r,n&&(a.srclang=n),o&&(a.id=o),s&&(a.default=!0),a.track.mode=["subtitles","captions"].includes(t)?"disabled":"hidden",a.setAttribute("data-removeondestroy",""),e.append(a),a.track}function Et(e,t){let r=Array.prototype.find.call(e.querySelectorAll("track"),n=>n.track===t);r==null||r.remove()}function U(e,t,r){var n;return(n=Array.from(e.querySelectorAll("track")).find(o=>o.track.label===t&&o.track.kind===r))==null?void 0:n.track}async function Se(e,t,r,n){let o=U(e,r,n);return o||(o=ce(e,n,r),o.mode="hidden",await new Promise(s=>setTimeout(()=>s(void 0),0))),o.mode!=="hidden"&&(o.mode="hidden"),[...t].sort((s,a)=>ie(a)-ie(s)).forEach(s=>{var l,u;let a=s.value,i=ie(s);if("endTime"in s&&s.endTime!=null)o==null||o.addCue(new VTTCue(i,s.endTime,n==="chapters"?a:JSON.stringify(a!=null?a:null)));else{let f=Array.prototype.findIndex.call(o==null?void 0:o.cues,p=>p.startTime>=i),c=(l=o==null?void 0:o.cues)==null?void 0:l[f],y=c?c.startTime:Number.isFinite(e.duration)?e.duration:Number.MAX_SAFE_INTEGER,d=(u=o==null?void 0:o.cues)==null?void 0:u[f-1];d&&(d.endTime=i),o==null||o.addCue(new VTTCue(i,y,n==="chapters"?a:JSON.stringify(a!=null?a:null)))}}),e.textTracks.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})),o}var ue="cuepoints",Ie=Object.freeze({label:ue});async function Ne(e,t,r=Ie){return Se(e,t,r.label,"metadata")}var q=e=>({time:e.startTime,value:JSON.parse(e.text)});function gt(e,t={label:ue}){let r=U(e,t.label,"metadata");return r!=null&&r.cues?Array.from(r.cues,n=>q(n)):[]}function Oe(e,t={label:ue}){var s,a;let r=U(e,t.label,"metadata");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return q(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:l})=>i<=n&&l>n);return q(o||r.activeCues[0])}async function Ue(e,t=Ie){return new Promise(r=>{P(e,"loadstart",async()=>{let n=await Ne(e,[],t);P(e,"cuechange",()=>{let o=Oe(e);if(o){let s=new CustomEvent("cuepointchange",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}var le="chapters",He=Object.freeze({label:le}),z=e=>({startTime:e.startTime,endTime:e.endTime,value:e.text});async function Ke(e,t,r=He){return Se(e,t,r.label,"chapters")}function Mt(e,t={label:le}){var n;let r=U(e,t.label,"chapters");return(n=r==null?void 0:r.cues)!=null&&n.length?Array.from(r.cues,o=>z(o)):[]}function We(e,t={label:le}){var s,a;let r=U(e,t.label,"chapters");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return z(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:l})=>i<=n&&l>n);return z(o||r.activeCues[0])}async function Fe(e,t=He){return new Promise(r=>{P(e,"loadstart",async()=>{let n=await Ke(e,[],t);P(e,"cuechange",()=>{let o=We(e);if(o){let s=new CustomEvent("chapterchange",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}function bt(e,t){if(t){let r=t.playingDate;if(r!=null)return new Date(r.getTime()-e.currentTime*1e3)}return typeof e.getStartDate=="function"?e.getStartDate():new Date(NaN)}function Rt(e,t){if(t&&t.playingDate)return t.playingDate;if(typeof e.getStartDate=="function"){let r=e.getStartDate();return new Date(r.getTime()+e.currentTime*1e3)}return new Date(NaN)}var de={VIDEO:"v",THUMBNAIL:"t",STORYBOARD:"s",DRM:"d"},xt=e=>{if(e===k.VIDEO)return de.VIDEO;if(e===k.DRM)return de.DRM},Ct=(e,t)=>{var o,s;let r=V(e),n=`${r}Token`;return(o=t.tokens)!=null&&o[r]?(s=t.tokens)==null?void 0:s[r]:K(n,t)?t[n]:void 0},F=(e,t,r,n,o=!1,s=!(a=>(a=globalThis.navigator)==null?void 0:a.onLine)())=>{var E,D;if(s){let g=x("Your device appears to be offline",o),b=void 0,m=T.MEDIA_ERR_NETWORK,v=new T(g,m,!1,b);return v.errorCategory=t,v.muxCode=C.NETWORK_OFFLINE,v.data=e,v}let i="status"in e?e.status:e.code,l=Date.now(),u=T.MEDIA_ERR_NETWORK;if(i===200)return;let f=V(t),c=Ct(t,r),y=xt(t),[d]=J((E=r.playbackId)!=null?E:"");if(!i||!d)return;let p=ae(c);if(c&&!p){let g=x("The {tokenNamePrefix}-token provided is invalid or malformed.",o).format({tokenNamePrefix:f}),b=x("Compact JWT string: {token}",o).format({token:c}),m=new T(g,u,!0,b);return m.errorCategory=t,m.muxCode=C.NETWORK_TOKEN_MALFORMED,m.data=e,m}if(i>=500){let g=new T("",u,n!=null?n:!0);return g.errorCategory=t,g.muxCode=C.NETWORK_UNKNOWN_ERROR,g}if(i===403)if(p){if(Re(p,l)){let g={timeStyle:"medium",dateStyle:"medium"},b=x("The video\u2019s secured {tokenNamePrefix}-token has expired.",o).format({tokenNamePrefix:f}),m=x("Expired at: {expiredDate}. Current time: {currentDate}.",o).format({expiredDate:new Intl.DateTimeFormat("en",g).format((D=p.exp)!=null?D:0*1e3),currentDate:new Intl.DateTimeFormat("en",g).format(l)}),v=new T(b,u,!0,m);return v.errorCategory=t,v.muxCode=C.NETWORK_TOKEN_EXPIRED,v.data=e,v}if(xe(p,d)){let g=x("The video\u2019s playback ID does not match the one encoded in the {tokenNamePrefix}-token.",o).format({tokenNamePrefix:f}),b=x("Specified playback ID: {playbackId} and the playback ID encoded in the {tokenNamePrefix}-token: {tokenPlaybackId}",o).format({tokenNamePrefix:f,playbackId:d,tokenPlaybackId:p.sub}),m=new T(g,u,!0,b);return m.errorCategory=t,m.muxCode=C.NETWORK_TOKEN_SUB_MISMATCH,m.data=e,m}if(Ce(p,y)){let g=x("The {tokenNamePrefix}-token is formatted with incorrect information.",o).format({tokenNamePrefix:f}),b=x("The {tokenNamePrefix}-token has no aud value. aud value should be {expectedAud}.",o).format({tokenNamePrefix:f,expectedAud:y}),m=new T(g,u,!0,b);return m.errorCategory=t,m.muxCode=C.NETWORK_TOKEN_AUD_MISSING,m.data=e,m}if(ve(p,y)){let g=x("The {tokenNamePrefix}-token is formatted with incorrect information.",o).format({tokenNamePrefix:f}),b=x("The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.",o).format({tokenNamePrefix:f,expectedAud:y,aud:p.aud}),m=new T(g,u,!0,b);return m.errorCategory=t,m.muxCode=C.NETWORK_TOKEN_AUD_MISMATCH,m.data=e,m}}else{let g=x("Authorization error trying to access this {category} URL. If this is a signed URL, you might need to provide a {tokenNamePrefix}-token.",o).format({tokenNamePrefix:f,category:t}),b=x("Specified playback ID: {playbackId}",o).format({playbackId:d}),m=new T(g,u,n!=null?n:!0,b);return m.errorCategory=t,m.muxCode=C.NETWORK_TOKEN_MISSING,m.data=e,m}if(i===412){let g=x("This playback-id may belong to a live stream that is not currently active or an asset that is not ready.",o),b=x("Specified playback ID: {playbackId}",o).format({playbackId:d}),m=new T(g,u,n!=null?n:!0,b);return m.errorCategory=t,m.muxCode=C.NETWORK_NOT_READY,m.streamType=r.streamType===h.LIVE?"live":r.streamType===h.ON_DEMAND?"on-demand":"unknown",m.data=e,m}if(i===404){let g=x("This URL or playback-id does not exist. You may have used an Asset ID or an ID from a different resource.",o),b=x("Specified playback ID: {playbackId}",o).format({playbackId:d}),m=new T(g,u,n!=null?n:!0,b);return m.errorCategory=t,m.muxCode=C.NETWORK_NOT_FOUND,m.data=e,m}if(i===400){let g=x("The URL or playback-id was invalid. You may have used an invalid value as a playback-id."),b=x("Specified playback ID: {playbackId}",o).format({playbackId:d}),m=new T(g,u,n!=null?n:!0,b);return m.errorCategory=t,m.muxCode=C.NETWORK_INVALID_URL,m.data=e,m}let M=new T("",u,n!=null?n:!0);return M.errorCategory=t,M.muxCode=C.NETWORK_UNKNOWN_ERROR,M.data=e,M};var Ve=R.DefaultConfig.capLevelController,vt={"720p":921600,"1080p":2073600,"1440p":4194304,"2160p":8294400};function kt(e){let t=e.toLowerCase().trim();return vt[t]}var S=class S extends Ve{constructor(t){super(t)}static setMaxAutoResolution(t,r){r?S.maxAutoResolution.set(t,r):S.maxAutoResolution.delete(t)}getMaxAutoResolution(){var r;let t=this.hls;return(r=S.maxAutoResolution.get(t))!=null?r:void 0}get levels(){var t;return(t=this.hls.levels)!=null?t:[]}getValidLevels(t){return this.levels.filter((r,n)=>this.isLevelAllowed(r)&&n<=t)}getMaxLevelCapped(t){let r=this.getValidLevels(t),n=this.getMaxAutoResolution();if(!n)return super.getMaxLevel(t);let o=kt(n);if(!o)return super.getMaxLevel(t);let s=r.filter(l=>l.width*l.height<=o),a=s.findIndex(l=>l.width*l.height===o);if(a!==-1){let l=s[a];return r.findIndex(u=>u===l)}if(s.length===0)return 0;let i=s[s.length-1];return r.findIndex(l=>l===i)}getMaxLevel(t){if(this.getMaxAutoResolution()!==void 0)return this.getMaxLevelCapped(t);let r=super.getMaxLevel(t),n=this.getValidLevels(t);if(!n[r])return r;let o=Math.min(n[r].width,n[r].height),s=S.minMaxResolution;return o>=s?r:Ve.getMaxLevelByMediaSize(n,s*(16/9),s)}};S.minMaxResolution=720,S.maxAutoResolution=new WeakMap;var pe=S,X=pe;var Dt="com.apple.fps.1_0",Pt="application/vnd.apple.mpegurl",Ye=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o})=>{if(!window.WebKitMediaKeys||!("onwebkitneedkey"in e)){console.error("No WebKitMediaKeys. FairPlay may not be supported");let y=x("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),d=new T(y,T.MEDIA_ERR_ENCRYPTED,!0);return d.errorCategory=k.DRM,d.muxCode=C.ENCRYPTED_CDM_ERROR,n(e,d),()=>{}}let s=e,a=t(),i=null,l=y=>{(async()=>{try{s.webkitKeys||u();let p=await a;if(y.initData===null||p==null)return;let M=Lt(y.initData,p);f(M)}catch(p){console.error("Could not start encrypted playback due to exception",p),n(s,p)}})()},u=()=>{try{let y=new WebKitMediaKeys(Dt);s.webkitSetMediaKeys(y),o()}catch{let y="Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.",d=new T(y,T.MEDIA_ERR_ENCRYPTED,!0);throw d.errorCategory=k.DRM,d.muxCode=C.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,d}},f=y=>{let d=s.webkitKeys.createSession(Pt,y),p=async D=>{try{let g=D.message,b=await r(g);d.update(b)}catch(g){console.error("Error on FairPlay session message",g),n(e,g)}},M=D=>{let g=D.target.error;if(!g)return;console.error(`Internal Webkit Key Session Error - sysCode: ${g.systemCode} code: ${g.code}`);let b=x("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser."),m=new T(b,T.MEDIA_ERR_ENCRYPTED,!0);m.errorCategory=k.DRM,m.muxCode=C.ENCRYPTED_CDM_ERROR,n(e,m)},E=()=>{d.removeEventListener("webkitkeymessage",p),d.removeEventListener("webkitkeyerror",M),e.removeEventListener("teardown",E),"webkitCurrentPlaybackTargetIsWireless"in e&&e.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",E),i=null;try{d.close()}catch{}};"webkitCurrentPlaybackTargetIsWireless"in e&&e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",E,{once:!0}),d.addEventListener("webkitkeymessage",p),d.addEventListener("webkitkeyerror",M),e.addEventListener("teardown",E),i=E},c=()=>{e.removeEventListener("webkitneedkey",l),e.removeEventListener("teardown",c),i==null||i();try{s.webkitSetMediaKeys(null)}catch{}};return e.addEventListener("webkitneedkey",l),e.addEventListener("teardown",c,{once:!0}),c},Lt=(e,t)=>{let r=_t(ht(e)),n=new Uint8Array(e),o=new Uint8Array(r),s=new Uint8Array(t),a=n.byteLength+4+s.byteLength+4+o.byteLength,i=new Uint8Array(a),l=0,u=c=>{i.set(c,l),l+=c.byteLength},f=c=>{let y=new DataView(i.buffer),d=c.byteLength;y.setUint32(l,d,!0),l+=4,u(c)};return u(n),f(o),f(s),i},ht=e=>new TextDecoder("utf-16le").decode(e).replace("skd://","").slice(1);function _t(e){let t=new ArrayBuffer(e.length*2),r=new DataView(t);for(let n=0;n<e.length;n++)r.setUint16(n*2,e.charCodeAt(n),!0);return t}var $e=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o,fallbackToWebkitFairplay:s})=>{let a=null,i=async c=>{try{let y=c.initDataType;if(y!=="skd"){console.error(`Received unexpected initialization data type "${y}"`);return}e.mediaKeys||await l(y);let d=c.initData;if(d==null){console.error(`Could not start encrypted playback due to missing initData in ${c.type} event`);return}await u(y,d)}catch(y){n(e,y);return}},l=async c=>{let y=await navigator.requestMediaKeySystemAccess("com.apple.fps",[{initDataTypes:[c],videoCapabilities:[{contentType:"application/vnd.apple.mpegurl",robustness:""}],distinctiveIdentifier:"not-allowed",persistentState:"not-allowed",sessionTypes:["temporary"]}]).then(p=>(o(),p)).catch(()=>{let p=x("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),M=new T(p,T.MEDIA_ERR_ENCRYPTED,!0);M.errorCategory=k.DRM,M.muxCode=C.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,n(e,M)});if(!y)return;let d=await y.createMediaKeys();try{let p=await t();await d.setServerCertificate(p).catch(()=>{let M=x("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate."),E=new T(M,T.MEDIA_ERR_ENCRYPTED,!0);return E.errorCategory=k.DRM,E.muxCode=C.ENCRYPTED_UPDATE_SERVER_CERT_FAILED,Promise.reject(E)})}catch(p){n(e,p);return}await e.setMediaKeys(d)},u=async(c,y)=>{let d=e.mediaKeys.createSession(),p=async D=>{let g=D.message,b=await r(g);try{await d.update(b)}catch{let m=x("Failed to update DRM license. This may be an issue with the player or your protected content."),v=new T(m,T.MEDIA_ERR_ENCRYPTED,!0);v.errorCategory=k.DRM,v.muxCode=C.ENCRYPTED_UPDATE_LICENSE_FAILED,n(e,v)}},M=()=>{let D=g=>{let b;if(g==="internal-error"){let m=x("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser.");b=new T(m,T.MEDIA_ERR_ENCRYPTED,!0),b.errorCategory=k.DRM,b.muxCode=C.ENCRYPTED_CDM_ERROR}else if(g==="output-restricted"||g==="output-downscaled"){let m=x("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");b=new T(m,T.MEDIA_ERR_ENCRYPTED,!1),b.errorCategory=k.DRM,b.muxCode=C.ENCRYPTED_OUTPUT_RESTRICTED}b&&n(e,b)};d.keyStatuses.forEach(g=>D(g))};d.addEventListener("keystatuseschange",M),d.addEventListener("message",p);let E=async()=>{d.removeEventListener("keystatuseschange",M),d.removeEventListener("message",p),"webkitCurrentPlaybackTargetIsWireless"in e&&e.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",E),e.removeEventListener("teardown",E),await d.close().catch(D=>{console.warn("There was an error when closing EME session",D)}),a=null};"webkitCurrentPlaybackTargetIsWireless"in e&&e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",E,{once:!0}),e.addEventListener("teardown",E,{once:!0}),a=E,await d.generateRequest(c,y).catch(async D=>{if(D.name==="NotSupportedError"&&"webkitCurrentPlaybackTargetIsWireless"in e&&e.webkitCurrentPlaybackTargetIsWireless)console.warn("Failed to generate a DRM license request. Attempting to fallback to Webkit DRM"),s==null||s();else{let g=x("Failed to generate a DRM license request. This may be an issue with the player or your protected content."),b=new T(g,T.MEDIA_ERR_ENCRYPTED,!0);return b.errorCategory=k.DRM,b.muxCode=C.ENCRYPTED_GENERATE_REQUEST_FAILED,console.error("Failed to generate license request",D),Promise.reject(b)}})},f=async()=>{e.removeEventListener("encrypted",i),e.removeEventListener("teardown",f),a&&await a(),await e.setMediaKeys(null).catch(()=>{})};return e.addEventListener("encrypted",i),e.addEventListener("teardown",f,{once:!0}),f};var Q={FAIRPLAY:"fairplay",PLAYREADY:"playready",WIDEVINE:"widevine"},At=e=>{if(e.includes("fps"))return Q.FAIRPLAY;if(e.includes("playready"))return Q.PLAYREADY;if(e.includes("widevine"))return Q.WIDEVINE},St=(e,t)=>{let r=be(e);if(!r)return Promise.reject(new Error("No media playlist URL found in multivariant playlist"));if(j(r)&&!t)return Promise.reject(new Error("masterPlaylistUrl is required to resolve relative media playlist URL"));let n;try{n=G(r,t)}catch(o){return Promise.reject(o)}return fetch(n).then(o=>o.status!==200?Promise.reject(o):o.text())},It=e=>{let t=e.split(`
`).filter(n=>n.startsWith("#EXT-X-SESSION-DATA"));if(!t.length)return{};let r={};for(let n of t){let o=Ot(n),s=o["DATA-ID"];s&&(r[s]={...o})}return{sessionData:r}},Nt=/([A-Z0-9-]+)="?(.*?)"?(?:,|$)/g;function Ot(e){let t=[...e.matchAll(Nt)];return Object.fromEntries(t.map(([,r,n])=>[r,n]))}var Ut=e=>{var i,l,u;let t=e.split(`
`),n=(l=((i=t.find(f=>f.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?i:"").split(":")[1])==null?void 0:l.trim(),o=ne(n),s=oe(n),a;if(o===h.LIVE){let f=t.find(y=>y.startsWith("#EXT-X-PART-INF"));if(!!f)a=+f.split(":")[1].split("=")[1]*2;else{let y=t.find(M=>M.startsWith("#EXT-X-TARGETDURATION")),d=(u=y==null?void 0:y.split(":"))==null?void 0:u[1];a=+(d!=null?d:6)*3}}return{streamType:o,targetLiveWindow:s,liveEdgeStartOffset:a}},Ht=async(e,t)=>{if(t===w.MP4)return{streamType:h.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0,sessionData:void 0};if(t===w.M3U8){let r=await fetch(e);if(!r.ok)return Promise.reject(r);let n=await r.text(),o=await St(n,r.url);return{...It(n),...Ut(o)}}return console.error(`Media type ${t} is an unrecognized or unsupported type for src ${e}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0,sessionData:void 0}},Kt=async(e,t,r=W({src:e}))=>{var l,u,f,c;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,sessionData:a}=await Ht(e,r),i=a==null?void 0:a["com.apple.hls.chapters"];(i!=null&&i.URI||i!=null&&i.VALUE.toLocaleLowerCase().startsWith("http"))&&Te((l=i.URI)!=null?l:i.VALUE,t),((u=L.get(t))!=null?u:{}).liveEdgeStartOffset=s,((f=L.get(t))!=null?f:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((c=L.get(t))!=null?c:{}).streamType=n,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},Te=async(e,t)=>{var r,n;try{let o=await fetch(e);if(!o.ok)throw new Error(`Failed to fetch Mux metadata: ${o.status} ${o.statusText}`);let s=await o.json(),a={};if(!((r=s==null?void 0:s[0])!=null&&r.metadata))return;for(let l of s[0].metadata)l.key&&l.value&&(a[l.key]=l.value);((n=L.get(t))!=null?n:{}).metadata=a;let i=new CustomEvent("muxmetadata");t.dispatchEvent(i)}catch(o){console.error(o)}},Wt=e=>{var a;let t=e.type,r=ne(t),n=oe(t),o,s=!!((a=e.partList)!=null&&a.length);return r===h.LIVE&&(o=s?e.partTarget*2:e.targetduration*3),{streamType:r,targetLiveWindow:n,liveEdgeStartOffset:o,lowLatency:s}},Ft=(e,t,r)=>{var i,l,u,f,c,y,d,p;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,lowLatency:a}=Wt(e);if(n===h.LIVE){a?(r.config.backBufferLength=(i=r.userConfig.backBufferLength)!=null?i:4,r.config.maxFragLookUpTolerance=(l=r.userConfig.maxFragLookUpTolerance)!=null?l:.001,r.config.abrBandWidthUpFactor=(u=r.userConfig.abrBandWidthUpFactor)!=null?u:r.config.abrBandWidthFactor):r.config.backBufferLength=(f=r.userConfig.backBufferLength)!=null?f:8;let M=Object.freeze({get length(){return t.seekable.length},start(E){return t.seekable.start(E)},end(E){var D;return E>this.length||E<0||Number.isFinite(t.duration)?t.seekable.end(E):(D=r.liveSyncPosition)!=null?D:t.seekable.end(E)}});((c=L.get(t))!=null?c:{}).seekable=M}((y=L.get(t))!=null?y:{}).liveEdgeStartOffset=s,((d=L.get(t))!=null?d:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((p=L.get(t))!=null?p:{}).streamType=n,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},je,Je,Ze=(Je=(je=globalThis==null?void 0:globalThis.navigator)==null?void 0:je.userAgent)!=null?Je:"",Ge,qe,ze,Vt=(ze=(qe=(Ge=globalThis==null?void 0:globalThis.navigator)==null?void 0:Ge.userAgentData)==null?void 0:qe.platform)!=null?ze:"",Yt=Ze.toLowerCase().includes("android")||["x11","android"].some(e=>Vt.toLowerCase().includes(e)),$t=e=>/^((?!chrome|android).)*safari/i.test(Ze)&&!!e.canPlayType("application/vnd.apple.mpegurl"),L=new WeakMap,A="mux.com",Xe,Qe,et=(Qe=(Xe=R).isSupported)==null?void 0:Qe.call(Xe),Bt=e=>Yt||!$t(e),kn=()=>{if(typeof window!="undefined")return ye.utils.now()},jt=ye.utils.generateUUID,Dn=({playbackId:e,customDomain:t=A,maxResolution:r,minResolution:n,renditionOrder:o,programStartTime:s,programEndTime:a,assetStartTime:i,assetEndTime:l,playbackToken:u,tokens:{playback:f=u}={},extraSourceParams:c={}}={})=>{if(!e)return;let[y,d=""]=J(e),p=new URL(`https://stream.${t}/${y}.m3u8${d}`);return f||p.searchParams.has("token")?(p.searchParams.forEach((M,E)=>{E!="token"&&p.searchParams.delete(E)}),f&&p.searchParams.set("token",f)):(r&&p.searchParams.set("max_resolution",r),n&&(p.searchParams.set("min_resolution",n),r&&+r.slice(0,-1)<+n.slice(0,-1)&&console.error("minResolution must be <= maxResolution","minResolution",n,"maxResolution",r)),o&&p.searchParams.set("rendition_order",o),s&&p.searchParams.set("program_start_time",`${s}`),a&&p.searchParams.set("program_end_time",`${a}`),i&&p.searchParams.set("asset_start_time",`${i}`),l&&p.searchParams.set("asset_end_time",`${l}`),Object.entries(c).forEach(([M,E])=>{E!=null&&p.searchParams.set(M,E)})),p.toString()},ee=e=>{if(!e)return;let[t]=e.split("?");return t||void 0},tt=e=>{if(!e||!e.startsWith("https://stream."))return;let[t]=new URL(e).pathname.slice(1).split(/\.m3u8|\//);return t||void 0},Jt=e=>{var t,r,n;return(t=e==null?void 0:e.metadata)!=null&&t.video_id?e.metadata.video_id:it(e)&&(n=(r=ee(e.playbackId))!=null?r:tt(e.src))!=null?n:e.src},Gt=e=>{var t;return(t=L.get(e))==null?void 0:t.error},Pn=e=>{var t;return(t=L.get(e))==null?void 0:t.metadata},Be=e=>{var t,r;return(r=(t=L.get(e))==null?void 0:t.streamType)!=null?r:h.UNKNOWN},Ln=e=>{var t,r;return(r=(t=L.get(e))==null?void 0:t.targetLiveWindow)!=null?r:Number.NaN},rt=e=>{var t,r;return(r=(t=L.get(e))==null?void 0:t.seekable)!=null?r:e.seekable},hn=e=>{var n;let t=(n=L.get(e))==null?void 0:n.liveEdgeStartOffset;if(typeof t!="number")return Number.NaN;let r=rt(e);return r.length?r.end(r.length-1)-t:Number.NaN},_n=e=>{var t;return(t=L.get(e))==null?void 0:t.coreReference},me=.034,qt=(e,t,r=me)=>Math.abs(e-t)<=r,nt=(e,t,r=me)=>e>t||qt(e,t,r),zt=(e,t=me)=>e.paused&&nt(e.currentTime,e.duration,t),ot=(e,t)=>{var u,f,c;if(!t||!e.buffered.length)return;if(e.readyState>2)return!1;let r=t.currentLevel>=0?(f=(u=t.levels)==null?void 0:u[t.currentLevel])==null?void 0:f.details:(c=t.levels.find(y=>!!y.details))==null?void 0:c.details;if(!r||r.live)return;let{fragments:n}=r;if(!(n!=null&&n.length))return;if(e.currentTime<e.duration-(r.targetduration+.5))return!1;let o=n[n.length-1];if(e.currentTime<=o.start)return!1;let s=o.start+o.duration/2,a=e.buffered.start(e.buffered.length-1),i=e.buffered.end(e.buffered.length-1);return s>a&&s<i},Xt=(e,t)=>e.ended||e.loop?e.ended:t&&ot(e,t)?!0:zt(e),Qt=(e,t,r)=>{Zt(t,r,e);let{metadata:n={}}=e,{view_session_id:o=jt()}=n,s=Jt(e);n.view_session_id=o,n.video_id=s,e.metadata=n;let a=y=>{var d;(d=t.mux)==null||d.emit("hb",{view_drm_type:y})};e.drmTypeCb=a,e.fallbackToWebkitFairplay=async()=>{var E;let y=!t.paused,d=t.currentTime;e.useWebkitFairplay=!0;let p=e.muxDataKeepSession;e.muxDataKeepSession=!0;let M=(E=L.get(t))==null?void 0:E.coreReference;Qt(e,t,M),e.muxDataKeepSession=p,e.useWebkitFairplay=!1,y&&await t.play().then(()=>{t.currentTime=d}).catch(()=>{}),t.currentTime=d},L.set(t,{retryCount:0});let i=er(e,t),l=Le(e,t,i);e!=null&&e.muxDataKeepSession&&(t!=null&&t.mux)&&!t.mux.deleted?i&&t.mux.addHLSJS({hlsjs:i,Hls:i?R:void 0}):ir(e,t,i),cr(e,t,i),Ue(t),Fe(t);let u=Pe(e,t,i);he(e,t,i),_e(e,t,i);let f={engine:i,setAutoplay:u,setPreload:l},c=L.get(t);return c&&(c.coreReference=f),f},Zt=(e,t,r)=>{let n=t==null?void 0:t.engine;e!=null&&e.mux&&!e.mux.deleted&&(r!=null&&r.muxDataKeepSession?n&&e.mux.removeHLSJS():(e.mux.destroy(),delete e.mux)),n&&(n.detachMedia(),n.destroy()),e&&(e.hasAttribute("src")&&(e.removeAttribute("src"),e.load()),e.removeEventListener("error",ut),e.removeEventListener("error",fe),e.removeEventListener("durationchange",ct),L.delete(e),e.dispatchEvent(new Event("teardown")))};function at(e,t){var u;let r=W(e);if(!(r===w.M3U8))return!0;let o=!r||((u=t.canPlayType(r))!=null?u:!0),{preferPlayback:s}=e,a=s===te.MSE,i=s===te.NATIVE,l=et&&(a||Bt(t));return o&&(i||!l)}var er=(e,t)=>{let{debug:r,streamType:n,startTime:o=-1,metadata:s,preferCmcd:a,_hlsConfig:i={},maxAutoResolution:l,initialBandwidthEstimateKbps:u}=e,c=W(e)===w.M3U8,y=at(e,t);if(c&&!y&&et){let d={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelOnFPSDrop:!0,...u!=null?{abrEwmaDefaultEstimate:u*1e3}:{}},p=tr(n),M=rr(e),E=[O.QUERY,O.HEADER].includes(a)?{useHeaders:a===O.HEADER,sessionId:s==null?void 0:s.view_session_id,contentId:s==null?void 0:s.video_id}:void 0,D=sr(e,i),g=new R({debug:r,startPosition:o,cmcd:E,xhrSetup:(b,m)=>{var H,Ee;if(a&&a!==O.QUERY)return;let v=G(m);if(!v.searchParams.has("CMCD"))return;let N=((Ee=(H=v.searchParams.get("CMCD"))==null?void 0:H.split(","))!=null?Ee:[]).filter(ge=>ge.startsWith("sid")||ge.startsWith("cid")).join(",");v.searchParams.set("CMCD",N),b.open("GET",v)},...d,...D,...p,...M,...i});return D.capLevelController===X&&l!==void 0&&X.setMaxAutoResolution(g,l),g.on(R.Events.MANIFEST_PARSED,async function(b,m){var N,H;let v=(N=m.sessionData)==null?void 0:N["com.apple.hls.chapters"];(v!=null&&v.URI||v!=null&&v.VALUE.toLocaleLowerCase().startsWith("http"))&&Te((H=v==null?void 0:v.URI)!=null?H:v==null?void 0:v.VALUE,t)}),g}},tr=e=>e===h.LIVE?{backBufferLength:8}:{},rr=e=>{let{tokens:{drm:t}={},playbackId:r,drmTypeCb:n}=e,o=ee(r);return!t||!o?{}:{emeEnabled:!0,drmSystems:{"com.apple.fps":{licenseUrl:Z(e,"fairplay"),serverCertificateUrl:st(e,"fairplay")},"com.widevine.alpha":{licenseUrl:Z(e,"widevine")},"com.microsoft.playready":{licenseUrl:Z(e,"playready")}},requestMediaKeySystemAccessFunc:(s,a)=>(s==="com.widevine.alpha"&&(a=[...a.map(i=>{var u;let l=(u=i.videoCapabilities)==null?void 0:u.map(f=>({...f,robustness:"HW_SECURE_ALL"}));return{...i,videoCapabilities:l}}),...a]),navigator.requestMediaKeySystemAccess(s,a).then(i=>{let l=At(s);return n==null||n(l),i}))}},nr=async e=>{let t=await fetch(e);return t.status!==200?Promise.reject(t):await t.arrayBuffer()},or=async(e,t)=>{let r=await fetch(t,{method:"POST",headers:{"Content-type":"application/octet-stream"},body:e});if(r.status!==200)return Promise.reject(r);let n=await r.arrayBuffer();return new Uint8Array(n)},ar=(e,t)=>{let o={mediaEl:t,getAppCertificate:()=>nr(st(e,"fairplay")).catch(s=>{if(s instanceof Response){let a=F(s,k.DRM,e);return console.error("mediaError",a==null?void 0:a.message,a==null?void 0:a.context),a?Promise.reject(a):Promise.reject(new Error("Unexpected error in app cert request"))}return Promise.reject(s)}),getLicenseKey:s=>or(s,Z(e,"fairplay")).catch(a=>{if(a instanceof Response){let i=F(a,k.DRM,e);return console.error("mediaError",i==null?void 0:i.message,i==null?void 0:i.context),i?Promise.reject(i):Promise.reject(new Error("Unexpected error in license key request"))}return Promise.reject(a)}),saveAndDispatchError:I,drmTypeCb:()=>{var s;(s=e.drmTypeCb)==null||s.call(e,Q.FAIRPLAY)}};if(e.useWebkitFairplay)Ye(o);else{let s={fallbackToWebkitFairplay:async()=>{var i;await a(),(i=e.fallbackToWebkitFairplay)==null||i.call(e)},...o},a=$e(s)}},Z=({playbackId:e,tokens:{drm:t}={},customDomain:r=A},n)=>{let o=ee(e);return`https://license.${r.toLocaleLowerCase().endsWith(A)?r:A}/license/${n}/${o}?token=${t}`},st=({playbackId:e,tokens:{drm:t}={},customDomain:r=A},n)=>{let o=ee(e);return`https://license.${r.toLocaleLowerCase().endsWith(A)?r:A}/appcert/${n}/${o}?token=${t}`},it=({playbackId:e,src:t,customDomain:r})=>{if(e)return!0;if(typeof t!="string")return!1;let n=window==null?void 0:window.location.href,o=new URL(t,n).hostname.toLocaleLowerCase();return o.includes(A)||!!r&&o.includes(r.toLocaleLowerCase())},sr=(e,t)=>{let r={};return r.capLevelToPlayerSize=e.capRenditionToPlayerSize,r.capLevelToPlayerSize==null?(r.capLevelController=X,r.capLevelToPlayerSize=!0):r.capLevelController=wt,r},ir=(e,t,r)=>{var l;let{envKey:n,disableTracking:o,muxDataSDK:s=ye,muxDataSDKOptions:a={}}=e,i=it(e);if(!o&&(n||i)){let{playerInitTime:u,playerSoftwareName:f,playerSoftwareVersion:c,beaconCollectionDomain:y,debug:d,disableCookies:p}=e,M={...e.metadata,video_title:((l=e==null?void 0:e.metadata)==null?void 0:l.video_title)||void 0},E=D=>typeof D.player_error_code=="string"?!1:typeof e.errorTranslator=="function"?e.errorTranslator(D):D;s.monitor(t,{debug:d,beaconCollectionDomain:y,hlsjs:r,Hls:r?R:void 0,automaticErrorTracking:!1,errorTranslator:E,disableCookies:p,...a,data:{...n?{env_key:n}:{},player_software_name:f,player_software:f,player_software_version:c,player_init_time:u,...M}})}},cr=(e,t,r)=>{var f,c;let n=at(e,t),{src:o,customDomain:s=A}=e,a=()=>{t.ended||e.disablePseudoEnded||!Xt(t,r)||(ot(t,r)?t.currentTime=t.buffered.end(t.buffered.length-1):t.dispatchEvent(new Event("ended")))},i,l,u=()=>{let y=rt(t),d,p;y.length>0&&(d=y.start(0),p=y.end(0)),(l!==p||i!==d)&&t.dispatchEvent(new CustomEvent("seekablechange",{composed:!0})),i=d,l=p};if(P(t,"durationchange",u),t&&n){let y=W(e);if(typeof o=="string"){if(o.endsWith(".mp4")&&o.includes(s)){let M=tt(o),E=new URL(`https://stream.${s}/${M}/metadata.json`);Te(E.toString(),t)}let d=()=>{if(Be(t)!==h.LIVE||Number.isFinite(t.duration))return;let M=setInterval(u,1e3);t.addEventListener("teardown",()=>{clearInterval(M)},{once:!0}),P(t,"durationchange",()=>{Number.isFinite(t.duration)&&clearInterval(M)})},p=async()=>Kt(o,t,y).then(d).catch(M=>{if(M instanceof Response){let E=F(M,k.VIDEO,e);if(E){I(t,E);return}}else M instanceof Error});if(t.preload==="none"){let M=()=>{p(),t.removeEventListener("loadedmetadata",E)},E=()=>{p(),t.removeEventListener("play",M)};P(t,"play",M,{once:!0}),P(t,"loadedmetadata",E,{once:!0})}else p();(f=e.tokens)!=null&&f.drm?ar(e,t):P(t,"encrypted",()=>{let M=x("Attempting to play DRM-protected content without providing a DRM token."),E=new T(M,T.MEDIA_ERR_ENCRYPTED,!0);E.errorCategory=k.DRM,E.muxCode=C.ENCRYPTED_MISSING_TOKEN,I(t,E)},{once:!0}),t.setAttribute("src",o),e.startTime&&(((c=L.get(t))!=null?c:{}).startTime=e.startTime,t.addEventListener("durationchange",ct,{once:!0}))}else t.removeAttribute("src");t.addEventListener("error",ut),t.addEventListener("error",fe),t.addEventListener("emptied",()=>{t.querySelectorAll("track[data-removeondestroy]").forEach(p=>{p.remove()})},{once:!0}),P(t,"pause",a),P(t,"seeked",a),P(t,"play",()=>{t.ended||nt(t.currentTime,t.duration)&&(t.currentTime=t.seekable.length?t.seekable.start(0):0)})}else r&&o?(r.once(R.Events.LEVEL_LOADED,(y,d)=>{Ft(d.details,t,r),u(),Be(t)===h.LIVE&&!Number.isFinite(t.duration)&&(r.on(R.Events.LEVEL_UPDATED,u),P(t,"durationchange",()=>{Number.isFinite(t.duration)&&r.off(R.Events.LEVELS_UPDATED,u)}))}),r.on(R.Events.ERROR,(y,d)=>{var M,E;let p=ur(d,e);if(p.muxCode===C.NETWORK_NOT_READY){let g=(M=L.get(t))!=null?M:{},b=(E=g.retryCount)!=null?E:0;if(b<6){let m=b===0?5e3:6e4,v=new T(`Retrying in ${m/1e3} seconds...`,p.code,p.fatal);Object.assign(v,p),I(t,v);let N=setTimeout(()=>{g.retryCount=b+1,d.details==="manifestLoadError"&&d.url&&r.loadSource(d.url)},m);t.addEventListener("teardown",()=>clearTimeout(N),{once:!0});return}else{g.retryCount=0;let m=new T('Try again later or <a href="#" onclick="window.location.reload(); return false;" style="color: #4a90e2;">click here to retry</a>',p.code,p.fatal);Object.assign(m,p),I(t,m);return}}I(t,p)}),r.on(R.Events.MANIFEST_LOADED,()=>{let y=L.get(t);y&&y.error&&(y.error=null,y.retryCount=0,t.dispatchEvent(new Event("emptied")),t.dispatchEvent(new Event("loadstart")))}),t.addEventListener("error",fe),P(t,"waiting",a),we(e,r),Ae(t,r),r.attachMedia(t)):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 ct(e){var n;let t=e.target,r=(n=L.get(t))==null?void 0:n.startTime;if(r&&Me(t.seekable,t.duration,r)){let o=t.preload==="auto";o&&(t.preload="none"),t.currentTime=r,o&&(t.preload="auto")}}async function ut(e){if(!e.isTrusted)return;e.stopImmediatePropagation();let t=e.target;if(!(t!=null&&t.error))return;let{message:r,code:n}=t.error,o=new T(r,n);if(t.src&&n===T.MEDIA_ERR_SRC_NOT_SUPPORTED&&t.readyState===HTMLMediaElement.HAVE_NOTHING){setTimeout(()=>{var a;let s=(a=Gt(t))!=null?a:t.error;(s==null?void 0:s.code)===T.MEDIA_ERR_SRC_NOT_SUPPORTED&&I(t,o)},500);return}if(t.src&&(n!==T.MEDIA_ERR_DECODE||n!==void 0))try{let{status:s}=await fetch(t.src);o.data={response:{code:s}}}catch{}I(t,o)}function I(e,t){var r;t.fatal&&(((r=L.get(e))!=null?r:{}).error=t,e.dispatchEvent(new CustomEvent("error",{detail:t})))}function fe(e){var n,o;if(!(e instanceof CustomEvent)||!(e.detail instanceof T))return;let t=e.target,r=e.detail;!r||!r.fatal||(((n=L.get(t))!=null?n:{}).error=r,(o=t.mux)==null||o.emit("error",{player_error_code:r.code,player_error_message:r.message,player_error_context:r.context}))}var ur=(e,t)=>{var l,u,f;!e.fatal?t.debug&&console.warn("getErrorFromHlsErrorData() (non-fatal)",e):console.error("getErrorFromHlsErrorData()",e);let n={[R.ErrorTypes.NETWORK_ERROR]:T.MEDIA_ERR_NETWORK,[R.ErrorTypes.MEDIA_ERROR]:T.MEDIA_ERR_DECODE,[R.ErrorTypes.KEY_SYSTEM_ERROR]:T.MEDIA_ERR_ENCRYPTED},o=c=>[R.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,R.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED].includes(c.details)?T.MEDIA_ERR_NETWORK:n[c.type],s=c=>{if(c.type===R.ErrorTypes.KEY_SYSTEM_ERROR)return k.DRM;if(c.type===R.ErrorTypes.NETWORK_ERROR)return k.VIDEO},a,i=o(e);if(i===T.MEDIA_ERR_NETWORK&&e.response){let c=(l=s(e))!=null?l:k.VIDEO;a=(u=F(e.response,c,t,e.fatal))!=null?u:new T("",i,e.fatal)}else if(i===T.MEDIA_ERR_ENCRYPTED)if(e.details===R.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE){let c=x("Attempting to play DRM-protected content without providing a DRM token.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_MISSING_TOKEN}else if(e.details===R.ErrorDetails.KEY_SYSTEM_NO_ACCESS){let c=x("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM}else if(e.details===R.ErrorDetails.KEY_SYSTEM_NO_SESSION){let c=x("Failed to generate a DRM license request. This may be an issue with the player or your protected content.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,!0),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_GENERATE_REQUEST_FAILED}else if(e.details===R.ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED){let c=x("Failed to update DRM license. This may be an issue with the player or your protected content.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_UPDATE_LICENSE_FAILED}else if(e.details===R.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED){let c=x("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_UPDATE_SERVER_CERT_FAILED}else if(e.details===R.ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR){let c=x("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_CDM_ERROR}else if(e.details===R.ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED){let c=x("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");a=new T(c,T.MEDIA_ERR_ENCRYPTED,!1),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_OUTPUT_RESTRICTED}else a=new T(e.error.message,T.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=k.DRM,a.muxCode=C.ENCRYPTED_ERROR;else a=new T("",i,e.fatal);return a.context||(a.context=`${e.url?`url: ${e.url}
import ge from"mux-embed";import Et from"hls.js";var b=Et;import{CapLevelController as Ht}from"hls.js";var P={VIDEO:"video",THUMBNAIL:"thumbnail",STORYBOARD:"storyboard",DRM:"drm"},k={NOT_AN_ERROR:0,NETWORK_OFFLINE:2000002,NETWORK_RECONNECTING:2000003,NETWORK_UNKNOWN_ERROR:2e6,NETWORK_NO_STATUS:2000001,NETWORK_INVALID_URL:24e5,NETWORK_NOT_FOUND:2404e3,NETWORK_NOT_READY:2412e3,NETWORK_GENERIC_SERVER_FAIL:25e5,NETWORK_TOKEN_MISSING:2403201,NETWORK_TOKEN_MALFORMED:2412202,NETWORK_TOKEN_EXPIRED:2403210,NETWORK_TOKEN_AUD_MISSING:2403221,NETWORK_TOKEN_AUD_MISMATCH:2403222,NETWORK_TOKEN_SUB_MISMATCH:2403232,ENCRYPTED_ERROR:5e6,ENCRYPTED_UNSUPPORTED_KEY_SYSTEM:5000001,ENCRYPTED_GENERATE_REQUEST_FAILED:5000002,ENCRYPTED_UPDATE_LICENSE_FAILED:5000003,ENCRYPTED_UPDATE_SERVER_CERT_FAILED:5000004,ENCRYPTED_CDM_ERROR:5000005,ENCRYPTED_OUTPUT_RESTRICTED:5000006,ENCRYPTED_MISSING_TOKEN:5000002},j=e=>e===P.VIDEO?"playback":e,A=class A extends Error{constructor(t,r=A.MEDIA_ERR_CUSTOM,n,o){var s;super(t),this.name="MediaError",this.code=r,this.context=o,this.fatal=n!=null?n:r>=A.MEDIA_ERR_NETWORK&&r<=A.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(s=A.defaultMessages[this.code])!=null?s:"")}};A.MEDIA_ERR_ABORTED=1,A.MEDIA_ERR_NETWORK=2,A.MEDIA_ERR_DECODE=3,A.MEDIA_ERR_SRC_NOT_SUPPORTED=4,A.MEDIA_ERR_ENCRYPTED=5,A.MEDIA_ERR_CUSTOM=100,A.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 y=A;var gt=e=>e==null,Y=(e,t)=>gt(t)?!1:e in t,G={ANY:"any",MUTED:"muted"},_={ON_DEMAND:"on-demand",LIVE:"live",UNKNOWN:"unknown"},ae={MSE:"mse",NATIVE:"native"},W={HEADER:"header",QUERY:"query",NONE:"none"},xr=Object.values(W),N={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},J={HLS:N.M3U8},vr=Object.keys(J),Cr=[...Object.values(N),"hls","HLS"],kr={upTo720p:"720p",upTo1080p:"1080p",upTo1440p:"1440p",upTo2160p:"2160p"},Dr={noLessThan480p:"480p",noLessThan540p:"540p",noLessThan720p:"720p",noLessThan1080p:"1080p",noLessThan1440p:"1440p",noLessThan2160p:"2160p"},Pr={DESCENDING:"desc"},Lr={upTo720p:"720p",upTo1080p:"1080p",upTo1440p:"1440p",upTo2160p:"2160p"};var Mt="en",q={code:Mt};var L=(e,t,r,n,o=e)=>{o.addEventListener(t,r,n),e.addEventListener("teardown",()=>{o.removeEventListener(t,r)},{once:!0})};function ke(e,t,r){t&&r>t&&(r=t);for(let n=0;n<e.length;n++)if(e.start(n)<=r&&e.end(n)>=r)return!0;return!1}var X=e=>{let t=e.indexOf("?");if(t<0)return[e];let r=e.slice(0,t),n=e.slice(t);return[r,n]},B=e=>{let{type:t}=e;if(t){let r=t.toUpperCase();return Y(r,J)?J[r]:t}return Rt(e)},ie=e=>e==="VOD"?_.ON_DEMAND:_.LIVE,ce=e=>e==="EVENT"?Number.POSITIVE_INFINITY:e==="VOD"?Number.NaN:0,Rt=e=>{let{src:t}=e;if(!t)return"";let r="";try{r=Q(t).pathname}catch{console.error("Invalid url when trying to infer mime type",t)}let n=r.lastIndexOf(".");if(n<0)return xt(e)?N.M3U8:"";let s=r.slice(n+1).toUpperCase();return Y(s,N)?N[s]:""},z=e=>{try{return new URL(e),!1}catch{return!0}},De=e=>e.split(`
`).find((t,r,n)=>r>0&&n[r-1].startsWith("#EXT-X-STREAM-INF")),Q=(e,t)=>{var o;if(!z(e))return new URL(e);let r=(o=window==null?void 0:window.location)==null?void 0:o.href,n=t!=null?t:r;return t&&z(t.toString())&&(n=new URL(t,r)),new URL(e,n)},bt="mux.com",xt=({src:e,customDomain:t=bt})=>{let r;try{r=new URL(`${e}`)}catch{return!1}let n=r.protocol==="https:",o=r.hostname===`stream.${t}`.toLowerCase(),s=r.pathname.split("/"),a=s.length===2,i=!(s!=null&&s[1].includes("."));return n&&o&&a&&i},ue=e=>{let t=(e!=null?e:"").split(".")[1];if(t)try{let r=t.replace(/-/g,"+").replace(/_/g,"/"),n=decodeURIComponent(atob(r).split("").map(function(o){return"%"+("00"+o.charCodeAt(0).toString(16)).slice(-2)}).join(""));return JSON.parse(n)}catch{return}},Pe=({exp:e},t=Date.now())=>!e||e*1e3<t,Le=({sub:e},t)=>e!==t,he=({aud:e},t)=>!e,_e=({aud:e},t)=>e!==t,we="en";function C(e,t=!0){var o,s;let r=t&&(s=(o=q)==null?void 0:o[e])!=null?s:e,n=t?q.code:we;return new se(r,n)}var se=class{constructor(t,r=(n=>(n=q)!=null?n:we)()){this.message=t,this.locale=r}format(t){return this.message.replace(/\{(\w+)\}/g,(r,n)=>{var o;return(o=t[n])!=null?o:""})}toString(){return this.message}};var vt=Object.values(G),Ae=e=>typeof e=="boolean"||typeof e=="string"&&vt.includes(e),Se=(e,t,r)=>{let{autoplay:n}=e,o=!1,s=!1,a=Ae(n)?n:!!n,i=()=>{o||L(t,"playing",()=>{o=!0},{once:!0})};if(i(),L(t,"loadstart",()=>{o=!1,i(),de(t,a)},{once:!0}),L(t,"loadstart",()=>{r||(e.streamType&&e.streamType!==_.UNKNOWN?s=e.streamType===_.LIVE:s=!Number.isFinite(t.duration)),de(t,a)},{once:!0}),r&&r.once(b.Events.LEVEL_LOADED,(u,p)=>{var c;e.streamType&&e.streamType!==_.UNKNOWN?s=e.streamType===_.LIVE:s=(c=p.details.live)!=null?c:!1}),!a){let u=()=>{!s||Number.isFinite(e.startTime)||(r!=null&&r.liveSyncPosition?t.currentTime=r.liveSyncPosition:Number.isFinite(t.seekable.end(0))&&(t.currentTime=t.seekable.end(0)))};r&&L(t,"play",()=>{t.preload==="metadata"?r.once(b.Events.LEVEL_UPDATED,u):u()},{once:!0})}return u=>{o||(a=Ae(u)?u:!!u,de(t,a))}},de=(e,t)=>{if(!t)return;let r=e.muted,n=()=>e.muted=r;switch(t){case G.ANY:e.play().catch(()=>{e.muted=!0,e.play().catch(n)});break;case G.MUTED:e.muted=!0,e.play().catch(n);break;default:e.play().catch(()=>{});break}};var Ne=({preload:e,src:t},r,n)=>{let o=c=>{c!=null&&["","none","metadata","auto"].includes(c)?r.setAttribute("preload",c):r.removeAttribute("preload")};if(!n)return o(e),o;let s=!1,a=!1,i=n.config.maxBufferLength,d=n.config.maxBufferSize,u=c=>{o(c);let T=c!=null?c:r.preload;a||T==="none"||(T==="metadata"?(n.config.maxBufferLength=1,n.config.maxBufferSize=1):(n.config.maxBufferLength=i,n.config.maxBufferSize=d),p())},p=()=>{!s&&t&&(s=!0,n.loadSource(t))};return L(r,"play",()=>{a=!0,n.config.maxBufferLength=i,n.config.maxBufferSize=d,p()},{once:!0}),u(e),u};var Ie=(e,t,r)=>{let{minPreloadSegments:n}=e;if(n==null||n<=0||!r)return;let o=0,s=!1,a=t.playbackRate||1,i=()=>{t.playbackRate!==0&&(a=t.playbackRate,t.playbackRate=0)};t.playbackRate=0,L(t,"ratechange",i);let d=(u,{frag:p})=>{s||p.type!=="main"||(o++,o>=n&&(s=!0,t.removeEventListener("ratechange",i),t.playbackRate=a))};r.on(b.Events.FRAG_BUFFERED,d),t.addEventListener("teardown",()=>{s||(s=!0,r.off(b.Events.FRAG_BUFFERED,d),t.playbackRate=a)},{once:!0})},Oe=(e,t,r)=>{let{initialEstimateSegments:n}=e;if(n==null||n<=0||!r)return;let o=0;r.on(b.Events.FRAG_BUFFERED,(s,{frag:a})=>{a.type==="main"&&(o++,o<n&&r.abrController.resetEstimator(r.config.abrEwmaDefaultEstimate))})};function Ue(e,t){var d;if(!("videoTracks"in e))return;let r=new WeakMap;t.on(b.Events.MANIFEST_PARSED,function(u,p){i();let c=e.addVideoTrack("main");c.selected=!0;for(let[T,l]of p.levels.entries()){let f=c.addRendition(l.url[0],l.width,l.height,l.videoCodec,l.bitrate);r.set(l,`${T}`),f.id=`${T}`}}),t.on(b.Events.AUDIO_TRACKS_UPDATED,function(u,p){a();for(let c of p.audioTracks){let T=c.default?"main":"alternative",l=e.addAudioTrack(T,c.name,c.lang);l.id=`${c.id}`,c.default&&(l.enabled=!0)}});let n=()=>{var c;let u=+((c=[...e.audioTracks].find(T=>T.enabled))==null?void 0:c.id),p=t.audioTracks.map(T=>T.id);u!=t.audioTrack&&p.includes(u)&&(t.audioTrack=u)};e.audioTracks.addEventListener("change",n),t.on(b.Events.LEVELS_UPDATED,function(u,p){var l;let c=e.videoTracks[(l=e.videoTracks.selectedIndex)!=null?l:0];if(!c)return;let T=p.levels.map(f=>r.get(f));for(let f of e.videoRenditions)f.id&&!T.includes(f.id)&&c.removeRendition(f)});let o=u=>{let p=u.target.selectedIndex;p!=t.nextLevel&&(t.nextLevel=p)};(d=e.videoRenditions)==null||d.addEventListener("change",o);let s=()=>{for(let u of e.videoTracks)e.removeVideoTrack(u)},a=()=>{for(let u of e.audioTracks)e.removeAudioTrack(u)},i=()=>{s(),a()};t.once(b.Events.DESTROYING,()=>{var u,p;i(),(u=e.audioTracks)==null||u.removeEventListener("change",n),(p=e.videoRenditions)==null||p.removeEventListener("change",o)})}var le=e=>"time"in e?e.time:e.startTime;function He(e,t){t.on(b.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(o,{tracks:s})=>{s.forEach(a=>{var p,c;let i=(p=a.subtitleTrack)!=null?p:a.closedCaptions,d=t.subtitleTracks.findIndex(({lang:T,name:l,type:f})=>T==(i==null?void 0:i.lang)&&l===a.label&&f.toLowerCase()===a.kind),u=((c=a._id)!=null?c:a.default)?"default":`${a.kind}${d}`;pe(e,a.kind,a.label,i==null?void 0:i.lang,u,a.default)})});let r=()=>{if(!t.subtitleTracks.length)return;let o=Array.from(e.textTracks).find(i=>i.id&&i.mode==="showing"&&["subtitles","captions"].includes(i.kind));if(!o)return;let s=t.subtitleTracks[t.subtitleTrack],a=s?s.default?"default":`${t.subtitleTracks[t.subtitleTrack].type.toLowerCase()}${t.subtitleTrack}`:void 0;if(t.subtitleTrack<0||(o==null?void 0:o.id)!==a){let i=t.subtitleTracks.findIndex(({lang:d,name:u,type:p,default:c})=>o.id==="default"&&c||d==o.language&&u===o.label&&p.toLowerCase()===o.kind);t.subtitleTrack=i}(o==null?void 0:o.id)===a&&o.cues&&Array.from(o.cues).forEach(i=>{o.addCue(i)})};e.textTracks.addEventListener("change",r),t.on(b.Events.CUES_PARSED,(o,{track:s,cues:a})=>{let i=e.textTracks.getTrackById(s);if(!i)return;let d=i.mode==="disabled";d&&(i.mode="hidden"),a.forEach(u=>{var p;(p=i.cues)!=null&&p.getCueById(u.id)||i.addCue(u)}),d&&(i.mode="disabled")}),t.once(b.Events.DESTROYING,()=>{e.textTracks.removeEventListener("change",r),e.querySelectorAll("track[data-removeondestroy]").forEach(s=>{s.remove()})});let n=()=>{Array.from(e.textTracks).forEach(o=>{var s,a;if(!["subtitles","caption"].includes(o.kind)&&(o.label==="thumbnails"||o.kind==="chapters")){if(!((s=o.cues)!=null&&s.length)){let i="track";o.kind&&(i+=`[kind="${o.kind}"]`),o.label&&(i+=`[label="${o.label}"]`);let d=e.querySelector(i),u=(a=d==null?void 0:d.getAttribute("src"))!=null?a:"";d==null||d.removeAttribute("src"),setTimeout(()=>{d==null||d.setAttribute("src",u)},0)}o.mode!=="hidden"&&(o.mode="hidden")}})};t.once(b.Events.MANIFEST_LOADED,n),t.once(b.Events.MEDIA_ATTACHED,n)}function pe(e,t,r,n,o,s){let a=document.createElement("track");return a.kind=t,a.label=r,n&&(a.srclang=n),o&&(a.id=o),s&&(a.default=!0),a.track.mode=["subtitles","captions"].includes(t)?"disabled":"hidden",a.setAttribute("data-removeondestroy",""),e.append(a),a.track}function Ct(e,t){let r=Array.prototype.find.call(e.querySelectorAll("track"),n=>n.track===t);r==null||r.remove()}function F(e,t,r){var n;return(n=Array.from(e.querySelectorAll("track")).find(o=>o.track.label===t&&o.track.kind===r))==null?void 0:n.track}async function Ke(e,t,r,n){let o=F(e,r,n);return o||(o=pe(e,n,r),o.mode="hidden",await new Promise(s=>setTimeout(()=>s(void 0),0))),o.mode!=="hidden"&&(o.mode="hidden"),[...t].sort((s,a)=>le(a)-le(s)).forEach(s=>{var d,u;let a=s.value,i=le(s);if("endTime"in s&&s.endTime!=null)o==null||o.addCue(new VTTCue(i,s.endTime,n==="chapters"?a:JSON.stringify(a!=null?a:null)));else{let p=Array.prototype.findIndex.call(o==null?void 0:o.cues,f=>f.startTime>=i),c=(d=o==null?void 0:o.cues)==null?void 0:d[p],T=c?c.startTime:Number.isFinite(e.duration)?e.duration:Number.MAX_SAFE_INTEGER,l=(u=o==null?void 0:o.cues)==null?void 0:u[p-1];l&&(l.endTime=i),o==null||o.addCue(new VTTCue(i,T,n==="chapters"?a:JSON.stringify(a!=null?a:null)))}}),e.textTracks.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})),o}var fe="cuepoints",We=Object.freeze({label:fe});async function Fe(e,t,r=We){return Ke(e,t,r.label,"metadata")}var Z=e=>({time:e.startTime,value:JSON.parse(e.text)});function kt(e,t={label:fe}){let r=F(e,t.label,"metadata");return r!=null&&r.cues?Array.from(r.cues,n=>Z(n)):[]}function Ve(e,t={label:fe}){var s,a;let r=F(e,t.label,"metadata");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return Z(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:d})=>i<=n&&d>n);return Z(o||r.activeCues[0])}async function Ye(e,t=We){return new Promise(r=>{L(e,"loadstart",async()=>{let n=await Fe(e,[],t);L(e,"cuechange",()=>{let o=Ve(e);if(o){let s=new CustomEvent("cuepointchange",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}var ye="chapters",Be=Object.freeze({label:ye}),ee=e=>({startTime:e.startTime,endTime:e.endTime,value:e.text});async function $e(e,t,r=Be){return Ke(e,t,r.label,"chapters")}function Dt(e,t={label:ye}){var n;let r=F(e,t.label,"chapters");return(n=r==null?void 0:r.cues)!=null&&n.length?Array.from(r.cues,o=>ee(o)):[]}function je(e,t={label:ye}){var s,a;let r=F(e,t.label,"chapters");if(!((s=r==null?void 0:r.activeCues)!=null&&s.length))return;if(r.activeCues.length===1)return ee(r.activeCues[0]);let{currentTime:n}=e,o=Array.prototype.find.call((a=r.activeCues)!=null?a:[],({startTime:i,endTime:d})=>i<=n&&d>n);return ee(o||r.activeCues[0])}async function Ge(e,t=Be){return new Promise(r=>{L(e,"loadstart",async()=>{let n=await $e(e,[],t);L(e,"cuechange",()=>{let o=je(e);if(o){let s=new CustomEvent("chapterchange",{composed:!0,bubbles:!0,detail:o});e.dispatchEvent(s)}},{},n),r(n)})})}function Pt(e,t){if(t){let r=t.playingDate;if(r!=null)return new Date(r.getTime()-e.currentTime*1e3)}return typeof e.getStartDate=="function"?e.getStartDate():new Date(NaN)}function Lt(e,t){if(t&&t.playingDate)return t.playingDate;if(typeof e.getStartDate=="function"){let r=e.getStartDate();return new Date(r.getTime()+e.currentTime*1e3)}return new Date(NaN)}var Te={VIDEO:"v",THUMBNAIL:"t",STORYBOARD:"s",DRM:"d"},ht=e=>{if(e===P.VIDEO)return Te.VIDEO;if(e===P.DRM)return Te.DRM},_t=(e,t)=>{var o,s;let r=j(e),n=`${r}Token`;return(o=t.tokens)!=null&&o[r]?(s=t.tokens)==null?void 0:s[r]:Y(n,t)?t[n]:void 0},$=(e,t,r,n,o=!1,s=!(a=>(a=globalThis.navigator)==null?void 0:a.onLine)())=>{var m,R;if(s){let M=C("Your device appears to be offline",o),x=void 0,E=y.MEDIA_ERR_NETWORK,D=new y(M,E,!1,x);return D.errorCategory=t,D.muxCode=k.NETWORK_OFFLINE,D.data=e,D}let i="status"in e?e.status:e.code,d=Date.now(),u=y.MEDIA_ERR_NETWORK;if(i===200)return;let p=j(t),c=_t(t,r),T=ht(t),[l]=X((m=r.playbackId)!=null?m:"");if(!i||!l)return;let f=ue(c);if(c&&!f){let M=C("The {tokenNamePrefix}-token provided is invalid or malformed.",o).format({tokenNamePrefix:p}),x=C("Compact JWT string: {token}",o).format({token:c}),E=new y(M,u,!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_MALFORMED,E.data=e,E}if(i>=500){let M=new y("",u,n!=null?n:!0);return M.errorCategory=t,M.muxCode=k.NETWORK_UNKNOWN_ERROR,M}if(i===403)if(f){if(Pe(f,d)){let M={timeStyle:"medium",dateStyle:"medium"},x=C("The video\u2019s secured {tokenNamePrefix}-token has expired.",o).format({tokenNamePrefix:p}),E=C("Expired at: {expiredDate}. Current time: {currentDate}.",o).format({expiredDate:new Intl.DateTimeFormat("en",M).format((R=f.exp)!=null?R:0*1e3),currentDate:new Intl.DateTimeFormat("en",M).format(d)}),D=new y(x,u,!0,E);return D.errorCategory=t,D.muxCode=k.NETWORK_TOKEN_EXPIRED,D.data=e,D}if(Le(f,l)){let M=C("The video\u2019s playback ID does not match the one encoded in the {tokenNamePrefix}-token.",o).format({tokenNamePrefix:p}),x=C("Specified playback ID: {playbackId} and the playback ID encoded in the {tokenNamePrefix}-token: {tokenPlaybackId}",o).format({tokenNamePrefix:p,playbackId:l,tokenPlaybackId:f.sub}),E=new y(M,u,!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_SUB_MISMATCH,E.data=e,E}if(he(f,T)){let M=C("The {tokenNamePrefix}-token is formatted with incorrect information.",o).format({tokenNamePrefix:p}),x=C("The {tokenNamePrefix}-token has no aud value. aud value should be {expectedAud}.",o).format({tokenNamePrefix:p,expectedAud:T}),E=new y(M,u,!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_AUD_MISSING,E.data=e,E}if(_e(f,T)){let M=C("The {tokenNamePrefix}-token is formatted with incorrect information.",o).format({tokenNamePrefix:p}),x=C("The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.",o).format({tokenNamePrefix:p,expectedAud:T,aud:f.aud}),E=new y(M,u,!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_AUD_MISMATCH,E.data=e,E}}else{let M=C("Authorization error trying to access this {category} URL. If this is a signed URL, you might need to provide a {tokenNamePrefix}-token.",o).format({tokenNamePrefix:p,category:t}),x=C("Specified playback ID: {playbackId}",o).format({playbackId:l}),E=new y(M,u,n!=null?n:!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_TOKEN_MISSING,E.data=e,E}if(i===412){let M=C("This playback-id may belong to a live stream that is not currently active or an asset that is not ready.",o),x=C("Specified playback ID: {playbackId}",o).format({playbackId:l}),E=new y(M,u,n!=null?n:!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_NOT_READY,E.streamType=r.streamType===_.LIVE?"live":r.streamType===_.ON_DEMAND?"on-demand":"unknown",E.data=e,E}if(i===404){let M=C("This URL or playback-id does not exist. You may have used an Asset ID or an ID from a different resource.",o),x=C("Specified playback ID: {playbackId}",o).format({playbackId:l}),E=new y(M,u,n!=null?n:!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_NOT_FOUND,E.data=e,E}if(i===400){let M=C("The URL or playback-id was invalid. You may have used an invalid value as a playback-id."),x=C("Specified playback ID: {playbackId}",o).format({playbackId:l}),E=new y(M,u,n!=null?n:!0,x);return E.errorCategory=t,E.muxCode=k.NETWORK_INVALID_URL,E.data=e,E}let g=new y("",u,n!=null?n:!0);return g.errorCategory=t,g.muxCode=k.NETWORK_UNKNOWN_ERROR,g.data=e,g};var Je=b.DefaultConfig.capLevelController,wt={"720p":921600,"1080p":2073600,"1440p":4194304,"2160p":8294400};function At(e){let t=e.toLowerCase().trim();return wt[t]}var U=class U extends Je{constructor(t){super(t)}static setMaxAutoResolution(t,r){r?U.maxAutoResolution.set(t,r):U.maxAutoResolution.delete(t)}getMaxAutoResolution(){var r;let t=this.hls;return(r=U.maxAutoResolution.get(t))!=null?r:void 0}get levels(){var t;return(t=this.hls.levels)!=null?t:[]}getValidLevels(t){return this.levels.filter((r,n)=>this.isLevelAllowed(r)&&n<=t)}getMaxLevelCapped(t){let r=this.getValidLevels(t),n=this.getMaxAutoResolution();if(!n)return super.getMaxLevel(t);let o=At(n);if(!o)return super.getMaxLevel(t);let s=r.filter(d=>d.width*d.height<=o),a=s.findIndex(d=>d.width*d.height===o);if(a!==-1){let d=s[a];return r.findIndex(u=>u===d)}if(s.length===0)return 0;let i=s[s.length-1];return r.findIndex(d=>d===i)}getMaxLevel(t){if(this.getMaxAutoResolution()!==void 0)return this.getMaxLevelCapped(t);let r=super.getMaxLevel(t),n=this.getValidLevels(t);if(!n[r])return r;let o=Math.min(n[r].width,n[r].height),s=U.minMaxResolution;return o>=s?r:Je.getMaxLevelByMediaSize(n,s*(16/9),s)}};U.minMaxResolution=720,U.maxAutoResolution=new WeakMap;var me=U,te=me;var St="com.apple.fps.1_0",Nt="application/vnd.apple.mpegurl",qe=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o})=>{if(!window.WebKitMediaKeys||!("onwebkitneedkey"in e)){console.error("No WebKitMediaKeys. FairPlay may not be supported");let T=C("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),l=new y(T,y.MEDIA_ERR_ENCRYPTED,!0);return l.errorCategory=P.DRM,l.muxCode=k.ENCRYPTED_CDM_ERROR,n(e,l),()=>{}}let s=e,a=t(),i=null,d=T=>{(async()=>{try{s.webkitKeys||u();let f=await a;if(T.initData===null||f==null)return;let g=It(T.initData,f);p(g)}catch(f){console.error("Could not start encrypted playback due to exception",f),n(s,f)}})()},u=()=>{try{let T=new WebKitMediaKeys(St);s.webkitSetMediaKeys(T),o()}catch{let T="Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.",l=new y(T,y.MEDIA_ERR_ENCRYPTED,!0);throw l.errorCategory=P.DRM,l.muxCode=k.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,l}},p=T=>{let l=s.webkitKeys.createSession(Nt,T),f=async R=>{try{let M=R.message,x=await r(M);l.update(x)}catch(M){console.error("Error on FairPlay session message",M),n(e,M)}},g=R=>{let M=R.target.error;if(!M)return;console.error(`Internal Webkit Key Session Error - sysCode: ${M.systemCode} code: ${M.code}`);let x=C("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser."),E=new y(x,y.MEDIA_ERR_ENCRYPTED,!0);E.errorCategory=P.DRM,E.muxCode=k.ENCRYPTED_CDM_ERROR,n(e,E)},m=()=>{l.removeEventListener("webkitkeymessage",f),l.removeEventListener("webkitkeyerror",g),e.removeEventListener("teardown",m),"webkitCurrentPlaybackTargetIsWireless"in e&&e.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",m),i=null;try{l.close()}catch{}};"webkitCurrentPlaybackTargetIsWireless"in e&&e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",m,{once:!0}),l.addEventListener("webkitkeymessage",f),l.addEventListener("webkitkeyerror",g),e.addEventListener("teardown",m),i=m},c=()=>{e.removeEventListener("webkitneedkey",d),e.removeEventListener("teardown",c),i==null||i();try{s.webkitSetMediaKeys(null)}catch{}};return e.addEventListener("webkitneedkey",d),e.addEventListener("teardown",c,{once:!0}),c},It=(e,t)=>{let r=Ut(Ot(e)),n=new Uint8Array(e),o=new Uint8Array(r),s=new Uint8Array(t),a=n.byteLength+4+s.byteLength+4+o.byteLength,i=new Uint8Array(a),d=0,u=c=>{i.set(c,d),d+=c.byteLength},p=c=>{let T=new DataView(i.buffer),l=c.byteLength;T.setUint32(d,l,!0),d+=4,u(c)};return u(n),p(o),p(s),i},Ot=e=>new TextDecoder("utf-16le").decode(e).replace("skd://","").slice(1);function Ut(e){let t=new ArrayBuffer(e.length*2),r=new DataView(t);for(let n=0;n<e.length;n++)r.setUint16(n*2,e.charCodeAt(n),!0);return t}var ze=({mediaEl:e,getAppCertificate:t,getLicenseKey:r,saveAndDispatchError:n,drmTypeCb:o,fallbackToWebkitFairplay:s})=>{let a=null,i=async c=>{try{let T=c.initDataType;if(T!=="skd"){console.error(`Received unexpected initialization data type "${T}"`);return}e.mediaKeys||await d(T);let l=c.initData;if(l==null){console.error(`Could not start encrypted playback due to missing initData in ${c.type} event`);return}await u(T,l)}catch(T){n(e,T);return}},d=async c=>{let T=await navigator.requestMediaKeySystemAccess("com.apple.fps",[{initDataTypes:[c],videoCapabilities:[{contentType:"application/vnd.apple.mpegurl",robustness:""}],distinctiveIdentifier:"not-allowed",persistentState:"not-allowed",sessionTypes:["temporary"]}]).then(f=>(o(),f)).catch(()=>{let f=C("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),g=new y(f,y.MEDIA_ERR_ENCRYPTED,!0);g.errorCategory=P.DRM,g.muxCode=k.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,n(e,g)});if(!T)return;let l=await T.createMediaKeys();try{let f=await t();await l.setServerCertificate(f).catch(()=>{let g=C("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate."),m=new y(g,y.MEDIA_ERR_ENCRYPTED,!0);return m.errorCategory=P.DRM,m.muxCode=k.ENCRYPTED_UPDATE_SERVER_CERT_FAILED,Promise.reject(m)})}catch(f){n(e,f);return}await e.setMediaKeys(l)},u=async(c,T)=>{let l=e.mediaKeys.createSession(),f=async R=>{let M=R.message,x=await r(M);try{await l.update(x)}catch{let E=C("Failed to update DRM license. This may be an issue with the player or your protected content."),D=new y(E,y.MEDIA_ERR_ENCRYPTED,!0);D.errorCategory=P.DRM,D.muxCode=k.ENCRYPTED_UPDATE_LICENSE_FAILED,n(e,D)}},g=()=>{let R=M=>{let x;if(M==="internal-error"){let E=C("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser.");x=new y(E,y.MEDIA_ERR_ENCRYPTED,!0),x.errorCategory=P.DRM,x.muxCode=k.ENCRYPTED_CDM_ERROR}else if(M==="output-restricted"||M==="output-downscaled"){let E=C("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");x=new y(E,y.MEDIA_ERR_ENCRYPTED,!1),x.errorCategory=P.DRM,x.muxCode=k.ENCRYPTED_OUTPUT_RESTRICTED}x&&n(e,x)};l.keyStatuses.forEach(M=>R(M))};l.addEventListener("keystatuseschange",g),l.addEventListener("message",f);let m=async()=>{l.removeEventListener("keystatuseschange",g),l.removeEventListener("message",f),"webkitCurrentPlaybackTargetIsWireless"in e&&e.removeEventListener("webkitcurrentplaybacktargetiswirelesschanged",m),e.removeEventListener("teardown",m),await l.close().catch(R=>{console.warn("There was an error when closing EME session",R)}),a=null};"webkitCurrentPlaybackTargetIsWireless"in e&&e.addEventListener("webkitcurrentplaybacktargetiswirelesschanged",m,{once:!0}),e.addEventListener("teardown",m,{once:!0}),a=m,await l.generateRequest(c,T).catch(async R=>{if(R.name==="NotSupportedError"&&"webkitCurrentPlaybackTargetIsWireless"in e&&e.webkitCurrentPlaybackTargetIsWireless)console.warn("Failed to generate a DRM license request. Attempting to fallback to Webkit DRM"),s==null||s();else{let M=C("Failed to generate a DRM license request. This may be an issue with the player or your protected content."),x=new y(M,y.MEDIA_ERR_ENCRYPTED,!0);return x.errorCategory=P.DRM,x.muxCode=k.ENCRYPTED_GENERATE_REQUEST_FAILED,console.error("Failed to generate license request",R),Promise.reject(x)}})},p=async()=>{e.removeEventListener("encrypted",i),e.removeEventListener("teardown",p),a&&await a(),await e.setMediaKeys(null).catch(()=>{})};return e.addEventListener("encrypted",i),e.addEventListener("teardown",p,{once:!0}),p};var Xe=({hls:e,mediaEl:t,src:r,muxMediaState:n,saveAndDispatchError:o,maxRetries:s})=>{var be;let d,u=0,p=!1,c=!1,T=!1,l=()=>{d!=null&&(clearTimeout(d),d=void 0)},f=v=>(v==null?void 0:v.muxCode)===k.NETWORK_RECONNECTING,g=()=>!t.paused&&t.readyState<HTMLMediaElement.HAVE_FUTURE_DATA,m=()=>{let v=n.get(t);if(f(v==null?void 0:v.error))return;let K=new y(C("Attempting to reconnect..."),y.MEDIA_ERR_NETWORK,!1);K.errorCategory=P.VIDEO,K.muxCode=k.NETWORK_RECONNECTING,v&&(v.error=K),t.dispatchEvent(new CustomEvent("error",{detail:K}))},R=()=>{if(!T&&r){e.loadSource(r);return}e.startLoad(t.currentTime)},M=()=>{p=!1,c=!0,l();let v=new y(C("Network error, try reloading."),y.MEDIA_ERR_NETWORK,!0);v.errorCategory=P.VIDEO,v.reload=!0,o(t,v)},x=()=>{if(d!=null||p)return;if(u>=s){M();return}p=!0;let v=Math.min(1e3*2**u,3e4);d=setTimeout(()=>{d=void 0,u+=1,R()},v)},E=()=>{let v=n.get(t);!(v!=null&&v.networkError)||c||g()&&(m(),x())},D=()=>{let v=n.get(t);v&&(v.networkError=!0),p=!1,E()},S=()=>{let v=n.get(t);v!=null&&v.networkError&&(u=0,c=!1,l(),p=!0,R())};(be=globalThis.addEventListener)==null||be.call(globalThis,"online",S);let w=()=>{let v=n.get(t);v&&(!v.networkError&&!f(v.error)||(v.networkError=!1,p=!1,u=0,c=!1,l(),v.error&&(v.error=null,t.dispatchEvent(new Event("emptied")))))};return e.on(b.Events.FRAG_BUFFERED,w),L(t,"playing",()=>{let v=n.get(t);v!=null&&v.networkError&&(p=!1,u=0,c=!1,l(),v.error&&(v.error=null))}),L(t,"waiting",E),t.addEventListener("teardown",()=>{var v;(v=globalThis.removeEventListener)==null||v.call(globalThis,"online",S),l()},{once:!0}),{handleHlsError:(v,K)=>{var ve,Ce;if(v.type!==b.ErrorTypes.NETWORK_ERROR)return!1;let xe=(Ce=(ve=v.response)==null?void 0:ve.code)!=null?Ce:0;return(K.muxCode===k.NETWORK_OFFLINE||xe===0||xe>=500)&&v.fatal?(D(),!0):!1},onManifestLoaded:()=>{T=!0,p=!1,l()}}};var re={FAIRPLAY:"fairplay",PLAYREADY:"playready",WIDEVINE:"widevine"},Kt=e=>{if(e.includes("fps"))return re.FAIRPLAY;if(e.includes("playready"))return re.PLAYREADY;if(e.includes("widevine"))return re.WIDEVINE},Wt=(e,t)=>{let r=De(e);if(!r)return Promise.reject(new Error("No media playlist URL found in multivariant playlist"));if(z(r)&&!t)return Promise.reject(new Error("masterPlaylistUrl is required to resolve relative media playlist URL"));let n;try{n=Q(r,t)}catch(o){return Promise.reject(o)}return fetch(n).then(o=>o.status!==200?Promise.reject(o):o.text())},Ft=e=>{let t=e.split(`
`).filter(n=>n.startsWith("#EXT-X-SESSION-DATA"));if(!t.length)return{};let r={};for(let n of t){let o=Yt(n),s=o["DATA-ID"];s&&(r[s]={...o})}return{sessionData:r}},Vt=/([A-Z0-9-]+)="?(.*?)"?(?:,|$)/g;function Yt(e){let t=[...e.matchAll(Vt)];return Object.fromEntries(t.map(([,r,n])=>[r,n]))}var Bt=e=>{var i,d,u;let t=e.split(`
`),n=(d=((i=t.find(p=>p.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?i:"").split(":")[1])==null?void 0:d.trim(),o=ie(n),s=ce(n),a;if(o===_.LIVE){let p=t.find(T=>T.startsWith("#EXT-X-PART-INF"));if(!!p)a=+p.split(":")[1].split("=")[1]*2;else{let T=t.find(g=>g.startsWith("#EXT-X-TARGETDURATION")),l=(u=T==null?void 0:T.split(":"))==null?void 0:u[1];a=+(l!=null?l:6)*3}}return{streamType:o,targetLiveWindow:s,liveEdgeStartOffset:a}},$t=async(e,t)=>{if(t===N.MP4)return{streamType:_.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0,sessionData:void 0};if(t===N.M3U8){let r=await fetch(e);if(!r.ok)return Promise.reject(r);let n=await r.text(),o=await Wt(n,r.url);return{...Ft(n),...Bt(o)}}return console.error(`Media type ${t} is an unrecognized or unsupported type for src ${e}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0,sessionData:void 0}},jt=async(e,t,r=B({src:e}))=>{var d,u,p,c;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,sessionData:a}=await $t(e,r),i=a==null?void 0:a["com.apple.hls.chapters"];(i!=null&&i.URI||i!=null&&i.VALUE.toLocaleLowerCase().startsWith("http"))&&Me((d=i.URI)!=null?d:i.VALUE,t),((u=h.get(t))!=null?u:{}).liveEdgeStartOffset=s,((p=h.get(t))!=null?p:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((c=h.get(t))!=null?c:{}).streamType=n,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},Me=async(e,t)=>{var r,n;try{let o=await fetch(e);if(!o.ok)throw new Error(`Failed to fetch Mux metadata: ${o.status} ${o.statusText}`);let s=await o.json(),a={};if(!((r=s==null?void 0:s[0])!=null&&r.metadata))return;for(let d of s[0].metadata)d.key&&d.value&&(a[d.key]=d.value);((n=h.get(t))!=null?n:{}).metadata=a;let i=new CustomEvent("muxmetadata");t.dispatchEvent(i)}catch(o){console.error(o)}},Gt=e=>{var a;let t=e.type,r=ie(t),n=ce(t),o,s=!!((a=e.partList)!=null&&a.length);return r===_.LIVE&&(o=s?e.partTarget*2:e.targetduration*3),{streamType:r,targetLiveWindow:n,liveEdgeStartOffset:o,lowLatency:s}},Jt=(e,t,r)=>{var i,d,u,p,c,T,l,f;let{streamType:n,targetLiveWindow:o,liveEdgeStartOffset:s,lowLatency:a}=Gt(e);if(n===_.LIVE){a?(r.config.backBufferLength=(i=r.userConfig.backBufferLength)!=null?i:4,r.config.maxFragLookUpTolerance=(d=r.userConfig.maxFragLookUpTolerance)!=null?d:.001,r.config.abrBandWidthUpFactor=(u=r.userConfig.abrBandWidthUpFactor)!=null?u:r.config.abrBandWidthFactor):r.config.backBufferLength=(p=r.userConfig.backBufferLength)!=null?p:8;let g=Object.freeze({get length(){return t.seekable.length},start(m){return t.seekable.start(m)},end(m){var R;return m>this.length||m<0||Number.isFinite(t.duration)?t.seekable.end(m):(R=r.liveSyncPosition)!=null?R:t.seekable.end(m)}});((c=h.get(t))!=null?c:{}).seekable=g}((T=h.get(t))!=null?T:{}).liveEdgeStartOffset=s,((l=h.get(t))!=null?l:{}).targetLiveWindow=o,t.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((f=h.get(t))!=null?f:{}).streamType=n,t.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},Ze,et,st=(et=(Ze=globalThis==null?void 0:globalThis.navigator)==null?void 0:Ze.userAgent)!=null?et:"",tt,rt,nt,qt=(nt=(rt=(tt=globalThis==null?void 0:globalThis.navigator)==null?void 0:tt.userAgentData)==null?void 0:rt.platform)!=null?nt:"",zt=st.toLowerCase().includes("android")||["x11","android"].some(e=>qt.toLowerCase().includes(e)),Xt=e=>/^((?!chrome|android).)*safari/i.test(st)&&!!e.canPlayType("application/vnd.apple.mpegurl"),h=new WeakMap,O="mux.com",ot,at,it=(at=(ot=b).isSupported)==null?void 0:at.call(ot),Qt=e=>zt||!Xt(e),Kn=()=>{if(typeof window!="undefined")return ge.utils.now()},Zt=ge.utils.generateUUID,Wn=({playbackId:e,customDomain:t=O,maxResolution:r,minResolution:n,renditionOrder:o,programStartTime:s,programEndTime:a,assetStartTime:i,assetEndTime:d,playbackToken:u,tokens:{playback:p=u}={},extraSourceParams:c={}}={})=>{if(!e)return;let[T,l=""]=X(e),f=new URL(`https://stream.${t}/${T}.m3u8${l}`);return p||f.searchParams.has("token")?(f.searchParams.forEach((g,m)=>{m!="token"&&f.searchParams.delete(m)}),p&&f.searchParams.set("token",p)):(r&&f.searchParams.set("max_resolution",r),n&&(f.searchParams.set("min_resolution",n),r&&+r.slice(0,-1)<+n.slice(0,-1)&&console.error("minResolution must be <= maxResolution","minResolution",n,"maxResolution",r)),o&&f.searchParams.set("rendition_order",o),s&&f.searchParams.set("program_start_time",`${s}`),a&&f.searchParams.set("program_end_time",`${a}`),i&&f.searchParams.set("asset_start_time",`${i}`),d&&f.searchParams.set("asset_end_time",`${d}`),Object.entries(c).forEach(([g,m])=>{m!=null&&f.searchParams.set(g,m)})),f.toString()},oe=e=>{if(!e)return;let[t]=e.split("?");return t||void 0},ct=e=>{if(!e||!e.startsWith("https://stream."))return;let[t]=new URL(e).pathname.slice(1).split(/\.m3u8|\//);return t||void 0},er=e=>{var t,r,n;return(t=e==null?void 0:e.metadata)!=null&&t.video_id?e.metadata.video_id:yt(e)&&(n=(r=oe(e.playbackId))!=null?r:ct(e.src))!=null?n:e.src},tr=e=>{var t;return(t=h.get(e))==null?void 0:t.error},Fn=e=>{var t;return(t=h.get(e))==null?void 0:t.metadata},Qe=e=>{var t,r;return(r=(t=h.get(e))==null?void 0:t.streamType)!=null?r:_.UNKNOWN},Vn=e=>{var t,r;return(r=(t=h.get(e))==null?void 0:t.targetLiveWindow)!=null?r:Number.NaN},ut=e=>{var t,r;return(r=(t=h.get(e))==null?void 0:t.seekable)!=null?r:e.seekable},Yn=e=>{var n;let t=(n=h.get(e))==null?void 0:n.liveEdgeStartOffset;if(typeof t!="number")return Number.NaN;let r=ut(e);return r.length?r.end(r.length-1)-t:Number.NaN},Bn=e=>{var t;return(t=h.get(e))==null?void 0:t.coreReference},Re=.034,rr=(e,t,r=Re)=>Math.abs(e-t)<=r,dt=(e,t,r=Re)=>e>t||rr(e,t,r),nr=(e,t=Re)=>e.paused&&dt(e.currentTime,e.duration,t),lt=(e,t)=>{var u,p,c;if(!t||!e.buffered.length)return;if(e.readyState>2)return!1;let r=t.currentLevel>=0?(p=(u=t.levels)==null?void 0:u[t.currentLevel])==null?void 0:p.details:(c=t.levels.find(T=>!!T.details))==null?void 0:c.details;if(!r||r.live)return;let{fragments:n}=r;if(!(n!=null&&n.length))return;if(e.currentTime<e.duration-(r.targetduration+.5))return!1;let o=n[n.length-1];if(e.currentTime<=o.start)return!1;let s=o.start+o.duration/2,a=e.buffered.start(e.buffered.length-1),i=e.buffered.end(e.buffered.length-1);return s>a&&s<i},or=(e,t)=>e.ended||e.loop?e.ended:t&&lt(e,t)?!0:nr(e),ar=(e,t,r)=>{sr(t,r,e);let{metadata:n={}}=e,{view_session_id:o=Zt()}=n,s=er(e);n.view_session_id=o,n.video_id=s,e.metadata=n;let a=T=>{var l;(l=t.mux)==null||l.emit("hb",{view_drm_type:T})};e.drmTypeCb=a,e.fallbackToWebkitFairplay=async()=>{var m;let T=!t.paused,l=t.currentTime;e.useWebkitFairplay=!0;let f=e.muxDataKeepSession;e.muxDataKeepSession=!0;let g=(m=h.get(t))==null?void 0:m.coreReference;ar(e,t,g),e.muxDataKeepSession=f,e.useWebkitFairplay=!1,T&&await t.play().then(()=>{t.currentTime=l}).catch(()=>{}),t.currentTime=l},h.set(t,{retryCount:0});let i=ir(e,t),d=Ne(e,t,i);e!=null&&e.muxDataKeepSession&&(t!=null&&t.mux)&&!t.mux.deleted?i&&t.mux.addHLSJS({hlsjs:i,Hls:i?b:void 0}):yr(e,t,i),Tr(e,t,i),Ye(t),Ge(t);let u=Se(e,t,i);Ie(e,t,i),Oe(e,t,i);let p={engine:i,setAutoplay:u,setPreload:d},c=h.get(t);return c&&(c.coreReference=p),p},sr=(e,t,r)=>{let n=t==null?void 0:t.engine;e!=null&&e.mux&&!e.mux.deleted&&(r!=null&&r.muxDataKeepSession?n&&e.mux.removeHLSJS():(e.mux.destroy(),delete e.mux)),n&&(n.detachMedia(),n.destroy()),e&&(e.hasAttribute("src")&&(e.removeAttribute("src"),e.load()),e.removeEventListener("error",mt),e.removeEventListener("error",Ee),e.removeEventListener("durationchange",Tt),h.delete(e),e.dispatchEvent(new Event("teardown")))};function pt(e,t){var u;let r=B(e);if(!(r===N.M3U8))return!0;let o=!r||((u=t.canPlayType(r))!=null?u:!0),{preferPlayback:s}=e,a=s===ae.MSE,i=s===ae.NATIVE,d=it&&(a||Qt(t));return o&&(i||!d)}var ir=(e,t)=>{let{debug:r,streamType:n,startTime:o=-1,metadata:s,preferCmcd:a,_hlsConfig:i={},maxAutoResolution:d,initialBandwidthEstimateKbps:u}=e,c=B(e)===N.M3U8,T=pt(e,t);if(c&&!T&&it){let l={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelOnFPSDrop:!0,...u!=null?{abrEwmaDefaultEstimate:u*1e3}:{}},f=cr(n),g=ur(e),m=[W.QUERY,W.HEADER].includes(a)?{useHeaders:a===W.HEADER,sessionId:s==null?void 0:s.view_session_id,contentId:s==null?void 0:s.video_id}:void 0,R=fr(e,i),M=new b({debug:r,startPosition:o,cmcd:m,xhrSetup:(x,E)=>{var w,H;if(a&&a!==W.QUERY)return;let D=Q(E);if(!D.searchParams.has("CMCD"))return;let S=((H=(w=D.searchParams.get("CMCD"))==null?void 0:w.split(","))!=null?H:[]).filter(V=>V.startsWith("sid")||V.startsWith("cid")).join(",");D.searchParams.set("CMCD",S),x.open("GET",D)},...l,...R,...f,...g,...i});return R.capLevelController===te&&d!==void 0&&te.setMaxAutoResolution(M,d),M.on(b.Events.MANIFEST_PARSED,async function(x,E){var S,w;let D=(S=E.sessionData)==null?void 0:S["com.apple.hls.chapters"];(D!=null&&D.URI||D!=null&&D.VALUE.toLocaleLowerCase().startsWith("http"))&&Me((w=D==null?void 0:D.URI)!=null?w:D==null?void 0:D.VALUE,t)}),M}},cr=e=>e===_.LIVE?{backBufferLength:8}:{},ur=e=>{let{tokens:{drm:t}={},playbackId:r,drmTypeCb:n}=e,o=oe(r);return!t||!o?{}:{emeEnabled:!0,drmSystems:{"com.apple.fps":{licenseUrl:ne(e,"fairplay"),serverCertificateUrl:ft(e,"fairplay")},"com.widevine.alpha":{licenseUrl:ne(e,"widevine")},"com.microsoft.playready":{licenseUrl:ne(e,"playready")}},requestMediaKeySystemAccessFunc:(s,a)=>(s==="com.widevine.alpha"&&(a=[...a.map(i=>{var u;let d=(u=i.videoCapabilities)==null?void 0:u.map(p=>({...p,robustness:"HW_SECURE_ALL"}));return{...i,videoCapabilities:d}}),...a]),navigator.requestMediaKeySystemAccess(s,a).then(i=>{let d=Kt(s);return n==null||n(d),i}))}},dr=async e=>{let t=await fetch(e);return t.status!==200?Promise.reject(t):await t.arrayBuffer()},lr=async(e,t)=>{let r=await fetch(t,{method:"POST",headers:{"Content-type":"application/octet-stream"},body:e});if(r.status!==200)return Promise.reject(r);let n=await r.arrayBuffer();return new Uint8Array(n)},pr=(e,t)=>{let o={mediaEl:t,getAppCertificate:()=>dr(ft(e,"fairplay")).catch(s=>{if(s instanceof Response){let a=$(s,P.DRM,e);return console.error("mediaError",a==null?void 0:a.message,a==null?void 0:a.context),a?Promise.reject(a):Promise.reject(new Error("Unexpected error in app cert request"))}return Promise.reject(s)}),getLicenseKey:s=>lr(s,ne(e,"fairplay")).catch(a=>{if(a instanceof Response){let i=$(a,P.DRM,e);return console.error("mediaError",i==null?void 0:i.message,i==null?void 0:i.context),i?Promise.reject(i):Promise.reject(new Error("Unexpected error in license key request"))}return Promise.reject(a)}),saveAndDispatchError:I,drmTypeCb:()=>{var s;(s=e.drmTypeCb)==null||s.call(e,re.FAIRPLAY)}};if(e.useWebkitFairplay)qe(o);else{let s={fallbackToWebkitFairplay:async()=>{var i;await a(),(i=e.fallbackToWebkitFairplay)==null||i.call(e)},...o},a=ze(s)}},ne=({playbackId:e,tokens:{drm:t}={},customDomain:r=O},n)=>{let o=oe(e);return`https://license.${r.toLocaleLowerCase().endsWith(O)?r:O}/license/${n}/${o}?token=${t}`},ft=({playbackId:e,tokens:{drm:t}={},customDomain:r=O},n)=>{let o=oe(e);return`https://license.${r.toLocaleLowerCase().endsWith(O)?r:O}/appcert/${n}/${o}?token=${t}`},yt=({playbackId:e,src:t,customDomain:r})=>{if(e)return!0;if(typeof t!="string")return!1;let n=window==null?void 0:window.location.href,o=new URL(t,n).hostname.toLocaleLowerCase();return o.includes(O)||!!r&&o.includes(r.toLocaleLowerCase())},fr=(e,t)=>{let r={};return r.capLevelToPlayerSize=e.capRenditionToPlayerSize,r.capLevelToPlayerSize==null?(r.capLevelController=te,r.capLevelToPlayerSize=!0):r.capLevelController=Ht,r},yr=(e,t,r)=>{var d;let{envKey:n,disableTracking:o,muxDataSDK:s=ge,muxDataSDKOptions:a={}}=e,i=yt(e);if(!o&&(n||i)){let{playerInitTime:u,playerSoftwareName:p,playerSoftwareVersion:c,beaconCollectionDomain:T,debug:l,disableCookies:f}=e,g={...e.metadata,video_title:((d=e==null?void 0:e.metadata)==null?void 0:d.video_title)||void 0},m=R=>typeof R.player_error_code=="string"?!1:typeof e.errorTranslator=="function"?e.errorTranslator(R):R;s.monitor(t,{debug:l,beaconCollectionDomain:T,hlsjs:r,Hls:r?b:void 0,automaticErrorTracking:!1,errorTranslator:m,disableCookies:f,...a,data:{...n?{env_key:n}:{},player_software_name:p,player_software:p,player_software_version:c,player_init_time:u,...g}})}},Tr=(e,t,r)=>{var p,c,T;let n=pt(e,t),{src:o,customDomain:s=O}=e,a=()=>{t.ended||e.disablePseudoEnded||!or(t,r)||(lt(t,r)?t.currentTime=t.buffered.end(t.buffered.length-1):t.dispatchEvent(new Event("ended")))},i,d,u=()=>{let l=ut(t),f,g;l.length>0&&(f=l.start(0),g=l.end(0)),(d!==g||i!==f)&&t.dispatchEvent(new CustomEvent("seekablechange",{composed:!0})),i=f,d=g};if(L(t,"durationchange",u),t&&n){let l=B(e);if(typeof o=="string"){if(o.endsWith(".mp4")&&o.includes(s)){let m=ct(o),R=new URL(`https://stream.${s}/${m}/metadata.json`);Me(R.toString(),t)}let f=()=>{if(Qe(t)!==_.LIVE||Number.isFinite(t.duration))return;let m=setInterval(u,1e3);t.addEventListener("teardown",()=>{clearInterval(m)},{once:!0}),L(t,"durationchange",()=>{Number.isFinite(t.duration)&&clearInterval(m)})},g=async()=>jt(o,t,l).then(f).catch(m=>{if(m instanceof Response){let R=$(m,P.VIDEO,e);if(R){I(t,R);return}}else m instanceof Error});if(t.preload==="none"){let m=()=>{g(),t.removeEventListener("loadedmetadata",R)},R=()=>{g(),t.removeEventListener("play",m)};L(t,"play",m,{once:!0}),L(t,"loadedmetadata",R,{once:!0})}else g();(p=e.tokens)!=null&&p.drm?pr(e,t):L(t,"encrypted",()=>{let m=C("Attempting to play DRM-protected content without providing a DRM token."),R=new y(m,y.MEDIA_ERR_ENCRYPTED,!0);R.errorCategory=P.DRM,R.muxCode=k.ENCRYPTED_MISSING_TOKEN,I(t,R)},{once:!0}),t.setAttribute("src",o),e.startTime&&(((c=h.get(t))!=null?c:{}).startTime=e.startTime,t.addEventListener("durationchange",Tt,{once:!0}))}else t.removeAttribute("src");t.addEventListener("error",mt),t.addEventListener("error",Ee),t.addEventListener("emptied",()=>{t.querySelectorAll("track[data-removeondestroy]").forEach(g=>{g.remove()})},{once:!0}),L(t,"pause",a),L(t,"seeked",a),L(t,"play",()=>{t.ended||dt(t.currentTime,t.duration)&&(t.currentTime=t.seekable.length?t.seekable.start(0):0)})}else if(r&&o){r.once(b.Events.LEVEL_LOADED,(g,m)=>{Jt(m.details,t,r),u(),Qe(t)===_.LIVE&&!Number.isFinite(t.duration)&&(r.on(b.Events.LEVEL_UPDATED,u),L(t,"durationchange",()=>{Number.isFinite(t.duration)&&r.off(b.Events.LEVELS_UPDATED,u)}))});let l=(T=e.maxReconnectRetries)!=null?T:0,f=l>0?Xe({hls:r,mediaEl:t,src:o,muxMediaState:h,saveAndDispatchError:I,maxRetries:l}):void 0;r.on(b.Events.ERROR,(g,m)=>{var M,x;let R=mr(m,e);if(R.muxCode===k.NETWORK_NOT_READY){let D=(M=h.get(t))!=null?M:{},S=(x=D.retryCount)!=null?x:0;if(S<6){let w=S===0?5e3:6e4,H=new y(`Retrying in ${w/1e3} seconds...`,R.code,R.fatal);Object.assign(H,R),I(t,H);let V=setTimeout(()=>{D.retryCount=S+1,m.details==="manifestLoadError"&&m.url&&r.loadSource(m.url)},w);t.addEventListener("teardown",()=>clearTimeout(V),{once:!0});return}else{D.retryCount=0;let w=new y("Network error, try reloading.",R.code,R.fatal);Object.assign(w,R),w.reload=!0,I(t,w);return}}f!=null&&f.handleHlsError(m,R)||I(t,R)}),r.on(b.Events.MANIFEST_LOADED,()=>{f==null||f.onManifestLoaded();let g=h.get(t);g!=null&&g.networkError||g&&g.error&&(g.error=null,g.retryCount=0,t.dispatchEvent(new Event("emptied")),t.dispatchEvent(new Event("loadstart")))}),t.addEventListener("error",Ee),L(t,"waiting",a),Ue(e,r),He(t,r),r.attachMedia(t)}else 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 Tt(e){var n;let t=e.target,r=(n=h.get(t))==null?void 0:n.startTime;if(r&&ke(t.seekable,t.duration,r)){let o=t.preload==="auto";o&&(t.preload="none"),t.currentTime=r,o&&(t.preload="auto")}}async function mt(e){if(!e.isTrusted)return;e.stopImmediatePropagation();let t=e.target;if(!(t!=null&&t.error))return;let{message:r,code:n}=t.error,o=new y(r,n);if(t.src&&n===y.MEDIA_ERR_SRC_NOT_SUPPORTED&&t.readyState===HTMLMediaElement.HAVE_NOTHING){setTimeout(()=>{var a;let s=(a=tr(t))!=null?a:t.error;(s==null?void 0:s.code)===y.MEDIA_ERR_SRC_NOT_SUPPORTED&&I(t,o)},500);return}if(t.src&&(n!==y.MEDIA_ERR_DECODE||n!==void 0))try{let{status:s}=await fetch(t.src);o.data={response:{code:s}}}catch{}I(t,o)}function I(e,t){var r;t.fatal&&(((r=h.get(e))!=null?r:{}).error=t,e.dispatchEvent(new CustomEvent("error",{detail:t})))}function Ee(e){var n,o;if(!(e instanceof CustomEvent)||!(e.detail instanceof y))return;let t=e.target,r=e.detail;!r||!r.fatal||(((n=h.get(t))!=null?n:{}).error=r,(o=t.mux)==null||o.emit("error",{player_error_code:r.code,player_error_message:r.message,player_error_context:r.context}))}var mr=(e,t)=>{var d,u,p;!e.fatal?t.debug&&console.warn("getErrorFromHlsErrorData() (non-fatal)",e):console.error("getErrorFromHlsErrorData()",e);let n={[b.ErrorTypes.NETWORK_ERROR]:y.MEDIA_ERR_NETWORK,[b.ErrorTypes.MEDIA_ERROR]:y.MEDIA_ERR_DECODE,[b.ErrorTypes.KEY_SYSTEM_ERROR]:y.MEDIA_ERR_ENCRYPTED},o=c=>[b.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,b.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED].includes(c.details)?y.MEDIA_ERR_NETWORK:n[c.type],s=c=>{if(c.type===b.ErrorTypes.KEY_SYSTEM_ERROR)return P.DRM;if(c.type===b.ErrorTypes.NETWORK_ERROR)return P.VIDEO},a,i=o(e);if(i===y.MEDIA_ERR_NETWORK&&e.response){let c=(d=s(e))!=null?d:P.VIDEO;a=(u=$(e.response,c,t,e.fatal))!=null?u:new y("",i,e.fatal)}else if(i===y.MEDIA_ERR_ENCRYPTED)if(e.details===b.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE){let c=C("Attempting to play DRM-protected content without providing a DRM token.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_MISSING_TOKEN}else if(e.details===b.ErrorDetails.KEY_SYSTEM_NO_ACCESS){let c=C("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM}else if(e.details===b.ErrorDetails.KEY_SYSTEM_NO_SESSION){let c=C("Failed to generate a DRM license request. This may be an issue with the player or your protected content.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,!0),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_GENERATE_REQUEST_FAILED}else if(e.details===b.ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED){let c=C("Failed to update DRM license. This may be an issue with the player or your protected content.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_UPDATE_LICENSE_FAILED}else if(e.details===b.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED){let c=C("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_UPDATE_SERVER_CERT_FAILED}else if(e.details===b.ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR){let c=C("The DRM Content Decryption Module system had an internal failure. Try reloading the page, updating your browser, or playing in another browser.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_CDM_ERROR}else if(e.details===b.ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED){let c=C("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");a=new y(c,y.MEDIA_ERR_ENCRYPTED,!1),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_OUTPUT_RESTRICTED}else a=new y(e.error.message,y.MEDIA_ERR_ENCRYPTED,e.fatal),a.errorCategory=P.DRM,a.muxCode=k.ENCRYPTED_ERROR;else a=new y("",i,e.fatal);return a.context||(a.context=`${e.url?`url: ${e.url}
`:""}${e.response&&(e.response.code||e.response.text)?`response: ${e.response.code}, ${e.response.text}

@@ -12,4 +12,4 @@ `:""}${e.reason?`failure reason: ${e.reason}

`:""}${e.event?`event: ${e.event}
`:""}${e.err?`error message: ${(f=e.err)==null?void 0:f.message}
`:""}`),a.data=e,a};export{Y as AutoplayTypes,fr as CmcdTypeValues,O as CmcdTypes,w as ExtensionMimeTypeMap,R as Hls,Mr as MaxAutoResolution,mr as MaxResolution,T as MediaError,$ as MimeTypeShorthandMap,X as MinCapLevelController,Er as MinResolution,k as MuxErrorCategory,C as MuxErrorCode,de as MuxJWTAud,te as PlaybackTypes,gr as RenditionOrder,h as StreamTypes,Ke as addChapters,Ne as addCuePoints,ce as addTextTrack,Tr as allMediaTypes,V as errorCategoryToTokenNameOrPrefix,Te as fetchAndDispatchMuxMetadata,kn as generatePlayerInitTime,jt as generateUUID,We as getActiveChapter,Oe as getActiveCuePoint,nr as getAppCertificate,sr as getCapLevelControllerConfig,Mt as getChapters,_n as getCoreReference,gt as getCuePoints,Rt as getCurrentPdt,rr as getDRMConfig,Xt as getEnded,Gt as getError,or as getLicenseKey,hn as getLiveEdgeStart,St as getMediaPlaylistFromMultivariantPlaylist,Pn as getMetadata,It as getMultivariantPlaylistSessionData,rt as getSeekable,bt as getStartDate,Wt as getStreamInfoFromHlsjsLevelDetails,Ut as getStreamInfoFromPlaylist,Ht as getStreamInfoFromSrcAndType,Be as getStreamType,tr as getStreamTypeConfig,Ln as getTargetLiveWindow,U as getTextTrack,x as i18n,Qt as initialize,K as isKeyOf,it as isMuxVideoSrc,zt as isPseudoEnded,ot as isStuckOnLastFragment,cr as loadMedia,ye as mux,L as muxMediaState,ae as parseJwt,Ot as parseTagAttributes,Et as removeTextTrack,Fe as setupChapters,Ue as setupCuePoints,er as setupHls,ir as setupMux,ar as setupNativeFairplayDRM,yr as shorthandKeys,Zt as teardown,st as toAppCertURL,At as toDRMTypeFromKeySystem,Z as toLicenseKeyURL,Dn as toMuxVideoURL,tt as toPlaybackIdFromSrc,J as toPlaybackIdParts,Ft as updateStreamInfoFromHlsjsLevelDetails,Kt as updateStreamInfoFromSrc};
`:""}${e.err?`error message: ${(p=e.err)==null?void 0:p.message}
`:""}`),a.data=e,a};export{G as AutoplayTypes,xr as CmcdTypeValues,W as CmcdTypes,N as ExtensionMimeTypeMap,b as Hls,Lr as MaxAutoResolution,kr as MaxResolution,y as MediaError,J as MimeTypeShorthandMap,te as MinCapLevelController,Dr as MinResolution,P as MuxErrorCategory,k as MuxErrorCode,Te as MuxJWTAud,ae as PlaybackTypes,Pr as RenditionOrder,_ as StreamTypes,$e as addChapters,Fe as addCuePoints,pe as addTextTrack,Cr as allMediaTypes,j as errorCategoryToTokenNameOrPrefix,Me as fetchAndDispatchMuxMetadata,Kn as generatePlayerInitTime,Zt as generateUUID,je as getActiveChapter,Ve as getActiveCuePoint,dr as getAppCertificate,fr as getCapLevelControllerConfig,Dt as getChapters,Bn as getCoreReference,kt as getCuePoints,Lt as getCurrentPdt,ur as getDRMConfig,or as getEnded,tr as getError,lr as getLicenseKey,Yn as getLiveEdgeStart,Wt as getMediaPlaylistFromMultivariantPlaylist,Fn as getMetadata,Ft as getMultivariantPlaylistSessionData,ut as getSeekable,Pt as getStartDate,Gt as getStreamInfoFromHlsjsLevelDetails,Bt as getStreamInfoFromPlaylist,$t as getStreamInfoFromSrcAndType,Qe as getStreamType,cr as getStreamTypeConfig,Vn as getTargetLiveWindow,F as getTextTrack,C as i18n,ar as initialize,Y as isKeyOf,yt as isMuxVideoSrc,nr as isPseudoEnded,lt as isStuckOnLastFragment,Tr as loadMedia,ge as mux,h as muxMediaState,ue as parseJwt,Yt as parseTagAttributes,Ct as removeTextTrack,Ge as setupChapters,Ye as setupCuePoints,ir as setupHls,yr as setupMux,pr as setupNativeFairplayDRM,vr as shorthandKeys,sr as teardown,ft as toAppCertURL,Kt as toDRMTypeFromKeySystem,ne as toLicenseKeyURL,Wn as toMuxVideoURL,ct as toPlaybackIdFromSrc,X as toPlaybackIdParts,Jt as updateStreamInfoFromHlsjsLevelDetails,jt as updateStreamInfoFromSrc};
//# sourceMappingURL=index.mjs.map

@@ -10,2 +10,3 @@ export declare const MuxErrorCategory: {

readonly NETWORK_OFFLINE: 2000002;
readonly NETWORK_RECONNECTING: 2000003;
readonly NETWORK_UNKNOWN_ERROR: 2000000;

@@ -63,4 +64,5 @@ readonly NETWORK_NO_STATUS: 2000001;

streamType?: 'live' | 'on-demand' | 'unknown';
reload?: boolean;
constructor(message?: Stringable, code?: number, fatal?: boolean, context?: string);
}
export {};

@@ -1,2 +0,2 @@

import { ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal, MuxMediaPropTypes } from './types';
import { ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal, MuxMediaPropTypes, MuxMediaState } from './types';
import mux from 'mux-embed';

@@ -89,8 +89,3 @@ import Hls from './hls';

}
export declare const muxMediaState: WeakMap<HTMLMediaElement, Partial<MuxMediaProps> & {
seekable?: TimeRanges;
liveEdgeStartOffset?: number;
retryCount?: number;
coreReference?: PlaybackCore;
}>;
export declare const muxMediaState: MuxMediaState;
export declare const generatePlayerInitTime: () => number | undefined;

@@ -132,2 +127,2 @@ export declare const generateUUID: () => string;

export declare const setupMux: (props: Partial<Pick<MuxMediaPropsInternal, "envKey" | "playerInitTime" | "beaconCollectionDomain" | "errorTranslator" | "metadata" | "debug" | "playerSoftwareName" | "playerSoftwareVersion" | "playbackId" | "src" | "customDomain" | "disableCookies" | "disableTracking" | "muxDataSDK" | "muxDataSDKOptions">>, mediaEl: HTMLMediaElement, hlsjs?: HlsInterface) => void;
export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, "preferPlayback" | "src" | "type" | "startTime" | "streamType" | "autoplay" | "playbackId" | "tokens" | "customDomain" | "disablePseudoEnded" | "debug" | "useWebkitFairplay" | "fallbackToWebkitFairplay">>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, "config" | "on" | "once" | "off" | "trigger" | "startLoad" | "stopLoad" | "recoverMediaError" | "destroy" | "loadSource" | "attachMedia" | "liveSyncPosition" | "subtitleTracks" | "subtitleTrack" | "userConfig" | "audioTrack" | "audioTracks" | "autoLevelEnabled" | "nextLevel" | "levels" | "currentLevel">) => void;
export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, "preferPlayback" | "src" | "type" | "startTime" | "streamType" | "autoplay" | "playbackId" | "tokens" | "customDomain" | "disablePseudoEnded" | "maxReconnectRetries" | "debug" | "useWebkitFairplay" | "fallbackToWebkitFairplay">>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, "config" | "on" | "once" | "off" | "trigger" | "startLoad" | "stopLoad" | "recoverMediaError" | "destroy" | "loadSource" | "attachMedia" | "liveSyncPosition" | "subtitleTracks" | "subtitleTrack" | "userConfig" | "audioTrack" | "audioTracks" | "autoLevelEnabled" | "nextLevel" | "levels" | "currentLevel">) => void;

@@ -114,2 +114,9 @@ /// <reference path="vendor/mux-embed.d.ts" preserve="true" />

disablePseudoEnded: boolean;
/**
* Max reconnect attempts per stall episode before surfacing a terminal error and stopping.
* Distinct from hls.js's own per-request `maxNumRetry`.
*
* Default: 0
*/
maxReconnectRetries: number;
drmToken?: string;

@@ -157,2 +164,9 @@ playbackToken?: string;

};
export type MuxMediaState = WeakMap<HTMLMediaElement, Partial<MuxMediaProps> & {
seekable?: TimeRanges;
liveEdgeStartOffset?: number;
retryCount?: number;
networkError?: boolean;
coreReference?: PlaybackCore;
}>;
export type MuxMediaEventsMap = {

@@ -159,0 +173,0 @@ cuepointchange: CustomEvent<{

@@ -10,2 +10,3 @@ export declare const MuxErrorCategory: {

readonly NETWORK_OFFLINE: 2000002;
readonly NETWORK_RECONNECTING: 2000003;
readonly NETWORK_UNKNOWN_ERROR: 2000000;

@@ -63,4 +64,5 @@ readonly NETWORK_NO_STATUS: 2000001;

streamType?: 'live' | 'on-demand' | 'unknown';
reload?: boolean;
constructor(message?: Stringable, code?: number, fatal?: boolean, context?: string);
}
export {};

@@ -1,2 +0,2 @@

import type { ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal, MuxMediaPropTypes } from './types';
import type { ValueOf, PlaybackCore, MuxMediaProps, MuxMediaPropsInternal, MuxMediaPropTypes, MuxMediaState } from './types';
import mux from 'mux-embed';

@@ -89,8 +89,3 @@ import Hls from './hls';

}
export declare const muxMediaState: WeakMap<HTMLMediaElement, Partial<MuxMediaProps> & {
seekable?: TimeRanges;
liveEdgeStartOffset?: number;
retryCount?: number;
coreReference?: PlaybackCore;
}>;
export declare const muxMediaState: MuxMediaState;
export declare const generatePlayerInitTime: () => number | undefined;

@@ -132,2 +127,2 @@ export declare const generateUUID: () => string;

export declare const setupMux: (props: Partial<Pick<MuxMediaPropsInternal, "envKey" | "playerInitTime" | "beaconCollectionDomain" | "errorTranslator" | "metadata" | "debug" | "playerSoftwareName" | "playerSoftwareVersion" | "playbackId" | "src" | "customDomain" | "disableCookies" | "disableTracking" | "muxDataSDK" | "muxDataSDKOptions">>, mediaEl: HTMLMediaElement, hlsjs?: HlsInterface) => void;
export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, "preferPlayback" | "src" | "type" | "startTime" | "streamType" | "autoplay" | "playbackId" | "tokens" | "customDomain" | "disablePseudoEnded" | "debug" | "useWebkitFairplay" | "fallbackToWebkitFairplay">>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, "config" | "on" | "once" | "off" | "trigger" | "startLoad" | "stopLoad" | "recoverMediaError" | "destroy" | "loadSource" | "attachMedia" | "liveSyncPosition" | "subtitleTracks" | "subtitleTrack" | "userConfig" | "audioTrack" | "audioTracks" | "autoLevelEnabled" | "nextLevel" | "levels" | "currentLevel">) => void;
export declare const loadMedia: (props: Partial<Pick<MuxMediaProps, "preferPlayback" | "src" | "type" | "startTime" | "streamType" | "autoplay" | "playbackId" | "tokens" | "customDomain" | "disablePseudoEnded" | "maxReconnectRetries" | "debug" | "useWebkitFairplay" | "fallbackToWebkitFairplay">>, mediaEl: HTMLMediaElement, hls?: Pick<Hls, "config" | "on" | "once" | "off" | "trigger" | "startLoad" | "stopLoad" | "recoverMediaError" | "destroy" | "loadSource" | "attachMedia" | "liveSyncPosition" | "subtitleTracks" | "subtitleTrack" | "userConfig" | "audioTrack" | "audioTracks" | "autoLevelEnabled" | "nextLevel" | "levels" | "currentLevel">) => void;

@@ -114,2 +114,9 @@ /// <reference path="vendor/mux-embed.d.ts" preserve="true" />

disablePseudoEnded: boolean;
/**
* Max reconnect attempts per stall episode before surfacing a terminal error and stopping.
* Distinct from hls.js's own per-request `maxNumRetry`.
*
* Default: 0
*/
maxReconnectRetries: number;
drmToken?: string;

@@ -157,2 +164,9 @@ playbackToken?: string;

};
export type MuxMediaState = WeakMap<HTMLMediaElement, Partial<MuxMediaProps> & {
seekable?: TimeRanges;
liveEdgeStartOffset?: number;
retryCount?: number;
networkError?: boolean;
coreReference?: PlaybackCore;
}>;
export type MuxMediaEventsMap = {

@@ -159,0 +173,0 @@ cuepointchange: CustomEvent<{

{
"name": "@mux/playback-core",
"version": "0.35.1-canary.3",
"version": "0.35.2",
"description": "Core library for media playback in the browser shared by mux elements",

@@ -5,0 +5,0 @@ "main": "./dist/index.cjs.js",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet