UNPKG

vue3-video-play

Version:
1 lines 388 kB
(function(Ie,y){typeof exports=="object"&&typeof module<"u"?y(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],y):(Ie=typeof globalThis<"u"?globalThis:Ie||self,y(Ie.index={},Ie.Vue))})(this,function(Ie,y){"use strict";function Er(a,e,t){var s=t||{},i=s.noTrailing,r=i===void 0?!1:i,n=s.noLeading,o=n===void 0?!1:n,l=s.debounceMode,c=l===void 0?void 0:l,d,h=!1,u=0;function f(){d&&clearTimeout(d)}function g(T){var E=T||{},S=E.upcomingOnly,x=S===void 0?!1:S;f(),h=!x}function p(){for(var T=arguments.length,E=new Array(T),S=0;S<T;S++)E[S]=arguments[S];var x=this,R=Date.now()-u;if(h)return;function L(){u=Date.now(),e.apply(x,E)}function _(){d=void 0}!o&&c&&!d&&L(),f(),c===void 0&&R>a?o?(u=Date.now(),r||(d=setTimeout(c?_:L,a))):L():r!==!0&&(d=setTimeout(c?_:L,c===void 0?a-R:a))}return p.cancel=g,p}function Ls(a,e,t){var s=t||{},i=s.atBegin,r=i===void 0?!1:i;return Er(a,e,{debounceMode:r!==!1})}function xr(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var As={exports:{}};(function(a,e){(function(t){var s=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,i=/^(?=([^\/?#]*))\1([^]*)$/,r=/(?:\/|^)\.(?=\/)/g,n=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,o={buildAbsoluteURL:function(l,c,d){if(d=d||{},l=l.trim(),c=c.trim(),!c){if(!d.alwaysNormalize)return l;var h=o.parseURL(l);if(!h)throw new Error("Error trying to parse base URL.");return h.path=o.normalizePath(h.path),o.buildURLFromParts(h)}var u=o.parseURL(c);if(!u)throw new Error("Error trying to parse relative URL.");if(u.scheme)return d.alwaysNormalize?(u.path=o.normalizePath(u.path),o.buildURLFromParts(u)):c;var f=o.parseURL(l);if(!f)throw new Error("Error trying to parse base URL.");if(!f.netLoc&&f.path&&f.path[0]!=="/"){var g=i.exec(f.path);f.netLoc=g[1],f.path=g[2]}f.netLoc&&!f.path&&(f.path="/");var p={scheme:f.scheme,netLoc:u.netLoc,path:null,params:u.params,query:u.query,fragment:u.fragment};if(!u.netLoc&&(p.netLoc=f.netLoc,u.path[0]!=="/"))if(!u.path)p.path=f.path,u.params||(p.params=f.params,u.query||(p.query=f.query));else{var T=f.path,E=T.substring(0,T.lastIndexOf("/")+1)+u.path;p.path=o.normalizePath(E)}return p.path===null&&(p.path=d.alwaysNormalize?o.normalizePath(u.path):u.path),o.buildURLFromParts(p)},parseURL:function(l){var c=s.exec(l);return c?{scheme:c[1]||"",netLoc:c[2]||"",path:c[3]||"",params:c[4]||"",query:c[5]||"",fragment:c[6]||""}:null},normalizePath:function(l){for(l=l.split("").reverse().join("").replace(r,"");l.length!==(l=l.replace(n,"")).length;);return l.split("").reverse().join("")},buildURLFromParts:function(l){return l.scheme+l.netLoc+l.path+l.params+l.query+l.fragment}};a.exports=o})()})(As);var It=As.exports;function Is(a,e){var t=Object.keys(a);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(a);e&&(s=s.filter(function(i){return Object.getOwnPropertyDescriptor(a,i).enumerable})),t.push.apply(t,s)}return t}function oe(a){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Is(Object(t),!0).forEach(function(s){Sr(a,s,t[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(t)):Is(Object(t)).forEach(function(s){Object.defineProperty(a,s,Object.getOwnPropertyDescriptor(t,s))})}return a}function Sr(a,e,t){return e=Lr(e),e in a?Object.defineProperty(a,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):a[e]=t,a}function te(){return te=Object.assign?Object.assign.bind():function(a){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(a[s]=t[s])}return a},te.apply(this,arguments)}function vr(a,e){if(typeof a!="object"||a===null)return a;var t=a[Symbol.toPrimitive];if(t!==void 0){var s=t.call(a,e||"default");if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(a)}function Lr(a){var e=vr(a,"string");return typeof e=="symbol"?e:String(e)}const B=Number.isFinite||function(a){return typeof a=="number"&&isFinite(a)};let m=function(a){return a.MEDIA_ATTACHING="hlsMediaAttaching",a.MEDIA_ATTACHED="hlsMediaAttached",a.MEDIA_DETACHING="hlsMediaDetaching",a.MEDIA_DETACHED="hlsMediaDetached",a.BUFFER_RESET="hlsBufferReset",a.BUFFER_CODECS="hlsBufferCodecs",a.BUFFER_CREATED="hlsBufferCreated",a.BUFFER_APPENDING="hlsBufferAppending",a.BUFFER_APPENDED="hlsBufferAppended",a.BUFFER_EOS="hlsBufferEos",a.BUFFER_FLUSHING="hlsBufferFlushing",a.BUFFER_FLUSHED="hlsBufferFlushed",a.MANIFEST_LOADING="hlsManifestLoading",a.MANIFEST_LOADED="hlsManifestLoaded",a.MANIFEST_PARSED="hlsManifestParsed",a.LEVEL_SWITCHING="hlsLevelSwitching",a.LEVEL_SWITCHED="hlsLevelSwitched",a.LEVEL_LOADING="hlsLevelLoading",a.LEVEL_LOADED="hlsLevelLoaded",a.LEVEL_UPDATED="hlsLevelUpdated",a.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",a.LEVELS_UPDATED="hlsLevelsUpdated",a.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",a.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",a.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",a.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",a.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",a.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",a.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",a.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",a.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",a.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",a.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",a.CUES_PARSED="hlsCuesParsed",a.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",a.INIT_PTS_FOUND="hlsInitPtsFound",a.FRAG_LOADING="hlsFragLoading",a.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",a.FRAG_LOADED="hlsFragLoaded",a.FRAG_DECRYPTED="hlsFragDecrypted",a.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",a.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",a.FRAG_PARSING_METADATA="hlsFragParsingMetadata",a.FRAG_PARSED="hlsFragParsed",a.FRAG_BUFFERED="hlsFragBuffered",a.FRAG_CHANGED="hlsFragChanged",a.FPS_DROP="hlsFpsDrop",a.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",a.ERROR="hlsError",a.DESTROYING="hlsDestroying",a.KEY_LOADING="hlsKeyLoading",a.KEY_LOADED="hlsKeyLoaded",a.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",a.BACK_BUFFER_REACHED="hlsBackBufferReached",a}({}),G=function(a){return a.NETWORK_ERROR="networkError",a.MEDIA_ERROR="mediaError",a.KEY_SYSTEM_ERROR="keySystemError",a.MUX_ERROR="muxError",a.OTHER_ERROR="otherError",a}({}),I=function(a){return a.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",a.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",a.KEY_SYSTEM_NO_SESSION="keySystemNoSession",a.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",a.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",a.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",a.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",a.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",a.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",a.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",a.MANIFEST_LOAD_ERROR="manifestLoadError",a.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",a.MANIFEST_PARSING_ERROR="manifestParsingError",a.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",a.LEVEL_EMPTY_ERROR="levelEmptyError",a.LEVEL_LOAD_ERROR="levelLoadError",a.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",a.LEVEL_PARSING_ERROR="levelParsingError",a.LEVEL_SWITCH_ERROR="levelSwitchError",a.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",a.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",a.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",a.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",a.FRAG_LOAD_ERROR="fragLoadError",a.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",a.FRAG_DECRYPT_ERROR="fragDecryptError",a.FRAG_PARSING_ERROR="fragParsingError",a.FRAG_GAP="fragGap",a.REMUX_ALLOC_ERROR="remuxAllocError",a.KEY_LOAD_ERROR="keyLoadError",a.KEY_LOAD_TIMEOUT="keyLoadTimeOut",a.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",a.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",a.BUFFER_APPEND_ERROR="bufferAppendError",a.BUFFER_APPENDING_ERROR="bufferAppendingError",a.BUFFER_STALLED_ERROR="bufferStalledError",a.BUFFER_FULL_ERROR="bufferFullError",a.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",a.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",a.INTERNAL_EXCEPTION="internalException",a.INTERNAL_ABORTED="aborted",a.UNKNOWN="unknown",a}({});const Fe=function(){},Rt={trace:Fe,debug:Fe,log:Fe,warn:Fe,info:Fe,error:Fe};let Ye=Rt;function Ar(a){const e=self.console[a];return e?e.bind(self.console,`[${a}] >`):Fe}function Ir(a,...e){e.forEach(function(t){Ye[t]=a[t]?a[t].bind(a):Ar(t)})}function Rr(a,e){if(self.console&&a===!0||typeof a=="object"){Ir(a,"debug","log","info","warn","error");try{Ye.log(`Debug logs enabled for "${e}" in hls.js version 1.4.12`)}catch{Ye=Rt}}else Ye=Rt}const v=Ye,br=/^(\d+)x(\d+)$/,Rs=/(.+?)=(".*?"|.*?)(?:,|$)/g;class Z{constructor(e){typeof e=="string"&&(e=Z.parseAttrList(e));for(const t in e)e.hasOwnProperty(t)&&(t.substring(0,2)==="X-"&&(this.clientAttrs=this.clientAttrs||[],this.clientAttrs.push(t)),this[t]=e[t])}decimalInteger(e){const t=parseInt(this[e],10);return t>Number.MAX_SAFE_INTEGER?1/0:t}hexadecimalInteger(e){if(this[e]){let t=(this[e]||"0x").slice(2);t=(t.length&1?"0":"")+t;const s=new Uint8Array(t.length/2);for(let i=0;i<t.length/2;i++)s[i]=parseInt(t.slice(i*2,i*2+2),16);return s}else return null}hexadecimalIntegerAsNumber(e){const t=parseInt(this[e],16);return t>Number.MAX_SAFE_INTEGER?1/0:t}decimalFloatingPoint(e){return parseFloat(this[e])}optionalFloat(e,t){const s=this[e];return s?parseFloat(s):t}enumeratedString(e){return this[e]}bool(e){return this[e]==="YES"}decimalResolution(e){const t=br.exec(this[e]);if(t!==null)return{width:parseInt(t[1],10),height:parseInt(t[2],10)}}static parseAttrList(e){let t;const s={},i='"';for(Rs.lastIndex=0;(t=Rs.exec(e))!==null;){let r=t[2];r.indexOf(i)===0&&r.lastIndexOf(i)===r.length-1&&(r=r.slice(1,-1));const n=t[1].trim();s[n]=r}return s}}function Dr(a){return a!=="ID"&&a!=="CLASS"&&a!=="START-DATE"&&a!=="DURATION"&&a!=="END-DATE"&&a!=="END-ON-NEXT"}function Cr(a){return a==="SCTE35-OUT"||a==="SCTE35-IN"}class bs{constructor(e,t){if(this.attr=void 0,this._startDate=void 0,this._endDate=void 0,this._badValueForSameId=void 0,t){const s=t.attr;for(const i in s)if(Object.prototype.hasOwnProperty.call(e,i)&&e[i]!==s[i]){v.warn(`DATERANGE tag attribute: "${i}" does not match for tags with ID: "${e.ID}"`),this._badValueForSameId=i;break}e=te(new Z({}),s,e)}if(this.attr=e,this._startDate=new Date(e["START-DATE"]),"END-DATE"in this.attr){const s=new Date(this.attr["END-DATE"]);B(s.getTime())&&(this._endDate=s)}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get startDate(){return this._startDate}get endDate(){if(this._endDate)return this._endDate;const e=this.duration;return e!==null?new Date(this._startDate.getTime()+e*1e3):null}get duration(){if("DURATION"in this.attr){const e=this.attr.decimalFloatingPoint("DURATION");if(B(e))return e}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1e3;return null}get plannedDuration(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isValid(){return!!this.id&&!this._badValueForSameId&&B(this.startDate.getTime())&&(this.duration===null||this.duration>=0)&&(!this.endOnNext||!!this.class)}}class it{constructor(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}}var z={AUDIO:"audio",VIDEO:"video",AUDIOVIDEO:"audiovideo"};class Ds{constructor(e){this._byteRange=null,this._url=null,this.baseurl=void 0,this.relurl=void 0,this.elementaryStreams={[z.AUDIO]:null,[z.VIDEO]:null,[z.AUDIOVIDEO]:null},this.baseurl=e}setByteRange(e,t){const s=e.split("@",2),i=[];s.length===1?i[0]=t?t.byteRangeEndOffset:0:i[0]=parseInt(s[1]),i[1]=parseInt(s[0])+i[0],this._byteRange=i}get byteRange(){return this._byteRange?this._byteRange:[]}get byteRangeStartOffset(){return this.byteRange[0]}get byteRangeEndOffset(){return this.byteRange[1]}get url(){return!this._url&&this.baseurl&&this.relurl&&(this._url=It.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""}set url(e){this._url=e}}class bt extends Ds{constructor(e,t){super(t),this._decryptdata=null,this.rawProgramDateTime=null,this.programDateTime=null,this.tagList=[],this.duration=0,this.sn=0,this.levelkeys=void 0,this.type=void 0,this.loader=null,this.keyLoader=null,this.level=-1,this.cc=0,this.startPTS=void 0,this.endPTS=void 0,this.startDTS=void 0,this.endDTS=void 0,this.start=0,this.deltaPTS=void 0,this.maxStartPTS=void 0,this.minEndPTS=void 0,this.stats=new it,this.urlId=0,this.data=void 0,this.bitrateTest=!1,this.title=null,this.initSegment=null,this.endList=void 0,this.gap=void 0,this.type=e}get decryptdata(){const{levelkeys:e}=this;if(!e&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkeys&&!this.levelkeys.NONE){const t=this.levelkeys.identity;if(t)this._decryptdata=t.getDecryptData(this.sn);else{const s=Object.keys(this.levelkeys);if(s.length===1)return this._decryptdata=this.levelkeys[s[0]].getDecryptData(this.sn)}}return this._decryptdata}get end(){return this.start+this.duration}get endProgramDateTime(){if(this.programDateTime===null||!B(this.programDateTime))return null;const e=B(this.duration)?this.duration:0;return this.programDateTime+e*1e3}get encrypted(){var e;if((e=this._decryptdata)!=null&&e.encrypted)return!0;if(this.levelkeys){const t=Object.keys(this.levelkeys),s=t.length;if(s>1||s===1&&this.levelkeys[t[0]].encrypted)return!0}return!1}setKeyFormat(e){if(this.levelkeys){const t=this.levelkeys[e];t&&!this._decryptdata&&(this._decryptdata=t.getDecryptData(this.sn))}}abortRequests(){var e,t;(e=this.loader)==null||e.abort(),(t=this.keyLoader)==null||t.abort()}setElementaryStreamInfo(e,t,s,i,r,n=!1){const{elementaryStreams:o}=this,l=o[e];if(!l){o[e]={startPTS:t,endPTS:s,startDTS:i,endDTS:r,partial:n};return}l.startPTS=Math.min(l.startPTS,t),l.endPTS=Math.max(l.endPTS,s),l.startDTS=Math.min(l.startDTS,i),l.endDTS=Math.max(l.endDTS,r)}clearElementaryStreamInfo(){const{elementaryStreams:e}=this;e[z.AUDIO]=null,e[z.VIDEO]=null,e[z.AUDIOVIDEO]=null}}class _r extends Ds{constructor(e,t,s,i,r){super(s),this.fragOffset=0,this.duration=0,this.gap=!1,this.independent=!1,this.relurl=void 0,this.fragment=void 0,this.index=void 0,this.stats=new it,this.duration=e.decimalFloatingPoint("DURATION"),this.gap=e.bool("GAP"),this.independent=e.bool("INDEPENDENT"),this.relurl=e.enumeratedString("URI"),this.fragment=t,this.index=i;const n=e.enumeratedString("BYTERANGE");n&&this.setByteRange(n,r),r&&(this.fragOffset=r.fragOffset+r.duration)}get start(){return this.fragment.start+this.fragOffset}get end(){return this.start+this.duration}get loaded(){const{elementaryStreams:e}=this;return!!(e.audio||e.video||e.audiovideo)}}const kr=10;class wr{constructor(e){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.live=!0,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.availabilityDelay=void 0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=e}reloaded(e){if(!e){this.advanced=!0,this.updated=!0;return}const t=this.lastPartSn-e.lastPartSn,s=this.lastPartIndex-e.lastPartIndex;this.updated=this.endSN!==e.endSN||!!s||!!t||!this.live,this.advanced=this.endSN>e.endSN||t>0||t===0&&s>0,this.updated||this.advanced?this.misses=Math.floor(e.misses*.6):this.misses=e.misses+1,this.availabilityDelay=e.availabilityDelay}get hasProgramDateTime(){return this.fragments.length?B(this.fragments[this.fragments.length-1].programDateTime):!1}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||kr}get drift(){const e=this.driftEndTime-this.driftStartTime;return e>0?(this.driftEnd-this.driftStart)*1e3/e:1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var e;return(e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){var e;return(e=this.fragments)!=null&&e.length?this.fragments[this.fragments.length-1].end:0}get age(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1e3:0}get lastPartIndex(){var e;return(e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].index:-1}get lastPartSn(){var e;return(e=this.partList)!=null&&e.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}}function Dt(a){return Uint8Array.from(atob(a),e=>e.charCodeAt(0))}function Pr(a){const e=Cs(a).subarray(0,16),t=new Uint8Array(16);return t.set(e,16-e.length),t}function Fr(a){const e=function(s,i,r){const n=s[i];s[i]=s[r],s[r]=n};e(a,0,3),e(a,1,2),e(a,4,5),e(a,6,7)}function Or(a){const e=a.split(":");let t=null;if(e[0]==="data"&&e.length===2){const s=e[1].split(";"),i=s[s.length-1].split(",");if(i.length===2){const r=i[0]==="base64",n=i[1];r?(s.splice(-1,1),t=Dt(n)):t=Pr(n)}}return t}function Cs(a){return Uint8Array.from(unescape(encodeURIComponent(a)),e=>e.charCodeAt(0))}var ee={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},le={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.streamingkeydelivery",PLAYREADY:"com.microsoft.playready",WIDEVINE:"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"};function _s(a){switch(a){case le.FAIRPLAY:return ee.FAIRPLAY;case le.PLAYREADY:return ee.PLAYREADY;case le.WIDEVINE:return ee.WIDEVINE;case le.CLEARKEY:return ee.CLEARKEY}}var ks={WIDEVINE:"edef8ba979d64acea3c827dcd51d21ed"};function Nr(a){if(a===ks.WIDEVINE)return ee.WIDEVINE}function ws(a){switch(a){case ee.FAIRPLAY:return le.FAIRPLAY;case ee.PLAYREADY:return le.PLAYREADY;case ee.WIDEVINE:return le.WIDEVINE;case ee.CLEARKEY:return le.CLEARKEY}}function Ct(a){const{drmSystems:e,widevineLicenseUrl:t}=a,s=e?[ee.FAIRPLAY,ee.WIDEVINE,ee.PLAYREADY,ee.CLEARKEY].filter(i=>!!e[i]):[];return!s[ee.WIDEVINE]&&t&&s.push(ee.WIDEVINE),s}const Ps=function(){return typeof self<"u"&&self.navigator&&self.navigator.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null}();function Mr(a,e,t,s){let i;switch(a){case ee.FAIRPLAY:i=["cenc","sinf"];break;case ee.WIDEVINE:case ee.PLAYREADY:i=["cenc"];break;case ee.CLEARKEY:i=["cenc","keyids"];break;default:throw new Error(`Unknown key-system: ${a}`)}return Br(i,e,t,s)}function Br(a,e,t,s){return[{initDataTypes:a,persistentState:s.persistentState||"not-allowed",distinctiveIdentifier:s.distinctiveIdentifier||"not-allowed",sessionTypes:s.sessionTypes||[s.sessionType||"temporary"],audioCapabilities:e.map(r=>({contentType:`audio/mp4; codecs="${r}"`,robustness:s.audioRobustness||"",encryptionScheme:s.audioEncryptionScheme||null})),videoCapabilities:t.map(r=>({contentType:`video/mp4; codecs="${r}"`,robustness:s.videoRobustness||"",encryptionScheme:s.videoEncryptionScheme||null}))}]}function Oe(a,e,t){return Uint8Array.prototype.slice?a.slice(e,t):new Uint8Array(Array.prototype.slice.call(a,e,t))}const _t=(a,e)=>e+10<=a.length&&a[e]===73&&a[e+1]===68&&a[e+2]===51&&a[e+3]<255&&a[e+4]<255&&a[e+6]<128&&a[e+7]<128&&a[e+8]<128&&a[e+9]<128,Fs=(a,e)=>e+10<=a.length&&a[e]===51&&a[e+1]===68&&a[e+2]===73&&a[e+3]<255&&a[e+4]<255&&a[e+6]<128&&a[e+7]<128&&a[e+8]<128&&a[e+9]<128,rt=(a,e)=>{const t=e;let s=0;for(;_t(a,e);){s+=10;const i=nt(a,e+6);s+=i,Fs(a,e+10)&&(s+=10),e+=s}if(s>0)return a.subarray(t,t+s)},nt=(a,e)=>{let t=0;return t=(a[e]&127)<<21,t|=(a[e+1]&127)<<14,t|=(a[e+2]&127)<<7,t|=a[e+3]&127,t},Ur=(a,e)=>_t(a,e)&&nt(a,e+6)+10<=a.length-e,$r=a=>{const e=Ns(a);for(let t=0;t<e.length;t++){const s=e[t];if(Os(s))return Yr(s)}},Os=a=>a&&a.key==="PRIV"&&a.info==="com.apple.streaming.transportStreamTimestamp",Gr=a=>{const e=String.fromCharCode(a[0],a[1],a[2],a[3]),t=nt(a,4),s=10;return{type:e,size:t,data:a.subarray(s,s+t)}},Ns=a=>{let e=0;const t=[];for(;_t(a,e);){const s=nt(a,e+6);e+=10;const i=e+s;for(;e+8<i;){const r=Gr(a.subarray(e)),n=Vr(r);n&&t.push(n),e+=r.size+10}Fs(a,e)&&(e+=10)}return t},Vr=a=>a.type==="PRIV"?Kr(a):a.type[0]==="W"?Wr(a):Hr(a),Kr=a=>{if(a.size<2)return;const e=Se(a.data,!0),t=new Uint8Array(a.data.subarray(e.length+1));return{key:a.type,info:e,data:t.buffer}},Hr=a=>{if(a.size<2)return;if(a.type==="TXXX"){let t=1;const s=Se(a.data.subarray(t),!0);t+=s.length+1;const i=Se(a.data.subarray(t));return{key:a.type,info:s,data:i}}const e=Se(a.data.subarray(1));return{key:a.type,data:e}},Wr=a=>{if(a.type==="WXXX"){if(a.size<2)return;let t=1;const s=Se(a.data.subarray(t),!0);t+=s.length+1;const i=Se(a.data.subarray(t));return{key:a.type,info:s,data:i}}const e=Se(a.data);return{key:a.type,data:e}},Yr=a=>{if(a.data.byteLength===8){const e=new Uint8Array(a.data),t=e[3]&1;let s=(e[4]<<23)+(e[5]<<15)+(e[6]<<7)+e[7];return s/=45,t&&(s+=4772185884e-2),Math.round(s)}},Se=(a,e=!1)=>{const t=qr();if(t){const c=t.decode(a);if(e){const d=c.indexOf("\0");return d!==-1?c.substring(0,d):c}return c.replace(/\0/g,"")}const s=a.length;let i,r,n,o="",l=0;for(;l<s;){if(i=a[l++],i===0&&e)return o;if(i===0||i===3)continue;switch(i>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:o+=String.fromCharCode(i);break;case 12:case 13:r=a[l++],o+=String.fromCharCode((i&31)<<6|r&63);break;case 14:r=a[l++],n=a[l++],o+=String.fromCharCode((i&15)<<12|(r&63)<<6|(n&63)<<0);break}}return o};let kt;function qr(){return!kt&&typeof self.TextDecoder<"u"&&(kt=new self.TextDecoder("utf-8")),kt}const ve={hexDump:function(a){let e="";for(let t=0;t<a.length;t++){let s=a[t].toString(16);s.length<2&&(s="0"+s),e+=s}return e}},at=Math.pow(2,32)-1,zr=[].push,Ms={video:1,audio:2,id3:3,text:4};function ie(a){return String.fromCharCode.apply(null,a)}function Bs(a,e){const t=a[e]<<8|a[e+1];return t<0?65536+t:t}function K(a,e){const t=Us(a,e);return t<0?4294967296+t:t}function Us(a,e){return a[e]<<24|a[e+1]<<16|a[e+2]<<8|a[e+3]}function wt(a,e,t){a[e]=t>>24,a[e+1]=t>>16&255,a[e+2]=t>>8&255,a[e+3]=t&255}function H(a,e){const t=[];if(!e.length)return t;const s=a.byteLength;for(let i=0;i<s;){const r=K(a,i),n=ie(a.subarray(i+4,i+8)),o=r>1?i+r:s;if(n===e[0])if(e.length===1)t.push(a.subarray(i+8,o));else{const l=H(a.subarray(i+8,o),e.slice(1));l.length&&zr.apply(t,l)}i=o}return t}function jr(a){const e=[],t=a[0];let s=8;const i=K(a,s);s+=4;const r=0,n=0;t===0?s+=8:s+=16,s+=2;let o=a.length+n;const l=Bs(a,s);s+=2;for(let c=0;c<l;c++){let d=s;const h=K(a,d);d+=4;const u=h&2147483647;if((h&2147483648)>>>31===1)return v.warn("SIDX has hierarchical references (not supported)"),null;const g=K(a,d);d+=4,e.push({referenceSize:u,subsegmentDuration:g,info:{duration:g/i,start:o,end:o+u-1}}),o+=u,d+=4,s=d}return{earliestPresentationTime:r,timescale:i,version:t,referencesCount:l,references:e}}function $s(a){const e=[],t=H(a,["moov","trak"]);for(let i=0;i<t.length;i++){const r=t[i],n=H(r,["tkhd"])[0];if(n){let o=n[0],l=o===0?12:20;const c=K(n,l),d=H(r,["mdia","mdhd"])[0];if(d){o=d[0],l=o===0?12:20;const h=K(d,l),u=H(r,["mdia","hdlr"])[0];if(u){const f=ie(u.subarray(8,12)),g={soun:z.AUDIO,vide:z.VIDEO}[f];if(g){const p=H(r,["mdia","minf","stbl","stsd"])[0];let T;p&&(T=ie(p.subarray(12,16))),e[c]={timescale:h,type:g},e[g]={timescale:h,id:c,codec:T}}}}}}return H(a,["moov","mvex","trex"]).forEach(i=>{const r=K(i,4),n=e[r];n&&(n.default={duration:K(i,12),flags:K(i,20)})}),e}function Xr(a,e){if(!a||!e)return a;const t=e.keyId;return t&&e.isCommonEncryption&&H(a,["moov","trak"]).forEach(i=>{const n=H(i,["mdia","minf","stbl","stsd"])[0].subarray(8);let o=H(n,["enca"]);const l=o.length>0;l||(o=H(n,["encv"])),o.forEach(c=>{const d=l?c.subarray(28):c.subarray(78);H(d,["sinf"]).forEach(u=>{const f=Gs(u);if(f){const g=f.subarray(8,24);g.some(p=>p!==0)||(v.log(`[eme] Patching keyId in 'enc${l?"a":"v"}>sinf>>tenc' box: ${ve.hexDump(g)} -> ${ve.hexDump(t)}`),f.set(t,8))}})})}),a}function Gs(a){const e=H(a,["schm"])[0];if(e){const t=ie(e.subarray(4,8));if(t==="cbcs"||t==="cenc")return H(a,["schi","tenc"])[0]}return v.error("[eme] missing 'schm' box"),null}function Qr(a,e){return H(e,["moof","traf"]).reduce((t,s)=>{const i=H(s,["tfdt"])[0],r=i[0],n=H(s,["tfhd"]).reduce((o,l)=>{const c=K(l,4),d=a[c];if(d){let h=K(i,4);if(r===1){if(h===at)return v.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"),o;h*=at+1,h+=K(i,8)}const u=d.timescale||9e4,f=h/u;if(isFinite(f)&&(o===null||f<o))return f}return o},null);return n!==null&&isFinite(n)&&(t===null||n<t)?n:t},null)}function Jr(a,e){let t=0,s=0,i=0;const r=H(a,["moof","traf"]);for(let n=0;n<r.length;n++){const o=r[n],l=H(o,["tfhd"])[0],c=K(l,4),d=e[c];if(!d)continue;const h=d.default,u=K(l,0)|(h==null?void 0:h.flags);let f=h==null?void 0:h.duration;u&8&&(u&2?f=K(l,12):f=K(l,8));const g=d.timescale||9e4,p=H(o,["trun"]);for(let T=0;T<p.length;T++){if(t=Zr(p[T]),!t&&f){const E=K(p[T],4);t=f*E}d.type===z.VIDEO?s+=t/g:d.type===z.AUDIO&&(i+=t/g)}}if(s===0&&i===0){let n=0;const o=H(a,["sidx"]);for(let l=0;l<o.length;l++){const c=jr(o[l]);c!=null&&c.references&&(n+=c.references.reduce((d,h)=>d+h.info.duration||0,0))}return n}return s||i}function Zr(a){const e=K(a,0);let t=8;e&1&&(t+=4),e&4&&(t+=4);let s=0;const i=K(a,4);for(let r=0;r<i;r++){if(e&256){const n=K(a,t);s+=n,t+=4}e&512&&(t+=4),e&1024&&(t+=4),e&2048&&(t+=4)}return s}function en(a,e,t){H(e,["moof","traf"]).forEach(s=>{H(s,["tfhd"]).forEach(i=>{const r=K(i,4),n=a[r];if(!n)return;const o=n.timescale||9e4;H(s,["tfdt"]).forEach(l=>{const c=l[0];let d=K(l,4);if(c===0)d-=t*o,d=Math.max(d,0),wt(l,4,d);else{d*=Math.pow(2,32),d+=K(l,8),d-=t*o,d=Math.max(d,0);const h=Math.floor(d/(at+1)),u=Math.floor(d%(at+1));wt(l,4,h),wt(l,8,u)}})})})}function tn(a){const e={valid:null,remainder:null},t=H(a,["moof"]);if(t){if(t.length<2)return e.remainder=a,e}else return e;const s=t[t.length-1];return e.valid=Oe(a,0,s.byteOffset-8),e.remainder=Oe(a,s.byteOffset-8),e}function Ne(a,e){const t=new Uint8Array(a.length+e.length);return t.set(a),t.set(e,a.length),t}function Vs(a,e){const t=[],s=e.samples,i=e.timescale,r=e.id;let n=!1;return H(s,["moof"]).map(l=>{const c=l.byteOffset-8;H(l,["traf"]).map(h=>{const u=H(h,["tfdt"]).map(f=>{const g=f[0];let p=K(f,4);return g===1&&(p*=Math.pow(2,32),p+=K(f,8)),p/i})[0];return u!==void 0&&(a=u),H(h,["tfhd"]).map(f=>{const g=K(f,4),p=K(f,0)&16777215,T=(p&1)!==0,E=(p&2)!==0,S=(p&8)!==0;let x=0;const R=(p&16)!==0;let L=0;const _=(p&32)!==0;let D=8;g===r&&(T&&(D+=8),E&&(D+=4),S&&(x=K(f,D),D+=4),R&&(L=K(f,D),D+=4),_&&(D+=4),e.type==="video"&&(n=sn(e.codec)),H(h,["trun"]).map(k=>{const P=k[0],b=K(k,0)&16777215,U=(b&1)!==0;let O=0;const Y=(b&4)!==0,re=(b&256)!==0;let j=0;const J=(b&512)!==0;let X=0;const N=(b&1024)!==0,$=(b&2048)!==0;let w=0;const F=K(k,4);let M=8;U&&(O=K(k,M),M+=4),Y&&(M+=4);let q=O+c;for(let ue=0;ue<F;ue++){if(re?(j=K(k,M),M+=4):j=x,J?(X=K(k,M),M+=4):X=L,N&&(M+=4),$&&(P===0?w=K(k,M):w=Us(k,M),M+=4),e.type===z.VIDEO){let xe=0;for(;xe<X;){const pe=K(s,q);if(q+=4,rn(n,s[q])){const Ue=s.subarray(q,q+pe);Ks(Ue,n?2:1,a+w/i,t)}q+=pe,xe+=pe+4}}a+=j/i}}))})})}),t}function sn(a){if(!a)return!1;const e=a.indexOf("."),t=e<0?a:a.substring(0,e);return t==="hvc1"||t==="hev1"||t==="dvh1"||t==="dvhe"}function rn(a,e){if(a){const t=e>>1&63;return t===39||t===40}else return(e&31)===6}function Ks(a,e,t,s){const i=Hs(a);let r=0;r+=e;let n=0,o=0,l=!1,c=0;for(;r<i.length;){n=0;do{if(r>=i.length)break;c=i[r++],n+=c}while(c===255);o=0;do{if(r>=i.length)break;c=i[r++],o+=c}while(c===255);const d=i.length-r;if(!l&&n===4&&r<i.length){if(l=!0,i[r++]===181){const u=Bs(i,r);if(r+=2,u===49){const f=K(i,r);if(r+=4,f===1195456820){const g=i[r++];if(g===3){const p=i[r++],T=31&p,E=64&p,S=E?2+T*3:0,x=new Uint8Array(S);if(E){x[0]=p;for(let R=1;R<S;R++)x[R]=i[r++]}s.push({type:g,payloadType:n,pts:t,bytes:x})}}}}}else if(n===5&&o<d){if(l=!0,o>16){const h=[];for(let g=0;g<16;g++){const p=i[r++].toString(16);h.push(p.length==1?"0"+p:p),(g===3||g===5||g===7||g===9)&&h.push("-")}const u=o-16,f=new Uint8Array(u);for(let g=0;g<u;g++)f[g]=i[r++];s.push({payloadType:n,pts:t,uuid:h.join(""),userData:Se(f),userDataBytes:f})}}else if(o<d)r+=o;else if(o>d)break}}function Hs(a){const e=a.byteLength,t=[];let s=1;for(;s<e-2;)a[s]===0&&a[s+1]===0&&a[s+2]===3?(t.push(s+2),s+=2):s++;if(t.length===0)return a;const i=e-t.length,r=new Uint8Array(i);let n=0;for(s=0;s<i;n++,s++)n===t[0]&&(n++,t.shift()),r[s]=a[n];return r}function nn(a){const e=a[0];let t="",s="",i=0,r=0,n=0,o=0,l=0,c=0;if(e===0){for(;ie(a.subarray(c,c+1))!=="\0";)t+=ie(a.subarray(c,c+1)),c+=1;for(t+=ie(a.subarray(c,c+1)),c+=1;ie(a.subarray(c,c+1))!=="\0";)s+=ie(a.subarray(c,c+1)),c+=1;s+=ie(a.subarray(c,c+1)),c+=1,i=K(a,12),r=K(a,16),o=K(a,20),l=K(a,24),c=28}else if(e===1){c+=4,i=K(a,c),c+=4;const h=K(a,c);c+=4;const u=K(a,c);for(c+=4,n=2**32*h+u,Number.isSafeInteger(n)||(n=Number.MAX_SAFE_INTEGER,v.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),o=K(a,c),c+=4,l=K(a,c),c+=4;ie(a.subarray(c,c+1))!=="\0";)t+=ie(a.subarray(c,c+1)),c+=1;for(t+=ie(a.subarray(c,c+1)),c+=1;ie(a.subarray(c,c+1))!=="\0";)s+=ie(a.subarray(c,c+1)),c+=1;s+=ie(a.subarray(c,c+1)),c+=1}const d=a.subarray(c,a.byteLength);return{schemeIdUri:t,value:s,timeScale:i,presentationTime:n,presentationTimeDelta:r,eventDuration:o,id:l,payload:d}}function an(a,...e){const t=e.length;let s=8,i=t;for(;i--;)s+=e[i].byteLength;const r=new Uint8Array(s);for(r[0]=s>>24&255,r[1]=s>>16&255,r[2]=s>>8&255,r[3]=s&255,r.set(a,4),i=0,s=8;i<t;i++)r.set(e[i],s),s+=e[i].byteLength;return r}function on(a,e,t){if(a.byteLength!==16)throw new RangeError("Invalid system id");let s,i;if(e){s=1,i=new Uint8Array(e.length*16);for(let o=0;o<e.length;o++){const l=e[o];if(l.byteLength!==16)throw new RangeError("Invalid key");i.set(l,o*16)}}else s=0,i=new Uint8Array;let r;s>0?(r=new Uint8Array(4),e.length>0&&new DataView(r.buffer).setUint32(0,e.length,!1)):r=new Uint8Array;const n=new Uint8Array(4);return t&&t.byteLength>0&&new DataView(n.buffer).setUint32(0,t.byteLength,!1),an([112,115,115,104],new Uint8Array([s,0,0,0]),a,r,i,n,t||new Uint8Array)}function ln(a){if(!(a instanceof ArrayBuffer)||a.byteLength<32)return null;const e={version:0,systemId:"",kids:null,data:null},t=new DataView(a),s=t.getUint32(0);if(a.byteLength!==s&&s>44||t.getUint32(4)!==1886614376||(e.version=t.getUint32(8)>>>24,e.version>1))return null;e.systemId=ve.hexDump(new Uint8Array(a,12,16));const r=t.getUint32(28);if(e.version===0){if(s-32<r)return null;e.data=new Uint8Array(a,32,r)}else if(e.version===1){e.kids=[];for(let n=0;n<r;n++)e.kids.push(new Uint8Array(a,32+n*16,16))}return e}let ot={};class qe{static clearKeyUriToKeyIdMap(){ot={}}constructor(e,t,s,i=[1],r=null){this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=e,this.uri=t,this.keyFormat=s,this.keyFormatVersions=i,this.iv=r,this.encrypted=e?e!=="NONE":!1,this.isCommonEncryption=this.encrypted&&e!=="AES-128"}isSupported(){if(this.method){if(this.method==="AES-128"||this.method==="NONE")return!0;if(this.keyFormat==="identity")return this.method==="SAMPLE-AES";switch(this.keyFormat){case le.FAIRPLAY:case le.WIDEVINE:case le.PLAYREADY:case le.CLEARKEY:return["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)!==-1}}return!1}getDecryptData(e){if(!this.encrypted||!this.uri)return null;if(this.method==="AES-128"&&this.uri&&!this.iv){typeof e!="number"&&(this.method==="AES-128"&&!this.iv&&v.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),e=0);const s=cn(e);return new qe(this.method,this.uri,"identity",this.keyFormatVersions,s)}const t=Or(this.uri);if(t)switch(this.keyFormat){case le.WIDEVINE:this.pssh=t,t.length>=22&&(this.keyId=t.subarray(t.length-22,t.length-6));break;case le.PLAYREADY:{const s=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=on(s,null,t);const i=new Uint16Array(t.buffer,t.byteOffset,t.byteLength/2),r=String.fromCharCode.apply(null,Array.from(i)),n=r.substring(r.indexOf("<"),r.length),c=new DOMParser().parseFromString(n,"text/xml").getElementsByTagName("KID")[0];if(c){const d=c.childNodes[0]?c.childNodes[0].nodeValue:c.getAttribute("VALUE");if(d){const h=Dt(d).subarray(0,16);Fr(h),this.keyId=h}}break}default:{let s=t.subarray(0,16);if(s.length!==16){const i=new Uint8Array(16);i.set(s,16-s.length),s=i}this.keyId=s;break}}if(!this.keyId||this.keyId.byteLength!==16){let s=ot[this.uri];if(!s){const i=Object.keys(ot).length%Number.MAX_SAFE_INTEGER;s=new Uint8Array(16),new DataView(s.buffer,12,4).setUint32(0,i),ot[this.uri]=s}this.keyId=s}return this}}function cn(a){const e=new Uint8Array(16);for(let t=12;t<16;t++)e[t]=a>>8*(15-t)&255;return e}const Ws=/\{\$([a-zA-Z0-9-_]+)\}/g;function Ys(a){return Ws.test(a)}function ce(a,e,t){if(a.variableList!==null||a.hasVariableRefs)for(let s=t.length;s--;){const i=t[s],r=e[i];r&&(e[i]=Pt(a,r))}}function Pt(a,e){if(a.variableList!==null||a.hasVariableRefs){const t=a.variableList;return e.replace(Ws,s=>{const i=s.substring(2,s.length-1),r=t==null?void 0:t[i];return r===void 0?(a.playlistParsingError||(a.playlistParsingError=new Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${i}"`)),s):r})}return e}function qs(a,e,t){let s=a.variableList;s||(a.variableList=s={});let i,r;if("QUERYPARAM"in e){i=e.QUERYPARAM;try{const n=new self.URL(t).searchParams;if(n.has(i))r=n.get(i);else throw new Error(`"${i}" does not match any query parameter in URI: "${t}"`)}catch(n){a.playlistParsingError||(a.playlistParsingError=new Error(`EXT-X-DEFINE QUERYPARAM: ${n.message}`))}}else i=e.NAME,r=e.VALUE;i in s?a.playlistParsingError||(a.playlistParsingError=new Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${i}"`)):s[i]=r||""}function dn(a,e,t){const s=e.IMPORT;if(t&&s in t){let i=a.variableList;i||(a.variableList=i={}),i[s]=t[s]}else a.playlistParsingError||(a.playlistParsingError=new Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${s}"`))}function lt(){if(!(typeof self>"u"))return self.MediaSource||self.WebKitMediaSource}const hn={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,av01:!0,drac:!0,dva1:!0,dvav:!0,dvh1:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0},text:{stpp:!0,wvtt:!0}},zs=lt();function un(a,e){const t=hn[e];return!!t&&t[a.slice(0,4)]===!0}function Ft(a,e){var t;return(t=zs==null?void 0:zs.isTypeSupported(`${e||"video"}/mp4;codecs="${a}"`))!=null?t:!1}const js=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,Xs=/#EXT-X-MEDIA:(.*)/g,fn=/^#EXT(?:INF|-X-TARGETDURATION):/m,Qs=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[\S ]*)/.source,/#EXT-X-BYTERANGE:*(.+)/.source,/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/#.*/.source].join("|"),"g"),gn=new RegExp([/#(EXTM3U)/.source,/#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|"));class ye{static findGroup(e,t){for(let s=0;s<e.length;s++){const i=e[s];if(i.id===t)return i}}static convertAVC1ToAVCOTI(e){const t=e.split(".");if(t.length>2){let s=t.shift()+".";return s+=parseInt(t.shift()).toString(16),s+=("000"+parseInt(t.shift()).toString(16)).slice(-4),s}return e}static resolve(e,t){return It.buildAbsoluteURL(t,e,{alwaysNormalize:!0})}static isMediaPlaylist(e){return fn.test(e)}static parseMasterPlaylist(e,t){const s=Ys(e),i={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:s},r=[];js.lastIndex=0;let n;for(;(n=js.exec(e))!=null;)if(n[1]){var o;const c=new Z(n[1]);ce(i,c,["CODECS","SUPPLEMENTAL-CODECS","ALLOWED-CPC","PATHWAY-ID","STABLE-VARIANT-ID","AUDIO","VIDEO","SUBTITLES","CLOSED-CAPTIONS","NAME"]);const d=Pt(i,n[2]),h={attrs:c,bitrate:c.decimalInteger("AVERAGE-BANDWIDTH")||c.decimalInteger("BANDWIDTH"),name:c.NAME,url:ye.resolve(d,t)},u=c.decimalResolution("RESOLUTION");u&&(h.width=u.width,h.height=u.height),mn((c.CODECS||"").split(/[ ,]+/).filter(f=>f),h),h.videoCodec&&h.videoCodec.indexOf("avc1")!==-1&&(h.videoCodec=ye.convertAVC1ToAVCOTI(h.videoCodec)),(o=h.unknownCodecs)!=null&&o.length||r.push(h),i.levels.push(h)}else if(n[3]){const c=n[3],d=n[4];switch(c){case"SESSION-DATA":{const h=new Z(d);ce(i,h,["DATA-ID","LANGUAGE","VALUE","URI"]);const u=h["DATA-ID"];u&&(i.sessionData===null&&(i.sessionData={}),i.sessionData[u]=h);break}case"SESSION-KEY":{const h=Js(d,t,i);h.encrypted&&h.isSupported()?(i.sessionKeys===null&&(i.sessionKeys=[]),i.sessionKeys.push(h)):v.warn(`[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "${d}"`);break}case"DEFINE":{{const h=new Z(d);ce(i,h,["NAME","VALUE","QUERYPARAM"]),qs(i,h,t)}break}case"CONTENT-STEERING":{const h=new Z(d);ce(i,h,["SERVER-URI","PATHWAY-ID"]),i.contentSteering={uri:ye.resolve(h["SERVER-URI"],t),pathwayId:h["PATHWAY-ID"]||"."};break}case"START":{i.startTimeOffset=Zs(d);break}}}const l=r.length>0&&r.length<i.levels.length;return i.levels=l?r:i.levels,i.levels.length===0&&(i.playlistParsingError=new Error("no levels found in manifest")),i}static parseMasterPlaylistMedia(e,t,s){let i;const r={},n=s.levels,o={AUDIO:n.map(c=>({id:c.attrs.AUDIO,audioCodec:c.audioCodec})),SUBTITLES:n.map(c=>({id:c.attrs.SUBTITLES,textCodec:c.textCodec})),"CLOSED-CAPTIONS":[]};let l=0;for(Xs.lastIndex=0;(i=Xs.exec(e))!==null;){const c=new Z(i[1]),d=c.TYPE;if(d){const h=o[d],u=r[d]||[];r[d]=u,ce(s,c,["URI","GROUP-ID","LANGUAGE","ASSOC-LANGUAGE","STABLE-RENDITION-ID","NAME","INSTREAM-ID","CHARACTERISTICS","CHANNELS"]);const f={attrs:c,bitrate:0,id:l++,groupId:c["GROUP-ID"]||"",instreamId:c["INSTREAM-ID"],name:c.NAME||c.LANGUAGE||"",type:d,default:c.bool("DEFAULT"),autoselect:c.bool("AUTOSELECT"),forced:c.bool("FORCED"),lang:c.LANGUAGE,url:c.URI?ye.resolve(c.URI,t):""};if(h!=null&&h.length){const g=ye.findGroup(h,f.groupId)||h[0];ei(f,g,"audioCodec"),ei(f,g,"textCodec")}u.push(f)}}return r}static parseLevelPlaylist(e,t,s,i,r,n){const o=new wr(t),l=o.fragments;let c=null,d=0,h=0,u=0,f=0,g=null,p=new bt(i,t),T,E,S,x=-1,R=!1;for(Qs.lastIndex=0,o.m3u8=e,o.hasVariableRefs=Ys(e);(T=Qs.exec(e))!==null;){R&&(R=!1,p=new bt(i,t),p.start=u,p.sn=d,p.cc=f,p.level=s,c&&(p.initSegment=c,p.rawProgramDateTime=c.rawProgramDateTime,c.rawProgramDateTime=null));const k=T[1];if(k){p.duration=parseFloat(k);const P=(" "+T[2]).slice(1);p.title=P||null,p.tagList.push(P?["INF",k,P]:["INF",k])}else if(T[3]){if(B(p.duration)){p.start=u,S&&ii(p,S,o),p.sn=d,p.level=s,p.cc=f,p.urlId=r,l.push(p);const P=(" "+T[3]).slice(1);p.relurl=Pt(o,P),ti(p,g),g=p,u+=p.duration,d++,h=0,R=!0}}else if(T[4]){const P=(" "+T[4]).slice(1);g?p.setByteRange(P,g):p.setByteRange(P)}else if(T[5])p.rawProgramDateTime=(" "+T[5]).slice(1),p.tagList.push(["PROGRAM-DATE-TIME",p.rawProgramDateTime]),x===-1&&(x=l.length);else{if(T=T[0].match(gn),!T){v.warn("No matches on slow regex match for level playlist!");continue}for(E=1;E<T.length&&!(typeof T[E]<"u");E++);const P=(" "+T[E]).slice(1),b=(" "+T[E+1]).slice(1),U=T[E+2]?(" "+T[E+2]).slice(1):"";switch(P){case"PLAYLIST-TYPE":o.type=b.toUpperCase();break;case"MEDIA-SEQUENCE":d=o.startSN=parseInt(b);break;case"SKIP":{const O=new Z(b);ce(o,O,["RECENTLY-REMOVED-DATERANGES"]);const Y=O.decimalInteger("SKIPPED-SEGMENTS");if(B(Y)){o.skippedSegments=Y;for(let j=Y;j--;)l.unshift(null);d+=Y}const re=O.enumeratedString("RECENTLY-REMOVED-DATERANGES");re&&(o.recentlyRemovedDateranges=re.split(" "));break}case"TARGETDURATION":o.targetduration=Math.max(parseInt(b),1);break;case"VERSION":o.version=parseInt(b);break;case"EXTM3U":break;case"ENDLIST":o.live=!1;break;case"#":(b||U)&&p.tagList.push(U?[b,U]:[b]);break;case"DISCONTINUITY":f++,p.tagList.push(["DIS"]);break;case"GAP":p.gap=!0,p.tagList.push([P]);break;case"BITRATE":p.tagList.push([P,b]);break;case"DATERANGE":{const O=new Z(b);ce(o,O,["ID","CLASS","START-DATE","END-DATE","SCTE35-CMD","SCTE35-OUT","SCTE35-IN"]),ce(o,O,O.clientAttrs);const Y=new bs(O,o.dateRanges[O.ID]);Y.isValid||o.skippedSegments?o.dateRanges[Y.id]=Y:v.warn(`Ignoring invalid DATERANGE tag: "${b}"`),p.tagList.push(["EXT-X-DATERANGE",b]);break}case"DEFINE":{{const O=new Z(b);ce(o,O,["NAME","VALUE","IMPORT","QUERYPARAM"]),"IMPORT"in O?dn(o,O,n):qs(o,O,t)}break}case"DISCONTINUITY-SEQUENCE":f=parseInt(b);break;case"KEY":{const O=Js(b,t,o);if(O.isSupported()){if(O.method==="NONE"){S=void 0;break}S||(S={}),S[O.keyFormat]&&(S=te({},S)),S[O.keyFormat]=O}else v.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${b}"`);break}case"START":o.startTimeOffset=Zs(b);break;case"MAP":{const O=new Z(b);if(ce(o,O,["BYTERANGE","URI"]),p.duration){const Y=new bt(i,t);si(Y,O,s,S),c=Y,p.initSegment=c,c.rawProgramDateTime&&!p.rawProgramDateTime&&(p.rawProgramDateTime=c.rawProgramDateTime)}else si(p,O,s,S),c=p,R=!0;break}case"SERVER-CONTROL":{const O=new Z(b);o.canBlockReload=O.bool("CAN-BLOCK-RELOAD"),o.canSkipUntil=O.optionalFloat("CAN-SKIP-UNTIL",0),o.canSkipDateRanges=o.canSkipUntil>0&&O.bool("CAN-SKIP-DATERANGES"),o.partHoldBack=O.optionalFloat("PART-HOLD-BACK",0),o.holdBack=O.optionalFloat("HOLD-BACK",0);break}case"PART-INF":{const O=new Z(b);o.partTarget=O.decimalFloatingPoint("PART-TARGET");break}case"PART":{let O=o.partList;O||(O=o.partList=[]);const Y=h>0?O[O.length-1]:void 0,re=h++,j=new Z(b);ce(o,j,["BYTERANGE","URI"]);const J=new _r(j,p,t,re,Y);O.push(J),p.duration+=J.duration;break}case"PRELOAD-HINT":{const O=new Z(b);ce(o,O,["URI"]),o.preloadHint=O;break}case"RENDITION-REPORT":{const O=new Z(b);ce(o,O,["URI"]),o.renditionReports=o.renditionReports||[],o.renditionReports.push(O);break}default:v.warn(`line parsed but not handled: ${T}`);break}}}g&&!g.relurl?(l.pop(),u-=g.duration,o.partList&&(o.fragmentHint=g)):o.partList&&(ti(p,g),p.cc=f,o.fragmentHint=p,S&&ii(p,S,o));const L=l.length,_=l[0],D=l[L-1];if(u+=o.skippedSegments*o.targetduration,u>0&&L&&D){o.averagetargetduration=u/L;const k=D.sn;o.endSN=k!=="initSegment"?k:0,o.live||(D.endList=!0),_&&(o.startCC=_.cc)}else o.endSN=0,o.startCC=0;return o.fragmentHint&&(u+=o.fragmentHint.duration),o.totalduration=u,o.endCC=f,x>0&&pn(l,x),o}}function Js(a,e,t){var s,i;const r=new Z(a);ce(t,r,["KEYFORMAT","KEYFORMATVERSIONS","URI","IV","URI"]);const n=(s=r.METHOD)!=null?s:"",o=r.URI,l=r.hexadecimalInteger("IV"),c=r.KEYFORMATVERSIONS,d=(i=r.KEYFORMAT)!=null?i:"identity";o&&r.IV&&!l&&v.error(`Invalid IV: ${r.IV}`);const h=o?ye.resolve(o,e):"",u=(c||"1").split("/").map(Number).filter(Number.isFinite);return new qe(n,h,d,u,l)}function Zs(a){const t=new Z(a).decimalFloatingPoint("TIME-OFFSET");return B(t)?t:null}function mn(a,e){["video","audio","text"].forEach(t=>{const s=a.filter(i=>un(i,t));if(s.length){const i=s.filter(r=>r.lastIndexOf("avc1",0)===0||r.lastIndexOf("mp4a",0)===0);e[`${t}Codec`]=i.length>0?i[0]:s[0],a=a.filter(r=>s.indexOf(r)===-1)}}),e.unknownCodecs=a}function ei(a,e,t){const s=e[t];s&&(a[t]=s)}function pn(a,e){let t=a[e];for(let s=e;s--;){const i=a[s];if(!i)return;i.programDateTime=t.programDateTime-i.duration*1e3,t=i}}function ti(a,e){a.rawProgramDateTime?a.programDateTime=Date.parse(a.rawProgramDateTime):e!=null&&e.programDateTime&&(a.programDateTime=e.endProgramDateTime),B(a.programDateTime)||(a.programDateTime=null,a.rawProgramDateTime=null)}function si(a,e,t,s){a.relurl=e.URI,e.BYTERANGE&&a.setByteRange(e.BYTERANGE),a.level=t,a.sn="initSegment",s&&(a.levelkeys=s),a.initSegment=null}function ii(a,e,t){a.levelkeys=e;const{encryptedFragments:s}=t;(!s.length||s[s.length-1].levelkeys!==e)&&Object.keys(e).some(i=>e[i].isCommonEncryption)&&s.push(a)}var W={MANIFEST:"manifest",LEVEL:"level",AUDIO_TRACK:"audioTrack",SUBTITLE_TRACK:"subtitleTrack"},V={MAIN:"main",AUDIO:"audio",SUBTITLE:"subtitle"};function ri(a){const{type:e}=a;switch(e){case W.AUDIO_TRACK:return V.AUDIO;case W.SUBTITLE_TRACK:return V.SUBTITLE;default:return V.MAIN}}function Ot(a,e){let t=a.url;return(t===void 0||t.indexOf("data:")===0)&&(t=e.url),t}class yn{constructor(e){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.hls=e,this.registerListeners()}startLoad(e){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){const{hls:e}=this;e.on(m.MANIFEST_LOADING,this.onManifestLoading,this),e.on(m.LEVEL_LOADING,this.onLevelLoading,this),e.on(m.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.on(m.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}unregisterListeners(){const{hls:e}=this;e.off(m.MANIFEST_LOADING,this.onManifestLoading,this),e.off(m.LEVEL_LOADING,this.onLevelLoading,this),e.off(m.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.off(m.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}createInternalLoader(e){const t=this.hls.config,s=t.pLoader,i=t.loader,r=s||i,n=new r(t);return this.loaders[e.type]=n,n}getInternalLoader(e){return this.loaders[e.type]}resetInternalLoader(e){this.loaders[e]&&delete this.loaders[e]}destroyInternalLoaders(){for(const e in this.loaders){const t=this.loaders[e];t&&t.destroy(),this.resetInternalLoader(e)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(e,t){const{url:s}=t;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:W.MANIFEST,url:s,deliveryDirectives:null})}onLevelLoading(e,t){const{id:s,level:i,url:r,deliveryDirectives:n}=t;this.load({id:s,level:i,responseType:"text",type:W.LEVEL,url:r,deliveryDirectives:n})}onAudioTrackLoading(e,t){const{id:s,groupId:i,url:r,deliveryDirectives:n}=t;this.load({id:s,groupId:i,level:null,responseType:"text",type:W.AUDIO_TRACK,url:r,deliveryDirectives:n})}onSubtitleTrackLoading(e,t){const{id:s,groupId:i,url:r,deliveryDirectives:n}=t;this.load({id:s,groupId:i,level:null,responseType:"text",type:W.SUBTITLE_TRACK,url:r,deliveryDirectives:n})}load(e){var t;const s=this.hls.config;let i=this.getInternalLoader(e);if(i){const c=i.context;if(c&&c.url===e.url){v.trace("[playlist-loader]: playlist request ongoing");return}v.log(`[playlist-loader]: aborting previous loader for type: ${e.type}`),i.abort()}let r;if(e.type===W.MANIFEST?r=s.manifestLoadPolicy.default:r=te({},s.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),i=this.createInternalLoader(e),(t=e.deliveryDirectives)!=null&&t.part){let c;if(e.type===W.LEVEL&&e.level!==null?c=this.hls.levels[e.level].details:e.type===W.AUDIO_TRACK&&e.id!==null?c=this.hls.audioTracks[e.id].details:e.type===W.SUBTITLE_TRACK&&e.id!==null&&(c=this.hls.subtitleTracks[e.id].details),c){const d=c.partTarget,h=c.targetduration;if(d&&h){const u=Math.max(d*3,h*.8)*1e3;r=te({},r,{maxTimeToFirstByteMs:Math.min(u,r.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(u,r.maxTimeToFirstByteMs)})}}}const n=r.errorRetry||r.timeoutRetry||{},o={loadPolicy:r,timeout:r.maxLoadTimeMs,maxRetry:n.maxNumRetry||0,retryDelay:n.retryDelayMs||0,maxRetryDelay:n.maxRetryDelayMs||0},l={onSuccess:(c,d,h,u)=>{const f=this.getInternalLoader(h);this.resetInternalLoader(h.type);const g=c.data;if(g.indexOf("#EXTM3U")!==0){this.handleManifestParsingError(c,h,new Error("no EXTM3U delimiter"),u||null,d);return}d.parsing.start=performance.now(),ye.isMediaPlaylist(g)?this.handleTrackOrLevelPlaylist(c,d,h,u||null,f):this.handleMasterPlaylist(c,d,h,u)},onError:(c,d,h,u)=>{this.handleNetworkError(d,h,!1,c,u)},onTimeout:(c,d,h)=>{this.handleNetworkError(d,h,!0,void 0,c)}};i.load(e,o,l)}handleMasterPlaylist(e,t,s,i){const r=this.hls,n=e.data,o=Ot(e,s),l=ye.parseMasterPlaylist(n,o);if(l.playlistParsingError){this.handleManifestParsingError(e,s,l.playlistParsingError,i,t);return}const{contentSteering:c,levels:d,sessionData:h,sessionKeys:u,startTimeOffset:f,variableList:g}=l;this.variableList=g;const{AUDIO:p=[],SUBTITLES:T,"CLOSED-CAPTIONS":E}=ye.parseMasterPlaylistMedia(n,o,l);p.length&&!p.some(x=>!x.url)&&d[0].audioCodec&&!d[0].attrs.AUDIO&&(v.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),p.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new Z({}),bitrate:0,url:""})),r.trigger(m.MANIFEST_LOADED,{levels:d,audioTracks:p,subtitles:T,captions:E,contentSteering:c,url:o,stats:t,networkDetails:i,sessionData:h,sessionKeys: