rx-player 4.4.0-dev.2025092200 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -2
- package/VERSION +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
- package/dist/commonjs/compat/is_codec_supported.d.ts +3 -1
- package/dist/commonjs/compat/is_codec_supported.d.ts.map +1 -1
- package/dist/commonjs/compat/is_codec_supported.js +7 -1
- package/dist/commonjs/main_thread/api/public_api.js +2 -2
- package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/media_source_content_initializer.js +8 -8
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +5 -5
- package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts +2 -1
- package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.js +2 -2
- package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
- package/dist/es2017/compat/is_codec_supported.d.ts +3 -1
- package/dist/es2017/compat/is_codec_supported.d.ts.map +1 -1
- package/dist/es2017/compat/is_codec_supported.js +7 -1
- package/dist/es2017/main_thread/api/public_api.js +2 -2
- package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/media_source_content_initializer.js +8 -8
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +5 -5
- package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts +2 -1
- package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.js +2 -2
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +16 -11
- package/dist/rx-player.min.js +3 -3
- package/package.json +1 -1
- package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
- package/src/compat/__tests__/is_codec_supported.test.ts +8 -8
- package/src/compat/is_codec_supported.ts +14 -1
- package/src/main_thread/api/public_api.ts +2 -2
- package/src/main_thread/init/media_source_content_initializer.ts +11 -7
- package/src/main_thread/init/multi_thread_content_initializer.ts +5 -4
- package/src/main_thread/init/utils/__tests__/update_manifest_codec_support.test.ts +18 -3
- package/src/main_thread/init/utils/update_manifest_codec_support.ts +3 -1
package/dist/rx-player.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";(()=>{var Bp=Object.defineProperty,Fp=Object.defineProperties;var Kp=Object.getOwnPropertyDescriptors;var Ql=Object.getOwnPropertySymbols;var Vp=Object.prototype.hasOwnProperty,zp=Object.prototype.propertyIsEnumerable;var $l=(n,e,t)=>e in n?Bp(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ae=(n,e)=>{for(var t in e||(e={}))Vp.call(e,t)&&$l(n,t,e[t]);if(Ql)for(var t of Ql(e))zp.call(e,t)&&$l(n,t,e[t]);return n},ue=(n,e)=>Fp(n,Kp(e));var y={PRODUCTION:0,DEV:1,CURRENT_ENV:0};var S={CURRENT_LEVEL:"NONE"};function E(n){return n==null}var se=class{constructor(){this._listeners={}}addEventListener(e,t,r){let i=this._listeners[e];Array.isArray(i)?i.push(t):this._listeners[e]=[t],r!==void 0&&r.register(()=>{this.removeEventListener(e,t)})}removeEventListener(e,t){if(E(e)){this._listeners={};return}let r=this._listeners[e];if(!Array.isArray(r))return;if(E(t)){delete this._listeners[e];return}let i=r.indexOf(t);i!==-1&&r.splice(i,1),r.length===0&&delete this._listeners[e]}trigger(e,t){let r=this._listeners[e];Array.isArray(r)&&r.slice().forEach(i=>{try{i(t)}catch(o){if(y.CURRENT_ENV===y.DEV)throw o instanceof Error?o:new Error("EventEmitter: listener error");console.error("RxPlayer: EventEmitter error",o instanceof Error?o:null)}})}};var Vn=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope;var qp=typeof window=="undefined"&&!Vn,$t=qp;var Eo;Vn?Eo=self:$t?Eo=global:Eo=window;var Z=Eo;var It=typeof queueMicrotask=="function"?queueMicrotask:function(e){Promise.resolve().then(e,()=>e())};function ts(){if(!$t&&!E(Z.WebKitSourceBuffer)&&Z.WebKitSourceBuffer.prototype.addEventListener===void 0){let e=Z.WebKitSourceBuffer.prototype;for(let t in se.prototype)Object.prototype.hasOwnProperty.call(se.prototype,t)&&(e[t]=se.prototype[t]);e._listeners=[],e._emitUpdate=function(t,r){It(()=>{this.trigger(t,r),this.updating=!1,this.trigger("updateend",new Event("updateend"))})},e.appendBuffer=function(t){var r,i;if(this.updating)throw new Error("updating");this.trigger("updatestart",new Event("updatestart")),this.updating=!0;try{this.append(t)}catch(o){(r=this._emitUpdate)==null||r.call(this,"error",o);return}(i=this._emitUpdate)==null||i.call(this,"update",new Event("update"))}}}function Ie(n,e,t){if(typeof Array.prototype.findIndex=="function")return n.findIndex(e,t);let r=n.length>>>0;for(let i=0;i<r;i++)if(e.call(t,n[i],i,n))return i;return-1}function te(){}var _o=class{constructor(e,t){this._value=e,this._listeners=[],this._isFinished=!1,this._onFinishCbs=[],t!==void 0&&(this._deregisterCancellation=t.register(()=>this.finish()))}getValue(){return this._value}setValue(e){if(this._isFinished){y.CURRENT_ENV===y.DEV&&console.error("Finished shared references cannot be updated");return}if(this._value=e,this._listeners.length===0)return;let t=this._listeners.slice();for(let r of t)try{r.hasBeenCleared||r.trigger(e,r.complete)}catch(i){}}setValueIfChanged(e){e!==this._value&&this.setValue(e)}onUpdate(e,t){let r=()=>{if(t.clearSignal!==void 0&&t.clearSignal.deregister(r),i.hasBeenCleared)return;i.hasBeenCleared=!0;let o=this._listeners.indexOf(i);o>=0&&this._listeners.splice(o,1)},i={trigger:e,complete:r,hasBeenCleared:!1};if(this._listeners.push(i),t.emitCurrentValue===!0&&e(this._value,r),this._isFinished||i.hasBeenCleared){r();return}t.clearSignal.register(r)}waitUntilDefined(e,t){this.onUpdate((r,i)=>{r!==void 0&&(i(),e(this._value))},{clearSignal:t.clearSignal,emitCurrentValue:!0})}_onFinished(e,t){if(t.isCancelled())return te;let r=()=>{let a=Ie(this._onFinishCbs,s=>s.trigger===i);a>=0&&(this._onFinishCbs[a].hasBeenCleared=!0,this._onFinishCbs.splice(a,1))},i=()=>{r(),e()},o=t.register(r);return this._onFinishCbs.push({trigger:i,hasBeenCleared:!1}),o}finish(){this._deregisterCancellation!==void 0&&this._deregisterCancellation(),this._isFinished=!0;let e=this._listeners.slice();for(let t of e)try{t.hasBeenCleared||(t.complete(),t.hasBeenCleared=!0)}catch(r){}if(this._listeners.length=0,this._onFinishCbs.length>0){let t=this._onFinishCbs.slice();for(let r of t)try{r.hasBeenCleared||(r.trigger(),r.hasBeenCleared=!0)}catch(i){}this._onFinishCbs.length=0}}};function gn(n,e,t){let r=new _o(e(n.getValue()),t);return n.onUpdate(function(o){r.setValue(e(o))},{clearSignal:t}),n._onFinished(()=>{r.finish()},t),r}var j=_o;var Xl=new j(0);var Gp=typeof performance!="undefined"?()=>performance.now()+Xl.getValue():()=>Date.now()+Xl.getValue(),z=Gp;var jp="NONE",br=class extends se{constructor(){super(),this.error=te,this.warn=te,this.info=te,this.debug=te,this._levels={NONE:0,ERROR:1,WARNING:2,INFO:3,DEBUG:4},this._currentFormat="standard",this._currentLevel=jp}setLevel(e,t,r){let i,o=this._levels[e];typeof o=="number"?(i=o,this._currentLevel=e):(i=0,this._currentLevel="NONE");let a;if(t==="standard"||t==="full"?a=t:a="standard",a==="full"&&a!==this._currentFormat){let d=z();console.log(String(d.toFixed(2)),"[Init]",`Local-Date: ${Date.now()}`)}this._currentFormat=a;let s=this._currentFormat==="full"?(d,u)=>(c,...l)=>{let f=z();return u(String(f.toFixed(2)),`[${d}]`,c+":",...l.map(p=>typeof p=="object"&&p!==null&&!(p instanceof Error)?Zl(p):p))}:(d,u)=>(c,...l)=>u(c+":",...l.map(f=>typeof f=="object"&&f!==null&&!(f instanceof Error)?Zl(f):f));if(r===void 0)this.error=i>=this._levels.ERROR?s("error",console.error.bind(console)):te,this.warn=i>=this._levels.WARNING?s("warn",console.warn.bind(console)):te,this.info=i>=this._levels.INFO?s("info",console.info.bind(console)):te,this.debug=i>=this._levels.DEBUG?s("log",console.log.bind(console)):te;else{let d=u=>i>=this._levels[u]?(c,...l)=>r(u,c,l):te;this.error=d("ERROR"),this.warn=d("WARNING"),this.info=d("INFO"),this.debug=d("DEBUG")}this.trigger("onLogLevelChange",{level:this._currentLevel,format:this._currentFormat})}getLevel(){return this._currentLevel}getFormat(){return this._currentFormat}hasLevel(e){return this._levels[e]>=this._levels[this._currentLevel]}};function Zl(n){let e="";for(let t in n)if(Object.prototype.hasOwnProperty.call(n,t)){e.length>0&&(e+=" ");let r=n[t];r instanceof Error?e+=`${t}="${JSON.stringify(r==null?void 0:r.toString())}"`:e+=`${t}=${typeof r=="string"?`${JSON.stringify(r)}`:String(r)}`}return e}var Yp=new br,m=Yp;var Be=Z,Jl,ec,tc,nc,rc,wt=(rc=(nc=(tc=(ec=(Jl=Be==null?void 0:Be.MediaSource)!=null?Jl:Be==null?void 0:Be.MozMediaSource)!=null?ec:Be==null?void 0:Be.WebKitMediaSource)!=null?tc:Be==null?void 0:Be.MSMediaSource)!=null?nc:Be==null?void 0:Be.ManagedMediaSource)!=null?rc:void 0,ic=wt!==void 0&&wt===(Be==null?void 0:Be.ManagedMediaSource);var Qp=200,vo=new Map;function ns(n){if(E(wt))return Vn&&m.error("mse","Cannot request codec support in a worker without MSE."),!1;if(typeof wt.isTypeSupported=="function"){let e=vo.get(n);if(e!==void 0)return e;{let t=wt.isTypeSupported(n);return vo.size>=Qp&&vo.clear(),vo.set(n,t),t}}return!0}var oc={DEFAULT_REQUEST_TIMEOUT:3e4,DEFAULT_CONNECTION_TIMEOUT:15e3,DEFAULT_TEXT_TRACK_MODE:"native",DEFAULT_ENABLE_FAST_SWITCHING:!0,DELTA_POSITION_AFTER_RELOAD:{bitrateSwitch:-.1,trackSwitch:{audio:0,video:0,other:0}},DEFAULT_CODEC_SWITCHING_BEHAVIOR:"continue",DEFAULT_AUDIO_TRACKS_NOT_PLAYABLE_BEHAVIOR:"error",DEFAULT_VIDEO_TRACKS_NOT_PLAYABLE_BEHAVIOR:"error",DEFAULT_AUTO_PLAY:!1,DEFAULT_WANTED_BUFFER_AHEAD:30,DEFAULT_MAX_BUFFER_AHEAD:1/0,DEFAULT_MAX_BUFFER_BEHIND:1/0,DEFAULT_MAX_VIDEO_BUFFER_SIZE:1/0,MAXIMUM_MAX_BUFFER_AHEAD:{text:18e3},MINIMUM_MAX_BUFFER_AHEAD:{text:120},MAXIMUM_MAX_BUFFER_BEHIND:{text:18e3},DEFAULT_BASE_BANDWIDTH:0,INACTIVITY_DELAY:6e4,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:!1,DEFAULT_VIDEO_RESOLUTION_LIMIT:"none",DEFAULT_LIVE_GAP:{DEFAULT:10,LOW_LATENCY:3.5},BUFFER_DISCONTINUITY_THRESHOLD:.2,BITRATE_REBUFFERING_RATIO:1.5,DEFAULT_MAX_MANIFEST_REQUEST_RETRY:4,DEFAULT_CDN_DOWNGRADE_TIME:60,DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:4,INITIAL_BACKOFF_DELAY_BASE:{REGULAR:200,LOW_LATENCY:50},MAX_BACKOFF_DELAY_BASE:{REGULAR:3e3,LOW_LATENCY:1e3},SAMPLING_INTERVAL_MEDIASOURCE:1e3,SAMPLING_INTERVAL_LOW_LATENCY:500,SAMPLING_INTERVAL_NO_MEDIASOURCE:500,ABR_ENTER_BUFFER_BASED_ALGO:10,ABR_EXIT_BUFFER_BASED_ALGO:5,ABR_MINIMUM_TOTAL_BYTES:15e4,ABR_MINIMUM_CHUNK_SIZE:16e3,ABR_STARVATION_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_REGULAR_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_STARVATION_GAP:{DEFAULT:5,LOW_LATENCY:5},OUT_OF_STARVATION_GAP:{DEFAULT:7,LOW_LATENCY:7},ABR_STARVATION_DURATION_DELTA:.1,ABR_FAST_EMA:2,ABR_SLOW_EMA:10,RESUME_GAP_AFTER_SEEKING:{DEFAULT:1.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_NOT_ENOUGH_DATA:{DEFAULT:.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_BUFFERING:{DEFAULT:5,LOW_LATENCY:.5},REBUFFERING_GAP:{DEFAULT:.5,LOW_LATENCY:.2},MINIMUM_BUFFER_AMOUNT_BEFORE_FREEZING:2,UNFREEZING_SEEK_DELAY:6e3,FREEZING_STALLED_DELAY:600,UNFREEZING_DELTA_POSITION:.001,FREEZING_FLUSH_FAILURE_DELAY:{MAXIMUM:2e4,MINIMUM:4e3,POSITION_DELTA:1},SEGMENT_SYNCHRONIZATION_DELAY:1500,MISSING_DATA_TRIGGER_SYNC_DELAY:.1,MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:.15,MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:.4,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:.3,MINIMUM_SEGMENT_SIZE:.001,APPEND_WINDOW_SECURITIES:{START:.2,END:.1},MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:50,TEXT_TRACK_SIZE_CHECKS_INTERVAL:250,BUFFER_PADDING:{audio:1,video:3,other:1},SEGMENT_PRIORITIES_STEPS:[2,4,8,12,18,25],MAX_HIGH_PRIORITY_LEVEL:1,MIN_CANCELABLE_PRIORITY:3,EME_DEFAULT_VIDEO_CODECS:['video/mp4;codecs="avc1.4d401e"','video/mp4;codecs="avc1.42e01e"','video/mp4;codecs="hvc1.1.6.L93.B0"','video/webm;codecs="vp8"'],EME_DEFAULT_AUDIO_CODECS:['audio/mp4;codecs="mp4a.40.2"','audio/webm;codecs="opus"','audio/mp4;codecs="ec-3"'],EME_DEFAULT_WIDEVINE_ROBUSTNESSES:["HW_SECURE_ALL","HW_SECURE_DECODE","HW_SECURE_CRYPTO","SW_SECURE_DECODE","SW_SECURE_CRYPTO"],EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:["3000","2000"],EME_KEY_SYSTEMS:{clearkey:["webkit-org.w3.clearkey","org.w3.clearkey"],widevine:["com.widevine.alpha"],playready:["com.microsoft.playready.recommendation","com.microsoft.playready","com.chromecast.playready","com.youtube.playready"],fairplay:["com.apple.fps.1_0"]},MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:10,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:200,MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY:300,OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:3e3,FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:3e3,DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0:3,EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:15,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:1e3,EME_WAITING_DELAY_LOADED_SESSION_EMPTY_KEYSTATUSES:100,FORCED_ENDED_THRESHOLD:8e-4,ADAP_REP_SWITCH_BUFFER_PADDINGS:{video:{before:5,after:5},audio:{before:2,after:2.5},text:{before:0,after:0}},SOURCE_BUFFER_FLUSHING_INTERVAL:500,CONTENT_REPLACEMENT_PADDING:1.2,CACHE_LOAD_DURATION_THRESHOLDS:{video:50,audio:10},STREAM_EVENT_EMITTER_POLL_INTERVAL:250,DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR:.001,BUFFERED_HISTORY_RETENTION_TIME:6e4,BUFFERED_HISTORY_MAXIMUM_ENTRIES:200,MIN_BUFFER_AHEAD:5,UPTO_CURRENT_POSITION_CLEANUP:5,DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_VIDEO_TRACK_SWITCHING_MODE:"reload",DEFAULT_AUDIO_TRACK_SWITCHING_MODE:"seamless",DEFAULT_MAX_THUMBNAIL_REQUESTS_RETRY_ON_ERROR:1,DEFAULT_THUMBNAIL_REQUEST_TIMEOUT:1e4,DEFAULT_THUMBNAIL_CONNECTION_TIMEOUT:7e3,FORCE_CANNOT_RELY_ON_REQUEST_MEDIA_KEY_SYSTEM_ACCESS:!1,FORCE_CANNOT_REUSE_MEDIA_KEYS:!1,FORCE_HAS_ISSUES_WITH_HIGH_MEDIA_SOURCE_DURATION:!1,FORCE_IS_SEEKING_APPROXIMATE:!1,FORCE_MEDIA_ELEMENT_FAIL_ON_UNDECIPHERABLE_DATA:!1,FORCE_SHOULD_AWAIT_SET_MEDIA_KEYS:!1,FORCE_SHOULD_FAVOUR_CUSTOM_SAFARI_EME:!1,FORCE_SHOULD_RELOAD_MEDIA_SOURCE_ON_DECIPHERABILITY_UPDATE:!1,FORCE_SHOULD_RENEW_MEDIA_KEY_SYSTEM_ACCESS:!1,FORCE_SHOULD_UNSET_MEDIA_KEYS:!1,FORCE_SHOULD_VALIDATE_METADATA:!1,FORCE_DONT_WAIT_FOR_DATA_BEFORE_LOADED:!1,FORCE_WAIT_FOR_HAVE_ENOUGH_DATA:!1},ac=oc;function $p(n,...e){if(n==null)throw new TypeError("Cannot convert undefined or null to object");let t=Object(n);for(let r of e)for(let i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i]);return t}var Y=typeof Object.assign=="function"?Object.assign:$p;function rs(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function Sr(n,...e){if(e.length===0)return n;let t=e.shift();if(rs(n)&&rs(t))for(let r in t)if(rs(t[r])){let i=n[r];i===void 0&&(i={},n[r]=i),Sr(i,t[r])}else Y(n,{[r]:t[r]});return Sr(n,...e)}var is=class extends se{constructor(){super(...arguments);this.updated=!1;this._config=ac}update(t){let r=Sr(this._config,t);this._config=r,this.updated=!0,this.trigger("update",t)}getCurrent(){return this._config}},Xp=new is,O=Xp;var Xt={EdgeChromium:0,Firefox:1,Ie11:2,OtherIeOrEdgePreEdgeChromium:3,SafariDesktop:4,SafariMobile:5,Other:6},at={A1KStb40xx:100,Panasonic:101,PhilipsNetTv:102,PlayStation4:103,PlayStation5:104,Tizen:105,WebOs2021:106,WebOs2022:107,WebOsOther:108,Xbox:109,Other:110},Fe={DEVICES:at,BROWSERS:Xt,browser:Xt.Other,device:at.Other,isSamsungBrowser:!1};Zp();function Zp(){var n,e,t;$t||(typeof Z.MSInputMethodContext!="undefined"&&typeof document.documentMode!="undefined"?Fe.browser=Xt.Ie11:navigator.appName==="Microsoft Internet Explorer"||navigator.appName==="Netscape"&&/(Trident|Edge)\//.test(navigator.userAgent)?Fe.browser=Xt.OtherIeOrEdgePreEdgeChromium:navigator.userAgent.toLowerCase().indexOf("edg/")!==-1?Fe.browser=Xt.EdgeChromium:navigator.userAgent.toLowerCase().indexOf("firefox")!==-1?Fe.browser=Xt.Firefox:typeof navigator.platform=="string"&&/iPad|iPhone|iPod/.test(navigator.platform)?Fe.browser=Xt.SafariMobile:(Object.prototype.toString.call(Z.HTMLElement).indexOf("Constructor")>=0||((e=(n=Z.safari)==null?void 0:n.pushNotification)==null?void 0:e.toString())==="[object SafariRemoteNotification]"||/Safari\/(\d+)/.test(navigator.userAgent)&&/Version\/(\d+)/.test(navigator.userAgent)&&((t=navigator.vendor)==null?void 0:t.indexOf("Apple"))!==-1&&!/Chrome\/(\d+)/.test(navigator.userAgent)&&!/Chromium\/(\d+)/.test(navigator.userAgent))&&(Fe.browser=Xt.SafariDesktop),/SamsungBrowser/.test(navigator.userAgent)&&(Fe.isSamsungBrowser=!0),navigator.userAgent.indexOf("PlayStation 4")!==-1?Fe.device=at.PlayStation4:navigator.userAgent.indexOf("PlayStation 5")!==-1?Fe.device=at.PlayStation5:/Tizen/.test(navigator.userAgent)?Fe.device=at.Tizen:/[Ww]eb[O0]S/.test(navigator.userAgent)?/[Ww]eb[O0]S.TV-2022/.test(navigator.userAgent)||/[Cc]hr[o0]me\/87/.test(navigator.userAgent)?Fe.device=at.WebOs2022:/[Ww]eb[O0]S.TV-2021/.test(navigator.userAgent)||/[Cc]hr[o0]me\/79/.test(navigator.userAgent)?Fe.device=at.WebOs2021:Fe.device=at.WebOsOther:navigator.userAgent.indexOf("NETTV")!==-1&&navigator.userAgent.indexOf("Philips")!==-1?Fe.device=at.PhilipsNetTv:/[Pp]anasonic/.test(navigator.userAgent)?Fe.device=at.Panasonic:navigator.userAgent.indexOf("Xbox")!==-1?Fe.device=at.Xbox:navigator.userAgent.indexOf("Model/a1-kstb40xx")!==-1&&(Fe.device=at.A1KStb40xx))}var V=Fe;function os(){let{FORCE_MEDIA_ELEMENT_FAIL_ON_UNDECIPHERABLE_DATA:n}=O.getCurrent();return n||V.device===V.DEVICES.PlayStation5}function as(n){let{FORCE_SHOULD_RELOAD_MEDIA_SOURCE_ON_DECIPHERABILITY_UPDATE:e}=O.getCurrent();return e||n===void 0||n.indexOf("widevine")<0}var Jp=.016666666666666666;function sc(n,e){return Math.abs(n-e)<Jp}function uc(n,e){let t=Math.min(n.start,e.start),r=Math.max(n.end,e.end);return{start:t,end:r}}function eg(n){for(let e=0;e<n.length;e++){let t=n[e];t.start===t.end&&n.splice(e--,1)}return n}function tg(n){for(let e=1;e<n.length;e++){let t=n[e-1],r=n[e];if(cc(t,r)){let i=uc(t,r);n.splice(--e,2,i)}}return n}function ss(n,e){return n.end<=e.start}function dc({start:n,end:e},t){return n<=t&&t<e}function lc(n,e){return dc(n,e.start)||n.start<e.end&&e.end<n.end||dc(e,n.start)}function cc(n,e){return sc(e.start,n.end)||sc(e.end,n.start)}function Le(n){let e=[];for(let t=0;t<n.length;t++)e.push({start:n.start(t),end:n.end(t)});return e}function ds(n,e){for(let t=n.length-1;t>=0;t--){let r=n.start(t);if(e>=r){let i=n.end(t);if(e<i)return{start:r,end:i}}}return null}function ng(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t].start;if(e>=r){let i=n[t].end;if(e<i)return n[t]}}return null}function fc(n,e){let t=n.length;for(let r=0;r<t;r++){let i=n.start(r);if(e<i)return i-e}return 1/0}function mc(n,e){let t=null,r=[];for(let i=0;i<n.length;i++){let o=n[i].start,a=n[i].end;e<o||e>=a?r.push({start:o,end:a}):t={start:o,end:a}}return{outerRanges:r,innerRange:t}}function pc(n,e){let t=ds(n,e);return t!==null?t.end-e:1/0}function Ro(n,e){let t=ng(n,e);return t!==null?t.end-e:1/0}function vt(n,e){if(e.start===e.end)return n;let t=e,r=0;for(;r<n.length;r++){let i=n[r],o=lc(t,i),a=cc(t,i);if(o||a)t=uc(t,i),n.splice(r--,1);else if(r===0){if(ss(t,n[0]))break}else if(ss(n[r-1],t)&&ss(t,i))break}return n.splice(r,0,t),tg(eg(n))}function gc(n,e){let t=[];for(let r=0;r<e.length;r++)lc(n,e[r])&&t.push(e[r]);return t}function hc(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=gc(i,e);if(o.length>0)for(let a=0;a<o.length;a++){let s=o[a];t.push({start:Math.max(i.start,s.start),end:Math.min(i.end,s.end)})}}return t}function ko(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=[],a=gc(i,e);if(a.length>0)for(let s=0;s<a.length;s++){let d=a[s];o.push({start:Math.max(i.start,d.start),end:Math.min(i.end,d.end)})}if(o.length===0)t.push(i);else{let s=i.start;for(let d=0;d<o.length;d++)o[d].start>s&&t.push({start:s,end:o[d].start}),s=o[d].end;s<i.end&&t.push({start:s,end:i.end})}}return t}var Po=class n extends Error{constructor(e){super(e),Object.setPrototypeOf(this,n.prototype),this.name="AssertionError"}};function ne(n,e){if(y.DEV===y.CURRENT_ENV&&!n)throw new Po(e===void 0?"invalid assertion":e)}function yc(n,e,t="object"){ne(!E(n),`${t} should be an object`);for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&ne(typeof n[r]===e[r],`${t} should have property ${r} as a ${e[r]}`)}function ze(n){throw new Po("Unreachable path taken")}var U=class{constructor(){let[e,t]=rg();this._isUsed=!1,this._trigger=e,this.signal=new Tr(t)}isUsed(){return this._isUsed}linkToSignal(e){let t=e.register(()=>{this.cancel()});return this.signal.register(t),t}cancel(e){if(this._isUsed)return;this._isUsed=!0;let t=e!=null?e:new we;this._trigger(t)}static isCancellationError(e){return e instanceof we}},Tr=class{constructor(e){this._isCancelled=!1,this.cancellationError=null,this._listeners=[],e(t=>{for(this.cancellationError=t,this._isCancelled=!0;this._listeners.length>0;)try{let r=this._listeners.pop();r==null||r(t)}catch(r){m.error("utils","Error while calling clean up listener",r instanceof Error?r:"Unknown Error")}})}isCancelled(){return this._isCancelled}register(e){return this._isCancelled?(ne(this.cancellationError!==null),e(this.cancellationError),te):(this._listeners.push(e),()=>this.deregister(e))}deregister(e){for(let t=this._listeners.length-1;t>=0;t--)this._listeners[t]===e&&this._listeners.splice(t,1)}},we=class n extends Error{constructor(){super("This task was cancelled."),Object.setPrototypeOf(this,n.prototype),this.name="CancellationError"}};function rg(){let n=te;return[function(t){n(t)},function(t){n=t}]}function us(n){let e=n.map(a=>Math.log(a/n[0])),t=e.map(a=>a-e[0]+1),r=(t[t.length-1]-1)/(n.length*2+10),i=1/r;return n.map((a,s)=>o(s));function o(a){if(a===0)return 0;let s=Math.min(Math.max(1,a),n.length-1);return n[s]===n[s-1]?o(a-1):i*(r+(n[s]*t[s-1]-n[s-1]*t[s])/(n[s]-n[s-1]))+4}}var st=class{constructor(e){this._alpha=Math.exp(Math.log(.5)/e),this._lastEstimate=0,this._totalWeight=0}addSample(e,t){let r=Math.pow(this._alpha,e),i=t*(1-r)+r*this._lastEstimate;isNaN(i)||(this._lastEstimate=i,this._totalWeight+=e)}getEstimate(){let e=1-Math.pow(this._alpha,this._totalWeight);return this._lastEstimate/e}};var Er=class{constructor(){this._currentRepresentationData=null,this._lastRepresentationWithGoodScore=null}addSample(e,t,r){let i=r/t,o=this._currentRepresentationData,a;o!==null&&o.representation.id===e.id?(a=o.ewma,o.ewma.addSample(t,i),o.loadedDuration+=r,o.loadedSegments++):(a=new st(5),a.addSample(t,i),this._currentRepresentationData={representation:e,ewma:a,loadedDuration:r,loadedSegments:0}),a.getEstimate()>1&&this._lastRepresentationWithGoodScore!==e&&(m.debug("ABR","New last stable representation",{bitrate:e.bitrate}),this._lastRepresentationWithGoodScore=e)}getEstimate(e){if(this._currentRepresentationData===null||this._currentRepresentationData.representation.id!==e.id)return;let{ewma:t,loadedSegments:r,loadedDuration:i}=this._currentRepresentationData,o=t.getEstimate(),a=r>=5&&i>=10?1:0;return{score:o,confidenceLevel:a}}getLastStableRepresentation(){return this._lastRepresentationWithGoodScore}};var Ic=6e3,ig=15e3,og=3e3,ag=1e3,sg=9e3,_r=class{constructor(e){this._levelsMap=us(e).map(t=>t+4),this._bitrates=e,this._lastUnsuitableQualityTimestamp=void 0,this._blockRaiseDelay=Ic,m.debug("ABR","Steps for buffer based chooser.",this._levelsMap.map((t,r)=>`bufferLevel: ${t}, bitrate: ${e[r]}`).join(" ,"))}onAddedSegment(e){let t=this._levelsMap,r=this._bitrates,{bufferGap:i,currentBitrate:o,currentScore:a,speed:s}=e;if(E(o)){this._currentEstimate=r[0];return}let d=-1;for(let h=0;h<r.length;h++){let I=r[h];if(I===o)d=h;else if(I>o)break}if(d<0||r.length!==t.length){m.info("ABR","Current Bitrate not found in the calculated levels"),this._currentEstimate=r[0];return}let u;a!==void 0&&(u=s===0?a.score:a.score/s);let c=isFinite(i)?i:0,l=z();if(c<t[d]||u!==void 0&&u<1&&(a==null?void 0:a.confidenceLevel)===1){if((this._lastUnsuitableQualityTimestamp===void 0?-1:l-this._lastUnsuitableQualityTimestamp)<this._blockRaiseDelay+sg){let g=this._blockRaiseDelay+og;m.debug("ABR","Incrementing blocking raise in BufferBasedChooser due to unstable quality",{prevDelay:this._blockRaiseDelay,newDelay:g}),this._blockRaiseDelay=Math.min(g,ig)}else{let g=this._blockRaiseDelay-ag;m.debug("ABR","Lowering quality in BufferBasedChooser",{prevDelay:this._blockRaiseDelay,newDelay:g}),this._blockRaiseDelay=Math.max(Ic,g)}this._lastUnsuitableQualityTimestamp=l;let I=Ie(r,g=>g===o);for(let g=I-1;g>=0;g--)if(c>=t[g]){this._currentEstimate=r[g];return}this._currentEstimate=r[0];return}if(this._lastUnsuitableQualityTimestamp!==void 0&&l-this._lastUnsuitableQualityTimestamp<this._blockRaiseDelay||u===void 0||u<1.15||(a==null?void 0:a.confidenceLevel)!==1){this._currentEstimate=o;return}let f=t[d],p=(()=>{for(let h=d+1;h<t.length;h++)if(t[h]>f)return h})();if(p!==void 0){let h=t[p];if(i>=h){m.debug("ABR","Raising quality in BufferBasedChooser",{bitrate:r[p]}),this._currentEstimate=r[p];return}}this._currentEstimate=o}getLastEstimate(){return this._currentEstimate}};function Q(n,e,t){if(typeof Array.prototype.find=="function")return n.find(e,t);let r=n.length>>>0;for(let i=0;i<r;i++){let o=n[i];if(e.call(t,o,i,n))return o}}function dg(n,e){let t=-1;for(let a=0;a<n.length;a++){let{segment:s}=n[a].content;if(s.duration<=0)continue;let d=s.time+s.duration;if(!s.complete&&a===n.length-1&&e-s.time>-1.2){t=a;break}if(d>e&&e-s.time>-1.2){t=a;break}}if(t<0)return[];let r=n[t],i=r.content.segment.time,o=[r];for(let a=t+1;a<n.length&&n[a].content.segment.time===i;a++)o.push(n[a]);return o}function Co(n){if(n.progress.length<5)return;let e=new st(2),{progress:t}=n;for(let r=1;r<t.length;r++){let i=t[r].size-t[r-1].size,o=t[r].timestamp-t[r-1].timestamp,a=i*8/(o/1e3);e.addSample(o/1e3,a)}return e.getEstimate()}function bc(n,e){let t=(n.totalSize-n.size)*8;return Math.max(t/e,0)}function ug(n,e,t,r,i){if(r)return;let{bufferGap:o,speed:a,position:s}=e,d=isFinite(o)?o:0,u=s.getWanted()+d,c=dg(n,u);if(c.length!==1)return;let l=c[0],f=z(),p=l.content.segment.duration*1.5;if(p=Math.min(p,3e3),p=Math.max(p,12e3),f-l.requestTimestamp<p)return;let h=l.progress.length>0?l.progress[l.progress.length-1]:void 0,I=Co(l);if(h!==void 0&&I!==void 0){let R=bc(h,I);if((f-h.timestamp)/1e3<=R&&R-d/a>2500)return I}if(!l.content.segment.complete)return;let g=l.content.segment.duration,b=(f-l.requestTimestamp)/1e3,T=b<=(g*1.5+2)/a;if(E(t)||T)return;let v=g/b,_=t.bitrate*Math.min(.7,v);if(i===void 0||_<i)return _}function lg(n,e,t){if(t)return!0;let r=isFinite(n.bufferGap)?n.bufferGap:0,i=n.position.getWanted()+r,o=Q(e,({content:l})=>l.segment.duration>0&&l.segment.time+l.segment.duration>i);if(o===void 0)return!0;let a=z(),s=o.progress.length>0?o.progress[o.progress.length-1]:void 0,d=Co(o);if(s===void 0||d===void 0)return!0;let u=bc(s,d);return(a-s.timestamp)/1e3>u*1.2?!0:u-r/n.speed>-1.5}var vr=class{constructor(e,t){let{ABR_STARVATION_GAP:r,OUT_OF_STARVATION_GAP:i,ABR_STARVATION_FACTOR:o,ABR_REGULAR_FACTOR:a}=O.getCurrent();this._initialBitrate=e,this._inStarvationMode=!1,this._lowLatencyMode=t,t?this._config={starvationGap:r.LOW_LATENCY,outOfStarvationGap:i.LOW_LATENCY,starvationBitrateFactor:o.LOW_LATENCY,regularBitrateFactor:a.LOW_LATENCY}:this._config={starvationGap:r.DEFAULT,outOfStarvationGap:i.DEFAULT,starvationBitrateFactor:o.DEFAULT,regularBitrateFactor:a.DEFAULT}}getBandwidthEstimate(e,t,r,i,o){let a,s,d=this._config,{bufferGap:u,position:c,duration:l}=e,f=isFinite(u)?u:0,{ABR_STARVATION_DURATION_DELTA:p}=O.getCurrent();return isNaN(l)||f+c.getWanted()<l-p?!this._inStarvationMode&&f<=d.starvationGap?(m.info("ABR","enter starvation mode.",{buffergap:f,enterStarvation:d.starvationGap}),this._inStarvationMode=!0):this._inStarvationMode&&f>=d.outOfStarvationGap&&(m.info("ABR","exit starvation mode.",{bufferGap:f,outOfStarvation:d.starvationGap}),this._inStarvationMode=!1):this._inStarvationMode&&(m.info("ABR","exit starvation mode.",{bufferGap:f}),this._inStarvationMode=!1),this._inStarvationMode&&(s=ug(i,e,r,this._lowLatencyMode,o),s!==void 0&&(m.info("ABR","starvation mode emergency estimate:",{bandwidth:s}),t.reset(),a=E(r)?s:Math.min(s,r.bitrate))),E(a)&&(s=t.getEstimate(),s!==void 0?a=s*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):o!==void 0?a=o*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):a=this._initialBitrate),e.speed>1&&(a/=e.speed),{bandwidthEstimate:s,bitrateChosen:a}}isUrgent(e,t,r,i){return t===null?!0:e>=t.bitrate?!1:lg(i,r,this._lowLatencyMode)}};var Rr=class{constructor(){this.bandwidth=void 0,this.representation=null,this.algorithmType=3}update(e,t,r){this.representation=e,this.bandwidth=t,this.algorithmType=r}};var kr=class{constructor(e,t){this._scoreCalculator=e,this._lastAbrEstimate=t,this._consecutiveWrongGuesses=0,this._blockGuessesUntil=0,this._lastMaintanableBitrate=null}getGuess(e,t,r,i,o){let{bufferGap:a,speed:s}=t,d=this._lastAbrEstimate.representation;if(d===null)return null;if(i>d.bitrate)return this._lastAbrEstimate.algorithmType===2&&(this._lastAbrEstimate.representation!==null&&(this._lastMaintanableBitrate=this._lastAbrEstimate.representation.bitrate),this._consecutiveWrongGuesses=0),null;let u=this._scoreCalculator.getEstimate(r);if(this._lastAbrEstimate.algorithmType!==2){if(u===void 0)return null;if(this._canGuessHigher(a,s,u)){let l=Sc(e,r);if(l!==null)return l}return null}if(this._isLastGuessValidated(d,i,u)&&(m.debug("ABR","Guessed Representation validated",{chosenBitrate:d.bitrate,otherAbrAlgosBitrate:i,scoreData:u==null?void 0:u.score,scoreConfidence:u==null?void 0:u.confidenceLevel}),this._lastMaintanableBitrate=d.bitrate,this._consecutiveWrongGuesses=0),r.id!==d.id)return d;if(this._shouldStopGuess(r,u,a,o))return this._consecutiveWrongGuesses++,this._blockGuessesUntil=z()+Math.min(this._consecutiveWrongGuesses*15e3,12e4),cg(e,r);if(u===void 0)return r;if(this._canGuessHigher(a,s,u)){let l=Sc(e,r);if(l!==null)return l}return r}_canGuessHigher(e,t,{score:r,confidenceLevel:i}){return isFinite(e)&&e>=2.5&&z()>this._blockGuessesUntil&&i===1&&r/t>1.01}_shouldStopGuess(e,t,r,i){if(t!==void 0&&t.score<1.01)return!0;if((t===void 0||t.score<1.2)&&r<.6)return!0;let o=i.filter(s=>s.content.representation.id===e.id),a=z();for(let s of o){let d=a-s.requestTimestamp;if(s.content.segment.isInit){if(d>1e3)return!0}else{if(d>s.content.segment.duration*1e3+200)return!0;{let u=Co(s);if(u!==void 0&&u<e.bitrate*.8)return!0}}}return!1}_isLastGuessValidated(e,t,r){return r!==void 0&&r.confidenceLevel===1&&r.score>1.5?!0:t>=e.bitrate&&(this._lastMaintanableBitrate===null||this._lastMaintanableBitrate<e.bitrate)}};function Sc(n,e){let t=n.length,r=Ie(n,({id:i})=>i===e.id);if(r<0)return m.error("ABR","Current Representation not found."),null;for(;++r<t;)if(n[r].bitrate>e.bitrate)return n[r];return null}function cg(n,e){let t=Ie(n,({id:r})=>r===e.id);if(t<0)return m.error("ABR","Current Representation not found."),null;for(;--t>=0;)if(n[t].bitrate<e.bitrate)return n[t];return null}var Pr=class{constructor(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=O.getCurrent();this._fastEWMA=new st(e),this._slowEWMA=new st(t),this._bytesSampled=0}addSample(e,t){let{ABR_MINIMUM_CHUNK_SIZE:r}=O.getCurrent();if(t<r)return;let i=t*8e3/e,o=e/1e3;this._bytesSampled+=t,this._fastEWMA.addSample(o,i),this._slowEWMA.addSample(o,i)}getEstimate(){let{ABR_MINIMUM_TOTAL_BYTES:e}=O.getCurrent();if(!(this._bytesSampled<e))return Math.min(this._fastEWMA.getEstimate(),this._slowEWMA.getEstimate())}reset(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=O.getCurrent();this._fastEWMA=new st(e),this._slowEWMA=new st(t),this._bytesSampled=0}};function ls(n,e){if(n.length===0)return[];n.sort((o,a)=>o.bitrate-a.bitrate);let t=n[0].bitrate,r=Math.max(e,t),i=Ie(n,o=>o.bitrate>r);return i===-1?n:n.slice(0,i)}function cs(n,e){if(e.width===void 0||e.height===void 0)return n;let t=e.width*e.pixelRatio,r=e.height*e.pixelRatio,i=n.slice().sort((s,d)=>{var u,c;return((u=s.width)!=null?u:0)-((c=d.width)!=null?c:0)}),o=Q(i,s=>typeof s.width=="number"&&s.width>=t&&typeof s.height=="number"&&s.height>=r);if(o===void 0)return n;let a=typeof o.width=="number"?o.width:0;return n.filter(s=>typeof s.width=="number"?s.width<=a:!0)}function Cr(n){return Object.keys(n).map(e=>n[e])}var zn=typeof Object.values=="function"?Object.values:Cr;var Ar=class{constructor(){this._currentRequests={}}add(e){let{id:t,requestTimestamp:r,content:i}=e;this._currentRequests[t]={requestTimestamp:r,progress:[],content:i}}addProgress(e){let t=this._currentRequests[e.id];if(E(t)){if(y.CURRENT_ENV===y.DEV)throw new Error("ABR: progress for a request not added");m.warn("ABR","progress for a request not added",{requestId:e.id});return}t.progress.push(e)}remove(e){if(E(this._currentRequests[e])){if(y.CURRENT_ENV===y.DEV)throw new Error("ABR: can't remove unknown request");m.warn("ABR","can't remove unknown request",{requestId:e})}delete this._currentRequests[e]}getRequests(){return zn(this._currentRequests).filter(e=>!E(e)).sort((e,t)=>e.content.segment.time-t.content.segment.time)}};function Ao(n,e){let t=Ie(n,r=>r.bitrate>e);return t===-1?n[n.length-1]:t===0?n[0]:n[t-1]}var Tc=new j(void 0);Tc.finish();var Ec=new j(1/0);Ec.finish();function fs(n){let e={},{initialBitrates:t,throttlers:r,lowLatencyMode:i}=n;return function(s,d,u,c,l){var g,b,T;let{type:f}=s.adaptation,p=o(f),h=(g=t[f])!=null?g:0,I={limitResolution:(b=r.limitResolution[f])!=null?b:Tc,throttleBitrate:(T=r.throttleBitrate[f])!=null?T:Ec};return fg({bandwidthEstimator:p,context:s,currentRepresentation:d,filters:I,initialBitrate:h,playbackObserver:c,representations:u,lowLatencyMode:i},l)};function o(a){let s=e[a];if(E(s)){m.debug("ABR","Creating new BandwidthEstimator",{bufferType:a});let d=new Pr;return e[a]=d,d}return s}}function fg({bandwidthEstimator:n,context:e,currentRepresentation:t,filters:r,initialBitrate:i,lowLatencyMode:o,playbackObserver:a,representations:s},d){let u=new Er,c=new vr(i!=null?i:0,o),l=new Ar,f=te,p={metrics:T,requestBegin:v,requestProgress:_,requestEnd:R,addedSegment(k){f(k)}},h=new U;h.linkToSignal(d);let I=g(s.getValue(),h.signal);return s.onUpdate(b,{clearSignal:d}),{estimates:I,callbacks:p};function g(k,x){if(k.length<=1)return new j({bitrate:void 0,representation:k[0],urgent:!0,knownStableBitrate:void 0});let P=!1,M=k.sort((K,q)=>K.bitrate-q.bitrate),L=new _r(M.map(K=>K.bitrate)),F=new Rr,D=new kr(u,F),B=a.getReference().getValue(),A=new j(N());return a.listen(K=>{B=K,C()},{includeLastObservation:!1,clearSignal:x}),f=function(K){if(B===null)return;let{position:q,speed:X}=B,W=K.buffered,H=Ro(W,q.getWanted()),{representation:G}=K.content,ie=u.getEstimate(G),oe=G.bitrate,fe={bufferGap:H,currentBitrate:oe,currentScore:ie,speed:X};L.onAddedSegment(fe),C()},x.register(()=>{f=te}),r.throttleBitrate.onUpdate(C,{clearSignal:x}),r.limitResolution.onUpdate(C,{clearSignal:x}),A;function C(){A.setValue(N())}function N(){let{bufferGap:K,position:q,maximumPosition:X}=B,W=r.limitResolution.getValue(),H=r.throttleBitrate.getValue(),G=t.getValue(),ie=mg(M,W,H),oe=l.getRequests(),{bandwidthEstimate:fe,bitrateChosen:Re}=c.getBandwidthEstimate(B,n,G,oe,F.bandwidth),ge=u.getLastStableRepresentation(),he=ge===null?void 0:ge.bitrate/(B.speed>0?B.speed:1),{ABR_ENTER_BUFFER_BASED_ALGO:_t,ABR_EXIT_BUFFER_BASED_ALGO:ee}=O.getCurrent();P&&K<=ee?P=!1:!P&&isFinite(K)&&K>=_t&&(P=!0);let ye=Ao(ie,Re),ot=L.getLastEstimate(),pn=ye.bitrate,ht=null;P&&ot!==void 0&&ot>pn&&(ht=Ao(ie,ot),pn=ht.bitrate);let yt=null;return o&&G!==null&&e.manifest.isDynamic&&X-q.getWanted()<40&&(yt=D.getGuess(M,B,G,pn,oe)),yt!==null&&yt.bitrate>pn?(m.debug("ABR","new guess-based estimate",{bitrate:yt.bitrate,representation:yt.id}),F.update(yt,fe,2),{bitrate:fe,representation:yt,urgent:G===null||yt.bitrate<G.bitrate,knownStableBitrate:he}):ht!==null?(m.debug("ABR","new buffer-based estimate",{bitrate:ht.bitrate,representation:ht.id}),F.update(ht,fe,0),{bitrate:fe,representation:ht,urgent:c.isUrgent(ht.bitrate,G,oe,B),knownStableBitrate:he}):(m.debug("ABR","new bandwidth estimate",{bitrate:ye.bitrate,representation:ye.id}),F.update(ye,fe,1),{bitrate:fe,representation:ye,urgent:c.isUrgent(ye.bitrate,G,oe,B),knownStableBitrate:he})}}function b(){let k=s.getValue();h.cancel(),h=new U,h.linkToSignal(d),g(k,h.signal).onUpdate(function(M){I.setValue(M)},{clearSignal:h.signal,emitCurrentValue:!0})}function T(k){let{requestDuration:x,segmentDuration:P,size:M,content:L}=k;if(n.addSample(x,M),!L.segment.isInit){let{segment:F,representation:D}=L;if(P===void 0&&!F.complete)return;let B=P!=null?P:F.duration;u.addSample(D,x/1e3,B)}}function v(k){l.add(k)}function _(k){l.addProgress(k)}function R(k){l.remove(k.id)}}function mg(n,e,t){let r=n;return t!==void 0&&t<1/0&&(r=ls(r,t)),e!==void 0&&(r=cs(r,e)),r}var _c=fs;function Mo(){var t;if(typeof((t=Z.crypto)==null?void 0:t.randomUUID)=="function")return Z.crypto.randomUUID();let n=new Date().getTime(),e=z();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(r){let i=Math.random()*16;return n>0?(i=(n+i)%16|0,n=Math.floor(n/16)):(i=(e+i)%16|0,e=Math.floor(e/16)),(r==="x"?i:i&3|8).toString(16)})}function w(n){return typeof n=="string"&&n.length>0}function Ce(n,e,t){if(typeof String.prototype.startsWith=="function")return n.startsWith(e,t);let r=typeof t=="number"?Math.max(t,0):0;return n.substring(r,r+e.length)===e}var pg=/^(?:[a-z]+:)?\/\//i,gg=/^(?:([^:/?#]+):)?(?:\/\/([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/;function wr(n){let e=n.lastIndexOf("/");if(e<0)return n.length;if(pg.test(n)){let r=n.indexOf("/");if(r>=0&&e===r+1)return n.length}let t=n.indexOf("?");return t>=0&&t<e?wr(n.substring(0,t)):e+1}function vc(n,e){let t=xo(n),r=xo(e);if(t.scheme!==r.scheme||t.authority!==r.authority||t.path[0]!==void 0&&t.path[0]!=="/"&&r.path[0]==="/"||r.path[0]!==void 0&&r.path[0]!=="/"&&t.path[0]==="/")return null;let i=xr(t.path),o=xr(r.path),a;if(i===o)a="";else{let d=i.split("/");d.pop();let u=o.split("/");for(;d.length>0&&u.length>0&&d[0]===u[0];)d.shift(),u.shift();for(;d.length>0;)d.shift(),u.unshift("..");let c=u.join("/");(c.endsWith("../")||c.endsWith("./"))&&(c=c.slice(0,c.length-1)),a=c===""?".":c}let s=a;return a===""&&r.query===t.query||w(r.query)&&(s+="?",s+=r.query),w(r.fragment)&&(s+="#",s+=r.fragment),s}function hg(n,e){let t=xo(n),r=xo(e);if(w(r.scheme))return ms(r);let i={scheme:t.scheme,authority:t.authority,path:"",query:r.query,fragment:r.fragment};return w(r.authority)?(i.authority=r.authority,i.path=xr(r.path),ms(i)):(r.path===""?(i.path=t.path,w(r.query)||(i.query=t.query)):Ce(r.path,"/")?i.path=xr(r.path):i.path=xr(Ig(t,r.path)),ms(i))}var Mr=new Map,yg=200;function xo(n){var r,i,o,a,s;if(Mr.has(n))return Mr.get(n);let e=n.match(gg),t;return e===null?t={scheme:"",authority:"",path:"",query:"",fragment:""}:t={scheme:(r=e[1])!=null?r:"",authority:(i=e[2])!=null?i:"",path:(o=e[3])!=null?o:"",query:(a=e[4])!=null?a:"",fragment:(s=e[5])!=null?s:""},Mr.size>=yg&&Mr.clear(),Mr.set(n,t),t}function ms(n){let e="";return w(n.scheme)&&(e+=n.scheme+":"),w(n.authority)&&(e+="//"+n.authority),e+=n.path,w(n.query)&&(e+="?"+n.query),w(n.fragment)&&(e+="#"+n.fragment),e}function xr(n){let e=n.split(/(?=\/)/),t=[];for(let r=0;r<e.length;r++){let i=e[r];if(!(i===".."||i==="."||i==="")){if(i==="/.."){t.pop(),r===e.length-1&&t.push("/");continue}if(i==="/."){r===e.length-1&&t.push("/");continue}t.push(i)}}return t.join("")}function Ig(n,e){if(w(n.authority)&&n.path==="")return"/"+e;let t=n.path;return t.substring(0,t.lastIndexOf("/")+1)+e}function hn(...n){var r,i,o;let e=n.filter(a=>a!==""),t=e.length;if(t===0)return"";if(t===1)return(r=e[0])!=null?r:"";{let a=(i=e[0])!=null?i:"",s=(o=e[1])!=null?o:"",d=hg(a,s),u=e.slice(2);return hn(d,...u)}}var bg=4,Or=class{constructor(e){var t,r;this._sessionId=(t=e.sessionId)!=null?t:Mo(),this._contentId=(r=e.contentId)!=null?r:Mo(),this._typePreference=e.communicationType==="headers"?0:1,this._bufferStarvationToggle=!1,this._playbackObserver=null,this._lastThroughput={},this._canceller=null}startMonitoringPlayback(e){var t;(t=this._canceller)==null||t.cancel(),this._canceller=new U,this._playbackObserver=e,e.listen(r=>{r.rebuffering!==null&&(this._bufferStarvationToggle=!0)},{includeLastObservation:!0,clearSignal:this._canceller.signal})}stopMonitoringPlayback(){var e;(e=this._canceller)==null||e.cancel(),this._canceller=null,this._playbackObserver=null}updateThroughput(e,t){this._lastThroughput[e]=t}_getCommonCmcdData(e){var i;let t={};t.bs=this._bufferStarvationToggle,this._bufferStarvationToggle=!1,t.cid=this._contentId,t.mtp=e!==void 0?Math.floor(Math.round(e/1e3/100)*100):void 0,t.sid=this._sessionId;let r=(i=this._playbackObserver)==null?void 0:i.getReference().getValue();return t.pr=r===void 0||r.speed===1?void 0:r.speed,r!==void 0&&(t.su=r.rebuffering!==null),t}getCmcdDataForManifest(e){var r;let t=this._getCommonCmcdData((r=this._lastThroughput.video)!=null?r:this._lastThroughput.audio);switch(t.ot="m",e){case"dash":t.sf="d";break;case"smooth":t.sf="s";break;default:t.sf="o";break}return this._producePayload(t)}getCmcdDataForSegmentRequest(e){var a,s,d,u;let t=(a=this._playbackObserver)==null?void 0:a.getReference().getValue(),r=this._getCommonCmcdData(this._lastThroughput[e.adaptation.type]);switch(r.br=Math.round(e.representation.bitrate/1e3),r.d=Math.round(e.segment.duration*1e3),e.adaptation.type){case"video":r.ot="v";break;case"audio":r.ot="a";break;case"text":r.ot="c";break}if(e.segment.isInit&&(r.ot="i"),!E(e.nextSegment)&&e.segment.url!==null&&e.nextSegment.url!==null&&(!e.nextSegment.isInit||e.nextSegment.indexRange===void 0)){let c=e.segment.url,l=e.nextSegment.url,f=vc(c,l);f!==null&&(f!=="."&&(r.nor=encodeURIComponent(f)),e.nextSegment.range!==void 0&&(r.nrr=String(e.nextSegment.range[0])+"-",isFinite(e.nextSegment.range[1])&&(r.nrr+=String(e.nextSegment.range[1]))))}let i;if(t!==void 0&&(r.ot==="v"||r.ot==="a"||r.ot==="av")){let c=t.buffered[e.adaptation.type];if(!E(c)){let l=(u=(d=(s=this._playbackObserver)==null?void 0:s.getCurrentTime())!=null?d:t.position.getWanted())!=null?u:t.position.getPolled();for(let f of c)if(l>=f.start&&l<f.end){i=(f.end-l)*1e3,r.bl=Math.floor(Math.round(i/100)*100);break}}}let o=i===void 0||t===void 0?void 0:i/t.speed;if(r.dl=o===void 0?void 0:Math.floor(Math.round(o/100)*100),o!==void 0){let l=e.representation.bitrate*e.segment.duration/1e3/(o/1e3);r.rtp=Math.floor(Math.round(l*bg/100)*100)}switch(e.manifest.transport){case"dash":r.sf="d";break;case"smooth":r.sf="s";break;default:r.sf="o";break}return r.st=e.manifest.isDynamic?"l":"v",r.tb=e.adaptation.representations.reduce((c,l)=>l.isPlayable()!==!0?c:c===void 0?Math.round(l.bitrate/1e3):Math.max(c,Math.round(l.bitrate/1e3)),void 0),this._producePayload(r)}_producePayload(e){let t={object:"",request:"",session:"",status:""},r="",i=(u,c)=>{this._typePreference===0?t[c]+=u:r+=u},o=(u,c)=>{let l=e[u];if(l!==void 0){let f=`${u}=${String(l)},`;i(f,c)}},a=(u,c)=>{if(e[u]===!0){let l=`${u},`;i(l,c)}},s=(u,c)=>{let l=e[u];if(l!==void 0){let p=`prop=${`"${l.replace("\\","\\\\").replace('"','\\"')}"`},`;i(p,c)}},d=(u,c)=>{let l=e[u];if(l!==void 0){let f=`prop=${l},`;i(f,c)}};return o("bl","request"),o("br","object"),a("bs","status"),s("cid","session"),o("d","object"),o("dl","request"),o("mtp","request"),s("nor","request"),s("nrr","request"),d("ot","object"),o("pr","session"),o("rtp","status"),d("sf","session"),s("sid","session"),d("st","session"),a("su","request"),o("tb","object"),this._typePreference===0?(t.object[t.object.length-1]===","&&(t.object=t.object.substring(0,t.object.length-1)),t.request[t.request.length-1]===","&&(t.request=t.request.substring(0,t.request.length-1)),t.session[t.session.length-1]===","&&(t.session=t.session.substring(0,t.session.length-1)),t.status[t.status.length-1]===","&&(t.status=t.status.substring(0,t.status.length-1)),m.debug("CMCD","proposing headers payload"),{type:"headers",value:{"CMCD-Object":t.object,"CMCD-Request":t.request,"CMCD-Session":t.session,"CMCD-Status":t.status}}):(r[r.length-1]===","&&(r=r.substring(0,r.length-1)),r=encodeURIComponent(r),m.debug("CMCD","proposing query string payload",{queryString:r}),{type:"query",value:[["CMCD",r]]})}};var Rc=Or;var Wn=class extends se{constructor(e){super(),this._downgradedCdnList={metadata:[],timeouts:[]},e.register(()=>{for(let t of this._downgradedCdnList.timeouts)clearTimeout(t);this._downgradedCdnList={metadata:[],timeouts:[]}})}getCdnPreferenceForResource(e){return e.length<=1?e:this._innerGetCdnPreferenceForResource(e)}downgradeCdn(e){let t=kc(this._downgradedCdnList.metadata,e);t>=0&&this._removeIndexFromDowngradeList(t);let{DEFAULT_CDN_DOWNGRADE_TIME:r}=O.getCurrent(),i=r;this._downgradedCdnList.metadata.push(e);let o=setTimeout(()=>{let a=kc(this._downgradedCdnList.metadata,e);a>=0&&this._removeIndexFromDowngradeList(a),this.trigger("priorityChange",null)},i);this._downgradedCdnList.timeouts.push(o),this.trigger("priorityChange",null)}_innerGetCdnPreferenceForResource(e){let[t,r]=e.reduce((i,o)=>(this._downgradedCdnList.metadata.some(a=>a.id===o.id&&a.baseUrl===o.baseUrl)?i[1].push(o):i[0].push(o),i),[[],[]]);return t.concat(r)}_removeIndexFromDowngradeList(e){this._downgradedCdnList.metadata.splice(e,1);let t=this._downgradedCdnList.timeouts.splice(e,1);clearTimeout(t[0])}};function kc(n,e){return n.length===0?-1:e.id!==void 0?Ie(n,t=>t.id===e.id):Ie(n,t=>t.baseUrl===e.baseUrl)}var dt=class n extends Error{constructor(e,t,r){super(e),Object.setPrototypeOf(this,n.prototype),this.name="CustomLoaderError",this.canRetry=t,this.xhr=r}};var Ae=class n extends Error{constructor(e,t,r){let i;switch(r){case"TIMEOUT":i="The request timed out";break;case"ERROR_EVENT":i="An error prevented the request to be performed successfully";break;case"PARSE_ERROR":i="An error happened while formatting the response data";break;case"ERROR_HTTP_CODE":i="An HTTP status code indicating failure was received: "+String(t);break}super(i),Object.setPrototypeOf(this,n.prototype),this.name="RequestError",this.url=e,this.status=t,this.type=r}serialize(){return{url:this.url,status:this.status,type:this.type}}},He={TIMEOUT:"TIMEOUT",ERROR_EVENT:"ERROR_EVENT",ERROR_HTTP_CODE:"ERROR_HTTP_CODE",PARSE_ERROR:"PARSE_ERROR"};var ps=typeof Headers=="function"?Headers:null,wo=typeof AbortController=="function"?AbortController:null;function Oo(n){var f,p;let e;if(!E(n.headers))if(E(ps))e=n.headers;else{e=new ps;let h=Object.keys(n.headers);for(let I=0;I<h.length;I++){let g=h[I];e.append(g,n.headers[g])}}m.debug("utils","Fetch",{url:n.url});let t=null,r=!1,i=!1,o=z(),a=E(wo)?null:new wo;function s(){if(E(a)){m.warn("utils","Fetch: AbortController API not available.");return}a.abort()}let d;n.timeout!==void 0&&(d=setTimeout(()=>{r=!0,u!==void 0&&clearTimeout(u),s()},n.timeout));let u;n.connectionTimeout!==void 0&&(u=setTimeout(()=>{i=!0,d!==void 0&&clearTimeout(d),s()},n.connectionTimeout));let c=n.cancelSignal.register(function(I){t=I,s()}),l={method:"GET"};if(e!==void 0&&(l.headers=e),l.signal=E(a)?null:a.signal,m.hasLevel("DEBUG")){let h="fetch GET "+n.url;n.timeout!==void 0&&(h+=" to="+String(n.timeout/1e3)),n.connectionTimeout!==void 0&&(h+=" cto="+String(n.connectionTimeout/1e3)),((f=n.headers)==null?void 0:f.Range)!==void 0&&(h+=" Range="+((p=n.headers)==null?void 0:p.Range)),m.debug("utils",h)}return fetch(n.url,l).then(h=>{if(u!==void 0&&clearTimeout(u),h.status>=300)throw m.warn("utils","Fetch: Request HTTP Error",{status:h.status,responseUrl:h.url}),new Ae(h.url,h.status,He.ERROR_HTTP_CODE);if(E(h.body))throw new Ae(h.url,h.status,He.PARSE_ERROR);let I=h.headers.get("Content-Length"),g=!E(I)&&!isNaN(+I)?+I:void 0,b=h.body.getReader(),T=0;return v();async function v(){let _=await b.read();if(!_.done&&!E(_.value)){T+=_.value.byteLength;let R=z(),k={url:h.url,currentTime:R,duration:R-o,sendingTime:o,chunkSize:_.value.byteLength,chunk:_.value.buffer,size:T,totalSize:g};return n.onData(k),v()}else if(_.done){d!==void 0&&clearTimeout(d),c();let R=z();return{requestDuration:R-o,receivedTime:R,sendingTime:o,size:T,status:h.status,url:h.url}}return v()}}).catch(h=>{throw t!==null?t:(c(),r?(m.warn("utils","Fetch: Request timed out.",{url:n.url,timeout:n.timeout}),new Ae(n.url,0,He.TIMEOUT)):i?(m.warn("utils","Fetch: Request connection timed out.",{url:n.url,connectionTimeout:n.connectionTimeout}),new Ae(n.url,0,He.TIMEOUT)):h instanceof Ae?h:(m.warn("utils","Fetch: Request Error",{error:h instanceof Error?h.toString():"Unkwown Error"}),new Ae(n.url,0,He.ERROR_EVENT)))})}function Dr(){let n=/\[\s*native\s+code\s*\]/;return typeof Z.fetch=="function"&&!E(wo)&&n.test(wo.toString())&&!E(ps)}var Sg="json";function Lr(n){let e={url:n.url,headers:n.headers,responseType:E(n.responseType)?Sg:n.responseType,timeout:n.timeout,connectionTimeout:n.connectionTimeout};return new Promise((t,r)=>{let{onProgress:i,cancelSignal:o}=n,{url:a,headers:s,responseType:d,timeout:u,connectionTimeout:c}=e,l=new XMLHttpRequest;l.open("GET",a,!0);let f;u!==void 0&&(l.timeout=u,f=setTimeout(()=>{g(),r(new Ae(a,l.status,He.TIMEOUT))},u+3e3));let p;if(c!==void 0&&(p=setTimeout(()=>{g(),l.readyState!==XMLHttpRequest.DONE&&l.abort(),r(new Ae(a,l.status,He.TIMEOUT))},c)),l.responseType=d,l.responseType==="document"&&l.overrideMimeType("text/xml"),!E(s)){let b=s;for(let T in b)Object.prototype.hasOwnProperty.call(b,T)&&l.setRequestHeader(T,b[T])}let h=z(),I=null;if(o!==void 0&&(I=o.register(function(T){g(),l.readyState!==XMLHttpRequest.DONE&&l.abort(),r(T)}),o.isCancelled()))return;if(l.onerror=function(){g(),r(new Ae(a,l.status,He.ERROR_EVENT))},l.ontimeout=function(){g(),r(new Ae(a,l.status,He.TIMEOUT))},c!==void 0&&(l.onreadystatechange=function(){l.readyState>=XMLHttpRequest.HEADERS_RECEIVED&&clearTimeout(p)}),i!==void 0&&(l.onprogress=function(T){let v=z();i({url:a,duration:v-h,sendingTime:h,currentTime:v,size:T.loaded,totalSize:T.total})}),l.onload=function(T){if(l.readyState===XMLHttpRequest.DONE)if(g(),l.status>=200&&l.status<300){let v=z(),_=l.response instanceof ArrayBuffer?l.response.byteLength:T.total,R=l.status,k=l.responseType,x=w(l.responseURL)?l.responseURL:a,P;if(k==="json"?P=typeof l.response=="object"?l.response:Tg(l.responseText):P=l.response,E(P)){r(new Ae(a,l.status,He.PARSE_ERROR));return}t({status:R,url:x,responseType:k,sendingTime:h,receivedTime:v,requestDuration:v-h,size:_,responseData:P})}else r(new Ae(a,l.status,He.ERROR_HTTP_CODE))},m.hasLevel("DEBUG")){let b="XHR GET "+a;n.responseType!==void 0&&(b+=" type="+n.responseType),u!==void 0&&(b+=" to="+String(u/1e3)),c!==void 0&&(b+=" cto="+String(c/1e3)),(s==null?void 0:s.Range)!==void 0&&(b+=" Range="+(s==null?void 0:s.Range)),m.debug("utils",b)}l.send();function g(){f!==void 0&&clearTimeout(f),p!==void 0&&clearTimeout(p),I!==null&&I()}})}function Tg(n){try{return JSON.parse(n)}catch(e){return null}}var ke=Lr;var yn=He,tt={NETWORK_ERROR:"NETWORK_ERROR",MEDIA_ERROR:"MEDIA_ERROR",ENCRYPTED_MEDIA_ERROR:"ENCRYPTED_MEDIA_ERROR",OTHER_ERROR:"OTHER_ERROR"},gs={PIPELINE_LOAD_ERROR:"PIPELINE_LOAD_ERROR",PIPELINE_PARSE_ERROR:"PIPELINE_PARSE_ERROR",INTEGRITY_ERROR:"INTEGRITY_ERROR",MANIFEST_PARSE_ERROR:"MANIFEST_PARSE_ERROR",MANIFEST_INCOMPATIBLE_CODECS_ERROR:"MANIFEST_INCOMPATIBLE_CODECS_ERROR",MANIFEST_UPDATE_ERROR:"MANIFEST_UPDATE_ERROR",MANIFEST_UNSUPPORTED_ADAPTATION_TYPE:"MANIFEST_UNSUPPORTED_ADAPTATION_TYPE",MEDIA_STARTING_TIME_NOT_FOUND:"MEDIA_STARTING_TIME_NOT_FOUND",MEDIA_TIME_BEFORE_MANIFEST:"MEDIA_TIME_BEFORE_MANIFEST",MEDIA_TIME_AFTER_MANIFEST:"MEDIA_TIME_AFTER_MANIFEST",MEDIA_TIME_NOT_FOUND:"MEDIA_TIME_NOT_FOUND",NO_PLAYABLE_REPRESENTATION:"NO_PLAYABLE_REPRESENTATION",MEDIA_IS_ENCRYPTED_ERROR:"MEDIA_IS_ENCRYPTED_ERROR",CREATE_MEDIA_KEYS_ERROR:"CREATE_MEDIA_KEYS_ERROR",MEDIA_KEYS_ATTACHMENT_ERROR:"MEDIA_KEYS_ATTACHMENT_ERROR",KEY_ERROR:"KEY_ERROR",KEY_STATUS_CHANGE_ERROR:"KEY_STATUS_CHANGE_ERROR",KEY_UPDATE_ERROR:"KEY_UPDATE_ERROR",KEY_LOAD_ERROR:"KEY_LOAD_ERROR",KEY_LOAD_TIMEOUT:"KEY_LOAD_TIMEOUT",KEY_GENERATE_REQUEST_ERROR:"KEY_GENERATE_REQUEST_ERROR",INCOMPATIBLE_KEYSYSTEMS:"INCOMPATIBLE_KEYSYSTEMS",INVALID_ENCRYPTED_EVENT:"INVALID_ENCRYPTED_EVENT",INVALID_KEY_SYSTEM:"INVALID_KEY_SYSTEM",LICENSE_SERVER_CERTIFICATE_ERROR:"LICENSE_SERVER_CERTIFICATE_ERROR",MULTIPLE_SESSIONS_SAME_INIT_DATA:"MULTIPLE_SESSIONS_SAME_INIT_DATA",BUFFER_APPEND_ERROR:"BUFFER_APPEND_ERROR",BUFFER_FULL_ERROR:"BUFFER_FULL_ERROR",BUFFER_TYPE_UNKNOWN:"BUFFER_TYPE_UNKNOWN",MEDIA_ERR_BLOCKED_AUTOPLAY:"MEDIA_ERR_BLOCKED_AUTOPLAY",MEDIA_ERR_PLAY_NOT_ALLOWED:"MEDIA_ERR_PLAY_NOT_ALLOWED",MEDIA_ERR_NOT_LOADED_METADATA:"MEDIA_ERR_NOT_LOADED_METADATA",MEDIA_ERR_ABORTED:"MEDIA_ERR_ABORTED",MEDIA_ERR_NETWORK:"MEDIA_ERR_NETWORK",MEDIA_ERR_DECODE:"MEDIA_ERR_DECODE",MEDIA_ERR_SRC_NOT_SUPPORTED:"MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ERR_UNKNOWN:"MEDIA_ERR_UNKNOWN",MEDIA_SOURCE_NOT_SUPPORTED:"MEDIA_SOURCE_NOT_SUPPORTED",MEDIA_KEYS_NOT_SUPPORTED:"MEDIA_KEYS_NOT_SUPPORTED",DISCONTINUITY_ENCOUNTERED:"DISCONTINUITY_ENCOUNTERED",NONE:"NONE",NO_AUDIO_VIDEO_TRACKS:"NO_AUDIO_VIDEO_TRACKS"};function nt(n,e){return`${n}: ${e}`}var be=class n extends Error{constructor(e,t,r){super(nt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="EncryptedMediaError",this.type=tt.ENCRYPTED_MEDIA_ERROR,this.code=e,this._originalMessage=t,this.fatal=!1,this.keyStatuses=r.keyStatuses,this.keySystemConfiguration=r.keySystemConfiguration,this.keySystem=r.keySystem}serialize(){return{isSerializedError:!0,name:this.name,code:this.code,reason:this._originalMessage,keyStatuses:this.keyStatuses,keySystemConfiguration:this.keySystemConfiguration,keySystem:this.keySystem}}};var re=class n extends Error{constructor(e,t,r){super(nt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="MediaError",this.type=tt.MEDIA_ERROR,this._originalMessage=t,this.code=e,this.fatal=!1,(r==null?void 0:r.tracks)!==void 0&&(r==null?void 0:r.tracks.length)>0&&(this.tracksInfo=r.tracks)}serialize(){return{isSerializedError:!0,name:this.name,code:this.code,reason:this._originalMessage,tracks:this.tracksInfo}}};var ut=class n extends Error{constructor(e,t){super(nt(e,t.message)),Object.setPrototypeOf(this,n.prototype),this.name="NetworkError",this.type=tt.NETWORK_ERROR,this.url=t.url,this.status=t.status,this.errorType=t.type,this._baseError=t,this.code=e,this.fatal=!1}isHttpError(e){return this.errorType===yn.ERROR_HTTP_CODE&&this.status===e}serialize(){return{isSerializedError:!0,name:this.name,code:this.code,baseError:this._baseError.serialize()}}};var We=class n extends Error{constructor(e,t){super(nt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="OtherError",this.type=tt.OTHER_ERROR,this.code=e,this.fatal=!1,this._originalMessage=t}serialize(){return{isSerializedError:!0,name:this.name,code:this.code,reason:this._originalMessage}}};function Zt(n){return(n instanceof be||n instanceof re||n instanceof We||n instanceof ut)&&Object.keys(tt).indexOf(n.type)>=0}function Me(n,{defaultCode:e,defaultReason:t}){if(Zt(n))return n;let r=n instanceof Error?n.toString():t;return new We(e,r)}var lt=class n extends Error{constructor(e,t,r){super(t),Object.setPrototypeOf(this,n.prototype),this.name="SourceBufferError",this.errorName=e,this.isBufferFull=r}serialize(){return{errorName:this.name,message:this.message,isBufferFull:this.isBufferFull}}toString(){return`${this.errorName}: ${this.message}`}};var Eg={aa:"aar",ab:"abk",ae:"ave",af:"afr",ak:"aka",am:"amh",an:"arg",ar:"ara",as:"asm",av:"ava",ay:"aym",az:"aze",ba:"bak",be:"bel",bg:"bul",bi:"bis",bm:"bam",bn:"ben",bo:"bod",br:"bre",bs:"bos",ca:"cat",ce:"che",ch:"cha",co:"cos",cr:"cre",cs:"ces",cu:"chu",cv:"chv",cy:"cym",da:"dan",de:"deu",dv:"div",dz:"dzo",ee:"ewe",el:"ell",en:"eng",eo:"epo",es:"spa",et:"est",eu:"eus",fa:"fas",ff:"ful",fi:"fin",fj:"fij",fo:"fao",fr:"fra",fy:"fry",ga:"gle",gd:"gla",gl:"glg",gn:"grn",gu:"guj",gv:"glv",ha:"hau",he:"heb",hi:"hin",ho:"hmo",hr:"hrv",ht:"hat",hu:"hun",hy:"hye",hz:"her",ia:"ina",id:"ind",ie:"ile",ig:"ibo",ii:"iii",ik:"ipk",io:"ido",is:"isl",it:"ita",iu:"iku",ja:"jpn",jv:"jav",ka:"kat",kg:"kon",ki:"kik",kj:"kua",kk:"kaz",kl:"kal",km:"khm",kn:"kan",ko:"kor",kr:"kau",ks:"kas",ku:"kur",kv:"kom",kw:"cor",ky:"kir",la:"lat",lb:"ltz",lg:"lug",li:"lim",ln:"lin",lo:"lao",lt:"lit",lu:"lub",lv:"lav",mg:"mlg",mh:"mah",mi:"mri",mk:"mkd",ml:"mal",mn:"mon",mr:"mar",ms:"msa",mt:"mlt",my:"mya",na:"nau",nb:"nob",nd:"nde",ne:"nep",ng:"ndo",nl:"nld",nn:"nno",no:"nor",nr:"nbl",nv:"nav",ny:"nya",oc:"oci",oj:"oji",om:"orm",or:"ori",os:"oss",pa:"pan",pi:"pli",pl:"pol",ps:"pus",pt:"por",qu:"que",rm:"roh",rn:"run",ro:"ron",ru:"rus",rw:"kin",sa:"san",sc:"srd",sd:"snd",se:"sme",sg:"sag",si:"sin",sk:"slk",sl:"slv",sm:"smo",sn:"sna",so:"som",sq:"sqi",sr:"srp",ss:"ssw",st:"sot",su:"sun",sv:"swe",sw:"swa",ta:"tam",te:"tel",tg:"tgk",th:"tha",ti:"tir",tk:"tuk",tl:"tgl",tn:"tsn",to:"ton",tr:"tur",ts:"tso",tt:"tat",tw:"twi",ty:"tah",ug:"uig",uk:"ukr",ur:"urd",uz:"uzb",ve:"ven",vi:"vie",vo:"vol",wa:"wln",wo:"wol",xh:"xho",yi:"yid",yo:"yor",za:"zha",zh:"zho",zu:"zul"},Pc=Eg;var _g={alb:"sqi",arm:"hye",baq:"eus",bur:"mya",chi:"zho",cze:"ces",dut:"nld",fre:"fra",geo:"kat",ger:"deu",gre:"ell",ice:"isl",mac:"mkd",mao:"mri",may:"msa",per:"fas",slo:"slk",rum:"ron",tib:"bod",wel:"cym"},Cc=_g;function vg(n){if(E(n)||n==="")return"und";let t=(""+n).toLowerCase().split("-")[0],r=Rg(t);return w(r)?r:n}function Rg(n){let e;switch(n.length){case 2:e=Pc[n];break;case 3:e=Cc[n];break}return e}var Ac=vg;var Nr=Ac;function Se(n,e){if(n.length!==e.length)return!1;if(n===e)return!0;for(let t=n.length-1;t>=0;t--)if(n[t]!==e[t])return!1;return!0}var Jt=["audio","video","text"];function bn(n){var o,a;let e=n.timeBounds;if(e.timeshiftDepth===null)return(o=e.minimumSafePosition)!=null?o:0;let{maximumTimeData:t}=e,r;if(!e.maximumTimeData.isLinear)r=t.maximumSafePosition;else{let s=z()-t.time;r=t.maximumSafePosition+s/1e3}let i=r-e.timeshiftDepth;return Math.max((a=e.minimumSafePosition)!=null?a:0,i)}function Sn(n){let{maximumTimeData:e}=n.timeBounds;if(!n.isLive||e.livePosition===void 0)return;if(!e.isLinear)return e.livePosition;let t=z()-e.time;return e.livePosition+t/1e3}function kt(n){let{maximumTimeData:e}=n.timeBounds;if(!e.isLinear)return e.maximumSafePosition;let t=z()-e.time;return e.maximumSafePosition+t/1e3}function Ot(n,e){if(e===void 0)return ys(n).filter(r=>r.supportStatus.hasSupportedCodec!==!1&&r.supportStatus.isDecipherable!==!1);let t=n.adaptations[e];return t===void 0?[]:t.filter(r=>r.supportStatus.hasSupportedCodec!==!1&&r.supportStatus.isDecipherable!==!1)}function Hn(n,e){let t=null;for(let r=n.periods.length-1;r>=0;r--){let i=n.periods[r];if(hs(i,e,t))return i;t=i}}function Do(n,e){let t=e.end;if(t===void 0)return null;let r=Q(n.periods,i=>i.end===void 0||t<i.end);return r===void 0?null:r}function hs(n,e,t){return e>=n.start&&(n.end===void 0||e<n.end)?!0:e===n.end&&(t===null||t.start>n.end)}function ys(n){let e=n.adaptations;return Cr(e).reduce((t,r)=>E(r)?t:t.concat(r),[])}function Lo(n,e){var r,i;let t={language:(r=n.language)!=null?r:"",normalized:(i=n.normalizedLanguage)!=null?i:"",audioDescription:n.isAudioDescription===!0,id:n.id,representations:(e?n.representations.filter(o=>Rt(o)===!0):n.representations).map(Bo),label:n.label};return n.isDub===!0&&(t.dub=!0),t}function No(n){var e,t;return{language:(e=n.language)!=null?e:"",normalized:(t=n.normalizedLanguage)!=null?t:"",closedCaption:n.isClosedCaption===!0,id:n.id,label:n.label,forced:n.isForcedSubtitles}}function Uo(n,e){let t=n.trickModeTracks!==void 0?n.trickModeTracks.map(i=>{let o=(e?i.representations.filter(s=>Rt(s)===!0):i.representations).map(In),a={id:i.id,representations:o,isTrickModeTrack:!0};return i.isSignInterpreted===!0&&(a.signInterpreted=!0),a}):void 0,r={id:n.id,representations:(e?n.representations.filter(i=>Rt(i)===!0):n.representations).map(In),label:n.label};return n.isSignInterpreted===!0&&(r.signInterpreted=!0),n.isTrickModeTrack===!0&&(r.isTrickModeTrack=!0),t!==void 0&&(r.trickModeTracks=t),r}function Bo(n){let{id:e,bitrate:t,codecs:r,isSpatialAudio:i,isSupported:o,decipherable:a}=n;return{id:e,bitrate:t,codec:r==null?void 0:r[0],isSpatialAudio:i,isCodecSupported:o,decipherable:a}}function In(n){let{id:e,bitrate:t,frameRate:r,width:i,height:o,codecs:a,hdrInfo:s,isSupported:d,decipherable:u,contentProtections:c}=n;return{id:e,bitrate:t,frameRate:r,width:i,height:o,codec:a==null?void 0:a[0],hdrInfo:s,isCodecSupported:d,decipherable:u,contentProtections:c!==void 0?{keyIds:c.keyIds}:void 0}}function Tn(n){switch(n.type){case"audio":return{type:"audio",track:Lo(n,!1)};case"video":return{type:"video",track:Uo(n,!1)};case"text":return{type:"text",track:No(n)}}}function Rt(n){return n.decipherable===!1?!1:n.isSupported}function Mc(n){return new Function(`return (${n}(arguments[0], arguments[1]))`)}function rt(){let n="",e=-1;return function(){return e++,e>=Number.MAX_SAFE_INTEGER&&(n+="0",e=0),n+String(e)}}var wc=typeof Z=="object"&&typeof Z.TextDecoder=="function",kg=typeof Z=="object"&&typeof Z.TextEncoder=="function";function Fo(n){let e=new ArrayBuffer(n.length*2),t=new Uint8Array(e);for(let r=0;r<t.length;r+=2){let i=n.charCodeAt(r/2);t[r]=i&255,t[r+1]=i>>8&255}return t}function Ko(n){if(wc)try{return new TextDecoder("utf-16le").decode(n)}catch(t){let r=t instanceof Error?t:"Unknown Error";m.warn("utils","could not use TextDecoder to parse UTF-16LE, fallbacking to another implementation",r)}let e="";for(let t=0;t<n.length;t+=2)e+=String.fromCharCode((n[t+1]<<8)+n[t]);return e}function Te(n){if(kg)try{return new TextEncoder().encode(n)}catch(i){let o=i instanceof Error?i:"Unknown Error";m.warn("utils","Could not use TextEncoder to encode string into UTF-8, fallbacking to another implementation",o)}let e,t=encodeURIComponent(n);if(typeof unescape=="function")e=unescape(t);else{let i=/[0-9a-fA-F]/,o=t.length;e="";for(let a=0;a<t.length;a++){let s=!1;if(t[a]==="%"){if(a<=o-6&&t[a+1]==="u"&&i.test(t[a+2])&&i.test(t[a+3])&&i.test(t[a+4])&&i.test(t[a+5])){let d=parseInt(t.substring(a+1,a+6),16);e+=String.fromCharCode(d),s=!0,a+=5}else if(a<=o-3&&i.test(t[a+1])&&i.test(t[a+2])){let d=parseInt(t.substring(a+1,a+3),16);e+=String.fromCharCode(d),s=!0,a+=2}}s||(e+=t[a])}}let r=new Uint8Array(e.length);for(let i=0;i<e.length;i++)r[i]=e.charCodeAt(i)&255;return r}function Pg(n){let t="";for(let r=0;r<n.length;r+=16e3){let i=n.subarray(r,r+16e3);t+=String.fromCharCode.apply(null,i)}return t}function xc(n,e){let t=n.toString(16);return t.length>=e?t:new Array(e-t.length+1).join("0")+t}function ce(n){if(wc)try{return new TextDecoder().decode(n)}catch(i){let o=i instanceof Error?i:"Unknown Error";m.warn("utils","could not use TextDecoder to parse UTF-8, fallbacking to another implementation",o)}let e=n;e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3));let t=Pg(e),r;if(typeof escape=="function")r=escape(t);else{let i=/[A-Za-z0-9*_+-./]/;r="";for(let o=0;o<t.length;o++)if(i.test(t[o]))r+=t[o];else{let a=t.charCodeAt(o);r+=a>=256?"%u"+xc(a,4):"%"+xc(a,2)}}return decodeURIComponent(r)}function Xe(n){let e=n.length,t=new Uint8Array(e/2);for(let r=0,i=0;r<e;r+=2,i++)t[i]=parseInt(n.substring(r,r+2),16)&255;return t}function Ne(n,e=""){let t="";for(let r=0;r<n.byteLength;r++)t+=(n[r]>>>4).toString(16),t+=(n[r]&15).toString(16),e.length>0&&r<n.byteLength-1&&(t+=e);return t}function Vo(n){ne(n.length===16,"GUID length should be 16");let e=n[0],t=n[1],r=n[2],i=n[3],o=n[4],a=n[5],s=n[6],d=n[7],u=new Uint8Array(16);return u[0]=i,u[1]=r,u[2]=t,u[3]=e,u[4]=a,u[5]=o,u[6]=d,u[7]=s,u.set(n.subarray(8,16),8),u}function Is(n,e){let t=e;for(;t<n.length&&n[t]!==0;)t+=1;let r=n.subarray(e,t);return{end:t+1,string:ce(r)}}var Cg=rt(),bs=class{constructor(e,t,r){var o,a,s,d,u;this.id=e.id,this.uniqueId=Cg(),this.shouldBeAvoided=!1,this.bitrate=e.bitrate,this.codecs=[],this.trackType=t,e.isSpatialAudio!==void 0&&(this.isSpatialAudio=e.isSpatialAudio),e.height!==void 0&&(this.height=e.height),e.width!==void 0&&(this.width=e.width),e.mimeType!==void 0&&(this.mimeType=e.mimeType),e.contentProtections!==void 0&&(this.contentProtections=e.contentProtections),e.frameRate!==void 0&&(this.frameRate=e.frameRate),e.hdrInfo!==void 0&&(this.hdrInfo=e.hdrInfo),this.cdnMetadata=e.cdnMetadata,this.index=e.index;let i=this.contentProtections!==void 0;if(t==="audio"||t==="video"){if(e.supplementalCodecs!==void 0){let c=r.isSupported((o=this.mimeType)!=null?o:"",(a=e.supplementalCodecs)!=null?a:"",i);c!==!1&&(this.codecs=[e.supplementalCodecs],this.isSupported=c)}this.isSupported!==!0&&(this.codecs.length>0?this.codecs.push((s=e.codecs)!=null?s:""):(this.codecs=e.codecs===void 0?[]:[e.codecs],this.isSupported=r.isSupported((d=this.mimeType)!=null?d:"",(u=e.codecs)!=null?u:"",i)))}else e.codecs!==void 0&&this.codecs.push(e.codecs),this.isSupported=!0}refreshCodecSupport(e){var s,d;if(this.isSupported!==void 0)return;let t=this.contentProtections!==void 0,r=!1,i=(s=this.mimeType)!=null?s:"",o=(d=this.codecs)!=null?d:[];o.length===0&&(o=[""]);let a=!1;for(let u of o){if(r=e.isSupported(i,u,t),r===!0){this.codecs=[u];break}r===void 0&&(a=!0)}r===!0?this.isSupported=!0:a?this.isSupported=void 0:this.isSupported=!1}getMimeTypeString(){var e,t,r;return`${(e=this.mimeType)!=null?e:""};codecs="${(r=(t=this.codecs)==null?void 0:t[0])!=null?r:""}"`}getEncryptionData(e){var i;let t=this.getAllEncryptionData(),r=[];for(let o=0;o<t.length;o++){let a=!1,s=t[o];for(let d=0;d<s.values.length;d++)if(s.values[d].systemId.toLowerCase()===e.toLowerCase())if(a)r[r.length-1].values.push(s.values[d]);else{let u=(i=this.contentProtections)==null?void 0:i.keyIds;r.push({type:s.type,keyIds:u,values:[s.values[d]]}),a=!0}}return r}getAllEncryptionData(){var t;if(this.contentProtections===void 0||this.contentProtections.initData.length===0)return[];let e=(t=this.contentProtections)==null?void 0:t.keyIds;return this.contentProtections.initData.map(r=>({type:r.type,keyIds:e,values:r.values}))}addProtectionData(e,t,r){let i=!1;if(this.contentProtections===void 0)return this.contentProtections={keyIds:t!==void 0?[t]:[],initData:[{type:e,values:r}]},!0;if(t!==void 0){let a=this.contentProtections.keyIds;if(a===void 0)this.contentProtections.keyIds=[t];else{let s=!1;for(let d of a)Se(d,t)&&(s=!0);s||(m.warn("manifest","found unanounced key id.",{keyId:Ne(t)}),a.push(t))}}let o=this.contentProtections.initData;for(let a=0;a<o.length;a++)if(o[a].type===e){let s=o[a].values;for(let d=0;d<r.length;d++){let u=r[d],c;for(c=0;c<s.length;c++)if(u.systemId===s[c].systemId){if(Se(u.data,s[c].data))break;m.warn("manifest","different init data for the same system ID",{systemId:u.systemId})}c===s.length&&(s.push(u),i=!0)}return i}return this.contentProtections.initData.push({type:e,values:r}),!0}isPlayable(){return Rt(this)}getMetadataSnapshot(){return{id:this.id,uniqueId:this.uniqueId,bitrate:this.bitrate,codecs:this.codecs,mimeType:this.mimeType,width:this.width,height:this.height,frameRate:this.frameRate,isSupported:this.isSupported,hdrInfo:this.hdrInfo,contentProtections:this.contentProtections,decipherable:this.decipherable,isCodecSupportedInWebWorker:this.isCodecSupportedInWebWorker}}},Oc=bs;var Ur=class n{constructor(e,t,r={}){let{trickModeTracks:i}=e,{representationFilter:o,isManuallyAdded:a}=r;this.id=e.id,this.type=e.type,e.isTrickModeTrack!==void 0&&(this.isTrickModeTrack=e.isTrickModeTrack),e.language!==void 0&&(this.language=e.language,this.normalizedLanguage=Nr(e.language)),e.closedCaption!==void 0&&(this.isClosedCaption=e.closedCaption),e.audioDescription!==void 0&&(this.isAudioDescription=e.audioDescription),e.isDub!==void 0&&(this.isDub=e.isDub),e.forcedSubtitles!==void 0&&(this.isForcedSubtitles=e.forcedSubtitles),e.isSignInterpreted!==void 0&&(this.isSignInterpreted=e.isSignInterpreted),e.label!==void 0&&(this.label=e.label),i!==void 0&&i.length>0&&(this.trickModeTracks=i.map(u=>new n(u,t)));let s=e.representations,d=[];this.supportStatus={hasSupportedCodec:!1,hasCodecWithUndefinedSupport:!1,isDecipherable:!1};for(let u=0;u<s.length;u++){let c=new Oc(s[u],this.type,t),l=!0;if(!E(o)){let f={id:c.id,bitrate:c.bitrate,codecs:c.codecs,height:c.height,width:c.width,frameRate:c.frameRate,hdrInfo:c.hdrInfo};if(c.contentProtections!==void 0&&(f.contentProtections={},c.contentProtections.keyIds!==void 0)){let p=c.contentProtections.keyIds;f.contentProtections.keyIds=p}l=o(f,{trackType:this.type,language:this.language,normalizedLanguage:this.normalizedLanguage,isClosedCaption:this.isClosedCaption,isDub:this.isDub,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted})}l?(d.push(c),c.isSupported===void 0?(this.supportStatus.hasCodecWithUndefinedSupport=!0,this.supportStatus.hasSupportedCodec===!1&&(this.supportStatus.hasSupportedCodec=void 0)):c.isSupported&&(this.supportStatus.hasSupportedCodec=!0),c.decipherable===void 0?this.supportStatus.isDecipherable===!1&&(this.supportStatus.isDecipherable=void 0):c.decipherable&&(this.supportStatus.isDecipherable=!0)):m.debug("manifest","Filtering Representation due to representationFilter",this.type,`Adaptation: ${this.id}`,`Representation: ${c.id}`,`(${c.bitrate})`)}d.sort((u,c)=>u.bitrate-c.bitrate),this.representations=d,this.manuallyAdded=a===!0}refreshCodecSupport(e){let t=!1,r=!1;for(let i of this.representations)i.refreshCodecSupport(e),i.isSupported===void 0?t=!0:i.isSupported&&(r=!0);r?this.supportStatus.hasSupportedCodec=!0:t?this.supportStatus.hasSupportedCodec=void 0:this.supportStatus.hasSupportedCodec=!1,this.supportStatus.hasCodecWithUndefinedSupport=t}getRepresentation(e){return Q(this.representations,({id:t})=>e===t)}getMetadataSnapshot(){let e=[],t=this.representations;for(let r of t)e.push(r.getMetadataSnapshot());return{id:this.id,type:this.type,supportStatus:this.supportStatus,language:this.language,isForcedSubtitles:this.isForcedSubtitles,isClosedCaption:this.isClosedCaption,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted,normalizedLanguage:this.normalizedLanguage,representations:e,label:this.label,isDub:this.isDub}}};function Ss(){let{FORCE_SHOULD_UNSET_MEDIA_KEYS:n}=O.getCurrent();return n||V.browser===V.BROWSERS.Ie11}function En(n){return new Promise(e=>{setTimeout(e,n)})}function Ts(){let{FORCE_SHOULD_AWAIT_SET_MEDIA_KEYS:n}=O.getCurrent();return n||V.device===V.DEVICES.WebOs2021||V.device===V.DEVICES.WebOs2022||V.device===V.DEVICES.WebOsOther}function Es(n,e,t){let r=n.setMediaKeys(e,t).then(()=>{m.info("DRM","MediaKeys updated with success")}).catch(i=>{if(t===null){m.error("DRM","Could not reset MediaKeys",i instanceof Error?i:"Unknown Error");return}throw m.error("DRM","Could not update MediaKeys",i instanceof Error?i:"Unknown Error"),i});return Ts()?r:Promise.race([r,En(1e3)])}var Pt=new WeakMap,Ze={async attach(n,e){let t=Pt.get(n),r=Ag(n,t,e).then(()=>{Pt.set(n,{pendingTask:null,mediaKeysState:e})},()=>{Pt.set(n,{pendingTask:null,mediaKeysState:null})});return Pt.set(n,{pendingTask:r,mediaKeysState:e}),r},getAwaitedState(n){var t;let e=Pt.get(n);return(t=e==null?void 0:e.mediaKeysState)!=null?t:null},async getAttachedMediaKeysState(n){let e=Pt.get(n);return e===void 0?null:e.pendingTask!==null?(await e.pendingTask,this.getAttachedMediaKeysState(n)):e.mediaKeysState},clearMediaKeys(n){let e=Pt.get(n),t=Mg(n,e).then(()=>{Pt.set(n,{pendingTask:null,mediaKeysState:null})},()=>{Pt.set(n,{pendingTask:null,mediaKeysState:null})});return Pt.set(n,{pendingTask:t,mediaKeysState:null}),t}};async function Dc(n){let e=n.pendingTask;if(!E(e)){m.info("DRM","Awaiting previous MediaKeys attachment operation");try{await n.pendingTask}catch(t){m.info("DRM","previous MediaKeys attachment operation failed",t instanceof Error?t:"Unknown error")}}}async function Ag(n,e,t){if(e!==void 0&&(e.pendingTask!==null&&await Dc(e),await(!E(e.mediaKeysState)&&e.mediaKeysState.loadedSessionsStore!==t.loadedSessionsStore?e.mediaKeysState.loadedSessionsStore.closeAllSessions():Promise.resolve()),n.mediaKeys===t.mediaKeys)){m.debug("DRM","Right MediaKeys already set");return}m.info("DRM","Attaching MediaKeys to the media element");try{await Es(t.emeImplementation,n,t.mediaKeys),m.info("DRM","MediaKeys attached with success")}catch(r){let i=r instanceof Error?r.toString():"Unknown Error";throw new be("MEDIA_KEYS_ATTACHMENT_ERROR","Could not attach the MediaKeys to the media element: "+i,{keyStatuses:void 0,keySystemConfiguration:t.mediaKeySystemAccess.getConfiguration(),keySystem:t.mediaKeySystemAccess.keySystem})}}async function Mg(n,e){if(e===void 0||(e.pendingTask!==null&&await Dc(e),e.mediaKeysState===null))return;m.info("DRM","Disposing of the current MediaKeys");let{loadedSessionsStore:t}=e.mediaKeysState;return await t.closeAllSessions(),Es(e.mediaKeysState.emeImplementation,n,null)}async function qn(n){return Ze.clearMediaKeys(n)}async function zo(n){if(m.info("DRM","Clearing-up DRM session."),Ss())return m.info("DRM","disposing current MediaKeys."),qn(n);let e=await Ze.getAttachedMediaKeysState(n);return e!==null&&e.keySystemOptions.closeSessionsOnStop===!0?(m.info("DRM","closing all current sessions."),e.loadedSessionsStore.closeAllSessions()):(m.info("DRM","Nothing to clear. Returning right away.",{noState:e===null}),Promise.resolve())}function ct(n,e){let t;return new Promise((r,i)=>{if(n.cancellationError!==null)return i(n.cancellationError);let o=!1;t=e(function(d){n.deregister(a),o=!0,r(d)},function(d){n.deregister(a),o=!0,i(d)}),o||n.register(a);function a(s){t!==void 0&&t(),i(s)}})}function en(n,e){return ct(e,t=>{let r=setTimeout(()=>t(),n);return()=>clearTimeout(r)})}function Wo(n){let e=new U;return Promise.race([n.close().then(()=>{e.cancel()}),n.closed.then(()=>{e.cancel()}),t()]);async function t(){try{await en(1e3,e.signal),await r()}catch(i){if(i instanceof we)return;let o=i instanceof Error?i.message:"Unknown error made it impossible to close the session";m.error("DRM","Error made it impossible to close the session",`${o}`)}}async function r(){try{await n.update(new Uint8Array(1))}catch(i){if(e.isUsed()||i instanceof Error&&i.message==="The session is already closed.")return;await en(1e3,e.signal)}if(!e.isUsed())throw new Error("Compat: Couldn't know if session is closed")}}var xg=["","webkit","moz","ms"];function wg(n,e){let t=document.createElement(n.tagName),r="on"+e;return r in t?!0:(t.setAttribute(r,"return;"),typeof t[r]=="function")}function Og(n,e){return e.filter(t=>wg(n,t))[0]}function Dg(n,e){return n.reduce((t,r)=>t.concat((e===void 0?xg:e).map(i=>i+r)),[])}function Pe(n,e){let t,r=Dg(n,e);return(i,o,a)=>{if(!a.isCancelled()){if(typeof HTMLElement!="undefined"&&i instanceof HTMLElement)if(typeof t=="undefined"&&(t=Og(i,r)),w(t))i.addEventListener(t,o),a.register(()=>{t!==void 0&&i.removeEventListener(t,o)});else{m.warn("utils",`element ${i.tagName} does not support any of these events: `+r.join(", "));return}r.forEach(s=>{let d=!1;typeof i.addEventListener=="function"?i.addEventListener(s,o):(d=!0,i["on"+s]=o),a.register(()=>{typeof i.removeEventListener=="function"&&i.removeEventListener(s,o),d&&delete i["on"+s]})})}}}function Lg(n){let e,t=document;E(t.hidden)?E(t.mozHidden)?E(t.msHidden)?E(t.webkitHidden)||(e="webkit"):e="ms":e="moz":e="";let r=w(e)?e+"Hidden":"hidden",i=w(e)?e+"visibilitychange":"visibilitychange",o=document[r],a=new j(!o,n);return _n(document,i,()=>{let s=!document[r];a.setValueIfChanged(s)},n),a}function Lc(n,e){if(n.webkitSupportsPresentationMode===!0&&typeof n.webkitSetPresentationMode=="function"){let i=n.webkitPresentationMode==="picture-in-picture",o=new j({isEnabled:i,pipWindow:null},e);return _n(n,"webkitpresentationmodechanged",()=>{let a=n.webkitPresentationMode==="picture-in-picture";o.setValue({isEnabled:a,pipWindow:null})},e),o}let t=document.pictureInPictureElement===n,r=new j({isEnabled:t,pipWindow:null},e);return _n(n,"enterpictureinpicture",i=>{var o;r.setValue({isEnabled:!0,pipWindow:(o=i.pictureInPictureWindow)!=null?o:null})},e),_n(n,"leavepictureinpicture",()=>{r.setValue({isEnabled:!1,pipWindow:null})},e),r}function Nc(n,e){let t=Lg(e),r,i=new j(!0,e);return e.register(()=>{clearTimeout(r),r=void 0}),t.onUpdate(o,{clearSignal:e}),n.onUpdate(o,{clearSignal:e}),o(),i;function o(){if(clearTimeout(r),r=void 0,n.getValue().isEnabled||t.getValue())i.setValueIfChanged(!0);else{let{INACTIVITY_DELAY:a}=O.getCurrent();r=setTimeout(()=>{i.setValueIfChanged(!1)},a)}}}function Uc(n){var o,a;let e=E(Z.devicePixelRatio)||Z.devicePixelRatio===0?1:Z.devicePixelRatio,t=new j({width:(o=Z.screen)==null?void 0:o.width,height:(a=Z.screen)==null?void 0:a.height,pixelRatio:e},n),r=setInterval(i,2e4);return n.register(function(){clearInterval(r)}),t;function i(){let s=t.getValue();(s.width!==screen.width||s.height!==screen.height||s.pixelRatio!==e)&&t.setValue({width:screen.width,height:screen.height,pixelRatio:e})}}function Bc(n,e,t){let r=E(Z.devicePixelRatio)||Z.devicePixelRatio===0?1:Z.devicePixelRatio,i=new j({width:n.clientWidth,height:n.clientHeight,pixelRatio:r},t),o=te;e.onUpdate(s,{clearSignal:t}),_n(Z,"resize",s,t),_n(n,"enterpictureinpicture",s,t),_n(n,"leavepictureinpicture",s,t);let a=setInterval(s,2e4);return s(),t.register(function(){o(),clearInterval(a)}),i;function s(){o();let d=e.getValue(),{pipWindow:u}=d;if(d.isEnabled)if(E(u)){let l=i.getValue();(l.width!==void 0||l.height!==void 0||l.pixelRatio!==r)&&i.setValue({width:void 0,height:void 0,pixelRatio:r})}else{let l=()=>{c()};u.addEventListener("resize",l),o=()=>{u.removeEventListener("resize",l),o=te},c()}else{let l=i.getValue();(l.width!==n.clientWidth||l.height!==n.clientHeight||l.pixelRatio!==r)&&i.setValue({width:n.clientWidth,height:n.clientHeight,pixelRatio:r})}function c(){let l=i.getValue();(l.width!==(u==null?void 0:u.width)||l.height!==(u==null?void 0:u.height)||l.pixelRatio!==r)&&i.setValue({width:u==null?void 0:u.width,height:u==null?void 0:u.height,pixelRatio:r})}}}var dC=Pe(["loadedmetadata"]),uC=Pe(["timeupdate"]),lC=Pe(["addtrack"]),cC=Pe(["removetrack"]),Gn=Pe(["sourceopen","webkitsourceopen"]),Ho=Pe(["sourceclose","webkitsourceclose"]),qo=Pe(["sourceended","webkitsourceended"]),Fc=Pe(["update"]),Kc=Pe(["removesourcebuffer"]),Go=Pe(["keymessage","message"]),Vc=Pe(["keyadded","ready"]),jo=Pe(["keyerror","error"]),zc=Pe(["keystatuseschange"]),Wc=Pe(["seeking"]),Hc=Pe(["seeked"]),qc=Pe(["ended"]);function _n(n,e,t,r){n.addEventListener(e,t),r.register(()=>{n.removeEventListener(e,t)})}function Lt(n){try{let e=n();return typeof e=="object"&&e!==null&&typeof e.then=="function"?e:Promise.resolve(e)}catch(e){return Promise.reject(e)}}var Nt,{MSMediaKeys:Br}=Z;Br!==void 0&&Br.prototype!==void 0&&typeof Br.isTypeSupported=="function"&&typeof Br.prototype.createSession=="function"&&(Nt=Br);var _s=class extends se{constructor(e){super(),this.expiration=NaN,this.keyStatuses=new Map,this._mk=e,this._sessionClosingCanceller=new U,this.closed=new Promise(t=>{this._sessionClosingCanceller.signal.register(()=>t("closed-by-application"))}),this.update=t=>new Promise((r,i)=>{if(this._ss===void 0)return i("MediaKeySession not set.");try{r(this._ss.update(t,""))}catch(o){i(o)}})}generateRequest(e,t){return new Promise(r=>{let i;t instanceof Uint8Array?i=t:t instanceof ArrayBuffer?i=new Uint8Array(t):i=new Uint8Array(t.buffer),this._ss=this._mk.createSession("video/mp4",i),Go(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"message",o)},this._sessionClosingCanceller.signal),Vc(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyadded",o)},this._sessionClosingCanceller.signal),jo(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyerror",o)},this._sessionClosingCanceller.signal),r()})}close(){return new Promise(e=>{E(this._ss)||(this._ss.close(),this._ss=void 0),this._sessionClosingCanceller.cancel(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._ss)==null?void 0:e.sessionId)!=null?t:""}},Yo=class{constructor(e){if(Nt===void 0)throw new Error("No MSMediaKeys API.");this._mediaKeys=new Nt(e)}_setVideo(e){return Lt(()=>{this._videoElement=e,this._videoElement.msSetMediaKeys!==void 0&&this._videoElement.msSetMediaKeys(this._mediaKeys)})}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new _s(this._mediaKeys)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function vs(){return{isTypeSupported:(r,i)=>{if(Nt===void 0)throw new Error("No MSMediaKeys API.");return i!==void 0?Nt.isTypeSupported(r,i):Nt.isTypeSupported(r)},createCustomMediaKeys:r=>new Yo(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof Yo))throw new Error("Custom setMediaKeys is supposed to be called with IE11 custom MediaKeys.");return i._setVideo(r)}}}var tn,{MozMediaKeys:Fr}=Z;Fr!==void 0&&Fr.prototype!==void 0&&typeof Fr.isTypeSupported=="function"&&typeof Fr.prototype.createSession=="function"&&(tn=Fr);function Rs(){return{isTypeSupported:(r,i)=>{if(tn===void 0)throw new Error("No MozMediaKeys API.");return i!==void 0?tn.isTypeSupported(r,i):tn.isTypeSupported(r)},createCustomMediaKeys:r=>{if(tn===void 0)throw new Error("No MozMediaKeys API.");return new tn(r)},setMediaKeys:(r,i)=>Lt(()=>{if(r.mozSetMediaKeys===void 0||typeof r.mozSetMediaKeys!="function")throw new Error("Can't set video on MozMediaKeys.");return r.mozSetMediaKeys(i)})}}var Ut=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],Gc=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];function Qo(n){if(n>=Gc.length)throw new Error("Unable to parse base64 string.");let e=Gc[n];if(e===255)throw new Error("Unable to parse base64 string.");return e}function $o(n){let e="",t,r=n.length;for(t=2;t<r;t+=3)e+=Ut[n[t-2]>>2],e+=Ut[(n[t-2]&3)<<4|n[t-1]>>4],e+=Ut[(n[t-1]&15)<<2|n[t]>>6],e+=Ut[n[t]&63];return t===r+1&&(e+=Ut[n[t-2]>>2],e+=Ut[(n[t-2]&3)<<4],e+="=="),t===r&&(e+=Ut[n[t-2]>>2],e+=Ut[(n[t-2]&3)<<4|n[t-1]>>4],e+=Ut[(n[t-1]&15)<<2],e+="="),e}function St(n){let e=n.length%4,t=n;e!==0&&(m.warn("utils","base64ToBytes: base64 given miss padding",{padding:e}),t+=e===3?"=":e===2?"==":"===");let r=t.indexOf("=");if(r!==-1&&r<t.length-2)throw new Error("Unable to parse base64 string.");let i=t.endsWith("==")?2:t.endsWith("=")?1:0,o=t.length,a=new Uint8Array(o/4*3),s;for(let d=0,u=0;d<o;d+=4,u+=3)s=Qo(t.charCodeAt(d))<<18|Qo(t.charCodeAt(d+1))<<12|Qo(t.charCodeAt(d+2))<<6|Qo(t.charCodeAt(d+3)),a[u]=s>>16,a[u+1]=s>>8&255,a[u+2]=s&255;return a.subarray(0,a.length-i)}function de(...n){let e=n.length,t=-1,r=0,i;for(;++t<e;)i=n[t],r+=typeof i=="number"?i:i.length;let o=new Uint8Array(r),a=0;for(t=-1;++t<e;)i=n[t],typeof i=="number"?a+=i:i.length>0&&(o.set(i,a),a+=i.length);return o}function Xo(n,e){return(n[e+0]<<8)+(n[e+1]<<0)}function Zo(n,e){return n[e+0]*65536+n[e+1]*256+n[e+2]}function J(n,e){return n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3]}function jc(n,e){return n[e]<<24|n[e+1]<<16|n[e+2]<<8|n[e+3]|0}function qe(n,e){return(n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3])*4294967296+n[e+4]*16777216+n[e+5]*65536+n[e+6]*256+n[e+7]}function me(n){return new Uint8Array([n>>>8&255,n&255])}function _e(n){return new Uint8Array([n>>>24&255,n>>>16&255,n>>>8&255,n&255])}function nn(n){let e=n%4294967296,t=(n-e)/4294967296;return new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,t&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function Yc(n,e){return(n[e+0]<<0)+(n[e+1]<<8)}function Qc(n,e){return n[e+0]+n[e+1]*256+n[e+2]*65536+n[e+3]*16777216}function $c(n){return new Uint8Array([n&255,n>>>8&255])}function Kr(n){return new Uint8Array([n&255,n>>>8&255,n>>>16&255,n>>>24&255])}function Bt(n){return n instanceof Uint8Array?n:n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer)}function Ps(n){return typeof(n==null?void 0:n.webkitGenerateKeyRequest)=="function"}var ks=class extends se{constructor(e,t){super(),this._vid=e,this._key=t,this.sessionId="",this._closeSession=te,this.keyStatuses=new Map,this.expiration=NaN;let r=i=>{this.trigger(i.type,i)};this.closed=new Promise(i=>{this._closeSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(o=>{e.removeEventListener(o,r),e.removeEventListener(`webkit${o}`,r)}),i("closed-by-application")}}),["keymessage","message","keyadded","ready","keyerror","error"].forEach(i=>{e.addEventListener(i,r),e.addEventListener(`webkit${i}`,r)})}update(e){return new Promise((t,r)=>{try{if(this._key.indexOf("clearkey")>=0){let i=Bt(e),o=JSON.parse(ce(i)),a=St(o.keys[0].k),s=St(o.keys[0].kid);t(this._vid.webkitAddKey(this._key,a,s,""))}else t(this._vid.webkitAddKey(this._key,e,null,""))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{this._vid.webkitGenerateKeyRequest(this._key,t),r()})}close(){return new Promise(e=>{this._closeSession(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}},Jo=class{constructor(e){this._keySystem=e}_setVideo(e){return Lt(()=>{if(!Ps(e))throw new Error("Video not attached to the MediaKeys");this._videoElement=e})}createSession(){if(E(this._videoElement))throw new Error("Video not attached to the MediaKeys");return new ks(this._videoElement,this._keySystem)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function Cs(){return{isTypeSupported:function(r){let i=document.querySelector("video");return E(i)&&(i=document.createElement("video")),!E(i)&&typeof i.canPlayType=="function"?!!i.canPlayType("video/mp4",r):!1},createCustomMediaKeys:r=>new Jo(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof Jo))throw new Error("Custom setMediaKeys is supposed to be called with old webkit custom MediaKeys.");return i._setVideo(r)}}}function As(n,e){let t=Bt(n),r=Bt(e);if(Qc(t,0)+4!==t.length)throw new Error("Unsupported WebKit initData.");let o=Ko(t),a=o.indexOf("skd://"),s=a>-1?o.substring(a+6):o,d=Fo(s),u=0,c=new Uint8Array(t.byteLength+4+d.byteLength+4+r.byteLength);return c.set(t),u+=t.length,c.set(Kr(d.byteLength),u),u+=4,c.set(d,u),u+=d.byteLength,c.set(Kr(r.byteLength),u),u+=4,c.set(r,u),c}function Ct(){let{WebKitMediaKeys:n}=Z;if(n!==void 0&&typeof n.isTypeSupported=="function"&&typeof n.prototype.createSession=="function"&&typeof HTMLMediaElement.prototype.webkitSetMediaKeys=="function")return n}function Ug(n){return Ce(n,"com.apple.fps")}function Xc(n,e){return Lt(()=>{if(n.webkitSetMediaKeys===void 0)throw new Error("No webKitMediaKeys API.");n.webkitSetMediaKeys(e)})}var Ms=class extends se{constructor(e,t,r){super(),this._serverCertificate=r,this._videoElement=e,this._keyType=t,this._unbindSession=te,this._closeSession=te,this.closed=new Promise(i=>{this._closeSession=i}),this.keyStatuses=new Map,this.expiration=NaN}update(e){return new Promise((t,r)=>{if(this._nativeSession===void 0||this._nativeSession.update===void 0||typeof this._nativeSession.update!="function")return r("Unavailable WebKit key session.");try{let i=Bt(e);t(this._nativeSession.update(i))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{var s;let i=this._videoElement;if(((s=i.webkitKeys)==null?void 0:s.createSession)===void 0)throw new Error("No WebKitMediaKeys API.");let o;if(Ug(this._keyType)){if(this._serverCertificate===void 0)throw new Error("A server certificate is needed for creating fairplay session.");o=As(t,this._serverCertificate)}else o=t;let a=i.webkitKeys.createSession("video/mp4",o);if(a==null)throw new Error("Impossible to get the key sessions");this._listenEvent(a),this._nativeSession=a,r()})}close(){return new Promise((e,t)=>{if(this._unbindSession(),this._closeSession("closed-by-application"),this._nativeSession===void 0){t("No session to close.");return}this._nativeSession.close(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._nativeSession)==null?void 0:e.sessionId)!=null?t:""}_listenEvent(e){this._unbindSession();let t=r=>{this.trigger(r.type,r)};["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.addEventListener(r,t),e.addEventListener(`webkit${r}`,t)}),this._unbindSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.removeEventListener(r,t),e.removeEventListener(`webkit${r}`,t)})}}},ea=class{constructor(e){let t=Ct();if(t===void 0)throw new Error("No WebKitMediaKeys API.");this._keyType=e,this._mediaKeys=new t(e)}_setVideo(e){if(this._videoElement=e,this._videoElement===void 0)throw new Error("Video not attached to the MediaKeys");return Xc(this._videoElement,this._mediaKeys)}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new Ms(this._videoElement,this._keyType,this._serverCertificate)}setServerCertificate(e){return this._serverCertificate=e,Promise.resolve(!0)}};function ta(){let n=Ct();if(n===void 0)throw new Error("No WebKitMediaKeys API.");return{isTypeSupported:n.isTypeSupported,createCustomMediaKeys:i=>new ea(i),setMediaKeys:(i,o)=>{if(o===null)return Xc(i,o);if(!(o instanceof ea))throw new Error("Custom setMediaKeys is supposed to be called with webkit custom MediaKeys.");return o._setVideo(i)}}}function xs(){let{FORCE_SHOULD_FAVOUR_CUSTOM_SAFARI_EME:n}=O.getCurrent();return n?!0:(V.browser===V.BROWSERS.SafariDesktop||V.browser===V.BROWSERS.SafariMobile)&&Ct()!==void 0}var Vr=class{constructor(e,t,r){this._keyType=e;this._mediaKeys=t;this._configuration=r}get keySystem(){return this._keyType}createMediaKeys(){return new Promise(e=>e(this._mediaKeys))}getConfiguration(){return this._configuration}};function ws(n){var o;let e,t,r=Bg,i;if(n==="standard"||n==="auto"&&!xs()){if($t||E(navigator.requestMediaKeySystemAccess))return null;e=(...a)=>navigator.requestMediaKeySystemAccess(...a),t=Pe(["encrypted"]),i="standard"}else{let a,s;if(n==="webkit"&&Ct()!==void 0){let d=ta();t=Zc(),a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(Ps((o=Z.HTMLVideoElement)==null?void 0:o.prototype)){t=Pe(["needkey"]);let d=Cs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="older-webkit"}else if(Ct()!==void 0){t=Zc();let d=ta();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(V.browser===V.BROWSERS.Ie11&&Nt!==void 0){t=Pe(["encrypted","needkey"]);let d=vs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="ms"}else if(tn!==void 0){t=Pe(["encrypted","needkey"]);let d=Rs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="moz"}else{t=Pe(["encrypted","needkey"]);let d=Z.MediaKeys,u=()=>{if(d===void 0)throw new re("MEDIA_KEYS_NOT_SUPPORTED","No `MediaKeys` implementation found in the current browser.");if(typeof d.isTypeSupported=="undefined"){let c="This browser seems to be unable to play encrypted contents currently.Note: Some browsers do not allow decryption in some situations, like when not using HTTPS.";throw new Error(c)}};a=c=>(u(),ne(typeof d.isTypeSupported=="function"),d.isTypeSupported(c)),s=c=>(u(),new d(c)),i="unknown"}e=function(d,u){if(!a(d))return Promise.reject(new Error("Unsupported key type"));for(let c=0;c<u.length;c++){let l=u[c],{videoCapabilities:f,audioCapabilities:p,initDataTypes:h,distinctiveIdentifier:I}=l,g=!0;if(g=g&&(E(h)||h.some(b=>b==="cenc")),g=g&&I!=="required",g){let b={initDataTypes:["cenc"],distinctiveIdentifier:"not-allowed",persistentState:"required",sessionTypes:["temporary","persistent-license"]};f!==void 0&&(b.videoCapabilities=f),p!==void 0&&(b.audioCapabilities=p);let T=s(d);return Promise.resolve(new Vr(d,T,b))}}return Promise.reject(new Error("Unsupported configuration"))}}return{requestMediaKeySystemAccess:e,onEncrypted:t,setMediaKeys:r,implementation:i}}function Zc(){let n=Pe(["needkey"],void 0);return(t,r,i)=>{n(t,o=>{let a=Y(o,{forceSessionRecreation:!0});r(a)},i)}}function Bg(n,e){try{let t;return typeof n.setMediaKeys=="function"?t=n.setMediaKeys(e):typeof n.webkitSetMediaKeys=="function"?t=n.webkitSetMediaKeys(e):typeof n.mozSetMediaKeys=="function"?t=n.mozSetMediaKeys(e):typeof n.msSetMediaKeys=="function"&&e!==null&&(t=n.msSetMediaKeys(e)),typeof t=="object"&&t!==null&&typeof t.then=="function"?t:Promise.resolve(t)}catch(t){return Promise.reject(t)}}function At(n,e){let t=n.length,r=0;for(;r+8<=t;){let i=J(n,r);if(i===0)i=t-r;else if(i===1){if(r+16>t)return-1;i=qe(n,r+8)}if(isNaN(i)||i<=0)return-1;if(J(n,r+4)===e)return r+i<=t?r:-1;r+=i}return-1}function na(n){let e=0,t=[],r=null;for(;e<=n.length;){if(e===n.length){r=null;break}r=n.subarray(e,1/0);let i=At(r,1836019558);if(i<0)break;let o=J(n,i+e),a=e+i+o;if(a>n.length)break;let s=At(r,1835295092);if(s<0)break;let d=J(n,s+e),u=e+s+d;if(u>n.length)break;let c=Math.max(a,u),l=n.subarray(e,c);t.push(l),e=c}return t.length===0?[null,r]:[t,r]}function Fg(n,e,t){return new Uint8Array(Array.prototype.slice.call(n,e,t))}function Kg(n,e,t){return n.slice(e,t)}var Os=typeof Uint8Array.prototype.slice=="function"?Kg:Fg;function Ds(n,e){let t=n;for(let r of e){let i=Ee(t,r);if(i===null)return null;t=i}return t}function Ee(n,e){let t=Ge(n,e);return t!==null?n.subarray(t[1],t[2]):null}function Jc(n,e){let t=[],r=n;for(;;){let i=Ge(r,e);if(i===null)return t;ne(i[2]!==0&&r.length!==0),t.push(r.subarray(i[1],i[2])),r=r.subarray(i[2])}}function Ls(n,e){let t=Ge(n,e);return t!==null?n.subarray(t[0],t[2]):null}function Ge(n,e){let t=n.length,r=0,i,o=0,a;for(;r+8<=t;){if(a=r,o=J(n,a),a+=4,i=J(n,a),a+=4,o===0)o=t-r;else if(o===1){if(a+8>t)return null;o=qe(n,a),a+=8}if(o<0)throw new Error("ISOBMFF: Size out of range");if(i===e)return e===1970628964&&(a+=16),[r,a,r+o];r+=o}return null}function vn(n,e,t,r,i){let o=n.length,a;for(let s=0;s<o;s+=a){let d=s;a=J(n,d),d+=4;let u=J(n,d);if(d+=4,a===0)a=o-s;else if(a===1){if(d+8>o)return;a=qe(n,d),d+=8}if(u===1970628964&&d+16<=o&&J(n,d)===e&&J(n,d+4)===t&&J(n,d+8)===r&&J(n,d+12)===i)return d+=16,n.subarray(d,s+a)}}function Ns(n){let e=n.length;if(e<8)return m.warn("isobmff","box inferior to 8 bytes, cannot find offsets"),null;let t=0,r=J(n,t);t+=4;let i=J(n,t);if(t+=4,r===0)r=e;else if(r===1){if(t+8>e)return m.warn("isobmff","box too short, cannot find offsets"),null;r=qe(n,t),t+=8}if(r<0)throw new Error("ISOBMFF: Size out of range");return i===1970628964&&(t+=16),[0,t,r]}function ra(n){let e=0,t=Ee(n,1836019574);if(t===null)return[];let r=[];for(;e<t.length;){let i;try{i=Ge(t,1886614376)}catch(s){let d=s instanceof Error?s:"";return m.warn("isobmff","Error while removing PSSH from ISOBMFF",d),r}if(i===null)return r;let o=Os(t,i[0],i[2]),a=ia(o,i[1]-i[0]);a!==void 0&&r.push({systemId:a,data:o}),t[i[0]+4]=102,t[i[0]+5]=114,t[i[0]+6]=101,t[i[0]+7]=101,e=i[2]}return r}function ia(n,e){if(n[e]>1){m.warn("isobmff","un-handled PSSH version");return}let t=e+4;if(t+16>n.length)return;let r=Os(n,t,t+16);return Ne(r)}var zr=Math.pow(2,32)-1;var Us={};function ef(n){if(Us[n]!==void 0)return Us[n];let e=Te(n);return Us[n]=e,e}function le(n,e){let t=e.length+8;return t<=zr?de(_e(t),ef(n),e):de(_e(1),ef(n),nn(t+8),e)}function Ue(n,e){return le(n,de(...e))}function Wr(n){let e=Ee(n,1836019558);return e===null?null:Ee(e,1953653094)}function Bs(n){return Jc(n,1836019558).reduce((t,r)=>{let i=Ee(r,1953653094);return i!==null&&t.push(i),t},[])}function Rn(n){return Ee(n,1835295092)}function Fs(n){let e=Ee(n,1836019574);if(e===null)return null;let t=Ee(e,1953653099);return t===null?null:Ee(t,1835297121)}function tf(n,e=0){return Ee(n.subarray(e),1701671783)}function Hr(n){let e=Yc(n,8),t=Ko(n.subarray(10,e+10)),i=new DOMParser().parseFromString(t,"application/xml").querySelector("KID");if(i===null)throw new Error("Cannot parse PlayReady private data: invalid XML");let o=i.textContent===null?"":i.textContent,a=Vo(St(o));return Ne(a).toLowerCase()}function qr(n,e){let t=Ge(n,1936286840);if(t===null)return null;let r=e,i=t[2]-t[0],o=t[1],a=n[o];o+=8;let s=J(n,o);o+=4;let d;if(a===0)d=J(n,o),o+=4,r+=J(n,o)+i,o+=4;else if(a===1)d=qe(n,o),o+=8,r+=qe(n,o)+i,o+=8;else return null;let u=[];o+=2;let c=Xo(n,o);for(o+=2;--c>=0;){let l=J(n,o);o+=4;let f=(l&2147483648)>>>31,p=l&2147483647;if(f===1)throw new Error("sidx with reference_type `1` not yet implemented");let h=J(n,o);o+=4,o+=4,u.push({time:d,duration:h,timescale:s,range:[r,r+p-1]}),d+=h,r+=p}return u}function Gr(n){let e=Wr(n);if(e===null)return;let t=Ee(e,1952867444);if(t===null)return;let r=t[0];if(r===1)return qe(t,4);if(r===0)return J(t,4)}function nf(n){let e=Ee(n,1952868452);if(e===null)return;let t=1,r=Zo(e,t);t+=3;let i=(r&1)>0,o=(r&2)>0;return(r&8)>0?(t+=4,i&&(t+=8),o&&(t+=4),J(e,t)):void 0}function rf(n){let e=Bs(n),t=[];for(let r of e){let i=Ee(r,1953658222);if(i===null)continue;let o=0,a=i[o];if(o+=1,a>1)return[];let s=Zo(i,o);o+=3;let d=(s&256)>0,u=0;if(!d&&(u=nf(r),u===void 0))return[];let c=(s&1)>0,l=(s&4)>0,f=(s&512)>0,p=(s&1024)>0,h=(s&2048)>0,I=J(i,o);o+=4,c&&(o+=4),l&&(o+=4);let g=I;for(;g-- >0;){let b,T,v,_;d?(b=J(i,o),o+=4):b=u,f&&(T=J(i,o),o+=4),p&&(v=J(i,o),o+=4),h&&(_=a===0?J(i,o):jc(i,o),o+=4),t.push({duration:b,compositionTimeOffset:_,size:T,flags:v})}}return t}function jr(n){let e=Bs(n);if(e.length===0)return;let t=0;for(let r of e){let i=Ee(r,1953658222);if(i===null)return;let o=0,a=i[o];if(o+=1,a>1)return;let s=Zo(i,o);o+=3;let d=(s&256)>0,u=0;if(!d&&(u=nf(r),u===void 0))return;let c=(s&1)>0,l=(s&4)>0,f=(s&512)>0,p=(s&1024)>0,h=(s&2048)>0,I=J(i,o);o+=4,c&&(o+=4),l&&(o+=4);let g=I,b=0;for(;g-- >0;)d?(b+=J(i,o),o+=4):b+=u,f&&(o+=4),p&&(o+=4),h&&(o+=4);t+=b}return t}function Yr(n){let e=Fs(n);if(e===null)return;let t=Ee(e,1835296868);if(t===null)return;let r=0,i=t[r];if(r+=4,i===1)return J(t,r+16);if(i===0)return J(t,r+8)}function Ks(n){let e=n.length;if(e<4)throw new Error("Cannot update box length: box too short");let t=J(n,0);if(t===0)if(e>zr){let r=new Uint8Array(e+8);return r.set(_e(1),0),r.set(n.subarray(4,8),4),r.set(nn(e+8),8),r.set(n.subarray(8,e),16),r}else return n.set(_e(e),0),n;else if(t===1){if(e<16)throw new Error("Cannot update box length: box too short");return n.set(nn(e),8),n}else{if(e<=zr)return n.set(_e(e),0),n;{let r=new Uint8Array(e+8);return r.set(_e(1),0),r.set(n.subarray(4,8),4),r.set(nn(e+8),8),r.set(n.subarray(8,e),16),r}}}function of(n){let e=[],t=0;for(;t<n.length;){let r=tf(n,t);if(r===null)break;let i=r.length;t+=i;let o=r[0];if(o!==0)m.warn("isobmff","EMSG version "+o.toString()+" not supported.");else{let a=4,{end:s,string:d}=Is(r,a);a=s;let{end:u,string:c}=Is(r,a);a=u;let l=J(r,a);a+=4;let f=J(r,a);a+=4;let p=J(r,a);a+=4;let h=J(r,a);a+=4;let I=r.subarray(a,i),g={schemeIdUri:d,value:c,timescale:l,presentationTimeDelta:f,eventDuration:p,id:h,messageData:I};e.push(g)}}if(e.length!==0)return e}function af(n){let e=Ds(n,[1836019574,1953653099,1835297121,1835626086,1937007212,1937011556]);if(e===null)return null;let t=e.subarray(8),r=Ee(t,1701733238),i=0;if(r===null?(i=28,r=Ee(t,1701733217)):i=78,r===null)return null;let o=Ds(r.subarray(i),[1936289382,1935894633,1952804451]);if(o===null||o.byteLength<24)return null;let a=o.subarray(8,24);return a.every(s=>s===0)?null:a}var oa=J(Te("pssh"),0);function Vg(n){m.info("DRM","Trying to move CENC PSSH from init data at the end of it.");let e=!1,t=new Uint8Array,r=new Uint8Array,i=0;for(;i<n.length;){if(n.length<i+8||J(n,i+4)!==oa)throw m.warn("DRM","unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let o=J(new Uint8Array(n),i);if(i+o>n.length)throw m.warn("DRM","unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let a=n.subarray(i,i+o);if(n[i+12]===16&&n[i+13]===119&&n[i+14]===239&&n[i+15]===236&&n[i+16]===192&&n[i+17]===178&&n[i+18]===77&&n[i+19]===2&&n[i+20]===172&&n[i+21]===227&&n[i+22]===60&&n[i+23]===30&&n[i+24]===82&&n[i+25]===226&&n[i+26]===251&&n[i+27]===75){let s=Ns(a),d=s===null?void 0:a[s[1]];m.info("DRM","CENC PSSH found with version",d),d===void 0?m.warn("DRM","could not read version of CENC PSSH"):e===(d===1)?t=de(t,a):d===1?(m.warn("DRM","cenc version 1 encountered, removing every other cenc pssh box."),t=a,e=!0):m.warn("DRM","filtering out cenc pssh box with wrong version",d)}else r=de(r,a);i+=o}if(i!==n.length)throw m.warn("DRM","unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");return de(r,t)}function Qr(n,e,t){m.debug("DRM","Calling generateRequest on the MediaKeySession");let r;try{r=Vg(t)}catch(o){r=t}let i=e!=null?e:"";return n.generateRequest(i,r).catch(o=>{if(i!==""||!(o instanceof TypeError))throw o;return m.warn("DRM",'error while calling `generateRequest` with an empty initialization data type. Retrying with a default "cenc" value.',o),n.generateRequest("cenc",r)})}function zg(n){let e=[],t=0;for(;t<n.length;){if(n.length<t+8||J(n,t+4)!==oa)return m.warn("DRM","Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let r=J(new Uint8Array(n),t);if(t+r>n.length)return m.warn("DRM","Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let i=n.subarray(t,t+r),a={systemId:ia(i,8),data:i};Wg(e,a)?m.warn("DRM","Duplicated PSSH found in initialization data, removing it."):e.push(a),t+=r}return t!==n.length?(m.warn("DRM","Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}]):e}function Wg(n,e){for(let t=0;t<n.length;t++){let r=n[t];if((e.systemId===void 0||r.systemId===void 0||e.systemId===r.systemId)&&Se(e.data,r.data))return!0}return!1}function aa(n){let{initData:e,initDataType:t,forceSessionRecreation:r}=n;if(E(e))return m.warn("DRM","No init data found on media encrypted event."),null;let i=new Uint8Array(e),o=zg(i);return{type:t,values:o,forceSessionRecreation:r}}var Hg=100;async function $r(n,e){m.info("DRM","Load persisted session",{sessionId:e});let t=await n.load(e);return!t||n.keyStatuses.size>0?t:new Promise(r=>{n.addEventListener("keystatuseschange",o);let i=setTimeout(o,Hg);function o(){a(),r(t)}function a(){clearTimeout(i),n.removeEventListener("keystatuseschange",o)}})}var sf=ws;function $(n,e,t){if(typeof Array.prototype.includes=="function")return n.includes(e,t);let r=n.length>>>0;if(r===0)return!1;let i=t|0,o=i>=0?Math.min(i,r-1):Math.max(r+i,0),a=(s,d)=>s===d||typeof s=="number"&&typeof d=="number"&&isNaN(s)&&isNaN(d);for(;o<r;){if(a(n[o],e))return!0;o++}return!1}function Xr(n){if(n.sessionId==="")return!1;let e=n.keyStatuses,t=[];return e.forEach(r=>{t.push(r)}),t.length<=0?(m.debug("DRM","isSessionUsable: MediaKeySession given has an empty keyStatuses",{sessionId:n.sessionId}),!1):$(t,"expired")?(m.debug("DRM","isSessionUsable: MediaKeySession given has an expired key",{sessionId:n.sessionId}),!1):$(t,"internal-error")?(m.debug("DRM","isSessionUsable: MediaKeySession given has a key with an internal-error",{sessionId:n.sessionId}),!1):(m.debug("DRM","isSessionUsable: MediaKeySession is usable",{sessionId:n.sessionId}),!0)}function Vs(n,e,t,r){let{loadedSessionsStore:i,persistentSessionsStore:o}=n;return t==="temporary"?df(i,e):o===null?(m.warn("DRM","Cannot create persistent MediaKeySession, PersistentSessionsStore not created."),df(i,e)):qg(i,o,e,r)}function df(n,e){m.info("DRM","Creating a new temporary session");let t=n.createSession(e,"temporary");return Promise.resolve({type:"created-session",value:t})}async function qg(n,e,t,r){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM","Creating persistent MediaKeySession");let i=n.createSession(t,"persistent-license"),o=e.getAndReuse(t);if(o===null)return{type:"created-session",value:i};try{let s=await n.loadPersistentSession(i.mediaKeySession,o.sessionId);if(!s){m.warn("DRM","No data stored for the loaded session",{sessionId:o.sessionId}),e.delete(o.sessionId),n.removeSessionWithoutClosingIt(i.mediaKeySession);let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}return s&&Xr(i.mediaKeySession)?(e.add(t,t.keyIds,i.mediaKeySession),m.info("DRM","Succeeded to load persistent session."),{type:"loaded-persistent-session",value:i}):(m.warn("DRM","Previous persistent session not usable anymore."),a())}catch(s){return m.warn("DRM","Unable to load persistent session: "+(s instanceof Error?s.toString():"Unknown Error")),a()}async function a(){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM","Removing previous persistent session.");let s=e.get(t);s!==null&&e.delete(s.sessionId);try{await n.closeSession(i.mediaKeySession)}catch(u){if(i.mediaKeySession.sessionId!=="")throw u;n.removeSessionWithoutClosingIt(i.mediaKeySession)}if(r.cancellationError!==null)throw r.cancellationError;let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}}async function zs(n,e){if(e<0||e>=n.getLength())return;m.info("DRM","LSS cache limit exceeded",{limit:e,length:n.getLength()});let t=[],r=n.getAll().slice(),i=r.length-e;for(let o=0;o<i;o++){let a=r[o];t.push(n.closeSession(a.mediaKeySession))}await Promise.all(t)}async function Ws(n,e,t,r,i){let o=null,{loadedSessionsStore:a,persistentSessionsStore:s}=e,d=a.reuse(n);if(d!==null){if(o=d.mediaKeySession,Xr(o))return m.info("DRM","Reuse loaded session",{sessionId:o.sessionId}),{type:"loaded-open-session",value:{mediaKeySession:o,sessionType:d.sessionType,keySessionRecord:d.keySessionRecord}};s!==null&&d.mediaKeySession.sessionId!==""&&s.delete(d.mediaKeySession.sessionId)}if(o!==null&&(await a.closeSession(o),i.cancellationError!==null)||(await zs(a,r<=0?r:r-1),i.cancellationError!==null))throw i.cancellationError;let u=await Vs(e,n,t,i);return{type:u.type,value:{mediaKeySession:u.value.mediaKeySession,sessionType:u.value.sessionType,keySessionRecord:u.value.keySessionRecord}}}function Hs(){let{FORCE_CANNOT_REUSE_MEDIA_KEYS:n}=O.getCurrent();return!n&&V.device!==V.DEVICES.WebOs2021&&V.device!==V.DEVICES.WebOs2022&&V.device!==V.DEVICES.WebOsOther&&V.device!==V.DEVICES.PhilipsNetTv&&V.device!==V.DEVICES.Panasonic&&V.device!==V.DEVICES.A1KStb40xx}function uf(n){let{FORCE_CANNOT_RELY_ON_REQUEST_MEDIA_KEY_SYSTEM_ACCESS:e}=O.getCurrent();return!(e||(V.browser===V.BROWSERS.EdgeChromium||V.browser===V.BROWSERS.Firefox)&&n.indexOf("playready")!==-1)}var lf='<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>ckB07BNLskeUq0qd83fTbA==</KID><DS_ID>yYIPDBca1kmMfL60IsfgAQ==</DS_ID><CUSTOMATTRIBUTES xmlns=""><encryptionref>312_4024_2018127108</encryptionref></CUSTOMATTRIBUTES><CHECKSUM>U/tsUYRgMzw=</CHECKSUM></DATA></WRMHEADER>';function cf(n){let e=Fo(n),t=$c(e.length),r=new Uint8Array([1,0]),i=new Uint8Array([1,0]),o=Kr(e.length+6),a=de(o,i,r,t,e),s=Xe("9a04f07998404286ab92e65be0885f95");return Gg(a,s)}function Gg(n,e){let t=Te("pssh"),r=new Uint8Array([0,0,0,0]),i=_e(n.length),o=_e(32+n.length);return de(o,t,r,e,i,n)}function qs(n){let{FORCE_SHOULD_RENEW_MEDIA_KEY_SYSTEM_ACCESS:e}=O.getCurrent();return e?!0:n.indexOf("playready")!==-1&&(V.browser===V.BROWSERS.Ie11||V.browser===V.BROWSERS.EdgeChromium||V.browser===V.BROWSERS.Firefox)}function jg(n,e){let{mimeType:t,codecs:r}=sa(n),{mimeType:i,codecs:o}=sa(e);if(t!==i||r===""||o==="")return!1;let a=r.split(".")[0];a=a==="hev1"?"hvc1":a;let s=o.split(".")[0];return s=s==="hev1"?"hvc1":s,a===s}var Yg=7;function sa(n){var i;let[e,...t]=n.split(";"),r=(i=Q(t,o=>Ce(o,"codecs=")))!=null?i:"";return r=r.substring(Yg),r[0]==='"'&&(r=r.substring(1,r.length-1)),{mimeType:e,codecs:r}}var da=jg;function jn(n,e){return typeof Array.prototype.flatMap=="function"?n.flatMap(e):n.reduce((t,r)=>{let i=e(r);return Array.isArray(i)?(t.push(...i),t):(t.push(i),t)},[])}function Qg(n,e){var c,l,f,p,h,I,g,b,T,v;if(n.label!==e.label)return!1;let t=(c=e.distinctiveIdentifier)!=null?c:"optional",r=(l=n.distinctiveIdentifier)!=null?l:"optional";if(t!==r)return!1;let i=(f=e.persistentState)!=null?f:"optional",o=(p=n.persistentState)!=null?p:"optional";if(i!==o)return!1;let a=(h=e.initDataTypes)!=null?h:[],s=(I=n.initDataTypes)!=null?I:[];if(!mf(s,a))return!1;let d=(g=e.sessionTypes)!=null?g:[],u=(b=n.sessionTypes)!=null?b:[];if(!mf(u,d))return!1;for(let _ of["audioCapabilities","videoCapabilities"]){let R=(T=n[_])!=null?T:[],k=(v=e[_])!=null?v:[];if(!R.every(P=>{var M,L,F,D,B,A;for(let C=0;C<k.length;C++){let N=k[C];if(((M=N.robustness)!=null?M:"")===((L=P.robustness)!=null?L:"")||((F=N.encryptionScheme)!=null?F:null)===((D=P.encryptionScheme)!=null?D:null)||((B=N.robustness)!=null?B:"")===((A=P.robustness)!=null?A:""))return!0}return!1}))return!1}return!0}function $g(n){let{EME_KEY_SYSTEMS:e}=O.getCurrent();for(let t of Object.keys(e))if($(e[t],n))return t}function Xg(n){let{keyName:e,keyType:t,keySystemOptions:r}=n,i,o="optional",a="optional";Array.isArray(r.wantedSessionTypes)?(i=r.wantedSessionTypes,$(r.wantedSessionTypes,"persistent-license")&&!E(r.persistentLicenseConfig)&&(o="required")):E(r.persistentLicenseConfig)?i=["temporary"]:(o="required",i=["persistent-license"]),E(r.persistentState)||(o=r.persistentState),E(r.distinctiveIdentifier)||(a=r.distinctiveIdentifier);let{EME_DEFAULT_AUDIO_CODECS:s,EME_DEFAULT_VIDEO_CODECS:d,EME_DEFAULT_WIDEVINE_ROBUSTNESSES:u,EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:c}=O.getCurrent(),l,f,{audioCapabilitiesConfig:p,videoCapabilitiesConfig:h}=r;if((p==null?void 0:p.type)==="full")l=p.value;else{let g;(p==null?void 0:p.type)==="robustness"?g=p.value:e==="widevine"?g=u:t==="com.microsoft.playready.recommendation"?g=c:g=[],g.length===0&&g.push(void 0);let b=(p==null?void 0:p.type)==="contentType"?p.value:s;l=jn(g,T=>b.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}if((h==null?void 0:h.type)==="full")f=h.value;else{let g;(h==null?void 0:h.type)==="robustness"?g=h.value:e==="widevine"?g=u:t==="com.microsoft.playready.recommendation"?g=c:g=[],g.length===0&&g.push(void 0);let b=(h==null?void 0:h.type)==="contentType"?h.value:d;f=jn(g,T=>b.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}let I={initDataTypes:["cenc"],videoCapabilities:f,audioCapabilities:l,distinctiveIdentifier:a,persistentState:o,sessionTypes:i};return p!==void 0?h!==void 0?[I]:[I,ue(ae({},I),{videoCapabilities:void 0})]:h!==void 0?[I,ue(ae({},I),{audioCapabilities:void 0})]:[I,ue(ae({},I),{audioCapabilities:void 0,videoCapabilities:void 0})]}function ff(n,e){var u,c,l,f,p,h;let t=(c=(u=n.audioCapabilities)==null?void 0:u.map(I=>I.contentType))!=null?c:[],r=(f=(l=n.videoCapabilities)==null?void 0:l.map(I=>I.contentType))!=null?f:[],i=t.concat(r).filter(I=>I!==void 0),o=(p=e.videoCapabilities)==null?void 0:p.map(I=>I.contentType),a=(h=e.audioCapabilities)==null?void 0:h.map(I=>I.contentType),s=[...o!=null?o:[],...a!=null?a:[]].filter(I=>I!==void 0);return s.length===0?[]:i.map(I=>{let{codecs:g,mimeType:b}=sa(I),T=$(s,I);return{codec:g,mimeType:b,result:T}})}function Gs(n,e,t,r){m.info("DRM","Searching for compatible MediaKeySystemAccess");let i=t.reduce((a,s)=>{let{EME_KEY_SYSTEMS:d}=O.getCurrent(),u=d[s.type],c;if(!E(u))c=u.map(l=>({keyName:s.type,keyType:l,keySystemOptions:s}));else{let l=$g(s.type),f=s.type;c=[{keyName:l,keyType:f,keySystemOptions:s}]}return a.concat(c)},[]);return o(0);async function o(a){if(a>=i.length)throw new be("INCOMPATIBLE_KEYSYSTEMS","No key system compatible with your wanted configuration has been found in the current browser.",{keyStatuses:void 0,keySystemConfiguration:void 0,keySystem:void 0});if(E(n.requestMediaKeySystemAccess))throw new Error("requestMediaKeySystemAccess is not implemented in your browser.");let s=i[a],{keyType:d,keySystemOptions:u}=s,c=Xg(s);m.debug("DRM","Request keysystem access",{keyType:d,index:a,length:i.length});let l,f=await Ze.getAttachedMediaKeysState(e);for(let p=0;p<c.length;p++){let h=c[p];if(f!==null&&!qs(f.mediaKeySystemAccess.keySystem)&&d===f.mediaKeySystemAccess.keySystem&&n.implementation===f.emeImplementation.implementation&&Qg(h,f.askedConfiguration))return m.info("DRM","Found cached compatible keySystem"),Promise.resolve({type:"reuse-media-key-system-access",value:{mediaKeySystemAccess:f.mediaKeySystemAccess,askedConfiguration:f.askedConfiguration,options:u,codecSupport:ff(f.askedConfiguration,f.mediaKeySystemAccess.getConfiguration())}});try{return l=await Zg(n,d,[h]),m.info("DRM","Found compatible keysystem",{keyType:d,index:a,configIndex:p}),{type:"create-media-key-system-access",value:{options:u,mediaKeySystemAccess:l,askedConfiguration:h,codecSupport:ff(h,l.getConfiguration())}}}catch(I){if(m.debug("DRM","Rejected access to keysystem",{keyType:d,index:a,configIndex:p}),r.cancellationError!==null)throw r.cancellationError}}return o(a+1)}}async function Zg(n,e,t){let r=await n.requestMediaKeySystemAccess(e,t);if(!uf(e))try{let o=(await r.createMediaKeys()).createSession(),a=cf(lf);await o.generateRequest("cenc",a),o.close().catch(()=>{m.warn("DRM","Failed to close the dummy session")})}catch(i){throw m.debug("DRM","KeySystemAccess was granted but it is not usable"),i}return r}function mf(n,e){for(let t=0;t<n.length;t++)if(!$(e,n[t]))return!1;return!0}function Yn(n,e){for(let t of n)if(!e.some(i=>Se(i,t)))return!1;return!0}function pf(n,e){for(let t of n)if(e.some(i=>Se(i,t)))return!0;return!1}var Zr=class{constructor(e){this._initializationData=e,this._keyIds=null}associateKeyIds(e){this._keyIds===null&&(this._keyIds=[]);let t=Array.from(e);for(let r of t)this.isAssociatedWithKeyId(r)||this._keyIds.push(r)}isAssociatedWithKeyId(e){if(this._keyIds===null)return!1;for(let t of this._keyIds)if(Se(t,e))return!0;return!1}getAssociatedKeyIds(){return this._keyIds===null?[]:this._keyIds}isCompatibleWith(e){let{keyIds:t}=e;if(t!==void 0&&t.length>0){if(this._keyIds!==null&&Yn(t,this._keyIds))return!0;if(this._initializationData.keyIds!==void 0)return Yn(t,this._initializationData.keyIds)}return this._checkInitializationDataCompatibility(e)}_checkInitializationDataCompatibility(e){return e.keyIds!==void 0&&e.keyIds.length>0&&this._initializationData.keyIds!==void 0?Yn(e.keyIds,this._initializationData.keyIds):this._initializationData.type!==e.type?!1:this._initializationData.values.isCompatibleWith(e.values)}};var Jr=class{constructor(e){this._mediaKeys=e,this._storage=[]}createSession(e,t){let r=new Zr(e);m.debug("DRM","calling `createSession`",{sessionType:t});let i=this._mediaKeys.createSession(t),o={mediaKeySession:i,sessionType:t,keySessionRecord:r,isGeneratingRequest:!1,isLoadingPersistentSession:!1,closingStatus:{type:"none"}};return E(i.closed)||i.closed.then(()=>{m.info("DRM","session was closed, removing it.",{sessionId:i.sessionId});let a=this.getIndex(r);a>=0&&this._storage[a].mediaKeySession===i&&this._storage.splice(a,1)}).catch(a=>{m.warn("DRM",`MediaKeySession.closed rejected: ${a}`)}),this._storage.push(ae({},o)),m.debug("DRM","MediaKeySession added",{sessionType:o.sessionType,currentlyLoaded:this._storage.length}),o}reuse(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.keySessionRecord.isCompatibleWith(e))return this._storage.splice(t,1),this._storage.push(r),m.debug("DRM","Reusing session:",{sessionId:r.mediaKeySession.sessionId,sessionType:r.sessionType}),ae({},r)}return null}getEntryForSession(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.mediaKeySession===e)return ae({},r)}return null}async generateLicenseRequest(e,t,r){let i;for(let o of this._storage)if(o.mediaKeySession===e){i=o;break}if(i===void 0)return m.error("DRM","generateRequest error. No MediaKeySession found with the given initData and initDataType"),Qr(e,t,r);if(i.isGeneratingRequest=!0,i.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");try{await Qr(e,t,r)}catch(o){throw i===void 0||(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start()),o}i!==void 0&&(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start())}async loadPersistentSession(e,t){let r;for(let o of this._storage)if(o.mediaKeySession===e){r=o;break}if(r===void 0)return m.error("DRM","loadPersistentSession error. No MediaKeySession found with the given initData and initDataType"),$r(e,t);if(r.isLoadingPersistentSession=!0,r.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");let i;try{i=await $r(e,t)}catch(o){throw r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),o}return r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),i}async closeSession(e){let t;for(let r of this._storage)if(r.mediaKeySession===e){t=r;break}return t===void 0?(m.warn("DRM","No MediaKeySession found with the given initData and initDataType"),Promise.resolve(!1)):this._closeEntry(t)}getLength(){return this._storage.length}getAll(){return this._storage}async closeAllSessions(){let e=this._storage;m.debug("DRM","Closing all current MediaKeySessions",{numberOfEntries:e.length}),this._storage=[];let t=e.map(r=>this._closeEntry(r));await Promise.all(t)}removeSessionWithoutClosingIt(e){ne(e.sessionId==="","Initialized `MediaKeySession`s should always be properly closed");for(let t=this._storage.length-1;t>=0;t--)if(this._storage[t].mediaKeySession===e)return m.debug("DRM","Removing session without closing it",{sessionId:e.sessionId}),this._storage.splice(t,1),!0;return!1}getIndex(e){for(let t=0;t<this._storage.length;t++)if(this._storage[t].keySessionRecord===e)return t;return-1}async _closeEntry(e){let{mediaKeySession:t}=e;return new Promise((r,i)=>{e!==void 0&&(e.isLoadingPersistentSession||e.isGeneratingRequest)?e.closingStatus={type:"awaiting",start:o}:o();function o(){e!==void 0&&(e.closingStatus={type:"pending"}),Jg(t).then(()=>{e!==void 0&&(e.closingStatus={type:"done"}),r(!0)}).catch(a=>{e!==void 0&&(e.closingStatus={type:"failed"}),i(a)})}})}};async function Jg(n){let e=n.sessionId;m.debug("DRM","Trying to close a MediaKeySession",{sessionId:e});try{await Wo(n),m.debug("DRM","Succeeded to close MediaKeySession",{sessionId:e});return}catch(t){m.error("DRM","Could not close MediaKeySession: "+(t instanceof Error?t.toString():"Unknown error"),{sessionId:e});return}}function rn(n){let e=0,t;for(let r=0;r<n.length;r++)t=n[r],e=(e<<5)-e+t,e=e&e;return e}var ft=class{constructor(e){this.initData=e}toJSON(){return $o(this.initData)}static decode(e){return St(e)}};function Qn(n,e){var t,r;return(r=(t=gf(n,e))!=null?t:gf(e,n))!=null?r:!1}function gf(n,e){if(n.length===0)return!1;if(e.length<n.length)return null;let t=n[0],r=0,i=0;for(;i<e.length;i++){let o=e[i];if(o.systemId!==t.systemId)continue;if(o.hash!==t.hash)return!1;let a;t.data instanceof Uint8Array?a=t.data:typeof t.data=="string"?a=ft.decode(t.data):a=t.data.initData;let s;if(o.data instanceof Uint8Array?s=o.data:typeof o.data=="string"?s=ft.decode(o.data):s=o.data.initData,!Se(a,s))return!1;if(e.length-i<n.length)return null;for(r=1;r<n.length;r++){let d=n[r];for(i+=1;i<e.length;i++){let u=e[i];if(d.systemId!==u.systemId)continue;if(d.hash!==u.hash)return!1;let c;d.data instanceof Uint8Array?c=d.data:typeof d.data=="string"?c=ft.decode(d.data):c=d.data.initData;let l;if(u.data instanceof Uint8Array?l=u.data:typeof u.data=="string"?l=ft.decode(u.data):l=u.data.initData,!Se(c,l))return!1;break}if(r===e.length)return null}return!0}return null}function eh(n){yc(n,{save:"function",load:"function"},"persistentLicenseConfig")}var ei=class{constructor(e){eh(e),this._entries=[],this._storage=e;try{let t=this._storage.load();Array.isArray(t)||(t=[]),this._entries=t}catch(t){m.warn("DRM","Persistent store: Could not get entries from license storage",t instanceof Error?t:""),this.dispose()}}getLength(){return this._entries.length}getAll(){return this._entries}get(e){let t=this._getIndex(e);return t===-1?null:this._entries[t]}getAndReuse(e){let t=this._getIndex(e);if(t===-1)return null;let r=this._entries.splice(t,1)[0];return this._entries.push(r),r}add(e,t,r){var s;if(E(r)||!w(r.sessionId)){m.warn("DRM","Persistent Store: Invalid Persisten Session given.");return}let{sessionId:i}=r,o=this._getIndex(e);if(o>=0){let d=t===void 0?3:4,u=this._entries[o];if(((s=u.version)!=null?s:-1)>=d&&i===u.sessionId)return;m.info("DRM","Persistent Store: Updating session info.",{sessionId:i}),this._entries.splice(o,1)}else m.info("DRM","Persistent Store: Add new session",{sessionId:i});let a=th(e.values.getFormattedValues());t===void 0?this._entries.push({version:3,sessionId:i,values:a,initDataType:e.type}):this._entries.push({version:4,sessionId:i,keyIds:t.map(d=>new ft(d)),values:a,initDataType:e.type}),this._save()}delete(e){let t=-1;for(let i=0;i<this._entries.length;i++)if(this._entries[i].sessionId===e){t=i;break}if(t===-1){m.warn("DRM","Persistent Store: initData to delete not found in persistent store.");return}let r=this._entries[t];m.warn("DRM","Persistent Store: Delete session from persistent store",{sessionId:r.sessionId}),this._entries.splice(t,1),this._save()}deleteOldSessions(e){m.info("DRM","Persistent Store: Deleting last sessions.",{sessionsToDelete:e}),!(e<=0)&&(e<=this._entries.length?this._entries.splice(0,e):(m.warn("DRM","Persistent Store: Asked to remove more information that it contains",e,this._entries.length),this._entries=[]),this._save())}dispose(){this._entries=[],this._save()}_getIndex(e){let t=null;function r(){if(t===null){let i=e.values.constructRequestData();t={initData:i,initDataHash:rn(i)}}return t}for(let i=0;i<this._entries.length;i++){let o=this._entries[i];if(o.initDataType===e.type)switch(o.version){case 4:if(Array.isArray(e.keyIds)&&e.keyIds.length>0){if(e.keyIds.every(s=>{let d=$o(s);for(let u of o.keyIds)if(typeof u=="string"){if(d===u)return m.debug("DRM","Persistent Store: Found wanted kid stored on entry",{index:i,keyId:d,sessionId:o.sessionId}),!0}else if(Se(u.initData,s))return m.hasLevel("DEBUG")&&m.debug("DRM","Persistent Store: Found wanted kid stored on entry",{index:i,keyId:d,sessionId:o.sessionId}),!0;return!1}))return m.debug("DRM","Persistent Store: Found compatible entry of v4",{index:i,sessionId:o.sessionId}),i}else{let a=e.values.getFormattedValues();if(Qn(a,o.values))return m.debug("DRM","Persistent Store: Found compatible entry of v4 without init data",{index:i,sessionId:o.sessionId}),i}break;case 3:{let a=e.values.getFormattedValues();if(Qn(a,o.values))return m.debug("DRM","Persistent Store: Found compatible entry of v3 - same values",{index:i,sessionId:o.sessionId}),i;break}case 2:{let{initData:a,initDataHash:s}=r();if(o.initDataHash===s)try{let d=typeof o.initData=="string"?ft.decode(o.initData):o.initData.initData;if(Se(d,a))return m.debug("DRM","Persistent Store: Found compatible entry of v2 - same concatenated init data",{index:i,sessionId:o.sessionId}),i}catch(d){m.warn("DRM","Persistent Store: Could not decode initialization data.",d instanceof Error?d:"")}break}case 1:{let{initData:a,initDataHash:s}=r();if(o.initDataHash===s){if(typeof o.initData.length=="undefined")return m.debug("DRM","Persistent Store: Found compatible entry of v1 - same hash only",{index:i,sessionId:o.sessionId,hash:s}),i;if(Se(o.initData,a))return m.debug("DRM","Persistent Store: Found compatible entry of v1 - same hash and initData",{index:i,sessionId:o.sessionId,hash:s}),i}break}default:{let{initDataHash:a}=r();if(o.initData===a)return m.debug("DRM","Persistent Store: Found compatible entry - same hash only",{index:i,sessionId:o.sessionId,hash:a}),i}}}return-1}_save(){try{this._storage.save(this._entries)}catch(e){let t=e instanceof Error?e:void 0;m.warn("DRM","Persistent Store: Could not save MediaKeySession information",t)}}};function th(n){return n.map(({systemId:e,data:t,hash:r})=>({systemId:e,hash:r,data:new ft(t)}))}var ua=new WeakMap,kn={prepare(n){ua.set(n,null)},set(n,e){let t=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer),r=rn(t);ua.set(n,{hash:r,serverCertificate:t})},hasOne(n){let e=ua.get(n);if(e===void 0)return!1;if(e!==null)return!0},has(n,e){let t=ua.get(n);if(t==null)return!1;let{hash:r,serverCertificate:i}=t,o=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer);if(rn(o)!==r||i.length!==o.length)return!1;for(let s=0;s<i.length;s++)if(i[s]!==o[s])return!1;return!0}};function nh(n){let{persistentLicenseConfig:e}=n;return E(e)?null:(m.debug("DRM","Set the given license storage"),new ei(e))}async function js(n,e,t,r){let i=await Gs(n,e,t,r);if(r.cancellationError!==null)throw r.cancellationError;let{options:o,mediaKeySystemAccess:a,askedConfiguration:s,codecSupport:d}=i.value,u=await Ze.getAttachedMediaKeysState(e),c=nh(o);if(i.value.options.reuseMediaKeys!==!1&&Hs()&&u!==null&&i.type==="reuse-media-key-system-access"){m.debug("DRM","Reusing already created MediaKeys");let{mediaKeys:p,loadedSessionsStore:h}=u;if(kn.hasOne(p)===!1||!E(o.serverCertificate)&&kn.has(p,o.serverCertificate))return{mediaKeys:p,mediaKeySystemAccess:a,askedConfiguration:s,stores:{loadedSessionsStore:h,persistentSessionsStore:c},options:o,codecSupport:d}}let l=await rh(a);m.info("DRM","MediaKeys created with success");let f=new Jr(l);return{mediaKeys:l,mediaKeySystemAccess:a,askedConfiguration:s,stores:{loadedSessionsStore:f,persistentSessionsStore:c},options:o,codecSupport:d}}async function rh(n){m.info("DRM","Calling createMediaKeys on the MediaKeySystemAccess");try{return await n.createMediaKeys()}catch(e){let t=e instanceof Error?e.message:"Unknown error when creating MediaKeys.";throw new be("CREATE_MEDIA_KEYS_ERROR",t,{keyStatuses:void 0,keySystemConfiguration:n.getConfiguration(),keySystem:n.keySystem})}}async function Ys(n,e,t,r){let i=await js(n,e,t,r),{mediaKeys:o}=i;return e.mediaKeys!==null&&e.mediaKeys!==void 0&&o!==e.mediaKeys&&(m.debug("DRM","Disabling old MediaKeys"),await Ze.clearMediaKeys(e)),i}function ti(n){let e=(Math.random()*2-1)*.3;return n*(e+1)}function Qs(n,e,t){let{baseDelay:r,maxDelay:i,totalRetry:o,shouldRetry:a,onRetry:s}=e,d=0;return u();async function u(){if(t.cancellationError!==null)throw t.cancellationError;try{return await n()}catch(c){if(t.cancellationError!==null)throw t.cancellationError;if(!E(a)&&!a(c)||d++>=o)throw c;typeof s=="function"&&s(c,d);let l=ih(r,d,i);return await En(l),u()}}}function ih(n,e,t){let r=n*Math.pow(2,e-1),i=ti(r);return Math.min(i,t)}function $s(n,e){return n.indexOf("playready")!==-1&&(V.browser===V.BROWSERS.EdgeChromium||V.browser===V.BROWSERS.Ie11||V.browser===V.BROWSERS.OtherIeOrEdgePreEdgeChromium)?Vo(e):e}var $n=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.reason=e}},Xs={EXPIRED:"expired",INTERNAL_ERROR:"internal-error",OUTPUT_RESTRICTED:"output-restricted"};function Zs(n,e,t){let{onKeyInternalError:r,onKeyOutputRestricted:i,onKeyExpiration:o}=e,a=[],s=[],d=[];n.keyStatuses.forEach((c,l)=>{let[f,p]=typeof c=="string"?[c,l]:[l,c],h=$s(t.keySystem,new Uint8Array(p)),I={keyId:h.buffer,keyStatus:f};switch(m.hasLevel("DEBUG")&&m.debug("DRM","key status update",{keyId:Ne(h),keyStatus:f}),f){case Xs.EXPIRED:{let g=new be("KEY_STATUS_CHANGE_ERROR",`A decryption key expired (${Ne(h)})`,{keyStatuses:[I,...d],keySystem:t.keySystem,keySystemConfiguration:t.getConfiguration()});if(o==="error"||o===void 0)throw g;switch(o){case"close-session":throw new $n(g);case"fallback":a.push(h);break;default:o==="continue"||o===void 0?s.push(h):ze(o);break}d.push(I);break}case Xs.INTERNAL_ERROR:{let g=new be("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Ne(h)})`,{keyStatuses:[I,...d],keySystem:t.keySystem,keySystemConfiguration:t.getConfiguration()});switch(r){case void 0:case"error":throw g;case"close-session":throw new $n(g);case"fallback":a.push(h);break;case"continue":s.push(h);break;default:if(r!==void 0)ze(r);else throw g}d.push(I);break}case Xs.OUTPUT_RESTRICTED:{let g=new be("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Ne(h)})`,{keyStatuses:[I,...d],keySystem:t.keySystem,keySystemConfiguration:t.getConfiguration()});switch(i){case void 0:case"error":throw g;case"fallback":a.push(h);break;case"continue":s.push(h);break;default:if(i!==void 0)ze(i);else throw g}d.push(I);break}default:s.push(h);break}});let u;return d.length>0&&(u=new be("KEY_STATUS_CHANGE_ERROR","One or several problematic key statuses have been encountered",{keyStatuses:d,keySystem:t.keySystem,keySystemConfiguration:t.getConfiguration()})),{warning:u,blacklistedKeyIds:a,whitelistedKeyIds:s}}function Js(n,e,t,r,i){m.info("DRM","Binding session events",{sessionId:n.sessionId});let{getLicenseConfig:o={}}=e,a=new U;a.linkToSignal(i),E(n.closed)||n.closed.then(()=>a.cancel()).catch(c=>{i.isCancelled()||(a.cancel(),r.onError(c))}),jo(n,c=>{a.cancel(),r.onError(new be("KEY_ERROR",c.type,{keyStatuses:void 0,keySystemConfiguration:t.getConfiguration(),keySystem:t.keySystem}))},a.signal),zc(n,()=>{m.info("DRM","keystatuseschange event received",{sessionId:n.sessionId});try{s()}catch(c){if(i.isCancelled()||a.isUsed()&&c instanceof Tr)return;a.cancel(),r.onError(c)}},a.signal),Go(n,c=>{let l=c,f=new Uint8Array(l.message),p=w(l.messageType)?l.messageType:"license-request";m.info("DRM","Received message event",{messageType:p,sessionId:n.sessionId});let h=u(o.retry);Qs(()=>d(f,p),h,a.signal).then(async I=>{if(!a.isUsed())if(E(I))m.info("DRM","No license given, skipping session.update");else try{await oh(n,I,t)}catch(g){a.cancel(),r.onError(g)}},I=>{if(a.isUsed())return;a.cancel();let g=hf(I,t);if(!E(I)){let{fallbackOnLastTry:b}=I;if(b===!0){m.warn("DRM","Last `getLicense` attempt failed. Blacklisting the current session."),r.onError(new Xn(g));return}}r.onError(g)})},a.signal),m.info("DRM","transmitting current keystatuses",{sessionId:n.sessionId}),s();return;function s(){if(a.isUsed()||n.keyStatuses.size===0)return;let{warning:c,blacklistedKeyIds:l,whitelistedKeyIds:f}=Zs(n,e,t);c!==void 0&&(r.onWarning(c),a.isUsed())||r.onKeyUpdate({whitelistedKeyIds:f,blacklistedKeyIds:l})}function d(c,l){let f;return new Promise((p,h)=>{try{m.debug("DRM","Calling `getLicense`",{messageType:l});let b=e.getLicense(c,l),T=E(o.timeout)?10*1e3:o.timeout;T>=0&&(f=setTimeout(()=>{h(new ni(`"getLicense" timeout exceeded (${T} ms)`))},T)),Promise.resolve(b).then(I,g)}catch(b){g(b)}function I(b){f!==void 0&&clearTimeout(f),p(b)}function g(b){f!==void 0&&clearTimeout(f),h(b)}})}function u(c){return{totalRetry:c!=null?c:2,baseDelay:200,maxDelay:3e3,shouldRetry:l=>l instanceof ni||E(l)||l.noRetry!==!0,onRetry:l=>r.onWarning(hf(l,t))}}}function hf(n,e){if(n instanceof ni)return new be("KEY_LOAD_TIMEOUT","The license server took too much time to respond.",{keyStatuses:void 0,keySystemConfiguration:e.getConfiguration(),keySystem:e.keySystem});let t=new be("KEY_LOAD_ERROR","An error occured when calling `getLicense`.",{keyStatuses:void 0,keySystemConfiguration:e.getConfiguration(),keySystem:e.keySystem});return!E(n)&&w(n.message)&&(t.message=n.message),t}async function oh(n,e,t){m.info("DRM","Updating MediaKeySession with message");try{await n.update(e)}catch(r){let i=r instanceof Error?r.toString():"`session.update` failed";throw new be("KEY_UPDATE_ERROR",i,{keyStatuses:void 0,keySystemConfiguration:t.getConfiguration(),keySystem:t.keySystem})}m.info("DRM","MediaKeySession update succeeded.")}var Xn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.sessionError=e}},ni=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Xn.prototype),this.message=e}};async function ah(n,e,t){try{return await n.setServerCertificate(e)}catch(r){m.warn("DRM","mediaKeys.setServerCertificate returned an error",r instanceof Error?r:"");let i=r instanceof Error?r.toString():"`setServerCertificate` error";throw new be("LICENSE_SERVER_CERTIFICATE_ERROR",i,{keyStatuses:void 0,keySystemConfiguration:t.getConfiguration(),keySystem:t.keySystem})}}async function ed(n,e,t){if(kn.hasOne(n)===!0)return m.info("DRM","The MediaKeys already has a server certificate, skipping..."),{type:"already-has-one"};if(typeof n.setServerCertificate!="function")return m.warn("DRM","Could not set the server certificate. mediaKeys.setServerCertificate is not a function"),{type:"method-not-implemented"};m.info("DRM","Setting server certificate on the MediaKeys"),kn.prepare(n);try{let r=await ah(n,e,t);return kn.set(n,e),{type:"success",value:r}}catch(r){return{type:"error",value:Zt(r)?r:new be("LICENSE_SERVER_CERTIFICATE_ERROR","Unknown error when setting the server certificate.",{keyStatuses:void 0,keySystemConfiguration:t.getConfiguration(),keySystem:t.keySystem})}}}function td(n,e){if(isNaN(e)||e<0||e>=n.getLength())return;let t=n.getLength(),r=t-e;m.info("DRM","Too many stored persistent sessions, removing some.",{numberOfPersistentSessions:t,toDelete:r}),n.deleteOldSessions(r)}function nd(n){if(Ce(n,"com.microsoft.playready")||n==="com.chromecast.playready"||n==="com.youtube.playready")return"9a04f07998404286ab92e65be0885f95";if(n==="com.widevine.alpha")return"edef8ba979d64acea3c827dcd51d21ed";if(Ce(n,"com.apple.fps"))return"94ce86fb07ff4f43adb893d2fa968ca2";if(Ce(n,"com.nagra."))return"adb41c242dbf4a6d958b4457c0d27b95"}var ri=class n{constructor(e){this._innerValues=e,this._lazyFormattedValues=null}constructRequestData(){return de(...this._innerValues.map(e=>e.data))}isCompatibleWith(e){let t=e instanceof n?e.getFormattedValues():e;return Qn(this.getFormattedValues(),t)}getFormattedValues(){return this._lazyFormattedValues===null&&(this._lazyFormattedValues=sh(this._innerValues)),this._lazyFormattedValues}};function sh(n){return n.slice().sort((e,t)=>e.systemId===t.systemId?0:e.systemId===void 0?1:t.systemId===void 0||e.systemId<t.systemId?-1:1).map(({systemId:e,data:t})=>({systemId:e,data:t,hash:rn(t)}))}function rd(n,e,t){let r=`${n};codecs="${e}"`,i=t.filter(o=>o.mimeType===n);if(i.length!==0)for(let{codec:o,mimeType:a,result:s}of i){let d=`${a};codecs="${o}"`;if(da(r,d))return s}}var ii=class extends se{constructor(e,t,r){super(),m.debug("DRM","Starting ContentDecryptor logic.");let i=new U;this._currentSessions=[],this._canceller=i,this._initDataQueue=[],this._stateData={state:0,isMediaKeysAttached:0,isInitDataQueueLocked:!0,data:null},this._supportedCodecWhenEncrypted=[],this.error=null,this._eme=e,this._eme.onEncrypted(t,o=>{m.debug("DRM","Encrypted event received from media element.");let a=aa(o);a!==null&&this.onInitializationData(a)},i.signal),Ys(this._eme,t,r,i.signal).then(o=>{let{options:a,mediaKeySystemAccess:s}=o;this._supportedCodecWhenEncrypted=o.codecSupport;let d;(E(a.persistentLicenseConfig)||a.persistentLicenseConfig.disableRetroCompatibility===!0)&&(d=nd(s.keySystem)),this.systemId=d,this._stateData.state===0&&(m.debug("DRM","Waiting for attachment."),this._stateData={state:1,isInitDataQueueLocked:!0,isMediaKeysAttached:0,data:{mediaKeysInfo:o,mediaElement:t}},this.trigger("stateChange",this._stateData.state))}).catch(o=>{this._onFatalError(o)})}getState(){return this._stateData.state}attach(){if(this._stateData.state!==1)throw new Error("`attach` should only be called when in the WaitingForAttachment state");if(this._stateData.isMediaKeysAttached!==0){m.warn("DRM","ContentDecryptor's `attach` method called more than once.");return}let{mediaElement:e,mediaKeysInfo:t}=this._stateData.data,{options:r,mediaKeys:i,mediaKeySystemAccess:o,stores:a,askedConfiguration:s}=t;if(r.disableMediaKeysAttachmentLock===!0&&(m.debug("DRM","disabling MediaKeys attachment lock. Ready for content"),this._stateData={state:2,isInitDataQueueLocked:!0,isMediaKeysAttached:1,data:{mediaKeysInfo:t,mediaElement:e}},this.trigger("stateChange",this._stateData.state),this._isStopped()))return;this._stateData.isMediaKeysAttached=1;let u={emeImplementation:this._eme,loadedSessionsStore:a.loadedSessionsStore,mediaKeySystemAccess:o,mediaKeys:i,askedConfiguration:s,keySystemOptions:r};m.debug("DRM","Attaching current MediaKeys"),Ze.attach(e,u).then(async()=>{if(this._isStopped())return;this._stateData.isMediaKeysAttached=2;let{serverCertificate:c}=r;if(!E(c)){let f=await ed(i,c,o);f.type==="error"&&this.trigger("warning",f.value)}if(this._isStopped())return;let l=this._stateData.state;this._stateData={state:2,isMediaKeysAttached:2,isInitDataQueueLocked:!1,data:{mediaKeysData:t}},l!==2&&this.trigger("stateChange",2),this._isStopped()||this._processCurrentInitDataQueue()}).catch(c=>{this._onFatalError(c)})}dispose(){this.removeEventListener(),this._stateData={state:4,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("stateChange",this._stateData.state)}isCodecSupported(e,t){if(this._stateData.state===0){m.error("DRM","Asking for codec support while the ContentDecryptor is still initializing");return}return(this._stateData.state===3||this._stateData.state===4)&&m.error("DRM","Asking for codec support while the ContentDecryptor is disposed"),rd(e,t,this._supportedCodecWhenEncrypted)}onInitializationData(e){if(this._stateData.isInitDataQueueLocked!==!1){if(this._isStopped())throw new Error("ContentDecryptor either disposed or stopped.");this._initDataQueue.push(e);return}let{mediaKeysData:t}=this._stateData.data,r=ue(ae({},e),{values:new ri(e.values)});this._processInitializationData(r,t).catch(i=>{this._onFatalError(i)})}async _processInitializationData(e,t){var I,g,b;m.hasLevel("DEBUG")&&m.debug("DRM","processing init data",(I=e.content)==null?void 0:I.adaptation.type,(g=e.content)==null?void 0:g.representation.bitrate,((b=e.keyIds)!=null?b:[]).map(T=>Ne(T)).join(", "));let{mediaKeySystemAccess:r,stores:i,options:o}=t;if(this._tryToUseAlreadyCreatedSession(e,t)||this._isStopped())return;if(o.singleLicensePer==="content"){let T=Q(this._currentSessions,v=>v.source==="created-session");if(T!==void 0){let v=e.keyIds;if(v===void 0){e.content===void 0?m.warn("DRM","Unable to fallback from a non-decipherable quality."):(m.debug("DRM","Blacklisting new init data (due to singleLicensePer content policy)"),this.trigger("blackListProtectionData",e));return}if(T.record.associateKeyIds(v),e.content===void 0)m.warn("DRM","Unable to fallback from a non-decipherable quality.");else{if(m.hasLevel("DEBUG")){let _=v.reduce((R,k)=>`${R}, ${Ne(k)}`,"");m.debug("DRM","Blacklisting new key ids",_)}this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:v,delistedKeyIds:[]})}return}}else if(o.singleLicensePer==="periods"&&e.content!==void 0){let{period:T}=e.content,v=this._currentSessions.filter(R=>R.source==="created-session"),_=new Set;od(_,T);for(let R of v){let k=Array.from(_);for(let x of k)if(R.record.isAssociatedWithKeyId(x)){R.record.associateKeyIds(_.values());for(let P of k)!R.keyStatuses.whitelisted.some(M=>Se(M,P))&&!R.keyStatuses.blacklisted.some(M=>Se(M,P))&&R.keyStatuses.blacklisted.push(P);m.hasLevel("DEBUG")&&m.debug("DRM","Session already created for",Ne(x),'under singleLicensePer "periods" policy'),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:R.keyStatuses.whitelisted,blacklistedKeyIds:R.keyStatuses.blacklisted,delistedKeyIds:[]});return}}}this._lockInitDataQueue();let a;dh(r)&&(!E(o.persistentLicenseConfig)||!uh(r))?a="persistent-license":a="temporary";let{EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:s,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:d}=O.getCurrent(),u=typeof o.maxSessionCacheSize=="number"?o.maxSessionCacheSize:s,c=await Ws(e,i,a,u,this._canceller.signal);if(this._isStopped())return;let l={record:c.value.keySessionRecord,source:c.type,keyStatuses:{whitelisted:[],blacklisted:[]},blacklistedSessionError:null};this._currentSessions.push(l);let{mediaKeySession:f,sessionType:p}=c.value,h=!1;if(Js(f,o,r,{onKeyUpdate:T=>{let v=fh(e,l.record,o.singleLicensePer,l.source==="created-session",T.whitelistedKeyIds,T.blacklistedKeyIds);if(l.record.associateKeyIds(v.whitelisted),l.record.associateKeyIds(v.blacklisted),l.keyStatuses={whitelisted:v.whitelisted,blacklisted:v.blacklisted},l.record.getAssociatedKeyIds().length!==0&&p==="persistent-license"&&i.persistentSessionsStore!==null&&!h){let{persistentSessionsStore:_}=i;td(_,d-1),_.add(e,l.record.getAssociatedKeyIds(),f),h=!0}e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:v.whitelisted,blacklistedKeyIds:v.blacklisted,delistedKeyIds:[]}),this._unlockInitDataQueue()},onWarning:T=>{this.trigger("warning",T)},onError:T=>{var v;if(T instanceof $n){m.warn("DRM","A session's closing condition has been triggered"),this._lockInitDataQueue();let _=this._currentSessions.indexOf(l);_>=0&&this._currentSessions.splice(_),e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:[],delistedKeyIds:l.record.getAssociatedKeyIds()}),(v=i.persistentSessionsStore)==null||v.delete(f.sessionId),i.loadedSessionsStore.closeSession(f).catch(R=>{let k=R instanceof Error?R:"unknown error";m.warn("DRM","failed to close expired session",k)}).then(()=>this._unlockInitDataQueue()).catch(R=>this._onFatalError(R)),this._isStopped()||this.trigger("warning",T.reason);return}if(!(T instanceof Xn)){this._onFatalError(T);return}l.blacklistedSessionError=T,e.content!==void 0&&(m.info("DRM","blacklisting Representations based on protection data."),this.trigger("blackListProtectionData",e)),this._unlockInitDataQueue()}},this._canceller.signal),(o.singleLicensePer===void 0||o.singleLicensePer==="init-data")&&this._unlockInitDataQueue(),c.type==="created-session"){let T=e.values.constructRequestData();try{await i.loadedSessionsStore.generateLicenseRequest(f,e.type,T)}catch(v){let _=i.loadedSessionsStore.getEntryForSession(f);if(_===null||_.closingStatus.type!=="none"){let R=this._currentSessions.indexOf(l);return R>=0&&this._currentSessions.splice(R,1),Promise.resolve()}throw new be("KEY_GENERATE_REQUEST_ERROR",v instanceof Error?v.toString():"Unknown error",{keyStatuses:void 0,keySystemConfiguration:r.getConfiguration(),keySystem:r.keySystem})}}return Promise.resolve()}_tryToUseAlreadyCreatedSession(e,t){let{stores:r,options:i}=t,o=Q(this._currentSessions,c=>c.record.isCompatibleWith(e));if(o===void 0)return!1;if(e.forceSessionRecreation===!0)return this.removeSessionForInitData(e,t),!1;let s=o.blacklistedSessionError;if(!E(s))return e.type===void 0||e.content===void 0?(m.error("DRM","This initialization data has already been blacklisted but the current content is not known."),!0):(m.info("DRM","This initialization data has already been blacklisted. Blacklisting the related content."),this.trigger("blackListProtectionData",e),!0);if(e.keyIds!==void 0){let c;if(i.singleLicensePer===void 0||i.singleLicensePer==="init-data"){let{blacklisted:l}=o.keyStatuses;c=pf(e.keyIds,l)}else{let{whitelisted:l}=o.keyStatuses;c=!Yn(e.keyIds,l)}if(c)return e.content===void 0?(m.error("DRM","Cannot forbid key id, the content is unknown."),!0):(m.info("DRM","Current initialization data is linked to blacklisted keys. Marking Representations as not decipherable"),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:e.keyIds,delistedKeyIds:[]}),!0)}if(r.loadedSessionsStore.reuse(e)!==null)return m.debug("DRM","Init data already processed. Skipping it."),!0;let u=this._currentSessions.indexOf(o);return u===-1?m.error("DRM","Unable to remove processed init data: not found."):(m.debug("DRM","A session from a processed init data is not available anymore. Re-processing it."),this._currentSessions.splice(u,1)),!1}removeSessionForInitData(e,t){let{stores:r}=t,i=r.loadedSessionsStore.reuse(e);i!==null&&r.loadedSessionsStore.closeSession(i.mediaKeySession).catch(()=>m.error("DRM","Cannot close the session from the loaded session store"));let o=Q(this._currentSessions,s=>s.record.isCompatibleWith(e));if(o===void 0)return;let a=this._currentSessions.indexOf(o);a!==-1&&(m.debug("DRM","A session from a processed init is removed due to forceSessionRecreation policy."),this._currentSessions.splice(a,1))}_onFatalError(e){if(this._canceller.isUsed())return;let t=e instanceof Error?e:new We("NONE","Unknown decryption error");this.error=t,this._initDataQueue.length=0,this._stateData={state:3,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("error",t),this._stateData.state===3&&this.trigger("stateChange",this._stateData.state)}_isStopped(){return this._stateData.state===4||this._stateData.state===3}_processCurrentInitDataQueue(){for(;this._stateData.isInitDataQueueLocked===!1;){let e=this._initDataQueue.shift();if(e===void 0)return;this.onInitializationData(e)}}_lockInitDataQueue(){this._stateData.isInitDataQueueLocked===!1&&(this._stateData.isInitDataQueueLocked=!0)}_unlockInitDataQueue(){if(this._stateData.isMediaKeysAttached!==2){m.error("DRM","Trying to unlock in the wrong state");return}this._stateData.isInitDataQueueLocked=!1,this._processCurrentInitDataQueue()}};function dh(n){let{sessionTypes:e}=n.getConfiguration();return e!==void 0&&$(e,"persistent-license")}function uh(n){let{sessionTypes:e}=n.getConfiguration();return e!==void 0&&$(e,"temporary")}function yf(n,e){return n.filter(t=>!e.some(r=>Se(r,t)))}function lh(n,e){let t=n.getAssociatedKeyIds(),r=yf(t,e);return r.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM","KeySessionRecord's keys missing in the license, blacklisting them",r.map(i=>Ne(i)).join(", ")),r}function ch(n,e){let t=[],{keyIds:r}=n;return r!==void 0&&(t=yf(r,e)),t.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM","init data keys missing in the license, blacklisting them",t.map(i=>Ne(i)).join(", ")),t}function fh(n,e,t,r,i,o){var u;let a=[...i,...o],s=lh(e,a),d=a.concat(s);if(t!==void 0&&t!=="init-data"){let c=ch(n,d);d.push(...c);let{content:l}=n;if(r&&l!==void 0){if(t==="content"){let f=new Set,{manifest:p}=l;for(let h of p.periods)od(f,h);id(f,d)}else if(t==="periods"){let{manifest:f}=l;for(let p of f.periods){let h=new Set;if(od(h,p),((u=n.content)==null?void 0:u.period.id)===p.id)id(h,d);else{let I=Array.from(h);for(let g of I)if(d.some(T=>Se(T,g))){id(h,d);break}}}}}}return{whitelisted:i,blacklisted:d.slice(i.length)}}function id(n,e){let t=Array.from(n.values());for(let r of t)e.some(o=>Se(o,r))||e.push(r)}function od(n,e){let t=e.adaptations,r=Cr(t).reduce((i,o)=>E(o)?i:i.concat(o),[]);for(let i of r)for(let o of i.representations)if(o.contentProtections!==void 0&&o.contentProtections.keyIds!==void 0)for(let a of o.contentProtections.keyIds)n.add(a)}function Zn(n){let e=Ze.getAwaitedState(n);return e===null?null:[e.mediaKeySystemAccess.keySystem,e.mediaKeySystemAccess.getConfiguration()]}var If=ii;function bf(n){var t,r,i,o,a;let e=[];for(let s of n.periods){let d=[...(t=s.adaptations.video)!=null?t:[],...(r=s.adaptations.audio)!=null?r:[]];for(let u of d)if(u.supportStatus.hasCodecWithUndefinedSupport)for(let c of u.representations)c.isSupported===void 0&&e.push({mimeType:(i=c.mimeType)!=null?i:"",codec:(a=(o=c.codecs)==null?void 0:o[0])!=null?a:""})}return e}var Sf=[];function Ft(n){$(Sf,n)||(console.warn(n),Sf.push(n))}var oi=class{constructor(e){this.supportMap=new Map,this.addCodecs(e)}addCodecs(e){for(let t of e){let r=this.supportMap.get(t.mimeType);r===void 0&&(r=new Map,this.supportMap.set(t.mimeType,r)),r.set(t.codec,{supported:t.supported,supportedIfEncrypted:t.supportedIfEncrypted})}}isSupported(e,t,r){let i=this.supportMap.get(e);if(i===void 0)return;let o=i.get(t);if(o!==void 0)return r?o.supportedIfEncrypted:o.supported}};var ai=class{constructor(e,t,r){if(this.id=e.id,this.adaptations=mh(e.adaptations,t,r),Tf(this.adaptations.video)&&Tf(this.adaptations.audio))throw new re("MANIFEST_PARSE_ERROR","The manifest has no video nor audio tracks.");this.thumbnailTracks=e.thumbnailTracks.map(i=>({id:i.id,mimeType:i.mimeType,index:i.index,cdnMetadata:i.cdnMetadata,height:i.height,width:i.width,horizontalTiles:i.horizontalTiles,verticalTiles:i.verticalTiles,start:i.start,end:i.end,tileDuration:i.tileDuration})),this.duration=e.duration,this.start=e.start,!E(this.duration)&&!E(this.start)&&(this.end=this.start+this.duration),this.streamEvents=e.streamEvents===void 0?[]:e.streamEvents}refreshCodecSupport(e,t){Object.keys(this.adaptations).forEach(r=>{let i=this.adaptations[r];if(i!==void 0)for(let o of i){if(!o.supportStatus.hasCodecWithUndefinedSupport)continue;let a=o.supportStatus.hasSupportedCodec;o.refreshCodecSupport(t),a!==!1&&o.supportStatus.hasSupportedCodec===!1&&e.push(o)}},{})}getAdaptations(){return ys(this)}getAdaptationsForType(e){let t=this.adaptations[e];return t!=null?t:[]}getAdaptation(e){return Q(this.getAdaptations(),({id:t})=>e===t)}getSupportedAdaptations(e){return Ot(this,e)}containsTime(e,t){return hs(this,e,t)}getMetadataSnapshot(){let e={},t=this.getAdaptations();for(let r of t){let i=e[r.type];i===void 0&&(i=[],e[r.type]=i),i.push(r.getMetadataSnapshot())}return{start:this.start,end:this.end,id:this.id,streamEvents:this.streamEvents,adaptations:e,thumbnailTracks:this.thumbnailTracks.map(r=>({id:r.id,mimeType:r.mimeType,height:r.height,width:r.width,horizontalTiles:r.horizontalTiles,verticalTiles:r.verticalTiles,start:r.start,end:r.end,tileDuration:r.tileDuration}))}}};function Tf(n){return Array.isArray(n)?n.length===0:!0}function mh(n,e,t){let r={};for(let[i,o]of Object.entries(n))E(o)||(r[i]=o.map(a=>new Ur(a,e,{representationFilter:t})).filter(a=>a.representations.length>0));return r}function si(n,e,t){let r={updatedAdaptations:[],removedAdaptations:[],addedAdaptations:[],updatedThumbnailTracks:[],removedThumbnailTracks:[],addedThumbnailTracks:[]};n.start=e.start,n.end=e.end,n.duration=e.duration,n.streamEvents=e.streamEvents;let i=n.thumbnailTracks,o=e.thumbnailTracks;for(let d=0;d<i.length;d++){let u=i[d],c=Ie(o,l=>l.id===u.id);if(c===-1){m.warn("manifest",'ThumbnailTrack "'+i[d].id+'" not found when merging.');let[l]=i.splice(d,1);d--,r.removedThumbnailTracks.push({id:l.id})}else{let[l]=o.splice(c,1);u.mimeType=l.mimeType,u.height=l.height,u.width=l.width,u.horizontalTiles=l.horizontalTiles,u.verticalTiles=l.verticalTiles,u.start=l.start,u.end=l.end,u.tileDuration=l.tileDuration,u.cdnMetadata=l.cdnMetadata,t===0?u.index._replace(l.index):u.index._update(l.index),r.updatedThumbnailTracks.push({id:u.id,mimeType:u.mimeType,height:u.height,width:u.width,horizontalTiles:u.horizontalTiles,verticalTiles:u.verticalTiles,start:u.start,end:u.end,tileDuration:u.tileDuration})}}o.length>0&&(m.warn("manifest",`${o.length} new Thumbnail tracks found when merging.`),r.addedThumbnailTracks.push(...o.map(d=>({id:d.id,mimeType:d.mimeType,height:d.height,width:d.width,horizontalTiles:d.horizontalTiles,verticalTiles:d.verticalTiles,start:d.start,end:d.end,tileDuration:d.tileDuration}))),n.thumbnailTracks.push(...o));let a=n.getAdaptations(),s=e.getAdaptations();for(let d=0;d<a.length;d++){let u=a[d],c=Ie(s,l=>l.id===u.id);if(c===-1){m.warn("manifest",'Adaptation "'+a[d].id+'" not found when merging.');let[l]=a.splice(d,1);d--,r.removedAdaptations.push({id:l.id,trackType:l.type})}else{let[l]=s.splice(c,1),f=[],p=[],h=[];r.updatedAdaptations.push({adaptation:u.id,trackType:u.type,updatedRepresentations:f,addedRepresentations:p,removedRepresentations:h});let I=u.representations,g=l.representations.slice();for(let b=0;b<I.length;b++){let T=I[b],v=Ie(g,_=>_.id===T.id);if(v===-1){m.warn("manifest",`Representation "${I[b].id}" not found when merging.`);let[_]=I.splice(b,1);b--,h.push(_.id)}else{let[_]=g.splice(v,1);f.push(T.getMetadataSnapshot()),T.cdnMetadata=_.cdnMetadata,t===0?T.index._replace(_.index):T.index._update(_.index)}}g.length>0&&(m.warn("manifest",`${g.length} new Representations found when merging.`),u.representations.push(...g),p.push(...g.map(b=>b.getMetadataSnapshot())))}}if(s.length>0){m.warn("manifest",`${s.length} new Adaptations found when merging.`);for(let d of s){let u=n.adaptations[d.type];u===void 0?n.adaptations[d.type]=[d]:u.push(d),r.addedAdaptations.push(d.getMetadataSnapshot())}}return r}function Ef(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]},r=0;for(let o=0;o<e.length;o++){let a=e[o],s=r,d=n[s];for(;d!==void 0&&d.id!==a.id;)s++,d=n[s];if(d!==void 0){let u=si(d,a,0);t.updatedPeriods.push({period:{id:d.id,start:d.start,end:d.end,duration:d.duration,streamEvents:d.streamEvents},result:u});let c=e.slice(r,o),l=s-r,f=n.splice(r,l,...c);t.removedPeriods.push(...f.map(p=>({id:p.id,start:p.start,end:p.end}))),t.addedPeriods.push(...c.map(p=>p.getMetadataSnapshot())),r=o+1}}if(r>n.length)return m.error("manifest","error when updating Periods"),t;if(r<n.length){let o=n.splice(r,n.length-r);t.removedPeriods.push(...o.map(a=>({id:a.id,start:a.start,end:a.end})))}let i=e.slice(r,e.length);return i.length>0&&(n.push(...i),t.addedPeriods.push(...i.map(o=>o.getMetadataSnapshot()))),t}function _f(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]};if(n.length===0)return n.splice(0,0,...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t;if(e.length===0)return t;let r=n[n.length-1];if(r.start<e[0].start){if(r.end!==e[0].start)throw new re("MANIFEST_UPDATE_ERROR","Cannot perform partial update: not enough data");return n.push(...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t}let i=Ie(n,({id:s})=>s===e[0].id);if(i<0)throw new re("MANIFEST_UPDATE_ERROR","Cannot perform partial update: incoherent data");let o=si(n[i],e[0],1);t.updatedPeriods.push({period:Y(n[i].getMetadataSnapshot(),{adaptations:void 0}),result:o});let a=i+1;for(let s=1;s<e.length;s++){let d=e[s],u=-1;for(let c=a;c<n.length;c++)if(d.id===n[c].id){u=c;break}if(u<0){let c=-1;for(let p=a;p<n.length;p++)if(d.start<n[p].start){c=p;break}let l=c-a,f=n.splice(a,l,d);t.addedPeriods.push(d.getMetadataSnapshot()),t.removedPeriods.push(...f.map(p=>({id:p.id,start:p.start,end:p.end})))}else{if(u>a){m.warn("manifest","old Periods not found in new when updating, removing");let l=n.splice(a,u-a);t.removedPeriods.push(...l.map(f=>({id:f.id,start:f.start,end:f.end}))),u=a}let c=si(n[u],d,0);t.updatedPeriods.push({period:Y(n[u].getMetadataSnapshot(),{adaptations:void 0}),result:c})}a++}if(a<n.length){m.warn("manifest","Ending Periods not found in new when updating, removing");let s=n.splice(a,n.length-a);t.removedPeriods.push(...s.map(d=>({id:d.id,start:d.start,end:d.end})))}return t}var ph=rt(),di=class extends se{constructor(e,t){var o;super();let{representationFilter:r,manifestUpdateUrl:i}=t;this.manifestFormat=0,this.id=ph(),this.expired=(o=e.expired)!=null?o:null,this.transport=e.transportType,this.clockOffset=e.clockOffset,this._cachedCodecSupport=new oi([]),this.periods=e.periods.map(a=>new ai(a,this._cachedCodecSupport,r)).sort((a,s)=>a.start-s.start),this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.timeBounds=e.timeBounds,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.uris=e.uris===void 0?[]:e.uris,this.updateUrl=i,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.availabilityStartTime=e.availabilityStartTime,this.publishTime=e.publishTime}updateCodecSupport(e=[]){if(e.length===0)return null;this._cachedCodecSupport.addCodecs(e);let t=[];for(let r of this.periods)r.refreshCodecSupport(t,this._cachedCodecSupport);return this.trigger("supportUpdate",null),t.length>0?new re("MANIFEST_INCOMPATIBLE_CODECS_ERROR","An Adaptation contains only incompatible codecs.",{tracks:t.map(Tn)}):null}getPeriod(e){return Q(this.periods,t=>e===t.id)}getPeriodForTime(e){return Hn(this,e)}getNextPeriod(e){return Q(this.periods,t=>t.start>e)}getPeriodAfter(e){return Do(this,e)}getUrls(){return this.uris}replace(e){this._performUpdate(e,0)}update(e){this._performUpdate(e,1)}getMinimumSafePosition(){return bn(this)}getLivePosition(){return Sn(this)}getMaximumSafePosition(){return kt(this)}updateCodecSupportList(e){this._cachedCodecSupport=e}updateRepresentationsDeciperability(e){let t=gh(this,e);t.length>0&&this.trigger("decipherabilityUpdate",t)}addRepresentationsToAvoid(e){let t=[];for(let r of e){let i=this.getPeriod(r.period.id);if(i===void 0)continue;let o=i.getAdaptation(r.adaptation.id);if(o===void 0)continue;let a=o.getRepresentation(r.representation.id);a!==void 0&&(a.shouldBeAvoided=!0,t.push({manifest:this,period:i,adaptation:o,representation:a}))}t.length>0&&this.trigger("representationAvoidanceUpdate",t)}getAdaptations(){Ft("manifest.getAdaptations() is deprecated. Please use manifest.period[].getAdaptations() instead");let e=this.periods[0];if(e===void 0)return[];let t=e.adaptations,r=[];for(let i in t)if(Object.prototype.hasOwnProperty.call(t,i)){let o=t[i];r.push(...o)}return r}getAdaptationsForType(e){Ft("manifest.getAdaptationsForType(type) is deprecated. Please use manifest.period[].getAdaptationsForType(type) instead");let t=this.periods[0];if(t===void 0)return[];let r=t.adaptations[e];return r===void 0?[]:r}getAdaptation(e){return Ft("manifest.getAdaptation(id) is deprecated. Please use manifest.period[].getAdaptation(id) instead"),Q(this.getAdaptations(),({id:t})=>e===t)}getMetadataSnapshot(){let e=[];for(let t of this.periods)e.push(t.getMetadataSnapshot());return{manifestFormat:1,id:this.id,periods:e,isDynamic:this.isDynamic,isLive:this.isLive,isLastPeriodKnown:this.isLastPeriodKnown,suggestedPresentationDelay:this.suggestedPresentationDelay,clockOffset:this.clockOffset,uris:this.uris,availabilityStartTime:this.availabilityStartTime,timeBounds:this.timeBounds}}getCodecsWithUnknownSupport(){return bf(this)}_performUpdate(e,t){this.availabilityStartTime=e.availabilityStartTime,this.expired=e.expired,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.transport=e.transport,this.publishTime=e.publishTime;let r;if(t===0)this.timeBounds=e.timeBounds,this.uris=e.uris,r=Ef(this.periods,e.periods);else{this.timeBounds.maximumTimeData=e.timeBounds.maximumTimeData,this.updateUrl=e.uris[0],r=_f(this.periods,e.periods);let i=this.getMinimumSafePosition();for(;this.periods.length>0;){let o=this.periods[0];if(o.end===void 0||o.end>i)break;this.periods.shift()}}this.updateCodecSupport(),this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.trigger("manifestUpdate",r)}};function gh(n,e){let t=[];for(let r of n.periods)for(let i of r.getAdaptations()){let o=!0;for(let a of i.representations){let s={manifest:n,period:r,adaptation:i,representation:a},d=e(s);d!==!1&&(o=!1),d!==a.decipherable&&(t.push(s),a.decipherable=d,d===!0?i.supportStatus.isDecipherable=!0:d===void 0&&i.supportStatus.isDecipherable===!1&&(i.supportStatus.isDecipherable=void 0),m.debug("manifest",`Decipherability changed for "${a.id}"`,`(${a.bitrate})`,String(a.decipherable)))}o&&(i.supportStatus.isDecipherable=!1)}return t}function Dt(n,e){return n.segment.id===e.segment.id&&n.representation.uniqueId===e.representation.uniqueId}function bt(n){if(E(n))return null;let{period:e,adaptation:t,representation:r,segment:i}=n;return{t:t.type[0],p:e.id,a:t.id,r:r.id,ss:i.isInit?null:i.time,se:i.isInit||!i.complete?null:i.end}}var Jn=di;function mt(n){return n instanceof Ae?new ut("PIPELINE_LOAD_ERROR",n):Me(n,{defaultCode:"PIPELINE_LOAD_ERROR",defaultReason:"Unknown error when fetching the Manifest"})}function hh(n){return n instanceof Ae?n.type===yn.ERROR_HTTP_CODE?n.status>=500||n.status===404||n.status===415||n.status===412:n.type===yn.TIMEOUT||n.type===yn.ERROR_EVENT:n instanceof dt?typeof n.canRetry=="boolean"?n.canRetry:n.xhr!==void 0?n.xhr.status>=500||n.xhr.status===404||n.xhr.status===415||n.xhr.status===412:!1:Zt(n)&&n.code==="INTEGRITY_ERROR"}async function ui(n,e,t,r,i){if(i.cancellationError!==null)return Promise.reject(i.cancellationError);let{baseDelay:o,maxDelay:a,maxRetry:s,onRetry:d}=r;n!==null&&n.length===0&&m.warn("utils","No CDN given to `scheduleRequestWithCdns`.");let u=new Map,c=l();if(c===void 0)throw new Error("No CDN to request");return f(c);function l(){if(n===null){let g=u.get(null);return g!==void 0&&g.isBlacklisted?void 0:null}else{if(e===null)return I(n);{let g=e.getCdnPreferenceForResource(n);return I(g)}}}async function f(g){try{return await t(g,i)}catch(b){if(U.isCancellationError(b))throw b;g!==null&&e!==null&&e.downgradeCdn(g);let T=u.get(g);if(T===void 0?(T={errorCounter:1,blockedUntil:void 0,isBlacklisted:!1},u.set(g,T)):T.errorCounter++,!hh(b))return T.blockedUntil=void 0,T.isBlacklisted=!0,p(b);if(T.errorCounter>s)T.blockedUntil=void 0,T.isBlacklisted=!0;else{let v=T.errorCounter,_=Math.min(o*Math.pow(2,v-1),a),R=ti(_);T.blockedUntil=z()+R}return p(b)}}async function p(g){let b=l();if(i.isCancelled())throw i.cancellationError;if(b===void 0)throw g;if(d(g),i.isCancelled())throw i.cancellationError;return h(b,g)}function h(g,b){let T=u.get(g);if(T===void 0||T.blockedUntil===void 0)return f(g);let v=z(),_=T.blockedUntil-v;if(_<=0)return f(g);let R=new U,k=R.linkToSignal(i);return new Promise((x,P)=>{e==null||e.addEventListener("priorityChange",()=>{let F=l();if(i.isCancelled())throw i.cancellationError;if(F===void 0)return L(b);F!==g&&(R.cancel(),h(F,b).then(M,L))},R.signal),en(_,R.signal).then(()=>f(g).then(M,L),te);function M(F){k(),x(F)}function L(F){k(),P(F)}})}function I(g){var T;if(u.size===0)return g[0];let b=z();return(T=g.filter(v=>{var _;return((_=u.get(v))==null?void 0:_.isBlacklisted)!==!0}).reduce((v,_)=>{var k;let R=(k=u.get(_))==null?void 0:k.blockedUntil;return R!==void 0&&R<=b&&(R=void 0),v===void 0?[_,R]:v[1]===void 0?v:R===void 0?[_,void 0]:R<v[1]?[_,R]:v},void 0))==null?void 0:T[0]}}function ad(n,e,t){return ui(null,null,n,e,t)}var li=class extends se{constructor(e,t,r){super(),this.scheduleManualRefresh=te,this._manifestUrls=e,this._pipelines=t.manifest,this._transportName=t.transportName,this._settings=r,this._canceller=new U,this._isStarted=!1,this._isRefreshPending=!1,this._consecutiveUnsafeMode=0,this._prioritizedContentUrl=null}dispose(){this._canceller.cancel(),this.removeEventListener()}start(){if(this._isStarted)return;this._isStarted=!0;let e,t=this._settings.initialManifest;t instanceof Jn?e=Promise.resolve({manifest:t}):t!==void 0?e=this.parse(t,{previousManifest:null,unsafeMode:!1},void 0):e=this._fetchManifest(void 0).then(r=>r.parse({previousManifest:null,unsafeMode:!1})),e.then(r=>{this.trigger("manifestReady",r.manifest),this._canceller.isUsed()||this._recursivelyRefreshManifest(r.manifest,r)}).catch(r=>this._onFatalError(r))}updateContentUrls(e,t){var r;this._prioritizedContentUrl=(r=e==null?void 0:e[0])!=null?r:void 0,t&&this.scheduleManualRefresh({enablePartialRefresh:!1,delay:0,canUseUnsafeMode:!1})}async _fetchManifest(e){var u;let t=this._canceller.signal,r=this._settings,i=this._transportName,o=this._pipelines,a=e!=null?e:(u=this._manifestUrls)==null?void 0:u[0],s=this._getBackoffSetting(c=>{this.trigger("warning",mt(c))});try{let c=await d(a);return{parse:l=>this._parseLoadedManifest(c,l,a)}}catch(c){throw mt(c)}function d(c){var g;let{loadManifest:l}=o,f=r.requestTimeout===void 0?O.getCurrent().DEFAULT_REQUEST_TIMEOUT:r.requestTimeout,p=r.connectionTimeout===void 0?O.getCurrent().DEFAULT_CONNECTION_TIMEOUT:r.connectionTimeout;f<0&&(f=void 0),p<0&&(p=void 0);let h={timeout:f,connectionTimeout:p,cmcdPayload:(g=r.cmcdDataBuilder)==null?void 0:g.getCmcdDataForManifest(i)};return ad(()=>l(c,h,t),s,t)}}parse(e,t,r){return this._parseLoadedManifest({responseData:e,size:void 0,requestDuration:void 0},t,r)}async _parseLoadedManifest(e,t,r){var I;let i=z(),o=this._canceller.signal,a=this.trigger.bind(this),{sendingTime:s,receivedTime:d}=e,u=this._getBackoffSetting(g=>{this.trigger("warning",mt(g))}),c=r!=null?r:(I=this._manifestUrls)==null?void 0:I[0],l={externalClockOffset:t.externalClockOffset,unsafeMode:t.unsafeMode,previousManifest:t.previousManifest,originalUrl:c};try{let g=this._pipelines.parseManifest(e,l,p,o,f);if(yh(g)){let{manifest:b}=await g;return h(b)}else return h(g.manifest)}catch(g){throw Me(g,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"})}async function f(g){try{return await ad(g,u,o)}catch(b){throw mt(b)}}function p(g){for(let b of g){if(o.isCancelled())return;let T=Me(b,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"});a("warning",T)}}function h(g){let b=z()-i;return m.info("MF",`Manifest parsed in ${b}ms`),{manifest:g,sendingTime:s,receivedTime:d,parsingTime:b}}}_getBackoffSetting(e){let{DEFAULT_MAX_MANIFEST_REQUEST_RETRY:t,INITIAL_BACKOFF_DELAY_BASE:r,MAX_BACKOFF_DELAY_BASE:i}=O.getCurrent(),{lowLatencyMode:o,maxRetry:a}=this._settings,s=o?r.LOW_LATENCY:r.REGULAR,d=o?i.LOW_LATENCY:i.REGULAR,u=a!=null?a:t;return{onRetry:e,baseDelay:s,maxDelay:d,maxRetry:u}}_recursivelyRefreshManifest(e,{sendingTime:t,parsingTime:r,updatingTime:i}){let{MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:o,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:a}=O.getCurrent(),s=r!==void 0?r+(i!=null?i:0):void 0,d=!1;this._consecutiveUnsafeMode>0?d=this._consecutiveUnsafeMode<o:s!==void 0&&(d=s>=a);let u=t===void 0?0:z()-t,c=Math.max(this._settings.minimumManifestUpdateInterval-u,0),l=new U;if(l.linkToSignal(this._canceller.signal),this.scheduleManualRefresh=f=>{let{enablePartialRefresh:p,delay:h,canUseUnsafeMode:I}=f,g=I&&d,b=t===void 0?0:z()-t,T=Math.max(this._settings.minimumManifestUpdateInterval-b,0),v=setTimeout(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:p,unsafeMode:g})},Math.max((h!=null?h:0)-b,T));l.signal.register(()=>{clearTimeout(v)})},e.expired!==null){let f=setTimeout(()=>{var p;(p=e.expired)==null||p.then(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},te)},c);l.signal.register(()=>{clearTimeout(f)})}if(e.lifetime!==void 0&&e.lifetime>=0){let f=e.lifetime*1e3-u,p;s===void 0?p=f:e.lifetime<3&&s>=100?(p=Math.min(Math.max(3e3-u,Math.max(f,0)+s),f*6),m.info("MF","Manifest update rythm is too frequent. Postponing next request.",{regularRefreshDelay:f,newRefreshDelay:p})):s>=e.lifetime*1e3/10?(p=Math.min(Math.max(f,0)+s,f*6),m.info("MF","Manifest took too long to parse. Postponing next request",{regularRefreshDelay:f,newRefreshDelay:p})):p=f;let h=setTimeout(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},Math.max(p,c));l.signal.register(()=>{clearTimeout(h)})}}_triggerNextManifestRefresh(e,{enablePartialRefresh:t,unsafeMode:r}){let i=e.updateUrl,o,a;this._prioritizedContentUrl!==null?(o=!0,a=this._prioritizedContentUrl,this._prioritizedContentUrl=null):(o=!t||i===void 0,a=o?e.getUrls()[0]:i);let s=e.clockOffset;r?(this._consecutiveUnsafeMode+=1,m.info("MF",'Refreshing the Manifest in "unsafeMode" for the '+String(this._consecutiveUnsafeMode)+" consecutive time.")):this._consecutiveUnsafeMode>0&&(m.info("MF",'Not parsing the Manifest in "unsafeMode" anymore after '+String(this._consecutiveUnsafeMode)+" consecutive times."),this._consecutiveUnsafeMode=0),!this._isRefreshPending&&(this._isRefreshPending=!0,this._fetchManifest(a).then(d=>d.parse({externalClockOffset:s,previousManifest:e,unsafeMode:r})).then(d=>{this._isRefreshPending=!1;let{manifest:u,sendingTime:c,parsingTime:l}=d,f=z();if(o)e.replace(u);else try{e.update(u)}catch(h){let I=h instanceof Error?h.message:"unknown error";m.warn("MF",`Attempt to update Manifest failed: ${I}`,"Re-downloading the Manifest fully");let{FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:g}=O.getCurrent(),b=c===void 0?0:z()-c,T=Math.max(this._settings.minimumManifestUpdateInterval-b,0),v=te,_=setTimeout(()=>{v(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:!1})},Math.max(g-b,T));v=this._canceller.signal.register(()=>{clearTimeout(_)});return}let p=z()-f;this._recursivelyRefreshManifest(e,{sendingTime:c,parsingTime:l,updatingTime:p})}).catch(d=>{this._isRefreshPending=!1,this._onFatalError(d)}))}_onFatalError(e){this._canceller.isUsed()||(this.trigger("error",e),this.dispose())}};function yh(n){return n instanceof Promise}var sd=li;function dd(n,e){let t=new WeakMap;return{createRequest(r,i,o,a){let s=u=>e(r,o,u),d=n.create(s,i,o,a);return t.set(d,s),d},updatePriority(r,i){let o=t.get(r);if(o===void 0){m.warn("SF","Cannot update the priority of a request: task not found.");return}n.updatePriority(o,i)}}}var ud=class{constructor(){this._cache=new WeakMap}add({representation:e,segment:t},r){t.isInit&&this._cache.set(e,r)}get({representation:e,segment:t}){if(t.isInit){let r=this._cache.get(e);if(r!==void 0)return r}return null}},vf=ud;var Ih=rt();function ld({bufferType:n,pipeline:e,cdnPrioritizer:t,cmcdDataBuilder:r,eventListeners:i,requestOptions:o}){let a;o.connectionTimeout===void 0||o.connectionTimeout<0?a=void 0:a=o.connectionTimeout;let s={timeout:o.requestTimeout<0?void 0:o.requestTimeout,connectionTimeout:a,cmcdPayload:void 0},d=$(["audio","video"],n)?new vf:void 0,{loadSegment:u,parseSegment:c}=e;return async function(f,p,h){var q,X,W;let{segment:I,adaptation:g,representation:b,manifest:T,period:v}=f,_=bt(f),R=Ih(),k,x=[],P=0,M=!1,L={segment:I,type:g.type,language:g.language,isLive:T.isLive,periodStart:v.start,periodEnd:v.end,mimeType:b.mimeType,codecs:b.codecs[0],manifestPublishTime:T.publishTime},F={onProgress(H){var G;k===void 0&&H.totalSize!==void 0&&H.size<H.totalSize&&((G=i.onProgress)==null||G.call(i,{duration:H.duration,size:H.size,totalSize:H.totalSize,timestamp:z(),id:R}))},onNewChunk(H){p.onChunk(C(H,!0))}},D=d!==void 0?d.get(f):null;if(D!==null)return m.debug("SF","Found wanted segment in cache",_),p.onChunk(C(D,!1)),Promise.resolve();m.debug("SF","Beginning request",_),(q=i.onRequestBegin)==null||q.call(i,{requestTimestamp:z(),id:R,content:f}),h.register(B);try{let H=await ui(f.representation.cdnMetadata,t,A,Y({onRetry:N},o),h);if(H.resultType==="segment-loaded"){let G=H.resultData.responseData;d!==void 0&&d.add(f,H.resultData.responseData),p.onChunk(C(G,!1))}else H.resultType==="segment-created"&&p.onChunk(C(H.resultData,!1));m.debug("SF","Segment request ended with success",_),p.onAllChunksReceived(),H.resultType!=="segment-created"?(k=H.resultData,K()):k=null,h.isCancelled()||(X=i.onRequestEnd)==null||X.call(i,{id:R}),h.deregister(B)}catch(H){throw h.deregister(B),k=null,H instanceof we?(m.debug("SF","Segment request aborted",_),H):(m.debug("SF","Segment request failed",_),(W=i.onRequestEnd)==null||W.call(i,{id:R}),mt(H))}function B(){var H;k===void 0&&(m.debug("SF","Segment request cancelled",_),k=null,(H=i.onRequestEnd)==null||H.call(i,{id:R}))}function A(H){return s.cmcdPayload=r==null?void 0:r.getCmcdDataForSegmentRequest(f),u(H,L,s,h,F)}function C(H,G){x.push(!1);let ie=x.length-1;return function(fe){let Re={data:H,isChunked:G};try{let ge=c(Re,L,fe);return x[ie]||(P=P!==void 0&&ge.segmentType==="media"&&ge.chunkInfos!==null&&ge.chunkInfos.duration!==void 0?P+ge.chunkInfos.duration:void 0,x[ie]=!0,K()),ge}catch(ge){throw Me(ge,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown parsing error"})}}}function N(H){p.onRetry(mt(H))}function K(){var H;M||!E(k)&&k.size!==void 0&&k.requestDuration!==void 0&&x.length>0&&x.every(G=>G)&&(M=!0,(H=i.onMetrics)==null||H.call(i,{size:k.size,requestDuration:k.requestDuration,content:f,segmentDuration:P}))}}}function Rf({maxRetry:n,lowLatencyMode:e,requestTimeout:t,connectionTimeout:r}){let{DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:i,DEFAULT_REQUEST_TIMEOUT:o,DEFAULT_CONNECTION_TIMEOUT:a,INITIAL_BACKOFF_DELAY_BASE:s,MAX_BACKOFF_DELAY_BASE:d}=O.getCurrent();return{maxRetry:n!=null?n:i,baseDelay:e?s.LOW_LATENCY:s.REGULAR,maxDelay:e?d.LOW_LATENCY:d.REGULAR,requestTimeout:t===void 0?o:t,connectionTimeout:r===void 0?a:r}}var ci=class extends se{constructor(e,t){super(),this._segmentFetcher=e,this._currentContentInfo=null,this.isMediaSegmentQueueInterrupted=t}getRequestedInitSegment(){var e,t,r;return(r=(t=(e=this._currentContentInfo)==null?void 0:e.initSegmentRequest)==null?void 0:t.segment)!=null?r:null}getRequestedMediaSegment(){var e,t,r;return(r=(t=(e=this._currentContentInfo)==null?void 0:e.mediaSegmentRequest)==null?void 0:t.segment)!=null?r:null}resetForContent(e,t){var a;(a=this._currentContentInfo)==null||a.currentCanceller.cancel();let r=new j({initSegment:null,segmentQueue:[]}),i=new U;i.signal.register(()=>{r.finish()});let o={content:e,downloadQueue:r,initSegmentInfoRef:t?new j(void 0):new j(null),currentCanceller:i,initSegmentRequest:null,mediaSegmentRequest:null,mediaSegmentAwaitingInitMetadata:null};return this._currentContentInfo=o,this.isMediaSegmentQueueInterrupted.onUpdate(s=>{s||(m.debug("SF","Media segment can be loaded again, restarting queue.",{type:e.adaptation.type}),this._restartMediaSegmentDownloadingQueue(o))},{clearSignal:i.signal}),r.onUpdate(s=>{let{segmentQueue:d}=s;if(d.length>0&&d[0].segment.id===o.mediaSegmentAwaitingInitMetadata)return;let u=o.mediaSegmentRequest;if(d.length===0){if(u===null)return;m.debug("SF","no more media segment to request. Cancelling queue.",{type:e.adaptation.type}),this._restartMediaSegmentDownloadingQueue(o);return}else if(u===null){m.debug("SF","Media segments now need to be requested. Starting queue.",{type:e.adaptation.type,queueLength:d.length}),this._restartMediaSegmentDownloadingQueue(o);return}else{let c=d[0];if(u.segment.id!==c.segment.id){m.debug("SF","Next media segment changed, cancelling previous",{type:e.adaptation.type}),this._restartMediaSegmentDownloadingQueue(o);return}u.priority!==c.priority&&(m.debug("SF","Priority of next media segment changed, updating",{type:e.adaptation.type,prevPriority:u.priority,newPriority:c.priority}),this._segmentFetcher.updatePriority(u.request,c.priority));return}},{emitCurrentValue:!0,clearSignal:i.signal}),r.onUpdate(s=>{var u;let d=o.initSegmentRequest;if(s.initSegment!==null&&d!==null){s.initSegment.priority!==d.priority&&this._segmentFetcher.updatePriority(d.request,s.initSegment.priority);return}else if(((u=s.initSegment)==null?void 0:u.segment.id)===(d==null?void 0:d.segment.id))return;s.initSegment===null&&m.debug("SF","no more init segment to request. Cancelling queue.",{type:e.adaptation.type}),this._restartInitSegmentDownloadingQueue(o,s.initSegment)},{emitCurrentValue:!0,clearSignal:i.signal}),r}stop(){var e;(e=this._currentContentInfo)==null||e.currentCanceller.cancel(),this._currentContentInfo=null}_restartMediaSegmentDownloadingQueue(e){e.mediaSegmentRequest!==null&&e.mediaSegmentRequest.canceller.cancel();let{downloadQueue:t,content:r,initSegmentInfoRef:i,currentCanceller:o}=e,a=()=>{var v;if(this.isMediaSegmentQueueInterrupted.getValue()){m.debug("SF","Segment fetching postponed because it cannot stream now.");return}let{segmentQueue:s}=t.getValue(),d=s[0];if(o!==null&&o.isUsed()){e.mediaSegmentRequest=null;return}if(d===void 0){e.mediaSegmentRequest=null,this.trigger("emptyQueue",null);return}let u=new U,c=o===null?te:u.linkToSignal(o.signal),{segment:l,priority:f}=d,p=Y({segment:l,nextSegment:(v=s[1])==null?void 0:v.segment},r),h=!1,I=!1;u.signal.register(()=>{e.mediaSegmentRequest=null,!h&&(e.mediaSegmentAwaitingInitMetadata===l.id&&(e.mediaSegmentAwaitingInitMetadata=null),h=!0,I=!1)});let g=_=>{ne(_.segmentType==="media","Should have loaded a media segment."),this.trigger("parsedMediaSegment",Y({},_,{segment:l}))},b=()=>{let _=t.getValue().segmentQueue;if(_.length===0){h=!0,this.trigger("emptyQueue",null);return}else _[0].segment.id===l.id&&_.shift();h=!0,a()},T=this._segmentFetcher.createRequest(p,f,{onRetry:_=>{this.trigger("requestRetry",{segment:l,error:_})},beforeInterrupted(){m.info("SF","segment request interrupted temporarly.",{segmentId:l.id,segmentTime:l.time})},onChunk:_=>{let R=i.getValue();R!==void 0?g(_(R!=null?R:void 0)):(I=!0,i.waitUntilDefined(k=>{g(_(k!=null?k:void 0))},{clearSignal:u.signal}))},onAllChunksReceived:()=>{I?(e.mediaSegmentAwaitingInitMetadata=l.id,i.waitUntilDefined(()=>{e.mediaSegmentAwaitingInitMetadata=null,I=!1,this.trigger("fullyLoadedSegment",l)},{clearSignal:u.signal})):this.trigger("fullyLoadedSegment",l)},beforeEnded:()=>{c(),e.mediaSegmentRequest=null,I?i.waitUntilDefined(b,{clearSignal:u.signal}):b()}},u.signal);T.catch(_=>{c(),h||(h=!0,this.stop(),this.trigger("error",_))}),e.mediaSegmentRequest={segment:l,priority:f,request:T,canceller:u}};a()}_restartInitSegmentDownloadingQueue(e,t){let{content:r,initSegmentInfoRef:i}=e;if(e.initSegmentRequest!==null&&e.initSegmentRequest.canceller.cancel(),t===null)return;let o=new U,a=e.currentCanceller===null?te:o.linkToSignal(e.currentCanceller.signal),{segment:s,priority:d}=t,u=Y({segment:s,nextSegment:void 0},r),c=!1,l=this._segmentFetcher.createRequest(u,d,{onRetry:f=>{this.trigger("requestRetry",{segment:s,error:f})},beforeInterrupted:()=>{m.info("SF","init segment request interrupted temporarly.",{segmentId:s.id})},beforeEnded:()=>{a(),e.initSegmentRequest=null,c=!0},onChunk:f=>{var h;let p=f(void 0);ne(p.segmentType==="init","Should have loaded an init segment."),this.trigger("parsedInitSegment",Y({},p,{segment:s})),p.segmentType==="init"&&i.setValue((h=p.initTimescale)!=null?h:null)},onAllChunksReceived:()=>{this.trigger("fullyLoadedSegment",s)}},o.signal);l.catch(f=>{a(),c||(c=!0,this.stop(),this.trigger("error",f))}),o.signal.register(()=>{e.initSegmentRequest=null,!c&&(c=!0)}),e.initSegmentRequest={segment:s,priority:d,request:l,canceller:o}}};var mi=class{constructor({prioritySteps:e}){if(this._minPendingPriority=null,this._waitingQueue=[],this._pendingTasks=[],this._prioritySteps=e,this._prioritySteps.high>=this._prioritySteps.low)throw new Error("The max high level priority should be given a lowerpriority number than the min low priority.")}create(e,t,r,i){let o;return ct(i,(a,s)=>(o={hasEnded:!1,priority:t,trigger:()=>{if(o.hasEnded)return;let u=()=>{p(),this._endTask(o)},c=h=>{r.beforeEnded(),u(),a(h)},l=h=>{u(),s(h)},f=new U,p=f.linkToSignal(i);o.interrupter=f,f.signal.register(()=>{o.interrupter=null,i.isCancelled()||r.beforeInterrupted()}),this._minPendingPriority=this._minPendingPriority===null?o.priority:Math.min(this._minPendingPriority,o.priority),this._pendingTasks.push(o),o.taskFn(f.signal).then(c).catch(h=>{!i.isCancelled()&&f.isUsed()&&h instanceof we||l(h)})},taskFn:e,interrupter:null},this._canBeStartedNow(o)?(o.trigger(),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()):this._waitingQueue.push(o),()=>this._endTask(o)))}_endTask(e){e.hasEnded=!0;let t=fi(e.taskFn,this._waitingQueue);if(t>=0)this._waitingQueue.splice(t,1);else{let r=fi(e.taskFn,this._pendingTasks);if(r<0)return;this._pendingTasks.splice(r,1),this._pendingTasks.length>0?this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))):this._minPendingPriority=null,this._loopThroughWaitingQueue()}}updatePriority(e,t){let r=fi(e,this._waitingQueue);if(r>=0){let s=this._waitingQueue[r];if(s.priority===t||(s.priority=t,!this._canBeStartedNow(s)))return;this._findAndRunWaitingQueueTask(r),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks();return}let i=fi(e,this._pendingTasks);if(i<0){m.warn("SF","request to update the priority of a non-existent task");return}let o=this._pendingTasks[i];if(o.priority===t)return;let a=o.priority;o.priority=t,this._minPendingPriority===null||t<this._minPendingPriority?this._minPendingPriority=t:this._minPendingPriority===a&&(this._pendingTasks.length===1?this._minPendingPriority=t:this._minPendingPriority=Math.min(...this._pendingTasks.map(s=>s.priority)),this._loopThroughWaitingQueue()),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()}_loopThroughWaitingQueue(){let e=this._waitingQueue.reduce((t,r)=>t===null||t>r.priority?r.priority:t,null);if(!(e===null||this._minPendingPriority!==null&&this._minPendingPriority<e))for(let t=0;t<this._waitingQueue.length;t++){let r=this._minPendingPriority===null?e:Math.min(this._minPendingPriority,e);this._waitingQueue[t].priority<=r&&(this._findAndRunWaitingQueueTask(t),t--)}}_interruptCancellableTasks(){for(let e of this._pendingTasks)if(e.priority>=this._prioritySteps.low)return this._interruptPendingTask(e),this._interruptCancellableTasks()}_findAndRunWaitingQueueTask(e){return e>=this._waitingQueue.length||e<0?(m.warn("SF","Tried to start a non existing task"),!1):(this._waitingQueue.splice(e,1)[0].trigger(),!0)}_interruptPendingTask(e){var r;let t=fi(e.taskFn,this._pendingTasks);if(t<0){m.warn("SF","Interrupting a non-existent pending task. Aborting...");return}this._pendingTasks.splice(t,1),this._waitingQueue.push(e),this._pendingTasks.length===0?this._minPendingPriority=null:this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))),(r=e.interrupter)==null||r.cancel()}_canBeStartedNow(e){return this._minPendingPriority===null||e.priority<=this._minPendingPriority}_isRunningHighPriorityTasks(){return this._minPendingPriority!==null&&this._minPendingPriority<=this._prioritySteps.high}};function fi(n,e){return Ie(e,t=>t.taskFn===n)}var pi=class{constructor(e,t,r,i){let{MIN_CANCELABLE_PRIORITY:o,MAX_HIGH_PRIORITY_LEVEL:a}=O.getCurrent();this._transport=e,this._prioritizer=new mi({prioritySteps:{high:a,low:o}}),this._cdnPrioritizer=t,this._backoffOptions=i,this._cmcdDataBuilder=r}createSegmentQueue(e,t,r){let i=Rf(this._backoffOptions),o=this._transport[e],a=ld({bufferType:e,pipeline:o,cdnPrioritizer:this._cdnPrioritizer,cmcdDataBuilder:this._cmcdDataBuilder,eventListeners:t,requestOptions:i}),s=dd(this._prioritizer,a);return new ci(s,r)}};var cd=pi;function fd(n,e){let{loadThumbnail:t}=n,r=[];return async function(o,a){a.register(T);let s,d=Q(r,({thumbnailContext:R})=>R.period.id===o.period.id&&R.track.id===o.track.id&&R.segment.id===o.segment.id);if(d!==void 0){m.debug("Thumbnails","Requesting same thumbnail than the pending one",{time:o.segment.time}),s=d,s.referenceCount++;let R;try{R=await s.promise}catch(k){throw a.deregister(T),k}return a.deregister(T),R}let{segment:u,track:c}=o,l=bh({}),f;l.connectionTimeout===void 0||l.connectionTimeout<0?f=void 0:f=l.connectionTimeout;let p={timeout:l.requestTimeout<0?void 0:l.requestTimeout,connectionTimeout:f,cmcdPayload:void 0},h=new U,I=b();s={thumbnailContext:o,promise:I,referenceCount:1},r.push(s);let g=()=>{let R=r.indexOf(s);R>=0&&r.splice(R,1)};try{let R=await I;return g(),R}catch(R){throw g(),R}async function b(){m.debug("Thumbnails","Beginning thumbnail request",{time:u.time});let R;try{if(R=await ui(c.cdnMetadata,e,v,Y({onRetry:_},l),h.signal),a.isCancelled())return Promise.reject(a.cancellationError);m.debug("Thumbnails","Thumbnail request ended with success",{time:u.time}),a.deregister(T)}catch(k){throw a.deregister(T),k instanceof we?(m.debug("Thumbnails","Thumbnail request aborted",{time:u.time}),k):(m.debug("Thumbnails","Thumbnail request failed",{time:u.time}),mt(k))}try{return n.parseThumbnail(R.responseData,{thumbnail:u,thumbnailTrack:c})}catch(k){throw Me(k,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown parsing error"})}}function T(){m.debug("Thumbnails","Thumbnail request cancelled",{time:u.time});let R=r.indexOf(s);R<0||(r[R].referenceCount--,r[R].referenceCount<=0&&(h.cancel(),r.splice(R,1)))}function v(R){return t(R,u,p,a)}function _(R){let k=mt(R);m.warn("Thumbnails","Thumbnail request retry ",{time:u.time},k)}}}function bh({maxRetry:n,requestTimeout:e,connectionTimeout:t}){let{DEFAULT_MAX_THUMBNAIL_REQUESTS_RETRY_ON_ERROR:r,DEFAULT_THUMBNAIL_REQUEST_TIMEOUT:i,DEFAULT_THUMBNAIL_CONNECTION_TIMEOUT:o,INITIAL_BACKOFF_DELAY_BASE:a,MAX_BACKOFF_DELAY_BASE:s}=O.getCurrent();return{maxRetry:n!=null?n:r,baseDelay:a.REGULAR,maxDelay:s.REGULAR,requestTimeout:e===void 0?i:e,connectionTimeout:t===void 0?o:t}}var md=fd;var Pn=class{constructor(e){this._array=[],this._sortingFn=e}add(...e){e.sort(this._sortingFn);let t=0;for(let r=0;r<e.length;r++){let i=e[r],o=!1;for(;!o&&t<this._array.length;)this._sortingFn(i,this._array[t])<0?(this._array.splice(t,0,i),o=!0):t++;o||this._array.push(i)}}length(){return this._array.length}get(e){if(e<0||e>=this._array.length)throw new Error("Invalid index.");return this._array[e]}toArray(){return this._array.slice()}findFirst(e){return Q(this._array,e)}has(e){return $(this._array,e)}removeElement(e){let t=this._array.indexOf(e);if(t>=0)return this._array.splice(t,1),t}head(){return this._array[0]}last(){return this._array[this._array.length-1]}shift(){return this._array.shift()}pop(){return this._array.pop()}};var gi=class extends se{constructor(e,t,r){super(),this._canceller=new U,this._manifest=e,this._activeStreams=new Map,this._allBufferTypes=r,this._lastCurrentPeriodId=null;let i=new pd(e);this._maximumPositionCalculator=i;let o=this._canceller.signal;It(()=>{t.listen(({position:a})=>{let s=a.getWanted();if(s<e.getMinimumSafePosition()){let d=new re("MEDIA_TIME_BEFORE_MANIFEST","The current position is behind the earliest time announced in the Manifest.");this.trigger("warning",d)}else if(s>i.getMaximumAvailablePosition()){let d=new re("MEDIA_TIME_AFTER_MANIFEST","The current position is after the latest time announced in the Manifest.");this.trigger("warning",d)}},{includeLastObservation:!1,clearSignal:o})}),e.addEventListener("manifestUpdate",()=>{this.trigger("endingPositionChange",this._getManifestEndTime()),!o.isCancelled()&&this._checkEndOfStream()},o)}getCurrentEndingTime(){return this._getManifestEndTime()}onAdaptationChange(e,t,r){if(this._manifest.isLastPeriodKnown){let i=this._manifest.periods[this._manifest.periods.length-1];if(t.id===(i==null?void 0:i.id)&&(e==="audio"||e==="video")){e==="audio"?this._maximumPositionCalculator.updateLastAudioAdaptation(r):this._maximumPositionCalculator.updateLastVideoAdaptation(r);let o=this._maximumPositionCalculator.getEndingPosition(),a=o!==void 0?{isEnd:!0,endingPosition:o}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()};this.trigger("endingPositionChange",a)}}this._canceller.isUsed()||r===null&&this._addActivelyLoadedPeriod(t,e)}onRepresentationChange(e,t){this._addActivelyLoadedPeriod(t,e)}onPeriodCleared(e,t){this._removeActivelyLoadedPeriod(t,e)}onLastSegmentFinishedLoading(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod||(t.hasFinishedLoadingLastPeriod=!0,this._checkEndOfStream())}onLastSegmentLoadingResume(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod&&(t.hasFinishedLoadingLastPeriod=!1,this._checkEndOfStream())}dispose(){this.removeEventListener(),this._canceller.cancel()}_addActivelyLoadedPeriod(e,t){let r=this._lazilyCreateActiveStreamInfo(t);r.activePeriods.has(e)||(r.activePeriods.add(e),this._checkCurrentPeriod())}_removeActivelyLoadedPeriod(e,t){let r=this._activeStreams.get(t);r!==void 0&&r.activePeriods.has(e)&&(r.activePeriods.removeElement(e),this._checkCurrentPeriod())}_checkCurrentPeriod(){if(this._allBufferTypes.length===0)return;let e=this._activeStreams.get(this._allBufferTypes[0]);if(e!==void 0)for(let t of e.activePeriods.toArray()){let r=!0;for(let i of this._allBufferTypes){let o=this._activeStreams.get(i);if(o===void 0)return;if(!o.activePeriods.toArray().some(d=>d.id===t.id)){r=!1;break}}if(r){this._lastCurrentPeriodId!==t.id&&(this._lastCurrentPeriodId=t.id,this.trigger("periodChange",t));return}}}_getManifestEndTime(){let e=this._maximumPositionCalculator.getEndingPosition();return e!==void 0?{isEnd:!0,endingPosition:e}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()}}_lazilyCreateActiveStreamInfo(e){let t=this._activeStreams.get(e);return t===void 0&&(t={activePeriods:new Pn((r,i)=>r.start-i.start),hasFinishedLoadingLastPeriod:!1},this._activeStreams.set(e,t)),t}_checkEndOfStream(){if(!this._manifest.isLastPeriodKnown)return;this._allBufferTypes.every(t=>{let r=this._activeStreams.get(t);return r!==void 0&&r.hasFinishedLoadingLastPeriod})?this.trigger("endOfStream",null):this.trigger("resumeStream",null)}},pd=class{constructor(e){this._manifest=e,this._lastAudioAdaptation=void 0,this._lastVideoAdaptation=void 0}updateLastAudioAdaptation(e){this._lastAudioAdaptation=e}updateLastVideoAdaptation(e){this._lastVideoAdaptation=e}getMaximumAvailablePosition(){if(this._manifest.isDynamic)return this._manifest.getMaximumSafePosition();if(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)return this._manifest.getMaximumSafePosition();if(this._lastAudioAdaptation===null){if(this._lastVideoAdaptation===null)return this._manifest.getMaximumSafePosition();{let e=la(this._lastVideoAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}}else if(this._lastVideoAdaptation===null){let e=la(this._lastAudioAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}else{let e=la(this._lastAudioAdaptation),t=la(this._lastVideoAdaptation);return typeof e!="number"||typeof t!="number"?this._manifest.getMaximumSafePosition():Math.min(e,t)}}getEndingPosition(){var e,t;if(!this._manifest.isDynamic)return this.getMaximumAvailablePosition();if(!(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)){if(this._lastAudioAdaptation===null)return this._lastVideoAdaptation===null?void 0:(e=ca(this._lastVideoAdaptation))!=null?e:void 0;if(this._lastVideoAdaptation===null)return(t=ca(this._lastAudioAdaptation))!=null?t:void 0;{let r=ca(this._lastAudioAdaptation),i=ca(this._lastVideoAdaptation);return typeof r!="number"||typeof i!="number"?void 0:Math.min(r,i)}}}};function la(n){let{representations:e}=n,t=null,r;for(let i of e)if(i.index!==r){r=i.index;let o=i.index.getLastAvailablePosition();if(o===void 0)return;o!==null&&(t=E(t)?o:Math.min(t,o))}return t}function ca(n){let{representations:e}=n,t=null,r;for(let i of e)if(i.index!==r){r=i.index;let o=i.index.getEnd();if(o===void 0)return;o!==null&&(t=E(t)?o:Math.min(t,o))}return t}function gd(n,e,t,r,i,o){o.register(()=>{e.interruptDurationSetting()});let a=new gi(n,t,r.getBufferTypes());o.register(()=>{a.dispose()}),a.addEventListener("warning",d=>i.onWarning(d)),a.addEventListener("periodChange",d=>i.onPeriodChanged(d)),a.addEventListener("endingPositionChange",d=>{e.setDuration(d.endingPosition,d.isEnd)}),a.addEventListener("endOfStream",()=>{m.debug("mse","Start applying end-of-stream order."),e.maintainEndOfStream()}),a.addEventListener("resumeStream",()=>{e.stopEndOfStream()});let s=a.getCurrentEndingTime();return e.setDuration(s.endingPosition,s.isEnd),a}var kf=6,hd=4e3,fa=6e3,Sh=6e4,hi=class{constructor(e){this._segmentSinksStore=e,this._decipherabilityFreezeStartingTimestamp=null,this._ignoreFreezeUntil=null,this._lastFlushAttempt=null,this._lastSegmentInfo={audio:[],video:[]}}onNewObservation(e){var g,b;let t=z();if(this._addPositionToHistory(e,t),this._ignoreFreezeUntil!==null&&t<this._ignoreFreezeUntil)return null;this._ignoreFreezeUntil=null;let{UNFREEZING_SEEK_DELAY:r,UNFREEZING_DELTA_POSITION:i,FREEZING_FLUSH_FAILURE_DELAY:o}=O.getCurrent(),{readyState:a,rebuffering:s,freezing:d,fullyLoaded:u}=e,c=e.position.getPolled(),l=Pf(e.bufferGap);if(!(d!==null||a===1&&(l>=kf||u)))return this._decipherabilityFreezeStartingTimestamp=null,null;let p=(b=(g=d==null?void 0:d.timestamp)!=null?g:s==null?void 0:s.timestamp)!=null?b:null;if(m.info("Freeze","Freeze detected",{freezeStart:p,timeFrozen:t-(p!=null?p:t)}),this._lastFlushAttempt!==null&&t-this._lastFlushAttempt.timestamp<o.MAXIMUM&&t-this._lastFlushAttempt.timestamp>=o.MINIMUM&&Math.abs(c-this._lastFlushAttempt.position)<o.POSITION_DELTA){let T=this._getStrategyIfFlushingFails(c);return this._decipherabilityFreezeStartingTimestamp=null,this._ignoreFreezeUntil=t+fa,T}let I=this._checkForDecipherabilityRelatedFreeze(e,t);return I!==null?I:p!==null&&t-p>r?(this._lastFlushAttempt={timestamp:t,position:c+i},m.debug("Freeze","Trying to flush to un-freeze"),this._decipherabilityFreezeStartingTimestamp=null,this._ignoreFreezeUntil=t+fa,{type:"flush",value:{relativeSeek:i}}):null}_checkForDecipherabilityRelatedFreeze(e,t){let{readyState:r,rebuffering:i,freezing:o,fullyLoaded:a}=e,s=Pf(e.bufferGap),d=i!==null&&t-i.timestamp>hd,{hasUndecipherableData:u,hasEncryptedData:c}=Th(this._segmentSinksStore);if(u===!0)return m.warn("Freeze","we have undecipherable segments left in the buffer, reloading"),this._decipherabilityFreezeStartingTimestamp=null,this._ignoreFreezeUntil=t+fa,{type:"reload",value:null};let l=o!==null&&t-o.timestamp>hd;return(d||l)&&(s>=kf||a)&&r<=1?this._decipherabilityFreezeStartingTimestamp===null&&(m.debug("Freeze","Start of a potential decipherability freeze detected"),this._decipherabilityFreezeStartingTimestamp=t):this._decipherabilityFreezeStartingTimestamp=null,this._decipherabilityFreezeStartingTimestamp!==null&&z()-this._decipherabilityFreezeStartingTimestamp>hd&&c&&u===!1?(m.warn("Freeze","we are frozen despite only having decipherable segments left in the buffer, reloading"),this._decipherabilityFreezeStartingTimestamp=null,this._ignoreFreezeUntil=t+fa,{type:"reload",value:null}):null}_getStrategyIfFlushingFails(e){m.warn("Freeze","A recent flush seemed to have no effect on freeze, checking for transitions");let t=[];for(let r of["audio","video"]){let i=this._lastSegmentInfo[r];if(i.length===0)continue;let o=i[i.length-1];if(o.segment===null)continue;let a=o.segment,s;for(let d=i.length-2;d>=0;d--){let u=i[d];if(u.segment===null){s=u;break}else if(u.segment.infos.representation.uniqueId!==a.infos.representation.uniqueId&&o.timestamp-u.timestamp<5e3){s=u;break}else u.segment.start===a.start&&e-u.position<3e3&&(o=u)}if(s===void 0||s.segment===null)m.debug("Freeze","Freeze when beginning to play a content, try avoiding this quality"),t.push({adaptation:a.infos.adaptation,period:a.infos.period,representation:a.infos.representation});else{if(a.infos.period.id!==s.segment.infos.period.id)return m.debug("Freeze","Freeze when switching Period, reloading"),{type:"reload",value:null};a.infos.representation.uniqueId!==s.segment.infos.representation.uniqueId&&(m.warn("Freeze","Freeze when switching Representation, avoiding",{bitrate:a.infos.representation.bitrate}),t.push({adaptation:a.infos.adaptation,period:a.infos.period,representation:a.infos.representation}))}}return t.length>0?{type:"avoid-representations",value:t}:(m.debug("Freeze","Reloading because flush doesn't work"),{type:"reload",value:null})}_addPositionToHistory(e,t){var i,o;let r=e.position.getPolled();for(let a of["audio","video"]){let s=this._segmentSinksStore.getStatus(a);if(s.type==="initialized")for(let c of s.value.getLastKnownInventory())((i=c.bufferedStart)!=null?i:c.start)<=r&&((o=c.bufferedEnd)!=null?o:c.end)>r&&this._lastSegmentInfo[a].push({segment:c,position:r,timestamp:t});else this._lastSegmentInfo[a].push({segment:null,position:r,timestamp:t});if(this._lastSegmentInfo[a].length>100){let c=this._lastSegmentInfo[a].length-100;this._lastSegmentInfo[a].splice(0,c)}let d=t-Sh,u;for(u=0;u<this._lastSegmentInfo[a].length&&!(this._lastSegmentInfo[a][u].timestamp>d);u++);u>0&&this._lastSegmentInfo[a].splice(0,u)}}};function Th(n){let e=!0,t=!0;for(let r of["audio","video"]){let i=n.getStatus(r);if(i.type==="initialized")for(let o of i.value.getLastKnownInventory()){let{representation:a}=o.infos;if(a.decipherable===!1)return{hasUndecipherableData:!0,hasEncryptedData:!0};a.contentProtections!==void 0&&(t=!1,a.decipherable!==!0&&(e=!1))}}return{hasEncryptedData:!t,hasUndecipherableData:e?!1:void 0}}function Pf(n){return n!==void 0&&isFinite(n)?n:0}async function yd(n,e,t,r,i){let o=e.getPeriod(t);if(o===void 0)throw new Error("Wanted Period not found.");let a=Q(o.thumbnailTracks,d=>d.id===r);if(a===void 0)throw new Error("Wanted Period has no thumbnail track.");let s=a.index.getSegments(i,1)[0];if(s===void 0)throw new Error("No thumbnail for the given timestamp");return n({segment:s,track:a,period:o},new U().signal)}function Id(n,e){["video","audio","text"].forEach(t=>{var i;let r=e.getStatus(t);r.type==="initialized"&&r.value.synchronizeInventory((i=n.buffered[t])!=null?i:[])})}function ma({segmentSink:n,playbackObserver:e,maxBufferBehind:t,maxBufferAhead:r},i){let o,a=[];e.listen(d=>{o=d.position.getWanted(),a=d.buffered[n.bufferType],s()},{includeLastObservation:!0,clearSignal:i});function s(){a!==null&&Eh(n,o,a,t.getValue(),r.getValue(),i).catch(d=>{if(i.isCancelled()&&U.isCancellationError(d))return;let u=d instanceof Error?d.message:"Unknown error";m.error("Stream","Could not run BufferGarbageCollector:",u)})}t.onUpdate(s,{clearSignal:i}),r.onUpdate(s,{clearSignal:i}),s()}async function Eh(n,e,t,r,i,o){if(!isFinite(r)&&!isFinite(i))return Promise.resolve();let a=[],{innerRange:s,outerRanges:d}=mc(t,e),u=()=>{if(isFinite(r)){for(let l of d)e-r>=l.end?a.push(l):e>=l.end&&e-r>l.start&&e-r<l.end&&a.push({start:l.start,end:e-r});E(s)||e-r>s.start&&a.push({start:s.start,end:e-r})}},c=()=>{if(isFinite(i)){for(let l of d)e+i<=l.start?a.push(l):e<=l.start&&e+i<l.end&&e+i>l.start&&a.push({start:e+i,end:l.end});E(s)||e+i<s.end&&a.push({start:e+i,end:s.end})}};u(),c();for(let l of a)if(l.start<l.end){if(m.debug("Stream","cleaning range from SegmentSink",{start:l.start,end:l.end}),o.cancellationError!==null)throw o.cancellationError;await n.removeBuffer(l.start,l.end)}}var yi=class{constructor(e,t){this._history=[],this._lifetime=e,this._maxHistoryLength=t}addBufferedSegment(e,t){let r=z();this._history.push({date:r,buffered:t,context:e}),this._cleanHistory(r)}getHistoryFor(e){return this._history.filter(t=>Dt(t.context,e))}_cleanHistory(e){let t=e-this._lifetime,r=0;for(let i of this._history)if(i.date<t)r++;else break;if(r>0&&(this._history=this._history.splice(r)),this._history.length>this._maxHistoryLength){let i=this._history.length-this._maxHistoryLength;this._history=this._history.splice(i)}}};var Ii=class{constructor(){let{BUFFERED_HISTORY_RETENTION_TIME:e,BUFFERED_HISTORY_MAXIMUM_ENTRIES:t}=O.getCurrent();this._inventory=[],this._bufferedHistory=new yi(e,t)}reset(){this._inventory.length=0}synchronizeBuffered(e){var d,u,c,l,f,p,h;let t=this._inventory,r=0,i=t[0],{MINIMUM_SEGMENT_SIZE:o}=O.getCurrent(),a=i==null?void 0:i.infos.adaptation.type;if(m.hasLevel("DEBUG")){let I=e.map(g=>`${g.start}-${g.end}`).join(",");m.debug("SI",`synchronizing ${a!=null?a:"unknown"} buffered ranges:`,I)}let s=e.length;for(let I=0;I<s;I++){if(i===void 0)return;let g=e[I].start,b=e[I].end;if(b-g<o){m.warn("SI","skipped range when synchronizing because it was too small",{t:a,rangeStart:g,rangeEnd:b});continue}let T=r;for(;i!==void 0&&((d=i.bufferedEnd)!=null?d:i.end)-g<o;)i=t[++r];let v=null,_=r-T;if(_>0){let k=t[T+_-1];v={end:(u=k.bufferedEnd)!=null?u:k.end,precizeEnd:k.precizeEnd},m.debug("SI",`${_} segments GCed.`,{t:a});let x=t.splice(T,_);for(let P of x)P.bufferedStart===void 0&&P.bufferedEnd===void 0&&P.status!==2&&this._bufferedHistory.addBufferedSegment(P.infos,null);r=T}if(i===void 0)return;if(b-((c=i.bufferedStart)!=null?c:i.start)>=o){if(_h(i,g,v,a),r===t.length-1){Af(i,b,a);return}i=t[++r];let k=(l=i.bufferedStart)!=null?l:i.start,x=(f=i.bufferedEnd)!=null?f:i.end,P=I<s-1?e[I+1].start:void 0;for(;i!==void 0&&!(b<k||b-k<o&&x-b>=o||P!==void 0&&b-k<x-P);){let M=t[r-1];M.bufferedEnd===void 0&&(i.precizeStart?M.bufferedEnd=i.start:M.infos.segment.complete?M.bufferedEnd=M.end:M.bufferedEnd=i.start,m.debug("SI","calculating buffered end of contiguous segment",{t:a,prevSegmentBufferedEnd:M.bufferedEnd,pse:M.end})),i.bufferedStart=M.bufferedEnd,i=t[++r],i!==void 0&&(k=(p=i.bufferedStart)!=null?p:i.start,x=(h=i.bufferedEnd)!=null?h:i.end)}}let R=t[r-1];R!==void 0&&Af(R,b,a)}if(!E(i)){let{SEGMENT_SYNCHRONIZATION_DELAY:I}=O.getCurrent(),g=z();for(let b=r;b<t.length;b++){let T=t[b];g-T.insertionTs>=I&&(m.debug("SI","A segment at the end has been completely GCed",bt(T.infos)),T.bufferedStart===void 0&&T.bufferedEnd===void 0&&T.status!==2&&this._bufferedHistory.addBufferedSegment(T.infos,null),t.splice(b,1),b--)}}a!==void 0&&m.hasLevel("DEBUG")&&m.debug("SI",`current ${a} inventory timeline:
|
|
1
|
+
"use strict";(()=>{var Bp=Object.defineProperty,Fp=Object.defineProperties;var Kp=Object.getOwnPropertyDescriptors;var Ql=Object.getOwnPropertySymbols;var Vp=Object.prototype.hasOwnProperty,zp=Object.prototype.propertyIsEnumerable;var $l=(n,e,t)=>e in n?Bp(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,ae=(n,e)=>{for(var t in e||(e={}))Vp.call(e,t)&&$l(n,t,e[t]);if(Ql)for(var t of Ql(e))zp.call(e,t)&&$l(n,t,e[t]);return n},ue=(n,e)=>Fp(n,Kp(e));var y={PRODUCTION:0,DEV:1,CURRENT_ENV:0};var S={CURRENT_LEVEL:"NONE"};function E(n){return n==null}var se=class{constructor(){this._listeners={}}addEventListener(e,t,r){let i=this._listeners[e];Array.isArray(i)?i.push(t):this._listeners[e]=[t],r!==void 0&&r.register(()=>{this.removeEventListener(e,t)})}removeEventListener(e,t){if(E(e)){this._listeners={};return}let r=this._listeners[e];if(!Array.isArray(r))return;if(E(t)){delete this._listeners[e];return}let i=r.indexOf(t);i!==-1&&r.splice(i,1),r.length===0&&delete this._listeners[e]}trigger(e,t){let r=this._listeners[e];Array.isArray(r)&&r.slice().forEach(i=>{try{i(t)}catch(o){if(y.CURRENT_ENV===y.DEV)throw o instanceof Error?o:new Error("EventEmitter: listener error");console.error("RxPlayer: EventEmitter error",o instanceof Error?o:null)}})}};var Vn=typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope;var qp=typeof window=="undefined"&&!Vn,$t=qp;var Eo;Vn?Eo=self:$t?Eo=global:Eo=window;var Z=Eo;var It=typeof queueMicrotask=="function"?queueMicrotask:function(e){Promise.resolve().then(e,()=>e())};function ts(){if(!$t&&!E(Z.WebKitSourceBuffer)&&Z.WebKitSourceBuffer.prototype.addEventListener===void 0){let e=Z.WebKitSourceBuffer.prototype;for(let t in se.prototype)Object.prototype.hasOwnProperty.call(se.prototype,t)&&(e[t]=se.prototype[t]);e._listeners=[],e._emitUpdate=function(t,r){It(()=>{this.trigger(t,r),this.updating=!1,this.trigger("updateend",new Event("updateend"))})},e.appendBuffer=function(t){var r,i;if(this.updating)throw new Error("updating");this.trigger("updatestart",new Event("updatestart")),this.updating=!0;try{this.append(t)}catch(o){(r=this._emitUpdate)==null||r.call(this,"error",o);return}(i=this._emitUpdate)==null||i.call(this,"update",new Event("update"))}}}function Ie(n,e,t){if(typeof Array.prototype.findIndex=="function")return n.findIndex(e,t);let r=n.length>>>0;for(let i=0;i<r;i++)if(e.call(t,n[i],i,n))return i;return-1}function te(){}var _o=class{constructor(e,t){this._value=e,this._listeners=[],this._isFinished=!1,this._onFinishCbs=[],t!==void 0&&(this._deregisterCancellation=t.register(()=>this.finish()))}getValue(){return this._value}setValue(e){if(this._isFinished){y.CURRENT_ENV===y.DEV&&console.error("Finished shared references cannot be updated");return}if(this._value=e,this._listeners.length===0)return;let t=this._listeners.slice();for(let r of t)try{r.hasBeenCleared||r.trigger(e,r.complete)}catch(i){}}setValueIfChanged(e){e!==this._value&&this.setValue(e)}onUpdate(e,t){let r=()=>{if(t.clearSignal!==void 0&&t.clearSignal.deregister(r),i.hasBeenCleared)return;i.hasBeenCleared=!0;let o=this._listeners.indexOf(i);o>=0&&this._listeners.splice(o,1)},i={trigger:e,complete:r,hasBeenCleared:!1};if(this._listeners.push(i),t.emitCurrentValue===!0&&e(this._value,r),this._isFinished||i.hasBeenCleared){r();return}t.clearSignal.register(r)}waitUntilDefined(e,t){this.onUpdate((r,i)=>{r!==void 0&&(i(),e(this._value))},{clearSignal:t.clearSignal,emitCurrentValue:!0})}_onFinished(e,t){if(t.isCancelled())return te;let r=()=>{let a=Ie(this._onFinishCbs,s=>s.trigger===i);a>=0&&(this._onFinishCbs[a].hasBeenCleared=!0,this._onFinishCbs.splice(a,1))},i=()=>{r(),e()},o=t.register(r);return this._onFinishCbs.push({trigger:i,hasBeenCleared:!1}),o}finish(){this._deregisterCancellation!==void 0&&this._deregisterCancellation(),this._isFinished=!0;let e=this._listeners.slice();for(let t of e)try{t.hasBeenCleared||(t.complete(),t.hasBeenCleared=!0)}catch(r){}if(this._listeners.length=0,this._onFinishCbs.length>0){let t=this._onFinishCbs.slice();for(let r of t)try{r.hasBeenCleared||(r.trigger(),r.hasBeenCleared=!0)}catch(i){}this._onFinishCbs.length=0}}};function gn(n,e,t){let r=new _o(e(n.getValue()),t);return n.onUpdate(function(o){r.setValue(e(o))},{clearSignal:t}),n._onFinished(()=>{r.finish()},t),r}var j=_o;var Xl=new j(0);var Gp=typeof performance!="undefined"?()=>performance.now()+Xl.getValue():()=>Date.now()+Xl.getValue(),z=Gp;var jp="NONE",br=class extends se{constructor(){super(),this.error=te,this.warn=te,this.info=te,this.debug=te,this._levels={NONE:0,ERROR:1,WARNING:2,INFO:3,DEBUG:4},this._currentFormat="standard",this._currentLevel=jp}setLevel(e,t,r){let i,o=this._levels[e];typeof o=="number"?(i=o,this._currentLevel=e):(i=0,this._currentLevel="NONE");let a;if(t==="standard"||t==="full"?a=t:a="standard",a==="full"&&a!==this._currentFormat){let d=z();console.log(String(d.toFixed(2)),"[Init]",`Local-Date: ${Date.now()}`)}this._currentFormat=a;let s=this._currentFormat==="full"?(d,u)=>(c,...l)=>{let f=z();return u(String(f.toFixed(2)),`[${d}]`,c+":",...l.map(p=>typeof p=="object"&&p!==null&&!(p instanceof Error)?Zl(p):p))}:(d,u)=>(c,...l)=>u(c+":",...l.map(f=>typeof f=="object"&&f!==null&&!(f instanceof Error)?Zl(f):f));if(r===void 0)this.error=i>=this._levels.ERROR?s("error",console.error.bind(console)):te,this.warn=i>=this._levels.WARNING?s("warn",console.warn.bind(console)):te,this.info=i>=this._levels.INFO?s("info",console.info.bind(console)):te,this.debug=i>=this._levels.DEBUG?s("log",console.log.bind(console)):te;else{let d=u=>i>=this._levels[u]?(c,...l)=>r(u,c,l):te;this.error=d("ERROR"),this.warn=d("WARNING"),this.info=d("INFO"),this.debug=d("DEBUG")}this.trigger("onLogLevelChange",{level:this._currentLevel,format:this._currentFormat})}getLevel(){return this._currentLevel}getFormat(){return this._currentFormat}hasLevel(e){return this._levels[e]>=this._levels[this._currentLevel]}};function Zl(n){let e="";for(let t in n)if(Object.prototype.hasOwnProperty.call(n,t)){e.length>0&&(e+=" ");let r=n[t];r instanceof Error?e+=`${t}="${JSON.stringify(r==null?void 0:r.toString())}"`:e+=`${t}=${typeof r=="string"?`${JSON.stringify(r)}`:String(r)}`}return e}var Yp=new br,m=Yp;var Be=Z,Jl,ec,tc,nc,rc,wt=(rc=(nc=(tc=(ec=(Jl=Be==null?void 0:Be.MediaSource)!=null?Jl:Be==null?void 0:Be.MozMediaSource)!=null?ec:Be==null?void 0:Be.WebKitMediaSource)!=null?tc:Be==null?void 0:Be.MSMediaSource)!=null?nc:Be==null?void 0:Be.ManagedMediaSource)!=null?rc:void 0,ic=wt!==void 0&&wt===(Be==null?void 0:Be.ManagedMediaSource);var Qp=200,vo=new Map;function ns(n,e){if(n.isDummy)return n.FORCED_MEDIA_SOURCE.isTypeSupported(e);if(E(wt))return Vn&&m.error("mse","Cannot request codec support in a worker without MSE."),!1;if(typeof wt.isTypeSupported=="function"){let t=vo.get(e);if(t!==void 0)return t;{let r=wt.isTypeSupported(e);return vo.size>=Qp&&vo.clear(),vo.set(e,r),r}}return!0}var oc={DEFAULT_REQUEST_TIMEOUT:3e4,DEFAULT_CONNECTION_TIMEOUT:15e3,DEFAULT_TEXT_TRACK_MODE:"native",DEFAULT_ENABLE_FAST_SWITCHING:!0,DELTA_POSITION_AFTER_RELOAD:{bitrateSwitch:-.1,trackSwitch:{audio:0,video:0,other:0}},DEFAULT_CODEC_SWITCHING_BEHAVIOR:"continue",DEFAULT_AUDIO_TRACKS_NOT_PLAYABLE_BEHAVIOR:"error",DEFAULT_VIDEO_TRACKS_NOT_PLAYABLE_BEHAVIOR:"error",DEFAULT_AUTO_PLAY:!1,DEFAULT_WANTED_BUFFER_AHEAD:30,DEFAULT_MAX_BUFFER_AHEAD:1/0,DEFAULT_MAX_BUFFER_BEHIND:1/0,DEFAULT_MAX_VIDEO_BUFFER_SIZE:1/0,MAXIMUM_MAX_BUFFER_AHEAD:{text:18e3},MINIMUM_MAX_BUFFER_AHEAD:{text:120},MAXIMUM_MAX_BUFFER_BEHIND:{text:18e3},DEFAULT_BASE_BANDWIDTH:0,INACTIVITY_DELAY:6e4,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:!1,DEFAULT_VIDEO_RESOLUTION_LIMIT:"none",DEFAULT_LIVE_GAP:{DEFAULT:10,LOW_LATENCY:3.5},BUFFER_DISCONTINUITY_THRESHOLD:.2,BITRATE_REBUFFERING_RATIO:1.5,DEFAULT_MAX_MANIFEST_REQUEST_RETRY:4,DEFAULT_CDN_DOWNGRADE_TIME:60,DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:4,INITIAL_BACKOFF_DELAY_BASE:{REGULAR:200,LOW_LATENCY:50},MAX_BACKOFF_DELAY_BASE:{REGULAR:3e3,LOW_LATENCY:1e3},SAMPLING_INTERVAL_MEDIASOURCE:1e3,SAMPLING_INTERVAL_LOW_LATENCY:500,SAMPLING_INTERVAL_NO_MEDIASOURCE:500,ABR_ENTER_BUFFER_BASED_ALGO:10,ABR_EXIT_BUFFER_BASED_ALGO:5,ABR_MINIMUM_TOTAL_BYTES:15e4,ABR_MINIMUM_CHUNK_SIZE:16e3,ABR_STARVATION_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_REGULAR_FACTOR:{DEFAULT:.72,LOW_LATENCY:.72},ABR_STARVATION_GAP:{DEFAULT:5,LOW_LATENCY:5},OUT_OF_STARVATION_GAP:{DEFAULT:7,LOW_LATENCY:7},ABR_STARVATION_DURATION_DELTA:.1,ABR_FAST_EMA:2,ABR_SLOW_EMA:10,RESUME_GAP_AFTER_SEEKING:{DEFAULT:1.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_NOT_ENOUGH_DATA:{DEFAULT:.5,LOW_LATENCY:.5},RESUME_GAP_AFTER_BUFFERING:{DEFAULT:5,LOW_LATENCY:.5},REBUFFERING_GAP:{DEFAULT:.5,LOW_LATENCY:.2},MINIMUM_BUFFER_AMOUNT_BEFORE_FREEZING:2,UNFREEZING_SEEK_DELAY:6e3,FREEZING_STALLED_DELAY:600,UNFREEZING_DELTA_POSITION:.001,FREEZING_FLUSH_FAILURE_DELAY:{MAXIMUM:2e4,MINIMUM:4e3,POSITION_DELTA:1},SEGMENT_SYNCHRONIZATION_DELAY:1500,MISSING_DATA_TRIGGER_SYNC_DELAY:.1,MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:.15,MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:.4,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:.3,MINIMUM_SEGMENT_SIZE:.001,APPEND_WINDOW_SECURITIES:{START:.2,END:.1},MAXIMUM_HTML_TEXT_TRACK_UPDATE_INTERVAL:50,TEXT_TRACK_SIZE_CHECKS_INTERVAL:250,BUFFER_PADDING:{audio:1,video:3,other:1},SEGMENT_PRIORITIES_STEPS:[2,4,8,12,18,25],MAX_HIGH_PRIORITY_LEVEL:1,MIN_CANCELABLE_PRIORITY:3,EME_DEFAULT_VIDEO_CODECS:['video/mp4;codecs="avc1.4d401e"','video/mp4;codecs="avc1.42e01e"','video/mp4;codecs="hvc1.1.6.L93.B0"','video/webm;codecs="vp8"'],EME_DEFAULT_AUDIO_CODECS:['audio/mp4;codecs="mp4a.40.2"','audio/webm;codecs="opus"','audio/mp4;codecs="ec-3"'],EME_DEFAULT_WIDEVINE_ROBUSTNESSES:["HW_SECURE_ALL","HW_SECURE_DECODE","HW_SECURE_CRYPTO","SW_SECURE_DECODE","SW_SECURE_CRYPTO"],EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:["3000","2000"],EME_KEY_SYSTEMS:{clearkey:["webkit-org.w3.clearkey","org.w3.clearkey"],widevine:["com.widevine.alpha"],playready:["com.microsoft.playready.recommendation","com.microsoft.playready","com.chromecast.playready","com.youtube.playready"],fairplay:["com.apple.fps.1_0"]},MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:10,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:200,MIN_DASH_S_ELEMENTS_TO_PARSE_UNSAFELY:300,OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:3e3,FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:3e3,DASH_FALLBACK_LIFETIME_WHEN_MINIMUM_UPDATE_PERIOD_EQUAL_0:3,EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:15,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:1e3,EME_WAITING_DELAY_LOADED_SESSION_EMPTY_KEYSTATUSES:100,FORCED_ENDED_THRESHOLD:8e-4,ADAP_REP_SWITCH_BUFFER_PADDINGS:{video:{before:5,after:5},audio:{before:2,after:2.5},text:{before:0,after:0}},SOURCE_BUFFER_FLUSHING_INTERVAL:500,CONTENT_REPLACEMENT_PADDING:1.2,CACHE_LOAD_DURATION_THRESHOLDS:{video:50,audio:10},STREAM_EVENT_EMITTER_POLL_INTERVAL:250,DEFAULT_MAXIMUM_TIME_ROUNDING_ERROR:.001,BUFFERED_HISTORY_RETENTION_TIME:6e4,BUFFERED_HISTORY_MAXIMUM_ENTRIES:200,MIN_BUFFER_AHEAD:5,UPTO_CURRENT_POSITION_CLEANUP:5,DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:"seamless",DEFAULT_VIDEO_TRACK_SWITCHING_MODE:"reload",DEFAULT_AUDIO_TRACK_SWITCHING_MODE:"seamless",DEFAULT_MAX_THUMBNAIL_REQUESTS_RETRY_ON_ERROR:1,DEFAULT_THUMBNAIL_REQUEST_TIMEOUT:1e4,DEFAULT_THUMBNAIL_CONNECTION_TIMEOUT:7e3,FORCE_CANNOT_RELY_ON_REQUEST_MEDIA_KEY_SYSTEM_ACCESS:!1,FORCE_CANNOT_REUSE_MEDIA_KEYS:!1,FORCE_HAS_ISSUES_WITH_HIGH_MEDIA_SOURCE_DURATION:!1,FORCE_IS_SEEKING_APPROXIMATE:!1,FORCE_MEDIA_ELEMENT_FAIL_ON_UNDECIPHERABLE_DATA:!1,FORCE_SHOULD_AWAIT_SET_MEDIA_KEYS:!1,FORCE_SHOULD_FAVOUR_CUSTOM_SAFARI_EME:!1,FORCE_SHOULD_RELOAD_MEDIA_SOURCE_ON_DECIPHERABILITY_UPDATE:!1,FORCE_SHOULD_RENEW_MEDIA_KEY_SYSTEM_ACCESS:!1,FORCE_SHOULD_UNSET_MEDIA_KEYS:!1,FORCE_SHOULD_VALIDATE_METADATA:!1,FORCE_DONT_WAIT_FOR_DATA_BEFORE_LOADED:!1,FORCE_WAIT_FOR_HAVE_ENOUGH_DATA:!1},ac=oc;function $p(n,...e){if(n==null)throw new TypeError("Cannot convert undefined or null to object");let t=Object(n);for(let r of e)for(let i in r)Object.prototype.hasOwnProperty.call(r,i)&&(t[i]=r[i]);return t}var Y=typeof Object.assign=="function"?Object.assign:$p;function rs(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function Sr(n,...e){if(e.length===0)return n;let t=e.shift();if(rs(n)&&rs(t))for(let r in t)if(rs(t[r])){let i=n[r];i===void 0&&(i={},n[r]=i),Sr(i,t[r])}else Y(n,{[r]:t[r]});return Sr(n,...e)}var is=class extends se{constructor(){super(...arguments);this.updated=!1;this._config=ac}update(t){let r=Sr(this._config,t);this._config=r,this.updated=!0,this.trigger("update",t)}getCurrent(){return this._config}},Xp=new is,O=Xp;var Xt={EdgeChromium:0,Firefox:1,Ie11:2,OtherIeOrEdgePreEdgeChromium:3,SafariDesktop:4,SafariMobile:5,Other:6},at={A1KStb40xx:100,Panasonic:101,PhilipsNetTv:102,PlayStation4:103,PlayStation5:104,Tizen:105,WebOs2021:106,WebOs2022:107,WebOsOther:108,Xbox:109,Other:110},Fe={DEVICES:at,BROWSERS:Xt,browser:Xt.Other,device:at.Other,isSamsungBrowser:!1};Zp();function Zp(){var n,e,t;$t||(typeof Z.MSInputMethodContext!="undefined"&&typeof document.documentMode!="undefined"?Fe.browser=Xt.Ie11:navigator.appName==="Microsoft Internet Explorer"||navigator.appName==="Netscape"&&/(Trident|Edge)\//.test(navigator.userAgent)?Fe.browser=Xt.OtherIeOrEdgePreEdgeChromium:navigator.userAgent.toLowerCase().indexOf("edg/")!==-1?Fe.browser=Xt.EdgeChromium:navigator.userAgent.toLowerCase().indexOf("firefox")!==-1?Fe.browser=Xt.Firefox:typeof navigator.platform=="string"&&/iPad|iPhone|iPod/.test(navigator.platform)?Fe.browser=Xt.SafariMobile:(Object.prototype.toString.call(Z.HTMLElement).indexOf("Constructor")>=0||((e=(n=Z.safari)==null?void 0:n.pushNotification)==null?void 0:e.toString())==="[object SafariRemoteNotification]"||/Safari\/(\d+)/.test(navigator.userAgent)&&/Version\/(\d+)/.test(navigator.userAgent)&&((t=navigator.vendor)==null?void 0:t.indexOf("Apple"))!==-1&&!/Chrome\/(\d+)/.test(navigator.userAgent)&&!/Chromium\/(\d+)/.test(navigator.userAgent))&&(Fe.browser=Xt.SafariDesktop),/SamsungBrowser/.test(navigator.userAgent)&&(Fe.isSamsungBrowser=!0),navigator.userAgent.indexOf("PlayStation 4")!==-1?Fe.device=at.PlayStation4:navigator.userAgent.indexOf("PlayStation 5")!==-1?Fe.device=at.PlayStation5:/Tizen/.test(navigator.userAgent)?Fe.device=at.Tizen:/[Ww]eb[O0]S/.test(navigator.userAgent)?/[Ww]eb[O0]S.TV-2022/.test(navigator.userAgent)||/[Cc]hr[o0]me\/87/.test(navigator.userAgent)?Fe.device=at.WebOs2022:/[Ww]eb[O0]S.TV-2021/.test(navigator.userAgent)||/[Cc]hr[o0]me\/79/.test(navigator.userAgent)?Fe.device=at.WebOs2021:Fe.device=at.WebOsOther:navigator.userAgent.indexOf("NETTV")!==-1&&navigator.userAgent.indexOf("Philips")!==-1?Fe.device=at.PhilipsNetTv:/[Pp]anasonic/.test(navigator.userAgent)?Fe.device=at.Panasonic:navigator.userAgent.indexOf("Xbox")!==-1?Fe.device=at.Xbox:navigator.userAgent.indexOf("Model/a1-kstb40xx")!==-1&&(Fe.device=at.A1KStb40xx))}var V=Fe;function os(){let{FORCE_MEDIA_ELEMENT_FAIL_ON_UNDECIPHERABLE_DATA:n}=O.getCurrent();return n||V.device===V.DEVICES.PlayStation5}function as(n){let{FORCE_SHOULD_RELOAD_MEDIA_SOURCE_ON_DECIPHERABILITY_UPDATE:e}=O.getCurrent();return e||n===void 0||n.indexOf("widevine")<0}var Jp=.016666666666666666;function sc(n,e){return Math.abs(n-e)<Jp}function uc(n,e){let t=Math.min(n.start,e.start),r=Math.max(n.end,e.end);return{start:t,end:r}}function eg(n){for(let e=0;e<n.length;e++){let t=n[e];t.start===t.end&&n.splice(e--,1)}return n}function tg(n){for(let e=1;e<n.length;e++){let t=n[e-1],r=n[e];if(cc(t,r)){let i=uc(t,r);n.splice(--e,2,i)}}return n}function ss(n,e){return n.end<=e.start}function dc({start:n,end:e},t){return n<=t&&t<e}function lc(n,e){return dc(n,e.start)||n.start<e.end&&e.end<n.end||dc(e,n.start)}function cc(n,e){return sc(e.start,n.end)||sc(e.end,n.start)}function Le(n){let e=[];for(let t=0;t<n.length;t++)e.push({start:n.start(t),end:n.end(t)});return e}function ds(n,e){for(let t=n.length-1;t>=0;t--){let r=n.start(t);if(e>=r){let i=n.end(t);if(e<i)return{start:r,end:i}}}return null}function ng(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t].start;if(e>=r){let i=n[t].end;if(e<i)return n[t]}}return null}function fc(n,e){let t=n.length;for(let r=0;r<t;r++){let i=n.start(r);if(e<i)return i-e}return 1/0}function mc(n,e){let t=null,r=[];for(let i=0;i<n.length;i++){let o=n[i].start,a=n[i].end;e<o||e>=a?r.push({start:o,end:a}):t={start:o,end:a}}return{outerRanges:r,innerRange:t}}function pc(n,e){let t=ds(n,e);return t!==null?t.end-e:1/0}function Ro(n,e){let t=ng(n,e);return t!==null?t.end-e:1/0}function vt(n,e){if(e.start===e.end)return n;let t=e,r=0;for(;r<n.length;r++){let i=n[r],o=lc(t,i),a=cc(t,i);if(o||a)t=uc(t,i),n.splice(r--,1);else if(r===0){if(ss(t,n[0]))break}else if(ss(n[r-1],t)&&ss(t,i))break}return n.splice(r,0,t),tg(eg(n))}function gc(n,e){let t=[];for(let r=0;r<e.length;r++)lc(n,e[r])&&t.push(e[r]);return t}function hc(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=gc(i,e);if(o.length>0)for(let a=0;a<o.length;a++){let s=o[a];t.push({start:Math.max(i.start,s.start),end:Math.min(i.end,s.end)})}}return t}function ko(n,e){let t=[];for(let r=0;r<n.length;r++){let i=n[r],o=[],a=gc(i,e);if(a.length>0)for(let s=0;s<a.length;s++){let d=a[s];o.push({start:Math.max(i.start,d.start),end:Math.min(i.end,d.end)})}if(o.length===0)t.push(i);else{let s=i.start;for(let d=0;d<o.length;d++)o[d].start>s&&t.push({start:s,end:o[d].start}),s=o[d].end;s<i.end&&t.push({start:s,end:i.end})}}return t}var Po=class n extends Error{constructor(e){super(e),Object.setPrototypeOf(this,n.prototype),this.name="AssertionError"}};function ne(n,e){if(y.DEV===y.CURRENT_ENV&&!n)throw new Po(e===void 0?"invalid assertion":e)}function yc(n,e,t="object"){ne(!E(n),`${t} should be an object`);for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&ne(typeof n[r]===e[r],`${t} should have property ${r} as a ${e[r]}`)}function ze(n){throw new Po("Unreachable path taken")}var U=class{constructor(){let[e,t]=rg();this._isUsed=!1,this._trigger=e,this.signal=new Tr(t)}isUsed(){return this._isUsed}linkToSignal(e){let t=e.register(()=>{this.cancel()});return this.signal.register(t),t}cancel(e){if(this._isUsed)return;this._isUsed=!0;let t=e!=null?e:new we;this._trigger(t)}static isCancellationError(e){return e instanceof we}},Tr=class{constructor(e){this._isCancelled=!1,this.cancellationError=null,this._listeners=[],e(t=>{for(this.cancellationError=t,this._isCancelled=!0;this._listeners.length>0;)try{let r=this._listeners.pop();r==null||r(t)}catch(r){m.error("utils","Error while calling clean up listener",r instanceof Error?r:"Unknown Error")}})}isCancelled(){return this._isCancelled}register(e){return this._isCancelled?(ne(this.cancellationError!==null),e(this.cancellationError),te):(this._listeners.push(e),()=>this.deregister(e))}deregister(e){for(let t=this._listeners.length-1;t>=0;t--)this._listeners[t]===e&&this._listeners.splice(t,1)}},we=class n extends Error{constructor(){super("This task was cancelled."),Object.setPrototypeOf(this,n.prototype),this.name="CancellationError"}};function rg(){let n=te;return[function(t){n(t)},function(t){n=t}]}function us(n){let e=n.map(a=>Math.log(a/n[0])),t=e.map(a=>a-e[0]+1),r=(t[t.length-1]-1)/(n.length*2+10),i=1/r;return n.map((a,s)=>o(s));function o(a){if(a===0)return 0;let s=Math.min(Math.max(1,a),n.length-1);return n[s]===n[s-1]?o(a-1):i*(r+(n[s]*t[s-1]-n[s-1]*t[s])/(n[s]-n[s-1]))+4}}var st=class{constructor(e){this._alpha=Math.exp(Math.log(.5)/e),this._lastEstimate=0,this._totalWeight=0}addSample(e,t){let r=Math.pow(this._alpha,e),i=t*(1-r)+r*this._lastEstimate;isNaN(i)||(this._lastEstimate=i,this._totalWeight+=e)}getEstimate(){let e=1-Math.pow(this._alpha,this._totalWeight);return this._lastEstimate/e}};var Er=class{constructor(){this._currentRepresentationData=null,this._lastRepresentationWithGoodScore=null}addSample(e,t,r){let i=r/t,o=this._currentRepresentationData,a;o!==null&&o.representation.id===e.id?(a=o.ewma,o.ewma.addSample(t,i),o.loadedDuration+=r,o.loadedSegments++):(a=new st(5),a.addSample(t,i),this._currentRepresentationData={representation:e,ewma:a,loadedDuration:r,loadedSegments:0}),a.getEstimate()>1&&this._lastRepresentationWithGoodScore!==e&&(m.debug("ABR","New last stable representation",{bitrate:e.bitrate}),this._lastRepresentationWithGoodScore=e)}getEstimate(e){if(this._currentRepresentationData===null||this._currentRepresentationData.representation.id!==e.id)return;let{ewma:t,loadedSegments:r,loadedDuration:i}=this._currentRepresentationData,o=t.getEstimate(),a=r>=5&&i>=10?1:0;return{score:o,confidenceLevel:a}}getLastStableRepresentation(){return this._lastRepresentationWithGoodScore}};var Ic=6e3,ig=15e3,og=3e3,ag=1e3,sg=9e3,_r=class{constructor(e){this._levelsMap=us(e).map(t=>t+4),this._bitrates=e,this._lastUnsuitableQualityTimestamp=void 0,this._blockRaiseDelay=Ic,m.debug("ABR","Steps for buffer based chooser.",this._levelsMap.map((t,r)=>`bufferLevel: ${t}, bitrate: ${e[r]}`).join(" ,"))}onAddedSegment(e){let t=this._levelsMap,r=this._bitrates,{bufferGap:i,currentBitrate:o,currentScore:a,speed:s}=e;if(E(o)){this._currentEstimate=r[0];return}let d=-1;for(let h=0;h<r.length;h++){let I=r[h];if(I===o)d=h;else if(I>o)break}if(d<0||r.length!==t.length){m.info("ABR","Current Bitrate not found in the calculated levels"),this._currentEstimate=r[0];return}let u;a!==void 0&&(u=s===0?a.score:a.score/s);let c=isFinite(i)?i:0,l=z();if(c<t[d]||u!==void 0&&u<1&&(a==null?void 0:a.confidenceLevel)===1){if((this._lastUnsuitableQualityTimestamp===void 0?-1:l-this._lastUnsuitableQualityTimestamp)<this._blockRaiseDelay+sg){let g=this._blockRaiseDelay+og;m.debug("ABR","Incrementing blocking raise in BufferBasedChooser due to unstable quality",{prevDelay:this._blockRaiseDelay,newDelay:g}),this._blockRaiseDelay=Math.min(g,ig)}else{let g=this._blockRaiseDelay-ag;m.debug("ABR","Lowering quality in BufferBasedChooser",{prevDelay:this._blockRaiseDelay,newDelay:g}),this._blockRaiseDelay=Math.max(Ic,g)}this._lastUnsuitableQualityTimestamp=l;let I=Ie(r,g=>g===o);for(let g=I-1;g>=0;g--)if(c>=t[g]){this._currentEstimate=r[g];return}this._currentEstimate=r[0];return}if(this._lastUnsuitableQualityTimestamp!==void 0&&l-this._lastUnsuitableQualityTimestamp<this._blockRaiseDelay||u===void 0||u<1.15||(a==null?void 0:a.confidenceLevel)!==1){this._currentEstimate=o;return}let f=t[d],p=(()=>{for(let h=d+1;h<t.length;h++)if(t[h]>f)return h})();if(p!==void 0){let h=t[p];if(i>=h){m.debug("ABR","Raising quality in BufferBasedChooser",{bitrate:r[p]}),this._currentEstimate=r[p];return}}this._currentEstimate=o}getLastEstimate(){return this._currentEstimate}};function Q(n,e,t){if(typeof Array.prototype.find=="function")return n.find(e,t);let r=n.length>>>0;for(let i=0;i<r;i++){let o=n[i];if(e.call(t,o,i,n))return o}}function dg(n,e){let t=-1;for(let a=0;a<n.length;a++){let{segment:s}=n[a].content;if(s.duration<=0)continue;let d=s.time+s.duration;if(!s.complete&&a===n.length-1&&e-s.time>-1.2){t=a;break}if(d>e&&e-s.time>-1.2){t=a;break}}if(t<0)return[];let r=n[t],i=r.content.segment.time,o=[r];for(let a=t+1;a<n.length&&n[a].content.segment.time===i;a++)o.push(n[a]);return o}function Co(n){if(n.progress.length<5)return;let e=new st(2),{progress:t}=n;for(let r=1;r<t.length;r++){let i=t[r].size-t[r-1].size,o=t[r].timestamp-t[r-1].timestamp,a=i*8/(o/1e3);e.addSample(o/1e3,a)}return e.getEstimate()}function bc(n,e){let t=(n.totalSize-n.size)*8;return Math.max(t/e,0)}function ug(n,e,t,r,i){if(r)return;let{bufferGap:o,speed:a,position:s}=e,d=isFinite(o)?o:0,u=s.getWanted()+d,c=dg(n,u);if(c.length!==1)return;let l=c[0],f=z(),p=l.content.segment.duration*1.5;if(p=Math.min(p,3e3),p=Math.max(p,12e3),f-l.requestTimestamp<p)return;let h=l.progress.length>0?l.progress[l.progress.length-1]:void 0,I=Co(l);if(h!==void 0&&I!==void 0){let R=bc(h,I);if((f-h.timestamp)/1e3<=R&&R-d/a>2500)return I}if(!l.content.segment.complete)return;let g=l.content.segment.duration,b=(f-l.requestTimestamp)/1e3,T=b<=(g*1.5+2)/a;if(E(t)||T)return;let v=g/b,_=t.bitrate*Math.min(.7,v);if(i===void 0||_<i)return _}function lg(n,e,t){if(t)return!0;let r=isFinite(n.bufferGap)?n.bufferGap:0,i=n.position.getWanted()+r,o=Q(e,({content:l})=>l.segment.duration>0&&l.segment.time+l.segment.duration>i);if(o===void 0)return!0;let a=z(),s=o.progress.length>0?o.progress[o.progress.length-1]:void 0,d=Co(o);if(s===void 0||d===void 0)return!0;let u=bc(s,d);return(a-s.timestamp)/1e3>u*1.2?!0:u-r/n.speed>-1.5}var vr=class{constructor(e,t){let{ABR_STARVATION_GAP:r,OUT_OF_STARVATION_GAP:i,ABR_STARVATION_FACTOR:o,ABR_REGULAR_FACTOR:a}=O.getCurrent();this._initialBitrate=e,this._inStarvationMode=!1,this._lowLatencyMode=t,t?this._config={starvationGap:r.LOW_LATENCY,outOfStarvationGap:i.LOW_LATENCY,starvationBitrateFactor:o.LOW_LATENCY,regularBitrateFactor:a.LOW_LATENCY}:this._config={starvationGap:r.DEFAULT,outOfStarvationGap:i.DEFAULT,starvationBitrateFactor:o.DEFAULT,regularBitrateFactor:a.DEFAULT}}getBandwidthEstimate(e,t,r,i,o){let a,s,d=this._config,{bufferGap:u,position:c,duration:l}=e,f=isFinite(u)?u:0,{ABR_STARVATION_DURATION_DELTA:p}=O.getCurrent();return isNaN(l)||f+c.getWanted()<l-p?!this._inStarvationMode&&f<=d.starvationGap?(m.info("ABR","enter starvation mode.",{buffergap:f,enterStarvation:d.starvationGap}),this._inStarvationMode=!0):this._inStarvationMode&&f>=d.outOfStarvationGap&&(m.info("ABR","exit starvation mode.",{bufferGap:f,outOfStarvation:d.starvationGap}),this._inStarvationMode=!1):this._inStarvationMode&&(m.info("ABR","exit starvation mode.",{bufferGap:f}),this._inStarvationMode=!1),this._inStarvationMode&&(s=ug(i,e,r,this._lowLatencyMode,o),s!==void 0&&(m.info("ABR","starvation mode emergency estimate:",{bandwidth:s}),t.reset(),a=E(r)?s:Math.min(s,r.bitrate))),E(a)&&(s=t.getEstimate(),s!==void 0?a=s*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):o!==void 0?a=o*(this._inStarvationMode?d.starvationBitrateFactor:d.regularBitrateFactor):a=this._initialBitrate),e.speed>1&&(a/=e.speed),{bandwidthEstimate:s,bitrateChosen:a}}isUrgent(e,t,r,i){return t===null?!0:e>=t.bitrate?!1:lg(i,r,this._lowLatencyMode)}};var Rr=class{constructor(){this.bandwidth=void 0,this.representation=null,this.algorithmType=3}update(e,t,r){this.representation=e,this.bandwidth=t,this.algorithmType=r}};var kr=class{constructor(e,t){this._scoreCalculator=e,this._lastAbrEstimate=t,this._consecutiveWrongGuesses=0,this._blockGuessesUntil=0,this._lastMaintanableBitrate=null}getGuess(e,t,r,i,o){let{bufferGap:a,speed:s}=t,d=this._lastAbrEstimate.representation;if(d===null)return null;if(i>d.bitrate)return this._lastAbrEstimate.algorithmType===2&&(this._lastAbrEstimate.representation!==null&&(this._lastMaintanableBitrate=this._lastAbrEstimate.representation.bitrate),this._consecutiveWrongGuesses=0),null;let u=this._scoreCalculator.getEstimate(r);if(this._lastAbrEstimate.algorithmType!==2){if(u===void 0)return null;if(this._canGuessHigher(a,s,u)){let l=Sc(e,r);if(l!==null)return l}return null}if(this._isLastGuessValidated(d,i,u)&&(m.debug("ABR","Guessed Representation validated",{chosenBitrate:d.bitrate,otherAbrAlgosBitrate:i,scoreData:u==null?void 0:u.score,scoreConfidence:u==null?void 0:u.confidenceLevel}),this._lastMaintanableBitrate=d.bitrate,this._consecutiveWrongGuesses=0),r.id!==d.id)return d;if(this._shouldStopGuess(r,u,a,o))return this._consecutiveWrongGuesses++,this._blockGuessesUntil=z()+Math.min(this._consecutiveWrongGuesses*15e3,12e4),cg(e,r);if(u===void 0)return r;if(this._canGuessHigher(a,s,u)){let l=Sc(e,r);if(l!==null)return l}return r}_canGuessHigher(e,t,{score:r,confidenceLevel:i}){return isFinite(e)&&e>=2.5&&z()>this._blockGuessesUntil&&i===1&&r/t>1.01}_shouldStopGuess(e,t,r,i){if(t!==void 0&&t.score<1.01)return!0;if((t===void 0||t.score<1.2)&&r<.6)return!0;let o=i.filter(s=>s.content.representation.id===e.id),a=z();for(let s of o){let d=a-s.requestTimestamp;if(s.content.segment.isInit){if(d>1e3)return!0}else{if(d>s.content.segment.duration*1e3+200)return!0;{let u=Co(s);if(u!==void 0&&u<e.bitrate*.8)return!0}}}return!1}_isLastGuessValidated(e,t,r){return r!==void 0&&r.confidenceLevel===1&&r.score>1.5?!0:t>=e.bitrate&&(this._lastMaintanableBitrate===null||this._lastMaintanableBitrate<e.bitrate)}};function Sc(n,e){let t=n.length,r=Ie(n,({id:i})=>i===e.id);if(r<0)return m.error("ABR","Current Representation not found."),null;for(;++r<t;)if(n[r].bitrate>e.bitrate)return n[r];return null}function cg(n,e){let t=Ie(n,({id:r})=>r===e.id);if(t<0)return m.error("ABR","Current Representation not found."),null;for(;--t>=0;)if(n[t].bitrate<e.bitrate)return n[t];return null}var Pr=class{constructor(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=O.getCurrent();this._fastEWMA=new st(e),this._slowEWMA=new st(t),this._bytesSampled=0}addSample(e,t){let{ABR_MINIMUM_CHUNK_SIZE:r}=O.getCurrent();if(t<r)return;let i=t*8e3/e,o=e/1e3;this._bytesSampled+=t,this._fastEWMA.addSample(o,i),this._slowEWMA.addSample(o,i)}getEstimate(){let{ABR_MINIMUM_TOTAL_BYTES:e}=O.getCurrent();if(!(this._bytesSampled<e))return Math.min(this._fastEWMA.getEstimate(),this._slowEWMA.getEstimate())}reset(){let{ABR_FAST_EMA:e,ABR_SLOW_EMA:t}=O.getCurrent();this._fastEWMA=new st(e),this._slowEWMA=new st(t),this._bytesSampled=0}};function ls(n,e){if(n.length===0)return[];n.sort((o,a)=>o.bitrate-a.bitrate);let t=n[0].bitrate,r=Math.max(e,t),i=Ie(n,o=>o.bitrate>r);return i===-1?n:n.slice(0,i)}function cs(n,e){if(e.width===void 0||e.height===void 0)return n;let t=e.width*e.pixelRatio,r=e.height*e.pixelRatio,i=n.slice().sort((s,d)=>{var u,c;return((u=s.width)!=null?u:0)-((c=d.width)!=null?c:0)}),o=Q(i,s=>typeof s.width=="number"&&s.width>=t&&typeof s.height=="number"&&s.height>=r);if(o===void 0)return n;let a=typeof o.width=="number"?o.width:0;return n.filter(s=>typeof s.width=="number"?s.width<=a:!0)}function Cr(n){return Object.keys(n).map(e=>n[e])}var zn=typeof Object.values=="function"?Object.values:Cr;var Ar=class{constructor(){this._currentRequests={}}add(e){let{id:t,requestTimestamp:r,content:i}=e;this._currentRequests[t]={requestTimestamp:r,progress:[],content:i}}addProgress(e){let t=this._currentRequests[e.id];if(E(t)){if(y.CURRENT_ENV===y.DEV)throw new Error("ABR: progress for a request not added");m.warn("ABR","progress for a request not added",{requestId:e.id});return}t.progress.push(e)}remove(e){if(E(this._currentRequests[e])){if(y.CURRENT_ENV===y.DEV)throw new Error("ABR: can't remove unknown request");m.warn("ABR","can't remove unknown request",{requestId:e})}delete this._currentRequests[e]}getRequests(){return zn(this._currentRequests).filter(e=>!E(e)).sort((e,t)=>e.content.segment.time-t.content.segment.time)}};function Ao(n,e){let t=Ie(n,r=>r.bitrate>e);return t===-1?n[n.length-1]:t===0?n[0]:n[t-1]}var Tc=new j(void 0);Tc.finish();var Ec=new j(1/0);Ec.finish();function fs(n){let e={},{initialBitrates:t,throttlers:r,lowLatencyMode:i}=n;return function(s,d,u,c,l){var g,b,T;let{type:f}=s.adaptation,p=o(f),h=(g=t[f])!=null?g:0,I={limitResolution:(b=r.limitResolution[f])!=null?b:Tc,throttleBitrate:(T=r.throttleBitrate[f])!=null?T:Ec};return fg({bandwidthEstimator:p,context:s,currentRepresentation:d,filters:I,initialBitrate:h,playbackObserver:c,representations:u,lowLatencyMode:i},l)};function o(a){let s=e[a];if(E(s)){m.debug("ABR","Creating new BandwidthEstimator",{bufferType:a});let d=new Pr;return e[a]=d,d}return s}}function fg({bandwidthEstimator:n,context:e,currentRepresentation:t,filters:r,initialBitrate:i,lowLatencyMode:o,playbackObserver:a,representations:s},d){let u=new Er,c=new vr(i!=null?i:0,o),l=new Ar,f=te,p={metrics:T,requestBegin:v,requestProgress:_,requestEnd:R,addedSegment(k){f(k)}},h=new U;h.linkToSignal(d);let I=g(s.getValue(),h.signal);return s.onUpdate(b,{clearSignal:d}),{estimates:I,callbacks:p};function g(k,x){if(k.length<=1)return new j({bitrate:void 0,representation:k[0],urgent:!0,knownStableBitrate:void 0});let P=!1,M=k.sort((K,q)=>K.bitrate-q.bitrate),L=new _r(M.map(K=>K.bitrate)),F=new Rr,D=new kr(u,F),B=a.getReference().getValue(),A=new j(N());return a.listen(K=>{B=K,C()},{includeLastObservation:!1,clearSignal:x}),f=function(K){if(B===null)return;let{position:q,speed:X}=B,W=K.buffered,H=Ro(W,q.getWanted()),{representation:G}=K.content,ie=u.getEstimate(G),oe=G.bitrate,fe={bufferGap:H,currentBitrate:oe,currentScore:ie,speed:X};L.onAddedSegment(fe),C()},x.register(()=>{f=te}),r.throttleBitrate.onUpdate(C,{clearSignal:x}),r.limitResolution.onUpdate(C,{clearSignal:x}),A;function C(){A.setValue(N())}function N(){let{bufferGap:K,position:q,maximumPosition:X}=B,W=r.limitResolution.getValue(),H=r.throttleBitrate.getValue(),G=t.getValue(),ie=mg(M,W,H),oe=l.getRequests(),{bandwidthEstimate:fe,bitrateChosen:Re}=c.getBandwidthEstimate(B,n,G,oe,F.bandwidth),ge=u.getLastStableRepresentation(),he=ge===null?void 0:ge.bitrate/(B.speed>0?B.speed:1),{ABR_ENTER_BUFFER_BASED_ALGO:_t,ABR_EXIT_BUFFER_BASED_ALGO:ee}=O.getCurrent();P&&K<=ee?P=!1:!P&&isFinite(K)&&K>=_t&&(P=!0);let ye=Ao(ie,Re),ot=L.getLastEstimate(),pn=ye.bitrate,ht=null;P&&ot!==void 0&&ot>pn&&(ht=Ao(ie,ot),pn=ht.bitrate);let yt=null;return o&&G!==null&&e.manifest.isDynamic&&X-q.getWanted()<40&&(yt=D.getGuess(M,B,G,pn,oe)),yt!==null&&yt.bitrate>pn?(m.debug("ABR","new guess-based estimate",{bitrate:yt.bitrate,representation:yt.id}),F.update(yt,fe,2),{bitrate:fe,representation:yt,urgent:G===null||yt.bitrate<G.bitrate,knownStableBitrate:he}):ht!==null?(m.debug("ABR","new buffer-based estimate",{bitrate:ht.bitrate,representation:ht.id}),F.update(ht,fe,0),{bitrate:fe,representation:ht,urgent:c.isUrgent(ht.bitrate,G,oe,B),knownStableBitrate:he}):(m.debug("ABR","new bandwidth estimate",{bitrate:ye.bitrate,representation:ye.id}),F.update(ye,fe,1),{bitrate:fe,representation:ye,urgent:c.isUrgent(ye.bitrate,G,oe,B),knownStableBitrate:he})}}function b(){let k=s.getValue();h.cancel(),h=new U,h.linkToSignal(d),g(k,h.signal).onUpdate(function(M){I.setValue(M)},{clearSignal:h.signal,emitCurrentValue:!0})}function T(k){let{requestDuration:x,segmentDuration:P,size:M,content:L}=k;if(n.addSample(x,M),!L.segment.isInit){let{segment:F,representation:D}=L;if(P===void 0&&!F.complete)return;let B=P!=null?P:F.duration;u.addSample(D,x/1e3,B)}}function v(k){l.add(k)}function _(k){l.addProgress(k)}function R(k){l.remove(k.id)}}function mg(n,e,t){let r=n;return t!==void 0&&t<1/0&&(r=ls(r,t)),e!==void 0&&(r=cs(r,e)),r}var _c=fs;function Mo(){var t;if(typeof((t=Z.crypto)==null?void 0:t.randomUUID)=="function")return Z.crypto.randomUUID();let n=new Date().getTime(),e=z();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(r){let i=Math.random()*16;return n>0?(i=(n+i)%16|0,n=Math.floor(n/16)):(i=(e+i)%16|0,e=Math.floor(e/16)),(r==="x"?i:i&3|8).toString(16)})}function w(n){return typeof n=="string"&&n.length>0}function Ce(n,e,t){if(typeof String.prototype.startsWith=="function")return n.startsWith(e,t);let r=typeof t=="number"?Math.max(t,0):0;return n.substring(r,r+e.length)===e}var pg=/^(?:[a-z]+:)?\/\//i,gg=/^(?:([^:/?#]+):)?(?:\/\/([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/;function wr(n){let e=n.lastIndexOf("/");if(e<0)return n.length;if(pg.test(n)){let r=n.indexOf("/");if(r>=0&&e===r+1)return n.length}let t=n.indexOf("?");return t>=0&&t<e?wr(n.substring(0,t)):e+1}function vc(n,e){let t=xo(n),r=xo(e);if(t.scheme!==r.scheme||t.authority!==r.authority||t.path[0]!==void 0&&t.path[0]!=="/"&&r.path[0]==="/"||r.path[0]!==void 0&&r.path[0]!=="/"&&t.path[0]==="/")return null;let i=xr(t.path),o=xr(r.path),a;if(i===o)a="";else{let d=i.split("/");d.pop();let u=o.split("/");for(;d.length>0&&u.length>0&&d[0]===u[0];)d.shift(),u.shift();for(;d.length>0;)d.shift(),u.unshift("..");let c=u.join("/");(c.endsWith("../")||c.endsWith("./"))&&(c=c.slice(0,c.length-1)),a=c===""?".":c}let s=a;return a===""&&r.query===t.query||w(r.query)&&(s+="?",s+=r.query),w(r.fragment)&&(s+="#",s+=r.fragment),s}function hg(n,e){let t=xo(n),r=xo(e);if(w(r.scheme))return ms(r);let i={scheme:t.scheme,authority:t.authority,path:"",query:r.query,fragment:r.fragment};return w(r.authority)?(i.authority=r.authority,i.path=xr(r.path),ms(i)):(r.path===""?(i.path=t.path,w(r.query)||(i.query=t.query)):Ce(r.path,"/")?i.path=xr(r.path):i.path=xr(Ig(t,r.path)),ms(i))}var Mr=new Map,yg=200;function xo(n){var r,i,o,a,s;if(Mr.has(n))return Mr.get(n);let e=n.match(gg),t;return e===null?t={scheme:"",authority:"",path:"",query:"",fragment:""}:t={scheme:(r=e[1])!=null?r:"",authority:(i=e[2])!=null?i:"",path:(o=e[3])!=null?o:"",query:(a=e[4])!=null?a:"",fragment:(s=e[5])!=null?s:""},Mr.size>=yg&&Mr.clear(),Mr.set(n,t),t}function ms(n){let e="";return w(n.scheme)&&(e+=n.scheme+":"),w(n.authority)&&(e+="//"+n.authority),e+=n.path,w(n.query)&&(e+="?"+n.query),w(n.fragment)&&(e+="#"+n.fragment),e}function xr(n){let e=n.split(/(?=\/)/),t=[];for(let r=0;r<e.length;r++){let i=e[r];if(!(i===".."||i==="."||i==="")){if(i==="/.."){t.pop(),r===e.length-1&&t.push("/");continue}if(i==="/."){r===e.length-1&&t.push("/");continue}t.push(i)}}return t.join("")}function Ig(n,e){if(w(n.authority)&&n.path==="")return"/"+e;let t=n.path;return t.substring(0,t.lastIndexOf("/")+1)+e}function hn(...n){var r,i,o;let e=n.filter(a=>a!==""),t=e.length;if(t===0)return"";if(t===1)return(r=e[0])!=null?r:"";{let a=(i=e[0])!=null?i:"",s=(o=e[1])!=null?o:"",d=hg(a,s),u=e.slice(2);return hn(d,...u)}}var bg=4,Or=class{constructor(e){var t,r;this._sessionId=(t=e.sessionId)!=null?t:Mo(),this._contentId=(r=e.contentId)!=null?r:Mo(),this._typePreference=e.communicationType==="headers"?0:1,this._bufferStarvationToggle=!1,this._playbackObserver=null,this._lastThroughput={},this._canceller=null}startMonitoringPlayback(e){var t;(t=this._canceller)==null||t.cancel(),this._canceller=new U,this._playbackObserver=e,e.listen(r=>{r.rebuffering!==null&&(this._bufferStarvationToggle=!0)},{includeLastObservation:!0,clearSignal:this._canceller.signal})}stopMonitoringPlayback(){var e;(e=this._canceller)==null||e.cancel(),this._canceller=null,this._playbackObserver=null}updateThroughput(e,t){this._lastThroughput[e]=t}_getCommonCmcdData(e){var i;let t={};t.bs=this._bufferStarvationToggle,this._bufferStarvationToggle=!1,t.cid=this._contentId,t.mtp=e!==void 0?Math.floor(Math.round(e/1e3/100)*100):void 0,t.sid=this._sessionId;let r=(i=this._playbackObserver)==null?void 0:i.getReference().getValue();return t.pr=r===void 0||r.speed===1?void 0:r.speed,r!==void 0&&(t.su=r.rebuffering!==null),t}getCmcdDataForManifest(e){var r;let t=this._getCommonCmcdData((r=this._lastThroughput.video)!=null?r:this._lastThroughput.audio);switch(t.ot="m",e){case"dash":t.sf="d";break;case"smooth":t.sf="s";break;default:t.sf="o";break}return this._producePayload(t)}getCmcdDataForSegmentRequest(e){var a,s,d,u;let t=(a=this._playbackObserver)==null?void 0:a.getReference().getValue(),r=this._getCommonCmcdData(this._lastThroughput[e.adaptation.type]);switch(r.br=Math.round(e.representation.bitrate/1e3),r.d=Math.round(e.segment.duration*1e3),e.adaptation.type){case"video":r.ot="v";break;case"audio":r.ot="a";break;case"text":r.ot="c";break}if(e.segment.isInit&&(r.ot="i"),!E(e.nextSegment)&&e.segment.url!==null&&e.nextSegment.url!==null&&(!e.nextSegment.isInit||e.nextSegment.indexRange===void 0)){let c=e.segment.url,l=e.nextSegment.url,f=vc(c,l);f!==null&&(f!=="."&&(r.nor=encodeURIComponent(f)),e.nextSegment.range!==void 0&&(r.nrr=String(e.nextSegment.range[0])+"-",isFinite(e.nextSegment.range[1])&&(r.nrr+=String(e.nextSegment.range[1]))))}let i;if(t!==void 0&&(r.ot==="v"||r.ot==="a"||r.ot==="av")){let c=t.buffered[e.adaptation.type];if(!E(c)){let l=(u=(d=(s=this._playbackObserver)==null?void 0:s.getCurrentTime())!=null?d:t.position.getWanted())!=null?u:t.position.getPolled();for(let f of c)if(l>=f.start&&l<f.end){i=(f.end-l)*1e3,r.bl=Math.floor(Math.round(i/100)*100);break}}}let o=i===void 0||t===void 0?void 0:i/t.speed;if(r.dl=o===void 0?void 0:Math.floor(Math.round(o/100)*100),o!==void 0){let l=e.representation.bitrate*e.segment.duration/1e3/(o/1e3);r.rtp=Math.floor(Math.round(l*bg/100)*100)}switch(e.manifest.transport){case"dash":r.sf="d";break;case"smooth":r.sf="s";break;default:r.sf="o";break}return r.st=e.manifest.isDynamic?"l":"v",r.tb=e.adaptation.representations.reduce((c,l)=>l.isPlayable()!==!0?c:c===void 0?Math.round(l.bitrate/1e3):Math.max(c,Math.round(l.bitrate/1e3)),void 0),this._producePayload(r)}_producePayload(e){let t={object:"",request:"",session:"",status:""},r="",i=(u,c)=>{this._typePreference===0?t[c]+=u:r+=u},o=(u,c)=>{let l=e[u];if(l!==void 0){let f=`${u}=${String(l)},`;i(f,c)}},a=(u,c)=>{if(e[u]===!0){let l=`${u},`;i(l,c)}},s=(u,c)=>{let l=e[u];if(l!==void 0){let p=`prop=${`"${l.replace("\\","\\\\").replace('"','\\"')}"`},`;i(p,c)}},d=(u,c)=>{let l=e[u];if(l!==void 0){let f=`prop=${l},`;i(f,c)}};return o("bl","request"),o("br","object"),a("bs","status"),s("cid","session"),o("d","object"),o("dl","request"),o("mtp","request"),s("nor","request"),s("nrr","request"),d("ot","object"),o("pr","session"),o("rtp","status"),d("sf","session"),s("sid","session"),d("st","session"),a("su","request"),o("tb","object"),this._typePreference===0?(t.object[t.object.length-1]===","&&(t.object=t.object.substring(0,t.object.length-1)),t.request[t.request.length-1]===","&&(t.request=t.request.substring(0,t.request.length-1)),t.session[t.session.length-1]===","&&(t.session=t.session.substring(0,t.session.length-1)),t.status[t.status.length-1]===","&&(t.status=t.status.substring(0,t.status.length-1)),m.debug("CMCD","proposing headers payload"),{type:"headers",value:{"CMCD-Object":t.object,"CMCD-Request":t.request,"CMCD-Session":t.session,"CMCD-Status":t.status}}):(r[r.length-1]===","&&(r=r.substring(0,r.length-1)),r=encodeURIComponent(r),m.debug("CMCD","proposing query string payload",{queryString:r}),{type:"query",value:[["CMCD",r]]})}};var Rc=Or;var Wn=class extends se{constructor(e){super(),this._downgradedCdnList={metadata:[],timeouts:[]},e.register(()=>{for(let t of this._downgradedCdnList.timeouts)clearTimeout(t);this._downgradedCdnList={metadata:[],timeouts:[]}})}getCdnPreferenceForResource(e){return e.length<=1?e:this._innerGetCdnPreferenceForResource(e)}downgradeCdn(e){let t=kc(this._downgradedCdnList.metadata,e);t>=0&&this._removeIndexFromDowngradeList(t);let{DEFAULT_CDN_DOWNGRADE_TIME:r}=O.getCurrent(),i=r;this._downgradedCdnList.metadata.push(e);let o=setTimeout(()=>{let a=kc(this._downgradedCdnList.metadata,e);a>=0&&this._removeIndexFromDowngradeList(a),this.trigger("priorityChange",null)},i);this._downgradedCdnList.timeouts.push(o),this.trigger("priorityChange",null)}_innerGetCdnPreferenceForResource(e){let[t,r]=e.reduce((i,o)=>(this._downgradedCdnList.metadata.some(a=>a.id===o.id&&a.baseUrl===o.baseUrl)?i[1].push(o):i[0].push(o),i),[[],[]]);return t.concat(r)}_removeIndexFromDowngradeList(e){this._downgradedCdnList.metadata.splice(e,1);let t=this._downgradedCdnList.timeouts.splice(e,1);clearTimeout(t[0])}};function kc(n,e){return n.length===0?-1:e.id!==void 0?Ie(n,t=>t.id===e.id):Ie(n,t=>t.baseUrl===e.baseUrl)}var dt=class n extends Error{constructor(e,t,r){super(e),Object.setPrototypeOf(this,n.prototype),this.name="CustomLoaderError",this.canRetry=t,this.xhr=r}};var Ae=class n extends Error{constructor(e,t,r){let i;switch(r){case"TIMEOUT":i="The request timed out";break;case"ERROR_EVENT":i="An error prevented the request to be performed successfully";break;case"PARSE_ERROR":i="An error happened while formatting the response data";break;case"ERROR_HTTP_CODE":i="An HTTP status code indicating failure was received: "+String(t);break}super(i),Object.setPrototypeOf(this,n.prototype),this.name="RequestError",this.url=e,this.status=t,this.type=r}serialize(){return{url:this.url,status:this.status,type:this.type}}},He={TIMEOUT:"TIMEOUT",ERROR_EVENT:"ERROR_EVENT",ERROR_HTTP_CODE:"ERROR_HTTP_CODE",PARSE_ERROR:"PARSE_ERROR"};var ps=typeof Headers=="function"?Headers:null,wo=typeof AbortController=="function"?AbortController:null;function Oo(n){var f,p;let e;if(!E(n.headers))if(E(ps))e=n.headers;else{e=new ps;let h=Object.keys(n.headers);for(let I=0;I<h.length;I++){let g=h[I];e.append(g,n.headers[g])}}m.debug("utils","Fetch",{url:n.url});let t=null,r=!1,i=!1,o=z(),a=E(wo)?null:new wo;function s(){if(E(a)){m.warn("utils","Fetch: AbortController API not available.");return}a.abort()}let d;n.timeout!==void 0&&(d=setTimeout(()=>{r=!0,u!==void 0&&clearTimeout(u),s()},n.timeout));let u;n.connectionTimeout!==void 0&&(u=setTimeout(()=>{i=!0,d!==void 0&&clearTimeout(d),s()},n.connectionTimeout));let c=n.cancelSignal.register(function(I){t=I,s()}),l={method:"GET"};if(e!==void 0&&(l.headers=e),l.signal=E(a)?null:a.signal,m.hasLevel("DEBUG")){let h="fetch GET "+n.url;n.timeout!==void 0&&(h+=" to="+String(n.timeout/1e3)),n.connectionTimeout!==void 0&&(h+=" cto="+String(n.connectionTimeout/1e3)),((f=n.headers)==null?void 0:f.Range)!==void 0&&(h+=" Range="+((p=n.headers)==null?void 0:p.Range)),m.debug("utils",h)}return fetch(n.url,l).then(h=>{if(u!==void 0&&clearTimeout(u),h.status>=300)throw m.warn("utils","Fetch: Request HTTP Error",{status:h.status,responseUrl:h.url}),new Ae(h.url,h.status,He.ERROR_HTTP_CODE);if(E(h.body))throw new Ae(h.url,h.status,He.PARSE_ERROR);let I=h.headers.get("Content-Length"),g=!E(I)&&!isNaN(+I)?+I:void 0,b=h.body.getReader(),T=0;return v();async function v(){let _=await b.read();if(!_.done&&!E(_.value)){T+=_.value.byteLength;let R=z(),k={url:h.url,currentTime:R,duration:R-o,sendingTime:o,chunkSize:_.value.byteLength,chunk:_.value.buffer,size:T,totalSize:g};return n.onData(k),v()}else if(_.done){d!==void 0&&clearTimeout(d),c();let R=z();return{requestDuration:R-o,receivedTime:R,sendingTime:o,size:T,status:h.status,url:h.url}}return v()}}).catch(h=>{throw t!==null?t:(c(),r?(m.warn("utils","Fetch: Request timed out.",{url:n.url,timeout:n.timeout}),new Ae(n.url,0,He.TIMEOUT)):i?(m.warn("utils","Fetch: Request connection timed out.",{url:n.url,connectionTimeout:n.connectionTimeout}),new Ae(n.url,0,He.TIMEOUT)):h instanceof Ae?h:(m.warn("utils","Fetch: Request Error",{error:h instanceof Error?h.toString():"Unkwown Error"}),new Ae(n.url,0,He.ERROR_EVENT)))})}function Dr(){let n=/\[\s*native\s+code\s*\]/;return typeof Z.fetch=="function"&&!E(wo)&&n.test(wo.toString())&&!E(ps)}var Sg="json";function Lr(n){let e={url:n.url,headers:n.headers,responseType:E(n.responseType)?Sg:n.responseType,timeout:n.timeout,connectionTimeout:n.connectionTimeout};return new Promise((t,r)=>{let{onProgress:i,cancelSignal:o}=n,{url:a,headers:s,responseType:d,timeout:u,connectionTimeout:c}=e,l=new XMLHttpRequest;l.open("GET",a,!0);let f;u!==void 0&&(l.timeout=u,f=setTimeout(()=>{g(),r(new Ae(a,l.status,He.TIMEOUT))},u+3e3));let p;if(c!==void 0&&(p=setTimeout(()=>{g(),l.readyState!==XMLHttpRequest.DONE&&l.abort(),r(new Ae(a,l.status,He.TIMEOUT))},c)),l.responseType=d,l.responseType==="document"&&l.overrideMimeType("text/xml"),!E(s)){let b=s;for(let T in b)Object.prototype.hasOwnProperty.call(b,T)&&l.setRequestHeader(T,b[T])}let h=z(),I=null;if(o!==void 0&&(I=o.register(function(T){g(),l.readyState!==XMLHttpRequest.DONE&&l.abort(),r(T)}),o.isCancelled()))return;if(l.onerror=function(){g(),r(new Ae(a,l.status,He.ERROR_EVENT))},l.ontimeout=function(){g(),r(new Ae(a,l.status,He.TIMEOUT))},c!==void 0&&(l.onreadystatechange=function(){l.readyState>=XMLHttpRequest.HEADERS_RECEIVED&&clearTimeout(p)}),i!==void 0&&(l.onprogress=function(T){let v=z();i({url:a,duration:v-h,sendingTime:h,currentTime:v,size:T.loaded,totalSize:T.total})}),l.onload=function(T){if(l.readyState===XMLHttpRequest.DONE)if(g(),l.status>=200&&l.status<300){let v=z(),_=l.response instanceof ArrayBuffer?l.response.byteLength:T.total,R=l.status,k=l.responseType,x=w(l.responseURL)?l.responseURL:a,P;if(k==="json"?P=typeof l.response=="object"?l.response:Tg(l.responseText):P=l.response,E(P)){r(new Ae(a,l.status,He.PARSE_ERROR));return}t({status:R,url:x,responseType:k,sendingTime:h,receivedTime:v,requestDuration:v-h,size:_,responseData:P})}else r(new Ae(a,l.status,He.ERROR_HTTP_CODE))},m.hasLevel("DEBUG")){let b="XHR GET "+a;n.responseType!==void 0&&(b+=" type="+n.responseType),u!==void 0&&(b+=" to="+String(u/1e3)),c!==void 0&&(b+=" cto="+String(c/1e3)),(s==null?void 0:s.Range)!==void 0&&(b+=" Range="+(s==null?void 0:s.Range)),m.debug("utils",b)}l.send();function g(){f!==void 0&&clearTimeout(f),p!==void 0&&clearTimeout(p),I!==null&&I()}})}function Tg(n){try{return JSON.parse(n)}catch(e){return null}}var ke=Lr;var yn=He,tt={NETWORK_ERROR:"NETWORK_ERROR",MEDIA_ERROR:"MEDIA_ERROR",ENCRYPTED_MEDIA_ERROR:"ENCRYPTED_MEDIA_ERROR",OTHER_ERROR:"OTHER_ERROR"},gs={PIPELINE_LOAD_ERROR:"PIPELINE_LOAD_ERROR",PIPELINE_PARSE_ERROR:"PIPELINE_PARSE_ERROR",INTEGRITY_ERROR:"INTEGRITY_ERROR",MANIFEST_PARSE_ERROR:"MANIFEST_PARSE_ERROR",MANIFEST_INCOMPATIBLE_CODECS_ERROR:"MANIFEST_INCOMPATIBLE_CODECS_ERROR",MANIFEST_UPDATE_ERROR:"MANIFEST_UPDATE_ERROR",MANIFEST_UNSUPPORTED_ADAPTATION_TYPE:"MANIFEST_UNSUPPORTED_ADAPTATION_TYPE",MEDIA_STARTING_TIME_NOT_FOUND:"MEDIA_STARTING_TIME_NOT_FOUND",MEDIA_TIME_BEFORE_MANIFEST:"MEDIA_TIME_BEFORE_MANIFEST",MEDIA_TIME_AFTER_MANIFEST:"MEDIA_TIME_AFTER_MANIFEST",MEDIA_TIME_NOT_FOUND:"MEDIA_TIME_NOT_FOUND",NO_PLAYABLE_REPRESENTATION:"NO_PLAYABLE_REPRESENTATION",MEDIA_IS_ENCRYPTED_ERROR:"MEDIA_IS_ENCRYPTED_ERROR",CREATE_MEDIA_KEYS_ERROR:"CREATE_MEDIA_KEYS_ERROR",MEDIA_KEYS_ATTACHMENT_ERROR:"MEDIA_KEYS_ATTACHMENT_ERROR",KEY_ERROR:"KEY_ERROR",KEY_STATUS_CHANGE_ERROR:"KEY_STATUS_CHANGE_ERROR",KEY_UPDATE_ERROR:"KEY_UPDATE_ERROR",KEY_LOAD_ERROR:"KEY_LOAD_ERROR",KEY_LOAD_TIMEOUT:"KEY_LOAD_TIMEOUT",KEY_GENERATE_REQUEST_ERROR:"KEY_GENERATE_REQUEST_ERROR",INCOMPATIBLE_KEYSYSTEMS:"INCOMPATIBLE_KEYSYSTEMS",INVALID_ENCRYPTED_EVENT:"INVALID_ENCRYPTED_EVENT",INVALID_KEY_SYSTEM:"INVALID_KEY_SYSTEM",LICENSE_SERVER_CERTIFICATE_ERROR:"LICENSE_SERVER_CERTIFICATE_ERROR",MULTIPLE_SESSIONS_SAME_INIT_DATA:"MULTIPLE_SESSIONS_SAME_INIT_DATA",BUFFER_APPEND_ERROR:"BUFFER_APPEND_ERROR",BUFFER_FULL_ERROR:"BUFFER_FULL_ERROR",BUFFER_TYPE_UNKNOWN:"BUFFER_TYPE_UNKNOWN",MEDIA_ERR_BLOCKED_AUTOPLAY:"MEDIA_ERR_BLOCKED_AUTOPLAY",MEDIA_ERR_PLAY_NOT_ALLOWED:"MEDIA_ERR_PLAY_NOT_ALLOWED",MEDIA_ERR_NOT_LOADED_METADATA:"MEDIA_ERR_NOT_LOADED_METADATA",MEDIA_ERR_ABORTED:"MEDIA_ERR_ABORTED",MEDIA_ERR_NETWORK:"MEDIA_ERR_NETWORK",MEDIA_ERR_DECODE:"MEDIA_ERR_DECODE",MEDIA_ERR_SRC_NOT_SUPPORTED:"MEDIA_ERR_SRC_NOT_SUPPORTED",MEDIA_ERR_UNKNOWN:"MEDIA_ERR_UNKNOWN",MEDIA_SOURCE_NOT_SUPPORTED:"MEDIA_SOURCE_NOT_SUPPORTED",MEDIA_KEYS_NOT_SUPPORTED:"MEDIA_KEYS_NOT_SUPPORTED",DISCONTINUITY_ENCOUNTERED:"DISCONTINUITY_ENCOUNTERED",NONE:"NONE",NO_AUDIO_VIDEO_TRACKS:"NO_AUDIO_VIDEO_TRACKS"};function nt(n,e){return`${n}: ${e}`}var be=class n extends Error{constructor(e,t,r){super(nt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="EncryptedMediaError",this.type=tt.ENCRYPTED_MEDIA_ERROR,this.code=e,this._originalMessage=t,this.fatal=!1,this.keyStatuses=r.keyStatuses,this.keySystemConfiguration=r.keySystemConfiguration,this.keySystem=r.keySystem}serialize(){return{isSerializedError:!0,name:this.name,code:this.code,reason:this._originalMessage,keyStatuses:this.keyStatuses,keySystemConfiguration:this.keySystemConfiguration,keySystem:this.keySystem}}};var re=class n extends Error{constructor(e,t,r){super(nt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="MediaError",this.type=tt.MEDIA_ERROR,this._originalMessage=t,this.code=e,this.fatal=!1,(r==null?void 0:r.tracks)!==void 0&&(r==null?void 0:r.tracks.length)>0&&(this.tracksInfo=r.tracks)}serialize(){return{isSerializedError:!0,name:this.name,code:this.code,reason:this._originalMessage,tracks:this.tracksInfo}}};var ut=class n extends Error{constructor(e,t){super(nt(e,t.message)),Object.setPrototypeOf(this,n.prototype),this.name="NetworkError",this.type=tt.NETWORK_ERROR,this.url=t.url,this.status=t.status,this.errorType=t.type,this._baseError=t,this.code=e,this.fatal=!1}isHttpError(e){return this.errorType===yn.ERROR_HTTP_CODE&&this.status===e}serialize(){return{isSerializedError:!0,name:this.name,code:this.code,baseError:this._baseError.serialize()}}};var We=class n extends Error{constructor(e,t){super(nt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="OtherError",this.type=tt.OTHER_ERROR,this.code=e,this.fatal=!1,this._originalMessage=t}serialize(){return{isSerializedError:!0,name:this.name,code:this.code,reason:this._originalMessage}}};function Zt(n){return(n instanceof be||n instanceof re||n instanceof We||n instanceof ut)&&Object.keys(tt).indexOf(n.type)>=0}function Me(n,{defaultCode:e,defaultReason:t}){if(Zt(n))return n;let r=n instanceof Error?n.toString():t;return new We(e,r)}var lt=class n extends Error{constructor(e,t,r){super(t),Object.setPrototypeOf(this,n.prototype),this.name="SourceBufferError",this.errorName=e,this.isBufferFull=r}serialize(){return{errorName:this.name,message:this.message,isBufferFull:this.isBufferFull}}toString(){return`${this.errorName}: ${this.message}`}};var Eg={aa:"aar",ab:"abk",ae:"ave",af:"afr",ak:"aka",am:"amh",an:"arg",ar:"ara",as:"asm",av:"ava",ay:"aym",az:"aze",ba:"bak",be:"bel",bg:"bul",bi:"bis",bm:"bam",bn:"ben",bo:"bod",br:"bre",bs:"bos",ca:"cat",ce:"che",ch:"cha",co:"cos",cr:"cre",cs:"ces",cu:"chu",cv:"chv",cy:"cym",da:"dan",de:"deu",dv:"div",dz:"dzo",ee:"ewe",el:"ell",en:"eng",eo:"epo",es:"spa",et:"est",eu:"eus",fa:"fas",ff:"ful",fi:"fin",fj:"fij",fo:"fao",fr:"fra",fy:"fry",ga:"gle",gd:"gla",gl:"glg",gn:"grn",gu:"guj",gv:"glv",ha:"hau",he:"heb",hi:"hin",ho:"hmo",hr:"hrv",ht:"hat",hu:"hun",hy:"hye",hz:"her",ia:"ina",id:"ind",ie:"ile",ig:"ibo",ii:"iii",ik:"ipk",io:"ido",is:"isl",it:"ita",iu:"iku",ja:"jpn",jv:"jav",ka:"kat",kg:"kon",ki:"kik",kj:"kua",kk:"kaz",kl:"kal",km:"khm",kn:"kan",ko:"kor",kr:"kau",ks:"kas",ku:"kur",kv:"kom",kw:"cor",ky:"kir",la:"lat",lb:"ltz",lg:"lug",li:"lim",ln:"lin",lo:"lao",lt:"lit",lu:"lub",lv:"lav",mg:"mlg",mh:"mah",mi:"mri",mk:"mkd",ml:"mal",mn:"mon",mr:"mar",ms:"msa",mt:"mlt",my:"mya",na:"nau",nb:"nob",nd:"nde",ne:"nep",ng:"ndo",nl:"nld",nn:"nno",no:"nor",nr:"nbl",nv:"nav",ny:"nya",oc:"oci",oj:"oji",om:"orm",or:"ori",os:"oss",pa:"pan",pi:"pli",pl:"pol",ps:"pus",pt:"por",qu:"que",rm:"roh",rn:"run",ro:"ron",ru:"rus",rw:"kin",sa:"san",sc:"srd",sd:"snd",se:"sme",sg:"sag",si:"sin",sk:"slk",sl:"slv",sm:"smo",sn:"sna",so:"som",sq:"sqi",sr:"srp",ss:"ssw",st:"sot",su:"sun",sv:"swe",sw:"swa",ta:"tam",te:"tel",tg:"tgk",th:"tha",ti:"tir",tk:"tuk",tl:"tgl",tn:"tsn",to:"ton",tr:"tur",ts:"tso",tt:"tat",tw:"twi",ty:"tah",ug:"uig",uk:"ukr",ur:"urd",uz:"uzb",ve:"ven",vi:"vie",vo:"vol",wa:"wln",wo:"wol",xh:"xho",yi:"yid",yo:"yor",za:"zha",zh:"zho",zu:"zul"},Pc=Eg;var _g={alb:"sqi",arm:"hye",baq:"eus",bur:"mya",chi:"zho",cze:"ces",dut:"nld",fre:"fra",geo:"kat",ger:"deu",gre:"ell",ice:"isl",mac:"mkd",mao:"mri",may:"msa",per:"fas",slo:"slk",rum:"ron",tib:"bod",wel:"cym"},Cc=_g;function vg(n){if(E(n)||n==="")return"und";let t=(""+n).toLowerCase().split("-")[0],r=Rg(t);return w(r)?r:n}function Rg(n){let e;switch(n.length){case 2:e=Pc[n];break;case 3:e=Cc[n];break}return e}var Ac=vg;var Nr=Ac;function Se(n,e){if(n.length!==e.length)return!1;if(n===e)return!0;for(let t=n.length-1;t>=0;t--)if(n[t]!==e[t])return!1;return!0}var Jt=["audio","video","text"];function bn(n){var o,a;let e=n.timeBounds;if(e.timeshiftDepth===null)return(o=e.minimumSafePosition)!=null?o:0;let{maximumTimeData:t}=e,r;if(!e.maximumTimeData.isLinear)r=t.maximumSafePosition;else{let s=z()-t.time;r=t.maximumSafePosition+s/1e3}let i=r-e.timeshiftDepth;return Math.max((a=e.minimumSafePosition)!=null?a:0,i)}function Sn(n){let{maximumTimeData:e}=n.timeBounds;if(!n.isLive||e.livePosition===void 0)return;if(!e.isLinear)return e.livePosition;let t=z()-e.time;return e.livePosition+t/1e3}function kt(n){let{maximumTimeData:e}=n.timeBounds;if(!e.isLinear)return e.maximumSafePosition;let t=z()-e.time;return e.maximumSafePosition+t/1e3}function Ot(n,e){if(e===void 0)return ys(n).filter(r=>r.supportStatus.hasSupportedCodec!==!1&&r.supportStatus.isDecipherable!==!1);let t=n.adaptations[e];return t===void 0?[]:t.filter(r=>r.supportStatus.hasSupportedCodec!==!1&&r.supportStatus.isDecipherable!==!1)}function Hn(n,e){let t=null;for(let r=n.periods.length-1;r>=0;r--){let i=n.periods[r];if(hs(i,e,t))return i;t=i}}function Do(n,e){let t=e.end;if(t===void 0)return null;let r=Q(n.periods,i=>i.end===void 0||t<i.end);return r===void 0?null:r}function hs(n,e,t){return e>=n.start&&(n.end===void 0||e<n.end)?!0:e===n.end&&(t===null||t.start>n.end)}function ys(n){let e=n.adaptations;return Cr(e).reduce((t,r)=>E(r)?t:t.concat(r),[])}function Lo(n,e){var r,i;let t={language:(r=n.language)!=null?r:"",normalized:(i=n.normalizedLanguage)!=null?i:"",audioDescription:n.isAudioDescription===!0,id:n.id,representations:(e?n.representations.filter(o=>Rt(o)===!0):n.representations).map(Bo),label:n.label};return n.isDub===!0&&(t.dub=!0),t}function No(n){var e,t;return{language:(e=n.language)!=null?e:"",normalized:(t=n.normalizedLanguage)!=null?t:"",closedCaption:n.isClosedCaption===!0,id:n.id,label:n.label,forced:n.isForcedSubtitles}}function Uo(n,e){let t=n.trickModeTracks!==void 0?n.trickModeTracks.map(i=>{let o=(e?i.representations.filter(s=>Rt(s)===!0):i.representations).map(In),a={id:i.id,representations:o,isTrickModeTrack:!0};return i.isSignInterpreted===!0&&(a.signInterpreted=!0),a}):void 0,r={id:n.id,representations:(e?n.representations.filter(i=>Rt(i)===!0):n.representations).map(In),label:n.label};return n.isSignInterpreted===!0&&(r.signInterpreted=!0),n.isTrickModeTrack===!0&&(r.isTrickModeTrack=!0),t!==void 0&&(r.trickModeTracks=t),r}function Bo(n){let{id:e,bitrate:t,codecs:r,isSpatialAudio:i,isSupported:o,decipherable:a}=n;return{id:e,bitrate:t,codec:r==null?void 0:r[0],isSpatialAudio:i,isCodecSupported:o,decipherable:a}}function In(n){let{id:e,bitrate:t,frameRate:r,width:i,height:o,codecs:a,hdrInfo:s,isSupported:d,decipherable:u,contentProtections:c}=n;return{id:e,bitrate:t,frameRate:r,width:i,height:o,codec:a==null?void 0:a[0],hdrInfo:s,isCodecSupported:d,decipherable:u,contentProtections:c!==void 0?{keyIds:c.keyIds}:void 0}}function Tn(n){switch(n.type){case"audio":return{type:"audio",track:Lo(n,!1)};case"video":return{type:"video",track:Uo(n,!1)};case"text":return{type:"text",track:No(n)}}}function Rt(n){return n.decipherable===!1?!1:n.isSupported}function Mc(n){return new Function(`return (${n}(arguments[0], arguments[1]))`)}function rt(){let n="",e=-1;return function(){return e++,e>=Number.MAX_SAFE_INTEGER&&(n+="0",e=0),n+String(e)}}var wc=typeof Z=="object"&&typeof Z.TextDecoder=="function",kg=typeof Z=="object"&&typeof Z.TextEncoder=="function";function Fo(n){let e=new ArrayBuffer(n.length*2),t=new Uint8Array(e);for(let r=0;r<t.length;r+=2){let i=n.charCodeAt(r/2);t[r]=i&255,t[r+1]=i>>8&255}return t}function Ko(n){if(wc)try{return new TextDecoder("utf-16le").decode(n)}catch(t){let r=t instanceof Error?t:"Unknown Error";m.warn("utils","could not use TextDecoder to parse UTF-16LE, fallbacking to another implementation",r)}let e="";for(let t=0;t<n.length;t+=2)e+=String.fromCharCode((n[t+1]<<8)+n[t]);return e}function Te(n){if(kg)try{return new TextEncoder().encode(n)}catch(i){let o=i instanceof Error?i:"Unknown Error";m.warn("utils","Could not use TextEncoder to encode string into UTF-8, fallbacking to another implementation",o)}let e,t=encodeURIComponent(n);if(typeof unescape=="function")e=unescape(t);else{let i=/[0-9a-fA-F]/,o=t.length;e="";for(let a=0;a<t.length;a++){let s=!1;if(t[a]==="%"){if(a<=o-6&&t[a+1]==="u"&&i.test(t[a+2])&&i.test(t[a+3])&&i.test(t[a+4])&&i.test(t[a+5])){let d=parseInt(t.substring(a+1,a+6),16);e+=String.fromCharCode(d),s=!0,a+=5}else if(a<=o-3&&i.test(t[a+1])&&i.test(t[a+2])){let d=parseInt(t.substring(a+1,a+3),16);e+=String.fromCharCode(d),s=!0,a+=2}}s||(e+=t[a])}}let r=new Uint8Array(e.length);for(let i=0;i<e.length;i++)r[i]=e.charCodeAt(i)&255;return r}function Pg(n){let t="";for(let r=0;r<n.length;r+=16e3){let i=n.subarray(r,r+16e3);t+=String.fromCharCode.apply(null,i)}return t}function xc(n,e){let t=n.toString(16);return t.length>=e?t:new Array(e-t.length+1).join("0")+t}function ce(n){if(wc)try{return new TextDecoder().decode(n)}catch(i){let o=i instanceof Error?i:"Unknown Error";m.warn("utils","could not use TextDecoder to parse UTF-8, fallbacking to another implementation",o)}let e=n;e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3));let t=Pg(e),r;if(typeof escape=="function")r=escape(t);else{let i=/[A-Za-z0-9*_+-./]/;r="";for(let o=0;o<t.length;o++)if(i.test(t[o]))r+=t[o];else{let a=t.charCodeAt(o);r+=a>=256?"%u"+xc(a,4):"%"+xc(a,2)}}return decodeURIComponent(r)}function Xe(n){let e=n.length,t=new Uint8Array(e/2);for(let r=0,i=0;r<e;r+=2,i++)t[i]=parseInt(n.substring(r,r+2),16)&255;return t}function Ne(n,e=""){let t="";for(let r=0;r<n.byteLength;r++)t+=(n[r]>>>4).toString(16),t+=(n[r]&15).toString(16),e.length>0&&r<n.byteLength-1&&(t+=e);return t}function Vo(n){ne(n.length===16,"GUID length should be 16");let e=n[0],t=n[1],r=n[2],i=n[3],o=n[4],a=n[5],s=n[6],d=n[7],u=new Uint8Array(16);return u[0]=i,u[1]=r,u[2]=t,u[3]=e,u[4]=a,u[5]=o,u[6]=d,u[7]=s,u.set(n.subarray(8,16),8),u}function Is(n,e){let t=e;for(;t<n.length&&n[t]!==0;)t+=1;let r=n.subarray(e,t);return{end:t+1,string:ce(r)}}var Cg=rt(),bs=class{constructor(e,t,r){var o,a,s,d,u;this.id=e.id,this.uniqueId=Cg(),this.shouldBeAvoided=!1,this.bitrate=e.bitrate,this.codecs=[],this.trackType=t,e.isSpatialAudio!==void 0&&(this.isSpatialAudio=e.isSpatialAudio),e.height!==void 0&&(this.height=e.height),e.width!==void 0&&(this.width=e.width),e.mimeType!==void 0&&(this.mimeType=e.mimeType),e.contentProtections!==void 0&&(this.contentProtections=e.contentProtections),e.frameRate!==void 0&&(this.frameRate=e.frameRate),e.hdrInfo!==void 0&&(this.hdrInfo=e.hdrInfo),this.cdnMetadata=e.cdnMetadata,this.index=e.index;let i=this.contentProtections!==void 0;if(t==="audio"||t==="video"){if(e.supplementalCodecs!==void 0){let c=r.isSupported((o=this.mimeType)!=null?o:"",(a=e.supplementalCodecs)!=null?a:"",i);c!==!1&&(this.codecs=[e.supplementalCodecs],this.isSupported=c)}this.isSupported!==!0&&(this.codecs.length>0?this.codecs.push((s=e.codecs)!=null?s:""):(this.codecs=e.codecs===void 0?[]:[e.codecs],this.isSupported=r.isSupported((d=this.mimeType)!=null?d:"",(u=e.codecs)!=null?u:"",i)))}else e.codecs!==void 0&&this.codecs.push(e.codecs),this.isSupported=!0}refreshCodecSupport(e){var s,d;if(this.isSupported!==void 0)return;let t=this.contentProtections!==void 0,r=!1,i=(s=this.mimeType)!=null?s:"",o=(d=this.codecs)!=null?d:[];o.length===0&&(o=[""]);let a=!1;for(let u of o){if(r=e.isSupported(i,u,t),r===!0){this.codecs=[u];break}r===void 0&&(a=!0)}r===!0?this.isSupported=!0:a?this.isSupported=void 0:this.isSupported=!1}getMimeTypeString(){var e,t,r;return`${(e=this.mimeType)!=null?e:""};codecs="${(r=(t=this.codecs)==null?void 0:t[0])!=null?r:""}"`}getEncryptionData(e){var i;let t=this.getAllEncryptionData(),r=[];for(let o=0;o<t.length;o++){let a=!1,s=t[o];for(let d=0;d<s.values.length;d++)if(s.values[d].systemId.toLowerCase()===e.toLowerCase())if(a)r[r.length-1].values.push(s.values[d]);else{let u=(i=this.contentProtections)==null?void 0:i.keyIds;r.push({type:s.type,keyIds:u,values:[s.values[d]]}),a=!0}}return r}getAllEncryptionData(){var t;if(this.contentProtections===void 0||this.contentProtections.initData.length===0)return[];let e=(t=this.contentProtections)==null?void 0:t.keyIds;return this.contentProtections.initData.map(r=>({type:r.type,keyIds:e,values:r.values}))}addProtectionData(e,t,r){let i=!1;if(this.contentProtections===void 0)return this.contentProtections={keyIds:t!==void 0?[t]:[],initData:[{type:e,values:r}]},!0;if(t!==void 0){let a=this.contentProtections.keyIds;if(a===void 0)this.contentProtections.keyIds=[t];else{let s=!1;for(let d of a)Se(d,t)&&(s=!0);s||(m.warn("manifest","found unanounced key id.",{keyId:Ne(t)}),a.push(t))}}let o=this.contentProtections.initData;for(let a=0;a<o.length;a++)if(o[a].type===e){let s=o[a].values;for(let d=0;d<r.length;d++){let u=r[d],c;for(c=0;c<s.length;c++)if(u.systemId===s[c].systemId){if(Se(u.data,s[c].data))break;m.warn("manifest","different init data for the same system ID",{systemId:u.systemId})}c===s.length&&(s.push(u),i=!0)}return i}return this.contentProtections.initData.push({type:e,values:r}),!0}isPlayable(){return Rt(this)}getMetadataSnapshot(){return{id:this.id,uniqueId:this.uniqueId,bitrate:this.bitrate,codecs:this.codecs,mimeType:this.mimeType,width:this.width,height:this.height,frameRate:this.frameRate,isSupported:this.isSupported,hdrInfo:this.hdrInfo,contentProtections:this.contentProtections,decipherable:this.decipherable,isCodecSupportedInWebWorker:this.isCodecSupportedInWebWorker}}},Oc=bs;var Ur=class n{constructor(e,t,r={}){let{trickModeTracks:i}=e,{representationFilter:o,isManuallyAdded:a}=r;this.id=e.id,this.type=e.type,e.isTrickModeTrack!==void 0&&(this.isTrickModeTrack=e.isTrickModeTrack),e.language!==void 0&&(this.language=e.language,this.normalizedLanguage=Nr(e.language)),e.closedCaption!==void 0&&(this.isClosedCaption=e.closedCaption),e.audioDescription!==void 0&&(this.isAudioDescription=e.audioDescription),e.isDub!==void 0&&(this.isDub=e.isDub),e.forcedSubtitles!==void 0&&(this.isForcedSubtitles=e.forcedSubtitles),e.isSignInterpreted!==void 0&&(this.isSignInterpreted=e.isSignInterpreted),e.label!==void 0&&(this.label=e.label),i!==void 0&&i.length>0&&(this.trickModeTracks=i.map(u=>new n(u,t)));let s=e.representations,d=[];this.supportStatus={hasSupportedCodec:!1,hasCodecWithUndefinedSupport:!1,isDecipherable:!1};for(let u=0;u<s.length;u++){let c=new Oc(s[u],this.type,t),l=!0;if(!E(o)){let f={id:c.id,bitrate:c.bitrate,codecs:c.codecs,height:c.height,width:c.width,frameRate:c.frameRate,hdrInfo:c.hdrInfo};if(c.contentProtections!==void 0&&(f.contentProtections={},c.contentProtections.keyIds!==void 0)){let p=c.contentProtections.keyIds;f.contentProtections.keyIds=p}l=o(f,{trackType:this.type,language:this.language,normalizedLanguage:this.normalizedLanguage,isClosedCaption:this.isClosedCaption,isDub:this.isDub,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted})}l?(d.push(c),c.isSupported===void 0?(this.supportStatus.hasCodecWithUndefinedSupport=!0,this.supportStatus.hasSupportedCodec===!1&&(this.supportStatus.hasSupportedCodec=void 0)):c.isSupported&&(this.supportStatus.hasSupportedCodec=!0),c.decipherable===void 0?this.supportStatus.isDecipherable===!1&&(this.supportStatus.isDecipherable=void 0):c.decipherable&&(this.supportStatus.isDecipherable=!0)):m.debug("manifest","Filtering Representation due to representationFilter",this.type,`Adaptation: ${this.id}`,`Representation: ${c.id}`,`(${c.bitrate})`)}d.sort((u,c)=>u.bitrate-c.bitrate),this.representations=d,this.manuallyAdded=a===!0}refreshCodecSupport(e){let t=!1,r=!1;for(let i of this.representations)i.refreshCodecSupport(e),i.isSupported===void 0?t=!0:i.isSupported&&(r=!0);r?this.supportStatus.hasSupportedCodec=!0:t?this.supportStatus.hasSupportedCodec=void 0:this.supportStatus.hasSupportedCodec=!1,this.supportStatus.hasCodecWithUndefinedSupport=t}getRepresentation(e){return Q(this.representations,({id:t})=>e===t)}getMetadataSnapshot(){let e=[],t=this.representations;for(let r of t)e.push(r.getMetadataSnapshot());return{id:this.id,type:this.type,supportStatus:this.supportStatus,language:this.language,isForcedSubtitles:this.isForcedSubtitles,isClosedCaption:this.isClosedCaption,isAudioDescription:this.isAudioDescription,isSignInterpreted:this.isSignInterpreted,normalizedLanguage:this.normalizedLanguage,representations:e,label:this.label,isDub:this.isDub}}};function Ss(){let{FORCE_SHOULD_UNSET_MEDIA_KEYS:n}=O.getCurrent();return n||V.browser===V.BROWSERS.Ie11}function En(n){return new Promise(e=>{setTimeout(e,n)})}function Ts(){let{FORCE_SHOULD_AWAIT_SET_MEDIA_KEYS:n}=O.getCurrent();return n||V.device===V.DEVICES.WebOs2021||V.device===V.DEVICES.WebOs2022||V.device===V.DEVICES.WebOsOther}function Es(n,e,t){let r=n.setMediaKeys(e,t).then(()=>{m.info("DRM","MediaKeys updated with success")}).catch(i=>{if(t===null){m.error("DRM","Could not reset MediaKeys",i instanceof Error?i:"Unknown Error");return}throw m.error("DRM","Could not update MediaKeys",i instanceof Error?i:"Unknown Error"),i});return Ts()?r:Promise.race([r,En(1e3)])}var Pt=new WeakMap,Ze={async attach(n,e){let t=Pt.get(n),r=Ag(n,t,e).then(()=>{Pt.set(n,{pendingTask:null,mediaKeysState:e})},()=>{Pt.set(n,{pendingTask:null,mediaKeysState:null})});return Pt.set(n,{pendingTask:r,mediaKeysState:e}),r},getAwaitedState(n){var t;let e=Pt.get(n);return(t=e==null?void 0:e.mediaKeysState)!=null?t:null},async getAttachedMediaKeysState(n){let e=Pt.get(n);return e===void 0?null:e.pendingTask!==null?(await e.pendingTask,this.getAttachedMediaKeysState(n)):e.mediaKeysState},clearMediaKeys(n){let e=Pt.get(n),t=Mg(n,e).then(()=>{Pt.set(n,{pendingTask:null,mediaKeysState:null})},()=>{Pt.set(n,{pendingTask:null,mediaKeysState:null})});return Pt.set(n,{pendingTask:t,mediaKeysState:null}),t}};async function Dc(n){let e=n.pendingTask;if(!E(e)){m.info("DRM","Awaiting previous MediaKeys attachment operation");try{await n.pendingTask}catch(t){m.info("DRM","previous MediaKeys attachment operation failed",t instanceof Error?t:"Unknown error")}}}async function Ag(n,e,t){if(e!==void 0&&(e.pendingTask!==null&&await Dc(e),await(!E(e.mediaKeysState)&&e.mediaKeysState.loadedSessionsStore!==t.loadedSessionsStore?e.mediaKeysState.loadedSessionsStore.closeAllSessions():Promise.resolve()),n.mediaKeys===t.mediaKeys)){m.debug("DRM","Right MediaKeys already set");return}m.info("DRM","Attaching MediaKeys to the media element");try{await Es(t.emeImplementation,n,t.mediaKeys),m.info("DRM","MediaKeys attached with success")}catch(r){let i=r instanceof Error?r.toString():"Unknown Error";throw new be("MEDIA_KEYS_ATTACHMENT_ERROR","Could not attach the MediaKeys to the media element: "+i,{keyStatuses:void 0,keySystemConfiguration:t.mediaKeySystemAccess.getConfiguration(),keySystem:t.mediaKeySystemAccess.keySystem})}}async function Mg(n,e){if(e===void 0||(e.pendingTask!==null&&await Dc(e),e.mediaKeysState===null))return;m.info("DRM","Disposing of the current MediaKeys");let{loadedSessionsStore:t}=e.mediaKeysState;return await t.closeAllSessions(),Es(e.mediaKeysState.emeImplementation,n,null)}async function qn(n){return Ze.clearMediaKeys(n)}async function zo(n){if(m.info("DRM","Clearing-up DRM session."),Ss())return m.info("DRM","disposing current MediaKeys."),qn(n);let e=await Ze.getAttachedMediaKeysState(n);return e!==null&&e.keySystemOptions.closeSessionsOnStop===!0?(m.info("DRM","closing all current sessions."),e.loadedSessionsStore.closeAllSessions()):(m.info("DRM","Nothing to clear. Returning right away.",{noState:e===null}),Promise.resolve())}function ct(n,e){let t;return new Promise((r,i)=>{if(n.cancellationError!==null)return i(n.cancellationError);let o=!1;t=e(function(d){n.deregister(a),o=!0,r(d)},function(d){n.deregister(a),o=!0,i(d)}),o||n.register(a);function a(s){t!==void 0&&t(),i(s)}})}function en(n,e){return ct(e,t=>{let r=setTimeout(()=>t(),n);return()=>clearTimeout(r)})}function Wo(n){let e=new U;return Promise.race([n.close().then(()=>{e.cancel()}),n.closed.then(()=>{e.cancel()}),t()]);async function t(){try{await en(1e3,e.signal),await r()}catch(i){if(i instanceof we)return;let o=i instanceof Error?i.message:"Unknown error made it impossible to close the session";m.error("DRM","Error made it impossible to close the session",`${o}`)}}async function r(){try{await n.update(new Uint8Array(1))}catch(i){if(e.isUsed()||i instanceof Error&&i.message==="The session is already closed.")return;await en(1e3,e.signal)}if(!e.isUsed())throw new Error("Compat: Couldn't know if session is closed")}}var xg=["","webkit","moz","ms"];function wg(n,e){let t=document.createElement(n.tagName),r="on"+e;return r in t?!0:(t.setAttribute(r,"return;"),typeof t[r]=="function")}function Og(n,e){return e.filter(t=>wg(n,t))[0]}function Dg(n,e){return n.reduce((t,r)=>t.concat((e===void 0?xg:e).map(i=>i+r)),[])}function Pe(n,e){let t,r=Dg(n,e);return(i,o,a)=>{if(!a.isCancelled()){if(typeof HTMLElement!="undefined"&&i instanceof HTMLElement)if(typeof t=="undefined"&&(t=Og(i,r)),w(t))i.addEventListener(t,o),a.register(()=>{t!==void 0&&i.removeEventListener(t,o)});else{m.warn("utils",`element ${i.tagName} does not support any of these events: `+r.join(", "));return}r.forEach(s=>{let d=!1;typeof i.addEventListener=="function"?i.addEventListener(s,o):(d=!0,i["on"+s]=o),a.register(()=>{typeof i.removeEventListener=="function"&&i.removeEventListener(s,o),d&&delete i["on"+s]})})}}}function Lg(n){let e,t=document;E(t.hidden)?E(t.mozHidden)?E(t.msHidden)?E(t.webkitHidden)||(e="webkit"):e="ms":e="moz":e="";let r=w(e)?e+"Hidden":"hidden",i=w(e)?e+"visibilitychange":"visibilitychange",o=document[r],a=new j(!o,n);return _n(document,i,()=>{let s=!document[r];a.setValueIfChanged(s)},n),a}function Lc(n,e){if(n.webkitSupportsPresentationMode===!0&&typeof n.webkitSetPresentationMode=="function"){let i=n.webkitPresentationMode==="picture-in-picture",o=new j({isEnabled:i,pipWindow:null},e);return _n(n,"webkitpresentationmodechanged",()=>{let a=n.webkitPresentationMode==="picture-in-picture";o.setValue({isEnabled:a,pipWindow:null})},e),o}let t=document.pictureInPictureElement===n,r=new j({isEnabled:t,pipWindow:null},e);return _n(n,"enterpictureinpicture",i=>{var o;r.setValue({isEnabled:!0,pipWindow:(o=i.pictureInPictureWindow)!=null?o:null})},e),_n(n,"leavepictureinpicture",()=>{r.setValue({isEnabled:!1,pipWindow:null})},e),r}function Nc(n,e){let t=Lg(e),r,i=new j(!0,e);return e.register(()=>{clearTimeout(r),r=void 0}),t.onUpdate(o,{clearSignal:e}),n.onUpdate(o,{clearSignal:e}),o(),i;function o(){if(clearTimeout(r),r=void 0,n.getValue().isEnabled||t.getValue())i.setValueIfChanged(!0);else{let{INACTIVITY_DELAY:a}=O.getCurrent();r=setTimeout(()=>{i.setValueIfChanged(!1)},a)}}}function Uc(n){var o,a;let e=E(Z.devicePixelRatio)||Z.devicePixelRatio===0?1:Z.devicePixelRatio,t=new j({width:(o=Z.screen)==null?void 0:o.width,height:(a=Z.screen)==null?void 0:a.height,pixelRatio:e},n),r=setInterval(i,2e4);return n.register(function(){clearInterval(r)}),t;function i(){let s=t.getValue();(s.width!==screen.width||s.height!==screen.height||s.pixelRatio!==e)&&t.setValue({width:screen.width,height:screen.height,pixelRatio:e})}}function Bc(n,e,t){let r=E(Z.devicePixelRatio)||Z.devicePixelRatio===0?1:Z.devicePixelRatio,i=new j({width:n.clientWidth,height:n.clientHeight,pixelRatio:r},t),o=te;e.onUpdate(s,{clearSignal:t}),_n(Z,"resize",s,t),_n(n,"enterpictureinpicture",s,t),_n(n,"leavepictureinpicture",s,t);let a=setInterval(s,2e4);return s(),t.register(function(){o(),clearInterval(a)}),i;function s(){o();let d=e.getValue(),{pipWindow:u}=d;if(d.isEnabled)if(E(u)){let l=i.getValue();(l.width!==void 0||l.height!==void 0||l.pixelRatio!==r)&&i.setValue({width:void 0,height:void 0,pixelRatio:r})}else{let l=()=>{c()};u.addEventListener("resize",l),o=()=>{u.removeEventListener("resize",l),o=te},c()}else{let l=i.getValue();(l.width!==n.clientWidth||l.height!==n.clientHeight||l.pixelRatio!==r)&&i.setValue({width:n.clientWidth,height:n.clientHeight,pixelRatio:r})}function c(){let l=i.getValue();(l.width!==(u==null?void 0:u.width)||l.height!==(u==null?void 0:u.height)||l.pixelRatio!==r)&&i.setValue({width:u==null?void 0:u.width,height:u==null?void 0:u.height,pixelRatio:r})}}}var dC=Pe(["loadedmetadata"]),uC=Pe(["timeupdate"]),lC=Pe(["addtrack"]),cC=Pe(["removetrack"]),Gn=Pe(["sourceopen","webkitsourceopen"]),Ho=Pe(["sourceclose","webkitsourceclose"]),qo=Pe(["sourceended","webkitsourceended"]),Fc=Pe(["update"]),Kc=Pe(["removesourcebuffer"]),Go=Pe(["keymessage","message"]),Vc=Pe(["keyadded","ready"]),jo=Pe(["keyerror","error"]),zc=Pe(["keystatuseschange"]),Wc=Pe(["seeking"]),Hc=Pe(["seeked"]),qc=Pe(["ended"]);function _n(n,e,t,r){n.addEventListener(e,t),r.register(()=>{n.removeEventListener(e,t)})}function Lt(n){try{let e=n();return typeof e=="object"&&e!==null&&typeof e.then=="function"?e:Promise.resolve(e)}catch(e){return Promise.reject(e)}}var Nt,{MSMediaKeys:Br}=Z;Br!==void 0&&Br.prototype!==void 0&&typeof Br.isTypeSupported=="function"&&typeof Br.prototype.createSession=="function"&&(Nt=Br);var _s=class extends se{constructor(e){super(),this.expiration=NaN,this.keyStatuses=new Map,this._mk=e,this._sessionClosingCanceller=new U,this.closed=new Promise(t=>{this._sessionClosingCanceller.signal.register(()=>t("closed-by-application"))}),this.update=t=>new Promise((r,i)=>{if(this._ss===void 0)return i("MediaKeySession not set.");try{r(this._ss.update(t,""))}catch(o){i(o)}})}generateRequest(e,t){return new Promise(r=>{let i;t instanceof Uint8Array?i=t:t instanceof ArrayBuffer?i=new Uint8Array(t):i=new Uint8Array(t.buffer),this._ss=this._mk.createSession("video/mp4",i),Go(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"message",o)},this._sessionClosingCanceller.signal),Vc(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyadded",o)},this._sessionClosingCanceller.signal),jo(this._ss,o=>{var a;this.trigger((a=o.type)!=null?a:"keyerror",o)},this._sessionClosingCanceller.signal),r()})}close(){return new Promise(e=>{E(this._ss)||(this._ss.close(),this._ss=void 0),this._sessionClosingCanceller.cancel(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._ss)==null?void 0:e.sessionId)!=null?t:""}},Yo=class{constructor(e){if(Nt===void 0)throw new Error("No MSMediaKeys API.");this._mediaKeys=new Nt(e)}_setVideo(e){return Lt(()=>{this._videoElement=e,this._videoElement.msSetMediaKeys!==void 0&&this._videoElement.msSetMediaKeys(this._mediaKeys)})}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new _s(this._mediaKeys)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function vs(){return{isTypeSupported:(r,i)=>{if(Nt===void 0)throw new Error("No MSMediaKeys API.");return i!==void 0?Nt.isTypeSupported(r,i):Nt.isTypeSupported(r)},createCustomMediaKeys:r=>new Yo(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof Yo))throw new Error("Custom setMediaKeys is supposed to be called with IE11 custom MediaKeys.");return i._setVideo(r)}}}var tn,{MozMediaKeys:Fr}=Z;Fr!==void 0&&Fr.prototype!==void 0&&typeof Fr.isTypeSupported=="function"&&typeof Fr.prototype.createSession=="function"&&(tn=Fr);function Rs(){return{isTypeSupported:(r,i)=>{if(tn===void 0)throw new Error("No MozMediaKeys API.");return i!==void 0?tn.isTypeSupported(r,i):tn.isTypeSupported(r)},createCustomMediaKeys:r=>{if(tn===void 0)throw new Error("No MozMediaKeys API.");return new tn(r)},setMediaKeys:(r,i)=>Lt(()=>{if(r.mozSetMediaKeys===void 0||typeof r.mozSetMediaKeys!="function")throw new Error("Can't set video on MozMediaKeys.");return r.mozSetMediaKeys(i)})}}var Ut=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/"],Gc=[255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,0,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51];function Qo(n){if(n>=Gc.length)throw new Error("Unable to parse base64 string.");let e=Gc[n];if(e===255)throw new Error("Unable to parse base64 string.");return e}function $o(n){let e="",t,r=n.length;for(t=2;t<r;t+=3)e+=Ut[n[t-2]>>2],e+=Ut[(n[t-2]&3)<<4|n[t-1]>>4],e+=Ut[(n[t-1]&15)<<2|n[t]>>6],e+=Ut[n[t]&63];return t===r+1&&(e+=Ut[n[t-2]>>2],e+=Ut[(n[t-2]&3)<<4],e+="=="),t===r&&(e+=Ut[n[t-2]>>2],e+=Ut[(n[t-2]&3)<<4|n[t-1]>>4],e+=Ut[(n[t-1]&15)<<2],e+="="),e}function St(n){let e=n.length%4,t=n;e!==0&&(m.warn("utils","base64ToBytes: base64 given miss padding",{padding:e}),t+=e===3?"=":e===2?"==":"===");let r=t.indexOf("=");if(r!==-1&&r<t.length-2)throw new Error("Unable to parse base64 string.");let i=t.endsWith("==")?2:t.endsWith("=")?1:0,o=t.length,a=new Uint8Array(o/4*3),s;for(let d=0,u=0;d<o;d+=4,u+=3)s=Qo(t.charCodeAt(d))<<18|Qo(t.charCodeAt(d+1))<<12|Qo(t.charCodeAt(d+2))<<6|Qo(t.charCodeAt(d+3)),a[u]=s>>16,a[u+1]=s>>8&255,a[u+2]=s&255;return a.subarray(0,a.length-i)}function de(...n){let e=n.length,t=-1,r=0,i;for(;++t<e;)i=n[t],r+=typeof i=="number"?i:i.length;let o=new Uint8Array(r),a=0;for(t=-1;++t<e;)i=n[t],typeof i=="number"?a+=i:i.length>0&&(o.set(i,a),a+=i.length);return o}function Xo(n,e){return(n[e+0]<<8)+(n[e+1]<<0)}function Zo(n,e){return n[e+0]*65536+n[e+1]*256+n[e+2]}function J(n,e){return n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3]}function jc(n,e){return n[e]<<24|n[e+1]<<16|n[e+2]<<8|n[e+3]|0}function qe(n,e){return(n[e+0]*16777216+n[e+1]*65536+n[e+2]*256+n[e+3])*4294967296+n[e+4]*16777216+n[e+5]*65536+n[e+6]*256+n[e+7]}function me(n){return new Uint8Array([n>>>8&255,n&255])}function _e(n){return new Uint8Array([n>>>24&255,n>>>16&255,n>>>8&255,n&255])}function nn(n){let e=n%4294967296,t=(n-e)/4294967296;return new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,t&255,e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function Yc(n,e){return(n[e+0]<<0)+(n[e+1]<<8)}function Qc(n,e){return n[e+0]+n[e+1]*256+n[e+2]*65536+n[e+3]*16777216}function $c(n){return new Uint8Array([n&255,n>>>8&255])}function Kr(n){return new Uint8Array([n&255,n>>>8&255,n>>>16&255,n>>>24&255])}function Bt(n){return n instanceof Uint8Array?n:n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer)}function Ps(n){return typeof(n==null?void 0:n.webkitGenerateKeyRequest)=="function"}var ks=class extends se{constructor(e,t){super(),this._vid=e,this._key=t,this.sessionId="",this._closeSession=te,this.keyStatuses=new Map,this.expiration=NaN;let r=i=>{this.trigger(i.type,i)};this.closed=new Promise(i=>{this._closeSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(o=>{e.removeEventListener(o,r),e.removeEventListener(`webkit${o}`,r)}),i("closed-by-application")}}),["keymessage","message","keyadded","ready","keyerror","error"].forEach(i=>{e.addEventListener(i,r),e.addEventListener(`webkit${i}`,r)})}update(e){return new Promise((t,r)=>{try{if(this._key.indexOf("clearkey")>=0){let i=Bt(e),o=JSON.parse(ce(i)),a=St(o.keys[0].k),s=St(o.keys[0].kid);t(this._vid.webkitAddKey(this._key,a,s,""))}else t(this._vid.webkitAddKey(this._key,e,null,""))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{this._vid.webkitGenerateKeyRequest(this._key,t),r()})}close(){return new Promise(e=>{this._closeSession(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}},Jo=class{constructor(e){this._keySystem=e}_setVideo(e){return Lt(()=>{if(!Ps(e))throw new Error("Video not attached to the MediaKeys");this._videoElement=e})}createSession(){if(E(this._videoElement))throw new Error("Video not attached to the MediaKeys");return new ks(this._videoElement,this._keySystem)}setServerCertificate(){throw new Error("Server certificate is not implemented in your browser")}};function Cs(){return{isTypeSupported:function(r){let i=document.querySelector("video");return E(i)&&(i=document.createElement("video")),!E(i)&&typeof i.canPlayType=="function"?!!i.canPlayType("video/mp4",r):!1},createCustomMediaKeys:r=>new Jo(r),setMediaKeys:(r,i)=>{if(i===null)return Promise.resolve(void 0);if(!(i instanceof Jo))throw new Error("Custom setMediaKeys is supposed to be called with old webkit custom MediaKeys.");return i._setVideo(r)}}}function As(n,e){let t=Bt(n),r=Bt(e);if(Qc(t,0)+4!==t.length)throw new Error("Unsupported WebKit initData.");let o=Ko(t),a=o.indexOf("skd://"),s=a>-1?o.substring(a+6):o,d=Fo(s),u=0,c=new Uint8Array(t.byteLength+4+d.byteLength+4+r.byteLength);return c.set(t),u+=t.length,c.set(Kr(d.byteLength),u),u+=4,c.set(d,u),u+=d.byteLength,c.set(Kr(r.byteLength),u),u+=4,c.set(r,u),c}function Ct(){let{WebKitMediaKeys:n}=Z;if(n!==void 0&&typeof n.isTypeSupported=="function"&&typeof n.prototype.createSession=="function"&&typeof HTMLMediaElement.prototype.webkitSetMediaKeys=="function")return n}function Ug(n){return Ce(n,"com.apple.fps")}function Xc(n,e){return Lt(()=>{if(n.webkitSetMediaKeys===void 0)throw new Error("No webKitMediaKeys API.");n.webkitSetMediaKeys(e)})}var Ms=class extends se{constructor(e,t,r){super(),this._serverCertificate=r,this._videoElement=e,this._keyType=t,this._unbindSession=te,this._closeSession=te,this.closed=new Promise(i=>{this._closeSession=i}),this.keyStatuses=new Map,this.expiration=NaN}update(e){return new Promise((t,r)=>{if(this._nativeSession===void 0||this._nativeSession.update===void 0||typeof this._nativeSession.update!="function")return r("Unavailable WebKit key session.");try{let i=Bt(e);t(this._nativeSession.update(i))}catch(i){r(i)}})}generateRequest(e,t){return new Promise(r=>{var s;let i=this._videoElement;if(((s=i.webkitKeys)==null?void 0:s.createSession)===void 0)throw new Error("No WebKitMediaKeys API.");let o;if(Ug(this._keyType)){if(this._serverCertificate===void 0)throw new Error("A server certificate is needed for creating fairplay session.");o=As(t,this._serverCertificate)}else o=t;let a=i.webkitKeys.createSession("video/mp4",o);if(a==null)throw new Error("Impossible to get the key sessions");this._listenEvent(a),this._nativeSession=a,r()})}close(){return new Promise((e,t)=>{if(this._unbindSession(),this._closeSession("closed-by-application"),this._nativeSession===void 0){t("No session to close.");return}this._nativeSession.close(),e()})}load(){return Promise.resolve(!1)}remove(){return Promise.resolve()}get sessionId(){var e,t;return(t=(e=this._nativeSession)==null?void 0:e.sessionId)!=null?t:""}_listenEvent(e){this._unbindSession();let t=r=>{this.trigger(r.type,r)};["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.addEventListener(r,t),e.addEventListener(`webkit${r}`,t)}),this._unbindSession=()=>{["keymessage","message","keyadded","ready","keyerror","error"].forEach(r=>{e.removeEventListener(r,t),e.removeEventListener(`webkit${r}`,t)})}}},ea=class{constructor(e){let t=Ct();if(t===void 0)throw new Error("No WebKitMediaKeys API.");this._keyType=e,this._mediaKeys=new t(e)}_setVideo(e){if(this._videoElement=e,this._videoElement===void 0)throw new Error("Video not attached to the MediaKeys");return Xc(this._videoElement,this._mediaKeys)}createSession(){if(this._videoElement===void 0||this._mediaKeys===void 0)throw new Error("Video not attached to the MediaKeys");return new Ms(this._videoElement,this._keyType,this._serverCertificate)}setServerCertificate(e){return this._serverCertificate=e,Promise.resolve(!0)}};function ta(){let n=Ct();if(n===void 0)throw new Error("No WebKitMediaKeys API.");return{isTypeSupported:n.isTypeSupported,createCustomMediaKeys:i=>new ea(i),setMediaKeys:(i,o)=>{if(o===null)return Xc(i,o);if(!(o instanceof ea))throw new Error("Custom setMediaKeys is supposed to be called with webkit custom MediaKeys.");return o._setVideo(i)}}}function xs(){let{FORCE_SHOULD_FAVOUR_CUSTOM_SAFARI_EME:n}=O.getCurrent();return n?!0:(V.browser===V.BROWSERS.SafariDesktop||V.browser===V.BROWSERS.SafariMobile)&&Ct()!==void 0}var Vr=class{constructor(e,t,r){this._keyType=e;this._mediaKeys=t;this._configuration=r}get keySystem(){return this._keyType}createMediaKeys(){return new Promise(e=>e(this._mediaKeys))}getConfiguration(){return this._configuration}};function ws(n){var o;let e,t,r=Bg,i;if(n==="standard"||n==="auto"&&!xs()){if($t||E(navigator.requestMediaKeySystemAccess))return null;e=(...a)=>navigator.requestMediaKeySystemAccess(...a),t=Pe(["encrypted"]),i="standard"}else{let a,s;if(n==="webkit"&&Ct()!==void 0){let d=ta();t=Zc(),a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(Ps((o=Z.HTMLVideoElement)==null?void 0:o.prototype)){t=Pe(["needkey"]);let d=Cs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="older-webkit"}else if(Ct()!==void 0){t=Zc();let d=ta();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="webkit"}else if(V.browser===V.BROWSERS.Ie11&&Nt!==void 0){t=Pe(["encrypted","needkey"]);let d=vs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="ms"}else if(tn!==void 0){t=Pe(["encrypted","needkey"]);let d=Rs();a=d.isTypeSupported,s=d.createCustomMediaKeys,r=d.setMediaKeys,i="moz"}else{t=Pe(["encrypted","needkey"]);let d=Z.MediaKeys,u=()=>{if(d===void 0)throw new re("MEDIA_KEYS_NOT_SUPPORTED","No `MediaKeys` implementation found in the current browser.");if(typeof d.isTypeSupported=="undefined"){let c="This browser seems to be unable to play encrypted contents currently.Note: Some browsers do not allow decryption in some situations, like when not using HTTPS.";throw new Error(c)}};a=c=>(u(),ne(typeof d.isTypeSupported=="function"),d.isTypeSupported(c)),s=c=>(u(),new d(c)),i="unknown"}e=function(d,u){if(!a(d))return Promise.reject(new Error("Unsupported key type"));for(let c=0;c<u.length;c++){let l=u[c],{videoCapabilities:f,audioCapabilities:p,initDataTypes:h,distinctiveIdentifier:I}=l,g=!0;if(g=g&&(E(h)||h.some(b=>b==="cenc")),g=g&&I!=="required",g){let b={initDataTypes:["cenc"],distinctiveIdentifier:"not-allowed",persistentState:"required",sessionTypes:["temporary","persistent-license"]};f!==void 0&&(b.videoCapabilities=f),p!==void 0&&(b.audioCapabilities=p);let T=s(d);return Promise.resolve(new Vr(d,T,b))}}return Promise.reject(new Error("Unsupported configuration"))}}return{requestMediaKeySystemAccess:e,onEncrypted:t,setMediaKeys:r,implementation:i}}function Zc(){let n=Pe(["needkey"],void 0);return(t,r,i)=>{n(t,o=>{let a=Y(o,{forceSessionRecreation:!0});r(a)},i)}}function Bg(n,e){try{let t;return typeof n.setMediaKeys=="function"?t=n.setMediaKeys(e):typeof n.webkitSetMediaKeys=="function"?t=n.webkitSetMediaKeys(e):typeof n.mozSetMediaKeys=="function"?t=n.mozSetMediaKeys(e):typeof n.msSetMediaKeys=="function"&&e!==null&&(t=n.msSetMediaKeys(e)),typeof t=="object"&&t!==null&&typeof t.then=="function"?t:Promise.resolve(t)}catch(t){return Promise.reject(t)}}function At(n,e){let t=n.length,r=0;for(;r+8<=t;){let i=J(n,r);if(i===0)i=t-r;else if(i===1){if(r+16>t)return-1;i=qe(n,r+8)}if(isNaN(i)||i<=0)return-1;if(J(n,r+4)===e)return r+i<=t?r:-1;r+=i}return-1}function na(n){let e=0,t=[],r=null;for(;e<=n.length;){if(e===n.length){r=null;break}r=n.subarray(e,1/0);let i=At(r,1836019558);if(i<0)break;let o=J(n,i+e),a=e+i+o;if(a>n.length)break;let s=At(r,1835295092);if(s<0)break;let d=J(n,s+e),u=e+s+d;if(u>n.length)break;let c=Math.max(a,u),l=n.subarray(e,c);t.push(l),e=c}return t.length===0?[null,r]:[t,r]}function Fg(n,e,t){return new Uint8Array(Array.prototype.slice.call(n,e,t))}function Kg(n,e,t){return n.slice(e,t)}var Os=typeof Uint8Array.prototype.slice=="function"?Kg:Fg;function Ds(n,e){let t=n;for(let r of e){let i=Ee(t,r);if(i===null)return null;t=i}return t}function Ee(n,e){let t=Ge(n,e);return t!==null?n.subarray(t[1],t[2]):null}function Jc(n,e){let t=[],r=n;for(;;){let i=Ge(r,e);if(i===null)return t;ne(i[2]!==0&&r.length!==0),t.push(r.subarray(i[1],i[2])),r=r.subarray(i[2])}}function Ls(n,e){let t=Ge(n,e);return t!==null?n.subarray(t[0],t[2]):null}function Ge(n,e){let t=n.length,r=0,i,o=0,a;for(;r+8<=t;){if(a=r,o=J(n,a),a+=4,i=J(n,a),a+=4,o===0)o=t-r;else if(o===1){if(a+8>t)return null;o=qe(n,a),a+=8}if(o<0)throw new Error("ISOBMFF: Size out of range");if(i===e)return e===1970628964&&(a+=16),[r,a,r+o];r+=o}return null}function vn(n,e,t,r,i){let o=n.length,a;for(let s=0;s<o;s+=a){let d=s;a=J(n,d),d+=4;let u=J(n,d);if(d+=4,a===0)a=o-s;else if(a===1){if(d+8>o)return;a=qe(n,d),d+=8}if(u===1970628964&&d+16<=o&&J(n,d)===e&&J(n,d+4)===t&&J(n,d+8)===r&&J(n,d+12)===i)return d+=16,n.subarray(d,s+a)}}function Ns(n){let e=n.length;if(e<8)return m.warn("isobmff","box inferior to 8 bytes, cannot find offsets"),null;let t=0,r=J(n,t);t+=4;let i=J(n,t);if(t+=4,r===0)r=e;else if(r===1){if(t+8>e)return m.warn("isobmff","box too short, cannot find offsets"),null;r=qe(n,t),t+=8}if(r<0)throw new Error("ISOBMFF: Size out of range");return i===1970628964&&(t+=16),[0,t,r]}function ra(n){let e=0,t=Ee(n,1836019574);if(t===null)return[];let r=[];for(;e<t.length;){let i;try{i=Ge(t,1886614376)}catch(s){let d=s instanceof Error?s:"";return m.warn("isobmff","Error while removing PSSH from ISOBMFF",d),r}if(i===null)return r;let o=Os(t,i[0],i[2]),a=ia(o,i[1]-i[0]);a!==void 0&&r.push({systemId:a,data:o}),t[i[0]+4]=102,t[i[0]+5]=114,t[i[0]+6]=101,t[i[0]+7]=101,e=i[2]}return r}function ia(n,e){if(n[e]>1){m.warn("isobmff","un-handled PSSH version");return}let t=e+4;if(t+16>n.length)return;let r=Os(n,t,t+16);return Ne(r)}var zr=Math.pow(2,32)-1;var Us={};function ef(n){if(Us[n]!==void 0)return Us[n];let e=Te(n);return Us[n]=e,e}function le(n,e){let t=e.length+8;return t<=zr?de(_e(t),ef(n),e):de(_e(1),ef(n),nn(t+8),e)}function Ue(n,e){return le(n,de(...e))}function Wr(n){let e=Ee(n,1836019558);return e===null?null:Ee(e,1953653094)}function Bs(n){return Jc(n,1836019558).reduce((t,r)=>{let i=Ee(r,1953653094);return i!==null&&t.push(i),t},[])}function Rn(n){return Ee(n,1835295092)}function Fs(n){let e=Ee(n,1836019574);if(e===null)return null;let t=Ee(e,1953653099);return t===null?null:Ee(t,1835297121)}function tf(n,e=0){return Ee(n.subarray(e),1701671783)}function Hr(n){let e=Yc(n,8),t=Ko(n.subarray(10,e+10)),i=new DOMParser().parseFromString(t,"application/xml").querySelector("KID");if(i===null)throw new Error("Cannot parse PlayReady private data: invalid XML");let o=i.textContent===null?"":i.textContent,a=Vo(St(o));return Ne(a).toLowerCase()}function qr(n,e){let t=Ge(n,1936286840);if(t===null)return null;let r=e,i=t[2]-t[0],o=t[1],a=n[o];o+=8;let s=J(n,o);o+=4;let d;if(a===0)d=J(n,o),o+=4,r+=J(n,o)+i,o+=4;else if(a===1)d=qe(n,o),o+=8,r+=qe(n,o)+i,o+=8;else return null;let u=[];o+=2;let c=Xo(n,o);for(o+=2;--c>=0;){let l=J(n,o);o+=4;let f=(l&2147483648)>>>31,p=l&2147483647;if(f===1)throw new Error("sidx with reference_type `1` not yet implemented");let h=J(n,o);o+=4,o+=4,u.push({time:d,duration:h,timescale:s,range:[r,r+p-1]}),d+=h,r+=p}return u}function Gr(n){let e=Wr(n);if(e===null)return;let t=Ee(e,1952867444);if(t===null)return;let r=t[0];if(r===1)return qe(t,4);if(r===0)return J(t,4)}function nf(n){let e=Ee(n,1952868452);if(e===null)return;let t=1,r=Zo(e,t);t+=3;let i=(r&1)>0,o=(r&2)>0;return(r&8)>0?(t+=4,i&&(t+=8),o&&(t+=4),J(e,t)):void 0}function rf(n){let e=Bs(n),t=[];for(let r of e){let i=Ee(r,1953658222);if(i===null)continue;let o=0,a=i[o];if(o+=1,a>1)return[];let s=Zo(i,o);o+=3;let d=(s&256)>0,u=0;if(!d&&(u=nf(r),u===void 0))return[];let c=(s&1)>0,l=(s&4)>0,f=(s&512)>0,p=(s&1024)>0,h=(s&2048)>0,I=J(i,o);o+=4,c&&(o+=4),l&&(o+=4);let g=I;for(;g-- >0;){let b,T,v,_;d?(b=J(i,o),o+=4):b=u,f&&(T=J(i,o),o+=4),p&&(v=J(i,o),o+=4),h&&(_=a===0?J(i,o):jc(i,o),o+=4),t.push({duration:b,compositionTimeOffset:_,size:T,flags:v})}}return t}function jr(n){let e=Bs(n);if(e.length===0)return;let t=0;for(let r of e){let i=Ee(r,1953658222);if(i===null)return;let o=0,a=i[o];if(o+=1,a>1)return;let s=Zo(i,o);o+=3;let d=(s&256)>0,u=0;if(!d&&(u=nf(r),u===void 0))return;let c=(s&1)>0,l=(s&4)>0,f=(s&512)>0,p=(s&1024)>0,h=(s&2048)>0,I=J(i,o);o+=4,c&&(o+=4),l&&(o+=4);let g=I,b=0;for(;g-- >0;)d?(b+=J(i,o),o+=4):b+=u,f&&(o+=4),p&&(o+=4),h&&(o+=4);t+=b}return t}function Yr(n){let e=Fs(n);if(e===null)return;let t=Ee(e,1835296868);if(t===null)return;let r=0,i=t[r];if(r+=4,i===1)return J(t,r+16);if(i===0)return J(t,r+8)}function Ks(n){let e=n.length;if(e<4)throw new Error("Cannot update box length: box too short");let t=J(n,0);if(t===0)if(e>zr){let r=new Uint8Array(e+8);return r.set(_e(1),0),r.set(n.subarray(4,8),4),r.set(nn(e+8),8),r.set(n.subarray(8,e),16),r}else return n.set(_e(e),0),n;else if(t===1){if(e<16)throw new Error("Cannot update box length: box too short");return n.set(nn(e),8),n}else{if(e<=zr)return n.set(_e(e),0),n;{let r=new Uint8Array(e+8);return r.set(_e(1),0),r.set(n.subarray(4,8),4),r.set(nn(e+8),8),r.set(n.subarray(8,e),16),r}}}function of(n){let e=[],t=0;for(;t<n.length;){let r=tf(n,t);if(r===null)break;let i=r.length;t+=i;let o=r[0];if(o!==0)m.warn("isobmff","EMSG version "+o.toString()+" not supported.");else{let a=4,{end:s,string:d}=Is(r,a);a=s;let{end:u,string:c}=Is(r,a);a=u;let l=J(r,a);a+=4;let f=J(r,a);a+=4;let p=J(r,a);a+=4;let h=J(r,a);a+=4;let I=r.subarray(a,i),g={schemeIdUri:d,value:c,timescale:l,presentationTimeDelta:f,eventDuration:p,id:h,messageData:I};e.push(g)}}if(e.length!==0)return e}function af(n){let e=Ds(n,[1836019574,1953653099,1835297121,1835626086,1937007212,1937011556]);if(e===null)return null;let t=e.subarray(8),r=Ee(t,1701733238),i=0;if(r===null?(i=28,r=Ee(t,1701733217)):i=78,r===null)return null;let o=Ds(r.subarray(i),[1936289382,1935894633,1952804451]);if(o===null||o.byteLength<24)return null;let a=o.subarray(8,24);return a.every(s=>s===0)?null:a}var oa=J(Te("pssh"),0);function Vg(n){m.info("DRM","Trying to move CENC PSSH from init data at the end of it.");let e=!1,t=new Uint8Array,r=new Uint8Array,i=0;for(;i<n.length;){if(n.length<i+8||J(n,i+4)!==oa)throw m.warn("DRM","unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let o=J(new Uint8Array(n),i);if(i+o>n.length)throw m.warn("DRM","unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");let a=n.subarray(i,i+o);if(n[i+12]===16&&n[i+13]===119&&n[i+14]===239&&n[i+15]===236&&n[i+16]===192&&n[i+17]===178&&n[i+18]===77&&n[i+19]===2&&n[i+20]===172&&n[i+21]===227&&n[i+22]===60&&n[i+23]===30&&n[i+24]===82&&n[i+25]===226&&n[i+26]===251&&n[i+27]===75){let s=Ns(a),d=s===null?void 0:a[s[1]];m.info("DRM","CENC PSSH found with version",d),d===void 0?m.warn("DRM","could not read version of CENC PSSH"):e===(d===1)?t=de(t,a):d===1?(m.warn("DRM","cenc version 1 encountered, removing every other cenc pssh box."),t=a,e=!0):m.warn("DRM","filtering out cenc pssh box with wrong version",d)}else r=de(r,a);i+=o}if(i!==n.length)throw m.warn("DRM","unrecognized initialization data. Cannot patch it."),new Error("Compat: unrecognized initialization data. Cannot patch it.");return de(r,t)}function Qr(n,e,t){m.debug("DRM","Calling generateRequest on the MediaKeySession");let r;try{r=Vg(t)}catch(o){r=t}let i=e!=null?e:"";return n.generateRequest(i,r).catch(o=>{if(i!==""||!(o instanceof TypeError))throw o;return m.warn("DRM",'error while calling `generateRequest` with an empty initialization data type. Retrying with a default "cenc" value.',o),n.generateRequest("cenc",r)})}function zg(n){let e=[],t=0;for(;t<n.length;){if(n.length<t+8||J(n,t+4)!==oa)return m.warn("DRM","Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let r=J(new Uint8Array(n),t);if(t+r>n.length)return m.warn("DRM","Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}];let i=n.subarray(t,t+r),a={systemId:ia(i,8),data:i};Wg(e,a)?m.warn("DRM","Duplicated PSSH found in initialization data, removing it."):e.push(a),t+=r}return t!==n.length?(m.warn("DRM","Unrecognized initialization data. Use as is."),[{systemId:void 0,data:n}]):e}function Wg(n,e){for(let t=0;t<n.length;t++){let r=n[t];if((e.systemId===void 0||r.systemId===void 0||e.systemId===r.systemId)&&Se(e.data,r.data))return!0}return!1}function aa(n){let{initData:e,initDataType:t,forceSessionRecreation:r}=n;if(E(e))return m.warn("DRM","No init data found on media encrypted event."),null;let i=new Uint8Array(e),o=zg(i);return{type:t,values:o,forceSessionRecreation:r}}var Hg=100;async function $r(n,e){m.info("DRM","Load persisted session",{sessionId:e});let t=await n.load(e);return!t||n.keyStatuses.size>0?t:new Promise(r=>{n.addEventListener("keystatuseschange",o);let i=setTimeout(o,Hg);function o(){a(),r(t)}function a(){clearTimeout(i),n.removeEventListener("keystatuseschange",o)}})}var sf=ws;function $(n,e,t){if(typeof Array.prototype.includes=="function")return n.includes(e,t);let r=n.length>>>0;if(r===0)return!1;let i=t|0,o=i>=0?Math.min(i,r-1):Math.max(r+i,0),a=(s,d)=>s===d||typeof s=="number"&&typeof d=="number"&&isNaN(s)&&isNaN(d);for(;o<r;){if(a(n[o],e))return!0;o++}return!1}function Xr(n){if(n.sessionId==="")return!1;let e=n.keyStatuses,t=[];return e.forEach(r=>{t.push(r)}),t.length<=0?(m.debug("DRM","isSessionUsable: MediaKeySession given has an empty keyStatuses",{sessionId:n.sessionId}),!1):$(t,"expired")?(m.debug("DRM","isSessionUsable: MediaKeySession given has an expired key",{sessionId:n.sessionId}),!1):$(t,"internal-error")?(m.debug("DRM","isSessionUsable: MediaKeySession given has a key with an internal-error",{sessionId:n.sessionId}),!1):(m.debug("DRM","isSessionUsable: MediaKeySession is usable",{sessionId:n.sessionId}),!0)}function Vs(n,e,t,r){let{loadedSessionsStore:i,persistentSessionsStore:o}=n;return t==="temporary"?df(i,e):o===null?(m.warn("DRM","Cannot create persistent MediaKeySession, PersistentSessionsStore not created."),df(i,e)):qg(i,o,e,r)}function df(n,e){m.info("DRM","Creating a new temporary session");let t=n.createSession(e,"temporary");return Promise.resolve({type:"created-session",value:t})}async function qg(n,e,t,r){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM","Creating persistent MediaKeySession");let i=n.createSession(t,"persistent-license"),o=e.getAndReuse(t);if(o===null)return{type:"created-session",value:i};try{let s=await n.loadPersistentSession(i.mediaKeySession,o.sessionId);if(!s){m.warn("DRM","No data stored for the loaded session",{sessionId:o.sessionId}),e.delete(o.sessionId),n.removeSessionWithoutClosingIt(i.mediaKeySession);let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}return s&&Xr(i.mediaKeySession)?(e.add(t,t.keyIds,i.mediaKeySession),m.info("DRM","Succeeded to load persistent session."),{type:"loaded-persistent-session",value:i}):(m.warn("DRM","Previous persistent session not usable anymore."),a())}catch(s){return m.warn("DRM","Unable to load persistent session: "+(s instanceof Error?s.toString():"Unknown Error")),a()}async function a(){if(r.cancellationError!==null)throw r.cancellationError;m.info("DRM","Removing previous persistent session.");let s=e.get(t);s!==null&&e.delete(s.sessionId);try{await n.closeSession(i.mediaKeySession)}catch(u){if(i.mediaKeySession.sessionId!=="")throw u;n.removeSessionWithoutClosingIt(i.mediaKeySession)}if(r.cancellationError!==null)throw r.cancellationError;let d=n.createSession(t,"persistent-license");return{type:"created-session",value:d}}}async function zs(n,e){if(e<0||e>=n.getLength())return;m.info("DRM","LSS cache limit exceeded",{limit:e,length:n.getLength()});let t=[],r=n.getAll().slice(),i=r.length-e;for(let o=0;o<i;o++){let a=r[o];t.push(n.closeSession(a.mediaKeySession))}await Promise.all(t)}async function Ws(n,e,t,r,i){let o=null,{loadedSessionsStore:a,persistentSessionsStore:s}=e,d=a.reuse(n);if(d!==null){if(o=d.mediaKeySession,Xr(o))return m.info("DRM","Reuse loaded session",{sessionId:o.sessionId}),{type:"loaded-open-session",value:{mediaKeySession:o,sessionType:d.sessionType,keySessionRecord:d.keySessionRecord}};s!==null&&d.mediaKeySession.sessionId!==""&&s.delete(d.mediaKeySession.sessionId)}if(o!==null&&(await a.closeSession(o),i.cancellationError!==null)||(await zs(a,r<=0?r:r-1),i.cancellationError!==null))throw i.cancellationError;let u=await Vs(e,n,t,i);return{type:u.type,value:{mediaKeySession:u.value.mediaKeySession,sessionType:u.value.sessionType,keySessionRecord:u.value.keySessionRecord}}}function Hs(){let{FORCE_CANNOT_REUSE_MEDIA_KEYS:n}=O.getCurrent();return!n&&V.device!==V.DEVICES.WebOs2021&&V.device!==V.DEVICES.WebOs2022&&V.device!==V.DEVICES.WebOsOther&&V.device!==V.DEVICES.PhilipsNetTv&&V.device!==V.DEVICES.Panasonic&&V.device!==V.DEVICES.A1KStb40xx}function uf(n){let{FORCE_CANNOT_RELY_ON_REQUEST_MEDIA_KEY_SYSTEM_ACCESS:e}=O.getCurrent();return!(e||(V.browser===V.BROWSERS.EdgeChromium||V.browser===V.BROWSERS.Firefox)&&n.indexOf("playready")!==-1)}var lf='<WRMHEADER xmlns="http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0"><DATA><PROTECTINFO><KEYLEN>16</KEYLEN><ALGID>AESCTR</ALGID></PROTECTINFO><KID>ckB07BNLskeUq0qd83fTbA==</KID><DS_ID>yYIPDBca1kmMfL60IsfgAQ==</DS_ID><CUSTOMATTRIBUTES xmlns=""><encryptionref>312_4024_2018127108</encryptionref></CUSTOMATTRIBUTES><CHECKSUM>U/tsUYRgMzw=</CHECKSUM></DATA></WRMHEADER>';function cf(n){let e=Fo(n),t=$c(e.length),r=new Uint8Array([1,0]),i=new Uint8Array([1,0]),o=Kr(e.length+6),a=de(o,i,r,t,e),s=Xe("9a04f07998404286ab92e65be0885f95");return Gg(a,s)}function Gg(n,e){let t=Te("pssh"),r=new Uint8Array([0,0,0,0]),i=_e(n.length),o=_e(32+n.length);return de(o,t,r,e,i,n)}function qs(n){let{FORCE_SHOULD_RENEW_MEDIA_KEY_SYSTEM_ACCESS:e}=O.getCurrent();return e?!0:n.indexOf("playready")!==-1&&(V.browser===V.BROWSERS.Ie11||V.browser===V.BROWSERS.EdgeChromium||V.browser===V.BROWSERS.Firefox)}function jg(n,e){let{mimeType:t,codecs:r}=sa(n),{mimeType:i,codecs:o}=sa(e);if(t!==i||r===""||o==="")return!1;let a=r.split(".")[0];a=a==="hev1"?"hvc1":a;let s=o.split(".")[0];return s=s==="hev1"?"hvc1":s,a===s}var Yg=7;function sa(n){var i;let[e,...t]=n.split(";"),r=(i=Q(t,o=>Ce(o,"codecs=")))!=null?i:"";return r=r.substring(Yg),r[0]==='"'&&(r=r.substring(1,r.length-1)),{mimeType:e,codecs:r}}var da=jg;function jn(n,e){return typeof Array.prototype.flatMap=="function"?n.flatMap(e):n.reduce((t,r)=>{let i=e(r);return Array.isArray(i)?(t.push(...i),t):(t.push(i),t)},[])}function Qg(n,e){var c,l,f,p,h,I,g,b,T,v;if(n.label!==e.label)return!1;let t=(c=e.distinctiveIdentifier)!=null?c:"optional",r=(l=n.distinctiveIdentifier)!=null?l:"optional";if(t!==r)return!1;let i=(f=e.persistentState)!=null?f:"optional",o=(p=n.persistentState)!=null?p:"optional";if(i!==o)return!1;let a=(h=e.initDataTypes)!=null?h:[],s=(I=n.initDataTypes)!=null?I:[];if(!mf(s,a))return!1;let d=(g=e.sessionTypes)!=null?g:[],u=(b=n.sessionTypes)!=null?b:[];if(!mf(u,d))return!1;for(let _ of["audioCapabilities","videoCapabilities"]){let R=(T=n[_])!=null?T:[],k=(v=e[_])!=null?v:[];if(!R.every(P=>{var M,L,F,D,B,A;for(let C=0;C<k.length;C++){let N=k[C];if(((M=N.robustness)!=null?M:"")===((L=P.robustness)!=null?L:"")||((F=N.encryptionScheme)!=null?F:null)===((D=P.encryptionScheme)!=null?D:null)||((B=N.robustness)!=null?B:"")===((A=P.robustness)!=null?A:""))return!0}return!1}))return!1}return!0}function $g(n){let{EME_KEY_SYSTEMS:e}=O.getCurrent();for(let t of Object.keys(e))if($(e[t],n))return t}function Xg(n){let{keyName:e,keyType:t,keySystemOptions:r}=n,i,o="optional",a="optional";Array.isArray(r.wantedSessionTypes)?(i=r.wantedSessionTypes,$(r.wantedSessionTypes,"persistent-license")&&!E(r.persistentLicenseConfig)&&(o="required")):E(r.persistentLicenseConfig)?i=["temporary"]:(o="required",i=["persistent-license"]),E(r.persistentState)||(o=r.persistentState),E(r.distinctiveIdentifier)||(a=r.distinctiveIdentifier);let{EME_DEFAULT_AUDIO_CODECS:s,EME_DEFAULT_VIDEO_CODECS:d,EME_DEFAULT_WIDEVINE_ROBUSTNESSES:u,EME_DEFAULT_PLAYREADY_RECOMMENDATION_ROBUSTNESSES:c}=O.getCurrent(),l,f,{audioCapabilitiesConfig:p,videoCapabilitiesConfig:h}=r;if((p==null?void 0:p.type)==="full")l=p.value;else{let g;(p==null?void 0:p.type)==="robustness"?g=p.value:e==="widevine"?g=u:t==="com.microsoft.playready.recommendation"?g=c:g=[],g.length===0&&g.push(void 0);let b=(p==null?void 0:p.type)==="contentType"?p.value:s;l=jn(g,T=>b.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}if((h==null?void 0:h.type)==="full")f=h.value;else{let g;(h==null?void 0:h.type)==="robustness"?g=h.value:e==="widevine"?g=u:t==="com.microsoft.playready.recommendation"?g=c:g=[],g.length===0&&g.push(void 0);let b=(h==null?void 0:h.type)==="contentType"?h.value:d;f=jn(g,T=>b.map(v=>T!==void 0?{contentType:v,robustness:T}:{contentType:v}))}let I={initDataTypes:["cenc"],videoCapabilities:f,audioCapabilities:l,distinctiveIdentifier:a,persistentState:o,sessionTypes:i};return p!==void 0?h!==void 0?[I]:[I,ue(ae({},I),{videoCapabilities:void 0})]:h!==void 0?[I,ue(ae({},I),{audioCapabilities:void 0})]:[I,ue(ae({},I),{audioCapabilities:void 0,videoCapabilities:void 0})]}function ff(n,e){var u,c,l,f,p,h;let t=(c=(u=n.audioCapabilities)==null?void 0:u.map(I=>I.contentType))!=null?c:[],r=(f=(l=n.videoCapabilities)==null?void 0:l.map(I=>I.contentType))!=null?f:[],i=t.concat(r).filter(I=>I!==void 0),o=(p=e.videoCapabilities)==null?void 0:p.map(I=>I.contentType),a=(h=e.audioCapabilities)==null?void 0:h.map(I=>I.contentType),s=[...o!=null?o:[],...a!=null?a:[]].filter(I=>I!==void 0);return s.length===0?[]:i.map(I=>{let{codecs:g,mimeType:b}=sa(I),T=$(s,I);return{codec:g,mimeType:b,result:T}})}function Gs(n,e,t,r){m.info("DRM","Searching for compatible MediaKeySystemAccess");let i=t.reduce((a,s)=>{let{EME_KEY_SYSTEMS:d}=O.getCurrent(),u=d[s.type],c;if(!E(u))c=u.map(l=>({keyName:s.type,keyType:l,keySystemOptions:s}));else{let l=$g(s.type),f=s.type;c=[{keyName:l,keyType:f,keySystemOptions:s}]}return a.concat(c)},[]);return o(0);async function o(a){if(a>=i.length)throw new be("INCOMPATIBLE_KEYSYSTEMS","No key system compatible with your wanted configuration has been found in the current browser.",{keyStatuses:void 0,keySystemConfiguration:void 0,keySystem:void 0});if(E(n.requestMediaKeySystemAccess))throw new Error("requestMediaKeySystemAccess is not implemented in your browser.");let s=i[a],{keyType:d,keySystemOptions:u}=s,c=Xg(s);m.debug("DRM","Request keysystem access",{keyType:d,index:a,length:i.length});let l,f=await Ze.getAttachedMediaKeysState(e);for(let p=0;p<c.length;p++){let h=c[p];if(f!==null&&!qs(f.mediaKeySystemAccess.keySystem)&&d===f.mediaKeySystemAccess.keySystem&&n.implementation===f.emeImplementation.implementation&&Qg(h,f.askedConfiguration))return m.info("DRM","Found cached compatible keySystem"),Promise.resolve({type:"reuse-media-key-system-access",value:{mediaKeySystemAccess:f.mediaKeySystemAccess,askedConfiguration:f.askedConfiguration,options:u,codecSupport:ff(f.askedConfiguration,f.mediaKeySystemAccess.getConfiguration())}});try{return l=await Zg(n,d,[h]),m.info("DRM","Found compatible keysystem",{keyType:d,index:a,configIndex:p}),{type:"create-media-key-system-access",value:{options:u,mediaKeySystemAccess:l,askedConfiguration:h,codecSupport:ff(h,l.getConfiguration())}}}catch(I){if(m.debug("DRM","Rejected access to keysystem",{keyType:d,index:a,configIndex:p}),r.cancellationError!==null)throw r.cancellationError}}return o(a+1)}}async function Zg(n,e,t){let r=await n.requestMediaKeySystemAccess(e,t);if(!uf(e))try{let o=(await r.createMediaKeys()).createSession(),a=cf(lf);await o.generateRequest("cenc",a),o.close().catch(()=>{m.warn("DRM","Failed to close the dummy session")})}catch(i){throw m.debug("DRM","KeySystemAccess was granted but it is not usable"),i}return r}function mf(n,e){for(let t=0;t<n.length;t++)if(!$(e,n[t]))return!1;return!0}function Yn(n,e){for(let t of n)if(!e.some(i=>Se(i,t)))return!1;return!0}function pf(n,e){for(let t of n)if(e.some(i=>Se(i,t)))return!0;return!1}var Zr=class{constructor(e){this._initializationData=e,this._keyIds=null}associateKeyIds(e){this._keyIds===null&&(this._keyIds=[]);let t=Array.from(e);for(let r of t)this.isAssociatedWithKeyId(r)||this._keyIds.push(r)}isAssociatedWithKeyId(e){if(this._keyIds===null)return!1;for(let t of this._keyIds)if(Se(t,e))return!0;return!1}getAssociatedKeyIds(){return this._keyIds===null?[]:this._keyIds}isCompatibleWith(e){let{keyIds:t}=e;if(t!==void 0&&t.length>0){if(this._keyIds!==null&&Yn(t,this._keyIds))return!0;if(this._initializationData.keyIds!==void 0)return Yn(t,this._initializationData.keyIds)}return this._checkInitializationDataCompatibility(e)}_checkInitializationDataCompatibility(e){return e.keyIds!==void 0&&e.keyIds.length>0&&this._initializationData.keyIds!==void 0?Yn(e.keyIds,this._initializationData.keyIds):this._initializationData.type!==e.type?!1:this._initializationData.values.isCompatibleWith(e.values)}};var Jr=class{constructor(e){this._mediaKeys=e,this._storage=[]}createSession(e,t){let r=new Zr(e);m.debug("DRM","calling `createSession`",{sessionType:t});let i=this._mediaKeys.createSession(t),o={mediaKeySession:i,sessionType:t,keySessionRecord:r,isGeneratingRequest:!1,isLoadingPersistentSession:!1,closingStatus:{type:"none"}};return E(i.closed)||i.closed.then(()=>{m.info("DRM","session was closed, removing it.",{sessionId:i.sessionId});let a=this.getIndex(r);a>=0&&this._storage[a].mediaKeySession===i&&this._storage.splice(a,1)}).catch(a=>{m.warn("DRM",`MediaKeySession.closed rejected: ${a}`)}),this._storage.push(ae({},o)),m.debug("DRM","MediaKeySession added",{sessionType:o.sessionType,currentlyLoaded:this._storage.length}),o}reuse(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.keySessionRecord.isCompatibleWith(e))return this._storage.splice(t,1),this._storage.push(r),m.debug("DRM","Reusing session:",{sessionId:r.mediaKeySession.sessionId,sessionType:r.sessionType}),ae({},r)}return null}getEntryForSession(e){for(let t=this._storage.length-1;t>=0;t--){let r=this._storage[t];if(r.mediaKeySession===e)return ae({},r)}return null}async generateLicenseRequest(e,t,r){let i;for(let o of this._storage)if(o.mediaKeySession===e){i=o;break}if(i===void 0)return m.error("DRM","generateRequest error. No MediaKeySession found with the given initData and initDataType"),Qr(e,t,r);if(i.isGeneratingRequest=!0,i.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");try{await Qr(e,t,r)}catch(o){throw i===void 0||(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start()),o}i!==void 0&&(i.isGeneratingRequest=!1,i.closingStatus.type==="awaiting"&&i.closingStatus.start())}async loadPersistentSession(e,t){let r;for(let o of this._storage)if(o.mediaKeySession===e){r=o;break}if(r===void 0)return m.error("DRM","loadPersistentSession error. No MediaKeySession found with the given initData and initDataType"),$r(e,t);if(r.isLoadingPersistentSession=!0,r.closingStatus.type!=="none")throw new Error("The `MediaKeySession` is being closed.");let i;try{i=await $r(e,t)}catch(o){throw r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),o}return r===void 0||(r.isLoadingPersistentSession=!1,r.closingStatus.type==="awaiting"&&r.closingStatus.start()),i}async closeSession(e){let t;for(let r of this._storage)if(r.mediaKeySession===e){t=r;break}return t===void 0?(m.warn("DRM","No MediaKeySession found with the given initData and initDataType"),Promise.resolve(!1)):this._closeEntry(t)}getLength(){return this._storage.length}getAll(){return this._storage}async closeAllSessions(){let e=this._storage;m.debug("DRM","Closing all current MediaKeySessions",{numberOfEntries:e.length}),this._storage=[];let t=e.map(r=>this._closeEntry(r));await Promise.all(t)}removeSessionWithoutClosingIt(e){ne(e.sessionId==="","Initialized `MediaKeySession`s should always be properly closed");for(let t=this._storage.length-1;t>=0;t--)if(this._storage[t].mediaKeySession===e)return m.debug("DRM","Removing session without closing it",{sessionId:e.sessionId}),this._storage.splice(t,1),!0;return!1}getIndex(e){for(let t=0;t<this._storage.length;t++)if(this._storage[t].keySessionRecord===e)return t;return-1}async _closeEntry(e){let{mediaKeySession:t}=e;return new Promise((r,i)=>{e!==void 0&&(e.isLoadingPersistentSession||e.isGeneratingRequest)?e.closingStatus={type:"awaiting",start:o}:o();function o(){e!==void 0&&(e.closingStatus={type:"pending"}),Jg(t).then(()=>{e!==void 0&&(e.closingStatus={type:"done"}),r(!0)}).catch(a=>{e!==void 0&&(e.closingStatus={type:"failed"}),i(a)})}})}};async function Jg(n){let e=n.sessionId;m.debug("DRM","Trying to close a MediaKeySession",{sessionId:e});try{await Wo(n),m.debug("DRM","Succeeded to close MediaKeySession",{sessionId:e});return}catch(t){m.error("DRM","Could not close MediaKeySession: "+(t instanceof Error?t.toString():"Unknown error"),{sessionId:e});return}}function rn(n){let e=0,t;for(let r=0;r<n.length;r++)t=n[r],e=(e<<5)-e+t,e=e&e;return e}var ft=class{constructor(e){this.initData=e}toJSON(){return $o(this.initData)}static decode(e){return St(e)}};function Qn(n,e){var t,r;return(r=(t=gf(n,e))!=null?t:gf(e,n))!=null?r:!1}function gf(n,e){if(n.length===0)return!1;if(e.length<n.length)return null;let t=n[0],r=0,i=0;for(;i<e.length;i++){let o=e[i];if(o.systemId!==t.systemId)continue;if(o.hash!==t.hash)return!1;let a;t.data instanceof Uint8Array?a=t.data:typeof t.data=="string"?a=ft.decode(t.data):a=t.data.initData;let s;if(o.data instanceof Uint8Array?s=o.data:typeof o.data=="string"?s=ft.decode(o.data):s=o.data.initData,!Se(a,s))return!1;if(e.length-i<n.length)return null;for(r=1;r<n.length;r++){let d=n[r];for(i+=1;i<e.length;i++){let u=e[i];if(d.systemId!==u.systemId)continue;if(d.hash!==u.hash)return!1;let c;d.data instanceof Uint8Array?c=d.data:typeof d.data=="string"?c=ft.decode(d.data):c=d.data.initData;let l;if(u.data instanceof Uint8Array?l=u.data:typeof u.data=="string"?l=ft.decode(u.data):l=u.data.initData,!Se(c,l))return!1;break}if(r===e.length)return null}return!0}return null}function eh(n){yc(n,{save:"function",load:"function"},"persistentLicenseConfig")}var ei=class{constructor(e){eh(e),this._entries=[],this._storage=e;try{let t=this._storage.load();Array.isArray(t)||(t=[]),this._entries=t}catch(t){m.warn("DRM","Persistent store: Could not get entries from license storage",t instanceof Error?t:""),this.dispose()}}getLength(){return this._entries.length}getAll(){return this._entries}get(e){let t=this._getIndex(e);return t===-1?null:this._entries[t]}getAndReuse(e){let t=this._getIndex(e);if(t===-1)return null;let r=this._entries.splice(t,1)[0];return this._entries.push(r),r}add(e,t,r){var s;if(E(r)||!w(r.sessionId)){m.warn("DRM","Persistent Store: Invalid Persisten Session given.");return}let{sessionId:i}=r,o=this._getIndex(e);if(o>=0){let d=t===void 0?3:4,u=this._entries[o];if(((s=u.version)!=null?s:-1)>=d&&i===u.sessionId)return;m.info("DRM","Persistent Store: Updating session info.",{sessionId:i}),this._entries.splice(o,1)}else m.info("DRM","Persistent Store: Add new session",{sessionId:i});let a=th(e.values.getFormattedValues());t===void 0?this._entries.push({version:3,sessionId:i,values:a,initDataType:e.type}):this._entries.push({version:4,sessionId:i,keyIds:t.map(d=>new ft(d)),values:a,initDataType:e.type}),this._save()}delete(e){let t=-1;for(let i=0;i<this._entries.length;i++)if(this._entries[i].sessionId===e){t=i;break}if(t===-1){m.warn("DRM","Persistent Store: initData to delete not found in persistent store.");return}let r=this._entries[t];m.warn("DRM","Persistent Store: Delete session from persistent store",{sessionId:r.sessionId}),this._entries.splice(t,1),this._save()}deleteOldSessions(e){m.info("DRM","Persistent Store: Deleting last sessions.",{sessionsToDelete:e}),!(e<=0)&&(e<=this._entries.length?this._entries.splice(0,e):(m.warn("DRM","Persistent Store: Asked to remove more information that it contains",e,this._entries.length),this._entries=[]),this._save())}dispose(){this._entries=[],this._save()}_getIndex(e){let t=null;function r(){if(t===null){let i=e.values.constructRequestData();t={initData:i,initDataHash:rn(i)}}return t}for(let i=0;i<this._entries.length;i++){let o=this._entries[i];if(o.initDataType===e.type)switch(o.version){case 4:if(Array.isArray(e.keyIds)&&e.keyIds.length>0){if(e.keyIds.every(s=>{let d=$o(s);for(let u of o.keyIds)if(typeof u=="string"){if(d===u)return m.debug("DRM","Persistent Store: Found wanted kid stored on entry",{index:i,keyId:d,sessionId:o.sessionId}),!0}else if(Se(u.initData,s))return m.hasLevel("DEBUG")&&m.debug("DRM","Persistent Store: Found wanted kid stored on entry",{index:i,keyId:d,sessionId:o.sessionId}),!0;return!1}))return m.debug("DRM","Persistent Store: Found compatible entry of v4",{index:i,sessionId:o.sessionId}),i}else{let a=e.values.getFormattedValues();if(Qn(a,o.values))return m.debug("DRM","Persistent Store: Found compatible entry of v4 without init data",{index:i,sessionId:o.sessionId}),i}break;case 3:{let a=e.values.getFormattedValues();if(Qn(a,o.values))return m.debug("DRM","Persistent Store: Found compatible entry of v3 - same values",{index:i,sessionId:o.sessionId}),i;break}case 2:{let{initData:a,initDataHash:s}=r();if(o.initDataHash===s)try{let d=typeof o.initData=="string"?ft.decode(o.initData):o.initData.initData;if(Se(d,a))return m.debug("DRM","Persistent Store: Found compatible entry of v2 - same concatenated init data",{index:i,sessionId:o.sessionId}),i}catch(d){m.warn("DRM","Persistent Store: Could not decode initialization data.",d instanceof Error?d:"")}break}case 1:{let{initData:a,initDataHash:s}=r();if(o.initDataHash===s){if(typeof o.initData.length=="undefined")return m.debug("DRM","Persistent Store: Found compatible entry of v1 - same hash only",{index:i,sessionId:o.sessionId,hash:s}),i;if(Se(o.initData,a))return m.debug("DRM","Persistent Store: Found compatible entry of v1 - same hash and initData",{index:i,sessionId:o.sessionId,hash:s}),i}break}default:{let{initDataHash:a}=r();if(o.initData===a)return m.debug("DRM","Persistent Store: Found compatible entry - same hash only",{index:i,sessionId:o.sessionId,hash:a}),i}}}return-1}_save(){try{this._storage.save(this._entries)}catch(e){let t=e instanceof Error?e:void 0;m.warn("DRM","Persistent Store: Could not save MediaKeySession information",t)}}};function th(n){return n.map(({systemId:e,data:t,hash:r})=>({systemId:e,hash:r,data:new ft(t)}))}var ua=new WeakMap,kn={prepare(n){ua.set(n,null)},set(n,e){let t=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer),r=rn(t);ua.set(n,{hash:r,serverCertificate:t})},hasOne(n){let e=ua.get(n);if(e===void 0)return!1;if(e!==null)return!0},has(n,e){let t=ua.get(n);if(t==null)return!1;let{hash:r,serverCertificate:i}=t,o=e instanceof Uint8Array?e:new Uint8Array(e instanceof ArrayBuffer?e:e.buffer);if(rn(o)!==r||i.length!==o.length)return!1;for(let s=0;s<i.length;s++)if(i[s]!==o[s])return!1;return!0}};function nh(n){let{persistentLicenseConfig:e}=n;return E(e)?null:(m.debug("DRM","Set the given license storage"),new ei(e))}async function js(n,e,t,r){let i=await Gs(n,e,t,r);if(r.cancellationError!==null)throw r.cancellationError;let{options:o,mediaKeySystemAccess:a,askedConfiguration:s,codecSupport:d}=i.value,u=await Ze.getAttachedMediaKeysState(e),c=nh(o);if(i.value.options.reuseMediaKeys!==!1&&Hs()&&u!==null&&i.type==="reuse-media-key-system-access"){m.debug("DRM","Reusing already created MediaKeys");let{mediaKeys:p,loadedSessionsStore:h}=u;if(kn.hasOne(p)===!1||!E(o.serverCertificate)&&kn.has(p,o.serverCertificate))return{mediaKeys:p,mediaKeySystemAccess:a,askedConfiguration:s,stores:{loadedSessionsStore:h,persistentSessionsStore:c},options:o,codecSupport:d}}let l=await rh(a);m.info("DRM","MediaKeys created with success");let f=new Jr(l);return{mediaKeys:l,mediaKeySystemAccess:a,askedConfiguration:s,stores:{loadedSessionsStore:f,persistentSessionsStore:c},options:o,codecSupport:d}}async function rh(n){m.info("DRM","Calling createMediaKeys on the MediaKeySystemAccess");try{return await n.createMediaKeys()}catch(e){let t=e instanceof Error?e.message:"Unknown error when creating MediaKeys.";throw new be("CREATE_MEDIA_KEYS_ERROR",t,{keyStatuses:void 0,keySystemConfiguration:n.getConfiguration(),keySystem:n.keySystem})}}async function Ys(n,e,t,r){let i=await js(n,e,t,r),{mediaKeys:o}=i;return e.mediaKeys!==null&&e.mediaKeys!==void 0&&o!==e.mediaKeys&&(m.debug("DRM","Disabling old MediaKeys"),await Ze.clearMediaKeys(e)),i}function ti(n){let e=(Math.random()*2-1)*.3;return n*(e+1)}function Qs(n,e,t){let{baseDelay:r,maxDelay:i,totalRetry:o,shouldRetry:a,onRetry:s}=e,d=0;return u();async function u(){if(t.cancellationError!==null)throw t.cancellationError;try{return await n()}catch(c){if(t.cancellationError!==null)throw t.cancellationError;if(!E(a)&&!a(c)||d++>=o)throw c;typeof s=="function"&&s(c,d);let l=ih(r,d,i);return await En(l),u()}}}function ih(n,e,t){let r=n*Math.pow(2,e-1),i=ti(r);return Math.min(i,t)}function $s(n,e){return n.indexOf("playready")!==-1&&(V.browser===V.BROWSERS.EdgeChromium||V.browser===V.BROWSERS.Ie11||V.browser===V.BROWSERS.OtherIeOrEdgePreEdgeChromium)?Vo(e):e}var $n=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.reason=e}},Xs={EXPIRED:"expired",INTERNAL_ERROR:"internal-error",OUTPUT_RESTRICTED:"output-restricted"};function Zs(n,e,t){let{onKeyInternalError:r,onKeyOutputRestricted:i,onKeyExpiration:o}=e,a=[],s=[],d=[];n.keyStatuses.forEach((c,l)=>{let[f,p]=typeof c=="string"?[c,l]:[l,c],h=$s(t.keySystem,new Uint8Array(p)),I={keyId:h.buffer,keyStatus:f};switch(m.hasLevel("DEBUG")&&m.debug("DRM","key status update",{keyId:Ne(h),keyStatus:f}),f){case Xs.EXPIRED:{let g=new be("KEY_STATUS_CHANGE_ERROR",`A decryption key expired (${Ne(h)})`,{keyStatuses:[I,...d],keySystem:t.keySystem,keySystemConfiguration:t.getConfiguration()});if(o==="error"||o===void 0)throw g;switch(o){case"close-session":throw new $n(g);case"fallback":a.push(h);break;default:o==="continue"||o===void 0?s.push(h):ze(o);break}d.push(I);break}case Xs.INTERNAL_ERROR:{let g=new be("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Ne(h)})`,{keyStatuses:[I,...d],keySystem:t.keySystem,keySystemConfiguration:t.getConfiguration()});switch(r){case void 0:case"error":throw g;case"close-session":throw new $n(g);case"fallback":a.push(h);break;case"continue":s.push(h);break;default:if(r!==void 0)ze(r);else throw g}d.push(I);break}case Xs.OUTPUT_RESTRICTED:{let g=new be("KEY_STATUS_CHANGE_ERROR",`A "${f}" status has been encountered (${Ne(h)})`,{keyStatuses:[I,...d],keySystem:t.keySystem,keySystemConfiguration:t.getConfiguration()});switch(i){case void 0:case"error":throw g;case"fallback":a.push(h);break;case"continue":s.push(h);break;default:if(i!==void 0)ze(i);else throw g}d.push(I);break}default:s.push(h);break}});let u;return d.length>0&&(u=new be("KEY_STATUS_CHANGE_ERROR","One or several problematic key statuses have been encountered",{keyStatuses:d,keySystem:t.keySystem,keySystemConfiguration:t.getConfiguration()})),{warning:u,blacklistedKeyIds:a,whitelistedKeyIds:s}}function Js(n,e,t,r,i){m.info("DRM","Binding session events",{sessionId:n.sessionId});let{getLicenseConfig:o={}}=e,a=new U;a.linkToSignal(i),E(n.closed)||n.closed.then(()=>a.cancel()).catch(c=>{i.isCancelled()||(a.cancel(),r.onError(c))}),jo(n,c=>{a.cancel(),r.onError(new be("KEY_ERROR",c.type,{keyStatuses:void 0,keySystemConfiguration:t.getConfiguration(),keySystem:t.keySystem}))},a.signal),zc(n,()=>{m.info("DRM","keystatuseschange event received",{sessionId:n.sessionId});try{s()}catch(c){if(i.isCancelled()||a.isUsed()&&c instanceof Tr)return;a.cancel(),r.onError(c)}},a.signal),Go(n,c=>{let l=c,f=new Uint8Array(l.message),p=w(l.messageType)?l.messageType:"license-request";m.info("DRM","Received message event",{messageType:p,sessionId:n.sessionId});let h=u(o.retry);Qs(()=>d(f,p),h,a.signal).then(async I=>{if(!a.isUsed())if(E(I))m.info("DRM","No license given, skipping session.update");else try{await oh(n,I,t)}catch(g){a.cancel(),r.onError(g)}},I=>{if(a.isUsed())return;a.cancel();let g=hf(I,t);if(!E(I)){let{fallbackOnLastTry:b}=I;if(b===!0){m.warn("DRM","Last `getLicense` attempt failed. Blacklisting the current session."),r.onError(new Xn(g));return}}r.onError(g)})},a.signal),m.info("DRM","transmitting current keystatuses",{sessionId:n.sessionId}),s();return;function s(){if(a.isUsed()||n.keyStatuses.size===0)return;let{warning:c,blacklistedKeyIds:l,whitelistedKeyIds:f}=Zs(n,e,t);c!==void 0&&(r.onWarning(c),a.isUsed())||r.onKeyUpdate({whitelistedKeyIds:f,blacklistedKeyIds:l})}function d(c,l){let f;return new Promise((p,h)=>{try{m.debug("DRM","Calling `getLicense`",{messageType:l});let b=e.getLicense(c,l),T=E(o.timeout)?10*1e3:o.timeout;T>=0&&(f=setTimeout(()=>{h(new ni(`"getLicense" timeout exceeded (${T} ms)`))},T)),Promise.resolve(b).then(I,g)}catch(b){g(b)}function I(b){f!==void 0&&clearTimeout(f),p(b)}function g(b){f!==void 0&&clearTimeout(f),h(b)}})}function u(c){return{totalRetry:c!=null?c:2,baseDelay:200,maxDelay:3e3,shouldRetry:l=>l instanceof ni||E(l)||l.noRetry!==!0,onRetry:l=>r.onWarning(hf(l,t))}}}function hf(n,e){if(n instanceof ni)return new be("KEY_LOAD_TIMEOUT","The license server took too much time to respond.",{keyStatuses:void 0,keySystemConfiguration:e.getConfiguration(),keySystem:e.keySystem});let t=new be("KEY_LOAD_ERROR","An error occured when calling `getLicense`.",{keyStatuses:void 0,keySystemConfiguration:e.getConfiguration(),keySystem:e.keySystem});return!E(n)&&w(n.message)&&(t.message=n.message),t}async function oh(n,e,t){m.info("DRM","Updating MediaKeySession with message");try{await n.update(e)}catch(r){let i=r instanceof Error?r.toString():"`session.update` failed";throw new be("KEY_UPDATE_ERROR",i,{keyStatuses:void 0,keySystemConfiguration:t.getConfiguration(),keySystem:t.keySystem})}m.info("DRM","MediaKeySession update succeeded.")}var Xn=class n extends Error{constructor(e){super(e.message),Object.setPrototypeOf(this,n.prototype),this.sessionError=e}},ni=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Xn.prototype),this.message=e}};async function ah(n,e,t){try{return await n.setServerCertificate(e)}catch(r){m.warn("DRM","mediaKeys.setServerCertificate returned an error",r instanceof Error?r:"");let i=r instanceof Error?r.toString():"`setServerCertificate` error";throw new be("LICENSE_SERVER_CERTIFICATE_ERROR",i,{keyStatuses:void 0,keySystemConfiguration:t.getConfiguration(),keySystem:t.keySystem})}}async function ed(n,e,t){if(kn.hasOne(n)===!0)return m.info("DRM","The MediaKeys already has a server certificate, skipping..."),{type:"already-has-one"};if(typeof n.setServerCertificate!="function")return m.warn("DRM","Could not set the server certificate. mediaKeys.setServerCertificate is not a function"),{type:"method-not-implemented"};m.info("DRM","Setting server certificate on the MediaKeys"),kn.prepare(n);try{let r=await ah(n,e,t);return kn.set(n,e),{type:"success",value:r}}catch(r){return{type:"error",value:Zt(r)?r:new be("LICENSE_SERVER_CERTIFICATE_ERROR","Unknown error when setting the server certificate.",{keyStatuses:void 0,keySystemConfiguration:t.getConfiguration(),keySystem:t.keySystem})}}}function td(n,e){if(isNaN(e)||e<0||e>=n.getLength())return;let t=n.getLength(),r=t-e;m.info("DRM","Too many stored persistent sessions, removing some.",{numberOfPersistentSessions:t,toDelete:r}),n.deleteOldSessions(r)}function nd(n){if(Ce(n,"com.microsoft.playready")||n==="com.chromecast.playready"||n==="com.youtube.playready")return"9a04f07998404286ab92e65be0885f95";if(n==="com.widevine.alpha")return"edef8ba979d64acea3c827dcd51d21ed";if(Ce(n,"com.apple.fps"))return"94ce86fb07ff4f43adb893d2fa968ca2";if(Ce(n,"com.nagra."))return"adb41c242dbf4a6d958b4457c0d27b95"}var ri=class n{constructor(e){this._innerValues=e,this._lazyFormattedValues=null}constructRequestData(){return de(...this._innerValues.map(e=>e.data))}isCompatibleWith(e){let t=e instanceof n?e.getFormattedValues():e;return Qn(this.getFormattedValues(),t)}getFormattedValues(){return this._lazyFormattedValues===null&&(this._lazyFormattedValues=sh(this._innerValues)),this._lazyFormattedValues}};function sh(n){return n.slice().sort((e,t)=>e.systemId===t.systemId?0:e.systemId===void 0?1:t.systemId===void 0||e.systemId<t.systemId?-1:1).map(({systemId:e,data:t})=>({systemId:e,data:t,hash:rn(t)}))}function rd(n,e,t){let r=`${n};codecs="${e}"`,i=t.filter(o=>o.mimeType===n);if(i.length!==0)for(let{codec:o,mimeType:a,result:s}of i){let d=`${a};codecs="${o}"`;if(da(r,d))return s}}var ii=class extends se{constructor(e,t,r){super(),m.debug("DRM","Starting ContentDecryptor logic.");let i=new U;this._currentSessions=[],this._canceller=i,this._initDataQueue=[],this._stateData={state:0,isMediaKeysAttached:0,isInitDataQueueLocked:!0,data:null},this._supportedCodecWhenEncrypted=[],this.error=null,this._eme=e,this._eme.onEncrypted(t,o=>{m.debug("DRM","Encrypted event received from media element.");let a=aa(o);a!==null&&this.onInitializationData(a)},i.signal),Ys(this._eme,t,r,i.signal).then(o=>{let{options:a,mediaKeySystemAccess:s}=o;this._supportedCodecWhenEncrypted=o.codecSupport;let d;(E(a.persistentLicenseConfig)||a.persistentLicenseConfig.disableRetroCompatibility===!0)&&(d=nd(s.keySystem)),this.systemId=d,this._stateData.state===0&&(m.debug("DRM","Waiting for attachment."),this._stateData={state:1,isInitDataQueueLocked:!0,isMediaKeysAttached:0,data:{mediaKeysInfo:o,mediaElement:t}},this.trigger("stateChange",this._stateData.state))}).catch(o=>{this._onFatalError(o)})}getState(){return this._stateData.state}attach(){if(this._stateData.state!==1)throw new Error("`attach` should only be called when in the WaitingForAttachment state");if(this._stateData.isMediaKeysAttached!==0){m.warn("DRM","ContentDecryptor's `attach` method called more than once.");return}let{mediaElement:e,mediaKeysInfo:t}=this._stateData.data,{options:r,mediaKeys:i,mediaKeySystemAccess:o,stores:a,askedConfiguration:s}=t;if(r.disableMediaKeysAttachmentLock===!0&&(m.debug("DRM","disabling MediaKeys attachment lock. Ready for content"),this._stateData={state:2,isInitDataQueueLocked:!0,isMediaKeysAttached:1,data:{mediaKeysInfo:t,mediaElement:e}},this.trigger("stateChange",this._stateData.state),this._isStopped()))return;this._stateData.isMediaKeysAttached=1;let u={emeImplementation:this._eme,loadedSessionsStore:a.loadedSessionsStore,mediaKeySystemAccess:o,mediaKeys:i,askedConfiguration:s,keySystemOptions:r};m.debug("DRM","Attaching current MediaKeys"),Ze.attach(e,u).then(async()=>{if(this._isStopped())return;this._stateData.isMediaKeysAttached=2;let{serverCertificate:c}=r;if(!E(c)){let f=await ed(i,c,o);f.type==="error"&&this.trigger("warning",f.value)}if(this._isStopped())return;let l=this._stateData.state;this._stateData={state:2,isMediaKeysAttached:2,isInitDataQueueLocked:!1,data:{mediaKeysData:t}},l!==2&&this.trigger("stateChange",2),this._isStopped()||this._processCurrentInitDataQueue()}).catch(c=>{this._onFatalError(c)})}dispose(){this.removeEventListener(),this._stateData={state:4,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("stateChange",this._stateData.state)}isCodecSupported(e,t){if(this._stateData.state===0){m.error("DRM","Asking for codec support while the ContentDecryptor is still initializing");return}return(this._stateData.state===3||this._stateData.state===4)&&m.error("DRM","Asking for codec support while the ContentDecryptor is disposed"),rd(e,t,this._supportedCodecWhenEncrypted)}onInitializationData(e){if(this._stateData.isInitDataQueueLocked!==!1){if(this._isStopped())throw new Error("ContentDecryptor either disposed or stopped.");this._initDataQueue.push(e);return}let{mediaKeysData:t}=this._stateData.data,r=ue(ae({},e),{values:new ri(e.values)});this._processInitializationData(r,t).catch(i=>{this._onFatalError(i)})}async _processInitializationData(e,t){var I,g,b;m.hasLevel("DEBUG")&&m.debug("DRM","processing init data",(I=e.content)==null?void 0:I.adaptation.type,(g=e.content)==null?void 0:g.representation.bitrate,((b=e.keyIds)!=null?b:[]).map(T=>Ne(T)).join(", "));let{mediaKeySystemAccess:r,stores:i,options:o}=t;if(this._tryToUseAlreadyCreatedSession(e,t)||this._isStopped())return;if(o.singleLicensePer==="content"){let T=Q(this._currentSessions,v=>v.source==="created-session");if(T!==void 0){let v=e.keyIds;if(v===void 0){e.content===void 0?m.warn("DRM","Unable to fallback from a non-decipherable quality."):(m.debug("DRM","Blacklisting new init data (due to singleLicensePer content policy)"),this.trigger("blackListProtectionData",e));return}if(T.record.associateKeyIds(v),e.content===void 0)m.warn("DRM","Unable to fallback from a non-decipherable quality.");else{if(m.hasLevel("DEBUG")){let _=v.reduce((R,k)=>`${R}, ${Ne(k)}`,"");m.debug("DRM","Blacklisting new key ids",_)}this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:v,delistedKeyIds:[]})}return}}else if(o.singleLicensePer==="periods"&&e.content!==void 0){let{period:T}=e.content,v=this._currentSessions.filter(R=>R.source==="created-session"),_=new Set;od(_,T);for(let R of v){let k=Array.from(_);for(let x of k)if(R.record.isAssociatedWithKeyId(x)){R.record.associateKeyIds(_.values());for(let P of k)!R.keyStatuses.whitelisted.some(M=>Se(M,P))&&!R.keyStatuses.blacklisted.some(M=>Se(M,P))&&R.keyStatuses.blacklisted.push(P);m.hasLevel("DEBUG")&&m.debug("DRM","Session already created for",Ne(x),'under singleLicensePer "periods" policy'),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:R.keyStatuses.whitelisted,blacklistedKeyIds:R.keyStatuses.blacklisted,delistedKeyIds:[]});return}}}this._lockInitDataQueue();let a;dh(r)&&(!E(o.persistentLicenseConfig)||!uh(r))?a="persistent-license":a="temporary";let{EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS:s,EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION:d}=O.getCurrent(),u=typeof o.maxSessionCacheSize=="number"?o.maxSessionCacheSize:s,c=await Ws(e,i,a,u,this._canceller.signal);if(this._isStopped())return;let l={record:c.value.keySessionRecord,source:c.type,keyStatuses:{whitelisted:[],blacklisted:[]},blacklistedSessionError:null};this._currentSessions.push(l);let{mediaKeySession:f,sessionType:p}=c.value,h=!1;if(Js(f,o,r,{onKeyUpdate:T=>{let v=fh(e,l.record,o.singleLicensePer,l.source==="created-session",T.whitelistedKeyIds,T.blacklistedKeyIds);if(l.record.associateKeyIds(v.whitelisted),l.record.associateKeyIds(v.blacklisted),l.keyStatuses={whitelisted:v.whitelisted,blacklisted:v.blacklisted},l.record.getAssociatedKeyIds().length!==0&&p==="persistent-license"&&i.persistentSessionsStore!==null&&!h){let{persistentSessionsStore:_}=i;td(_,d-1),_.add(e,l.record.getAssociatedKeyIds(),f),h=!0}e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:v.whitelisted,blacklistedKeyIds:v.blacklisted,delistedKeyIds:[]}),this._unlockInitDataQueue()},onWarning:T=>{this.trigger("warning",T)},onError:T=>{var v;if(T instanceof $n){m.warn("DRM","A session's closing condition has been triggered"),this._lockInitDataQueue();let _=this._currentSessions.indexOf(l);_>=0&&this._currentSessions.splice(_),e.content!==void 0&&this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:[],delistedKeyIds:l.record.getAssociatedKeyIds()}),(v=i.persistentSessionsStore)==null||v.delete(f.sessionId),i.loadedSessionsStore.closeSession(f).catch(R=>{let k=R instanceof Error?R:"unknown error";m.warn("DRM","failed to close expired session",k)}).then(()=>this._unlockInitDataQueue()).catch(R=>this._onFatalError(R)),this._isStopped()||this.trigger("warning",T.reason);return}if(!(T instanceof Xn)){this._onFatalError(T);return}l.blacklistedSessionError=T,e.content!==void 0&&(m.info("DRM","blacklisting Representations based on protection data."),this.trigger("blackListProtectionData",e)),this._unlockInitDataQueue()}},this._canceller.signal),(o.singleLicensePer===void 0||o.singleLicensePer==="init-data")&&this._unlockInitDataQueue(),c.type==="created-session"){let T=e.values.constructRequestData();try{await i.loadedSessionsStore.generateLicenseRequest(f,e.type,T)}catch(v){let _=i.loadedSessionsStore.getEntryForSession(f);if(_===null||_.closingStatus.type!=="none"){let R=this._currentSessions.indexOf(l);return R>=0&&this._currentSessions.splice(R,1),Promise.resolve()}throw new be("KEY_GENERATE_REQUEST_ERROR",v instanceof Error?v.toString():"Unknown error",{keyStatuses:void 0,keySystemConfiguration:r.getConfiguration(),keySystem:r.keySystem})}}return Promise.resolve()}_tryToUseAlreadyCreatedSession(e,t){let{stores:r,options:i}=t,o=Q(this._currentSessions,c=>c.record.isCompatibleWith(e));if(o===void 0)return!1;if(e.forceSessionRecreation===!0)return this.removeSessionForInitData(e,t),!1;let s=o.blacklistedSessionError;if(!E(s))return e.type===void 0||e.content===void 0?(m.error("DRM","This initialization data has already been blacklisted but the current content is not known."),!0):(m.info("DRM","This initialization data has already been blacklisted. Blacklisting the related content."),this.trigger("blackListProtectionData",e),!0);if(e.keyIds!==void 0){let c;if(i.singleLicensePer===void 0||i.singleLicensePer==="init-data"){let{blacklisted:l}=o.keyStatuses;c=pf(e.keyIds,l)}else{let{whitelisted:l}=o.keyStatuses;c=!Yn(e.keyIds,l)}if(c)return e.content===void 0?(m.error("DRM","Cannot forbid key id, the content is unknown."),!0):(m.info("DRM","Current initialization data is linked to blacklisted keys. Marking Representations as not decipherable"),this.trigger("keyIdsCompatibilityUpdate",{whitelistedKeyIds:[],blacklistedKeyIds:e.keyIds,delistedKeyIds:[]}),!0)}if(r.loadedSessionsStore.reuse(e)!==null)return m.debug("DRM","Init data already processed. Skipping it."),!0;let u=this._currentSessions.indexOf(o);return u===-1?m.error("DRM","Unable to remove processed init data: not found."):(m.debug("DRM","A session from a processed init data is not available anymore. Re-processing it."),this._currentSessions.splice(u,1)),!1}removeSessionForInitData(e,t){let{stores:r}=t,i=r.loadedSessionsStore.reuse(e);i!==null&&r.loadedSessionsStore.closeSession(i.mediaKeySession).catch(()=>m.error("DRM","Cannot close the session from the loaded session store"));let o=Q(this._currentSessions,s=>s.record.isCompatibleWith(e));if(o===void 0)return;let a=this._currentSessions.indexOf(o);a!==-1&&(m.debug("DRM","A session from a processed init is removed due to forceSessionRecreation policy."),this._currentSessions.splice(a,1))}_onFatalError(e){if(this._canceller.isUsed())return;let t=e instanceof Error?e:new We("NONE","Unknown decryption error");this.error=t,this._initDataQueue.length=0,this._stateData={state:3,isMediaKeysAttached:void 0,isInitDataQueueLocked:void 0,data:null},this._canceller.cancel(),this.trigger("error",t),this._stateData.state===3&&this.trigger("stateChange",this._stateData.state)}_isStopped(){return this._stateData.state===4||this._stateData.state===3}_processCurrentInitDataQueue(){for(;this._stateData.isInitDataQueueLocked===!1;){let e=this._initDataQueue.shift();if(e===void 0)return;this.onInitializationData(e)}}_lockInitDataQueue(){this._stateData.isInitDataQueueLocked===!1&&(this._stateData.isInitDataQueueLocked=!0)}_unlockInitDataQueue(){if(this._stateData.isMediaKeysAttached!==2){m.error("DRM","Trying to unlock in the wrong state");return}this._stateData.isInitDataQueueLocked=!1,this._processCurrentInitDataQueue()}};function dh(n){let{sessionTypes:e}=n.getConfiguration();return e!==void 0&&$(e,"persistent-license")}function uh(n){let{sessionTypes:e}=n.getConfiguration();return e!==void 0&&$(e,"temporary")}function yf(n,e){return n.filter(t=>!e.some(r=>Se(r,t)))}function lh(n,e){let t=n.getAssociatedKeyIds(),r=yf(t,e);return r.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM","KeySessionRecord's keys missing in the license, blacklisting them",r.map(i=>Ne(i)).join(", ")),r}function ch(n,e){let t=[],{keyIds:r}=n;return r!==void 0&&(t=yf(r,e)),t.length>0&&m.hasLevel("DEBUG")&&m.debug("DRM","init data keys missing in the license, blacklisting them",t.map(i=>Ne(i)).join(", ")),t}function fh(n,e,t,r,i,o){var u;let a=[...i,...o],s=lh(e,a),d=a.concat(s);if(t!==void 0&&t!=="init-data"){let c=ch(n,d);d.push(...c);let{content:l}=n;if(r&&l!==void 0){if(t==="content"){let f=new Set,{manifest:p}=l;for(let h of p.periods)od(f,h);id(f,d)}else if(t==="periods"){let{manifest:f}=l;for(let p of f.periods){let h=new Set;if(od(h,p),((u=n.content)==null?void 0:u.period.id)===p.id)id(h,d);else{let I=Array.from(h);for(let g of I)if(d.some(T=>Se(T,g))){id(h,d);break}}}}}}return{whitelisted:i,blacklisted:d.slice(i.length)}}function id(n,e){let t=Array.from(n.values());for(let r of t)e.some(o=>Se(o,r))||e.push(r)}function od(n,e){let t=e.adaptations,r=Cr(t).reduce((i,o)=>E(o)?i:i.concat(o),[]);for(let i of r)for(let o of i.representations)if(o.contentProtections!==void 0&&o.contentProtections.keyIds!==void 0)for(let a of o.contentProtections.keyIds)n.add(a)}function Zn(n){let e=Ze.getAwaitedState(n);return e===null?null:[e.mediaKeySystemAccess.keySystem,e.mediaKeySystemAccess.getConfiguration()]}var If=ii;function bf(n){var t,r,i,o,a;let e=[];for(let s of n.periods){let d=[...(t=s.adaptations.video)!=null?t:[],...(r=s.adaptations.audio)!=null?r:[]];for(let u of d)if(u.supportStatus.hasCodecWithUndefinedSupport)for(let c of u.representations)c.isSupported===void 0&&e.push({mimeType:(i=c.mimeType)!=null?i:"",codec:(a=(o=c.codecs)==null?void 0:o[0])!=null?a:""})}return e}var Sf=[];function Ft(n){$(Sf,n)||(console.warn(n),Sf.push(n))}var oi=class{constructor(e){this.supportMap=new Map,this.addCodecs(e)}addCodecs(e){for(let t of e){let r=this.supportMap.get(t.mimeType);r===void 0&&(r=new Map,this.supportMap.set(t.mimeType,r)),r.set(t.codec,{supported:t.supported,supportedIfEncrypted:t.supportedIfEncrypted})}}isSupported(e,t,r){let i=this.supportMap.get(e);if(i===void 0)return;let o=i.get(t);if(o!==void 0)return r?o.supportedIfEncrypted:o.supported}};var ai=class{constructor(e,t,r){if(this.id=e.id,this.adaptations=mh(e.adaptations,t,r),Tf(this.adaptations.video)&&Tf(this.adaptations.audio))throw new re("MANIFEST_PARSE_ERROR","The manifest has no video nor audio tracks.");this.thumbnailTracks=e.thumbnailTracks.map(i=>({id:i.id,mimeType:i.mimeType,index:i.index,cdnMetadata:i.cdnMetadata,height:i.height,width:i.width,horizontalTiles:i.horizontalTiles,verticalTiles:i.verticalTiles,start:i.start,end:i.end,tileDuration:i.tileDuration})),this.duration=e.duration,this.start=e.start,!E(this.duration)&&!E(this.start)&&(this.end=this.start+this.duration),this.streamEvents=e.streamEvents===void 0?[]:e.streamEvents}refreshCodecSupport(e,t){Object.keys(this.adaptations).forEach(r=>{let i=this.adaptations[r];if(i!==void 0)for(let o of i){if(!o.supportStatus.hasCodecWithUndefinedSupport)continue;let a=o.supportStatus.hasSupportedCodec;o.refreshCodecSupport(t),a!==!1&&o.supportStatus.hasSupportedCodec===!1&&e.push(o)}},{})}getAdaptations(){return ys(this)}getAdaptationsForType(e){let t=this.adaptations[e];return t!=null?t:[]}getAdaptation(e){return Q(this.getAdaptations(),({id:t})=>e===t)}getSupportedAdaptations(e){return Ot(this,e)}containsTime(e,t){return hs(this,e,t)}getMetadataSnapshot(){let e={},t=this.getAdaptations();for(let r of t){let i=e[r.type];i===void 0&&(i=[],e[r.type]=i),i.push(r.getMetadataSnapshot())}return{start:this.start,end:this.end,id:this.id,streamEvents:this.streamEvents,adaptations:e,thumbnailTracks:this.thumbnailTracks.map(r=>({id:r.id,mimeType:r.mimeType,height:r.height,width:r.width,horizontalTiles:r.horizontalTiles,verticalTiles:r.verticalTiles,start:r.start,end:r.end,tileDuration:r.tileDuration}))}}};function Tf(n){return Array.isArray(n)?n.length===0:!0}function mh(n,e,t){let r={};for(let[i,o]of Object.entries(n))E(o)||(r[i]=o.map(a=>new Ur(a,e,{representationFilter:t})).filter(a=>a.representations.length>0));return r}function si(n,e,t){let r={updatedAdaptations:[],removedAdaptations:[],addedAdaptations:[],updatedThumbnailTracks:[],removedThumbnailTracks:[],addedThumbnailTracks:[]};n.start=e.start,n.end=e.end,n.duration=e.duration,n.streamEvents=e.streamEvents;let i=n.thumbnailTracks,o=e.thumbnailTracks;for(let d=0;d<i.length;d++){let u=i[d],c=Ie(o,l=>l.id===u.id);if(c===-1){m.warn("manifest",'ThumbnailTrack "'+i[d].id+'" not found when merging.');let[l]=i.splice(d,1);d--,r.removedThumbnailTracks.push({id:l.id})}else{let[l]=o.splice(c,1);u.mimeType=l.mimeType,u.height=l.height,u.width=l.width,u.horizontalTiles=l.horizontalTiles,u.verticalTiles=l.verticalTiles,u.start=l.start,u.end=l.end,u.tileDuration=l.tileDuration,u.cdnMetadata=l.cdnMetadata,t===0?u.index._replace(l.index):u.index._update(l.index),r.updatedThumbnailTracks.push({id:u.id,mimeType:u.mimeType,height:u.height,width:u.width,horizontalTiles:u.horizontalTiles,verticalTiles:u.verticalTiles,start:u.start,end:u.end,tileDuration:u.tileDuration})}}o.length>0&&(m.warn("manifest",`${o.length} new Thumbnail tracks found when merging.`),r.addedThumbnailTracks.push(...o.map(d=>({id:d.id,mimeType:d.mimeType,height:d.height,width:d.width,horizontalTiles:d.horizontalTiles,verticalTiles:d.verticalTiles,start:d.start,end:d.end,tileDuration:d.tileDuration}))),n.thumbnailTracks.push(...o));let a=n.getAdaptations(),s=e.getAdaptations();for(let d=0;d<a.length;d++){let u=a[d],c=Ie(s,l=>l.id===u.id);if(c===-1){m.warn("manifest",'Adaptation "'+a[d].id+'" not found when merging.');let[l]=a.splice(d,1);d--,r.removedAdaptations.push({id:l.id,trackType:l.type})}else{let[l]=s.splice(c,1),f=[],p=[],h=[];r.updatedAdaptations.push({adaptation:u.id,trackType:u.type,updatedRepresentations:f,addedRepresentations:p,removedRepresentations:h});let I=u.representations,g=l.representations.slice();for(let b=0;b<I.length;b++){let T=I[b],v=Ie(g,_=>_.id===T.id);if(v===-1){m.warn("manifest",`Representation "${I[b].id}" not found when merging.`);let[_]=I.splice(b,1);b--,h.push(_.id)}else{let[_]=g.splice(v,1);f.push(T.getMetadataSnapshot()),T.cdnMetadata=_.cdnMetadata,t===0?T.index._replace(_.index):T.index._update(_.index)}}g.length>0&&(m.warn("manifest",`${g.length} new Representations found when merging.`),u.representations.push(...g),p.push(...g.map(b=>b.getMetadataSnapshot())))}}if(s.length>0){m.warn("manifest",`${s.length} new Adaptations found when merging.`);for(let d of s){let u=n.adaptations[d.type];u===void 0?n.adaptations[d.type]=[d]:u.push(d),r.addedAdaptations.push(d.getMetadataSnapshot())}}return r}function Ef(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]},r=0;for(let o=0;o<e.length;o++){let a=e[o],s=r,d=n[s];for(;d!==void 0&&d.id!==a.id;)s++,d=n[s];if(d!==void 0){let u=si(d,a,0);t.updatedPeriods.push({period:{id:d.id,start:d.start,end:d.end,duration:d.duration,streamEvents:d.streamEvents},result:u});let c=e.slice(r,o),l=s-r,f=n.splice(r,l,...c);t.removedPeriods.push(...f.map(p=>({id:p.id,start:p.start,end:p.end}))),t.addedPeriods.push(...c.map(p=>p.getMetadataSnapshot())),r=o+1}}if(r>n.length)return m.error("manifest","error when updating Periods"),t;if(r<n.length){let o=n.splice(r,n.length-r);t.removedPeriods.push(...o.map(a=>({id:a.id,start:a.start,end:a.end})))}let i=e.slice(r,e.length);return i.length>0&&(n.push(...i),t.addedPeriods.push(...i.map(o=>o.getMetadataSnapshot()))),t}function _f(n,e){let t={updatedPeriods:[],addedPeriods:[],removedPeriods:[]};if(n.length===0)return n.splice(0,0,...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t;if(e.length===0)return t;let r=n[n.length-1];if(r.start<e[0].start){if(r.end!==e[0].start)throw new re("MANIFEST_UPDATE_ERROR","Cannot perform partial update: not enough data");return n.push(...e),t.addedPeriods.push(...e.map(s=>s.getMetadataSnapshot())),t}let i=Ie(n,({id:s})=>s===e[0].id);if(i<0)throw new re("MANIFEST_UPDATE_ERROR","Cannot perform partial update: incoherent data");let o=si(n[i],e[0],1);t.updatedPeriods.push({period:Y(n[i].getMetadataSnapshot(),{adaptations:void 0}),result:o});let a=i+1;for(let s=1;s<e.length;s++){let d=e[s],u=-1;for(let c=a;c<n.length;c++)if(d.id===n[c].id){u=c;break}if(u<0){let c=-1;for(let p=a;p<n.length;p++)if(d.start<n[p].start){c=p;break}let l=c-a,f=n.splice(a,l,d);t.addedPeriods.push(d.getMetadataSnapshot()),t.removedPeriods.push(...f.map(p=>({id:p.id,start:p.start,end:p.end})))}else{if(u>a){m.warn("manifest","old Periods not found in new when updating, removing");let l=n.splice(a,u-a);t.removedPeriods.push(...l.map(f=>({id:f.id,start:f.start,end:f.end}))),u=a}let c=si(n[u],d,0);t.updatedPeriods.push({period:Y(n[u].getMetadataSnapshot(),{adaptations:void 0}),result:c})}a++}if(a<n.length){m.warn("manifest","Ending Periods not found in new when updating, removing");let s=n.splice(a,n.length-a);t.removedPeriods.push(...s.map(d=>({id:d.id,start:d.start,end:d.end})))}return t}var ph=rt(),di=class extends se{constructor(e,t){var o;super();let{representationFilter:r,manifestUpdateUrl:i}=t;this.manifestFormat=0,this.id=ph(),this.expired=(o=e.expired)!=null?o:null,this.transport=e.transportType,this.clockOffset=e.clockOffset,this._cachedCodecSupport=new oi([]),this.periods=e.periods.map(a=>new ai(a,this._cachedCodecSupport,r)).sort((a,s)=>a.start-s.start),this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.timeBounds=e.timeBounds,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.uris=e.uris===void 0?[]:e.uris,this.updateUrl=i,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.availabilityStartTime=e.availabilityStartTime,this.publishTime=e.publishTime}updateCodecSupport(e=[]){if(e.length===0)return null;this._cachedCodecSupport.addCodecs(e);let t=[];for(let r of this.periods)r.refreshCodecSupport(t,this._cachedCodecSupport);return this.trigger("supportUpdate",null),t.length>0?new re("MANIFEST_INCOMPATIBLE_CODECS_ERROR","An Adaptation contains only incompatible codecs.",{tracks:t.map(Tn)}):null}getPeriod(e){return Q(this.periods,t=>e===t.id)}getPeriodForTime(e){return Hn(this,e)}getNextPeriod(e){return Q(this.periods,t=>t.start>e)}getPeriodAfter(e){return Do(this,e)}getUrls(){return this.uris}replace(e){this._performUpdate(e,0)}update(e){this._performUpdate(e,1)}getMinimumSafePosition(){return bn(this)}getLivePosition(){return Sn(this)}getMaximumSafePosition(){return kt(this)}updateCodecSupportList(e){this._cachedCodecSupport=e}updateRepresentationsDeciperability(e){let t=gh(this,e);t.length>0&&this.trigger("decipherabilityUpdate",t)}addRepresentationsToAvoid(e){let t=[];for(let r of e){let i=this.getPeriod(r.period.id);if(i===void 0)continue;let o=i.getAdaptation(r.adaptation.id);if(o===void 0)continue;let a=o.getRepresentation(r.representation.id);a!==void 0&&(a.shouldBeAvoided=!0,t.push({manifest:this,period:i,adaptation:o,representation:a}))}t.length>0&&this.trigger("representationAvoidanceUpdate",t)}getAdaptations(){Ft("manifest.getAdaptations() is deprecated. Please use manifest.period[].getAdaptations() instead");let e=this.periods[0];if(e===void 0)return[];let t=e.adaptations,r=[];for(let i in t)if(Object.prototype.hasOwnProperty.call(t,i)){let o=t[i];r.push(...o)}return r}getAdaptationsForType(e){Ft("manifest.getAdaptationsForType(type) is deprecated. Please use manifest.period[].getAdaptationsForType(type) instead");let t=this.periods[0];if(t===void 0)return[];let r=t.adaptations[e];return r===void 0?[]:r}getAdaptation(e){return Ft("manifest.getAdaptation(id) is deprecated. Please use manifest.period[].getAdaptation(id) instead"),Q(this.getAdaptations(),({id:t})=>e===t)}getMetadataSnapshot(){let e=[];for(let t of this.periods)e.push(t.getMetadataSnapshot());return{manifestFormat:1,id:this.id,periods:e,isDynamic:this.isDynamic,isLive:this.isLive,isLastPeriodKnown:this.isLastPeriodKnown,suggestedPresentationDelay:this.suggestedPresentationDelay,clockOffset:this.clockOffset,uris:this.uris,availabilityStartTime:this.availabilityStartTime,timeBounds:this.timeBounds}}getCodecsWithUnknownSupport(){return bf(this)}_performUpdate(e,t){this.availabilityStartTime=e.availabilityStartTime,this.expired=e.expired,this.isDynamic=e.isDynamic,this.isLive=e.isLive,this.isLastPeriodKnown=e.isLastPeriodKnown,this.lifetime=e.lifetime,this.clockOffset=e.clockOffset,this.suggestedPresentationDelay=e.suggestedPresentationDelay,this.transport=e.transport,this.publishTime=e.publishTime;let r;if(t===0)this.timeBounds=e.timeBounds,this.uris=e.uris,r=Ef(this.periods,e.periods);else{this.timeBounds.maximumTimeData=e.timeBounds.maximumTimeData,this.updateUrl=e.uris[0],r=_f(this.periods,e.periods);let i=this.getMinimumSafePosition();for(;this.periods.length>0;){let o=this.periods[0];if(o.end===void 0||o.end>i)break;this.periods.shift()}}this.updateCodecSupport(),this.adaptations=this.periods[0]===void 0?{}:this.periods[0].adaptations,this.trigger("manifestUpdate",r)}};function gh(n,e){let t=[];for(let r of n.periods)for(let i of r.getAdaptations()){let o=!0;for(let a of i.representations){let s={manifest:n,period:r,adaptation:i,representation:a},d=e(s);d!==!1&&(o=!1),d!==a.decipherable&&(t.push(s),a.decipherable=d,d===!0?i.supportStatus.isDecipherable=!0:d===void 0&&i.supportStatus.isDecipherable===!1&&(i.supportStatus.isDecipherable=void 0),m.debug("manifest",`Decipherability changed for "${a.id}"`,`(${a.bitrate})`,String(a.decipherable)))}o&&(i.supportStatus.isDecipherable=!1)}return t}function Dt(n,e){return n.segment.id===e.segment.id&&n.representation.uniqueId===e.representation.uniqueId}function bt(n){if(E(n))return null;let{period:e,adaptation:t,representation:r,segment:i}=n;return{t:t.type[0],p:e.id,a:t.id,r:r.id,ss:i.isInit?null:i.time,se:i.isInit||!i.complete?null:i.end}}var Jn=di;function mt(n){return n instanceof Ae?new ut("PIPELINE_LOAD_ERROR",n):Me(n,{defaultCode:"PIPELINE_LOAD_ERROR",defaultReason:"Unknown error when fetching the Manifest"})}function hh(n){return n instanceof Ae?n.type===yn.ERROR_HTTP_CODE?n.status>=500||n.status===404||n.status===415||n.status===412:n.type===yn.TIMEOUT||n.type===yn.ERROR_EVENT:n instanceof dt?typeof n.canRetry=="boolean"?n.canRetry:n.xhr!==void 0?n.xhr.status>=500||n.xhr.status===404||n.xhr.status===415||n.xhr.status===412:!1:Zt(n)&&n.code==="INTEGRITY_ERROR"}async function ui(n,e,t,r,i){if(i.cancellationError!==null)return Promise.reject(i.cancellationError);let{baseDelay:o,maxDelay:a,maxRetry:s,onRetry:d}=r;n!==null&&n.length===0&&m.warn("utils","No CDN given to `scheduleRequestWithCdns`.");let u=new Map,c=l();if(c===void 0)throw new Error("No CDN to request");return f(c);function l(){if(n===null){let g=u.get(null);return g!==void 0&&g.isBlacklisted?void 0:null}else{if(e===null)return I(n);{let g=e.getCdnPreferenceForResource(n);return I(g)}}}async function f(g){try{return await t(g,i)}catch(b){if(U.isCancellationError(b))throw b;g!==null&&e!==null&&e.downgradeCdn(g);let T=u.get(g);if(T===void 0?(T={errorCounter:1,blockedUntil:void 0,isBlacklisted:!1},u.set(g,T)):T.errorCounter++,!hh(b))return T.blockedUntil=void 0,T.isBlacklisted=!0,p(b);if(T.errorCounter>s)T.blockedUntil=void 0,T.isBlacklisted=!0;else{let v=T.errorCounter,_=Math.min(o*Math.pow(2,v-1),a),R=ti(_);T.blockedUntil=z()+R}return p(b)}}async function p(g){let b=l();if(i.isCancelled())throw i.cancellationError;if(b===void 0)throw g;if(d(g),i.isCancelled())throw i.cancellationError;return h(b,g)}function h(g,b){let T=u.get(g);if(T===void 0||T.blockedUntil===void 0)return f(g);let v=z(),_=T.blockedUntil-v;if(_<=0)return f(g);let R=new U,k=R.linkToSignal(i);return new Promise((x,P)=>{e==null||e.addEventListener("priorityChange",()=>{let F=l();if(i.isCancelled())throw i.cancellationError;if(F===void 0)return L(b);F!==g&&(R.cancel(),h(F,b).then(M,L))},R.signal),en(_,R.signal).then(()=>f(g).then(M,L),te);function M(F){k(),x(F)}function L(F){k(),P(F)}})}function I(g){var T;if(u.size===0)return g[0];let b=z();return(T=g.filter(v=>{var _;return((_=u.get(v))==null?void 0:_.isBlacklisted)!==!0}).reduce((v,_)=>{var k;let R=(k=u.get(_))==null?void 0:k.blockedUntil;return R!==void 0&&R<=b&&(R=void 0),v===void 0?[_,R]:v[1]===void 0?v:R===void 0?[_,void 0]:R<v[1]?[_,R]:v},void 0))==null?void 0:T[0]}}function ad(n,e,t){return ui(null,null,n,e,t)}var li=class extends se{constructor(e,t,r){super(),this.scheduleManualRefresh=te,this._manifestUrls=e,this._pipelines=t.manifest,this._transportName=t.transportName,this._settings=r,this._canceller=new U,this._isStarted=!1,this._isRefreshPending=!1,this._consecutiveUnsafeMode=0,this._prioritizedContentUrl=null}dispose(){this._canceller.cancel(),this.removeEventListener()}start(){if(this._isStarted)return;this._isStarted=!0;let e,t=this._settings.initialManifest;t instanceof Jn?e=Promise.resolve({manifest:t}):t!==void 0?e=this.parse(t,{previousManifest:null,unsafeMode:!1},void 0):e=this._fetchManifest(void 0).then(r=>r.parse({previousManifest:null,unsafeMode:!1})),e.then(r=>{this.trigger("manifestReady",r.manifest),this._canceller.isUsed()||this._recursivelyRefreshManifest(r.manifest,r)}).catch(r=>this._onFatalError(r))}updateContentUrls(e,t){var r;this._prioritizedContentUrl=(r=e==null?void 0:e[0])!=null?r:void 0,t&&this.scheduleManualRefresh({enablePartialRefresh:!1,delay:0,canUseUnsafeMode:!1})}async _fetchManifest(e){var u;let t=this._canceller.signal,r=this._settings,i=this._transportName,o=this._pipelines,a=e!=null?e:(u=this._manifestUrls)==null?void 0:u[0],s=this._getBackoffSetting(c=>{this.trigger("warning",mt(c))});try{let c=await d(a);return{parse:l=>this._parseLoadedManifest(c,l,a)}}catch(c){throw mt(c)}function d(c){var g;let{loadManifest:l}=o,f=r.requestTimeout===void 0?O.getCurrent().DEFAULT_REQUEST_TIMEOUT:r.requestTimeout,p=r.connectionTimeout===void 0?O.getCurrent().DEFAULT_CONNECTION_TIMEOUT:r.connectionTimeout;f<0&&(f=void 0),p<0&&(p=void 0);let h={timeout:f,connectionTimeout:p,cmcdPayload:(g=r.cmcdDataBuilder)==null?void 0:g.getCmcdDataForManifest(i)};return ad(()=>l(c,h,t),s,t)}}parse(e,t,r){return this._parseLoadedManifest({responseData:e,size:void 0,requestDuration:void 0},t,r)}async _parseLoadedManifest(e,t,r){var I;let i=z(),o=this._canceller.signal,a=this.trigger.bind(this),{sendingTime:s,receivedTime:d}=e,u=this._getBackoffSetting(g=>{this.trigger("warning",mt(g))}),c=r!=null?r:(I=this._manifestUrls)==null?void 0:I[0],l={externalClockOffset:t.externalClockOffset,unsafeMode:t.unsafeMode,previousManifest:t.previousManifest,originalUrl:c};try{let g=this._pipelines.parseManifest(e,l,p,o,f);if(yh(g)){let{manifest:b}=await g;return h(b)}else return h(g.manifest)}catch(g){throw Me(g,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"})}async function f(g){try{return await ad(g,u,o)}catch(b){throw mt(b)}}function p(g){for(let b of g){if(o.isCancelled())return;let T=Me(b,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown error when parsing the Manifest"});a("warning",T)}}function h(g){let b=z()-i;return m.info("MF",`Manifest parsed in ${b}ms`),{manifest:g,sendingTime:s,receivedTime:d,parsingTime:b}}}_getBackoffSetting(e){let{DEFAULT_MAX_MANIFEST_REQUEST_RETRY:t,INITIAL_BACKOFF_DELAY_BASE:r,MAX_BACKOFF_DELAY_BASE:i}=O.getCurrent(),{lowLatencyMode:o,maxRetry:a}=this._settings,s=o?r.LOW_LATENCY:r.REGULAR,d=o?i.LOW_LATENCY:i.REGULAR,u=a!=null?a:t;return{onRetry:e,baseDelay:s,maxDelay:d,maxRetry:u}}_recursivelyRefreshManifest(e,{sendingTime:t,parsingTime:r,updatingTime:i}){let{MAX_CONSECUTIVE_MANIFEST_PARSING_IN_UNSAFE_MODE:o,MIN_MANIFEST_PARSING_TIME_TO_ENTER_UNSAFE_MODE:a}=O.getCurrent(),s=r!==void 0?r+(i!=null?i:0):void 0,d=!1;this._consecutiveUnsafeMode>0?d=this._consecutiveUnsafeMode<o:s!==void 0&&(d=s>=a);let u=t===void 0?0:z()-t,c=Math.max(this._settings.minimumManifestUpdateInterval-u,0),l=new U;if(l.linkToSignal(this._canceller.signal),this.scheduleManualRefresh=f=>{let{enablePartialRefresh:p,delay:h,canUseUnsafeMode:I}=f,g=I&&d,b=t===void 0?0:z()-t,T=Math.max(this._settings.minimumManifestUpdateInterval-b,0),v=setTimeout(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:p,unsafeMode:g})},Math.max((h!=null?h:0)-b,T));l.signal.register(()=>{clearTimeout(v)})},e.expired!==null){let f=setTimeout(()=>{var p;(p=e.expired)==null||p.then(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},te)},c);l.signal.register(()=>{clearTimeout(f)})}if(e.lifetime!==void 0&&e.lifetime>=0){let f=e.lifetime*1e3-u,p;s===void 0?p=f:e.lifetime<3&&s>=100?(p=Math.min(Math.max(3e3-u,Math.max(f,0)+s),f*6),m.info("MF","Manifest update rythm is too frequent. Postponing next request.",{regularRefreshDelay:f,newRefreshDelay:p})):s>=e.lifetime*1e3/10?(p=Math.min(Math.max(f,0)+s,f*6),m.info("MF","Manifest took too long to parse. Postponing next request",{regularRefreshDelay:f,newRefreshDelay:p})):p=f;let h=setTimeout(()=>{l.cancel(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:d})},Math.max(p,c));l.signal.register(()=>{clearTimeout(h)})}}_triggerNextManifestRefresh(e,{enablePartialRefresh:t,unsafeMode:r}){let i=e.updateUrl,o,a;this._prioritizedContentUrl!==null?(o=!0,a=this._prioritizedContentUrl,this._prioritizedContentUrl=null):(o=!t||i===void 0,a=o?e.getUrls()[0]:i);let s=e.clockOffset;r?(this._consecutiveUnsafeMode+=1,m.info("MF",'Refreshing the Manifest in "unsafeMode" for the '+String(this._consecutiveUnsafeMode)+" consecutive time.")):this._consecutiveUnsafeMode>0&&(m.info("MF",'Not parsing the Manifest in "unsafeMode" anymore after '+String(this._consecutiveUnsafeMode)+" consecutive times."),this._consecutiveUnsafeMode=0),!this._isRefreshPending&&(this._isRefreshPending=!0,this._fetchManifest(a).then(d=>d.parse({externalClockOffset:s,previousManifest:e,unsafeMode:r})).then(d=>{this._isRefreshPending=!1;let{manifest:u,sendingTime:c,parsingTime:l}=d,f=z();if(o)e.replace(u);else try{e.update(u)}catch(h){let I=h instanceof Error?h.message:"unknown error";m.warn("MF",`Attempt to update Manifest failed: ${I}`,"Re-downloading the Manifest fully");let{FAILED_PARTIAL_UPDATE_MANIFEST_REFRESH_DELAY:g}=O.getCurrent(),b=c===void 0?0:z()-c,T=Math.max(this._settings.minimumManifestUpdateInterval-b,0),v=te,_=setTimeout(()=>{v(),this._triggerNextManifestRefresh(e,{enablePartialRefresh:!1,unsafeMode:!1})},Math.max(g-b,T));v=this._canceller.signal.register(()=>{clearTimeout(_)});return}let p=z()-f;this._recursivelyRefreshManifest(e,{sendingTime:c,parsingTime:l,updatingTime:p})}).catch(d=>{this._isRefreshPending=!1,this._onFatalError(d)}))}_onFatalError(e){this._canceller.isUsed()||(this.trigger("error",e),this.dispose())}};function yh(n){return n instanceof Promise}var sd=li;function dd(n,e){let t=new WeakMap;return{createRequest(r,i,o,a){let s=u=>e(r,o,u),d=n.create(s,i,o,a);return t.set(d,s),d},updatePriority(r,i){let o=t.get(r);if(o===void 0){m.warn("SF","Cannot update the priority of a request: task not found.");return}n.updatePriority(o,i)}}}var ud=class{constructor(){this._cache=new WeakMap}add({representation:e,segment:t},r){t.isInit&&this._cache.set(e,r)}get({representation:e,segment:t}){if(t.isInit){let r=this._cache.get(e);if(r!==void 0)return r}return null}},vf=ud;var Ih=rt();function ld({bufferType:n,pipeline:e,cdnPrioritizer:t,cmcdDataBuilder:r,eventListeners:i,requestOptions:o}){let a;o.connectionTimeout===void 0||o.connectionTimeout<0?a=void 0:a=o.connectionTimeout;let s={timeout:o.requestTimeout<0?void 0:o.requestTimeout,connectionTimeout:a,cmcdPayload:void 0},d=$(["audio","video"],n)?new vf:void 0,{loadSegment:u,parseSegment:c}=e;return async function(f,p,h){var q,X,W;let{segment:I,adaptation:g,representation:b,manifest:T,period:v}=f,_=bt(f),R=Ih(),k,x=[],P=0,M=!1,L={segment:I,type:g.type,language:g.language,isLive:T.isLive,periodStart:v.start,periodEnd:v.end,mimeType:b.mimeType,codecs:b.codecs[0],manifestPublishTime:T.publishTime},F={onProgress(H){var G;k===void 0&&H.totalSize!==void 0&&H.size<H.totalSize&&((G=i.onProgress)==null||G.call(i,{duration:H.duration,size:H.size,totalSize:H.totalSize,timestamp:z(),id:R}))},onNewChunk(H){p.onChunk(C(H,!0))}},D=d!==void 0?d.get(f):null;if(D!==null)return m.debug("SF","Found wanted segment in cache",_),p.onChunk(C(D,!1)),Promise.resolve();m.debug("SF","Beginning request",_),(q=i.onRequestBegin)==null||q.call(i,{requestTimestamp:z(),id:R,content:f}),h.register(B);try{let H=await ui(f.representation.cdnMetadata,t,A,Y({onRetry:N},o),h);if(H.resultType==="segment-loaded"){let G=H.resultData.responseData;d!==void 0&&d.add(f,H.resultData.responseData),p.onChunk(C(G,!1))}else H.resultType==="segment-created"&&p.onChunk(C(H.resultData,!1));m.debug("SF","Segment request ended with success",_),p.onAllChunksReceived(),H.resultType!=="segment-created"?(k=H.resultData,K()):k=null,h.isCancelled()||(X=i.onRequestEnd)==null||X.call(i,{id:R}),h.deregister(B)}catch(H){throw h.deregister(B),k=null,H instanceof we?(m.debug("SF","Segment request aborted",_),H):(m.debug("SF","Segment request failed",_),(W=i.onRequestEnd)==null||W.call(i,{id:R}),mt(H))}function B(){var H;k===void 0&&(m.debug("SF","Segment request cancelled",_),k=null,(H=i.onRequestEnd)==null||H.call(i,{id:R}))}function A(H){return s.cmcdPayload=r==null?void 0:r.getCmcdDataForSegmentRequest(f),u(H,L,s,h,F)}function C(H,G){x.push(!1);let ie=x.length-1;return function(fe){let Re={data:H,isChunked:G};try{let ge=c(Re,L,fe);return x[ie]||(P=P!==void 0&&ge.segmentType==="media"&&ge.chunkInfos!==null&&ge.chunkInfos.duration!==void 0?P+ge.chunkInfos.duration:void 0,x[ie]=!0,K()),ge}catch(ge){throw Me(ge,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown parsing error"})}}}function N(H){p.onRetry(mt(H))}function K(){var H;M||!E(k)&&k.size!==void 0&&k.requestDuration!==void 0&&x.length>0&&x.every(G=>G)&&(M=!0,(H=i.onMetrics)==null||H.call(i,{size:k.size,requestDuration:k.requestDuration,content:f,segmentDuration:P}))}}}function Rf({maxRetry:n,lowLatencyMode:e,requestTimeout:t,connectionTimeout:r}){let{DEFAULT_MAX_REQUESTS_RETRY_ON_ERROR:i,DEFAULT_REQUEST_TIMEOUT:o,DEFAULT_CONNECTION_TIMEOUT:a,INITIAL_BACKOFF_DELAY_BASE:s,MAX_BACKOFF_DELAY_BASE:d}=O.getCurrent();return{maxRetry:n!=null?n:i,baseDelay:e?s.LOW_LATENCY:s.REGULAR,maxDelay:e?d.LOW_LATENCY:d.REGULAR,requestTimeout:t===void 0?o:t,connectionTimeout:r===void 0?a:r}}var ci=class extends se{constructor(e,t){super(),this._segmentFetcher=e,this._currentContentInfo=null,this.isMediaSegmentQueueInterrupted=t}getRequestedInitSegment(){var e,t,r;return(r=(t=(e=this._currentContentInfo)==null?void 0:e.initSegmentRequest)==null?void 0:t.segment)!=null?r:null}getRequestedMediaSegment(){var e,t,r;return(r=(t=(e=this._currentContentInfo)==null?void 0:e.mediaSegmentRequest)==null?void 0:t.segment)!=null?r:null}resetForContent(e,t){var a;(a=this._currentContentInfo)==null||a.currentCanceller.cancel();let r=new j({initSegment:null,segmentQueue:[]}),i=new U;i.signal.register(()=>{r.finish()});let o={content:e,downloadQueue:r,initSegmentInfoRef:t?new j(void 0):new j(null),currentCanceller:i,initSegmentRequest:null,mediaSegmentRequest:null,mediaSegmentAwaitingInitMetadata:null};return this._currentContentInfo=o,this.isMediaSegmentQueueInterrupted.onUpdate(s=>{s||(m.debug("SF","Media segment can be loaded again, restarting queue.",{type:e.adaptation.type}),this._restartMediaSegmentDownloadingQueue(o))},{clearSignal:i.signal}),r.onUpdate(s=>{let{segmentQueue:d}=s;if(d.length>0&&d[0].segment.id===o.mediaSegmentAwaitingInitMetadata)return;let u=o.mediaSegmentRequest;if(d.length===0){if(u===null)return;m.debug("SF","no more media segment to request. Cancelling queue.",{type:e.adaptation.type}),this._restartMediaSegmentDownloadingQueue(o);return}else if(u===null){m.debug("SF","Media segments now need to be requested. Starting queue.",{type:e.adaptation.type,queueLength:d.length}),this._restartMediaSegmentDownloadingQueue(o);return}else{let c=d[0];if(u.segment.id!==c.segment.id){m.debug("SF","Next media segment changed, cancelling previous",{type:e.adaptation.type}),this._restartMediaSegmentDownloadingQueue(o);return}u.priority!==c.priority&&(m.debug("SF","Priority of next media segment changed, updating",{type:e.adaptation.type,prevPriority:u.priority,newPriority:c.priority}),this._segmentFetcher.updatePriority(u.request,c.priority));return}},{emitCurrentValue:!0,clearSignal:i.signal}),r.onUpdate(s=>{var u;let d=o.initSegmentRequest;if(s.initSegment!==null&&d!==null){s.initSegment.priority!==d.priority&&this._segmentFetcher.updatePriority(d.request,s.initSegment.priority);return}else if(((u=s.initSegment)==null?void 0:u.segment.id)===(d==null?void 0:d.segment.id))return;s.initSegment===null&&m.debug("SF","no more init segment to request. Cancelling queue.",{type:e.adaptation.type}),this._restartInitSegmentDownloadingQueue(o,s.initSegment)},{emitCurrentValue:!0,clearSignal:i.signal}),r}stop(){var e;(e=this._currentContentInfo)==null||e.currentCanceller.cancel(),this._currentContentInfo=null}_restartMediaSegmentDownloadingQueue(e){e.mediaSegmentRequest!==null&&e.mediaSegmentRequest.canceller.cancel();let{downloadQueue:t,content:r,initSegmentInfoRef:i,currentCanceller:o}=e,a=()=>{var v;if(this.isMediaSegmentQueueInterrupted.getValue()){m.debug("SF","Segment fetching postponed because it cannot stream now.");return}let{segmentQueue:s}=t.getValue(),d=s[0];if(o!==null&&o.isUsed()){e.mediaSegmentRequest=null;return}if(d===void 0){e.mediaSegmentRequest=null,this.trigger("emptyQueue",null);return}let u=new U,c=o===null?te:u.linkToSignal(o.signal),{segment:l,priority:f}=d,p=Y({segment:l,nextSegment:(v=s[1])==null?void 0:v.segment},r),h=!1,I=!1;u.signal.register(()=>{e.mediaSegmentRequest=null,!h&&(e.mediaSegmentAwaitingInitMetadata===l.id&&(e.mediaSegmentAwaitingInitMetadata=null),h=!0,I=!1)});let g=_=>{ne(_.segmentType==="media","Should have loaded a media segment."),this.trigger("parsedMediaSegment",Y({},_,{segment:l}))},b=()=>{let _=t.getValue().segmentQueue;if(_.length===0){h=!0,this.trigger("emptyQueue",null);return}else _[0].segment.id===l.id&&_.shift();h=!0,a()},T=this._segmentFetcher.createRequest(p,f,{onRetry:_=>{this.trigger("requestRetry",{segment:l,error:_})},beforeInterrupted(){m.info("SF","segment request interrupted temporarly.",{segmentId:l.id,segmentTime:l.time})},onChunk:_=>{let R=i.getValue();R!==void 0?g(_(R!=null?R:void 0)):(I=!0,i.waitUntilDefined(k=>{g(_(k!=null?k:void 0))},{clearSignal:u.signal}))},onAllChunksReceived:()=>{I?(e.mediaSegmentAwaitingInitMetadata=l.id,i.waitUntilDefined(()=>{e.mediaSegmentAwaitingInitMetadata=null,I=!1,this.trigger("fullyLoadedSegment",l)},{clearSignal:u.signal})):this.trigger("fullyLoadedSegment",l)},beforeEnded:()=>{c(),e.mediaSegmentRequest=null,I?i.waitUntilDefined(b,{clearSignal:u.signal}):b()}},u.signal);T.catch(_=>{c(),h||(h=!0,this.stop(),this.trigger("error",_))}),e.mediaSegmentRequest={segment:l,priority:f,request:T,canceller:u}};a()}_restartInitSegmentDownloadingQueue(e,t){let{content:r,initSegmentInfoRef:i}=e;if(e.initSegmentRequest!==null&&e.initSegmentRequest.canceller.cancel(),t===null)return;let o=new U,a=e.currentCanceller===null?te:o.linkToSignal(e.currentCanceller.signal),{segment:s,priority:d}=t,u=Y({segment:s,nextSegment:void 0},r),c=!1,l=this._segmentFetcher.createRequest(u,d,{onRetry:f=>{this.trigger("requestRetry",{segment:s,error:f})},beforeInterrupted:()=>{m.info("SF","init segment request interrupted temporarly.",{segmentId:s.id})},beforeEnded:()=>{a(),e.initSegmentRequest=null,c=!0},onChunk:f=>{var h;let p=f(void 0);ne(p.segmentType==="init","Should have loaded an init segment."),this.trigger("parsedInitSegment",Y({},p,{segment:s})),p.segmentType==="init"&&i.setValue((h=p.initTimescale)!=null?h:null)},onAllChunksReceived:()=>{this.trigger("fullyLoadedSegment",s)}},o.signal);l.catch(f=>{a(),c||(c=!0,this.stop(),this.trigger("error",f))}),o.signal.register(()=>{e.initSegmentRequest=null,!c&&(c=!0)}),e.initSegmentRequest={segment:s,priority:d,request:l,canceller:o}}};var mi=class{constructor({prioritySteps:e}){if(this._minPendingPriority=null,this._waitingQueue=[],this._pendingTasks=[],this._prioritySteps=e,this._prioritySteps.high>=this._prioritySteps.low)throw new Error("The max high level priority should be given a lowerpriority number than the min low priority.")}create(e,t,r,i){let o;return ct(i,(a,s)=>(o={hasEnded:!1,priority:t,trigger:()=>{if(o.hasEnded)return;let u=()=>{p(),this._endTask(o)},c=h=>{r.beforeEnded(),u(),a(h)},l=h=>{u(),s(h)},f=new U,p=f.linkToSignal(i);o.interrupter=f,f.signal.register(()=>{o.interrupter=null,i.isCancelled()||r.beforeInterrupted()}),this._minPendingPriority=this._minPendingPriority===null?o.priority:Math.min(this._minPendingPriority,o.priority),this._pendingTasks.push(o),o.taskFn(f.signal).then(c).catch(h=>{!i.isCancelled()&&f.isUsed()&&h instanceof we||l(h)})},taskFn:e,interrupter:null},this._canBeStartedNow(o)?(o.trigger(),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()):this._waitingQueue.push(o),()=>this._endTask(o)))}_endTask(e){e.hasEnded=!0;let t=fi(e.taskFn,this._waitingQueue);if(t>=0)this._waitingQueue.splice(t,1);else{let r=fi(e.taskFn,this._pendingTasks);if(r<0)return;this._pendingTasks.splice(r,1),this._pendingTasks.length>0?this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))):this._minPendingPriority=null,this._loopThroughWaitingQueue()}}updatePriority(e,t){let r=fi(e,this._waitingQueue);if(r>=0){let s=this._waitingQueue[r];if(s.priority===t||(s.priority=t,!this._canBeStartedNow(s)))return;this._findAndRunWaitingQueueTask(r),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks();return}let i=fi(e,this._pendingTasks);if(i<0){m.warn("SF","request to update the priority of a non-existent task");return}let o=this._pendingTasks[i];if(o.priority===t)return;let a=o.priority;o.priority=t,this._minPendingPriority===null||t<this._minPendingPriority?this._minPendingPriority=t:this._minPendingPriority===a&&(this._pendingTasks.length===1?this._minPendingPriority=t:this._minPendingPriority=Math.min(...this._pendingTasks.map(s=>s.priority)),this._loopThroughWaitingQueue()),this._isRunningHighPriorityTasks()&&this._interruptCancellableTasks()}_loopThroughWaitingQueue(){let e=this._waitingQueue.reduce((t,r)=>t===null||t>r.priority?r.priority:t,null);if(!(e===null||this._minPendingPriority!==null&&this._minPendingPriority<e))for(let t=0;t<this._waitingQueue.length;t++){let r=this._minPendingPriority===null?e:Math.min(this._minPendingPriority,e);this._waitingQueue[t].priority<=r&&(this._findAndRunWaitingQueueTask(t),t--)}}_interruptCancellableTasks(){for(let e of this._pendingTasks)if(e.priority>=this._prioritySteps.low)return this._interruptPendingTask(e),this._interruptCancellableTasks()}_findAndRunWaitingQueueTask(e){return e>=this._waitingQueue.length||e<0?(m.warn("SF","Tried to start a non existing task"),!1):(this._waitingQueue.splice(e,1)[0].trigger(),!0)}_interruptPendingTask(e){var r;let t=fi(e.taskFn,this._pendingTasks);if(t<0){m.warn("SF","Interrupting a non-existent pending task. Aborting...");return}this._pendingTasks.splice(t,1),this._waitingQueue.push(e),this._pendingTasks.length===0?this._minPendingPriority=null:this._minPendingPriority===e.priority&&(this._minPendingPriority=Math.min(...this._pendingTasks.map(i=>i.priority))),(r=e.interrupter)==null||r.cancel()}_canBeStartedNow(e){return this._minPendingPriority===null||e.priority<=this._minPendingPriority}_isRunningHighPriorityTasks(){return this._minPendingPriority!==null&&this._minPendingPriority<=this._prioritySteps.high}};function fi(n,e){return Ie(e,t=>t.taskFn===n)}var pi=class{constructor(e,t,r,i){let{MIN_CANCELABLE_PRIORITY:o,MAX_HIGH_PRIORITY_LEVEL:a}=O.getCurrent();this._transport=e,this._prioritizer=new mi({prioritySteps:{high:a,low:o}}),this._cdnPrioritizer=t,this._backoffOptions=i,this._cmcdDataBuilder=r}createSegmentQueue(e,t,r){let i=Rf(this._backoffOptions),o=this._transport[e],a=ld({bufferType:e,pipeline:o,cdnPrioritizer:this._cdnPrioritizer,cmcdDataBuilder:this._cmcdDataBuilder,eventListeners:t,requestOptions:i}),s=dd(this._prioritizer,a);return new ci(s,r)}};var cd=pi;function fd(n,e){let{loadThumbnail:t}=n,r=[];return async function(o,a){a.register(T);let s,d=Q(r,({thumbnailContext:R})=>R.period.id===o.period.id&&R.track.id===o.track.id&&R.segment.id===o.segment.id);if(d!==void 0){m.debug("Thumbnails","Requesting same thumbnail than the pending one",{time:o.segment.time}),s=d,s.referenceCount++;let R;try{R=await s.promise}catch(k){throw a.deregister(T),k}return a.deregister(T),R}let{segment:u,track:c}=o,l=bh({}),f;l.connectionTimeout===void 0||l.connectionTimeout<0?f=void 0:f=l.connectionTimeout;let p={timeout:l.requestTimeout<0?void 0:l.requestTimeout,connectionTimeout:f,cmcdPayload:void 0},h=new U,I=b();s={thumbnailContext:o,promise:I,referenceCount:1},r.push(s);let g=()=>{let R=r.indexOf(s);R>=0&&r.splice(R,1)};try{let R=await I;return g(),R}catch(R){throw g(),R}async function b(){m.debug("Thumbnails","Beginning thumbnail request",{time:u.time});let R;try{if(R=await ui(c.cdnMetadata,e,v,Y({onRetry:_},l),h.signal),a.isCancelled())return Promise.reject(a.cancellationError);m.debug("Thumbnails","Thumbnail request ended with success",{time:u.time}),a.deregister(T)}catch(k){throw a.deregister(T),k instanceof we?(m.debug("Thumbnails","Thumbnail request aborted",{time:u.time}),k):(m.debug("Thumbnails","Thumbnail request failed",{time:u.time}),mt(k))}try{return n.parseThumbnail(R.responseData,{thumbnail:u,thumbnailTrack:c})}catch(k){throw Me(k,{defaultCode:"PIPELINE_PARSE_ERROR",defaultReason:"Unknown parsing error"})}}function T(){m.debug("Thumbnails","Thumbnail request cancelled",{time:u.time});let R=r.indexOf(s);R<0||(r[R].referenceCount--,r[R].referenceCount<=0&&(h.cancel(),r.splice(R,1)))}function v(R){return t(R,u,p,a)}function _(R){let k=mt(R);m.warn("Thumbnails","Thumbnail request retry ",{time:u.time},k)}}}function bh({maxRetry:n,requestTimeout:e,connectionTimeout:t}){let{DEFAULT_MAX_THUMBNAIL_REQUESTS_RETRY_ON_ERROR:r,DEFAULT_THUMBNAIL_REQUEST_TIMEOUT:i,DEFAULT_THUMBNAIL_CONNECTION_TIMEOUT:o,INITIAL_BACKOFF_DELAY_BASE:a,MAX_BACKOFF_DELAY_BASE:s}=O.getCurrent();return{maxRetry:n!=null?n:r,baseDelay:a.REGULAR,maxDelay:s.REGULAR,requestTimeout:e===void 0?i:e,connectionTimeout:t===void 0?o:t}}var md=fd;var Pn=class{constructor(e){this._array=[],this._sortingFn=e}add(...e){e.sort(this._sortingFn);let t=0;for(let r=0;r<e.length;r++){let i=e[r],o=!1;for(;!o&&t<this._array.length;)this._sortingFn(i,this._array[t])<0?(this._array.splice(t,0,i),o=!0):t++;o||this._array.push(i)}}length(){return this._array.length}get(e){if(e<0||e>=this._array.length)throw new Error("Invalid index.");return this._array[e]}toArray(){return this._array.slice()}findFirst(e){return Q(this._array,e)}has(e){return $(this._array,e)}removeElement(e){let t=this._array.indexOf(e);if(t>=0)return this._array.splice(t,1),t}head(){return this._array[0]}last(){return this._array[this._array.length-1]}shift(){return this._array.shift()}pop(){return this._array.pop()}};var gi=class extends se{constructor(e,t,r){super(),this._canceller=new U,this._manifest=e,this._activeStreams=new Map,this._allBufferTypes=r,this._lastCurrentPeriodId=null;let i=new pd(e);this._maximumPositionCalculator=i;let o=this._canceller.signal;It(()=>{t.listen(({position:a})=>{let s=a.getWanted();if(s<e.getMinimumSafePosition()){let d=new re("MEDIA_TIME_BEFORE_MANIFEST","The current position is behind the earliest time announced in the Manifest.");this.trigger("warning",d)}else if(s>i.getMaximumAvailablePosition()){let d=new re("MEDIA_TIME_AFTER_MANIFEST","The current position is after the latest time announced in the Manifest.");this.trigger("warning",d)}},{includeLastObservation:!1,clearSignal:o})}),e.addEventListener("manifestUpdate",()=>{this.trigger("endingPositionChange",this._getManifestEndTime()),!o.isCancelled()&&this._checkEndOfStream()},o)}getCurrentEndingTime(){return this._getManifestEndTime()}onAdaptationChange(e,t,r){if(this._manifest.isLastPeriodKnown){let i=this._manifest.periods[this._manifest.periods.length-1];if(t.id===(i==null?void 0:i.id)&&(e==="audio"||e==="video")){e==="audio"?this._maximumPositionCalculator.updateLastAudioAdaptation(r):this._maximumPositionCalculator.updateLastVideoAdaptation(r);let o=this._maximumPositionCalculator.getEndingPosition(),a=o!==void 0?{isEnd:!0,endingPosition:o}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()};this.trigger("endingPositionChange",a)}}this._canceller.isUsed()||r===null&&this._addActivelyLoadedPeriod(t,e)}onRepresentationChange(e,t){this._addActivelyLoadedPeriod(t,e)}onPeriodCleared(e,t){this._removeActivelyLoadedPeriod(t,e)}onLastSegmentFinishedLoading(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod||(t.hasFinishedLoadingLastPeriod=!0,this._checkEndOfStream())}onLastSegmentLoadingResume(e){let t=this._lazilyCreateActiveStreamInfo(e);t.hasFinishedLoadingLastPeriod&&(t.hasFinishedLoadingLastPeriod=!1,this._checkEndOfStream())}dispose(){this.removeEventListener(),this._canceller.cancel()}_addActivelyLoadedPeriod(e,t){let r=this._lazilyCreateActiveStreamInfo(t);r.activePeriods.has(e)||(r.activePeriods.add(e),this._checkCurrentPeriod())}_removeActivelyLoadedPeriod(e,t){let r=this._activeStreams.get(t);r!==void 0&&r.activePeriods.has(e)&&(r.activePeriods.removeElement(e),this._checkCurrentPeriod())}_checkCurrentPeriod(){if(this._allBufferTypes.length===0)return;let e=this._activeStreams.get(this._allBufferTypes[0]);if(e!==void 0)for(let t of e.activePeriods.toArray()){let r=!0;for(let i of this._allBufferTypes){let o=this._activeStreams.get(i);if(o===void 0)return;if(!o.activePeriods.toArray().some(d=>d.id===t.id)){r=!1;break}}if(r){this._lastCurrentPeriodId!==t.id&&(this._lastCurrentPeriodId=t.id,this.trigger("periodChange",t));return}}}_getManifestEndTime(){let e=this._maximumPositionCalculator.getEndingPosition();return e!==void 0?{isEnd:!0,endingPosition:e}:{isEnd:!1,endingPosition:this._maximumPositionCalculator.getMaximumAvailablePosition()}}_lazilyCreateActiveStreamInfo(e){let t=this._activeStreams.get(e);return t===void 0&&(t={activePeriods:new Pn((r,i)=>r.start-i.start),hasFinishedLoadingLastPeriod:!1},this._activeStreams.set(e,t)),t}_checkEndOfStream(){if(!this._manifest.isLastPeriodKnown)return;this._allBufferTypes.every(t=>{let r=this._activeStreams.get(t);return r!==void 0&&r.hasFinishedLoadingLastPeriod})?this.trigger("endOfStream",null):this.trigger("resumeStream",null)}},pd=class{constructor(e){this._manifest=e,this._lastAudioAdaptation=void 0,this._lastVideoAdaptation=void 0}updateLastAudioAdaptation(e){this._lastAudioAdaptation=e}updateLastVideoAdaptation(e){this._lastVideoAdaptation=e}getMaximumAvailablePosition(){if(this._manifest.isDynamic)return this._manifest.getMaximumSafePosition();if(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)return this._manifest.getMaximumSafePosition();if(this._lastAudioAdaptation===null){if(this._lastVideoAdaptation===null)return this._manifest.getMaximumSafePosition();{let e=la(this._lastVideoAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}}else if(this._lastVideoAdaptation===null){let e=la(this._lastAudioAdaptation);return typeof e!="number"?this._manifest.getMaximumSafePosition():e}else{let e=la(this._lastAudioAdaptation),t=la(this._lastVideoAdaptation);return typeof e!="number"||typeof t!="number"?this._manifest.getMaximumSafePosition():Math.min(e,t)}}getEndingPosition(){var e,t;if(!this._manifest.isDynamic)return this.getMaximumAvailablePosition();if(!(this._lastVideoAdaptation===void 0||this._lastAudioAdaptation===void 0)){if(this._lastAudioAdaptation===null)return this._lastVideoAdaptation===null?void 0:(e=ca(this._lastVideoAdaptation))!=null?e:void 0;if(this._lastVideoAdaptation===null)return(t=ca(this._lastAudioAdaptation))!=null?t:void 0;{let r=ca(this._lastAudioAdaptation),i=ca(this._lastVideoAdaptation);return typeof r!="number"||typeof i!="number"?void 0:Math.min(r,i)}}}};function la(n){let{representations:e}=n,t=null,r;for(let i of e)if(i.index!==r){r=i.index;let o=i.index.getLastAvailablePosition();if(o===void 0)return;o!==null&&(t=E(t)?o:Math.min(t,o))}return t}function ca(n){let{representations:e}=n,t=null,r;for(let i of e)if(i.index!==r){r=i.index;let o=i.index.getEnd();if(o===void 0)return;o!==null&&(t=E(t)?o:Math.min(t,o))}return t}function gd(n,e,t,r,i,o){o.register(()=>{e.interruptDurationSetting()});let a=new gi(n,t,r.getBufferTypes());o.register(()=>{a.dispose()}),a.addEventListener("warning",d=>i.onWarning(d)),a.addEventListener("periodChange",d=>i.onPeriodChanged(d)),a.addEventListener("endingPositionChange",d=>{e.setDuration(d.endingPosition,d.isEnd)}),a.addEventListener("endOfStream",()=>{m.debug("mse","Start applying end-of-stream order."),e.maintainEndOfStream()}),a.addEventListener("resumeStream",()=>{e.stopEndOfStream()});let s=a.getCurrentEndingTime();return e.setDuration(s.endingPosition,s.isEnd),a}var kf=6,hd=4e3,fa=6e3,Sh=6e4,hi=class{constructor(e){this._segmentSinksStore=e,this._decipherabilityFreezeStartingTimestamp=null,this._ignoreFreezeUntil=null,this._lastFlushAttempt=null,this._lastSegmentInfo={audio:[],video:[]}}onNewObservation(e){var g,b;let t=z();if(this._addPositionToHistory(e,t),this._ignoreFreezeUntil!==null&&t<this._ignoreFreezeUntil)return null;this._ignoreFreezeUntil=null;let{UNFREEZING_SEEK_DELAY:r,UNFREEZING_DELTA_POSITION:i,FREEZING_FLUSH_FAILURE_DELAY:o}=O.getCurrent(),{readyState:a,rebuffering:s,freezing:d,fullyLoaded:u}=e,c=e.position.getPolled(),l=Pf(e.bufferGap);if(!(d!==null||a===1&&(l>=kf||u)))return this._decipherabilityFreezeStartingTimestamp=null,null;let p=(b=(g=d==null?void 0:d.timestamp)!=null?g:s==null?void 0:s.timestamp)!=null?b:null;if(m.info("Freeze","Freeze detected",{freezeStart:p,timeFrozen:t-(p!=null?p:t)}),this._lastFlushAttempt!==null&&t-this._lastFlushAttempt.timestamp<o.MAXIMUM&&t-this._lastFlushAttempt.timestamp>=o.MINIMUM&&Math.abs(c-this._lastFlushAttempt.position)<o.POSITION_DELTA){let T=this._getStrategyIfFlushingFails(c);return this._decipherabilityFreezeStartingTimestamp=null,this._ignoreFreezeUntil=t+fa,T}let I=this._checkForDecipherabilityRelatedFreeze(e,t);return I!==null?I:p!==null&&t-p>r?(this._lastFlushAttempt={timestamp:t,position:c+i},m.debug("Freeze","Trying to flush to un-freeze"),this._decipherabilityFreezeStartingTimestamp=null,this._ignoreFreezeUntil=t+fa,{type:"flush",value:{relativeSeek:i}}):null}_checkForDecipherabilityRelatedFreeze(e,t){let{readyState:r,rebuffering:i,freezing:o,fullyLoaded:a}=e,s=Pf(e.bufferGap),d=i!==null&&t-i.timestamp>hd,{hasUndecipherableData:u,hasEncryptedData:c}=Th(this._segmentSinksStore);if(u===!0)return m.warn("Freeze","we have undecipherable segments left in the buffer, reloading"),this._decipherabilityFreezeStartingTimestamp=null,this._ignoreFreezeUntil=t+fa,{type:"reload",value:null};let l=o!==null&&t-o.timestamp>hd;return(d||l)&&(s>=kf||a)&&r<=1?this._decipherabilityFreezeStartingTimestamp===null&&(m.debug("Freeze","Start of a potential decipherability freeze detected"),this._decipherabilityFreezeStartingTimestamp=t):this._decipherabilityFreezeStartingTimestamp=null,this._decipherabilityFreezeStartingTimestamp!==null&&z()-this._decipherabilityFreezeStartingTimestamp>hd&&c&&u===!1?(m.warn("Freeze","we are frozen despite only having decipherable segments left in the buffer, reloading"),this._decipherabilityFreezeStartingTimestamp=null,this._ignoreFreezeUntil=t+fa,{type:"reload",value:null}):null}_getStrategyIfFlushingFails(e){m.warn("Freeze","A recent flush seemed to have no effect on freeze, checking for transitions");let t=[];for(let r of["audio","video"]){let i=this._lastSegmentInfo[r];if(i.length===0)continue;let o=i[i.length-1];if(o.segment===null)continue;let a=o.segment,s;for(let d=i.length-2;d>=0;d--){let u=i[d];if(u.segment===null){s=u;break}else if(u.segment.infos.representation.uniqueId!==a.infos.representation.uniqueId&&o.timestamp-u.timestamp<5e3){s=u;break}else u.segment.start===a.start&&e-u.position<3e3&&(o=u)}if(s===void 0||s.segment===null)m.debug("Freeze","Freeze when beginning to play a content, try avoiding this quality"),t.push({adaptation:a.infos.adaptation,period:a.infos.period,representation:a.infos.representation});else{if(a.infos.period.id!==s.segment.infos.period.id)return m.debug("Freeze","Freeze when switching Period, reloading"),{type:"reload",value:null};a.infos.representation.uniqueId!==s.segment.infos.representation.uniqueId&&(m.warn("Freeze","Freeze when switching Representation, avoiding",{bitrate:a.infos.representation.bitrate}),t.push({adaptation:a.infos.adaptation,period:a.infos.period,representation:a.infos.representation}))}}return t.length>0?{type:"avoid-representations",value:t}:(m.debug("Freeze","Reloading because flush doesn't work"),{type:"reload",value:null})}_addPositionToHistory(e,t){var i,o;let r=e.position.getPolled();for(let a of["audio","video"]){let s=this._segmentSinksStore.getStatus(a);if(s.type==="initialized")for(let c of s.value.getLastKnownInventory())((i=c.bufferedStart)!=null?i:c.start)<=r&&((o=c.bufferedEnd)!=null?o:c.end)>r&&this._lastSegmentInfo[a].push({segment:c,position:r,timestamp:t});else this._lastSegmentInfo[a].push({segment:null,position:r,timestamp:t});if(this._lastSegmentInfo[a].length>100){let c=this._lastSegmentInfo[a].length-100;this._lastSegmentInfo[a].splice(0,c)}let d=t-Sh,u;for(u=0;u<this._lastSegmentInfo[a].length&&!(this._lastSegmentInfo[a][u].timestamp>d);u++);u>0&&this._lastSegmentInfo[a].splice(0,u)}}};function Th(n){let e=!0,t=!0;for(let r of["audio","video"]){let i=n.getStatus(r);if(i.type==="initialized")for(let o of i.value.getLastKnownInventory()){let{representation:a}=o.infos;if(a.decipherable===!1)return{hasUndecipherableData:!0,hasEncryptedData:!0};a.contentProtections!==void 0&&(t=!1,a.decipherable!==!0&&(e=!1))}}return{hasEncryptedData:!t,hasUndecipherableData:e?!1:void 0}}function Pf(n){return n!==void 0&&isFinite(n)?n:0}async function yd(n,e,t,r,i){let o=e.getPeriod(t);if(o===void 0)throw new Error("Wanted Period not found.");let a=Q(o.thumbnailTracks,d=>d.id===r);if(a===void 0)throw new Error("Wanted Period has no thumbnail track.");let s=a.index.getSegments(i,1)[0];if(s===void 0)throw new Error("No thumbnail for the given timestamp");return n({segment:s,track:a,period:o},new U().signal)}function Id(n,e){["video","audio","text"].forEach(t=>{var i;let r=e.getStatus(t);r.type==="initialized"&&r.value.synchronizeInventory((i=n.buffered[t])!=null?i:[])})}function ma({segmentSink:n,playbackObserver:e,maxBufferBehind:t,maxBufferAhead:r},i){let o,a=[];e.listen(d=>{o=d.position.getWanted(),a=d.buffered[n.bufferType],s()},{includeLastObservation:!0,clearSignal:i});function s(){a!==null&&Eh(n,o,a,t.getValue(),r.getValue(),i).catch(d=>{if(i.isCancelled()&&U.isCancellationError(d))return;let u=d instanceof Error?d.message:"Unknown error";m.error("Stream","Could not run BufferGarbageCollector:",u)})}t.onUpdate(s,{clearSignal:i}),r.onUpdate(s,{clearSignal:i}),s()}async function Eh(n,e,t,r,i,o){if(!isFinite(r)&&!isFinite(i))return Promise.resolve();let a=[],{innerRange:s,outerRanges:d}=mc(t,e),u=()=>{if(isFinite(r)){for(let l of d)e-r>=l.end?a.push(l):e>=l.end&&e-r>l.start&&e-r<l.end&&a.push({start:l.start,end:e-r});E(s)||e-r>s.start&&a.push({start:s.start,end:e-r})}},c=()=>{if(isFinite(i)){for(let l of d)e+i<=l.start?a.push(l):e<=l.start&&e+i<l.end&&e+i>l.start&&a.push({start:e+i,end:l.end});E(s)||e+i<s.end&&a.push({start:e+i,end:s.end})}};u(),c();for(let l of a)if(l.start<l.end){if(m.debug("Stream","cleaning range from SegmentSink",{start:l.start,end:l.end}),o.cancellationError!==null)throw o.cancellationError;await n.removeBuffer(l.start,l.end)}}var yi=class{constructor(e,t){this._history=[],this._lifetime=e,this._maxHistoryLength=t}addBufferedSegment(e,t){let r=z();this._history.push({date:r,buffered:t,context:e}),this._cleanHistory(r)}getHistoryFor(e){return this._history.filter(t=>Dt(t.context,e))}_cleanHistory(e){let t=e-this._lifetime,r=0;for(let i of this._history)if(i.date<t)r++;else break;if(r>0&&(this._history=this._history.splice(r)),this._history.length>this._maxHistoryLength){let i=this._history.length-this._maxHistoryLength;this._history=this._history.splice(i)}}};var Ii=class{constructor(){let{BUFFERED_HISTORY_RETENTION_TIME:e,BUFFERED_HISTORY_MAXIMUM_ENTRIES:t}=O.getCurrent();this._inventory=[],this._bufferedHistory=new yi(e,t)}reset(){this._inventory.length=0}synchronizeBuffered(e){var d,u,c,l,f,p,h;let t=this._inventory,r=0,i=t[0],{MINIMUM_SEGMENT_SIZE:o}=O.getCurrent(),a=i==null?void 0:i.infos.adaptation.type;if(m.hasLevel("DEBUG")){let I=e.map(g=>`${g.start}-${g.end}`).join(",");m.debug("SI",`synchronizing ${a!=null?a:"unknown"} buffered ranges:`,I)}let s=e.length;for(let I=0;I<s;I++){if(i===void 0)return;let g=e[I].start,b=e[I].end;if(b-g<o){m.warn("SI","skipped range when synchronizing because it was too small",{t:a,rangeStart:g,rangeEnd:b});continue}let T=r;for(;i!==void 0&&((d=i.bufferedEnd)!=null?d:i.end)-g<o;)i=t[++r];let v=null,_=r-T;if(_>0){let k=t[T+_-1];v={end:(u=k.bufferedEnd)!=null?u:k.end,precizeEnd:k.precizeEnd},m.debug("SI",`${_} segments GCed.`,{t:a});let x=t.splice(T,_);for(let P of x)P.bufferedStart===void 0&&P.bufferedEnd===void 0&&P.status!==2&&this._bufferedHistory.addBufferedSegment(P.infos,null);r=T}if(i===void 0)return;if(b-((c=i.bufferedStart)!=null?c:i.start)>=o){if(_h(i,g,v,a),r===t.length-1){Af(i,b,a);return}i=t[++r];let k=(l=i.bufferedStart)!=null?l:i.start,x=(f=i.bufferedEnd)!=null?f:i.end,P=I<s-1?e[I+1].start:void 0;for(;i!==void 0&&!(b<k||b-k<o&&x-b>=o||P!==void 0&&b-k<x-P);){let M=t[r-1];M.bufferedEnd===void 0&&(i.precizeStart?M.bufferedEnd=i.start:M.infos.segment.complete?M.bufferedEnd=M.end:M.bufferedEnd=i.start,m.debug("SI","calculating buffered end of contiguous segment",{t:a,prevSegmentBufferedEnd:M.bufferedEnd,pse:M.end})),i.bufferedStart=M.bufferedEnd,i=t[++r],i!==void 0&&(k=(p=i.bufferedStart)!=null?p:i.start,x=(h=i.bufferedEnd)!=null?h:i.end)}}let R=t[r-1];R!==void 0&&Af(R,b,a)}if(!E(i)){let{SEGMENT_SYNCHRONIZATION_DELAY:I}=O.getCurrent(),g=z();for(let b=r;b<t.length;b++){let T=t[b];g-T.insertionTs>=I&&(m.debug("SI","A segment at the end has been completely GCed",bt(T.infos)),T.bufferedStart===void 0&&T.bufferedEnd===void 0&&T.status!==2&&this._bufferedHistory.addBufferedSegment(T.infos,null),t.splice(b,1),b--)}}a!==void 0&&m.hasLevel("DEBUG")&&m.debug("SI",`current ${a} inventory timeline:
|
|
2
2
|
`+vh(this._inventory))}insertChunk({period:e,adaptation:t,representation:r,segment:i,chunkSize:o,start:a,end:s},d,u){if(i.isInit)return;let c=t.type;if(a>=s){m.warn("SI","Invalid chunked inserted: starts before it ends",{t:c,start:a,end:s});return}let l=this._inventory,f={status:d?0:2,insertionTs:u,chunkSize:o,splitted:!1,start:a,end:s,precizeStart:!1,precizeEnd:!1,bufferedStart:void 0,bufferedEnd:void 0,infos:{segment:i,period:e,adaptation:t,representation:r}};for(let h=l.length-1;h>=0;h--){let I=l[h];if(I.start<=a)if(I.end<=a){for(m.debug("SI","Pushing segment strictly after previous one.",{t:c,pse:I.end,ss:a}),this._inventory.splice(h+1,0,f),h+=2;h<l.length&&l[h].start<f.end;){if(l[h].end>f.end){m.debug("SI","Segment pushed updates the start of the next one",{t:c,pss:l[h].start,ss:a,se:s}),l[h].start=f.end,l[h].bufferedStart=void 0,l[h].precizeStart=l[h].precizeStart&&f.precizeEnd;return}m.debug("SI","Segment pushed removes the next one",{t:c,ss:a,se:s,pss:l[h].start,pse:l[h].end}),l.splice(h,1)}return}else if(I.start===a)if(I.end<=s){for(m.debug("SI","Segment pushed replace another one",{t:c,ss:a,se:s,pss:I.start,pse:I.end}),this._inventory.splice(h,1,f),h+=1;h<l.length&&l[h].start<f.end;){if(l[h].end>f.end){m.debug("SI","Segment pushed updates the start of the next one",{t:c,ss:a,se:s,pss:l[h].start,pse:l[h].end}),l[h].start=f.end,l[h].bufferedStart=void 0,l[h].precizeStart=l[h].precizeStart&&f.precizeEnd;return}m.debug("SI","Segment pushed removes the next one",{t:c,ss:a,se:s,pss:l[h].start,pse:l[h].end}),l.splice(h,1)}return}else{m.debug("SI","Segment pushed ends before another with the same start",{t:c,ss:a,se:s,pse:I.end}),l.splice(h,0,f),I.start=f.end,I.bufferedStart=void 0,I.precizeStart=I.precizeStart&&f.precizeEnd;return}else if(I.end<=f.end){for(m.debug("SI","Segment pushed updates end of previous one",{t:c,ss:a,se:s,pss:I.start,pse:I.end}),this._inventory.splice(h+1,0,f),I.end=f.start,I.bufferedEnd=void 0,I.precizeEnd=I.precizeEnd&&f.precizeStart,h+=2;h<l.length&&l[h].start<f.end;){if(l[h].end>f.end){m.debug("SI","Segment pushed updates the start of the next one",{t:c,ss:a,se:s,pss:l[h].start}),l[h].start=f.end,l[h].bufferedStart=void 0,l[h].precizeStart=l[h].precizeStart&&f.precizeEnd;return}m.debug("SI","Segment pushed removes the next one",{t:c,ss:a,se:s,pss:l[h].start,pse:l[h].end}),l.splice(h,1)}return}else{m.warn("SI","Segment pushed is contained in a previous one",{t:c,ss:a,se:s,pss:I.start,pse:I.end});let g={status:I.status,insertionTs:I.insertionTs,chunkSize:I.chunkSize,splitted:!0,start:f.end,end:I.end,precizeStart:I.precizeStart&&I.precizeEnd&&f.precizeEnd,precizeEnd:I.precizeEnd,bufferedStart:void 0,bufferedEnd:I.end,infos:I.infos};I.end=f.start,I.splitted=!0,I.bufferedEnd=void 0,I.precizeEnd=I.precizeEnd&&f.precizeStart,l.splice(h+1,0,f),l.splice(h+2,0,g);return}}let p=this._inventory[0];if(p===void 0){m.debug("SI","first segment pushed",{t:c,ss:a,se:s}),this._inventory.push(f);return}if(p.start>=s)m.debug("SI","Segment pushed comes before all previous ones",{t:c,ss:a,se:s,pss:p.start}),this._inventory.splice(0,0,f);else if(p.end<=s){for(m.debug("SI","Segment pushed starts before and completely recovers the previous first one",{t:c,ss:a,se:s,pss:p.start,pse:p.end}),this._inventory.splice(0,1,f);l.length>1&&l[1].start<f.end;){if(l[1].end>f.end){m.debug("SI","Segment pushed updates the start of the next one",{t:c,ss:a,se:s,pss:l[1].start,pse:l[1].end}),l[1].start=f.end,l[1].bufferedStart=void 0,l[1].precizeStart=f.precizeEnd;return}m.debug("SI","Segment pushed removes the next one",{t:c,ss:a,se:s,pss:l[1].start,pse:l[1].end}),l.splice(1,1)}return}else{m.debug("SI","Segment pushed start of the next one",c,{ss:a,se:s,pss:p.start,pse:p.end}),p.start=s,p.bufferedStart=void 0,p.precizeStart=f.precizeEnd,this._inventory.splice(0,0,f);return}}completeSegment(e){if(e.segment.isInit)return;let t=this._inventory,r=[];for(let i=0;i<t.length;i++)if(Dt(t[i].infos,e)){let o=!1;r.length>0&&(o=!0,r.length===1&&(m.warn("SI","Completed Segment is splitted.",bt(e)),r[0].splitted=!0));let a=i,s=t[i].chunkSize;for(i+=1;i<t.length&&Dt(t[i].infos,e);){let f=t[i].chunkSize;s!==void 0&&f!==void 0&&(s+=f),i++}let d=i-1,u=d-a,c=t[d].end,l=t[d].bufferedEnd;u>0&&(this._inventory.splice(a+1,u),i-=u),this._inventory[a].status===0&&(this._inventory[a].status=1),this._inventory[a].chunkSize=s,this._inventory[a].end=c,this._inventory[a].bufferedEnd=l,this._inventory[a].splitted=o,r.push(this._inventory[a])}if(r.length===0)m.warn("SI","Completed Segment not found",bt(e));else for(let i of r)i.bufferedStart!==void 0&&i.bufferedEnd!==void 0?i.status!==2&&this._bufferedHistory.addBufferedSegment(i.infos,{start:i.bufferedStart,end:i.bufferedEnd}):m.debug("SI","buffered range not known after sync. Skipping history.",{ss:i.start,se:i.end})}getInventory(){return this._inventory}getHistoryFor(e){return this._bufferedHistory.getHistoryFor(e)}};function bd(n){if(n.bufferedStart===void 0||n.status!==1)return!1;let{start:e,end:t}=n,r=t-e,{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:o}=O.getCurrent();return Math.abs(e-n.bufferedStart)<=i&&(n.bufferedEnd===void 0||n.bufferedEnd>n.bufferedStart&&Math.abs(n.bufferedEnd-n.bufferedStart-r)<=Math.min(o,r/3))}function Cf(n){if(n.bufferedEnd===void 0||!n.infos.segment.complete||n.status!==1)return!1;let{start:e,end:t}=n,r=t-e,{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MAX_MANIFEST_BUFFERED_DURATION_DIFFERENCE:o}=O.getCurrent();return Math.abs(t-n.bufferedEnd)<=i&&n.bufferedStart!==void 0&&n.bufferedEnd>n.bufferedStart&&Math.abs(n.bufferedEnd-n.bufferedStart-r)<=Math.min(o,r/3)}function _h(n,e,t,r){let{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:i,MISSING_DATA_TRIGGER_SYNC_DELAY:o,SEGMENT_SYNCHRONIZATION_DELAY:a}=O.getCurrent();if(n.bufferedStart!==void 0)n.bufferedStart<e&&(m.debug("SI","Segment partially GCed at the start",{t:r,firstsbs:n.bufferedStart,rs:e}),n.bufferedStart=e),!n.precizeStart&&bd(n)&&(n.start=n.bufferedStart,n.precizeStart=!0);else if(n.precizeStart)m.debug("SI","buffered start is precize start",{t:r,firstss:n.start}),n.bufferedStart=n.start;else if(t!==null&&t.end>e&&(t.precizeEnd||n.start-t.end<=i))m.debug("SI","buffered start is end of previous segment",{t:r,rs:e,firstss:n.start,lastdelse:t.end}),n.bufferedStart=t.end,bd(n)&&(n.start=t.end,n.precizeStart=!0);else if(n.start-e<=i){let s=z();if(n.start-e>=o&&s-n.insertionTs<a){m.debug("SI","Ignored bufferedStart synchronization",{t:r,rs:e,firstss:n.start,delta:s-n.insertionTs});return}m.debug("SI","found true buffered start",{t:r,rs:e,firstss:n.start}),n.bufferedStart=e,bd(n)&&(n.start=e,n.precizeStart=!0)}else if(e<n.start)m.debug("SI","range start too far from expected start",{t:r,rs:e,firstss:n.start}),n.bufferedStart=n.start;else{let s=z();if(n.start-e>=o&&s-n.insertionTs<a){m.debug("SI","Ignored bufferedStart synchronization",{t:r,rs:e,firstss:n.start,delta:s-n.insertionTs});return}m.debug("SI","Segment appears immediately garbage collected at the start",{t:r,rs:e,firstss:n.start}),n.bufferedStart=e}}function Af(n,e,t){let{MAX_MANIFEST_BUFFERED_START_END_DIFFERENCE:r,MISSING_DATA_TRIGGER_SYNC_DELAY:i,SEGMENT_SYNCHRONIZATION_DELAY:o}=O.getCurrent();if(n.bufferedEnd!==void 0)n.bufferedEnd>e&&(m.debug("SI","Segment partially GCed at the end",{t,lastsbe:n.bufferedEnd,re:e}),n.bufferedEnd=e),!n.precizeEnd&&e-n.end<=r&&Cf(n)&&(n.precizeEnd=!0,n.end=e);else if(n.precizeEnd)m.debug("SI","buffered end is precize end",{t,lastse:n.end}),n.bufferedEnd=n.end;else if(e-n.end<=r||!n.infos.segment.complete){let a=z();if(e-n.end>=i&&a-n.insertionTs<o){m.debug("SI","Ignored bufferedEnd synchronization",{t,re:e,lastse:n.end,delta:a-n.insertionTs});return}m.debug("SI","found true buffered end",{t,re:e,lastse:n.end}),n.bufferedEnd=e,Cf(n)&&(n.end=e,n.precizeEnd=!0)}else if(e>n.end)m.debug("SI","range end too far from expected end",{t,re:e,lastse:n.end}),n.bufferedEnd=n.end;else{let a=z();if(e-n.end>=i&&a-n.insertionTs<o){m.debug("SI","Ignored bufferedEnd synchronization",{t,re:e,lastse:n.end,delta:a-n.insertionTs});return}m.debug("SI","Segment appears immediately garbage collected at the end",{t,lastsbe:n.bufferedEnd,re:e}),n.bufferedEnd=e}}function vh(n){let e=.016666666666666666,t={},r=[],i=null,o=null;function a(d){let u=String.fromCharCode(r.length+65);return r.push({letter:u,periodId:d.period.id,representationId:d.representation.id,bitrate:d.representation.bitrate}),u}let s="";for(let d of n)if(d.bufferedStart!==void 0&&d.bufferedEnd!==void 0){let u=d.infos.period.id,c=d.infos.representation.id,l=t[u],f;if(l===void 0)f=a(d.infos),t[u]={[c]:f};else{let p=l[c];p===void 0?(f=a(d.infos),l[c]=f):f=p}i===null?s+=`${d.bufferedStart.toFixed(2)}|${f}|`:o===f?i.bufferedEnd+e<d.bufferedStart&&(s+=`${i.bufferedEnd.toFixed(2)} ~ ${d.bufferedStart.toFixed(2)}|${f}|`):s+=`${i.bufferedEnd.toFixed(2)} ~ ${d.bufferedStart.toFixed(2)}|${f}|`,i=d,o=f}return i!==null&&(s+=String(i.end.toFixed(2))),r.forEach(d=>{var u;s+=`
|
|
3
3
|
[${d.letter}] P: ${d.periodId} || R: ${d.representationId}(${(u=d.bitrate)!=null?u:"unknown bitrate"})`}),s}function er(n,e){for(let t=0;t<n.length;t++)if(n[t].infos.period.start>=e.start)return t>0?n[t-1]:null;return n.length>0?n[n.length-1]:null}function tr(n,e){for(let t of n)if(t.infos.period.start>e.start)return t;return null}var Mf=Ii;var nr=class{constructor(){this._segmentInventory=new Mf}synchronizeInventory(e){this._segmentInventory.synchronizeBuffered(e)}getLastKnownInventory(){return this._segmentInventory.getInventory()}getSegmentHistory(e){return this._segmentInventory.getHistoryFor(e)}};var bi=class extends nr{constructor(e,t,r){super(),m.info("Stream","calling `mediaSource.addSourceBuffer`",{codec:t});let i=r.addSourceBuffer(e,t);this.bufferType=e,this._sourceBuffer=i,this._lastInitSegmentUniqueId=null,this.codec=t,this._initSegmentsMap=new Map,this._pendingOperations=[]}declareInitSegment(e,t){xf(t),this._initSegmentsMap.set(e,t)}freeInitSegment(e){this._initSegmentsMap.delete(e)}async pushChunk(e){xf(e.data.chunk),m.debug("Stream","queuing push order",bt(e.inventoryInfos));let t=this._getActualDataToPush(e.data);t.length===0&&t.push(new Uint8Array);let r=Promise.all(t.map(a=>{let{codec:s,timestampOffset:d,appendWindow:u}=e.data;return m.debug("Stream","now pushing",bt(e.inventoryInfos)),this._sourceBuffer.appendBuffer(a,{codec:s,timestampOffset:d,appendWindow:u})}));this._addToOperationQueue(r,{type:0,value:e});let i;try{i=await r}catch(a){throw this._segmentInventory.insertChunk(e.inventoryInfos,!1,z()),a}e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,z());let o=i[i.length-1];return this._segmentInventory.synchronizeBuffered(o),o}async removeBuffer(e,t){m.debug("Stream","queuing remove order",{bufferType:this.bufferType,start:e,end:t});let r=this._sourceBuffer.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){try{m.debug("Stream","Calling `dispose` on the SourceBufferInterface"),this._sourceBuffer.dispose()}catch(e){m.debug("Stream",`Failed to dispose a ${this.bufferType} SourceBufferInterface:`,e instanceof Error?e:"Unknown Error")}}_getActualDataToPush(e){let t=[];if(e.initSegmentUniqueId!==null&&!this._isLastInitSegment(e.initSegmentUniqueId)){let r=this._initSegmentsMap.get(e.initSegmentUniqueId);if(r===void 0)throw new Error("Invalid initialization segment uniqueId");let i=new ArrayBuffer(r.byteLength),o=new Uint8Array(i);o.set(r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer)),r=o,t.push(r),this._lastInitSegmentUniqueId=e.initSegmentUniqueId}return e.chunk!==null&&t.push(e.chunk),t}_isLastInitSegment(e){return this._lastInitSegmentUniqueId===null?!1:this._lastInitSegmentUniqueId===e}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function xf(n){if(y.CURRENT_ENV!==y.PRODUCTION&&(typeof n!="object"||n!==null&&!(n instanceof ArrayBuffer)&&!(n.buffer instanceof ArrayBuffer)))throw new Error("Invalid data given to the AudioVideoSegmentSink")}var ga=bi;var Si=class extends nr{constructor(e){m.debug("Stream","Creating TextSegmentSink"),super(),this.bufferType="text",this._sender=e,this._pendingOperations=[],this._sender.reset()}declareInitSegment(e){m.warn("Stream","Declaring initialization segment for Text SegmentSink",{uniqueId:e})}freeInitSegment(e){m.warn("Stream","Freeing initialization segment for Text SegmentSink",{uniqueId:e})}async pushChunk(e){let{data:t}=e;kh(t.chunk);let r=this._sender.pushTextData(ue(ae({},t),{chunk:t.chunk}));this._addToOperationQueue(r,{type:0,value:e});let i=await r;return e.inventoryInfos!==null&&this._segmentInventory.insertChunk(e.inventoryInfos,!0,z()),this._segmentInventory.synchronizeBuffered(i),i}async removeBuffer(e,t){let r=this._sender.remove(e,t);this._addToOperationQueue(r,{type:1,value:{start:e,end:t}});let i=await r;return this._segmentInventory.synchronizeBuffered(i),i}async signalSegmentComplete(e){if(this._pendingOperations.length>0){let{promise:t}=this._pendingOperations[this._pendingOperations.length-1];this._addToOperationQueue(t,{type:2,value:e});try{await t}catch(r){}}this._segmentInventory.completeSegment(e)}getPendingOperations(){return this._pendingOperations.map(e=>e.operation)}dispose(){m.debug("Stream","Disposing TextSegmentSink"),this._sender.reset()}_addToOperationQueue(e,t){let r={operation:t,promise:e};this._pendingOperations.push(r);let i=()=>{let o=this._pendingOperations.indexOf(r);o>=0&&this._pendingOperations.splice(o,1)};e.then(i,i)}};function kh(n){if(y.CURRENT_ENV!==y.PRODUCTION){if(typeof n!="object"||n===null||E(n.data))throw new Error("Invalid format given to a TextSegmentSink");if(!Ph(n))throw new Error("Invalid format given to a TextSegmentSink");if(typeof n.data!="string"&&typeof n.data.byteLength!="number")throw new Error("Invalid format given to a TextSegmentSink")}}function Ph(n){return!(typeof n!="object"||n===null||typeof n.type!="string"||n.language!==void 0&&typeof n.language!="string"||n.initTimescale!==null&&typeof n.initTimescale!="number"||n.start!==void 0&&typeof n.start!="number"||n.end!==void 0&&typeof n.end!="number")}y.CURRENT_ENV===y.DEV&&(Ch=function(e){function t(r){}});var Ch;var wf=Si;var Ah=["audio","video","text"],Ti=class n{static isNative(e){return Of(e)}constructor(e,t,r){this._mediaSource=e,this._textInterface=r,this._hasVideo=t,this._initializedSegmentSinks={},this._onNativeBufferAddedOrDisabled=[]}getBufferTypes(){let e=this.getNativeBufferTypes();return this._textInterface!==null&&e.push("text"),e}getNativeBufferTypes(){return this._hasVideo?["video","audio"]:["audio"]}getStatus(e){let t=this._initializedSegmentSinks[e];return t===void 0?{type:"uninitialized"}:t===null?{type:"disabled"}:{type:"initialized",value:t}}waitForUsableBuffers(e){return this._areNativeBuffersUsable()?Promise.resolve():ct(e,t=>{let r=te,i=()=>{let o=this._onNativeBufferAddedOrDisabled.indexOf(r);o>=0&&this._onNativeBufferAddedOrDisabled.splice(o,1)};return r=()=>{this._areNativeBuffersUsable()&&(i(),t())},this._onNativeBufferAddedOrDisabled.push(r),i})}disableSegmentSink(e){let t=this._initializedSegmentSinks[e];if(t===null){m.warn("Stream",`The ${e} SegmentSink was already disabled.`);return}if(t!==void 0)throw new Error("Cannot disable an active SegmentSink.");this._initializedSegmentSinks[e]=null,n.isNative(e)&&(this._onNativeBufferAddedOrDisabled.slice().forEach(r=>r()),ne(this._onNativeBufferAddedOrDisabled.length===0))}createSegmentSink(e,t){let r=this._initializedSegmentSinks[e];if(Of(e)){if(!E(r))return r instanceof ga&&r.codec!==t?m.warn("Stream","Reusing native SegmentSink with codec",r.codec,"for codec",t):m.info("Stream","Reusing native SegmentSink with codec",t),r;m.info("Stream","Adding native SegmentSink with codec",t);let o=e==="audio"?"audio":"video",a=new ga(o,t,this._mediaSource);return this._initializedSegmentSinks[e]=a,this._onNativeBufferAddedOrDisabled.slice().forEach(s=>s()),ne(this._onNativeBufferAddedOrDisabled.length===0),a}if(!E(r))return m.info("Stream","Reusing a previous custom SegmentSink",{bufferType:e}),r;let i;if(e==="text"){if(m.info("Stream","Creating a new text SegmentSink"),this._textInterface===null)throw new Error("HTML Text track feature not activated");return i=new wf(this._textInterface),this._initializedSegmentSinks.text=i,i}throw m.error("Stream","Unknown buffer type:",{bufferType:e}),new re("BUFFER_TYPE_UNKNOWN","The player wants to create a SegmentSink of an unknown type.")}disposeSegmentSink(e){let t=this._initializedSegmentSinks[e];if(E(t)){m.warn("Stream","Trying to dispose a SegmentSink that does not exist",{bufferType:e});return}m.info("Stream","Aborting SegmentSink",{bufferType:e}),t.dispose(),delete this._initializedSegmentSinks[e]}disposeAll(){Ah.forEach(e=>{this.getStatus(e).type==="initialized"&&this.disposeSegmentSink(e)})}_areNativeBuffersUsable(){let e=this.getNativeBufferTypes();return!(e.some(i=>this._initializedSegmentSinks[i]===void 0)||e.every(i=>this._initializedSegmentSinks[i]===null))}createSegmentSinkMetricsForType(e){var i,o;let t=(i=this._initializedSegmentSinks[e])==null?void 0:i.getLastKnownInventory(),r;if(t!==void 0){r=0;for(let a of t){if(a.chunkSize===void 0||r===void 0){r=void 0;break}r+=a.chunkSize}}return{bufferType:e,sizeEstimate:r,codec:(o=this._initializedSegmentSinks[e])==null?void 0:o.codec,segmentInventory:t==null?void 0:t.map(a=>ue(ae({},a),{infos:Mh(a.infos)}))}}getSegmentSinksMetrics(){return{segmentSinks:{audio:this.createSegmentSinkMetricsForType("audio"),video:this.createSegmentSinkMetricsForType("video"),text:this.createSegmentSinkMetricsForType("text")}}}};function Of(n){return n==="audio"||n==="video"}function Mh(n){return{adaptation:n.adaptation.getMetadataSnapshot(),period:n.period.getMetadataSnapshot(),representation:n.representation.getMetadataSnapshot()}}var on=Ti;var Ei=class{constructor(e){this._weakMap=new WeakMap,this._fn=e}get(e){let t=this._weakMap.get(e);if(t===void 0){let r=this._fn(e);return this._weakMap.set(e,r),r}else return t}destroy(e){this._weakMap.delete(e)}};function Sd(n,e,t,r,i){let{period:o,adaptation:a,representation:s}=n,d=xh(i,e);if(d===null){if(t===null){if(r&&o.end!==void 0&&e.end>=o.end)return{start:void 0,end:null};let l=s.index.checkDiscontinuity(e.start);if(l!==null)return{start:void 0,end:l}}return null}let u=i[d];if(u.bufferedStart!==void 0&&u.bufferedStart>e.start&&(t===null||u.infos.segment.end<=t)){let l=u.bufferedStart;return!r&&s.index.awaitSegmentBetween(e.start,l)!==!1?null:(m.debug("Stream","current discontinuity encountered",{bufferType:a.type,nextSegmentTime:u.bufferedStart,checkStartTime:e.start}),{start:void 0,end:l})}let c=wh(i,e,d+1);if(c!==null){let l=i[c-1],f=i[c];if(t===null||f.infos.segment.end<=t){if(!r&&s.index.awaitSegmentBetween(l.infos.segment.end,f.infos.segment.time)!==!1)return null;let p=l.bufferedEnd,h=f.bufferedStart;return m.debug("Stream","future discontinuity encountered",{bufferType:a.type,discontinuityStart:p,discontinuityEnd:h}),{start:p,end:h}}}if(t===null){if(r&&o.end!==void 0){if(e.end<o.end)return null;let l=Oh(i,o.end);if(l!==null){let f=i[l];if(f.bufferedEnd!==void 0&&f.bufferedEnd<o.end)return m.debug("Stream","discontinuity encountered at the end of the current period",{bufferType:a.type,segmentsEndTimeFromPeriod:f.bufferedEnd,periodEnd:o.end}),{start:f.bufferedEnd,end:null}}}if(o.end!==void 0&&e.end>=o.end)return null;for(let l=i.length-1;l>=0;l--){let f=i[l];if(f.bufferedStart===void 0)break;if(f.bufferedStart<e.end){if(f.bufferedEnd!==void 0&&f.bufferedEnd<e.end){let p=s.index.checkDiscontinuity(e.end);if(p!==null)return{start:f.bufferedEnd,end:p}}return null}}}return null}function xh(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.bufferedStart===void 0||r.bufferedEnd===void 0||r.bufferedStart>=e.end)return null;if(r.bufferedEnd>e.start)return t}return null}function wh(n,e,t){if(t<=0)return m.error("Stream","Asked to check a discontinuity before the first chunk."),null;for(let r=t;r<n.length;r++){let i=n[r],o=n[r-1];if(i.bufferedStart===void 0||o.bufferedEnd===void 0||i.bufferedStart>=e.end)return null;if(i.bufferedStart-o.bufferedEnd>0)return r}return null}function Oh(n,e){for(let t=n.length-1;t>=0;t--){let r=n[t];if(r.bufferedStart===void 0)return null;if(r.bufferedStart<e)return t}return null}function Td({bufferedSegments:n,content:e,currentPlaybackTime:t,fastSwitchThreshold:r,getBufferedHistory:i,neededRange:o,segmentsBeingPushed:a,maxBufferSize:s}){let{adaptation:d,representation:u}=e,c=Dh(n,a,s),l=u.index.getSegments(o.start,o.end-o.start),f=n.filter(R=>!Df(R.infos,e,t,r)),p=Vh(f,o,i),{MINIMUM_SEGMENT_SIZE:h,MIN_BUFFER_AHEAD:I}=O.getCurrent(),g=!1,b=Math.min(1/60,h),T=!1,v=[];return{segmentsToLoad:l.filter(R=>{let k=Y({segment:R},e);if(a.length>0&&a.some(B=>Dt(k,B)))return!1;let{duration:x,time:P,end:M}=R;if(R.isInit)return!0;if(g)return v.push(R),!1;if(R.complete&&x<h||a.length>0&&a.some(B=>{if(B.period.id!==e.period.id||B.adaptation.id!==e.adaptation.id)return!1;let{segment:A}=B;if(A.time-b>P)return!1;if(A.complete){if(A.end+b<M)return!1}else if(Math.abs(P-A.time)>P)return!1;return!Df(B,k,t,r)}))return!1;for(let D of p){let B=D.infos.period.id===e.period.id;if(D.status===1&&B){let A=D.infos.segment;if(P-A.time>-b){if(A.complete){if(A.end-M>-b)return!1}else if(Math.abs(P-A.time)<b)return!1}}}let L=x*e.representation.bitrate;if(c-L<0&&(T=!0,P>o.start+I))return g=!0,v.push(R),!1;let F=i(k);if(F.length>1){let D=F[F.length-1],B=F[F.length-2];if(D.buffered===null&&B.buffered===null)return m.warn("Stream","Segment GCed multiple times in a row, ignoring it.","If this happens a lot and lead to unpleasant experience, please check your device's available memory. If it's low when this message is emitted, you might want to update the RxPlayer's settings (`maxBufferAhead`, `maxVideoBufferSize` etc.) so less memory is used by regular media data buffering.",{bufferType:d.type,representationId:u.id,segmentTime:R.time}),!1}for(let D=0;D<p.length;D++){let B=p[D];if(B.end+b>P){let A=B.start>P+b||Lh(p,D).end<M-b;return A&&(c-=L),A}}return c-=L,!0}),segmentsOnHold:v,isBufferFull:T}}function Dh(n,e,t){let r=t*8e3;return r-=e.reduce((i,o)=>{let{bitrate:a}=o.representation,{duration:s}=o.segment;return i+a*s},0),n.reduce((i,o)=>o.chunkSize!==void 0?i-o.chunkSize*8:i,r)}function Lh(n,e){let t=e+1,{MINIMUM_SEGMENT_SIZE:r}=O.getCurrent(),i=Math.min(1/60,r);for(;t<n.length-1&&n[t-1].end+i>n[t].start;)t++;return t--,n[t]}function Df(n,e,t,r){let{CONTENT_REPLACEMENT_PADDING:i}=O.getCurrent();if(n.period.id!==e.period.id)return!1;let{segment:o}=n;return o.time<t+i?!1:n.adaptation.id!==e.adaptation.id?!0:Nh(n.representation,e.representation,r)}function Nh(n,e,t){let r=n.bitrate,{BITRATE_REBUFFERING_RATIO:i}=O.getCurrent();if(t===void 0){let o=r*i;return e.bitrate>o}return r<t&&e.bitrate>r}function Uh(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=O.getCurrent();return n.bufferedStart===void 0||e!==null&&e.bufferedEnd!==void 0&&n.bufferedStart-e.bufferedEnd<.1?!1:t<n.bufferedStart&&n.bufferedStart-n.start>r?(m.info("Stream","The start of the wanted segment has been garbage collected",{segmentStart:n.start,currentStartInBuffer:n.bufferedStart}),!0):!1}function Bh(n,e,t){let{MAX_TIME_MISSING_FROM_COMPLETE_SEGMENT:r}=O.getCurrent();return n.bufferedEnd===void 0||e!==null&&e.bufferedStart!==void 0&&e.bufferedStart-n.bufferedEnd<.1?!1:t>n.bufferedEnd&&n.end-n.bufferedEnd>r?(m.info("Stream","The end of the wanted segment has been garbage collected",{segmentEnd:n.end,currentEndInBuffer:n.bufferedEnd}),!0):!1}function Fh(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.start;if(e!==void 0&&r!==void 0&&e-r>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.start;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function Kh(n,e){var a,s;if(n.length<2)return!0;let r=(a=n[n.length-1].buffered)==null?void 0:a.end;if(e!==void 0&&r!==void 0&&r-e>.05)return!0;let o=(s=n[n.length-2].buffered)==null?void 0:s.end;return o===void 0||r===void 0?!0:Math.abs(o-r)>.01}function Vh(n,e,t){return n.filter((r,i,o)=>{let a=i===0?null:o[i-1],s=i>=o.length-1?null:o[i+1],d=null;if(Uh(r,a,e.start)){if(d=t(r.infos),Fh(d,r.bufferedStart))return!1;m.debug("Stream","skipping segment gc-ed at the start",{segmentStart:r.start,currentStartInBuffer:r.bufferedStart})}if(Bh(r,s,e.end)){if(d=d!=null?d:t(r.infos),Kh(d,r.bufferedEnd))return!1;m.debug("Stream","skipping segment gc-ed at the end",{segmentEnd:r.end,currentEndInBuffer:r.bufferedEnd})}return!0})}function _i(n,e){let t=n-e,{SEGMENT_PRIORITIES_STEPS:r}=O.getCurrent();for(let i=0;i<r.length;i++)if(t<r[i])return i;return r.length}function Ed(n,e,t,r,i,o,a){var P,M,L;let{representation:s}=n,d=(M=(P=t.getIsPaused())!=null?P:t.getReference().getValue().paused.pending)!=null?M:t.getReference().getValue().paused.last,u=(L=t.getPlaybackRate())!=null?L:t.getReference().getValue().speed,c=e;(d===void 0||u===void 0||d||u<=0)&&(c-=.1);let l=zh(n,c,i),f=s.index.shouldRefresh(l.start,l.end),p=a.getPendingOperations().filter(F=>F.type===2).map(F=>F.value),h=a.getLastKnownInventory(),I=t.getCurrentTime();I===void 0&&(I=t.getReference().getValue().position.getWanted());let g=a.getSegmentHistory.bind(a),{segmentsToLoad:b,segmentsOnHold:T,isBufferFull:v}=Td({content:n,bufferedSegments:h,currentPlaybackTime:I,fastSwitchThreshold:r,getBufferedHistory:g,neededRange:l,segmentsBeingPushed:p,maxBufferSize:o}),_=b.map(F=>({priority:_i(F.time,c),segment:F})),R=s.index.isInitialized()&&!s.index.isStillAwaitingFutureSegments()&&l.hasReachedPeriodEnd&&_.length===0&&T.length===0,k=null;return p.length>0&&(k=Math.min(...p.map(F=>F.segment.time))),T.length>0&&(k=k!==null?Math.min(k,T[0].time):T[0].time),_.length>0&&(k=k!==null?Math.min(k,_[0].segment.time):_[0].segment.time),{imminentDiscontinuity:Sd(n,l,k,R,h),hasFinishedLoading:R,neededSegments:_,isBufferFull:v,shouldRefreshManifest:f}}function zh(n,e,t){var l;let r,{manifest:i,period:o,representation:a}=n,s=a.index.getLastAvailablePosition(),d=a.index;!E(s)&&on.isNative(n.adaptation.type)&&e>=s&&d.isInitialized()&&!d.isStillAwaitingFutureSegments()&&Wh(i,o,e)?r=s-1:r=e-.1;let u=r+t,c;return!a.index.isInitialized()||a.index.isStillAwaitingFutureSegments()||o.end===void 0?c=!1:s===void 0?c=u>=o.end:s===null?c=!0:c=u>=s,{start:Math.max(r,o.start),end:Math.min(u,(l=o.end)!=null?l:1/0),hasReachedPeriodEnd:c}}function Wh(n,e,t){var i;let r=n.getPeriodAfter(e);return e.containsTime(t,r)&&n.isLastPeriodKnown&&e.id===((i=n.periods[n.periods.length-1])==null?void 0:i.id)}async function vi(n,e,t,r,i){try{return await e.pushChunk(t)}catch(o){if(i.isCancelled()&&o instanceof we)throw o;if(!(o instanceof lt)||!o.isBufferFull){let d=o instanceof Error?o.toString():"An unknown error happened when pushing content";throw new re("BUFFER_APPEND_ERROR",d,{tracks:[Tn(t.inventoryInfos.adaptation)]})}let{position:a}=n.getReference().getValue(),s=a.getWanted();try{m.warn("Stream","Running garbage collector");let d=Math.max(s-5,0),u=s+r.getValue()+12;if(d>0&&await e.removeBuffer(0,d),u<Number.MAX_VALUE&&await e.removeBuffer(u,Number.MAX_VALUE),await En(200),i.cancellationError!==null)throw i.cancellationError;return await e.pushChunk(t)}catch(d){if(d instanceof we)throw d;let u=d instanceof Error?d.toString():"Could not clean the buffer";throw new re("BUFFER_FULL_ERROR",u,{tracks:[Tn(t.inventoryInfos.adaptation)]})}}}async function _d({playbackObserver:n,content:e,initSegmentUniqueId:t,segment:r,segmentSink:i,bufferGoal:o},a){let s=e.representation.getMimeTypeString(),d={initSegmentUniqueId:t,chunk:null,timestampOffset:0,appendWindow:[void 0,void 0],codec:s},u=Y({segment:r,chunkSize:void 0,start:0,end:0},e),c=await vi(n,i,{data:d,inventoryInfos:u},o,a);return{content:e,segment:r,buffered:c}}async function vd({playbackObserver:n,bufferGoal:e,content:t,initSegmentUniqueId:r,parsedSegment:i,segment:o,segmentSink:a},s){var k,x;if(i.chunkData===null)return null;let{chunkData:d,chunkInfos:u,chunkOffset:c,chunkSize:l,appendWindow:f}=i,p=t.representation.getMimeTypeString(),{APPEND_WINDOW_SECURITIES:h}=O.getCurrent(),I=[f[0]!==void 0?Math.max(0,f[0]-h.START):void 0,f[1]!==void 0?f[1]+h.END:void 0],g={initSegmentUniqueId:r,chunk:d,timestampOffset:c,appendWindow:I,codec:p},b=(k=u==null?void 0:u.time)!=null?k:o.time,T=(x=u==null?void 0:u.duration)!=null?x:o.duration,v=b+T;I[0]!==void 0&&(b=Math.max(b,I[0])),I[1]!==void 0&&(v=Math.min(v,I[1]));let _=Y({segment:o,chunkSize:l,start:b,end:v},t),R=await vi(n,a,{data:g,inventoryInfos:_},e,s);return{content:t,segment:o,buffered:R}}function Rd({content:n,options:e,playbackObserver:t,segmentSink:r,segmentQueue:i,terminate:o},a,s){m.debug("Stream","Creating RepresentationStream",{periodStart:n.period.start,bufferType:n.adaptation.type,adaptationId:n.adaptation.id,representationBitrate:n.representation.bitrate,mimeType:n.representation.getMimeTypeString()});let{period:d,adaptation:u,representation:c}=n,{bufferGoal:l,maxBufferSize:f,drmSystemId:p,fastSwitchThreshold:h}=e,I=u.type,g=new U;g.linkToSignal(s);let b={segment:c.index.getInitSegment(),uniqueId:null,isLoaded:!1};g.signal.register(()=>{b.uniqueId!==null&&r.freeInitSegment(b.uniqueId)});let T=b.segment!==null;T||(b.isLoaded=!0);let v=!1;if(p!==void 0){let P=c.getEncryptionData(p);if(P.length>0&&P.every(M=>M.keyIds!==void 0)&&(v=!0,a.encryptionDataEncountered(P.map(M=>Y({content:n},M))),g.isUsed()))return}i.addEventListener("error",P=>{g.signal.isCancelled()||(g.cancel(),a.error(P))}),i.addEventListener("parsedInitSegment",k,g.signal),i.addEventListener("parsedMediaSegment",k,g.signal),i.addEventListener("emptyQueue",R,g.signal),i.addEventListener("requestRetry",P=>{if(a.warning(P.error),g.signal.isCancelled())return;let M=P.segment,{index:L}=c;L.isSegmentStillAvailable(M)===!1?R():L.canBeOutOfSyncError(P.error,M)&&a.manifestMightBeOufOfSync()},g.signal),i.addEventListener("fullyLoadedSegment",P=>{r.signalSegmentComplete(Y({segment:P},n)).catch(x)},g.signal);let _=i.resetForContent(n,T);g.signal.register(()=>{i.stop()}),t.listen(R,{includeLastObservation:!1,clearSignal:g.signal}),n.manifest.addEventListener("manifestUpdate",R,g.signal),l.onUpdate(R,{emitCurrentValue:!1,clearSignal:g.signal}),f.onUpdate(R,{emitCurrentValue:!1,clearSignal:g.signal}),o.onUpdate(R,{emitCurrentValue:!1,clearSignal:g.signal}),R();return;function R(){if(g.isUsed())return;let P=t.getReference().getValue(),M=P.position.getWanted(),L=Ed(n,M,t,h.getValue(),l.getValue(),f.getValue(),r),{neededSegments:F}=L,D=null;if(c.index.isInitialized()){if(F.length>0&&!b.isLoaded&&b.segment!==null){let C=F[0].priority;D={segment:b.segment,priority:C}}}else if(b.segment===null)m.warn("Stream","Uninitialized index without an initialization segment",{bufferType:I,representationBitrate:n.representation.bitrate});else if(b.isLoaded)m.warn("Stream","Uninitialized index with an already loaded initialization segment",{bufferType:I,representationBitrate:n.representation.bitrate});else{let C=P.position.getWanted();D={segment:b.segment,priority:_i(d.start,C)}}let B=o.getValue();if(B===null)_.setValue({initSegment:D,segmentQueue:F});else if(B.urgent){m.debug("Stream","Urgent switch, terminate now.",{bufferType:I,representationBitrate:n.representation.bitrate}),_.setValue({initSegment:null,segmentQueue:[]}),_.finish(),g.cancel(),a.terminating();return}else{let C=F[0],N=i.getRequestedInitSegment(),K=i.getRequestedMediaSegment(),q=K===null||C===void 0||K.id!==C.segment.id?[]:[C],X=N===null?null:D;if(_.setValue({initSegment:X,segmentQueue:q}),q.length===0&&X===null){m.debug("Stream","No request left, terminate",{bufferType:I,representationBitrate:n.representation.bitrate}),_.finish(),g.cancel(),a.terminating();return}}if(a.streamStatusUpdate({period:d,position:P.position.getWanted(),bufferType:I,imminentDiscontinuity:L.imminentDiscontinuity,isEmptyStream:!1,hasFinishedLoading:L.hasFinishedLoading,neededSegments:L.neededSegments}),g.signal.isCancelled())return;let{UPTO_CURRENT_POSITION_CLEANUP:A}=O.getCurrent();if(L.isBufferFull){let C=Math.max(0,M-A);C>0&&r.removeBuffer(0,C).catch(x)}L.shouldRefreshManifest&&a.needsManifestRefresh()}function k(P){for(let M of P.protectionData)c.addProtectionData(M.initDataType,M.keyId,M.initData);if(!v){let M=c.getAllEncryptionData();M.length>0&&(a.encryptionDataEncountered(M.map(L=>Y({content:n},L))),v=!0)}if(P.segmentType==="init"){if(!c.index.isInitialized()&&P.segmentList!==void 0&&c.index.initialize(P.segmentList),b.isLoaded=!0,P.initializationData!==null){let M=c.uniqueId;b.uniqueId=M,r.declareInitSegment(M,P.initializationData),_d({playbackObserver:t,bufferGoal:l,content:n,initSegmentUniqueId:M,segment:P.segment,segmentData:P.initializationData,segmentSink:r},g.signal).then(L=>{L!==null&&a.addedSegment(L)}).catch(x)}R();return}else{let{inbandEvents:M,predictedSegments:L,needsManifestRefresh:F}=P;if(L!==void 0&&c.index.addPredictedSegments(L,P.segment),F===!0&&(a.needsManifestRefresh(),g.isUsed())||M!==void 0&&M.length>0&&(a.inbandEvent(M),g.isUsed()))return;let D=b.uniqueId;vd({playbackObserver:t,bufferGoal:l,content:n,initSegmentUniqueId:D,parsedSegment:P,segment:P.segment,segmentSink:r},g.signal).then(B=>{B!==null&&a.addedSegment(B)}).catch(x)}}function x(P){g.isUsed()&&P instanceof we||(m.warn("Stream","Received fatal buffer error",{bufferType:I,representationBitrate:n.representation.bitrate},P instanceof Error?P:null),g.cancel(),a.error(P))}}var Lf=Rd;function kd(n,e,t,r,i){var f,p,h,I;if(t.switchingMode==="lazy")return{type:"continue",value:void 0};let o=r.getLastKnownInventory(),a=[];for(let g of o)g.infos.period.id===n.id&&(g.infos.adaptation.id!==e.id||!$(t.representationIds,g.infos.representation.id))&&vt(a,{start:(f=g.bufferedStart)!=null?f:g.start,end:(p=g.bufferedEnd)!=null?p:g.end});let s=r.getPendingOperations();for(let g of s)if(g.type===0){let b=g.value.inventoryInfos;if(b.period.id===n.id&&(b.adaptation.id!==e.id||!$(t.representationIds,b.representation.id))){let T=b.segment.time,v=T+b.segment.duration;vt(a,{start:T,end:v})}}if(a.length===0)return{type:"continue",value:void 0};if(t.switchingMode==="reload"){let g=i.getReadyState();if(g===void 0||g>1)return{type:"needs-reload",value:void 0}}let d=t.switchingMode==="direct",u=[],c=er(o,n);if(c!==null&&(c.bufferedEnd===void 0||n.start-c.bufferedEnd<1)&&u.push({start:0,end:n.start+1}),!d){let{ADAP_REP_SWITCH_BUFFER_PADDINGS:g}=O.getCurrent(),b=e.type,T=(h=g[b].before)!=null?h:0,v=(I=g[b].after)!=null?I:0,_=i.getCurrentTime();_===void 0&&(_=i.getReference().getValue().position.getPolled()),u.push({start:_-T,end:_+v})}if(n.end!==void 0){let g=tr(o,n);g!==null&&(g.bufferedStart===void 0||g.bufferedStart-n.end<1)&&u.push({start:n.end-1,end:Number.MAX_VALUE})}let l=ko(a,u);return l.length===0?{type:"continue",value:void 0}:d?{type:"flush-buffer",value:l}:{type:"clean-buffer",value:l}}function Pd({playbackObserver:n,content:e,options:t,representationEstimator:r,segmentSink:i,segmentQueueCreator:o,wantedBufferAhead:a,maxVideoBufferSize:s},d,u){let{manifest:c,period:l,adaptation:f}=e,p=new U;p.linkToSignal(u);let h=new Map,I=new j(null,p.signal),g,b=e.representations.getValue().representationIds,T=Nf(e.adaptation.representations,b),v=new j(T,p.signal),{estimates:_,callbacks:R}=r({manifest:c,period:l,adaptation:f},I,v,n,p.signal),k=new j(!1);n.listen(A=>{var N;let C=(N=A.canStream)!=null?N:!0;k.getValue()===C&&(m.debug("Stream","isMediaSegmentQueueInterrupted updated to",!C),k.setValue(!C))},{clearSignal:p.signal});let x=o.createSegmentQueue(f.type,{onRequestBegin:R.requestBegin,onRequestEnd:R.requestEnd,onProgress:R.requestProgress,onMetrics:R.metrics},k),P=new j(0);_.onUpdate(({bitrate:A,knownStableBitrate:C})=>{t.enableFastSwitching&&P.setValueIfChanged(C),!(A===void 0||A===g)&&(g=A,m.debug("Stream",`new ${f.type} bitrate estimate received from ABR`,{bitrate:A}),d.bitrateEstimateChange({type:f.type,bitrate:A}))},{emitCurrentValue:!0,clearSignal:p.signal});let M;e.representations.onUpdate(A=>{M!==void 0&&M.cancel();let C=e.representations.getValue().representationIds,N=Nf(e.adaptation.representations,C);v.setValueIfChanged(N),M=new U,M.linkToSignal(p.signal),L(A,M.signal).catch(K=>{(M==null?void 0:M.isUsed())===!0&&U.isCancellationError(K)||(p.cancel(),d.error(K))})},{clearSignal:p.signal,emitCurrentValue:!0});return;async function L(A,C){let N=kd(l,f,A,i,n);switch(N.type){case"continue":break;case"needs-reload":return It(()=>{n.listen(()=>{if(C.isCancelled())return;let{DELTA_POSITION_AFTER_RELOAD:K}=O.getCurrent(),q=K.bitrateSwitch;return d.waitingMediaSourceReload({bufferType:f.type,period:l,timeOffset:q,stayInPeriod:!0})},{includeLastObservation:!0,clearSignal:C})});case"flush-buffer":case"clean-buffer":for(let K of N.value)if(await i.removeBuffer(K.start,K.end),C.isCancelled())return;if(N.type==="flush-buffer"&&(d.needsBufferFlush(),C.isCancelled()))return;break;default:ze(N)}F(C)}function F(A){let C=new U;C.linkToSignal(A);let{representation:N}=_.getValue();if(N===null)return;let K=new j(null,C.signal);_.onUpdate(W=>{if(!(W.representation===null||W.representation.id===N.id))return W.urgent?(m.info("Stream","urgent Representation switch",{bufferType:f.type,estimateBitrate:W.bitrate,prevRepresentationBitrate:N.bitrate,newRepresentationBitrate:W.representation.bitrate}),K.setValue({urgent:!0})):(m.info("Stream","slow Representation switch",{bufferType:f.type,estimateBitrate:W.bitrate,prevRepresentationBitrate:N.bitrate,newRepresentationBitrate:W.representation.bitrate}),K.setValue({urgent:!1}))},{clearSignal:C.signal,emitCurrentValue:!0});let q={type:f.type,adaptation:f,period:l,representation:N};if(I.setValue(N),A.isCancelled()||(d.representationChange(q),A.isCancelled()))return;let X={streamStatusUpdate:d.streamStatusUpdate,encryptionDataEncountered:d.encryptionDataEncountered,manifestMightBeOufOfSync:d.manifestMightBeOufOfSync,needsManifestRefresh:d.needsManifestRefresh,inbandEvent:d.inbandEvent,warning:d.warning,error(W){p.cancel(),d.error(W)},addedSegment(W){R.addedSegment(W)},terminating(){if(!C.isUsed())return C.cancel(),F(A)}};D(N,K,X,A)}function D(A,C,N,K){let q=!1,X=new U;X.linkToSignal(K);let W=gn(a,ie=>B(A,ie),X.signal),H=f.type==="video"?s:new j(1/0);m.info("Stream","changing representation",{bufferType:f.type,representationId:A.id,representationBitrate:A.bitrate});let G=Y({},N,{error(ie){var fe;if(q){m.warn("Stream","Ignoring RepresentationStream error",ie);return}q=!0;let oe=Me(ie,{defaultCode:"NONE",defaultReason:"Unknown `RepresentationStream` error"});if(oe.code!=="BUFFER_FULL_ERROR")N.error(ie);else{m.warn("Stream","received BUFFER_FULL_ERROR",{bufferType:f.type,representationBitrate:A.bitrate});let Re=a.getValue(),he=((fe=h.get(A.id))!=null?fe:1)*.7;if(h.set(A.id,he),he<=.05||B(A,Re)<=2){N.error(oe);return}en(4e3,K).then(()=>D(A,C,N,K)).catch(te)}},terminating(){X.cancel(),N.terminating()}});Lf({playbackObserver:n,content:{representation:A,adaptation:f,period:l,manifest:c},segmentSink:i,segmentQueue:x,terminate:C,options:{bufferGoal:W,maxBufferSize:H,drmSystemId:t.drmSystemId,fastSwitchThreshold:P}},G,K),c.addEventListener("manifestUpdate",ie=>{for(let oe of ie.updatedPeriods)if(oe.period.id===l.id){for(let fe of oe.result.updatedAdaptations)if(fe.adaptation===f.id){for(let Re of fe.removedRepresentations)if(Re===A.id)return K.isCancelled()?void 0:d.waitingMediaSourceReload({bufferType:f.type,period:l,timeOffset:0,stayInPeriod:!0})}}else if(oe.period.start>l.start)break},K)}function B(A,C){let N=h.get(A.id),K=N!==void 0?N:1;return N===void 0&&h.set(A.id,K),K<1&&C===1/0?300*1e3*K:C*K}}function Nf(n,e){let t=n.filter(r=>$(e,r.id)&&!r.shouldBeAvoided&&r.isPlayable()!==!1);return t.length>0?t:n.filter(r=>$(e,r.id)&&r.isPlayable()!==!1)}var Uf=Pd;function Cd(n,e,t,r,i,o){var p,h,I,g;if(n.codec!==void 0&&o.onCodecSwitch==="reload"&&!Hh(t,n.codec))return{type:"needs-reload",value:void 0};let a=n.getLastKnownInventory(),s=[];for(let b of a)b.infos.period.id===e.id&&b.infos.adaptation.id!==t.id&&vt(s,{start:(p=b.bufferedStart)!=null?p:b.start,end:(h=b.bufferedEnd)!=null?h:b.end});let d=n.getPendingOperations();for(let b of d)if(b.type===0){let T=b.value.inventoryInfos;if(T.period.id===e.id&&T.adaptation.id!==t.id){let v=T.segment.time,_=v+T.segment.duration;vt(s,{start:v,end:_})}}if(s.length===0)return{type:"continue",value:void 0};if(r==="reload"){let b=i.getReadyState();if(b===void 0||b>1)return{type:"needs-reload",value:void 0}}let u=r==="direct",c=[],l=er(a,e);if(l!==null&&(l.bufferedEnd===void 0||e.start-l.bufferedEnd<1)&&c.push({start:0,end:e.start+1}),!u){let b=t.type,{ADAP_REP_SWITCH_BUFFER_PADDINGS:T}=O.getCurrent(),v=(I=T[b].before)!=null?I:0,_=(g=T[b].after)!=null?g:0,R=i.getCurrentTime();R===void 0&&(R=i.getReference().getValue().position.getPolled()),c.push({start:R-v,end:R+_})}if(e.end!==void 0){let b=tr(a,e);b!==null&&(b.bufferedStart===void 0||b.bufferedStart-e.end<1)&&c.push({start:e.end-1,end:Number.MAX_VALUE})}let f=ko(s,c);return f.length===0?{type:"continue",value:void 0}:u&&t.type!=="text"?{type:"flush-buffer",value:f}:{type:"clean-buffer",value:f}}function Hh(n,e){return n.representations.some(t=>t.isPlayable()===!0&&da(t.getMimeTypeString(),e))}function Ad({bufferType:n,content:e,garbageCollectors:t,playbackObserver:r,representationEstimator:i,segmentQueueCreator:o,segmentSinksStore:a,options:s,wantedBufferAhead:d,maxVideoBufferSize:u},c,l){let{manifest:f,period:p}=e,h=new j(void 0,l);if(c.periodStreamReady({type:n,manifest:f,period:p,adaptationRef:h}),l.isCancelled())return;let I,g=!0;h.onUpdate(v=>{(async()=>{var B;if(v===void 0)return;let _=new U;if(_.linkToSignal(l),I==null||I.cancel(),I=_,v===null){m.info("Stream","Set no Adaptation",{periodStart:p.start,bufferType:n});let A=a.getStatus(n);if(A.type==="initialized"){if(m.info("Stream","Clearing previous SegmentSink",{periodStart:p.start,bufferType:n}),on.isNative(n))return T(0,!0,_.signal);{let C=(B=p.end)!=null?B:1/0;if(p.start>C)m.warn("Stream","Can't free buffer: period's start is after its end",{periodStart:p.start,periodEnd:C,bufferType:n});else if(await A.value.removeBuffer(p.start,C),_.isUsed())return}}else if(A.type==="uninitialized"&&(a.disableSegmentSink(n),_.isUsed()))return;return c.adaptationChange({type:n,adaptation:null,period:p}),_.isUsed()?void 0:Bf(r,d,n,{period:p},c,_.signal)}let R=p.adaptations[n],k=Q(R!=null?R:[],A=>A.id===v.adaptationId);if(k===void 0){I.cancel(),m.warn("Stream","Unfound chosen Adaptation choice",{adaptationId:v.adaptationId});return}let{DELTA_POSITION_AFTER_RELOAD:x}=O.getCurrent(),P=!1,M;if(g)M=0;else if(v.relativeResumingPosition!==void 0)M=v.relativeResumingPosition;else switch(P=!0,n){case"audio":M=x.trackSwitch.audio;break;case"video":M=x.trackSwitch.video;break;default:M=x.trackSwitch.other;break}if(g=!1,on.isNative(n)&&a.getStatus(n).type==="disabled")return T(M,!0,_.signal);f.addEventListener("manifestUpdate",A=>{for(let C of A.updatedPeriods)if(C.period.id===p.id){for(let N of C.result.removedAdaptations)if(N.id===k.id)return T(M,!0,_.signal)}else if(C.period.start>p.start)break},I.signal);let{representations:L}=v;if(m.info("Stream","Updating adaptation",{bufferType:k.type,periodStart:p.start,adaptationId:k.id}),c.adaptationChange({type:n,adaptation:k,period:p}),_.isUsed())return;let F=qh(a,n,k),D=Cd(F,p,k,v.switchingMode,r,s);if(D.type==="needs-reload")return T(M,!0,_.signal);if(await a.waitForUsableBuffers(_.signal),!_.isUsed()){if(D.type==="flush-buffer"||D.type==="clean-buffer"){for(let{start:A,end:C}of D.value)if(await F.removeBuffer(A,C),_.isUsed())return;if(D.type==="flush-buffer"&&(c.needsBufferFlush({relativeResumingPosition:M,relativePosHasBeenDefaulted:P}),_.isUsed()))return}t.get(F)(_.signal),b(k,L,F,_.signal)}})().catch(_=>{_ instanceof we||(I==null||I.cancel(),c.error(_))})},{clearSignal:l,emitCurrentValue:!0});function b(v,_,R,k){let x=jh(r,v.type);Uf({content:{manifest:f,period:p,adaptation:v,representations:_},options:s,playbackObserver:x,representationEstimator:i,segmentSink:R,segmentQueueCreator:o,wantedBufferAhead:d,maxVideoBufferSize:u},ue(ae({},c),{error:P}),k);function P(M){if(!on.isNative(n)){m.error("Stream",`${n} Stream crashed. Aborting it.`,M instanceof Error?M:""),a.disposeSegmentSink(n);let L=Me(M,{defaultCode:"NONE",defaultReason:"Unknown `AdaptationStream` error"});return c.warning(L),k.isCancelled()?void 0:Bf(r,d,n,{period:p},c,k)}m.error("Stream",`${n} Stream crashed. Stopping playback.`,M instanceof Error?M:""),c.error(M)}}function T(v,_,R){It(()=>{r.listen(()=>{R.isCancelled()||c.waitingMediaSourceReload({bufferType:n,period:p,timeOffset:v,stayInPeriod:_})},{includeLastObservation:!0,clearSignal:R})})}}function qh(n,e,t){let r=n.getStatus(e);if(r.type==="initialized")return m.info("Stream","Reusing a previous SegmentSink for the type",{bufferType:e}),r.value;let i=Gh(t);return n.createSegmentSink(e,i)}function Gh(n){let e=n.representations.filter(t=>t.isPlayable()!==!1);if(e.length>0)return e[0].getMimeTypeString();if(n.representations.length>0)return n.representations[0].getMimeTypeString();throw new re("NO_PLAYABLE_REPRESENTATION","No Representation in the chosen "+n.type+" Adaptation can be played",{tracks:[Tn(n)]})}function jh(n,e){return n.deriveReadOnlyObserver(function(r,i){let o=new j(a(),i);return r.onUpdate(s,{clearSignal:i,emitCurrentValue:!1}),o;function a(){let d=r.getValue(),u=d.buffered[e],c=u!==null?Ro(u,d.position.getWanted()):0;return Y({},d,{bufferGap:c,buffered:u})}function s(){o.setValue(a())}})}function Bf(n,e,t,r,i,o){let{period:a}=r,s=!1;e.onUpdate(d,{emitCurrentValue:!1,clearSignal:o}),n.listen(d,{includeLastObservation:!1,clearSignal:o}),d();function d(){let u=n.getReference().getValue(),c=e.getValue(),l=u.position.getWanted();a.end!==void 0&&l+c>=a.end&&(m.debug("Stream",'full "empty" AdaptationStream',{bufferType:t,periodEnd:a.end,position:l,wantedBufferAhead:c}),s=!0),i.streamStatusUpdate({period:a,bufferType:t,imminentDiscontinuity:null,position:l,isEmptyStream:!0,hasFinishedLoading:s,neededSegments:[]})}}var Ff=Ad;function ha(n,e){if(e.length===0)return[];let t=[],r=n.getLastKnownInventory(),i=n.getPendingOperations();for(let o of r)if(e.some(s=>o.infos.period.id===s.period.id&&o.infos.adaptation.id===s.adaptation.id&&o.infos.representation.id===s.representation.id)){let{bufferedStart:s,bufferedEnd:d}=o;if(s===void 0||d===void 0)return m.warn("Stream","No buffered start or end found from a segment.",{bufferType:o.infos.adaptation.type,segmentStart:o.infos.segment.time}),[{start:0,end:Number.MAX_VALUE}];let u=t[t.length-1];u!==void 0&&u.end===s?u.end=d:t.push({start:s,end:d})}for(let o of i){if(o.type!==0)continue;let a=o.value;e.some(d=>a.inventoryInfos.period.id===d.period.id&&a.inventoryInfos.adaptation.id===d.adaptation.id&&a.inventoryInfos.representation.id===d.representation.id)&&vt(t,{start:a.inventoryInfos.start,end:a.inventoryInfos.end})}return t}function Md(n,e,t,r,i,o,a,s){let{manifest:d,initialPeriod:u}=n,{maxBufferAhead:c,maxBufferBehind:l,wantedBufferAhead:f,maxVideoBufferSize:p}=o,{MINIMUM_MAX_BUFFER_AHEAD:h,MAXIMUM_MAX_BUFFER_AHEAD:I,MAXIMUM_MAX_BUFFER_BEHIND:g}=O.getCurrent(),b=new Ei(_=>{var P,M;let{bufferType:R}=_,k=(P=g[R])!=null?P:1/0,x=(M=I[R])!=null?M:1/0;return L=>{ma({segmentSink:_,playbackObserver:e,maxBufferBehind:gn(l,F=>Math.min(F,k),L),maxBufferAhead:gn(c,F=>{var B;let D=Math.max(F,(B=h[R])!=null?B:0);return Math.min(D,x)},L)},L)}});for(let _ of r.getBufferTypes())T(_,u);function T(_,R){let k=new Pn((D,B)=>D.start-B.start),x=!1,P=new U;return P.linkToSignal(s),e.listen(({position:D})=>{let B=D.getWanted();if(!x||!L(B))return;let A=()=>{var N;return(N=d.getPeriodForTime(B))!=null?N:d.getNextPeriod(B)},C=A();if(!(!E(C)&&k.has(C))){for(m.info("Stream","Destroying all PeriodStreams due to out of bounds situation",{bufferType:_,time:B}),x=!1;k.length()>0;){let N=k.get(k.length()-1);k.removeElement(N),a.periodStreamCleared({type:_,manifest:d,period:N})}if(P.cancel(),P=new U,P.linkToSignal(s),C=A(),C===void 0){m.warn("Stream","The wanted position is not found in the Manifest."),x=!0;return}M(C)}},{clearSignal:s,includeLastObservation:!0}),d.addEventListener("decipherabilityUpdate",D=>{s.isCancelled()||F(D).catch(B=>{s.isCancelled()||(P.cancel(),a.error(B))})},s),M(R);function M(D){let B=ue(ae({},a),{waitingMediaSourceReload(A){let C=k.head();C===void 0||C.id!==A.period.id?a.lockedStream({bufferType:A.bufferType,period:A.period}):a.needsMediaSourceReload({timeOffset:A.timeOffset,minimumPosition:A.stayInPeriod?A.period.start:void 0,maximumPosition:A.stayInPeriod?A.period.end:void 0})},periodStreamReady(A){x=!0,k.add(A.period),a.periodStreamReady(A)},periodStreamCleared(A){k.removeElement(A.period),a.periodStreamCleared(A)},error(A){P.cancel(),a.error(A)}});v(_,D,B,P.signal)}function L(D){let B=k.head(),A=k.last();return B===void 0||A===void 0?!0:B.start>D||(E(A.end)?1/0:A.end)<D}async function F(D){let B=r.getStatus(_),A=D.filter(W=>W.adaptation.type===_);if(A.length===0||B.type!=="initialized"||A.every(W=>W.representation.decipherable===!0))return;let C=B.value,N=A.filter(W=>W.representation.decipherable===void 0),K=A.filter(W=>W.representation.decipherable===!1),q=ha(C,K),X=ha(C,N);for(x=!1,m.info("Stream","Destroying all PeriodStreams for decipherability matters",{bufferType:_});k.length()>0;){let W=k.get(k.length()-1);k.removeElement(W),a.periodStreamCleared({type:_,manifest:d,period:W})}P.cancel(),P=new U,P.linkToSignal(s);for(let{start:W,end:H}of[...q,...X]){if(s.isCancelled())return;if(W<H){if(s.isCancelled())return;await C.removeBuffer(W,H)}}It(()=>{if(s.isCancelled())return;let W=e.getReference().getValue();if(Kf(W,q)){if(a.needsDecipherabilityFlush(),s.isCancelled())return}else if(Kf(W,X)&&(a.needsBufferFlush(),s.isCancelled()))return;let H=W.position.getWanted(),G=d.getPeriodForTime(H);if(G===void 0){a.error(new re("MEDIA_TIME_NOT_FOUND","The wanted position is not found in the Manifest."));return}M(G)})}}function v(_,R,k,x){m.info("Stream","Creating new PeriodStream",{bufferType:_,periodStart:R.start});let P=null,M=new U;M.linkToSignal(x),e.listen(({position:A},C)=>{if(R.end!==void 0&&A.getWanted()>=R.end){let N=d.getPeriodAfter(R);if(R.containsTime(A.getWanted(),N))return;m.info("Stream","Destroying PeriodStream as the current playhead moved above it",{bufferType:_,periodStart:R.start,periodEnd:R.end,position:A.getWanted()}),C(),k.periodStreamCleared({type:_,manifest:d,period:R}),M.cancel()}},{clearSignal:x,includeLastObservation:!0});let L={bufferType:_,content:{manifest:d,period:R},garbageCollectors:b,maxVideoBufferSize:p,segmentQueueCreator:i,segmentSinksStore:r,options:o,playbackObserver:e,representationEstimator:t,wantedBufferAhead:f},F=ue(ae({},k),{streamStatusUpdate(A){if(A.hasFinishedLoading){let C=d.getPeriodAfter(R);C!==null&&D(C)}else P!==null&&(m.info("Stream","Destroying next PeriodStream due to current one being active",{bufferType:_,periodStart:R.start,nextPeriodStart:P.period.start}),k.periodStreamCleared({type:_,manifest:d,period:P.period}),P.canceller.cancel(),P=null);k.streamStatusUpdate(A)},error(A){P!==null&&(P.canceller.cancel(),P=null),M.cancel(),k.error(A)}});Ff(L,F,M.signal),B(M.signal);function D(A){if(P!==null){if(P.period.id===A.id)return;m.warn("Stream","Creating next `PeriodStream` while one was already created.",{bufferType:_,nextPeriodStart:A.start}),k.periodStreamCleared({type:_,manifest:d,period:P.period}),P.canceller.cancel()}let C=new U;C.linkToSignal(x),P={canceller:C,period:A},v(_,A,k,P.canceller.signal)}function B(A){d.addEventListener("manifestUpdate",C=>{for(let N of C.removedPeriods)if(N.id===R.id){if(d.periods.length>0&&d.periods[0].start<=N.start)return It(()=>{if(!A.isCancelled())return a.needsMediaSourceReload({timeOffset:0,minimumPosition:void 0,maximumPosition:void 0})})}else if(N.start>R.start)break;if(C.addedPeriods.length>0&&P!==null){let N=d.getPeriodAfter(R);(N===null||P.period.id!==N.id)&&(m.warn("Stream","Destroying next PeriodStream due to new one being added",{bufferType:_,nextPeriodStart:P.period.start}),k.periodStreamCleared({type:_,manifest:d,period:P.period}),P.canceller.cancel(),P=null)}},A)}}}function Kf(n,e){if(e.length===0)return!1;let t=n.position.getPolled();return n.speed>=0?e[e.length-1].end>=t-5:e[0].start<=t+5}var Vf=Md;var zf=Vf;var Yh={dashParsers:{wasm:null,js:null},createDebugElement:null,directfile:null,decrypt:null,htmlTextDisplayer:null,htmlTextTracksParsers:{},mainThreadMediaSourceInit:null,multithread:null,nativeTextDisplayer:null,nativeTextTracksParsers:{},transports:{}},Ri=Yh;function ya(n){for(let e of n)if(typeof e=="function")e(Ri);else if(!E(e)&&typeof e._addFeature=="function")e._addFeature(Ri);else throw new Error("Unrecognized feature")}var pe=Ri;var Qh={createSync(n){return{syncValue:n,getValueAsAsync(){return Promise.resolve(n)}}},createAsync(n){let e=null;return n.then(t=>{e=t},te),{get syncValue(){return e},getValueAsAsync(){return n}}}},Wf=Qh;var rr=class extends se{};function xd(n,e){let t={audio:null,video:null,text:null};if(e!==null&&(t.text=e.getBufferedRanges()),n===null)return t;let r=Q(n.sourceBuffers,s=>s.type==="audio"),i=Q(n.sourceBuffers,s=>s.type==="video"),o=r==null?void 0:r.getBuffered();o!==void 0&&(t.audio=o);let a=i==null?void 0:i.getBuffered();return a!==void 0&&(t.video=a),t}function wd(n,{autoPlay:e,initialPlayPerformed:t,manifest:r,mediaSource:i,speed:o,textDisplayer:a},s){return n.deriveReadOnlyObserver(function(u,c){let l=new U;l.linkToSignal(c),l.linkToSignal(s);let f=new j(p(),l.signal);return o.onUpdate(h,{clearSignal:l.signal,emitCurrentValue:!1}),u.onUpdate(h,{clearSignal:l.signal,emitCurrentValue:!1}),i==null||i.addEventListener("streamingChanged",()=>{h()},l.signal),f;function p(){var b;let I=u.getValue(),g=o.getValue();return $h(I,r),{maximumPosition:kt(r),bufferGap:I.bufferGap,position:I.position,buffered:xd(i,a),duration:I.duration,rebuffering:I.rebuffering,freezing:I.freezing,paused:{last:I.paused,pending:Xh(t,e)},readyState:I.readyState,speed:g,canStream:(b=i==null?void 0:i.streaming)!=null?b:!0,fullyLoaded:I.fullyLoaded}}function h(){f.setValue(p())}})}function $h(n,e){if(!e.isDynamic||e.isLastPeriodKnown){let t=e.periods[e.periods.length-1];if(t!==void 0&&t.end!==void 0){let r=n.position.getWanted();if(r>=t.start&&r>=t.end-1){let i=n.buffered;(i.length===0||i.end(i.length-1)<n.duration-1)&&n.position.forceWantedPosition(t.end-1)}}}}function Xh(n,e){return n.getValue()?void 0:!e}function ir(n){let{textTracks:e}=n;if(!E(e)){for(let t=0;t<e.length;t++)e[t].mode="disabled";if(n.hasChildNodes()){let{childNodes:t}=n;for(let r=t.length-1;r>=0;r--)if(t[r].nodeName==="track")try{n.removeChild(t[r])}catch(i){m.warn("media","Could not remove text track child from element.")}}}n.src="",n.removeAttribute("src")}function Od(n,e){if(typeof n.changeType=="function"){try{n.changeType(e)}catch(t){return m.warn("mse","Could not call 'changeType' on the given SourceBuffer:",t instanceof Error?t:""),!1}return!0}return!1}function Zh(n){let e=[];for(let t=0;t<n.length;t++){let r=n[t];r.updating&&e.push(r)}return e}function ki(n,e){if(m.debug("mse","Trying to call endOfStream"),n.readyState!=="open"){m.debug("mse","MediaSource not open, cancel endOfStream");return}let{sourceBuffers:t}=n,r=Zh(t);if(r.length===0){m.info("mse","Triggering end of stream");try{n.endOfStream()}catch(o){m.error("mse","Unable to call endOfStream",o instanceof Error?o:new Error("Unknown error"))}return}m.debug("mse","Waiting SourceBuffers to be updated before calling endOfStream.");let i=new U;i.linkToSignal(e);for(let o of r)Fc(o,()=>{i.cancel(),ki(n,e)},i.signal);Kc(t,()=>{i.cancel(),ki(n,e)},i.signal)}function Hf(n,e){let t=new U;t.linkToSignal(e),Gn(n,()=>{m.debug("mse","MediaSource re-opened while end-of-stream is active"),t.cancel(),t=new U,t.linkToSignal(e),ki(n,t.signal)},e),ki(n,t.signal)}function Dd(){let{FORCE_HAS_ISSUES_WITH_HIGH_MEDIA_SOURCE_DURATION:n}=O.getCurrent();return n||V.device===V.DEVICES.PlayStation5}var Jh=365*24*3600,Pi=class{constructor(e){this._mediaSource=e,this._currentMediaSourceDurationUpdateCanceller=null}updateDuration(e,t){this._currentMediaSourceDurationUpdateCanceller!==null&&this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=new U;let r=this._mediaSource,i=this._currentMediaSourceDurationUpdateCanceller.signal,o=ny(r,i),a=new U;a.linkToSignal(i),o.onUpdate(s,{emitCurrentValue:!0,clearSignal:i});function s(){if(a.cancel(),!o.getValue())return;a=new U,a.linkToSignal(i);let d=ty(r.sourceBuffers,a.signal),u=new U;return u.linkToSignal(a.signal),d.onUpdate(c=>{u.cancel(),u=new U,u.linkToSignal(a.signal),!c&&Gf(r,e,t,u.signal)},{clearSignal:a.signal,emitCurrentValue:!0})}}stopUpdating(){this._currentMediaSourceDurationUpdateCanceller!==null&&(this._currentMediaSourceDurationUpdateCanceller.cancel(),this._currentMediaSourceDurationUpdateCanceller=null)}};function ey(n,e,t){let r=e;t||(r=Dd()?1/0:qf(e));let i=0;for(let o=0;o<n.sourceBuffers.length;o++){let a=n.sourceBuffers[o],s=a.buffered.length;s>0&&(i=Math.max(i,a.buffered.end(s-1)))}if(r===n.duration)return"success";if(i>r){if(i<n.duration)try{m.info("mse","Updating duration to what is currently buffered",{maxBufferedEnd:i}),n.duration=i}catch(o){return m.warn("mse","Can't update duration on the MediaSource.",o instanceof Error?o:""),"failed"}return"partial"}else{let o=n.duration;try{if(m.info("mse","Updating duration",{newDuration:r}),n.duration=r,n.readyState==="open"&&!isFinite(r)){let s=qf(e);m.info("mse","calling `mediaSource.setLiveSeekableRange`",{maxSeekable:s}),n.setLiveSeekableRange(0,s)}}catch(s){return m.warn("mse","Can't update duration on the MediaSource.",s instanceof Error?s:""),"failed"}let a=Math.abs(n.duration-r);if(a>=.1){let s=Math.abs(n.duration-o);return a<s?"partial":"failed"}return"success"}}function ty(n,e){if(n.length===0){let i=new j(!1);return i.finish(),i}let t=new j(!1,e);r();for(let i=0;i<n.length;i++){let o=n[i];o.addEventListener("updatestart",r),o.addEventListener("update",r),e.register(()=>{o.removeEventListener("updatestart",r),o.removeEventListener("update",r)})}return t;function r(){for(let i=0;i<n.length;i++)if(n[i].updating){t.setValueIfChanged(!0);return}t.setValueIfChanged(!1)}}function ny(n,e){let t=new j(n.readyState==="open",e);return Gn(n,()=>{m.debug("mse","Reacting to MediaSource open in duration updater"),t.setValueIfChanged(!0)},e),qo(n,()=>{m.debug("mse","Reacting to MediaSource ended in duration updater"),t.setValueIfChanged(!1)},e),Ho(n,()=>{m.debug("mse","Reacting to MediaSource close in duration updater"),t.setValueIfChanged(!1)},e),t}function Gf(n,e,t,r){if(ey(n,e,t)==="success")return;let o=setTimeout(()=>{a(),Gf(n,e,t,r)},2e3),a=r.register(()=>{clearTimeout(o)})}function qf(n){return Math.max(Math.pow(2,32),n+Jh)}var Ci=class extends se{constructor(e,t){if(super(),this.id=e,this.sourceBuffers=[],this._canceller=new U,E(wt))throw new re("MEDIA_SOURCE_NOT_SUPPORTED","No MediaSource Object was found in the current browser.");m.info("mse","Creating MediaSource");let r=t!==void 0?new t:new wt,i=r.handle;this.handle=E(i)?{type:"media-source",value:r}:{type:"handle",value:i},this._mediaSource=r,this.readyState=r.readyState,this._durationUpdater=new Pi(r),this._endOfStreamCanceller=null,Gn(r,()=>{this.readyState=r.readyState,this.trigger("mediaSourceOpen",null)},this._canceller.signal),qo(r,()=>{this.readyState=r.readyState,this.trigger("mediaSourceEnded",null)},this._canceller.signal),Ho(r,()=>{this.readyState=r.readyState,this.trigger("mediaSourceClose",null)},this._canceller.signal),this._mediaSource.streaming!==void 0&&(this.streaming=this._mediaSource.streaming),this._mediaSource.addEventListener("startstreaming",()=>{this.streaming=!0,this.trigger("streamingChanged",null)}),this._mediaSource.addEventListener("endstreaming",()=>{this.streaming=!1,this.trigger("streamingChanged",null)})}addSourceBuffer(e,t){let r=this._mediaSource.addSourceBuffer(t),i=new Ld(e,t,r);return this.sourceBuffers.push(i),i}setDuration(e,t){this._durationUpdater.updateDuration(e,t)}interruptDurationSetting(){this._durationUpdater.stopUpdating()}maintainEndOfStream(){this._endOfStreamCanceller===null&&(this._endOfStreamCanceller=new U,this._endOfStreamCanceller.linkToSignal(this._canceller.signal),m.debug("mse","end-of-stream order received."),Hf(this._mediaSource,this._endOfStreamCanceller.signal))}stopEndOfStream(){this._endOfStreamCanceller!==null&&(m.debug("mse","resume-stream order received."),this._endOfStreamCanceller.cancel(),this._endOfStreamCanceller=null)}dispose(){this.sourceBuffers.forEach(e=>e.dispose()),this._canceller.cancel(),ry(this._mediaSource)}},Ld=class{constructor(e,t,r){this.type=e,this.codec=t,this._canceller=new U,this._sourceBuffer=r,this._operationQueue=[],this._currentOperations=[];let i=this._onError.bind(this),o=this._onUpdateEnd.bind(this);r.addEventListener("updateend",o),r.addEventListener("error",i),this._canceller.signal.register(()=>{r.removeEventListener("updateend",o),r.removeEventListener("error",i)})}appendBuffer(...e){return m.debug("mse","receiving order to push data to the SourceBuffer",{type:this.type}),this._addToQueue({operationName:0,params:e})}remove(e,t){return m.debug("mse","receiving order to remove data from the SourceBuffer",{type:this.type,start:e,end:t}),this._addToQueue({operationName:1,params:[e,t]})}getBuffered(){try{return Le(this._sourceBuffer.buffered)}catch(e){return m.error("mse","Failed to get buffered time range of SourceBuffer",{type:this.type},e instanceof Error?e:"Unknown Error"),[]}}abort(){try{this._sourceBuffer.abort()}catch(e){m.debug("mse","Failed to abort SourceBuffer:",e instanceof Error?e:"Unknown Error")}this._emptyCurrentQueue()}dispose(){try{this._sourceBuffer.abort()}catch(e){}this._emptyCurrentQueue()}_onError(e){let t;e instanceof Error?t=e:e.error instanceof Error?t=e.error:t=new Error("Unknown SourceBuffer Error");let r=this._currentOperations;if(this._currentOperations=[],r.length===0)m.error("mse","error for an unknown operation",t);else{let i=new lt(t.name,t.message,t.name==="QuotaExceededError");for(let o of r)o.reject(i)}}_onUpdateEnd(){let e=this._currentOperations;this._currentOperations=[];try{for(let t of e)t.resolve(Le(this._sourceBuffer.buffered))}catch(t){for(let r of e)t instanceof Error&&t.name==="InvalidStateError"?r.resolve([]):r.reject(t)}this._performNextOperation()}_emptyCurrentQueue(){let e=new we;this._currentOperations.length>0&&(this._currentOperations.forEach(t=>{t.reject(e)}),this._currentOperations=[]),this._operationQueue.length>0&&(this._operationQueue.forEach(t=>{t.reject(e)}),this._operationQueue=[])}_addToQueue(e){return new Promise((t,r)=>{let i=this._operationQueue.length===0&&this._currentOperations.length===0,o=Y({resolve:t,reject:r},e);this._operationQueue.push(o),i&&this._performNextOperation()})}_performNextOperation(){var t,r,i,o,a;if(this._currentOperations.length!==0||this._sourceBuffer.updating)return;let e=this._operationQueue.shift();if(e!==void 0)if(e.operationName===0){this._currentOperations=[{operationName:0,resolve:e.resolve,reject:e.reject}];let s=e.params[0],d=e.params[1],u=s;if(this._operationQueue.length>0&&this._operationQueue[0].operationName===0){let c;s instanceof ArrayBuffer?c=new Uint8Array(s):s instanceof Uint8Array?c=s:c=new Uint8Array(s.buffer);let l=[c];for(;((t=this._operationQueue[0])==null?void 0:t.operationName)===0;){let f=this._operationQueue[0],p=(r=d.appendWindow)!=null?r:[void 0,void 0],h=(i=f.params[1].appendWindow)!=null?i:[void 0,void 0],I=(o=d.timestampOffset)!=null?o:0,g=(a=f.params[1].timestampOffset)!=null?a:0;if(p[0]===h[0]&&p[1]===h[1]&&d.codec===f.params[1].codec&&I===g){let b=f.params[0],T;b instanceof ArrayBuffer?T=new Uint8Array(b):b instanceof Uint8Array?T=b:T=new Uint8Array(b.buffer),l.push(T),this._operationQueue.splice(0,1),this._currentOperations.push({operationName:0,resolve:f.resolve,reject:f.reject})}else break}l.length>1&&(m.info("mse",`: Merging ${l.length} segments together for perf`,{type:this.type}),u=de(...l).buffer)}try{this._appendBufferNow(u,d)}catch(c){let l=c instanceof Error?new lt(c.name,c.message,c.name==="QuotaExceededError"):new lt("Error","Unknown SourceBuffer Error during appendBuffer",!1);this._currentOperations.forEach(f=>{f.reject(l)}),this._currentOperations=[],this._performNextOperation()}}else{this._currentOperations=[e];let[s,d]=e.params;m.debug("mse","removing data from SourceBuffer",{type:this.type,start:s,end:d});try{this._sourceBuffer.remove(s,d)}catch(u){let c=u instanceof Error?new lt(u.name,u.message,!1):new lt("Error","Unknown SourceBuffer Error during remove",!1);e.reject(c),this._currentOperations.forEach(l=>{l.reject(c)}),this._currentOperations=[],this._performNextOperation()}}}_appendBufferNow(e,t){let r=this._sourceBuffer,{codec:i,timestampOffset:o,appendWindow:a=[]}=t;if(i!==void 0&&i!==this.codec&&(m.debug("mse","updating codec",{prevCodec:this.codec,newCodec:i}),Od(r,i)?this.codec=i:m.debug("mse","could not update codec",{prevCodec:this.codec,newCodec:i})),o!==void 0&&r.timestampOffset!==o){let s=o;m.debug("mse","updating timestampOffset",{codec:i,prevTimestampOffset:r.timestampOffset,newTimestampOffset:s}),r.timestampOffset=s}if(a[0]===void 0)r.appendWindowStart>0&&(m.debug("mse","re-setting `appendWindowStart`",{prevWindowStart:r.appendWindowStart}),r.appendWindowStart=0);else if(a[0]!==r.appendWindowStart){if(a[0]>=r.appendWindowEnd){let s=a[0]+1;m.debug("mse","pre-updating `appendWindowEnd`",{prevWindowEnd:r.appendWindowEnd,newWindowEnd:s}),r.appendWindowEnd=s}m.debug("mse","setting `appendWindowStart`",{appendWindowStart:a[0]}),r.appendWindowStart=a[0]}a[1]===void 0?r.appendWindowEnd!==1/0&&(m.debug("mse","re-setting `appendWindowEnd`",{prevWindowStart:r.appendWindowStart}),r.appendWindowEnd=1/0):a[1]!==r.appendWindowEnd&&(m.debug("mse","setting `appendWindowEnd`",{prevWindowEnd:r.appendWindowEnd,newWindowEnd:a[1]}),r.appendWindowEnd=a[1]),m.debug("mse","pushing segment",{type:this.type}),r.appendBuffer(e)}};function ry(n){if(n.readyState!=="closed"){let{readyState:e,sourceBuffers:t}=n;for(let r=t.length-1;r>=0;r--){let i=t[r];try{if(e==="open"){m.info("mse","Aborting SourceBuffer before removing");try{i.abort()}catch(o){}}m.info("mse","Removing SourceBuffer from mediaSource"),n.removeSourceBuffer(i)}catch(o){}}t.length>0&&m.info("mse","Not all SourceBuffers could have been removed.")}}var iy=rt();function Nd(n,e){if(e!==null&&n.src===e&&(m.info("media","Clearing HTMLMediaElement's src"),ir(n)),e!==null)try{m.debug("media","Revoking previous URL"),URL.revokeObjectURL(e)}catch(t){m.warn("media","Error while revoking the media source URL",t instanceof Error?t:"")}}function oy(n,e){if(ic&&"disableRemotePlayback"in n){let t=n.disableRemotePlayback;e.register(()=>{n.disableRemotePlayback=t}),n.disableRemotePlayback=!0}}function ay(n,e){let t=w(n.src)?n.src:null;Nd(n,t);let r=new Ci(iy(),"FORCED_MEDIA_SOURCE"in n?n.FORCED_MEDIA_SOURCE:void 0);return oy(n,e),e.register(()=>{r.dispose()}),r}function Ia(n,e){return ct(e,t=>{let r=ay(n,e);if(r.addEventListener("mediaSourceOpen",()=>{m.info("mse","MediaSource opened"),t(r)},e),m.info("media","Attaching MediaSource URL to the media element",{handleType:r.handle.type}),r.handle.type==="handle")n.srcObject=r.handle.value,e.register(()=>{Nd(n,null)});else{let i=URL.createObjectURL(r.handle.value);n.src=i,e.register(()=>{Nd(n,i)})}})}function Ud(n,e,t){var i;if(!E(t)){let o=bn(n),a=kt(n);if(E(t.position))if(E(t.wallClockTime))if(E(t.fromFirstPosition))if(E(t.fromLastPosition))if(E(t.fromLivePosition)){if(!E(t.percentage)){let{percentage:s}=t;if(m.debug("Init","Initial Position: using startAt.percentage",{percentage:s,min:o,max:a}),s>100)return a;if(s<0)return o;let d=+s/100,u=a-o;return o+u*d}}else{let s=(i=Sn(n))!=null?i:a,{fromLivePosition:d}=t;return m.debug("Init","Initial Position: using startAt.fromLivePosition",{fromLivePosition:d,livePosition:s,min:o}),d>=0?s:Math.max(o,s+d)}else{let{fromLastPosition:s}=t;return m.debug("Init","Initial Position: using startAt.fromLastPosition",{fromLastPosition:s,min:o,max:a}),s>=0?a:Math.max(o,a+s)}else{let{fromFirstPosition:s}=t;return m.debug("Init","Initial Position: using startAt.fromFirstPosition",{fromFirstPosition:s,min:o,max:a}),s<=0?o:Math.min(a,o+s)}else{let s=n.availabilityStartTime===void 0?0:n.availabilityStartTime,d=t.wallClockTime-s;return m.debug("Init","Initial Position: using startAt.wallClockTime",{wallClockTime:t.wallClockTime,wallClockOffset:s,deOffseted:d,min:o,max:a,isDynamic:n.isDynamic}),n.isDynamic?d:Math.max(Math.min(d,a),o)}else return m.debug("Init","Initial Position: using startAt.position",{position:t.position,min:o,max:a,isDynamic:n.isDynamic}),n.isDynamic?t.position:Math.max(Math.min(t.position,a),o)}let r=bn(n);if(n.isLive){let{suggestedPresentationDelay:o,clockOffset:a}=n,s=kt(n),d,{DEFAULT_LIVE_GAP:u}=O.getCurrent();if(a===void 0)m.info("Init","no clock offset found for a live content, starting close to maximum available position",{maximumPosition:s}),d=s;else{let l=n.availabilityStartTime===void 0?0:n.availabilityStartTime,f=(z()+a)/1e3-l;d=Math.min(s,f),m.info("Init","clock offset found for a live content, checking if we can start close to it",{wallClockOffset:l,clockRelativeLiveTime:f,liveTime:d})}let c=o!=null?o:e?u.LOW_LATENCY:u.DEFAULT;return m.debug("Init","Initial Position: Applying gap from live time",{liveTime:d,diffFromLiveTime:c,minimumPosition:r}),Math.max(d-c,r)}return m.info("Init","Initial Position: starting at the minimum available position",{minimumPosition:r}),r}function Ai(){let{FORCE_SHOULD_VALIDATE_METADATA:n}=O.getCurrent();return n||V.isSamsungBrowser}function Bd(n){let{FORCE_DONT_WAIT_FOR_DATA_BEFORE_LOADED:e}=O.getCurrent();return!(e||n&&(V.browser===V.BROWSERS.SafariMobile||V.browser===V.BROWSERS.SafariDesktop))}function Fd(){let{FORCE_WAIT_FOR_HAVE_ENOUGH_DATA:n}=O.getCurrent();return n||V.device===V.DEVICES.PlayStation5}function Mi(n,e,t){let r=new U;r.linkToSignal(t);let i=new j(!1,r.signal);return n.listen(o=>{if(o.rebuffering!==null||o.freezing!==null||o.readyState===0)return;if(!Bd(e)){if(isNaN(o.duration))return;if(o.duration>0){i.setValue(!0),r.cancel();return}}let a=Fd()?4:3;if(o.readyState>=a&&(o.currentRange!==null||o.ended)&&(!Ai()||o.duration>0)){i.setValue(!0),r.cancel();return}},{includeLastObservation:!0,clearSignal:r.signal}),i}var or=class{constructor(e,t){this._last=e,this._wanted=t}serialize(){return[this._last,this._wanted]}getPolled(){return this._last}getWanted(){var e;return(e=this._wanted)!=null?e:this._last}forceWantedPosition(e){this._wanted=e}isAwaitingFuturePosition(){return this._wanted!==null}};function xi({mediaElement:n,playbackObserver:e,startTime:t,mustAutoPlay:r,isDirectfile:i,onWarning:o},a){let s=new j(!1,a);return{autoPlayResult:new Promise((u,c)=>{let l=a.register(b=>{c(b)});if(a.isCancelled())return;let f=!1,p=b=>{let T=e.getPendingSeekInformation();(T===null||T.isInternal)&&e.setCurrentTime(b),f=!0,e.unblockSeeking()};if(!i||typeof t=="number"){let b=typeof t=="number"?t:t();b!==0&&b!==void 0?p(b):e.unblockSeeking(),h()}else e.listen((b,T)=>{let v=typeof t=="number"?t:t();v===void 0&&b.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||b.readyState>=1&&(T(),v!==0&&v!==void 0?p(v):e.unblockSeeking(),h())},{includeLastObservation:!1,clearSignal:a});function h(){let b=!1;e.listen((T,v)=>{if(!b&&(T.seeking!==0||T.event==="seeking"||T.event==="internal-seeking")&&(b=!0),!(f&&!b||T.readyState===0)){if(v(),Ai()&&n.duration===0){let _=new re("MEDIA_ERR_NOT_LOADED_METADATA","Cannot load automatically: your browser falsely announced having loaded the content.");o(_)}a.isCancelled()||I()}},{includeLastObservation:!1,clearSignal:a})}function I(){e.listen((b,T)=>{b.seeking===0&&b.rebuffering===null&&b.readyState>=1&&(T(),g())},{includeLastObservation:!0,clearSignal:a})}function g(){var T;if(m.info("Init","Can begin to play content"),r){if(n.ended)return m.warn("Init","autoplay is enabled but the video is ended. Skipping autoplay to prevent video to start again"),s.setValue(!0),s.finish(),l(),u({type:"skipped"})}else return n.autoplay&&m.warn("Init","autoplay is enabled on HTML media element. Media will play as soon as possible."),s.setValue(!0),s.finish(),l(),u({type:"skipped"});let b;try{b=(T=n.play())!=null?T:Promise.resolve()}catch(v){return l(),c(v)}b.then(()=>{if(!a.isCancelled())return s.setValue(!0),s.finish(),l(),u({type:"autoplay"})}).catch(v=>{if(l(),!a.isCancelled())if(v instanceof Error&&v.name==="NotAllowedError"){m.warn("Init","Media element can't play. It may be due to browser auto-play policies.");let _=new re("MEDIA_ERR_BLOCKED_AUTOPLAY","Cannot trigger auto-play automatically: your browser does not allow it.");return o(_),a.isCancelled()?void 0:u({type:"autoplay-blocked"})}else c(v)})}}),initialPlayPerformed:s}}function wi(n,e,t,r){var l;if(e.length===0)return c("No `keySystems` option given.");if(pe.decrypt===null)return c("EME feature not activated.");let i=new U;i.linkToSignal(r);let o=new j({initializationState:{type:"uninitialized",value:null},drmSystemId:void 0},r),a=pe.decrypt,s=(l=n.FORCED_EME_API)!=null?l:sf("auto");if(s===null)return c("EME API not available on the current page.");m.debug("Init","Creating ContentDecryptor");let d=new a(s,n,e),u=f=>{var p;f>0&&((p=t.onCodecSupportUpdate)==null||p.call(t),d.removeEventListener("stateChange",u))};return d.addEventListener("stateChange",u),d.addEventListener("stateChange",f=>{if(f===1){let p=new j(!1);p.onUpdate((h,I)=>{h&&(I(),f===1&&d.attach())},{clearSignal:i.signal}),o.setValue({initializationState:{type:"awaiting-media-link",value:{isMediaLinked:p}},drmSystemId:d.systemId})}else f===2&&(o.setValue({initializationState:{type:"initialized",value:null},drmSystemId:d.systemId}),d.removeEventListener("stateChange"))}),d.addEventListener("error",f=>{i.cancel(),t.onError(f)}),d.addEventListener("warning",f=>{t.onWarning(f)}),d.addEventListener("blackListProtectionData",f=>{t.onBlackListProtectionData(f)}),d.addEventListener("keyIdsCompatibilityUpdate",f=>{t.onKeyIdsCompatibilityUpdate(f)}),i.signal.register(()=>{d.dispose()}),{statusRef:o,contentDecryptor:{enabled:!0,value:d}};function c(f){let p=new be("MEDIA_IS_ENCRYPTED_ERROR",f,{keyStatuses:void 0,keySystemConfiguration:void 0,keySystem:void 0}),h=new j({initializationState:{type:"initialized",value:null},drmSystemId:void 0});return h.finish(),{statusRef:h,contentDecryptor:{enabled:!1,value:p}}}}var Oi=class{constructor(e){this._displayer=e}pushTextData(e){try{return Promise.resolve(this._displayer.pushTextData(e))}catch(t){return Promise.reject(t)}}remove(e,t){try{return Promise.resolve(this._displayer.removeBuffer(e,t))}catch(r){return Promise.reject(r)}}reset(){this._displayer.reset()}stop(){this._displayer.stop()}};function Cn(){let{FORCE_IS_SEEKING_APPROXIMATE:n}=O.getCurrent();return n||V.device===V.DEVICES.Tizen}var Di=1/60,An=class extends se{constructor(e,t,r){super(),this._playbackObserver=e,this._manifest=t,this._speed=r,this._discontinuitiesStore=[],this._isStarted=!1,this._canceller=new U}start(){if(this._isStarted)return;this._isStarted=!0;let e=new zd(this._playbackObserver,this._speed);this._canceller.signal.register(()=>{e.dispose()}),this._playbackObserver.listen(t=>{let r=this._discontinuitiesStore,{buffered:i,position:o,readyState:a,rebuffering:s,freezing:d}=t,{BUFFER_DISCONTINUITY_THRESHOLD:u,FREEZING_STALLED_DELAY:c}=O.getCurrent();if(d!==null&&z()-d.timestamp>c){s===null?e.stopRebuffering():e.startRebuffering(),this.trigger("stalled","freezing");return}if(s===null){if(e.stopRebuffering(),a===1){let g;t.seeking!==0?g=t.seeking===1?"internal-seek":"seeking":g="not-ready",this.trigger("stalled",g);return}this.trigger("unstalled",null);return}let l=s.reason==="seeking"&&t.seeking===1?"internal-seek":s.reason;if(o.isAwaitingFuturePosition()?(e.stopRebuffering(),m.debug("Init","let rebuffering happen as we're awaiting a future position",{wantedPosition:o.getWanted(),lastPolledPosition:o.getPolled()})):e.startRebuffering(),this._manifest===null||Cn()&&z()-s.timestamp<=1e3){this.trigger("stalled",l);return}let{position:f}=s,p=t.position.isAwaitingFuturePosition()?t.position.getWanted():this._playbackObserver.getCurrentTime();if(f!=null&&this._speed.getValue()>0){let g=sy(r,this._manifest,f);if(g!==null){let b=g+.001;if(b<=p)m.info("Init","position to seek already reached, no seeking",{targetTime:p,realSeekTime:b});else{m.warn("Init","skippable discontinuity found in the stream",{lastPolledPosition:o.getPolled(),realSeekTime:b}),this._playbackObserver.setCurrentTime(b),this.trigger("warning",Vd(f,b));return}}}let h=f!=null?f:o.getPolled(),I=fc(i,h);if((!Cn()||z()-s.timestamp>1e3)&&this._speed.getValue()>0&&I<u){let g=h+I+Di;if(p<g){m.warn("Init","discontinuity encountered inferior to the threshold",{positionBlockedAt:h,seekTo:g,BUFFER_DISCONTINUITY_THRESHOLD:u}),this._playbackObserver.setCurrentTime(g),this.trigger("warning",Vd(h,g));return}}for(let g=this._manifest.periods.length-2;g>=0;g--){let b=this._manifest.periods[g];if(b.end!==void 0&&b.end<=h){if(this._manifest.periods[g+1].start>h&&this._manifest.periods[g+1].start>p){let T=this._manifest.periods[g+1];this._playbackObserver.setCurrentTime(T.start),this.trigger("warning",Vd(h,T.start));return}break}}this.trigger("stalled",l)},{includeLastObservation:!0,clearSignal:this._canceller.signal})}updateDiscontinuityInfo(e){this._isStarted||this.start();let t=this._playbackObserver.getReference().getValue();dy(this._discontinuitiesStore,e,t)}onLockedStream(e,t){var s;this._isStarted||this.start();let r=this._playbackObserver.getReference().getValue();if(r.rebuffering===null||r.paused||this._speed.getValue()<=0||e!=="audio"&&e!=="video")return;let i=r.position.getWanted(),o=(s=r.rebuffering.position)!=null?s:i,a=t.start;i<a&&Math.abs(o-a)<1&&(m.warn("Init",`rebuffering because of a future locked stream.
|
|
4
|
-
Trying to unlock by seeking to the next Period`),this._playbackObserver.setCurrentTime(a+.001))}destroy(){this._canceller.cancel()}};function sy(n,e,t){if(n.length===0)return null;let r=null;for(let i of n){let{period:o}=i;if(o.start>t)return r;let a;if(o.end===void 0||o.end>t){let{discontinuity:s,position:d}=i,{start:u,end:c}=s,l=u!=null?u:d;if(t>=l-Di)if(c===null){let f=Do(e,o);f!==null?a=f.start+Di:m.warn("Init","discontinuity at Period's end but no next Period",{periodId:o.id})}else t<c+Di&&(a=c+Di);a!==void 0&&(m.info("Init","discontinuity found",{stalledPosition:t,discontinuityEnd:a}),r=r!==null&&r>a?r:a)}}return r}function Kd(n){return n.discontinuity!==null}function dy(n,e,t){let r=Math.min(t.position.getPolled(),t.position.getWanted());for(;n.length>0&&n[0].period.end!==void 0&&n[0].period.end+10<r;)n.shift();let{period:i,bufferType:o}=e;if(!(o!=="audio"&&o!=="video")){for(let a=0;a<n.length;a++)if(n[a].period.id===i.id){if(n[a].bufferType===o){Kd(e)?n[a]=e:n.splice(a,1);return}}else if(n[a].period.start>i.start){Kd(e)&&n.splice(a,0,e);return}Kd(e)&&n.push(e)}}function Vd(n,e){return new re("DISCONTINUITY_ENCOUNTERED","A discontinuity has been encountered at position "+String(n)+", seeking at position "+String(e))}var zd=class{constructor(e,t){this._speedUpdateCanceller=new U,this._isRebuffering=!1,this._playbackObserver=e,this._isDisposed=!1,this._speed=t,this._updateSpeed()}startRebuffering(){this._isRebuffering||this._isDisposed||(this._isRebuffering=!0,this._speedUpdateCanceller.cancel(),m.info("Init","Pause playback to build buffer"),this._playbackObserver.setPlaybackRate(0))}stopRebuffering(){!this._isRebuffering||this._isDisposed||(this._isRebuffering=!1,this._speedUpdateCanceller=new U,this._updateSpeed())}dispose(){this._speedUpdateCanceller.cancel(),this._isDisposed=!0}_updateSpeed(){this._speed.onUpdate(e=>{m.info("Init","Resume playback speed",{newSpeed:e}),this._playbackObserver.setPlaybackRate(e)},{clearSignal:this._speedUpdateCanceller.signal,emitCurrentValue:!0})}};function uy(n,e){return n.id===e.id&&n.start===e.start&&n.end===e.end}var jf=uy;function ly(n,e){let t=[],{periods:r}=e;for(let i of r){let{streamEvents:o}=i;o.forEach(({start:a,end:s,id:d,data:u})=>{for(let f of n)if(jf(f,{id:d,start:a,end:s})){t.push(f);return}let c;if(u.value.xmlData!==void 0){let f=u.value.xmlData.namespaces.reduce((h,I)=>h+"xmlns:"+I.key+'="'+I.value+'" ',"<toremove ");f+=">";let p=new DOMParser().parseFromString(f+u.value.xmlData.data+"</toremove>","application/xml").documentElement;c=p.children.length>0?p.children[0]:p.childNodes[0]}else return;let l={type:u.type,value:ue(ae({},u.value),{xmlData:void 0,element:c})};if(s===void 0){let f={start:a,id:d,data:l,publicEvent:{start:a,data:l}};t.push(f)}else{let f={start:a,end:s,id:d,data:l,publicEvent:{start:a,end:s,data:l}};t.push(f)}})}return t}var Wd=ly;var Li=class extends se{constructor(e,t){super(),this._manifest=e,this._playbackObserver=t,this._canceller=null,this._scheduledEventsRef=new j([]),this._eventsBeingPlayed=new WeakMap}start(){if(this._canceller!==null)return;this._canceller=new U;let e=this._canceller.signal,t=this._playbackObserver,r=!1,i=new U;i.linkToSignal(e),this._scheduledEventsRef.setValue(Wd([],this._manifest)),this._scheduledEventsRef.onUpdate(({length:o})=>{if(o===0){r&&(i.cancel(),i=new U,i.linkToSignal(e),r=!1);return}else if(r)return;r=!0;let a=c(),s=()=>{let l=c();this._emitStreamEvents(this._scheduledEventsRef.getValue(),a,l,i.signal),a=l},{STREAM_EVENT_EMITTER_POLL_INTERVAL:d}=O.getCurrent(),u=setInterval(s,d);t.listen(s,{includeLastObservation:!1,clearSignal:i.signal}),i.signal.register(()=>{clearInterval(u)});function c(){var h;let l=t.getReference().getValue(),f=(h=t.getCurrentTime())!=null?h:t.getReference().getValue().position.getPolled(),p=l.seeking!==0;return{currentTime:f,isSeeking:p}}},{emitCurrentValue:!0,clearSignal:e})}onManifestUpdate(e){let t=this._scheduledEventsRef.getValue();this._scheduledEventsRef.setValue(Wd(t,e))}stop(){this._canceller!==null&&(this._canceller.cancel(),this._canceller=null)}_emitStreamEvents(e,t,r,i){let{currentTime:o}=t,{isSeeking:a,currentTime:s}=r,d=[],u=[];for(let c=0;c<e.length;c++){let l=e[c],f=l.start,p=Hd(l)?l.end:void 0;this._eventsBeingPlayed.has(l)?(f>s||p!==void 0&&s>=p)&&(Hd(l)&&u.push(l.publicEvent),this._eventsBeingPlayed.delete(l)):f<=s&&p!==void 0&&s<p?(d.push({type:"stream-event",value:l.publicEvent}),this._eventsBeingPlayed.set(l,!0)):o<f&&s>=(p!=null?p:f)&&(a?d.push({type:"stream-event-skip",value:l.publicEvent}):(d.push({type:"stream-event",value:l.publicEvent}),Hd(l)&&u.push(l.publicEvent)))}if(d.length>0){for(let c of d)if(c.type==="stream-event"?this.trigger("event",c.value):this.trigger("eventSkip",c.value),i.isCancelled())return}if(u.length>0){for(let c of u)if(typeof c.onExit=="function"&&c.onExit(),i.isCancelled())return}}};function Hd(n){return n.end!==void 0}var Yf=Li;function Ni(n,e,t){if(t.isCancelled())return;n.addEventListener("error",r),t.register(()=>{n.removeEventListener("error",r)});function r(){let i=n.error,o,a;switch(E(i)||(o=i.code,a=i.message),o){case 1:return a=a!=null?a:"The fetching of the associated resource was aborted by the user's request.",e(new re("MEDIA_ERR_ABORTED",a));case 2:return a=a!=null?a:"A network error occurred which prevented the media from being successfully fetched",e(new re("MEDIA_ERR_NETWORK",a));case 3:return a=a!=null?a:"An error occurred while trying to decode the media resource",e(new re("MEDIA_ERR_DECODE",a));case 4:return a=a!=null?a:"The media resource has been found to be unsuitable.",e(new re("MEDIA_ERR_SRC_NOT_SUPPORTED",a));default:return a=a!=null?a:"The HTMLMediaElement errored due to an unknown reason.",e(new re("MEDIA_ERR_UNKNOWN",a))}}}var Mn=class extends rr{constructor(e){super(),this._initSettings=e,this._initCanceller=new U,this._manifest=null,this._decryptionCapabilities={status:"uninitialized",value:null};let t=e.url===void 0?void 0:[e.url];this._cmcdDataBuilder=e.cmcd===void 0?null:new Rc(e.cmcd),this._manifestFetcher=new sd(t,e.transport,ue(ae({},e.manifestRequestSettings),{lowLatencyMode:e.lowLatencyMode,cmcdDataBuilder:this._cmcdDataBuilder}))}prepare(){this._manifest===null&&(this._manifest=Wf.createAsync(ct(this._initCanceller.signal,(e,t)=>{this._manifestFetcher.addEventListener("warning",r=>this.trigger("warning",r)),this._manifestFetcher.addEventListener("error",r=>{this.trigger("error",r),t(r)}),this._manifestFetcher.addEventListener("manifestReady",r=>{e(r)})})),this._manifestFetcher.start(),this._initCanceller.signal.register(()=>{this._manifestFetcher.dispose()}))}start(e,t){this.prepare(),Ni(e,r=>this._onFatalError(r),this._initCanceller.signal),this._setupInitialMediaSourceAndDecryption(e).then(r=>this._onInitialMediaSourceReady(e,r.mediaSource,t,r.drmSystemId,r.unlinkMediaSource)).catch(r=>{this._onFatalError(r)})}updateContentUrls(e,t){this._manifestFetcher.updateContentUrls(e,t)}dispose(){this._initCanceller.cancel()}_onFatalError(e){this._initCanceller.isUsed()||(this._initCanceller.cancel(),this.trigger("error",e))}_setupInitialMediaSourceAndDecryption(e){let t=this._initCanceller;return ct(t.signal,r=>{let{keySystems:i}=this._initSettings,{statusRef:o,contentDecryptor:a}=wi(e,i,{onWarning:s=>this.trigger("warning",s),onError:s=>this._onFatalError(s),onBlackListProtectionData:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();my(d,s)})().catch(te)},onKeyIdsCompatibilityUpdate:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();fy(d,s.whitelistedKeyIds,s.blacklistedKeyIds,s.delistedKeyIds)})().catch(te)},onCodecSupportUpdate:()=>{var d,u;let s=(d=this._manifest)==null?void 0:d.syncValue;E(s)?(u=this._manifest)==null||u.getValueAsAsync().then(c=>{this._initCanceller.isUsed()||this._refreshManifestCodecSupport(c)},te):this._refreshManifestCodecSupport(s)}},t.signal);a.enabled?this._decryptionCapabilities={status:"enabled",value:a.value}:this._decryptionCapabilities={status:"disabled",value:a.value},o.onUpdate((s,d)=>{if(s.initializationState.type==="uninitialized")return;d();let u=new U;u.linkToSignal(t.signal),Ia(e,u.signal).then(c=>{let l=o.getValue();if(l.initializationState.type==="awaiting-media-link")l.initializationState.value.isMediaLinked.setValue(!0),o.onUpdate((f,p)=>{if(f.initializationState.type==="initialized"){p(),r({mediaSource:c,drmSystemId:f.drmSystemId,unlinkMediaSource:u});return}},{emitCurrentValue:!0,clearSignal:t.signal});else if(s.initializationState.type==="initialized"){r({mediaSource:c,drmSystemId:s.drmSystemId,unlinkMediaSource:u});return}}).catch(c=>{u.isUsed()||this._onFatalError(c)})},{emitCurrentValue:!0,clearSignal:t.signal})})}async _onInitialMediaSourceReady(e,t,r,i,o){var k;let{adaptiveOptions:a,autoPlay:s,bufferOptions:d,lowLatencyMode:u,segmentRequestOptions:c,speed:l,startAt:f,textTrackOptions:p,transport:h}=this._initSettings,I=this._initCanceller;ne(this._manifest!==null);let g;try{g=(k=this._manifest.syncValue)!=null?k:await this._manifest.getValueAsAsync()}catch(x){return}g.addEventListener("manifestUpdate",x=>{this.trigger("manifestUpdate",x),this._refreshManifestCodecSupport(g)},I.signal),g.addEventListener("decipherabilityUpdate",x=>{this.trigger("decipherabilityUpdate",x)},I.signal),g.addEventListener("supportUpdate",()=>{this.trigger("codecSupportUpdate",null)},I.signal),m.debug("Init","Calculating initial time");let b=Ud(g,u,f);m.debug("Init","Initial time calculated",{initialTime:b});let T=_c(a),v=Y({textTrackOptions:p,drmSystemId:i},d),_=new Wn(I.signal),R=new cd(h,_,this._cmcdDataBuilder,c);this._refreshManifestCodecSupport(g),this.trigger("manifestReady",g),!I.isUsed()&&this._setupContentWithNewMediaSource({mediaElement:e,playbackObserver:r,mediaSource:t,initialTime:b,autoPlay:s,manifest:g,representationEstimator:T,cdnPrioritizer:_,segmentQueueCreator:R,speed:l,bufferOptions:v},o)}_setupContentWithNewMediaSource(e,t){this._startLoadingContentOnMediaSource(e,this._createReloadMediaSourceCallback(e,t),t.signal)}_createReloadMediaSourceCallback(e,t){let r=this._initCanceller;return i=>{if(t.cancel(),r.isUsed()||(this.trigger("reloadingMediaSource",i),r.isUsed()))return;let o=new U;o.linkToSignal(r.signal),Ia(e.mediaElement,o.signal).then(a=>{this._setupContentWithNewMediaSource(ue(ae({},e),{mediaSource:a,initialTime:i.position,autoPlay:i.autoPlay}),o)}).catch(a=>{o.isUsed()||this._onFatalError(a)})}}_startLoadingContentOnMediaSource(e,t,r){var B,A;let{autoPlay:i,bufferOptions:o,initialTime:a,manifest:s,mediaElement:d,mediaSource:u,playbackObserver:c,representationEstimator:l,cdnPrioritizer:f,segmentQueueCreator:p,speed:h}=e,{transport:I}=this._initSettings,g=(B=s.getPeriodForTime(a))!=null?B:s.getNextPeriod(a);if(g===void 0){let C=new re("MEDIA_STARTING_TIME_NOT_FOUND","Wanted starting time not found in the Manifest.");return this._onFatalError(C)}let b=null,T=cy(d,this._initSettings.textTrackOptions);if(T!==null){let C=new Oi(T);b=C,r.register(()=>{C.stop(),T==null||T.stop()})}let v=new on(u,d.nodeName==="VIDEO",b);r.register(()=>{v.disposeAll()});let{autoPlayResult:_,initialPlayPerformed:R}=xi({mediaElement:d,playbackObserver:c,startTime:a,mustAutoPlay:i,onWarning:C=>{this.trigger("warning",C)},isDirectfile:!1},r);if(r.isCancelled())return;R.onUpdate((C,N)=>{if(C){N();let K=new Yf(s,c);s.addEventListener("manifestUpdate",()=>{K.onManifestUpdate(s)},r),K.addEventListener("event",q=>{this.trigger("streamEvent",q)},r),K.addEventListener("eventSkip",q=>{this.trigger("streamEventSkip",q)},r),K.start(),r.register(()=>{K.stop()})}},{clearSignal:r,emitCurrentValue:!0});let k=wd(c,{autoPlay:i,manifest:s,mediaSource:u,textDisplayer:T,initialPlayPerformed:R,speed:h},r);(A=this._cmcdDataBuilder)==null||A.startMonitoringPlayback(k),r.register(()=>{var C;(C=this._cmcdDataBuilder)==null||C.stopMonitoringPlayback()});let x=this._createRebufferingController(c,s,h,r),P=new hi(v);os()&&s.addEventListener("decipherabilityUpdate",C=>{C.some(N=>N.representation.decipherable!==!0)&&D(0,void 0,void 0)},r),k.listen(C=>{Id(C,v);let N=P.onNewObservation(C);if(N===null)return;let K=()=>{var H;let q=c.getReference().getValue(),X=q.position.isAwaitingFuturePosition()?q.position.getWanted():(H=k.getCurrentTime())!=null?H:q.position.getPolled(),W=R.getValue()?!c.getIsPaused():i;t({position:X,autoPlay:W})};py(N,{enableRepresentationAvoidance:this._initSettings.enableRepresentationAvoidance,manifest:s,triggerReload:K,playbackObserver:c})},{clearSignal:r});let M=gd(s,u,k,v,{onWarning:C=>this.trigger("warning",C),onPeriodChanged:C=>this.trigger("activePeriodChanged",{period:C})},r);_.then(()=>{Mi(c,!1,r).onUpdate((C,N)=>{if(C){let K=md(I.thumbnails,f);N(),this.trigger("loaded",{getSegmentSinkMetrics:async()=>new Promise(q=>q(v.getSegmentSinksMetrics())),getThumbnailData:async(q,X,W)=>yd(K,s,q,X,W)})}},{emitCurrentValue:!0,clearSignal:r})}).catch(C=>{r.isCancelled()||this._onFatalError(C)});let L=this;zf({manifest:s,initialPeriod:g},k,l,v,p,o,F(),r);function F(){return{needsBufferFlush:C=>{var H;let N,K=c.getReference().getValue(),q=K.position.isAwaitingFuturePosition()?K.position.getWanted():d.currentTime,X=(H=C==null?void 0:C.relativeResumingPosition)!=null?H:0,W=!!(C!=null&&C.relativePosHasBeenDefaulted);X===0&&W?N=q+.001:N=q+X,c.setCurrentTime(N),c.listen((G,ie)=>{(G.currentRange!==null||G.position.getPolled()>N+.1)&&(ie(),c.setCurrentTime(G.position.getWanted()+.001))},{includeLastObservation:!1,clearSignal:r})},streamStatusUpdate(C){let{period:N,bufferType:K,imminentDiscontinuity:q,position:X}=C;x.updateDiscontinuityInfo({period:N,bufferType:K,discontinuity:q,position:X}),!r.isCancelled()&&s.isLastPeriodKnown&&C.period.id===s.periods[s.periods.length-1].id&&(C.hasFinishedLoading||C.isEmptyStream?M.onLastSegmentFinishedLoading(C.bufferType):M.onLastSegmentLoadingResume(C.bufferType))},needsManifestRefresh:()=>L._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!0,canUseUnsafeMode:!0}),manifestMightBeOufOfSync:()=>{let{OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:C}=O.getCurrent();L._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!1,canUseUnsafeMode:!1,delay:C})},lockedStream:C=>x.onLockedStream(C.bufferType,C.period),adaptationChange:C=>{L.trigger("adaptationChange",C),!r.isCancelled()&&M.onAdaptationChange(C.type,C.period,C.adaptation)},representationChange:C=>{L.trigger("representationChange",C),!r.isCancelled()&&M.onRepresentationChange(C.type,C.period)},inbandEvent:C=>L.trigger("inbandEvents",C),warning:C=>L.trigger("warning",C),periodStreamReady:C=>L.trigger("periodStreamReady",C),periodStreamCleared:C=>{M.onPeriodCleared(C.type,C.period),!r.isCancelled()&&L.trigger("periodStreamCleared",{type:C.type,periodId:C.period.id})},bitrateEstimateChange:C=>{var N;(N=L._cmcdDataBuilder)==null||N.updateThroughput(C.type,C.bitrate),L.trigger("bitrateEstimateChange",C)},needsMediaSourceReload:C=>{D(C.timeOffset,C.minimumPosition,C.maximumPosition)},needsDecipherabilityFlush(){var N,K,q,X;let C=Zn(d);if(as(C==null?void 0:C[0])){let W=k.getReference().getValue(),H=W.position.isAwaitingFuturePosition()?W.position.getWanted():(N=k.getCurrentTime())!=null?N:W.position.getPolled(),G=(q=(K=W.paused.pending)!=null?K:k.getIsPaused())!=null?q:W.paused.last;t({position:H,autoPlay:!G})}else{let W=k.getReference().getValue(),H=W.position.isAwaitingFuturePosition()?W.position.getWanted():(X=k.getCurrentTime())!=null?X:W.position.getPolled();H+.001<W.duration?c.setCurrentTime(d.currentTime+.001):c.setCurrentTime(H)}},encryptionDataEncountered:C=>{if(L._decryptionCapabilities.status==="disabled"){L._onFatalError(L._decryptionCapabilities.value);return}else if(L._decryptionCapabilities.status==="uninitialized"){m.error("Init","received encryption data without known decryption capabilities");return}for(let N of C)if(L._decryptionCapabilities.value.onInitializationData(N),r.isCancelled())return},error:C=>L._onFatalError(C)}}function D(C,N,K){var G,ie,oe;let q=k.getReference().getValue(),X=q.position.isAwaitingFuturePosition()?q.position.getWanted():(G=k.getCurrentTime())!=null?G:q.position.getPolled(),W=(oe=(ie=q.paused.pending)!=null?ie:k.getIsPaused())!=null?oe:q.paused.last,H=X+C;N!==void 0&&(H=Math.max(N,H)),K!==void 0&&(H=Math.min(K,H)),t({position:H,autoPlay:!W})}}_createRebufferingController(e,t,r,i){let o=new An(e,t,r);return o.addEventListener("stalled",a=>this.trigger("stalled",a)),o.addEventListener("unstalled",()=>this.trigger("unstalled",null)),o.addEventListener("warning",a=>this.trigger("warning",a)),i.register(()=>o.destroy()),o.start(),o}getCodecsSupportInfo(e){return e.map(r=>{var s;let i=`${r.mimeType};codecs="${r.codec}"`,o=ns(i);if(!o)return{mimeType:r.mimeType,codec:r.codec,supported:!1,supportedIfEncrypted:!1};let a;if(this._decryptionCapabilities.status==="uninitialized")a=void 0;else if(this._decryptionCapabilities.status==="disabled")a=!0;else{let d=this._decryptionCapabilities.value;d.getState()!==0&&(a=(s=d.isCodecSupported(r.mimeType,r.codec))!=null?s:!0)}return{mimeType:r.mimeType,codec:r.codec,supported:o,supportedIfEncrypted:a}})}_refreshManifestCodecSupport(e){let t=e.getCodecsWithUnknownSupport(),r=this.getCodecsSupportInfo(t);if(r.length>0)try{e.updateCodecSupport(r)}catch(i){this._onFatalError(i)}}};function cy(n,e){return e.textTrackMode==="html"&&pe.htmlTextDisplayer!==null?new pe.htmlTextDisplayer(n,e.textTrackElement):pe.nativeTextDisplayer!==null?new pe.nativeTextDisplayer(n):null}function fy(n,e,t,r){n.updateRepresentationsDeciperability(i=>{let{representation:o}=i;if(o.contentProtections===void 0)return o.decipherable;let a=o.contentProtections.keyIds;if(a!==void 0)for(let s of a){for(let d of t)if(Se(d,s))return!1;for(let d of e)if(Se(d,s))return!0;for(let d of r)if(Se(d,s))return}return o.decipherable})}function my(n,e){n.updateRepresentationsDeciperability(t=>{var o,a;let r=t.representation;if(r.decipherable===!1)return!1;let i=(a=(o=r.contentProtections)==null?void 0:o.initData)!=null?a:[];for(let s of i)if((e.type===void 0||s.type===e.type)&&e.values.getFormattedValues().every(u=>s.values.some(c=>(u.systemId===void 0||c.systemId===u.systemId)&&Se(c.data,u.data))))return!1;return r.decipherable})}function py(n,{playbackObserver:e,enableRepresentationAvoidance:t,manifest:r,triggerReload:i}){switch(n.type){case"reload":{m.info("Init","Planning reload due to freeze"),i();break}case"flush":{m.info("Init","Flushing buffer due to freeze");let o=e.getReference().getValue(),a=o.position.isAwaitingFuturePosition()?o.position.getWanted():e.getCurrentTime(),s=n.value.relativeSeek,d=a+s;e.setCurrentTime(d);break}case"avoid-representations":{let o=n.value;t&&r.addRepresentationsToAvoid(o),i();break}default:ze(n)}}var gy="<",hy=60,Qf=">",ba=62,qd=45,$f=47,yy=33,Xf=39,Zf=34,Gd=91,Iy=93,by=`\r
|
|
4
|
+
Trying to unlock by seeking to the next Period`),this._playbackObserver.setCurrentTime(a+.001))}destroy(){this._canceller.cancel()}};function sy(n,e,t){if(n.length===0)return null;let r=null;for(let i of n){let{period:o}=i;if(o.start>t)return r;let a;if(o.end===void 0||o.end>t){let{discontinuity:s,position:d}=i,{start:u,end:c}=s,l=u!=null?u:d;if(t>=l-Di)if(c===null){let f=Do(e,o);f!==null?a=f.start+Di:m.warn("Init","discontinuity at Period's end but no next Period",{periodId:o.id})}else t<c+Di&&(a=c+Di);a!==void 0&&(m.info("Init","discontinuity found",{stalledPosition:t,discontinuityEnd:a}),r=r!==null&&r>a?r:a)}}return r}function Kd(n){return n.discontinuity!==null}function dy(n,e,t){let r=Math.min(t.position.getPolled(),t.position.getWanted());for(;n.length>0&&n[0].period.end!==void 0&&n[0].period.end+10<r;)n.shift();let{period:i,bufferType:o}=e;if(!(o!=="audio"&&o!=="video")){for(let a=0;a<n.length;a++)if(n[a].period.id===i.id){if(n[a].bufferType===o){Kd(e)?n[a]=e:n.splice(a,1);return}}else if(n[a].period.start>i.start){Kd(e)&&n.splice(a,0,e);return}Kd(e)&&n.push(e)}}function Vd(n,e){return new re("DISCONTINUITY_ENCOUNTERED","A discontinuity has been encountered at position "+String(n)+", seeking at position "+String(e))}var zd=class{constructor(e,t){this._speedUpdateCanceller=new U,this._isRebuffering=!1,this._playbackObserver=e,this._isDisposed=!1,this._speed=t,this._updateSpeed()}startRebuffering(){this._isRebuffering||this._isDisposed||(this._isRebuffering=!0,this._speedUpdateCanceller.cancel(),m.info("Init","Pause playback to build buffer"),this._playbackObserver.setPlaybackRate(0))}stopRebuffering(){!this._isRebuffering||this._isDisposed||(this._isRebuffering=!1,this._speedUpdateCanceller=new U,this._updateSpeed())}dispose(){this._speedUpdateCanceller.cancel(),this._isDisposed=!0}_updateSpeed(){this._speed.onUpdate(e=>{m.info("Init","Resume playback speed",{newSpeed:e}),this._playbackObserver.setPlaybackRate(e)},{clearSignal:this._speedUpdateCanceller.signal,emitCurrentValue:!0})}};function uy(n,e){return n.id===e.id&&n.start===e.start&&n.end===e.end}var jf=uy;function ly(n,e){let t=[],{periods:r}=e;for(let i of r){let{streamEvents:o}=i;o.forEach(({start:a,end:s,id:d,data:u})=>{for(let f of n)if(jf(f,{id:d,start:a,end:s})){t.push(f);return}let c;if(u.value.xmlData!==void 0){let f=u.value.xmlData.namespaces.reduce((h,I)=>h+"xmlns:"+I.key+'="'+I.value+'" ',"<toremove ");f+=">";let p=new DOMParser().parseFromString(f+u.value.xmlData.data+"</toremove>","application/xml").documentElement;c=p.children.length>0?p.children[0]:p.childNodes[0]}else return;let l={type:u.type,value:ue(ae({},u.value),{xmlData:void 0,element:c})};if(s===void 0){let f={start:a,id:d,data:l,publicEvent:{start:a,data:l}};t.push(f)}else{let f={start:a,end:s,id:d,data:l,publicEvent:{start:a,end:s,data:l}};t.push(f)}})}return t}var Wd=ly;var Li=class extends se{constructor(e,t){super(),this._manifest=e,this._playbackObserver=t,this._canceller=null,this._scheduledEventsRef=new j([]),this._eventsBeingPlayed=new WeakMap}start(){if(this._canceller!==null)return;this._canceller=new U;let e=this._canceller.signal,t=this._playbackObserver,r=!1,i=new U;i.linkToSignal(e),this._scheduledEventsRef.setValue(Wd([],this._manifest)),this._scheduledEventsRef.onUpdate(({length:o})=>{if(o===0){r&&(i.cancel(),i=new U,i.linkToSignal(e),r=!1);return}else if(r)return;r=!0;let a=c(),s=()=>{let l=c();this._emitStreamEvents(this._scheduledEventsRef.getValue(),a,l,i.signal),a=l},{STREAM_EVENT_EMITTER_POLL_INTERVAL:d}=O.getCurrent(),u=setInterval(s,d);t.listen(s,{includeLastObservation:!1,clearSignal:i.signal}),i.signal.register(()=>{clearInterval(u)});function c(){var h;let l=t.getReference().getValue(),f=(h=t.getCurrentTime())!=null?h:t.getReference().getValue().position.getPolled(),p=l.seeking!==0;return{currentTime:f,isSeeking:p}}},{emitCurrentValue:!0,clearSignal:e})}onManifestUpdate(e){let t=this._scheduledEventsRef.getValue();this._scheduledEventsRef.setValue(Wd(t,e))}stop(){this._canceller!==null&&(this._canceller.cancel(),this._canceller=null)}_emitStreamEvents(e,t,r,i){let{currentTime:o}=t,{isSeeking:a,currentTime:s}=r,d=[],u=[];for(let c=0;c<e.length;c++){let l=e[c],f=l.start,p=Hd(l)?l.end:void 0;this._eventsBeingPlayed.has(l)?(f>s||p!==void 0&&s>=p)&&(Hd(l)&&u.push(l.publicEvent),this._eventsBeingPlayed.delete(l)):f<=s&&p!==void 0&&s<p?(d.push({type:"stream-event",value:l.publicEvent}),this._eventsBeingPlayed.set(l,!0)):o<f&&s>=(p!=null?p:f)&&(a?d.push({type:"stream-event-skip",value:l.publicEvent}):(d.push({type:"stream-event",value:l.publicEvent}),Hd(l)&&u.push(l.publicEvent)))}if(d.length>0){for(let c of d)if(c.type==="stream-event"?this.trigger("event",c.value):this.trigger("eventSkip",c.value),i.isCancelled())return}if(u.length>0){for(let c of u)if(typeof c.onExit=="function"&&c.onExit(),i.isCancelled())return}}};function Hd(n){return n.end!==void 0}var Yf=Li;function Ni(n,e,t){if(t.isCancelled())return;n.addEventListener("error",r),t.register(()=>{n.removeEventListener("error",r)});function r(){let i=n.error,o,a;switch(E(i)||(o=i.code,a=i.message),o){case 1:return a=a!=null?a:"The fetching of the associated resource was aborted by the user's request.",e(new re("MEDIA_ERR_ABORTED",a));case 2:return a=a!=null?a:"A network error occurred which prevented the media from being successfully fetched",e(new re("MEDIA_ERR_NETWORK",a));case 3:return a=a!=null?a:"An error occurred while trying to decode the media resource",e(new re("MEDIA_ERR_DECODE",a));case 4:return a=a!=null?a:"The media resource has been found to be unsuitable.",e(new re("MEDIA_ERR_SRC_NOT_SUPPORTED",a));default:return a=a!=null?a:"The HTMLMediaElement errored due to an unknown reason.",e(new re("MEDIA_ERR_UNKNOWN",a))}}}var Mn=class extends rr{constructor(e){super(),this._initSettings=e,this._initCanceller=new U,this._manifest=null,this._decryptionCapabilities={status:"uninitialized",value:null};let t=e.url===void 0?void 0:[e.url];this._cmcdDataBuilder=e.cmcd===void 0?null:new Rc(e.cmcd),this._manifestFetcher=new sd(t,e.transport,ue(ae({},e.manifestRequestSettings),{lowLatencyMode:e.lowLatencyMode,cmcdDataBuilder:this._cmcdDataBuilder}))}prepare(){this._manifest===null&&(this._manifest=Wf.createAsync(ct(this._initCanceller.signal,(e,t)=>{this._manifestFetcher.addEventListener("warning",r=>this.trigger("warning",r)),this._manifestFetcher.addEventListener("error",r=>{this.trigger("error",r),t(r)}),this._manifestFetcher.addEventListener("manifestReady",r=>{e(r)})})),this._manifestFetcher.start(),this._initCanceller.signal.register(()=>{this._manifestFetcher.dispose()}))}start(e,t){this.prepare(),Ni(e,r=>this._onFatalError(r),this._initCanceller.signal),this._setupInitialMediaSourceAndDecryption(e).then(r=>this._onInitialMediaSourceReady(e,r.mediaSource,t,r.drmSystemId,r.unlinkMediaSource)).catch(r=>{this._onFatalError(r)})}updateContentUrls(e,t){this._manifestFetcher.updateContentUrls(e,t)}dispose(){this._initCanceller.cancel()}_onFatalError(e){this._initCanceller.isUsed()||(this._initCanceller.cancel(),this.trigger("error",e))}_setupInitialMediaSourceAndDecryption(e){let t=this._initCanceller;return ct(t.signal,r=>{let{keySystems:i}=this._initSettings,{statusRef:o,contentDecryptor:a}=wi(e,i,{onWarning:s=>this.trigger("warning",s),onError:s=>this._onFatalError(s),onBlackListProtectionData:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();my(d,s)})().catch(te)},onKeyIdsCompatibilityUpdate:s=>{(async()=>{var u;if(this._manifest===null)return;let d=(u=this._manifest.syncValue)!=null?u:await this._manifest.getValueAsAsync();fy(d,s.whitelistedKeyIds,s.blacklistedKeyIds,s.delistedKeyIds)})().catch(te)},onCodecSupportUpdate:()=>{var d,u;let s=(d=this._manifest)==null?void 0:d.syncValue;E(s)?(u=this._manifest)==null||u.getValueAsAsync().then(c=>{this._initCanceller.isUsed()||this._refreshManifestCodecSupport(c,e)},te):this._refreshManifestCodecSupport(s,e)}},t.signal);a.enabled?this._decryptionCapabilities={status:"enabled",value:a.value}:this._decryptionCapabilities={status:"disabled",value:a.value},o.onUpdate((s,d)=>{if(s.initializationState.type==="uninitialized")return;d();let u=new U;u.linkToSignal(t.signal),Ia(e,u.signal).then(c=>{let l=o.getValue();if(l.initializationState.type==="awaiting-media-link")l.initializationState.value.isMediaLinked.setValue(!0),o.onUpdate((f,p)=>{if(f.initializationState.type==="initialized"){p(),r({mediaSource:c,drmSystemId:f.drmSystemId,unlinkMediaSource:u});return}},{emitCurrentValue:!0,clearSignal:t.signal});else if(s.initializationState.type==="initialized"){r({mediaSource:c,drmSystemId:s.drmSystemId,unlinkMediaSource:u});return}}).catch(c=>{u.isUsed()||this._onFatalError(c)})},{emitCurrentValue:!0,clearSignal:t.signal})})}async _onInitialMediaSourceReady(e,t,r,i,o){var k;let{adaptiveOptions:a,autoPlay:s,bufferOptions:d,lowLatencyMode:u,segmentRequestOptions:c,speed:l,startAt:f,textTrackOptions:p,transport:h}=this._initSettings,I=this._initCanceller;ne(this._manifest!==null);let g;try{g=(k=this._manifest.syncValue)!=null?k:await this._manifest.getValueAsAsync()}catch(x){return}g.addEventListener("manifestUpdate",x=>{this.trigger("manifestUpdate",x),this._refreshManifestCodecSupport(g,e)},I.signal),g.addEventListener("decipherabilityUpdate",x=>{this.trigger("decipherabilityUpdate",x)},I.signal),g.addEventListener("supportUpdate",()=>{this.trigger("codecSupportUpdate",null)},I.signal),m.debug("Init","Calculating initial time");let b=Ud(g,u,f);m.debug("Init","Initial time calculated",{initialTime:b});let T=_c(a),v=Y({textTrackOptions:p,drmSystemId:i},d),_=new Wn(I.signal),R=new cd(h,_,this._cmcdDataBuilder,c);this._refreshManifestCodecSupport(g,e),this.trigger("manifestReady",g),!I.isUsed()&&this._setupContentWithNewMediaSource({mediaElement:e,playbackObserver:r,mediaSource:t,initialTime:b,autoPlay:s,manifest:g,representationEstimator:T,cdnPrioritizer:_,segmentQueueCreator:R,speed:l,bufferOptions:v},o)}_setupContentWithNewMediaSource(e,t){this._startLoadingContentOnMediaSource(e,this._createReloadMediaSourceCallback(e,t),t.signal)}_createReloadMediaSourceCallback(e,t){let r=this._initCanceller;return i=>{if(t.cancel(),r.isUsed()||(this.trigger("reloadingMediaSource",i),r.isUsed()))return;let o=new U;o.linkToSignal(r.signal),Ia(e.mediaElement,o.signal).then(a=>{this._setupContentWithNewMediaSource(ue(ae({},e),{mediaSource:a,initialTime:i.position,autoPlay:i.autoPlay}),o)}).catch(a=>{o.isUsed()||this._onFatalError(a)})}}_startLoadingContentOnMediaSource(e,t,r){var B,A;let{autoPlay:i,bufferOptions:o,initialTime:a,manifest:s,mediaElement:d,mediaSource:u,playbackObserver:c,representationEstimator:l,cdnPrioritizer:f,segmentQueueCreator:p,speed:h}=e,{transport:I}=this._initSettings,g=(B=s.getPeriodForTime(a))!=null?B:s.getNextPeriod(a);if(g===void 0){let C=new re("MEDIA_STARTING_TIME_NOT_FOUND","Wanted starting time not found in the Manifest.");return this._onFatalError(C)}let b=null,T=cy(d,this._initSettings.textTrackOptions);if(T!==null){let C=new Oi(T);b=C,r.register(()=>{C.stop(),T==null||T.stop()})}let v=new on(u,d.nodeName==="VIDEO",b);r.register(()=>{v.disposeAll()});let{autoPlayResult:_,initialPlayPerformed:R}=xi({mediaElement:d,playbackObserver:c,startTime:a,mustAutoPlay:i,onWarning:C=>{this.trigger("warning",C)},isDirectfile:!1},r);if(r.isCancelled())return;R.onUpdate((C,N)=>{if(C){N();let K=new Yf(s,c);s.addEventListener("manifestUpdate",()=>{K.onManifestUpdate(s)},r),K.addEventListener("event",q=>{this.trigger("streamEvent",q)},r),K.addEventListener("eventSkip",q=>{this.trigger("streamEventSkip",q)},r),K.start(),r.register(()=>{K.stop()})}},{clearSignal:r,emitCurrentValue:!0});let k=wd(c,{autoPlay:i,manifest:s,mediaSource:u,textDisplayer:T,initialPlayPerformed:R,speed:h},r);(A=this._cmcdDataBuilder)==null||A.startMonitoringPlayback(k),r.register(()=>{var C;(C=this._cmcdDataBuilder)==null||C.stopMonitoringPlayback()});let x=this._createRebufferingController(c,s,h,r),P=new hi(v);os()&&s.addEventListener("decipherabilityUpdate",C=>{C.some(N=>N.representation.decipherable!==!0)&&D(0,void 0,void 0)},r),k.listen(C=>{Id(C,v);let N=P.onNewObservation(C);if(N===null)return;let K=()=>{var H;let q=c.getReference().getValue(),X=q.position.isAwaitingFuturePosition()?q.position.getWanted():(H=k.getCurrentTime())!=null?H:q.position.getPolled(),W=R.getValue()?!c.getIsPaused():i;t({position:X,autoPlay:W})};py(N,{enableRepresentationAvoidance:this._initSettings.enableRepresentationAvoidance,manifest:s,triggerReload:K,playbackObserver:c})},{clearSignal:r});let M=gd(s,u,k,v,{onWarning:C=>this.trigger("warning",C),onPeriodChanged:C=>this.trigger("activePeriodChanged",{period:C})},r);_.then(()=>{Mi(c,!1,r).onUpdate((C,N)=>{if(C){let K=md(I.thumbnails,f);N(),this.trigger("loaded",{getSegmentSinkMetrics:async()=>new Promise(q=>q(v.getSegmentSinksMetrics())),getThumbnailData:async(q,X,W)=>yd(K,s,q,X,W)})}},{emitCurrentValue:!0,clearSignal:r})}).catch(C=>{r.isCancelled()||this._onFatalError(C)});let L=this;zf({manifest:s,initialPeriod:g},k,l,v,p,o,F(),r);function F(){return{needsBufferFlush:C=>{var H;let N,K=c.getReference().getValue(),q=K.position.isAwaitingFuturePosition()?K.position.getWanted():d.currentTime,X=(H=C==null?void 0:C.relativeResumingPosition)!=null?H:0,W=!!(C!=null&&C.relativePosHasBeenDefaulted);X===0&&W?N=q+.001:N=q+X,c.setCurrentTime(N),c.listen((G,ie)=>{(G.currentRange!==null||G.position.getPolled()>N+.1)&&(ie(),c.setCurrentTime(G.position.getWanted()+.001))},{includeLastObservation:!1,clearSignal:r})},streamStatusUpdate(C){let{period:N,bufferType:K,imminentDiscontinuity:q,position:X}=C;x.updateDiscontinuityInfo({period:N,bufferType:K,discontinuity:q,position:X}),!r.isCancelled()&&s.isLastPeriodKnown&&C.period.id===s.periods[s.periods.length-1].id&&(C.hasFinishedLoading||C.isEmptyStream?M.onLastSegmentFinishedLoading(C.bufferType):M.onLastSegmentLoadingResume(C.bufferType))},needsManifestRefresh:()=>L._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!0,canUseUnsafeMode:!0}),manifestMightBeOufOfSync:()=>{let{OUT_OF_SYNC_MANIFEST_REFRESH_DELAY:C}=O.getCurrent();L._manifestFetcher.scheduleManualRefresh({enablePartialRefresh:!1,canUseUnsafeMode:!1,delay:C})},lockedStream:C=>x.onLockedStream(C.bufferType,C.period),adaptationChange:C=>{L.trigger("adaptationChange",C),!r.isCancelled()&&M.onAdaptationChange(C.type,C.period,C.adaptation)},representationChange:C=>{L.trigger("representationChange",C),!r.isCancelled()&&M.onRepresentationChange(C.type,C.period)},inbandEvent:C=>L.trigger("inbandEvents",C),warning:C=>L.trigger("warning",C),periodStreamReady:C=>L.trigger("periodStreamReady",C),periodStreamCleared:C=>{M.onPeriodCleared(C.type,C.period),!r.isCancelled()&&L.trigger("periodStreamCleared",{type:C.type,periodId:C.period.id})},bitrateEstimateChange:C=>{var N;(N=L._cmcdDataBuilder)==null||N.updateThroughput(C.type,C.bitrate),L.trigger("bitrateEstimateChange",C)},needsMediaSourceReload:C=>{D(C.timeOffset,C.minimumPosition,C.maximumPosition)},needsDecipherabilityFlush(){var N,K,q,X;let C=Zn(d);if(as(C==null?void 0:C[0])){let W=k.getReference().getValue(),H=W.position.isAwaitingFuturePosition()?W.position.getWanted():(N=k.getCurrentTime())!=null?N:W.position.getPolled(),G=(q=(K=W.paused.pending)!=null?K:k.getIsPaused())!=null?q:W.paused.last;t({position:H,autoPlay:!G})}else{let W=k.getReference().getValue(),H=W.position.isAwaitingFuturePosition()?W.position.getWanted():(X=k.getCurrentTime())!=null?X:W.position.getPolled();H+.001<W.duration?c.setCurrentTime(d.currentTime+.001):c.setCurrentTime(H)}},encryptionDataEncountered:C=>{if(L._decryptionCapabilities.status==="disabled"){L._onFatalError(L._decryptionCapabilities.value);return}else if(L._decryptionCapabilities.status==="uninitialized"){m.error("Init","received encryption data without known decryption capabilities");return}for(let N of C)if(L._decryptionCapabilities.value.onInitializationData(N),r.isCancelled())return},error:C=>L._onFatalError(C)}}function D(C,N,K){var G,ie,oe;let q=k.getReference().getValue(),X=q.position.isAwaitingFuturePosition()?q.position.getWanted():(G=k.getCurrentTime())!=null?G:q.position.getPolled(),W=(oe=(ie=q.paused.pending)!=null?ie:k.getIsPaused())!=null?oe:q.paused.last,H=X+C;N!==void 0&&(H=Math.max(N,H)),K!==void 0&&(H=Math.min(K,H)),t({position:H,autoPlay:!W})}}_createRebufferingController(e,t,r,i){let o=new An(e,t,r);return o.addEventListener("stalled",a=>this.trigger("stalled",a)),o.addEventListener("unstalled",()=>this.trigger("unstalled",null)),o.addEventListener("warning",a=>this.trigger("warning",a)),i.register(()=>o.destroy()),o.start(),o}getCodecsSupportInfo(e,t){return e.map(i=>{var d;let o=`${i.mimeType};codecs="${i.codec}"`,a=ns(t,o);if(!a)return{mimeType:i.mimeType,codec:i.codec,supported:!1,supportedIfEncrypted:!1};let s;if(this._decryptionCapabilities.status==="uninitialized")s=void 0;else if(this._decryptionCapabilities.status==="disabled")s=!0;else{let u=this._decryptionCapabilities.value;u.getState()!==0&&(s=(d=u.isCodecSupported(i.mimeType,i.codec))!=null?d:!0)}return{mimeType:i.mimeType,codec:i.codec,supported:a,supportedIfEncrypted:s}})}_refreshManifestCodecSupport(e,t){let r=e.getCodecsWithUnknownSupport(),i=this.getCodecsSupportInfo(r,t);if(i.length>0)try{e.updateCodecSupport(i)}catch(o){this._onFatalError(o)}}};function cy(n,e){return e.textTrackMode==="html"&&pe.htmlTextDisplayer!==null?new pe.htmlTextDisplayer(n,e.textTrackElement):pe.nativeTextDisplayer!==null?new pe.nativeTextDisplayer(n):null}function fy(n,e,t,r){n.updateRepresentationsDeciperability(i=>{let{representation:o}=i;if(o.contentProtections===void 0)return o.decipherable;let a=o.contentProtections.keyIds;if(a!==void 0)for(let s of a){for(let d of t)if(Se(d,s))return!1;for(let d of e)if(Se(d,s))return!0;for(let d of r)if(Se(d,s))return}return o.decipherable})}function my(n,e){n.updateRepresentationsDeciperability(t=>{var o,a;let r=t.representation;if(r.decipherable===!1)return!1;let i=(a=(o=r.contentProtections)==null?void 0:o.initData)!=null?a:[];for(let s of i)if((e.type===void 0||s.type===e.type)&&e.values.getFormattedValues().every(u=>s.values.some(c=>(u.systemId===void 0||c.systemId===u.systemId)&&Se(c.data,u.data))))return!1;return r.decipherable})}function py(n,{playbackObserver:e,enableRepresentationAvoidance:t,manifest:r,triggerReload:i}){switch(n.type){case"reload":{m.info("Init","Planning reload due to freeze"),i();break}case"flush":{m.info("Init","Flushing buffer due to freeze");let o=e.getReference().getValue(),a=o.position.isAwaitingFuturePosition()?o.position.getWanted():e.getCurrentTime(),s=n.value.relativeSeek,d=a+s;e.setCurrentTime(d);break}case"avoid-representations":{let o=n.value;t&&r.addRepresentationsToAvoid(o),i();break}default:ze(n)}}var gy="<",hy=60,Qf=">",ba=62,qd=45,$f=47,yy=33,Xf=39,Zf=34,Gd=91,Iy=93,by=`\r
|
|
5
5
|
>/= `;function jd(n,e={}){var f,p;let t=(f=e.pos)!=null?f:0,r=e.keepComments===!0,i=e.keepWhitespace===!0,o;if(e.attrValue!==void 0)for(e.attrName=(p=e.attrName)!=null?p:"id",o=[];(t=l())!==-1;)t=n.lastIndexOf("<",t),t!==-1&&o.push(u()),n=n.substring(t),t=0;else o=a("");return e.filter!==void 0&&(o=Jf(o,e.filter)),o;function a(h){let I=[];for(;n[t]!==void 0;)if(n.charCodeAt(t)===hy){if(n.charCodeAt(t+1)===$f){let b=t+2;if(t=n.indexOf(Qf,t),n.substring(b,t).indexOf(h)===-1){let v=n.substring(0,t).split(`
|
|
6
6
|
`);throw new Error(`Unexpected close tag
|
|
7
7
|
Line: `+(v.length-1)+`
|
|
@@ -20,4 +20,4 @@ Char: `+n[t])}return t!==-1&&(t+=1),I}else if(n.charCodeAt(t+1)===yy){if(n.charC
|
|
|
20
20
|
`+Xb(t.buffered,t.position.getPolled()),`
|
|
21
21
|
${e}`),this._observationRef.setValue(t)}};function Rp(n,e){if(n===null)return 0;let t=e?"LOW_LATENCY":"DEFAULT",{RESUME_GAP_AFTER_SEEKING:r,RESUME_GAP_AFTER_NOT_ENOUGH_DATA:i,RESUME_GAP_AFTER_BUFFERING:o}=O.getCurrent();switch(n.reason){case"seeking":return r[t];case"not-ready":return i[t];case"buffering":return o[t]}}function Yb(n,e,t,r,i){let{REBUFFERING_GAP:o}=O.getCurrent(),a=i?"LOW_LATENCY":"DEFAULT";return e===void 0?t&&Math.abs(r-n)<=o[a]:e!==null&&r-e.end<=o[a]}function kp(n){let{buffered:e,currentTime:t,duration:r,ended:i,paused:o,playbackRate:a,readyState:s,seeking:d}=n;return{buffered:e,position:t,duration:r,ended:i,paused:o,playbackRate:a,readyState:s,seeking:d}}function Qb({previousObservation:n,currentObservation:e,basePosition:t,observationEvent:r,withMediaSource:i,lowLatencyMode:o,bufferGap:a,fullyLoaded:s}){let{REBUFFERING_GAP:d}=O.getCurrent(),{position:u,paused:c,readyState:l,ended:f}=e,{rebuffering:p,event:h,position:I}=n,g=p===null&&!(s||f),b=null,T,v,_=o?d.LOW_LATENCY:d.DEFAULT;if(i){if(g)a===1/0?(T=!0,b=t):a===void 0?l<3&&(T=!0,b=void 0):a<=_&&(T=!0,b=t+a);else if(p!==null){let R=Rp(p,o);T!==!0&&p!==null&&l>1&&(s||f||a!==void 0&&isFinite(a)&&a>R)||a===void 0&&l>=3?v=!0:a===void 0?b=void 0:a===1/0?b=t:a<=R&&(b=t+a)}}else g&&(!c&&r==="timeupdate"&&h==="timeupdate"&&u===I.getPolled()||r==="seeking"&&(a===1/0||a===void 0&&l<3))?T=!0:p!==null&&(r!=="seeking"&&u!==I.getPolled()||r==="canplay"||a===void 0&&l>=3||a!==void 0&&a<1/0&&(a>Rp(p,o)||s||f))&&(v=!0);if(v===!0)return null;if(T===!0||p!==null){let R;return r==="seeking"||p!==null&&p.reason==="seeking"||e.seeking?R="seeking":l===1?R="not-ready":R="buffering",p!==null&&p.reason===R?{reason:p.reason,timestamp:p.timestamp,position:b}:{reason:R,timestamp:z(),position:b}}return null}function $b(n,e,t,r){let{MINIMUM_BUFFER_AMOUNT_BEFORE_FREEZING:i}=O.getCurrent();return n.freezing!==null?e.ended||e.paused||e.readyState===0||e.playbackRate===0||n.position.getPolled()!==e.position?null:n.freezing:t==="timeupdate"&&r!==void 0&&r>i&&!e.ended&&!e.paused&&e.readyState>=1&&e.playbackRate!==0&&e.position===n.position.getPolled()?{timestamp:z()}:null}function Xb(n,e){let t="",r="";for(let i=0;i<n.length;i++){let o=n.start(i),a=n.end(i),s=o.toFixed(2),d=a.toFixed(2),u=(a-o).toFixed(2),c=`${s}|==${u}==|${d}`;if(t+=c,r.length===0&&a>e){let l=t.length-Math.floor(c.length/2);r=" ".repeat(l)+`^${e}`}if(i<n.length-1){let l=n.start(i+1),p=` ~${(l-a).toFixed(2)}~ `;if(t+=p,r.length===0&&e<l){let h=t.length-Math.floor(p.length/2);r=" ".repeat(h)+`^${e}`}}}return r.length===0&&(r=" ".repeat(t.length)+`^${e}`),t+`
|
|
22
22
|
`+r}function Zb(n){let e=kp(n);return Y(e,{rebuffering:null,event:"init",seeking:0,position:new or(e.position,null),freezing:null,bufferGap:0,currentRange:null,fullyLoaded:!1})}async function zl(n,e){let{time:t,container:r}=e;if(n===null||n.fetchThumbnailDataCallback===null||n.manifest===null)return Promise.reject(new gt("NO_CONTENT","Cannot get thumbnail: no content loaded"));let{thumbnailRequestsInfo:i,currentContentCanceller:o}=n,a=new U,s=a.linkToSignal(o.signal),d,u=i.pendingRequests.get(r);u==null||u.cancel(),i.pendingRequests.set(r,a);let c=()=>{s(),a.cancel(),i.pendingRequests.delete(r),setTimeout(()=>{d!==void 0&&URL.revokeObjectURL(d)},0)};try{let f=Hn(n.manifest,t);if(f===void 0)throw new gt("NO_THUMBNAIL","Wanted Period not found.");let p=f.thumbnailTracks,h=e.thumbnailTrackId!==void 0?Q(p,k=>k.id===e.thumbnailTrackId):p[0];if(h===void 0)throw e.thumbnailTrackId!==void 0?new gt("NO_THUMBNAIL","Given `thumbnailTrackId` not found"):new gt("NO_THUMBNAIL","Wanted Period has no thumbnail track.");let{lastResponse:I}=i,g;if(I!==null&&I.thumbnailTrackId===h.id&&I.periodId===f.id){let k=I.response.thumbnails;k.length>0&&t>=k[0].start&&t<k[k.length-1].end&&(g=I.response)}if(g===void 0&&(g=await n.fetchThumbnailDataCallback(f.id,h.id,t),i.lastResponse={response:g,periodId:f.id,thumbnailTrackId:h.id}),a.signal.cancellationError!==null)throw a.signal.cancellationError;let b=document.createElement("canvas"),T=b.getContext("2d");if(T===null)throw new gt("RENDERING","Cannot display thumbnail: cannot create canvas context");let v=Ie(g.thumbnails,k=>k.start<=t&&k.end>t);if(v<0)throw new Error("Cannot display thumbnail: time not found in fetched data");let _=new Image,R=new Blob([g.data],{type:g.mimeType});return d=URL.createObjectURL(R),_.src=d,b.height=g.thumbnails[v].height,b.width=g.thumbnails[v].width,new Promise((k,x)=>{_.onload=()=>{if(a.signal.cancellationError!==null){x(a.signal.cancellationError),c();return}try{T.drawImage(_,g.thumbnails[v].offsetX,g.thumbnails[v].offsetY,g.thumbnails[v].width,g.thumbnails[v].height,0,0,g.thumbnails[v].width,g.thumbnails[v].height),b.style.width="100%",b.style.height="100%",b.className="__rx-thumbnail__",l(),r.appendChild(b),k()}catch(P){x(new gt("RENDERING","Could not draw the image in a canvas:"+(P instanceof Error?P.toString():"Unknown Error")))}c()},_.onerror=()=>{if(a.signal.cancellationError!==null){x(a.signal.cancellationError),c();return}e.keepPreviousThumbnailOnError!==!0&&l(),x(new gt("RENDERING","Could not load the corresponding image in the DOM")),c()}})}catch(f){if(e.keepPreviousThumbnailOnError!==!0&&l(),f!==null&&f===a.signal.cancellationError)throw new gt("ABORTED","Thumbnail rendering has been aborted");let p=Me(f,{defaultCode:"NONE",defaultReason:"Unknown error"}),h;throw p.type==="NETWORK_ERROR"?h=new gt("LOADING",p.message):h=new gt("NOT_FOUND",p.message),c(),h}function l(){for(let f=r.children.length-1;f>=0;f--){let p=r.children[f];p.className==="__rx-thumbnail__"&&r.removeChild(p)}}}var gt=class n extends Error{constructor(e,t){super(nt(e,t)),Object.setPrototypeOf(this,n.prototype),this.name="ThumbnailRenderingError",this.code=e}};var bo=class extends se{constructor(e){super(),this._canceller=new U,this._adaptationRef=e,this._updateToken=!1,this._lastEmitted=void 0,this.refresh=te}hasSetTrack(){return this._adaptationRef.getValue()!==void 0}updateTrack(e){if(this._updateToken=!0,e===null){if(this._lastEmitted===null)return;this._updateToken=!1,this._canceller.cancel(),this._canceller=new U,this._lastEmitted=null,this._adaptationRef.setValue(null);return}let{adaptation:t,switchingMode:r,relativeResumingPosition:i}=e;this._canceller.cancel(),this._canceller=new U;let o=this._constructLockedRepresentationsReference(e);this._updateToken&&(this._lastEmitted={adaptation:t,switchingMode:r,lockedRepresentations:null},this._updateToken=!1,this._adaptationRef.setValue({adaptationId:t.id,switchingMode:r,representations:o,relativeResumingPosition:i}))}_constructLockedRepresentationsReference(e){let t=new j({representationIds:[],switchingMode:"lazy"}),r=this;return this.refresh=i,this._canceller.signal.register(o),e.lockedRepresentations.onUpdate(i,{clearSignal:this._canceller.signal,emitCurrentValue:!1}),i(),t;function i(){let a=e.lockedRepresentations.getValue(),s,d;if(a===null)d=e.adaptation.representations.filter(l=>Rt(l)===!0),s="lazy";else{let{representationIds:l}=a;if(s=a.switchingMode,d=e.adaptation.representations.filter(p=>$(l,p.id)).filter(p=>Rt(p)===!0),d.length===0){r.trigger("noPlayableLockedRepresentation",null);return}}if(d.length<=0){r.trigger("noPlayableRepresentation",null);return}let u=t.getValue(),c=d.map(l=>l.id).slice().sort();if(c.length!==u.representationIds.length){t.setValue({representationIds:c,switchingMode:s});return}for(let l=0;l<c.length;l++)if(u.representationIds[l]!==c[l]){t.setValue({representationIds:c,switchingMode:s});return}}function o(){r.refresh=te}}dispose(){this.removeEventListener(),this._canceller.cancel(),this._adaptationRef.finish()}};var So=class extends se{constructor(e){var t;super(),this._storedPeriodInfo=[],this._isDisposed=!1,this._cachedPeriodInfo=new WeakMap,this._isTrickModeTrackEnabled=e.preferTrickModeTracks,this._defaultAudioTrackSwitchingMode=(t=e.defaultAudioTrackSwitchingMode)!=null?t:O.getCurrent().DEFAULT_AUDIO_TRACK_SWITCHING_MODE,this.onTracksNotPlayableForType=e.onTracksNotPlayableForType}getAvailablePeriods(){return this._storedPeriodInfo.reduce((e,t)=>(t.isPeriodAdvertised&&e.push(jt(t.period)),e),[])}onManifestCodecSupportUpdate(){this._selectInitialTrackIfNeeded()}checkPeriodHasSupportedTrack(e,t){var d,u;let r=e.adaptations[t],i=[...(d=e.adaptations.audio)!=null?d:[],...(u=e.adaptations.video)!=null?u:[]];if(!(r!==void 0&&r.length>0))return;let a=r.every(c=>c.supportStatus.hasSupportedCodec===!1),s=i.every(c=>c.supportStatus.hasSupportedCodec===!1);if(a){let c=new re("MANIFEST_INCOMPATIBLE_CODECS_ERROR","No supported "+t+" adaptations",{tracks:void 0});if(s){if(this.trigger("error",c),this._isDisposed)return;this.dispose();return}else if(this.onTracksNotPlayableForType[t]==="continue")this.trigger("warning",c);else{if(this.trigger("error",c),this._isDisposed)return;this.dispose();return}}}onManifestUpdate(e){var o,a,s;let{periods:t}=e;if(y.CURRENT_ENV===y.DEV)for(let d=1;d<t.length;d++)ne(t[d-1].start<=t[d].start);let r=[];for(let d of t)if(["audio","video"].forEach(u=>{this.checkPeriodHasSupportedTrack(d,u)}),this._isDisposed)return;let i=0;for(let d=0;d<this._storedPeriodInfo.length;d++){let u=this._storedPeriodInfo[d].period,c=t[i];if(c===void 0)for(let l=this._storedPeriodInfo.length-1;l>=d;l--)this._storedPeriodInfo[l].inManifest=!1,Wl(this._storedPeriodInfo[l])&&this._removePeriodObject(l);else if(u===c)i++,this.resetSelectedTrackIfNotAvailableAnymore(this._storedPeriodInfo[d],c,"video"),this.resetSelectedTrackIfNotAvailableAnymore(this._storedPeriodInfo[d],c,"audio"),this.resetSelectedTrackIfNotAvailableAnymore(this._storedPeriodInfo[d],c,"text");else if(u.start<=c.start)this._storedPeriodInfo[d].inManifest=!1,Wl(this._storedPeriodInfo[d])&&(this._removePeriodObject(d),d--);else{let l=Hl(c,!0);this._storedPeriodInfo.splice(d,0,l),r.push(l),i++}}if(i<t.length){let d=t.slice(i).map(u=>Hl(u,!0));this._storedPeriodInfo.push(...d),r.push(...d)}for(let d of this._storedPeriodInfo)(o=d.audio.dispatcher)==null||o.refresh(),(a=d.video.dispatcher)==null||a.refresh(),(s=d.text.dispatcher)==null||s.refresh()}onDecipherabilityUpdates(){var e,t,r;for(let i of this._storedPeriodInfo)(e=i.audio.dispatcher)==null||e.refresh(),(t=i.video.dispatcher)==null||t.refresh(),(r=i.text.dispatcher)==null||r.refresh()}resetSelectedTrackIfNotAvailableAnymore(e,t,r){var d;let i=e[r].storedSettings;if(E(i))return;let o=Ot(t,r);if(o.some(u=>u.id===i.adaptation.id)||(m.warn("Track",`Chosen ${r} Adaptation not available anymore`),r==="video"?e.video.storedSettings=this.getDefaultStoredSettingsForAdaptation(o,"video"):r==="audio"?e.audio.storedSettings=this.getDefaultStoredSettingsForAdaptation(o,"audio"):r==="text"&&(e.text.storedSettings=this.getDefaultStoredSettingsForAdaptation(o,"text")),this.trigger("trackUpdate",{period:jt(t),trackType:r,reason:"missing"}),this._isDisposed))return;let s=xt(this._storedPeriodInfo,e.period.id);s!==void 0&&s.isPeriodAdvertised&&s[r].storedSettings===null&&((d=s[r].dispatcher)==null||d.updateTrack(null))}getDefaultStoredSettingsForAdaptation(e,t){let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:r}=O.getCurrent();if(t==="text"||e.length===0)return null;switch(t){case"text":return null;case"video":{let i=e[0],o=Ja(i,this._isTrickModeTrackEnabled),a=new j(null);return{adaptationBase:i,adaptation:o,switchingMode:r,lockedRepresentations:a}}case"audio":return{adaptation:e[0],switchingMode:this._defaultAudioTrackSwitchingMode,lockedRepresentations:new j(null)};default:ze(t)}}addTrackReference(e,t,r){m.debug("Track","Adding Track Reference",{bufferType:e,periodId:t.id});let i=xt(this._storedPeriodInfo,t.id);if(i===void 0){i=Hl(t,!1);let s=!1;for(let d=0;d<this._storedPeriodInfo.length;d++)this._storedPeriodInfo[d].period.start>t.start&&(this._storedPeriodInfo.splice(d,0,i),s=!0);s||this._storedPeriodInfo.push(i)}i[e].dispatcher!==null&&(m.error("Track","Subject already added for type and Period",{bufferType:e,periodId:t.id}),i[e].dispatcher.dispose());let o=new bo(r);if(i[e].dispatcher=o,o.addEventListener("noPlayableRepresentation",()=>{this.handleMissingOrUnplayableTrack(t,e,!1)}),o.addEventListener("noPlayableLockedRepresentation",()=>{i!==void 0&&(this.unlockVideoRepresentations(i),this.trigger("brokenRepresentationsLock",{period:{id:t.id,start:t.start,end:t.end},trackType:e}))}),this._selectInitialTrackIfNeeded(),this._shouldAdvertisePeriod(i)&&(i.isPeriodAdvertised=!0,this.trigger("newAvailablePeriods",[{id:t.id,start:t.start,end:t.end}]),this._isDisposed))return;let a=["audio","video","text"];for(let s of a){let d=i[s];if(i.isPeriodAdvertised&&d.dispatcher!==null&&!d.dispatcher.hasSetTrack()&&d.storedSettings!==void 0&&d.dispatcher.updateTrack(d.storedSettings),this._isDisposed)return}}throwIfTracksAreNotSetForPeriod(e){let t=xt(this._storedPeriodInfo,e.id);if(t!==void 0&&["audio","video"].every(i=>t[i].storedSettings===null)){let i=new re("NO_AUDIO_VIDEO_TRACKS","No audio and no video tracks are set.");this.trigger("error",i),this.dispose()}}handleMissingOrUnplayableTrack(e,t,r){var u,c,l,f;let{fallbackTrack:i,noSourceMedia:o}=Jb(e,t),a=(u=xt(this._storedPeriodInfo,e.id))==null?void 0:u[t];if(a===void 0){m.warn("Track","Could not find period",{periodId:e.id});return}let s=a.storedSettings,d=()=>a.storedSettings!==s;if(i!==null){let p;t==="audio"?p=this._defaultAudioTrackSwitchingMode:t==="text"?p="direct":p="reload";let h={adaptation:i,switchingMode:p,lockedRepresentations:new j(null)};if(a.storedSettings=h,r||this.trigger("trackUpdate",{period:jt(e),trackType:t,reason:"no-playable-representation"}),this._isDisposed)return;a.storedSettings===h&&((c=a.dispatcher)==null||c.updateTrack(h))}else if(i===null&&!o){if(this.trigger("noPlayableTrack",{trackType:t,period:{id:e.id,start:e.start,end:e.end}}),this._isDisposed)return;let p=this.onTracksNotPlayableForType[t];if(!d()){if(p==="continue")m.warn("Track",`No playable ${t}, continuing without ${t}`),a.storedSettings=null,r||this.trigger("trackUpdate",{period:jt(e),trackType:t,reason:"no-playable-representation"}),a.storedSettings!==null||this._isDisposed||(l=a.dispatcher)==null||l.updateTrack(null);else if(p==="error"){let h=new re("NO_PLAYABLE_REPRESENTATION",`No ${t} Representation can be played`,{tracks:void 0});this.trigger("error",h)}}}else i===null&&o&&(m.debug("Track",`The period does not have adaptation for ${t} there is no track to choose`),a.storedSettings=null,r||this.trigger("trackUpdate",{period:jt(e),trackType:t,reason:"no-playable-representation"}),a.storedSettings!==null||this._isDisposed||(f=a.dispatcher)==null||f.updateTrack(null));this._isDisposed||t!=="text"&&this.throwIfTracksAreNotSetForPeriod(e)}removeTrackReference(e,t){m.debug("Track","Removing Track Reference",{bufferType:e,periodId:t});let r;for(let a=0;a<this._storedPeriodInfo.length;a++)if(this._storedPeriodInfo[a].period.id===t){r=a;break}if(r===void 0){m.warn("Track","type not found for period",{bufferType:e,periodId:t});return}let i=this._storedPeriodInfo[r],o=i[e];if((o==null?void 0:o.dispatcher)===null){m.warn("Track","TrackDispatcher already removed for type and Period",{bufferType:e,periodId:t});return}o.dispatcher.dispose(),o.dispatcher=null,Wl(i)&&this._removePeriodObject(r)}getPeriodObjectFromPeriod(e){let t=xt(this._storedPeriodInfo,e.id);return t===void 0&&e!==void 0?this._cachedPeriodInfo.get(e):t}getPeriodObjectFromId(e){return xt(this._storedPeriodInfo,e)}disableVideoTrickModeTracks(){this._isTrickModeTrackEnabled&&(this._isTrickModeTrackEnabled=!1,this._resetVideoTrackChoices("trickmode-disabled"))}enableVideoTrickModeTracks(){this._isTrickModeTrackEnabled||(this._isTrickModeTrackEnabled=!0,this._resetVideoTrackChoices("trickmode-enabled"))}resetPeriodObjects(){var e,t,r;m.debug("Track","Resetting Period Objects");for(let i=this._storedPeriodInfo.length-1;i>=0;i--){let o=this._storedPeriodInfo[i];(e=o.audio.dispatcher)==null||e.dispose(),o.audio.dispatcher=null,(t=o.video.dispatcher)==null||t.dispose(),o.video.dispatcher=null,(r=o.text.dispatcher)==null||r.dispose(),o.text.dispatcher=null,o.inManifest||this._removePeriodObject(i)}}isTrickModeEnabled(){return this._isTrickModeTrackEnabled}setAudioTrack(e){let{periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}=e;return this._setAudioOrTextTrack({bufferType:"audio",periodRef:t,trackId:r,switchingMode:i!=null?i:this._defaultAudioTrackSwitchingMode,lockedRepresentations:o,relativeResumingPosition:a})}setTextTrack(e,t){return this._setAudioOrTextTrack({bufferType:"text",periodRef:e,trackId:t,switchingMode:"direct",lockedRepresentations:null,relativeResumingPosition:void 0})}_setAudioOrTextTrack({bufferType:e,periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}){var p,h;if(!t.isPeriodAdvertised)throw new Error("Wanted Period not yet advertised.");let s=t.period,d=Q((p=s.adaptations[e])!=null?p:[],({id:I,supportStatus:g})=>g.hasSupportedCodec!==!1&&g.isDecipherable!==!1&&I===r);if(d===void 0)throw new Error(`Wanted ${e} track not found.`);let u=t[e],c;if(o===null)c=new j(null);else{let I=this._getRepresentationsToLock(d,o),g=e==="audio"?this._defaultAudioTrackSwitchingMode:"direct";c=new j({representationIds:I,switchingMode:g})}let l={adaptation:d,switchingMode:i,lockedRepresentations:c,relativeResumingPosition:a};if(u.storedSettings=l,this.trigger("trackUpdate",{period:jt(s),trackType:e,reason:"manual"}),this._isDisposed)return;let f=xt(this._storedPeriodInfo,s.id);f!==void 0&&f[e].storedSettings===l&&((h=f[e].dispatcher)==null||h.updateTrack(l))}setVideoTrack(e){var I,g;let{periodRef:t,trackId:r,switchingMode:i,lockedRepresentations:o,relativeResumingPosition:a}=e;if(!t.isPeriodAdvertised)throw new Error("Wanted Period not yet advertised.");let s=t.period,d=Q((I=s.adaptations.video)!=null?I:[],({id:b,supportStatus:T})=>T.isDecipherable!==!1&&T.hasSupportedCodec!==!1&&b===r);if(d===void 0)throw new Error("Wanted video track not found.");let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:u}=O.getCurrent(),c=t.video,l=Ja(d,this._isTrickModeTrackEnabled),f;if(o===null)f=new j(null);else{let b=this._getRepresentationsToLock(d,o),T=u;f=new j({representationIds:b,switchingMode:T})}let p={adaptationBase:d,switchingMode:i!=null?i:u,adaptation:l,relativeResumingPosition:a,lockedRepresentations:f};if(c.storedSettings=p,this.trigger("trackUpdate",{period:jt(s),trackType:"video",reason:"manual"}),this._isDisposed)return;let h=xt(this._storedPeriodInfo,s.id);h!==void 0&&h.video.storedSettings===p&&((g=h.video.dispatcher)==null||g.updateTrack(p))}disableTrack(e,t){var o,a;if(!e.isPeriodAdvertised)throw new Error("Wanted Period not yet advertised.");let r=e[t];if(r.storedSettings===null||(t!=="text"&&((o=e[t].storedSettings)==null||o.lockedRepresentations.finish()),r.storedSettings=null,this.trigger("trackUpdate",{period:jt(e.period),trackType:t,reason:"manual"}),this._isDisposed))return;let i=xt(this._storedPeriodInfo,e.period.id);if(i!==void 0&&i[t].storedSettings===null&&((a=i[t].dispatcher)==null||a.updateTrack(null)),i!==void 0&&["audio","video"].every(d=>i[d].storedSettings===null)){let d=new re("NO_AUDIO_VIDEO_TRACKS","No audio and no video tracks are set.");this.trigger("error",d),this.dispose();return}}getChosenAudioTrack(e,t){return E(e.audio.storedSettings)?null:Lo(e.audio.storedSettings.adaptation,t)}getChosenTextTrack(e){return E(e.text.storedSettings)?null:No(e.text.storedSettings.adaptation)}getChosenVideoTrack(e,t){return E(e.video.storedSettings)?null:Uo(e.video.storedSettings.adaptation,t)}getAvailableAudioTracks(e,t){let r=e.audio.storedSettings,i=E(r)?null:r.adaptation.id;return Ot(e.period,"audio").map(a=>{let s=i===null?!1:i===a.id;return Y(Lo(a,t),{active:s})})}getAvailableTextTracks(e){let t=e.text.storedSettings,r=E(t)?null:t.adaptation.id;return Ot(e.period,"text").map(o=>{let a=r===null?!1:r===o.id;return Y(No(o),{active:a})})}getAvailableVideoTracks(e,t){let r=e.video.storedSettings,i=E(r)?void 0:r.adaptation.id;return Ot(e.period,"video").map(a=>{let s=i===null?!1:i===a.id,d=Uo(a,t),u=d.trickModeTracks!==void 0?d.trickModeTracks.map(l=>{let f=i===null?!1:i===l.id;return Y(l,{active:f})}):[],c=Y(d,{active:s});return u!==void 0&&(c.trickModeTracks=u),c})}getLockedAudioRepresentations(e){let{storedSettings:t}=e.audio;if(E(t))return null;let r=t.lockedRepresentations.getValue();return r===null?null:r.representationIds}getLockedVideoRepresentations(e){let{storedSettings:t}=e.video;if(E(t))return null;let r=t.lockedRepresentations.getValue();return r===null?null:r.representationIds}lockAudioRepresentations(e,t){var s;let{storedSettings:r}=e.audio;if(E(r))return;let{DEFAULT_AUDIO_REPRESENTATIONS_SWITCHING_MODE:i}=O.getCurrent(),o=this._getRepresentationsToLock(r.adaptation,t.representations),a=(s=t.switchingMode)!=null?s:i;r.lockedRepresentations.setValue({representationIds:o,switchingMode:a})}lockVideoRepresentations(e,t){var s;let{storedSettings:r}=e.video;if(E(r))return;let{DEFAULT_VIDEO_REPRESENTATIONS_SWITCHING_MODE:i}=O.getCurrent(),o=this._getRepresentationsToLock(r.adaptation,t.representations),a=(s=t.switchingMode)!=null?s:i;r.lockedRepresentations.setValue({representationIds:o,switchingMode:a})}unlockAudioRepresentations(e){let{storedSettings:t}=e.audio;E(t)||t.lockedRepresentations.getValue()===null||t.lockedRepresentations.setValue(null)}unlockVideoRepresentations(e){let{storedSettings:t}=e.video;E(t)||t.lockedRepresentations.getValue()===null||t.lockedRepresentations.setValue(null)}dispose(){for(this._isDisposed=!0;;){let e=this._storedPeriodInfo.pop();if(e===void 0)return;e.isRemoved=!0}}_resetVideoTrackChoices(e){var r;for(let i=0;i<this._storedPeriodInfo.length;i++){let o=this._storedPeriodInfo[i];if(!E(o.video.storedSettings)){let a=o.video.storedSettings.adaptationBase;if(a!==null){let s=Ja(a,this._isTrickModeTrackEnabled);o.video.storedSettings.adaptationBase=a,o.video.storedSettings.adaptation=s}}}let t=this._storedPeriodInfo.slice();for(let i=0;i<t.length;i++){let o=t[i].period,s=t[i].video.storedSettings;if(s!==void 0){if(this.trigger("trackUpdate",{period:jt(o),trackType:"video",reason:e}),this._isDisposed)return;let d=xt(this._storedPeriodInfo,o.id);d!==void 0&&d.isPeriodAdvertised&&d.video.storedSettings===s&&((r=d.video.dispatcher)==null||r.updateTrack(s))}}}_removePeriodObject(e){ne(e<this._storedPeriodInfo.length);let t=this._storedPeriodInfo[e];this._storedPeriodInfo[e].isRemoved=!0,this._storedPeriodInfo.splice(e,1),this._cachedPeriodInfo.set(t.period,t)}_getRepresentationsToLock(e,t){let r=t.reduce((i,o)=>{let a=Q(e.representations,s=>s.id===o);return a===void 0?m.warn("Track","Wanted locked Representation not found."):i.push(a.id),i},[]);if(r.length===0)throw new Error("Cannot lock Representations: None of the given Representation id are found");return r}_selectInitialTrackIfNeeded(){var i,o,a,s;let{DEFAULT_VIDEO_TRACK_SWITCHING_MODE:e}=O.getCurrent(),t=[],r=[];for(let d of this._storedPeriodInfo){let{period:u}=d;if(d.audio.storedSettings!==void 0&&d.video.storedSettings!==void 0&&d.text.storedSettings!==void 0)continue;let c=[...(i=u.adaptations.audio)!=null?i:[],...(o=u.adaptations.video)!=null?o:[]],l=c.every(g=>g.supportStatus.hasCodecWithUndefinedSupport);if(c.length>0&&l)continue;let f=Ot(u,"audio")[0];if(f===void 0){if(d.audio.storedSettings=null,this.handleMissingOrUnplayableTrack(u,"audio",!0),this._isDisposed)return}else d.audio.storedSettings={adaptation:f,switchingMode:this._defaultAudioTrackSwitchingMode,lockedRepresentations:new j(null)};let p=Ot(u,"video")[0];if(p===void 0){if(d.video.storedSettings=null,this.handleMissingOrUnplayableTrack(u,"video",!0),this._isDisposed)return}else{let g=Ja(p,this._isTrickModeTrackEnabled);d.video.storedSettings={adaptation:g,adaptationBase:p,switchingMode:e,lockedRepresentations:new j(null)}}let h=null,I=((a=u.adaptations.text)!=null?a:[]).filter(g=>g.isForcedSubtitles===!0);if(I.length>0){if(f!=null){let g=Q(I,b=>b.normalizedLanguage===f.normalizedLanguage);g!==void 0&&(h=g)}h===null&&(h=(s=Q(I,g=>g.normalizedLanguage===void 0))!=null?s:null)}d.text.storedSettings=h===null?null:{adaptation:h,switchingMode:"direct",lockedRepresentations:new j(null)},r.push(d),this._shouldAdvertisePeriod(d)&&(d.isPeriodAdvertised=!0,t.push({id:u.id,start:u.start,end:u.end}))}if(!(t.length>0&&(this.trigger("newAvailablePeriods",t),this._isDisposed)))for(let d of r){if(!d.isPeriodAdvertised)continue;let u=["audio","video","text"];for(let c of u){let l=d[c];if(l.dispatcher!==null&&l.storedSettings!==void 0&&!l.dispatcher.hasSetTrack()&&(l.dispatcher.updateTrack(l.storedSettings),this._isDisposed))return}}}_shouldAdvertisePeriod(e){return!e.isPeriodAdvertised&&e.text.dispatcher!==null&&e.video.dispatcher!==null&&e.audio.dispatcher!==null}};function xt(n,e){for(let t=0;t<n.length;t++){let r=n[t];if(r.period.id===e)return r}}function Wl(n){var e,t,r;return!n.inManifest&&((e=n.text)==null?void 0:e.dispatcher)===null&&((t=n.audio)==null?void 0:t.dispatcher)===null&&((r=n.video)==null?void 0:r.dispatcher)===null}function Ja(n,e){var t;return e&&((t=n.trickModeTracks)==null?void 0:t[0])!==void 0?n.trickModeTracks[0]:n}function Hl(n,e){return{period:n,inManifest:e,isPeriodAdvertised:!1,isRemoved:!1,audio:{storedSettings:void 0,dispatcher:null},video:{storedSettings:void 0,dispatcher:null},text:{storedSettings:void 0,dispatcher:null}}}function jt(n){return{start:n.start,end:n.end,id:n.id}}function Jb(n,e){if(!(n.adaptations[e]!==void 0&&n.adaptations[e].length>0))return{fallbackTrack:null,noSourceMedia:!0};let r=eS(n,e);return{fallbackTrack:r!=null?r:null,noSourceMedia:!1}}function eS(n,e){var r;return Q((r=n.adaptations[e])!=null?r:[],i=>i.supportStatus.hasSupportedCodec===!1||i.supportStatus.isDecipherable===!1?!1:i.representations.filter(a=>Rt(a)===!0).length>0)}var Pp=So;function Cp(n){let e,t,r,i,o,a,{DEFAULT_BASE_BANDWIDTH:s,DEFAULT_VIDEO_RESOLUTION_LIMIT:d,DEFAULT_MAX_BUFFER_AHEAD:u,DEFAULT_MAX_BUFFER_BEHIND:c,DEFAULT_MAX_VIDEO_BUFFER_SIZE:l,DEFAULT_THROTTLE_VIDEO_BITRATE_WHEN_HIDDEN:f,DEFAULT_WANTED_BUFFER_AHEAD:p}=O.getCurrent();if(E(n.maxBufferAhead))e=u;else if(e=Number(n.maxBufferAhead),isNaN(e))throw new Error("Invalid maxBufferAhead parameter. Should be a number.");if(E(n.maxBufferBehind))t=c;else if(t=Number(n.maxBufferBehind),isNaN(t))throw new Error("Invalid maxBufferBehind parameter. Should be a number.");if(E(n.wantedBufferAhead))r=p;else if(r=Number(n.wantedBufferAhead),isNaN(r))throw new Error("Invalid wantedBufferAhead parameter. Should be a number.");if(E(n.maxVideoBufferSize))i=l;else if(i=Number(n.maxVideoBufferSize),isNaN(i))throw new Error("Invalid maxVideoBufferSize parameter. Should be a number.");let h=E(n.videoResolutionLimit)?d:n.videoResolutionLimit,I=E(n.throttleVideoBitrateWhenHidden)?f:!!n.throttleVideoBitrateWhenHidden;if(E(n.videoElement))o=document.createElement("video");else if(n.videoElement.nodeName.toLowerCase()==="video"||n.videoElement.nodeName.toLowerCase()==="audio")o=n.videoElement;else throw new Error("Invalid videoElement parameter. Should be a HTMLMediaElement.");if(E(n.baseBandwidth))a=s;else if(a=Number(n.baseBandwidth),isNaN(a))throw new Error("Invalid baseBandwidth parameter. Should be a number.");return{maxBufferAhead:e,maxBufferBehind:t,videoResolutionLimit:h,videoElement:o,wantedBufferAhead:r,maxVideoBufferSize:i,throttleVideoBitrateWhenHidden:I,baseBandwidth:a}}function Ap(n){var e,t,r,i;if(n===null||typeof n!="object"&&n!==void 0)throw new Error("API: reload - Invalid options format.");if((n==null?void 0:n.reloadAt)===null||typeof(n==null?void 0:n.reloadAt)!="object"&&(n==null?void 0:n.reloadAt)!==void 0)throw new Error("API: reload - Invalid 'reloadAt' option format.");if(typeof((e=n==null?void 0:n.reloadAt)==null?void 0:e.position)!="number"&&((t=n==null?void 0:n.reloadAt)==null?void 0:t.position)!==void 0)throw new Error("API: reload - Invalid 'reloadAt.position' option format.");if(typeof((r=n==null?void 0:n.reloadAt)==null?void 0:r.relative)!="number"&&((i=n==null?void 0:n.reloadAt)==null?void 0:i.relative)!==void 0)throw new Error("API: reload - Invalid 'reloadAt.relative' option format.");if(!Array.isArray(n==null?void 0:n.keySystems)&&(n==null?void 0:n.keySystems)!==void 0)throw new Error("API: reload - Invalid 'keySystems' option format.");if((n==null?void 0:n.autoPlay)!==void 0&&typeof n.autoPlay!="boolean")throw new Error("API: reload - Invalid 'autoPlay' option format.")}function Mp(n){var P,M,L,F;let e,t,r,i,o,a,s,{DEFAULT_AUTO_PLAY:d,DEFAULT_CODEC_SWITCHING_BEHAVIOR:u,DEFAULT_ENABLE_FAST_SWITCHING:c,DEFAULT_TEXT_TRACK_MODE:l,DEFAULT_AUDIO_TRACKS_NOT_PLAYABLE_BEHAVIOR:f,DEFAULT_VIDEO_TRACKS_NOT_PLAYABLE_BEHAVIOR:p}=O.getCurrent();if(E(n))throw new Error("No option set on loadVideo");if(!E(n.url))e=String(n.url);else if(E(n.initialManifest)&&E(n.manifestLoader))throw new Error("Unable to load a content: no url set on loadVideo.\nPlease provide at least either an `url` argument, a `initialManifest` option or a `manifestLoader` option so the RxPlayer can load the content.");if(E(n.transport))throw new Error("No transport set on loadVideo");t=String(n.transport);let h=E(n.autoPlay)?d:!!n.autoPlay;if(E(n.keySystems))r=[];else{r=Array.isArray(n.keySystems)?n.keySystems:[n.keySystems];for(let D of r)if(typeof D.type!="string"||typeof D.getLicense!="function")throw new Error("Invalid key system given: Missing type string or getLicense callback")}let I=n.lowLatencyMode===void 0?!1:!!n.lowLatencyMode,g=n.initialManifest,b=(P=n.minimumManifestUpdateInterval)!=null?P:0,T=(M=n.defaultAudioTrackSwitchingMode)!=null?M:void 0;T!==void 0&&!$(["seamless","direct","reload"],T)&&(m.warn("API","The `defaultAudioTrackSwitchingMode` loadVideo option must match one of the following strategy name:\n- `seamless`\n- `direct`\n- `reload`"),T=void 0);let v=E(n.onCodecSwitch)?u:n.onCodecSwitch;$(["continue","reload"],v)||(m.warn("API","The `onCodecSwitch` loadVideo option must match one of the following string:\n- `continue`\n- `reload`\nIf badly set, "+u+" will be used as default"),v=u);let _=E(n.onAudioTracksNotPlayable)?f:n.onAudioTracksNotPlayable;$(["continue","error"],_)||(m.warn("API","The `onAudioTracksNotPlayable` loadVideo option must match one of the following string:\n- `continue`\n- `error`\nIf badly set, "+f+" will be used as default"),_=f);let R=E(n.onVideoTracksNotPlayable)?p:n.onVideoTracksNotPlayable;if($(["continue","error"],R)||(m.warn("API","The `onVideoTracksNotPlayable` loadVideo option must match one of the following string:\n- `continue`\n- `error`\nIf badly set, "+p+" will be used as default"),R=p),E(n.textTrackMode))i=l;else{if(n.textTrackMode!=="native"&&n.textTrackMode!=="html")throw new Error("Invalid textTrackMode.");i=n.textTrackMode}if(i==="html"){if(E(n.textTrackElement))throw new Error('You have to provide a textTrackElement in "html" textTrackMode.');if(n.textTrackElement instanceof HTMLElement)a=n.textTrackElement;else throw new Error("textTrackElement should be an HTMLElement.")}else E(n.textTrackElement)||m.warn("API",'You have set a textTrackElement without being in an "html" textTrackMode. It will be ignored.');if(E(n.mode))o="auto";else{if(!$(["auto","multithread","main"],n.mode))throw new Error("Invalid `mode` option.");o=n.mode}let k=E(n.enableFastSwitching)?c:n.enableFastSwitching;if(!E(n.startAt))if("wallClockTime"in n.startAt&&n.startAt.wallClockTime instanceof Date){let D=n.startAt.wallClockTime.getTime()/1e3;s=Y({},n.startAt,{wallClockTime:D})}else s=n.startAt;let x=(L=n.requestConfig)!=null?L:{};return{__priv_patchLastSegmentInSidx:n.__priv_patchLastSegmentInSidx,__priv_manifestUpdateUrl:n.__priv_manifestUpdateUrl,checkMediaSegmentIntegrity:n.checkMediaSegmentIntegrity,checkManifestIntegrity:n.checkManifestIntegrity,autoPlay:h,defaultAudioTrackSwitchingMode:T,enableFastSwitching:k,initialManifest:g,keySystems:r,lowLatencyMode:I,manifestLoader:n.manifestLoader,minimumManifestUpdateInterval:b,requestConfig:x,onCodecSwitch:v,onAudioTracksNotPlayable:_,onVideoTracksNotPlayable:R,referenceDateTime:n.referenceDateTime,representationFilter:n.representationFilter,segmentLoader:n.segmentLoader,serverSyncInfos:n.serverSyncInfos,startAt:s,textTrackElement:a,textTrackMode:i,transport:t,mode:o,url:e,cmcd:n.cmcd,experimentalOptions:{enableRepresentationAvoidance:((F=n.experimentalOptions)==null?void 0:F.enableRepresentationAvoidance)===!0}}}function ql(n){return!(n&&(V.browser===V.BROWSERS.SafariMobile||V.browser===V.BROWSERS.SafariDesktop))}function xp(n,e,t,r){if(r.isCancelled())return;let i=n.getReference().getValue().seeking===2;i&&(e(),r.isCancelled())||n.listen(o=>{o.event==="seeking"?(i=!0,e()):i&&o.event==="seeked"&&(i=!1,t())},{includeLastObservation:!0,clearSignal:r})}function wp(n,e,t,r){r.isCancelled()||n===null||(n.addEventListener("play",e),n.addEventListener("pause",t),r.register(()=>{n.removeEventListener("play",e),n.removeEventListener("pause",t)}))}function Op(n,e,t,r,i){let o=new j("LOADING",i);n.addEventListener("loaded",()=>{if(o.getValue()==="LOADING"){if(o.setValue("LOADED"),!i.isCancelled()){let d=Gl(e,null,r,o.getValue());d!=="PAUSED"&&o.setValue(d)}}else o.getValue()==="RELOADING"?o.setValue(Gl(e,null,r,o.getValue())):s(null)},i),n.addEventListener("reloadingMediaSource",()=>{yr(o.getValue())&&o.setValueIfChanged("RELOADING")},i);let a=null;return n.addEventListener("stalled",d=>{d!==a&&(s(d),a=d)},i),n.addEventListener("unstalled",()=>{a!==null&&(s(null),a=null)},i),t.listen(d=>{$(["seeking","ended","play","pause"],d.event)&&s(a)},{clearSignal:i}),o;function s(d){if(!yr(o.getValue()))return;let u=Gl(e,d,r,o.getValue());o.getValue()==="LOADED"&&u==="PAUSED"||o.setValueIfChanged(u)}}function Gl(n,e,t,r){let{FORCED_ENDED_THRESHOLD:i}=O.getCurrent();if(n.ended)return"ENDED";if(e!==null){let o=Math.abs(n.duration-n.currentTime);return!E(i)&&o<i?"ENDED":e==="seeking"?"SEEKING":e==="freezing"?"FREEZING":r==="LOADED"&&!ql(t)?"LOADED":"BUFFERING"}return n.paused?"PAUSED":"PLAYING"}function yr(n){return n!=="LOADING"&&n!=="RELOADING"&&n!=="STOPPED"}var jl=Z,To=typeof jl.__RX_PLAYER_DEBUG_MODE__=="boolean"&&jl.__RX_PLAYER_DEBUG_MODE__;try{Object.defineProperty(jl,"__RX_PLAYER_DEBUG_MODE__",{get(){return To},set(n){To=n,n&&(Ir.LogLevel="DEBUG",Ir.LogFormat="full")}})}catch(n){}To?m.setLevel("DEBUG","full"):y.CURRENT_ENV===y.DEV&&m.setLevel(S.CURRENT_LEVEL,"standard");var tS=rt(),nS=["manifestLoader","segmentLoader"],Yt=class Yt extends se{static get ErrorTypes(){return tt}static get ErrorCodes(){return gs}static get LogLevel(){return m.getLevel()}static set LogLevel(e){m.setLevel(e,m.getFormat())}static get LogFormat(){return m.getFormat()}static set LogFormat(e){m.setLevel(m.getLevel(),e)}static addFeatures(e){ya(e)}static _priv_registerVideoElement(e){Yt._priv_currentlyUsedVideoElements.has(e)&&console.warn(`The video element is already attached to another RxPlayer instance.
|
|
23
|
-
Make sure to dispose the previous instance with player.dispose() before creating a new player instance attaching that video element.`),Yt._priv_currentlyUsedVideoElements.add(e)}static _priv_deregisterVideoElement(e){Yt._priv_currentlyUsedVideoElements.has(e)&&Yt._priv_currentlyUsedVideoElements.delete(e)}constructor(e={}){super();let{baseBandwidth:t,videoResolutionLimit:r,maxBufferAhead:i,maxBufferBehind:o,throttleVideoBitrateWhenHidden:a,videoElement:s,wantedBufferAhead:d,maxVideoBufferSize:u}=Cp(e);s.preload="auto",this.version="4.4.0-dev.2025092200",this.log=m,this.state="STOPPED",this.videoElement=s,Yt._priv_registerVideoElement(this.videoElement);let c=new U;this._destroyCanceller=c,this._priv_pictureInPictureRef=Lc(s,c.signal),this._priv_speed=new j(s.playbackRate,this._destroyCanceller.signal),this._priv_preferTrickModeTracks=!1,this._priv_contentLock=new j(!1,this._destroyCanceller.signal),this._priv_bufferOptions={wantedBufferAhead:new j(d,this._destroyCanceller.signal),maxBufferAhead:new j(i,this._destroyCanceller.signal),maxBufferBehind:new j(o,this._destroyCanceller.signal),maxVideoBufferSize:new j(u,this._destroyCanceller.signal)},this._priv_bitrateInfos={lastBitrates:{audio:t,video:t}},this._priv_throttleVideoBitrateWhenHidden=a,this._priv_videoResolutionLimit=r,this._priv_currentError=null,this._priv_contentInfos=null,this._priv_contentEventsMemory={},this._priv_reloadingMetadata={},this._priv_lastAutoPlay=!1,this._priv_worker=null;let l=()=>{this.trigger("volumeChange",{volume:s.volume,muted:s.muted})};s.addEventListener("volumechange",l),c.signal.register(()=>{s.removeEventListener("volumechange",l)})}attachWorker(e){return new Promise((t,r)=>{var a;if(!Vl())return m.warn("API","Cannot rely on a WebWorker: Worker API unavailable"),r(new mn("INCOMPATIBLE_ERROR","Worker unavailable"));if(this._priv_worker!==null){if(this.state!=="STOPPED")return m.warn("API","Cannot attach a new worker while a content is playing, please stop the player first."),r(new mn("SETUP_ERROR","Cannot attach a new worker while a content is playing"));this._priv_worker.terminate()}if(typeof e.workerUrl=="string")this._priv_worker=new Worker(e.workerUrl);else{let s=URL.createObjectURL(e.workerUrl);this._priv_worker=new Worker(s),URL.revokeObjectURL(s)}this._priv_worker.onerror=s=>{this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null),m.error("API","Unexpected worker error",s.error instanceof Error?s.error:void 0),r(new mn("UNKNOWN_ERROR",'Unexpected Worker "error" event'))};let i=s=>{let d=s.data;d.type==="init-error"?(m.warn("API","Processing InitError worker message: detaching worker"),this._priv_worker!==null&&(this._priv_worker.removeEventListener("message",i),this._priv_worker.terminate(),this._priv_worker=null),r(new mn("SETUP_ERROR","Worker parser initialization failed: "+d.value.errorMessage))):d.type==="init-success"&&(m.info("API","InitSuccess received from worker."),this._priv_worker!==null&&this._priv_worker.removeEventListener("message",i),t())};this._priv_worker.addEventListener("message",i),m.debug("M-->C","Sending message",{name:"init"}),this._priv_worker.postMessage({type:"init",value:{dashWasmUrl:e.dashWasmUrl,logLevel:m.getLevel(),logFormat:m.getFormat(),sendBackLogs:To,date:Date.now(),timestamp:z(),hasVideo:((a=this.videoElement)==null?void 0:a.nodeName.toLowerCase())==="video"}}),m.addEventListener("onLogLevelChange",s=>{this._priv_worker!==null&&(m.debug("M-->C","Sending message",{name:"log-level-update"}),this._priv_worker.postMessage({type:"log-level-update",value:{logLevel:s.level,logFormat:s.format,sendBackLogs:To}}))},this._destroyCanceller.signal);let o=s=>{this._priv_worker!==null&&(m.debug("M-->C","Sending message:",{name:"config-update"}),this._priv_worker.postMessage({type:"config-update",value:s}))};O.updated&&o(O.getCurrent()),O.addEventListener("update",o,this._destroyCanceller.signal)})}getCurrentModeInformation(){return this._priv_contentInfos===null?null:{isDirectFile:this._priv_contentInfos.isDirectFile,useWorker:this._priv_contentInfos.useWorker}}addEventListener(e,t){return super.addEventListener(e,t)}stop(){this._priv_contentInfos!==null&&this._priv_contentInfos.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this.state!=="STOPPED"&&this._priv_setPlayerState("STOPPED")}dispose(){this.stop(),this.videoElement!==null&&(Yt._priv_deregisterVideoElement(this.videoElement),qn(this.videoElement).catch(e=>{let t=e instanceof Error?e.message:"Unknown error";m.error("API","Could not dispose decryption resources: "+t)})),this._destroyCanceller.cancel(),this._priv_reloadingMetadata={},this.videoElement=null,this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null)}loadVideo(e){let t=Mp(e);m.info("API","Calling loadvideo",{url:t.url,transport:t.transport}),this._priv_reloadingMetadata={options:t},this._priv_initializeContentPlayback(t),this._priv_lastAutoPlay=t.autoPlay}reload(e){var c,l,f;let{options:t,manifest:r,reloadPosition:i,reloadInPause:o}=this._priv_reloadingMetadata;if(t===void 0)throw new Error("API: Can't reload without having previously loaded a content.");Ap(e);let a;if(((c=e==null?void 0:e.reloadAt)==null?void 0:c.position)!==void 0)a={position:e.reloadAt.position};else if(((l=e==null?void 0:e.reloadAt)==null?void 0:l.relative)!==void 0){if(i===void 0)throw new Error("Can't reload to a relative position when previous content was not loaded.");a={position:e.reloadAt.relative+i}}else i!==void 0&&(a={position:i});let s;(e==null?void 0:e.autoPlay)!==void 0?s=e.autoPlay:o!==void 0&&(s=!o);let d;(e==null?void 0:e.keySystems)!==void 0?d=e.keySystems:((f=this._priv_reloadingMetadata.options)==null?void 0:f.keySystems)!==void 0&&(d=this._priv_reloadingMetadata.options.keySystems);let u=ue(ae({},t),{initialManifest:r});a!==void 0&&(u.startAt=a),s!==void 0&&(u.autoPlay=s),d!==void 0&&(u.keySystems=d),this._priv_initializeContentPlayback(u)}createDebugElement(e){if(pe.createDebugElement===null)throw new Error("Feature `DEBUG_ELEMENT` not added to the RxPlayer");let t=new U;return pe.createDebugElement(e,this,t.signal),{dispose(){t.cancel()}}}getAvailableThumbnailTracks({time:e,periodId:t}={}){if(this._priv_contentInfos===null||this._priv_contentInfos.manifest===null)return[];let{manifest:r}=this._priv_contentInfos,i;if(e!==void 0){if(i=Hn(this._priv_contentInfos.manifest,e),i===void 0||i.thumbnailTracks.length===0)return[]}else if(t!==void 0){if(i=Q(r.periods,o=>o.id===t),i===void 0)return m.error("API","getAvailableThumbnailTracks: periodId not found",{periodId:t}),[]}else{let{currentPeriod:o}=this._priv_contentInfos;if(o===null)return[];i=o}return i.thumbnailTracks.map(o=>({id:o.id,width:Math.floor(o.width/o.horizontalTiles),height:Math.floor(o.height/o.verticalTiles),mimeType:o.mimeType}))}async renderThumbnail(e){if(E(e.time))throw new Error("You have to provide a `time` property to `renderThumbnail`, indicating the wanted thumbnail time in seconds.");if(E(e.container))throw new Error("You have to provide a `container` property to `renderThumbnail`, specifying the HTML Element in which the thumbnail should be inserted.");return zl(this._priv_contentInfos,e)}_priv_initializeContentPlayback(e){var oe,fe,Re,ge,he,_t;let{autoPlay:t,cmcd:r,defaultAudioTrackSwitchingMode:i,enableFastSwitching:o,initialManifest:a,keySystems:s,lowLatencyMode:d,minimumManifestUpdateInterval:u,requestConfig:c,onCodecSwitch:l,startAt:f,transport:p,checkMediaSegmentIntegrity:h,checkManifestIntegrity:I,manifestLoader:g,referenceDateTime:b,segmentLoader:T,serverSyncInfos:v,mode:_,experimentalOptions:R,__priv_manifestUpdateUrl:k,__priv_patchLastSegmentInSidx:x,url:P,onAudioTracksNotPlayable:M,onVideoTracksNotPlayable:L}=e;if(this.videoElement===null)throw new Error("the attached video element is disposed");let F=p==="directfile",D=new U,B=this.videoElement,A,C=!1,N=null;if(F){if(pe.directfile===null)throw this.stop(),this._priv_currentError=null,new Error("DirectFile feature not activated in your build.");if(E(P))throw new Error("No URL for a DirectFile content");if(m.info("API","Initializing DirectFile mode in the main thread"),N=this._priv_initializeMediaElementTracksStore(D.signal),D.isUsed())return;A=new pe.directfile.initDirectFile({autoPlay:t,keySystems:s,speed:this._priv_speed,startAt:f,url:P})}else{let ee={lowLatencyMode:d,maxRetry:(oe=c.manifest)==null?void 0:oe.maxRetry,requestTimeout:(fe=c.manifest)==null?void 0:fe.timeout,connectionTimeout:(Re=c.manifest)==null?void 0:Re.connectionTimeout,minimumManifestUpdateInterval:u,initialManifest:a},ye=Kl(),ot={throttleBitrate:{},limitResolution:{}};this._priv_throttleVideoBitrateWhenHidden&&(ye?ot.throttleBitrate={video:gn(Nc(this._priv_pictureInPictureRef,D.signal),Qt=>Qt?1/0:0,D.signal)}:m.warn("API","Can't apply throttleVideoBitrateWhenHidden because browser can't be trusted for visibility.")),this._priv_videoResolutionLimit==="videoElement"?ye?ot.limitResolution={video:Bc(B,this._priv_pictureInPictureRef,D.signal)}:m.warn("API","Can't apply videoResolutionLimit because browser can't be trusted for video size."):this._priv_videoResolutionLimit==="screen"&&(ot.limitResolution={video:Uc(D.signal)});let pn={initialBitrates:this._priv_bitrateInfos.lastBitrates,lowLatencyMode:d,throttlers:ot},ht=e.textTrackMode==="native"?{textTrackMode:"native"}:{textTrackMode:"html",textTrackElement:e.textTrackElement},yt=Y({enableFastSwitching:o,onCodecSwitch:l},this._priv_bufferOptions),Yl={lowLatencyMode:d,maxRetry:(ge=c.segment)==null?void 0:ge.maxRetry,requestTimeout:(he=c.segment)==null?void 0:he.timeout,connectionTimeout:(_t=c.segment)==null?void 0:_t.connectionTimeout},Lp=pe.multithread!==null&&this._priv_worker!==null&&this.videoElement.FORCED_MEDIA_SOURCE===void 0&&p==="dash"&&nS.every(Qt=>E(e[Qt]))&&typeof e.representationFilter!="function";if(_==="main"||_==="auto"&&!Lp){if(pe.mainThreadMediaSourceInit===null)throw new Error("Cannot load video, neither in a WebWorker nor with the `MEDIA_SOURCE_MAIN` feature");let Qt=pe.transports[p];if(typeof Qt!="function")throw this.stop(),this._priv_currentError=null,new Error(`transport "${p}" not supported`);let Np=typeof e.representationFilter=="string"?Mc(e.representationFilter):e.representationFilter;m.info("API","Initializing MediaSource mode in the main thread");let Up=Qt({lowLatencyMode:d,checkMediaSegmentIntegrity:h,checkManifestIntegrity:I,manifestLoader:g,referenceDateTime:b,representationFilter:Np,segmentLoader:T,serverSyncInfos:v,__priv_manifestUpdateUrl:k,__priv_patchLastSegmentInSidx:x});A=new pe.mainThreadMediaSourceInit({adaptiveOptions:pn,autoPlay:t,bufferOptions:yt,cmcd:r,enableRepresentationAvoidance:R.enableRepresentationAvoidance,keySystems:s,lowLatencyMode:d,transport:Up,manifestRequestSettings:ee,segmentRequestOptions:Yl,speed:this._priv_speed,startAt:f,textTrackOptions:ht,url:P})}else{if(pe.multithread===null)throw new Error("Cannot load video in multithread mode: `MULTI_THREAD` feature not imported.");if(this._priv_worker===null)throw new Error("Cannot load video in multithread mode: `attachWorker` method not called.");ne(typeof e.representationFilter!="function"),C=!0,m.info("API","Initializing MediaSource mode in a WebWorker");let Qt={lowLatencyMode:d,checkMediaSegmentIntegrity:h,checkManifestIntegrity:I,referenceDateTime:b,serverSyncInfos:v,manifestLoader:void 0,segmentLoader:void 0,representationFilter:e.representationFilter,__priv_manifestUpdateUrl:k,__priv_patchLastSegmentInSidx:x};A=new pe.multithread.init({adaptiveOptions:pn,autoPlay:t,bufferOptions:yt,cmcd:r,enableRepresentationAvoidance:R.enableRepresentationAvoidance,keySystems:s,lowLatencyMode:d,transportOptions:Qt,manifestRequestSettings:ee,segmentRequestOptions:Yl,speed:this._priv_speed,startAt:f,textTrackOptions:ht,worker:this._priv_worker,url:P,useMseInWorker:vm})}}let K=new Io(B,{withMediaSource:!F,lowLatencyMode:d});K.blockSeeking(),D.signal.register(()=>{K.stop()});let q={contentId:tS(),originalUrl:P,playbackObserver:K,currentContentCanceller:D,defaultAudioTrackSwitchingMode:i,initializer:A,isDirectFile:F,manifest:null,currentPeriod:null,activeAdaptations:null,activeRepresentations:null,tracksStore:null,mediaElementTracksStore:N,useWorker:C,segmentSinkMetricsCallback:null,fetchThumbnailDataCallback:null,thumbnailRequestsInfo:{pendingRequests:new WeakMap,lastResponse:null},onAudioTracksNotPlayable:M,onVideoTracksNotPlayable:L};A.addEventListener("error",ee=>{this._priv_onFatalError(ee,q)}),A.addEventListener("warning",ee=>{let ye=Me(ee,{defaultCode:"NONE",defaultReason:"An unknown error happened."});m.warn("API","Sending warning:",ye),this.trigger("warning",ye)}),A.addEventListener("reloadingMediaSource",ee=>{q.tracksStore!==null&&q.tracksStore.resetPeriodObjects(),this._priv_contentInfos!==null&&(this._priv_contentInfos.segmentSinkMetricsCallback=null),this._priv_lastAutoPlay=ee.autoPlay}),A.addEventListener("inbandEvents",ee=>this.trigger("inbandEvents",ee)),A.addEventListener("streamEvent",ee=>this.trigger("streamEvent",ee)),A.addEventListener("streamEventSkip",ee=>this.trigger("streamEventSkip",ee)),A.addEventListener("activePeriodChanged",ee=>this._priv_onActivePeriodChanged(q,ee)),A.addEventListener("periodStreamReady",ee=>this._priv_onPeriodStreamReady(q,ee)),A.addEventListener("periodStreamCleared",ee=>this._priv_onPeriodStreamCleared(q,ee)),A.addEventListener("representationChange",ee=>this._priv_onRepresentationChange(q,ee)),A.addEventListener("adaptationChange",ee=>this._priv_onAdaptationChange(q,ee)),A.addEventListener("bitrateEstimateChange",ee=>this._priv_onBitrateEstimateChange(ee)),A.addEventListener("manifestReady",ee=>this._priv_onManifestReady(q,ee)),A.addEventListener("manifestUpdate",ee=>this._priv_onManifestUpdate(q,ee)),A.addEventListener("codecSupportUpdate",()=>this._priv_onCodecSupportUpdate(q)),A.addEventListener("decipherabilityUpdate",ee=>this._priv_onDecipherabilityUpdate(q,ee)),A.addEventListener("loaded",ee=>{this._priv_contentInfos!==null&&(this._priv_contentInfos.segmentSinkMetricsCallback=ee.getSegmentSinkMetrics,this._priv_contentInfos.fetchThumbnailDataCallback=ee.getThumbnailData)}),A.prepare(),this.stop();let X=Op(A,B,K,F,D.signal);D.signal.register(()=>{A.dispose()});let W=ee=>{switch(ee){case"STOPPED":case"RELOADING":case"LOADING":break;case"ENDED":this._priv_reloadingMetadata.reloadInPause=!0,this._priv_reloadingMetadata.reloadPosition=K.getReference().getValue().position.getPolled();break;default:{let ye=K.getReference().getValue();this._priv_reloadingMetadata.reloadInPause=ye.paused,this._priv_reloadingMetadata.reloadPosition=ye.position.getWanted();break}}},H=null,G=ee=>{H!==null&&(H.cancel(),H=null),X.onUpdate((ye,ot)=>{yr(ye)&&(ot(),H!==null&&H.cancel(),H=new U,H.linkToSignal(D.signal),ee!==!B.paused&&(B.paused?this.trigger("pause",null):this.trigger("play",null)),wp(B,()=>this.trigger("play",null),()=>this.trigger("pause",null),D.signal))},{emitCurrentValue:!1,clearSignal:D.signal})};G(t),A.addEventListener("reloadingMediaSource",ee=>{G(ee.autoPlay)}),this._priv_currentError=null,this._priv_contentInfos=q;let ie=null;X.onUpdate(ee=>{W(ee),this._priv_setPlayerState(ee),!D.isUsed()&&(ie!==null?yr(this.state)||(ie.cancel(),ie=null):yr(this.state)&&(ie=new U,ie.linkToSignal(D.signal),xp(K,()=>this.trigger("seeking",null),()=>this.trigger("seeked",null),ie.signal)))},{emitCurrentValue:!0,clearSignal:D.signal}),K.listen(ee=>{W(this.state),this._priv_triggerPositionUpdate(q,ee)},{clearSignal:D.signal}),D.signal.register(()=>{A.removeEventListener()}),this._priv_contentLock.onUpdate((ee,ye)=>{ee||(ye(),A.start(B,K))},{emitCurrentValue:!0,clearSignal:D.signal})}getError(){return this._priv_currentError}getVideoElement(){return this.videoElement}getPlayerState(){return this.state}isContentLoaded(){return!$(["LOADING","RELOADING","STOPPED"],this.state)}isBuffering(){return $(["BUFFERING","SEEKING","LOADING","RELOADING"],this.state)}isPaused(){return this.videoElement!==null?$(["LOADING","RELOADING"],this.state)?!this._priv_lastAutoPlay:this.videoElement.paused:!0}isLive(){if(this._priv_contentInfos===null)return!1;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;return e||t===null?!1:t.isLive}areTrickModeTracksEnabled(){return this._priv_preferTrickModeTracks}getContentUrls(){if(this._priv_contentInfos===null)return;let{isDirectFile:e,manifest:t,originalUrl:r}=this._priv_contentInfos;if(e)return r===void 0?void 0:[r];if(t!==null)return t.uris}updateContentUrls(e,t){if(this._priv_contentInfos===null)throw new Error("No content loaded");let r=(t==null?void 0:t.refresh)===!0;this._priv_contentInfos.initializer.updateContentUrls(e,r)}getMediaDuration(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}getCurrentBufferGap(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement,t=pc(e.buffered,e.currentTime);return t===1/0?0:t}getWallClockTime(){if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)return this.videoElement.currentTime;let e=this.getWallClockOffset();return this.videoElement.currentTime+e}getWallClockOffset(){var r;if(this.videoElement===null||this._priv_contentInfos===null)return 0;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){let i=yo(this.videoElement);return i!=null?i:0}return t!==null&&(r=t.availabilityStartTime)!=null?r:0}getPosition(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.currentTime}getLastStoredContentPosition(){return this._priv_reloadingMetadata.reloadPosition}getPlaybackRate(){return this._priv_speed.getValue()}setPlaybackRate(e,t){var o;e!==this._priv_speed.getValue()&&this._priv_speed.setValue(e);let r=t==null?void 0:t.preferTrickModeTracks;if(typeof r!="boolean")return;this._priv_preferTrickModeTracks=r;let i=(o=this._priv_contentInfos)==null?void 0:o.tracksStore;E(i)||(r&&!i.isTrickModeEnabled()?i.enableVideoTrickModeTracks():!r&&i.isTrickModeEnabled()&&i.disableVideoTrickModeTracks())}getVideoRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return E(e.video)?e.video:In(e.video)}getAudioRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return E(e.audio)?e.video:Bo(e.audio)}play(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement.play();return E(e)||typeof e.catch!="function"?Promise.resolve():e.catch(t=>{if(t.name==="NotAllowedError"){let r=new re("MEDIA_ERR_PLAY_NOT_ALLOWED",t.toString());this.trigger("warning",r)}throw t})}pause(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.pause()}seekTo(e){var o;if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)throw new Error("player: no content loaded");let{isDirectFile:t,manifest:r}=this._priv_contentInfos,i;if(typeof e=="number")i=e;else if(typeof e=="object"){let a=e,s=this.videoElement.currentTime;if(!E(a.relative))i=s+a.relative;else if(!E(a.position))i=a.position;else{if(E(a.wallClockTime))throw new Error('invalid time object. You must set one of the following properties: "relative", "position" or "wallClockTime"');if(r!==null)i=a.wallClockTime-((o=r.availabilityStartTime)!=null?o:0);else if(t){if(this.videoElement!==null){let d=yo(this.videoElement);d!==void 0&&(i=a.wallClockTime-d)}}else throw new Error("Cannot seek: wallClockTime asked but Manifest not yet loaded.");i===void 0&&(i=a.wallClockTime)}}if(i===void 0)throw new Error("invalid time given");return m.info("API","API seekTo",{positionWanted:i}),this._priv_contentInfos.playbackObserver.setCurrentTime(i,!1),i}getVolume(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.volume}setVolume(e){if(this.videoElement===null)throw new Error("Disposed player");let t=this.videoElement;e!==t.volume&&(t.volume=e)}isMute(){var e;return((e=this.videoElement)==null?void 0:e.muted)===!0}mute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted||(this.videoElement.muted=!0)}unMute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted&&(this.videoElement.muted=!1)}setMaxBufferBehind(e){this._priv_bufferOptions.maxBufferBehind.setValue(e)}setMaxBufferAhead(e){this._priv_bufferOptions.maxBufferAhead.setValue(e)}setWantedBufferAhead(e){this._priv_bufferOptions.wantedBufferAhead.setValue(e)}setMaxVideoBufferSize(e){this._priv_bufferOptions.maxVideoBufferSize.setValue(e)}getMaxBufferBehind(){return this._priv_bufferOptions.maxBufferBehind.getValue()}getMaxBufferAhead(){return this._priv_bufferOptions.maxBufferAhead.getValue()}getWantedBufferAhead(){return this._priv_bufferOptions.wantedBufferAhead.getValue()}getMaxVideoBufferSize(){return this._priv_bufferOptions.maxVideoBufferSize.getValue()}getCurrentPeriod(){var t;let e=(t=this._priv_contentInfos)==null?void 0:t.currentPeriod;return E(e)?null:{id:e.id,start:e.start,end:e.end}}getKeySystemConfiguration(){if(this.videoElement===null)throw new Error("Disposed player");let e=Zn(this.videoElement);return e===null?null:{keySystem:e[0],configuration:e[1]}}getAvailablePeriods(){if(this._priv_contentInfos===null)return[];let{isDirectFile:e,tracksStore:t}=this._priv_contentInfos;return e?[]:t===null?[]:t.getAvailablePeriods().slice()}getAvailableAudioTracks(e){var a,s;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return(a=r==null?void 0:r.getAvailableAudioTracks())!=null?a:[];let i,o=!0;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(s=e==null?void 0:e.filterPlayableRepresentations)!=null?s:!0),this._priv_callTracksStoreGetterSetter(i,[],(d,u)=>{var c;return(c=d.getAvailableAudioTracks(u,o))!=null?c:[]})}getAvailableTextTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableTextTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableTextTracks(a))!=null?s:[]})}getAvailableVideoTracks(e){var a,s;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return(a=r==null?void 0:r.getAvailableVideoTracks())!=null?a:[];let i,o=!0;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(s=e==null?void 0:e.filterPlayableRepresentations)!=null?s:!0),this._priv_callTracksStoreGetterSetter(i,[],(d,u)=>{var c;return(c=d.getAvailableVideoTracks(u,o))!=null?c:[]})}getAudioTrack(e){var a;if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return r===null?void 0:r.getChosenAudioTrack();let i,o=!0;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(a=e==null?void 0:e.filterPlayableRepresentations)!=null?a:!0),this._priv_callTracksStoreGetterSetter(i,void 0,(s,d)=>s.getChosenAudioTrack(d,o))}getTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenTextTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenTextTrack(o))}getVideoTrack(e){var a;if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return r===null?void 0:r.getChosenVideoTrack();let i,o=!0;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(a=e==null?void 0:e.filterPlayableRepresentations)!=null?a:!0),this._priv_callTracksStoreGetterSetter(i,void 0,(s,d)=>s.getChosenVideoTrack(d,o))}setAudioTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let c=typeof e=="string"?e:e.trackId;r==null||r.setAudioTrackById(c);return}catch(c){throw new Error("player: unknown audio track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(c,l)=>c.setAudioTrack({periodRef:l,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}setTextTrack(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let a=typeof e=="string"?e:e.trackId;r==null||r.setTextTrackById(a);return}catch(a){throw new Error("player: unknown text track")}let i,o;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.setTextTrack(s,o))}disableTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t){r==null||r.disableTextTrack();return}return this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"text"))}setVideoTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let c=typeof e=="string"?e:e.trackId;r==null||r.setVideoTrackById(c);return}catch(c){throw new Error("player: unknown video track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(c,l)=>c.setVideoTrack({periodRef:l,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}disableVideoTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t&&r!==null?r.disableVideoTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"video"))}lockVideoRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock video Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockVideoRepresentations(s,{representations:r,switchingMode:o}))}disableAudioTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t&&r!==null?r.disableAudioTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"audio"))}lockAudioRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock audio Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockAudioRepresentations(s,{representations:r,switchingMode:o}))}getLockedVideoRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedVideoRepresentations(i))}getLockedAudioRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedAudioRepresentations(i))}unlockVideoRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockVideoRepresentations(i))}unlockAudioRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockAudioRepresentations(i))}getMinimumPosition(){if(this._priv_contentInfos===null)return null;if(this._priv_contentInfos.isDirectFile)return 0;let{manifest:e}=this._priv_contentInfos;return e!==null?bn(e):null}getLivePosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(!e)return(t==null?void 0:t.isLive)!==!0?null:Sn(t)}getMaximumPosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}return t!==null?!t.isDynamic&&this.videoElement!==null?this.videoElement.duration:kt(t):null}async __priv_getSegmentSinkMetrics(){var e,t;return(t=(e=this._priv_contentInfos)==null?void 0:e.segmentSinkMetricsCallback)==null?void 0:t.call(e)}__priv_getManifest(){return this._priv_contentInfos===null?null:this._priv_contentInfos.manifest}__priv_getCurrentAdaptation(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeAdaptations:t}=this._priv_contentInfos;return e===null||t===null||E(t[e.id])?null:t[e.id]}__priv_getCurrentRepresentations(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeRepresentations:t}=this._priv_contentInfos;return e===null||t===null||E(t[e.id])?null:t[e.id]}_priv_cleanUpCurrentContentState(){var t,r,i,o;m.debug("API","Locking `contentLock` to clean-up the current content."),this._priv_contentLock.setValue(!0),(r=(t=this._priv_contentInfos)==null?void 0:t.tracksStore)==null||r.dispose(),(o=(i=this._priv_contentInfos)==null?void 0:i.mediaElementTracksStore)==null||o.dispose(),this._priv_contentInfos=null,this._priv_contentEventsMemory={};let e=()=>{this.videoElement!==null&&(m.debug("API","Unlocking `contentLock`. Next content can begin."),this._priv_contentLock.setValue(!1))};E(this.videoElement)?e():zo(this.videoElement).then(()=>{m.debug("API","DRM session cleaned-up with success!"),e()},a=>{m.error("API","An error arised when trying to clean-up the DRM session:"+(a instanceof Error?a.toString():"Unknown Error")),e()})}_priv_onManifestReady(e,t){var i;if(e.contentId!==((i=this._priv_contentInfos)==null?void 0:i.contentId))return;e.manifest=t,t.manifestFormat===0&&(this._priv_reloadingMetadata.manifest=t);let r=new Pp({preferTrickModeTracks:this._priv_preferTrickModeTracks,defaultAudioTrackSwitchingMode:e.defaultAudioTrackSwitchingMode,onTracksNotPlayableForType:{audio:e.onAudioTracksNotPlayable,video:e.onVideoTracksNotPlayable,text:"continue"}});e.tracksStore=r,r.addEventListener("newAvailablePeriods",o=>{this.trigger("newAvailablePeriods",o)}),r.addEventListener("brokenRepresentationsLock",o=>{this.trigger("brokenRepresentationsLock",o)}),r.addEventListener("trackUpdate",o=>{var s,d;this.trigger("trackUpdate",o);let a=(d=(s=this._priv_contentInfos)==null?void 0:s.currentPeriod)!=null?d:void 0;o.reason==="no-playable-representation"&&o.period.id===(a==null?void 0:a.id)&&this._priv_onAvailableTracksMayHaveChanged(o.trackType)}),r.addEventListener("warning",o=>{this.trigger("warning",o)}),r.addEventListener("error",o=>{this._priv_onFatalError(o,e)}),r.addEventListener("noPlayableTrack",o=>{this.trigger("noPlayableTrack",o)}),r.onManifestUpdate(t)}_priv_onManifestUpdate(e,t){var o,a,s;if(this._priv_contentInfos===null||this._priv_contentInfos.manifest===null)return;E(e==null?void 0:e.tracksStore)||e.tracksStore.onManifestUpdate(this._priv_contentInfos.manifest);let r=(a=(o=this._priv_contentInfos)==null?void 0:o.currentPeriod)!=null?a:void 0,i=(s=this._priv_contentInfos)==null?void 0:s.tracksStore;if(!(r===void 0||E(i))){for(let d of t.updatedPeriods)if(d.period.id===r.id&&(d.result.addedAdaptations.length>0||d.result.removedAdaptations.length>0)){if(i.getPeriodObjectFromPeriod(r)===void 0)return;this._priv_onAvailableTracksMayHaveChanged("audio"),this._priv_onAvailableTracksMayHaveChanged("text"),this._priv_onAvailableTracksMayHaveChanged("video")}}}_priv_onCodecSupportUpdate(e){let t=e==null?void 0:e.tracksStore;E(t)||t.onManifestCodecSupportUpdate()}_priv_onDecipherabilityUpdate(e,t){if(e===null||e.manifest===null)return;E(e==null?void 0:e.tracksStore)||e.tracksStore.onDecipherabilityUpdates();let r=t.reduce((i,o)=>{var s,d,u;if(!(Q(i,c=>c[0].id===o.period.id&&c[1]===o.adaptation.type)!==void 0)){let c=e.tracksStore;if(c===null)return i;let l=!1,f=c.getPeriodObjectFromPeriod(o.period);if(f===void 0)return i;switch(o.adaptation.type){case"audio":l=((s=c.getChosenAudioTrack(f,!1))==null?void 0:s.id)===o.adaptation.id;break;case"video":l=((d=c.getChosenVideoTrack(f,!1))==null?void 0:d.id)===o.adaptation.id;break;case"text":l=((u=c.getChosenTextTrack(f))==null?void 0:u.id)===o.adaptation.id;break}l&&i.push([o.period,o.adaptation.type])}return i},[]);for(let[i,o]of r)this._priv_triggerEventIfNotStopped("representationListUpdate",{period:{start:i.start,end:i.end,id:i.id},trackType:o,reason:"decipherability-update"},e.currentContentCanceller.signal)}_priv_onActivePeriodChanged(e,{period:t}){var s,d,u,c,l,f;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;e.currentPeriod=t;let r=e.currentContentCanceller.signal;this._priv_contentEventsMemory.periodChange!==t&&(this._priv_contentEventsMemory.periodChange=t,this._priv_triggerEventIfNotStopped("periodChange",{start:t.start,end:t.end,id:t.id},r)),this._priv_triggerEventIfNotStopped("availableAudioTracksChange",this.getAvailableAudioTracks(),r),this._priv_triggerEventIfNotStopped("availableTextTracksChange",this.getAvailableTextTracks(),r),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",this.getAvailableVideoTracks(),r);let i=(d=this._priv_contentInfos)==null?void 0:d.tracksStore;if(E(i))this._priv_triggerEventIfNotStopped("audioTrackChange",null,r),this._priv_triggerEventIfNotStopped("textTrackChange",null,r),this._priv_triggerEventIfNotStopped("videoTrackChange",null,r);else{let p=i.getPeriodObjectFromPeriod(t);if(p!==void 0){let h=i.getChosenAudioTrack(p,!0);this._priv_triggerEventIfNotStopped("audioTrackChange",h,r);let I=i.getChosenTextTrack(p);this._priv_triggerEventIfNotStopped("textTrackChange",I,r);let g=i.getChosenVideoTrack(p,!0);this._priv_triggerEventIfNotStopped("videoTrackChange",g,r)}}let o=(c=(u=this.__priv_getCurrentRepresentations())==null?void 0:u.audio)!=null?c:null;this._priv_triggerEventIfNotStopped("audioRepresentationChange",E(o)?o:In(o),r);let a=(f=(l=this.__priv_getCurrentRepresentations())==null?void 0:l.video)!=null?f:null;this._priv_triggerEventIfNotStopped("videoRepresentationChange",E(a)?a:In(a),r)}_priv_onPeriodStreamReady(e,t){var s;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{type:r,period:i,adaptationRef:o}=t,a=e.tracksStore;switch(r){case"video":case"audio":case"text":E(a)?(m.error("API",`TracksStore not instanciated for a new ${r} period`),o.setValue(null)):a.addTrackReference(r,i,o);break;default:ze(r)}}_priv_onPeriodStreamCleared(e,t){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;let{type:r,periodId:i}=t,o=e.tracksStore;switch(r){case"audio":case"text":case"video":E(o)||o.removeTrackReference(r,i);break}let{activeAdaptations:a,activeRepresentations:s}=e;if(!E(a)&&!E(a[i])){let u=a[i];delete u[r],Object.keys(u).length===0&&delete a[i]}if(!E(s)&&!E(s[i])){let u=s[i];delete u[r],Object.keys(u).length===0&&delete s[i]}}_priv_onAdaptationChange(e,{type:t,adaptation:r,period:i}){var c;if(e.contentId!==((c=this._priv_contentInfos)==null?void 0:c.contentId))return;e.activeAdaptations===null&&(e.activeAdaptations={});let{activeAdaptations:o,currentPeriod:a}=e,s=o[i.id];E(s)?o[i.id]={[t]:r}:s[t]=r;let{tracksStore:d}=e,u=e.currentContentCanceller.signal;if(d!==null&&a!==null&&!E(i)&&i.id===a.id){let l=d.getPeriodObjectFromPeriod(i);if(l===void 0)return;switch(t){case"audio":{let f=d.getChosenAudioTrack(l,!0);this._priv_triggerEventIfNotStopped("audioTrackChange",f,u);break}case"text":{let f=d.getChosenTextTrack(l);this._priv_triggerEventIfNotStopped("textTrackChange",f,u);break}case"video":{let f=d.getChosenVideoTrack(l,!0);this._priv_triggerEventIfNotStopped("videoTrackChange",f,u);break}}}}_priv_onRepresentationChange(e,{type:t,period:r,representation:i}){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;e.activeRepresentations===null&&(e.activeRepresentations={});let{activeRepresentations:o,currentPeriod:a}=e,s=o[r.id];if(E(s)?o[r.id]={[t]:i}:s[t]=i,!E(r)&&a!==null&&a.id===r.id){let u=this._priv_contentInfos.currentContentCanceller.signal;t==="video"?this._priv_triggerEventIfNotStopped("videoRepresentationChange",E(i)?i:In(i),u):t==="audio"&&this._priv_triggerEventIfNotStopped("audioRepresentationChange",E(i)?i:Bo(i),u)}}_priv_onBitrateEstimateChange({type:e,bitrate:t}){t!==void 0&&(this._priv_bitrateInfos.lastBitrates[e]=t),this.trigger("__priv_bitrateEstimateChange",{type:e,bitrate:t})}_priv_setPlayerState(e){this.state!==e&&(this.state=e,m.info("API","playerStateChange event",{newState:e}),this.trigger("playerStateChange",e))}_priv_triggerPositionUpdate(e,t){var s,d;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{isDirectFile:r,manifest:i}=e;if(!r&&i===null||E(t))return;let o=i!==null?kt(i):void 0,a={position:t.position.getPolled(),duration:t.duration,playbackRate:t.playbackRate,maximumPosition:o,bufferGap:t.bufferGap===void 0||!isFinite(t.bufferGap)?0:t.bufferGap};if(i!==null&&i.isLive&&t.position.getPolled()>0){let u=(d=i.availabilityStartTime)!=null?d:0;a.wallClockTime=t.position.getPolled()+u;let c=Sn(i);c!==void 0&&(a.liveGap=c-t.position.getPolled())}else if(r&&this.videoElement!==null){let u=yo(this.videoElement);u!==void 0&&(a.wallClockTime=u+t.position.getPolled())}this.trigger("positionUpdate",a)}_priv_triggerEventIfNotStopped(e,t,r){r.isCancelled()||this.trigger(e,t)}_priv_initializeMediaElementTracksStore(e){var r,i,o;ne(pe.directfile!==null,"Initializing `MediaElementTracksStore` without Directfile feature"),ne(this.videoElement!==null,"Initializing `MediaElementTracksStore` on a disposed RxPlayer");let t=new pe.directfile.mediaElementTracksStore(this.videoElement);return this._priv_triggerEventIfNotStopped("availableAudioTracksChange",t.getAvailableAudioTracks(),e),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",t.getAvailableVideoTracks(),e),this._priv_triggerEventIfNotStopped("availableTextTracksChange",t.getAvailableTextTracks(),e),this._priv_triggerEventIfNotStopped("audioTrackChange",(r=t.getChosenAudioTrack())!=null?r:null,e),this._priv_triggerEventIfNotStopped("textTrackChange",(i=t.getChosenTextTrack())!=null?i:null,e),this._priv_triggerEventIfNotStopped("videoTrackChange",(o=t.getChosenVideoTrack())!=null?o:null,e),t.addEventListener("availableVideoTracksChange",a=>this.trigger("availableVideoTracksChange",a)),t.addEventListener("availableAudioTracksChange",a=>this.trigger("availableAudioTracksChange",a)),t.addEventListener("availableTextTracksChange",a=>this.trigger("availableTextTracksChange",a)),t.addEventListener("audioTrackChange",a=>this.trigger("audioTrackChange",a)),t.addEventListener("videoTrackChange",a=>this.trigger("videoTrackChange",a)),t.addEventListener("textTrackChange",a=>this.trigger("textTrackChange",a)),t}_priv_callTracksStoreGetterSetter(e,t,r){var d,u;if(this._priv_contentInfos===null||this._priv_contentInfos.tracksStore===null)return m.warn("API","Trying to call track API too soon"),t;let{tracksStore:i}=this._priv_contentInfos,o=(u=(d=this._priv_contentInfos)==null?void 0:d.currentPeriod)!=null?u:void 0,a=e!=null?e:o==null?void 0:o.id;if(a===void 0)return t;let s=a===(o==null?void 0:o.id)?i.getPeriodObjectFromPeriod(o):i.getPeriodObjectFromId(a);return s===void 0?t:r(i,s)}_priv_onAvailableTracksMayHaveChanged(e,t){let r=this._priv_contentInfos;if(r===null)return;let{currentPeriod:i,tracksStore:o,currentContentCanceller:a}=r,s=a.signal;if(E(i)||o===null)return;let d=t!=null?t:o.getPeriodObjectFromPeriod(i);if(d!==void 0)switch(e){case"video":{let u=o.getAvailableVideoTracks(d,!0);this._priv_triggerEventIfNotStopped("availableVideoTracksChange",u!=null?u:[],s);break}case"audio":{let u=o.getAvailableAudioTracks(d,!0);this._priv_triggerEventIfNotStopped("availableAudioTracksChange",u!=null?u:[],s);break}case"text":{let u=o.getAvailableTextTracks(d);this._priv_triggerEventIfNotStopped("availableTextTracksChange",u!=null?u:[],s);break}default:ze(e)}}_priv_onFatalError(e,t){let r=Me(e,{defaultCode:"NONE",defaultReason:"An unknown error stopped content playback."});r.fatal=!0,t.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this._priv_currentError=r,m.error("API","The player stopped because of an error",r),this._priv_setPlayerState("STOPPED"),this._priv_currentError===r&&this.trigger("error",r)}};Yt._priv_currentlyUsedVideoElements=new WeakSet;var Ir=Yt;Ir.version="4.4.0-dev.2025092200";var Dp=Ir;var es=Dp;ts();es.addFeatures([Fl,Au,Du,Lu,Cl,_l,Ml,Rl,ll,Ku,bl,Wu]);var nue=es;Z.RxPlayer=es;})();
|
|
23
|
+
Make sure to dispose the previous instance with player.dispose() before creating a new player instance attaching that video element.`),Yt._priv_currentlyUsedVideoElements.add(e)}static _priv_deregisterVideoElement(e){Yt._priv_currentlyUsedVideoElements.has(e)&&Yt._priv_currentlyUsedVideoElements.delete(e)}constructor(e={}){super();let{baseBandwidth:t,videoResolutionLimit:r,maxBufferAhead:i,maxBufferBehind:o,throttleVideoBitrateWhenHidden:a,videoElement:s,wantedBufferAhead:d,maxVideoBufferSize:u}=Cp(e);s.preload="auto",this.version="4.4.0",this.log=m,this.state="STOPPED",this.videoElement=s,Yt._priv_registerVideoElement(this.videoElement);let c=new U;this._destroyCanceller=c,this._priv_pictureInPictureRef=Lc(s,c.signal),this._priv_speed=new j(s.playbackRate,this._destroyCanceller.signal),this._priv_preferTrickModeTracks=!1,this._priv_contentLock=new j(!1,this._destroyCanceller.signal),this._priv_bufferOptions={wantedBufferAhead:new j(d,this._destroyCanceller.signal),maxBufferAhead:new j(i,this._destroyCanceller.signal),maxBufferBehind:new j(o,this._destroyCanceller.signal),maxVideoBufferSize:new j(u,this._destroyCanceller.signal)},this._priv_bitrateInfos={lastBitrates:{audio:t,video:t}},this._priv_throttleVideoBitrateWhenHidden=a,this._priv_videoResolutionLimit=r,this._priv_currentError=null,this._priv_contentInfos=null,this._priv_contentEventsMemory={},this._priv_reloadingMetadata={},this._priv_lastAutoPlay=!1,this._priv_worker=null;let l=()=>{this.trigger("volumeChange",{volume:s.volume,muted:s.muted})};s.addEventListener("volumechange",l),c.signal.register(()=>{s.removeEventListener("volumechange",l)})}attachWorker(e){return new Promise((t,r)=>{var a;if(!Vl())return m.warn("API","Cannot rely on a WebWorker: Worker API unavailable"),r(new mn("INCOMPATIBLE_ERROR","Worker unavailable"));if(this._priv_worker!==null){if(this.state!=="STOPPED")return m.warn("API","Cannot attach a new worker while a content is playing, please stop the player first."),r(new mn("SETUP_ERROR","Cannot attach a new worker while a content is playing"));this._priv_worker.terminate()}if(typeof e.workerUrl=="string")this._priv_worker=new Worker(e.workerUrl);else{let s=URL.createObjectURL(e.workerUrl);this._priv_worker=new Worker(s),URL.revokeObjectURL(s)}this._priv_worker.onerror=s=>{this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null),m.error("API","Unexpected worker error",s.error instanceof Error?s.error:void 0),r(new mn("UNKNOWN_ERROR",'Unexpected Worker "error" event'))};let i=s=>{let d=s.data;d.type==="init-error"?(m.warn("API","Processing InitError worker message: detaching worker"),this._priv_worker!==null&&(this._priv_worker.removeEventListener("message",i),this._priv_worker.terminate(),this._priv_worker=null),r(new mn("SETUP_ERROR","Worker parser initialization failed: "+d.value.errorMessage))):d.type==="init-success"&&(m.info("API","InitSuccess received from worker."),this._priv_worker!==null&&this._priv_worker.removeEventListener("message",i),t())};this._priv_worker.addEventListener("message",i),m.debug("M-->C","Sending message",{name:"init"}),this._priv_worker.postMessage({type:"init",value:{dashWasmUrl:e.dashWasmUrl,logLevel:m.getLevel(),logFormat:m.getFormat(),sendBackLogs:To,date:Date.now(),timestamp:z(),hasVideo:((a=this.videoElement)==null?void 0:a.nodeName.toLowerCase())==="video"}}),m.addEventListener("onLogLevelChange",s=>{this._priv_worker!==null&&(m.debug("M-->C","Sending message",{name:"log-level-update"}),this._priv_worker.postMessage({type:"log-level-update",value:{logLevel:s.level,logFormat:s.format,sendBackLogs:To}}))},this._destroyCanceller.signal);let o=s=>{this._priv_worker!==null&&(m.debug("M-->C","Sending message:",{name:"config-update"}),this._priv_worker.postMessage({type:"config-update",value:s}))};O.updated&&o(O.getCurrent()),O.addEventListener("update",o,this._destroyCanceller.signal)})}getCurrentModeInformation(){return this._priv_contentInfos===null?null:{isDirectFile:this._priv_contentInfos.isDirectFile,useWorker:this._priv_contentInfos.useWorker}}addEventListener(e,t){return super.addEventListener(e,t)}stop(){this._priv_contentInfos!==null&&this._priv_contentInfos.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this.state!=="STOPPED"&&this._priv_setPlayerState("STOPPED")}dispose(){this.stop(),this.videoElement!==null&&(Yt._priv_deregisterVideoElement(this.videoElement),qn(this.videoElement).catch(e=>{let t=e instanceof Error?e.message:"Unknown error";m.error("API","Could not dispose decryption resources: "+t)})),this._destroyCanceller.cancel(),this._priv_reloadingMetadata={},this.videoElement=null,this._priv_worker!==null&&(this._priv_worker.terminate(),this._priv_worker=null)}loadVideo(e){let t=Mp(e);m.info("API","Calling loadvideo",{url:t.url,transport:t.transport}),this._priv_reloadingMetadata={options:t},this._priv_initializeContentPlayback(t),this._priv_lastAutoPlay=t.autoPlay}reload(e){var c,l,f;let{options:t,manifest:r,reloadPosition:i,reloadInPause:o}=this._priv_reloadingMetadata;if(t===void 0)throw new Error("API: Can't reload without having previously loaded a content.");Ap(e);let a;if(((c=e==null?void 0:e.reloadAt)==null?void 0:c.position)!==void 0)a={position:e.reloadAt.position};else if(((l=e==null?void 0:e.reloadAt)==null?void 0:l.relative)!==void 0){if(i===void 0)throw new Error("Can't reload to a relative position when previous content was not loaded.");a={position:e.reloadAt.relative+i}}else i!==void 0&&(a={position:i});let s;(e==null?void 0:e.autoPlay)!==void 0?s=e.autoPlay:o!==void 0&&(s=!o);let d;(e==null?void 0:e.keySystems)!==void 0?d=e.keySystems:((f=this._priv_reloadingMetadata.options)==null?void 0:f.keySystems)!==void 0&&(d=this._priv_reloadingMetadata.options.keySystems);let u=ue(ae({},t),{initialManifest:r});a!==void 0&&(u.startAt=a),s!==void 0&&(u.autoPlay=s),d!==void 0&&(u.keySystems=d),this._priv_initializeContentPlayback(u)}createDebugElement(e){if(pe.createDebugElement===null)throw new Error("Feature `DEBUG_ELEMENT` not added to the RxPlayer");let t=new U;return pe.createDebugElement(e,this,t.signal),{dispose(){t.cancel()}}}getAvailableThumbnailTracks({time:e,periodId:t}={}){if(this._priv_contentInfos===null||this._priv_contentInfos.manifest===null)return[];let{manifest:r}=this._priv_contentInfos,i;if(e!==void 0){if(i=Hn(this._priv_contentInfos.manifest,e),i===void 0||i.thumbnailTracks.length===0)return[]}else if(t!==void 0){if(i=Q(r.periods,o=>o.id===t),i===void 0)return m.error("API","getAvailableThumbnailTracks: periodId not found",{periodId:t}),[]}else{let{currentPeriod:o}=this._priv_contentInfos;if(o===null)return[];i=o}return i.thumbnailTracks.map(o=>({id:o.id,width:Math.floor(o.width/o.horizontalTiles),height:Math.floor(o.height/o.verticalTiles),mimeType:o.mimeType}))}async renderThumbnail(e){if(E(e.time))throw new Error("You have to provide a `time` property to `renderThumbnail`, indicating the wanted thumbnail time in seconds.");if(E(e.container))throw new Error("You have to provide a `container` property to `renderThumbnail`, specifying the HTML Element in which the thumbnail should be inserted.");return zl(this._priv_contentInfos,e)}_priv_initializeContentPlayback(e){var oe,fe,Re,ge,he,_t;let{autoPlay:t,cmcd:r,defaultAudioTrackSwitchingMode:i,enableFastSwitching:o,initialManifest:a,keySystems:s,lowLatencyMode:d,minimumManifestUpdateInterval:u,requestConfig:c,onCodecSwitch:l,startAt:f,transport:p,checkMediaSegmentIntegrity:h,checkManifestIntegrity:I,manifestLoader:g,referenceDateTime:b,segmentLoader:T,serverSyncInfos:v,mode:_,experimentalOptions:R,__priv_manifestUpdateUrl:k,__priv_patchLastSegmentInSidx:x,url:P,onAudioTracksNotPlayable:M,onVideoTracksNotPlayable:L}=e;if(this.videoElement===null)throw new Error("the attached video element is disposed");let F=p==="directfile",D=new U,B=this.videoElement,A,C=!1,N=null;if(F){if(pe.directfile===null)throw this.stop(),this._priv_currentError=null,new Error("DirectFile feature not activated in your build.");if(E(P))throw new Error("No URL for a DirectFile content");if(m.info("API","Initializing DirectFile mode in the main thread"),N=this._priv_initializeMediaElementTracksStore(D.signal),D.isUsed())return;A=new pe.directfile.initDirectFile({autoPlay:t,keySystems:s,speed:this._priv_speed,startAt:f,url:P})}else{let ee={lowLatencyMode:d,maxRetry:(oe=c.manifest)==null?void 0:oe.maxRetry,requestTimeout:(fe=c.manifest)==null?void 0:fe.timeout,connectionTimeout:(Re=c.manifest)==null?void 0:Re.connectionTimeout,minimumManifestUpdateInterval:u,initialManifest:a},ye=Kl(),ot={throttleBitrate:{},limitResolution:{}};this._priv_throttleVideoBitrateWhenHidden&&(ye?ot.throttleBitrate={video:gn(Nc(this._priv_pictureInPictureRef,D.signal),Qt=>Qt?1/0:0,D.signal)}:m.warn("API","Can't apply throttleVideoBitrateWhenHidden because browser can't be trusted for visibility.")),this._priv_videoResolutionLimit==="videoElement"?ye?ot.limitResolution={video:Bc(B,this._priv_pictureInPictureRef,D.signal)}:m.warn("API","Can't apply videoResolutionLimit because browser can't be trusted for video size."):this._priv_videoResolutionLimit==="screen"&&(ot.limitResolution={video:Uc(D.signal)});let pn={initialBitrates:this._priv_bitrateInfos.lastBitrates,lowLatencyMode:d,throttlers:ot},ht=e.textTrackMode==="native"?{textTrackMode:"native"}:{textTrackMode:"html",textTrackElement:e.textTrackElement},yt=Y({enableFastSwitching:o,onCodecSwitch:l},this._priv_bufferOptions),Yl={lowLatencyMode:d,maxRetry:(ge=c.segment)==null?void 0:ge.maxRetry,requestTimeout:(he=c.segment)==null?void 0:he.timeout,connectionTimeout:(_t=c.segment)==null?void 0:_t.connectionTimeout},Lp=pe.multithread!==null&&this._priv_worker!==null&&this.videoElement.FORCED_MEDIA_SOURCE===void 0&&p==="dash"&&nS.every(Qt=>E(e[Qt]))&&typeof e.representationFilter!="function";if(_==="main"||_==="auto"&&!Lp){if(pe.mainThreadMediaSourceInit===null)throw new Error("Cannot load video, neither in a WebWorker nor with the `MEDIA_SOURCE_MAIN` feature");let Qt=pe.transports[p];if(typeof Qt!="function")throw this.stop(),this._priv_currentError=null,new Error(`transport "${p}" not supported`);let Np=typeof e.representationFilter=="string"?Mc(e.representationFilter):e.representationFilter;m.info("API","Initializing MediaSource mode in the main thread");let Up=Qt({lowLatencyMode:d,checkMediaSegmentIntegrity:h,checkManifestIntegrity:I,manifestLoader:g,referenceDateTime:b,representationFilter:Np,segmentLoader:T,serverSyncInfos:v,__priv_manifestUpdateUrl:k,__priv_patchLastSegmentInSidx:x});A=new pe.mainThreadMediaSourceInit({adaptiveOptions:pn,autoPlay:t,bufferOptions:yt,cmcd:r,enableRepresentationAvoidance:R.enableRepresentationAvoidance,keySystems:s,lowLatencyMode:d,transport:Up,manifestRequestSettings:ee,segmentRequestOptions:Yl,speed:this._priv_speed,startAt:f,textTrackOptions:ht,url:P})}else{if(pe.multithread===null)throw new Error("Cannot load video in multithread mode: `MULTI_THREAD` feature not imported.");if(this._priv_worker===null)throw new Error("Cannot load video in multithread mode: `attachWorker` method not called.");ne(typeof e.representationFilter!="function"),C=!0,m.info("API","Initializing MediaSource mode in a WebWorker");let Qt={lowLatencyMode:d,checkMediaSegmentIntegrity:h,checkManifestIntegrity:I,referenceDateTime:b,serverSyncInfos:v,manifestLoader:void 0,segmentLoader:void 0,representationFilter:e.representationFilter,__priv_manifestUpdateUrl:k,__priv_patchLastSegmentInSidx:x};A=new pe.multithread.init({adaptiveOptions:pn,autoPlay:t,bufferOptions:yt,cmcd:r,enableRepresentationAvoidance:R.enableRepresentationAvoidance,keySystems:s,lowLatencyMode:d,transportOptions:Qt,manifestRequestSettings:ee,segmentRequestOptions:Yl,speed:this._priv_speed,startAt:f,textTrackOptions:ht,worker:this._priv_worker,url:P,useMseInWorker:vm})}}let K=new Io(B,{withMediaSource:!F,lowLatencyMode:d});K.blockSeeking(),D.signal.register(()=>{K.stop()});let q={contentId:tS(),originalUrl:P,playbackObserver:K,currentContentCanceller:D,defaultAudioTrackSwitchingMode:i,initializer:A,isDirectFile:F,manifest:null,currentPeriod:null,activeAdaptations:null,activeRepresentations:null,tracksStore:null,mediaElementTracksStore:N,useWorker:C,segmentSinkMetricsCallback:null,fetchThumbnailDataCallback:null,thumbnailRequestsInfo:{pendingRequests:new WeakMap,lastResponse:null},onAudioTracksNotPlayable:M,onVideoTracksNotPlayable:L};A.addEventListener("error",ee=>{this._priv_onFatalError(ee,q)}),A.addEventListener("warning",ee=>{let ye=Me(ee,{defaultCode:"NONE",defaultReason:"An unknown error happened."});m.warn("API","Sending warning:",ye),this.trigger("warning",ye)}),A.addEventListener("reloadingMediaSource",ee=>{q.tracksStore!==null&&q.tracksStore.resetPeriodObjects(),this._priv_contentInfos!==null&&(this._priv_contentInfos.segmentSinkMetricsCallback=null),this._priv_lastAutoPlay=ee.autoPlay}),A.addEventListener("inbandEvents",ee=>this.trigger("inbandEvents",ee)),A.addEventListener("streamEvent",ee=>this.trigger("streamEvent",ee)),A.addEventListener("streamEventSkip",ee=>this.trigger("streamEventSkip",ee)),A.addEventListener("activePeriodChanged",ee=>this._priv_onActivePeriodChanged(q,ee)),A.addEventListener("periodStreamReady",ee=>this._priv_onPeriodStreamReady(q,ee)),A.addEventListener("periodStreamCleared",ee=>this._priv_onPeriodStreamCleared(q,ee)),A.addEventListener("representationChange",ee=>this._priv_onRepresentationChange(q,ee)),A.addEventListener("adaptationChange",ee=>this._priv_onAdaptationChange(q,ee)),A.addEventListener("bitrateEstimateChange",ee=>this._priv_onBitrateEstimateChange(ee)),A.addEventListener("manifestReady",ee=>this._priv_onManifestReady(q,ee)),A.addEventListener("manifestUpdate",ee=>this._priv_onManifestUpdate(q,ee)),A.addEventListener("codecSupportUpdate",()=>this._priv_onCodecSupportUpdate(q)),A.addEventListener("decipherabilityUpdate",ee=>this._priv_onDecipherabilityUpdate(q,ee)),A.addEventListener("loaded",ee=>{this._priv_contentInfos!==null&&(this._priv_contentInfos.segmentSinkMetricsCallback=ee.getSegmentSinkMetrics,this._priv_contentInfos.fetchThumbnailDataCallback=ee.getThumbnailData)}),A.prepare(),this.stop();let X=Op(A,B,K,F,D.signal);D.signal.register(()=>{A.dispose()});let W=ee=>{switch(ee){case"STOPPED":case"RELOADING":case"LOADING":break;case"ENDED":this._priv_reloadingMetadata.reloadInPause=!0,this._priv_reloadingMetadata.reloadPosition=K.getReference().getValue().position.getPolled();break;default:{let ye=K.getReference().getValue();this._priv_reloadingMetadata.reloadInPause=ye.paused,this._priv_reloadingMetadata.reloadPosition=ye.position.getWanted();break}}},H=null,G=ee=>{H!==null&&(H.cancel(),H=null),X.onUpdate((ye,ot)=>{yr(ye)&&(ot(),H!==null&&H.cancel(),H=new U,H.linkToSignal(D.signal),ee!==!B.paused&&(B.paused?this.trigger("pause",null):this.trigger("play",null)),wp(B,()=>this.trigger("play",null),()=>this.trigger("pause",null),D.signal))},{emitCurrentValue:!1,clearSignal:D.signal})};G(t),A.addEventListener("reloadingMediaSource",ee=>{G(ee.autoPlay)}),this._priv_currentError=null,this._priv_contentInfos=q;let ie=null;X.onUpdate(ee=>{W(ee),this._priv_setPlayerState(ee),!D.isUsed()&&(ie!==null?yr(this.state)||(ie.cancel(),ie=null):yr(this.state)&&(ie=new U,ie.linkToSignal(D.signal),xp(K,()=>this.trigger("seeking",null),()=>this.trigger("seeked",null),ie.signal)))},{emitCurrentValue:!0,clearSignal:D.signal}),K.listen(ee=>{W(this.state),this._priv_triggerPositionUpdate(q,ee)},{clearSignal:D.signal}),D.signal.register(()=>{A.removeEventListener()}),this._priv_contentLock.onUpdate((ee,ye)=>{ee||(ye(),A.start(B,K))},{emitCurrentValue:!0,clearSignal:D.signal})}getError(){return this._priv_currentError}getVideoElement(){return this.videoElement}getPlayerState(){return this.state}isContentLoaded(){return!$(["LOADING","RELOADING","STOPPED"],this.state)}isBuffering(){return $(["BUFFERING","SEEKING","LOADING","RELOADING"],this.state)}isPaused(){return this.videoElement!==null?$(["LOADING","RELOADING"],this.state)?!this._priv_lastAutoPlay:this.videoElement.paused:!0}isLive(){if(this._priv_contentInfos===null)return!1;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;return e||t===null?!1:t.isLive}areTrickModeTracksEnabled(){return this._priv_preferTrickModeTracks}getContentUrls(){if(this._priv_contentInfos===null)return;let{isDirectFile:e,manifest:t,originalUrl:r}=this._priv_contentInfos;if(e)return r===void 0?void 0:[r];if(t!==null)return t.uris}updateContentUrls(e,t){if(this._priv_contentInfos===null)throw new Error("No content loaded");let r=(t==null?void 0:t.refresh)===!0;this._priv_contentInfos.initializer.updateContentUrls(e,r)}getMediaDuration(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}getCurrentBufferGap(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement,t=pc(e.buffered,e.currentTime);return t===1/0?0:t}getWallClockTime(){if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)return this.videoElement.currentTime;let e=this.getWallClockOffset();return this.videoElement.currentTime+e}getWallClockOffset(){var r;if(this.videoElement===null||this._priv_contentInfos===null)return 0;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){let i=yo(this.videoElement);return i!=null?i:0}return t!==null&&(r=t.availabilityStartTime)!=null?r:0}getPosition(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.currentTime}getLastStoredContentPosition(){return this._priv_reloadingMetadata.reloadPosition}getPlaybackRate(){return this._priv_speed.getValue()}setPlaybackRate(e,t){var o;e!==this._priv_speed.getValue()&&this._priv_speed.setValue(e);let r=t==null?void 0:t.preferTrickModeTracks;if(typeof r!="boolean")return;this._priv_preferTrickModeTracks=r;let i=(o=this._priv_contentInfos)==null?void 0:o.tracksStore;E(i)||(r&&!i.isTrickModeEnabled()?i.enableVideoTrickModeTracks():!r&&i.isTrickModeEnabled()&&i.disableVideoTrickModeTracks())}getVideoRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return E(e.video)?e.video:In(e.video)}getAudioRepresentation(){let e=this.__priv_getCurrentRepresentations();if(e!==null)return E(e.audio)?e.video:Bo(e.audio)}play(){if(this.videoElement===null)throw new Error("Disposed player");let e=this.videoElement.play();return E(e)||typeof e.catch!="function"?Promise.resolve():e.catch(t=>{if(t.name==="NotAllowedError"){let r=new re("MEDIA_ERR_PLAY_NOT_ALLOWED",t.toString());this.trigger("warning",r)}throw t})}pause(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.pause()}seekTo(e){var o;if(this.videoElement===null)throw new Error("Disposed player");if(this._priv_contentInfos===null)throw new Error("player: no content loaded");let{isDirectFile:t,manifest:r}=this._priv_contentInfos,i;if(typeof e=="number")i=e;else if(typeof e=="object"){let a=e,s=this.videoElement.currentTime;if(!E(a.relative))i=s+a.relative;else if(!E(a.position))i=a.position;else{if(E(a.wallClockTime))throw new Error('invalid time object. You must set one of the following properties: "relative", "position" or "wallClockTime"');if(r!==null)i=a.wallClockTime-((o=r.availabilityStartTime)!=null?o:0);else if(t){if(this.videoElement!==null){let d=yo(this.videoElement);d!==void 0&&(i=a.wallClockTime-d)}}else throw new Error("Cannot seek: wallClockTime asked but Manifest not yet loaded.");i===void 0&&(i=a.wallClockTime)}}if(i===void 0)throw new Error("invalid time given");return m.info("API","API seekTo",{positionWanted:i}),this._priv_contentInfos.playbackObserver.setCurrentTime(i,!1),i}getVolume(){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.volume}setVolume(e){if(this.videoElement===null)throw new Error("Disposed player");let t=this.videoElement;e!==t.volume&&(t.volume=e)}isMute(){var e;return((e=this.videoElement)==null?void 0:e.muted)===!0}mute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted||(this.videoElement.muted=!0)}unMute(){if(this.videoElement===null)throw new Error("Disposed player");this.videoElement.muted&&(this.videoElement.muted=!1)}setMaxBufferBehind(e){this._priv_bufferOptions.maxBufferBehind.setValue(e)}setMaxBufferAhead(e){this._priv_bufferOptions.maxBufferAhead.setValue(e)}setWantedBufferAhead(e){this._priv_bufferOptions.wantedBufferAhead.setValue(e)}setMaxVideoBufferSize(e){this._priv_bufferOptions.maxVideoBufferSize.setValue(e)}getMaxBufferBehind(){return this._priv_bufferOptions.maxBufferBehind.getValue()}getMaxBufferAhead(){return this._priv_bufferOptions.maxBufferAhead.getValue()}getWantedBufferAhead(){return this._priv_bufferOptions.wantedBufferAhead.getValue()}getMaxVideoBufferSize(){return this._priv_bufferOptions.maxVideoBufferSize.getValue()}getCurrentPeriod(){var t;let e=(t=this._priv_contentInfos)==null?void 0:t.currentPeriod;return E(e)?null:{id:e.id,start:e.start,end:e.end}}getKeySystemConfiguration(){if(this.videoElement===null)throw new Error("Disposed player");let e=Zn(this.videoElement);return e===null?null:{keySystem:e[0],configuration:e[1]}}getAvailablePeriods(){if(this._priv_contentInfos===null)return[];let{isDirectFile:e,tracksStore:t}=this._priv_contentInfos;return e?[]:t===null?[]:t.getAvailablePeriods().slice()}getAvailableAudioTracks(e){var a,s;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return(a=r==null?void 0:r.getAvailableAudioTracks())!=null?a:[];let i,o=!0;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(s=e==null?void 0:e.filterPlayableRepresentations)!=null?s:!0),this._priv_callTracksStoreGetterSetter(i,[],(d,u)=>{var c;return(c=d.getAvailableAudioTracks(u,o))!=null?c:[]})}getAvailableTextTracks(e){var i;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?(i=r==null?void 0:r.getAvailableTextTracks())!=null?i:[]:this._priv_callTracksStoreGetterSetter(e,[],(o,a)=>{var s;return(s=o.getAvailableTextTracks(a))!=null?s:[]})}getAvailableVideoTracks(e){var a,s;if(this._priv_contentInfos===null)return[];let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return(a=r==null?void 0:r.getAvailableVideoTracks())!=null?a:[];let i,o=!0;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(s=e==null?void 0:e.filterPlayableRepresentations)!=null?s:!0),this._priv_callTracksStoreGetterSetter(i,[],(d,u)=>{var c;return(c=d.getAvailableVideoTracks(u,o))!=null?c:[]})}getAudioTrack(e){var a;if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return r===null?void 0:r.getChosenAudioTrack();let i,o=!0;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(a=e==null?void 0:e.filterPlayableRepresentations)!=null?a:!0),this._priv_callTracksStoreGetterSetter(i,void 0,(s,d)=>s.getChosenAudioTrack(d,o))}getTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t?r===null?void 0:r.getChosenTextTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.getChosenTextTrack(o))}getVideoTrack(e){var a;if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)return r===null?void 0:r.getChosenVideoTrack();let i,o=!0;return typeof e=="string"?i=e:(i=e==null?void 0:e.periodId,o=(a=e==null?void 0:e.filterPlayableRepresentations)!=null?a:!0),this._priv_callTracksStoreGetterSetter(i,void 0,(s,d)=>s.getChosenVideoTrack(d,o))}setAudioTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let c=typeof e=="string"?e:e.trackId;r==null||r.setAudioTrackById(c);return}catch(c){throw new Error("player: unknown audio track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(c,l)=>c.setAudioTrack({periodRef:l,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}setTextTrack(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let a=typeof e=="string"?e:e.trackId;r==null||r.setTextTrackById(a);return}catch(a){throw new Error("player: unknown text track")}let i,o;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.setTextTrack(s,o))}disableTextTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t){r==null||r.disableTextTrack();return}return this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"text"))}setVideoTrack(e){var u;if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;if(t)try{let c=typeof e=="string"?e:e.trackId;r==null||r.setVideoTrackById(c);return}catch(c){throw new Error("player: unknown video track")}let i,o,a,s=null,d;return typeof e=="string"?o=e:(o=e.trackId,i=e.periodId,a=e.switchingMode,s=(u=e.lockedRepresentations)!=null?u:null,d=e.relativeResumingPosition),this._priv_callTracksStoreGetterSetter(i,void 0,(c,l)=>c.setVideoTrack({periodRef:l,trackId:o,switchingMode:a,lockedRepresentations:s,relativeResumingPosition:d}))}disableVideoTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t&&r!==null?r.disableVideoTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"video"))}lockVideoRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock video Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockVideoRepresentations(s,{representations:r,switchingMode:o}))}disableAudioTrack(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t,mediaElementTracksStore:r}=this._priv_contentInfos;return t&&r!==null?r.disableAudioTrack():this._priv_callTracksStoreGetterSetter(e,void 0,(i,o)=>i.disableTrack(o,"audio"))}lockAudioRepresentations(e){if(this._priv_contentInfos===null)throw new Error("No content loaded");let{isDirectFile:t}=this._priv_contentInfos;if(t)throw new Error("Cannot lock audio Representations in directfile mode.");let r,i,o;return Array.isArray(e)?(r=e,i=void 0):(r=e.representations,i=e.periodId,o=e.switchingMode),this._priv_callTracksStoreGetterSetter(i,void 0,(a,s)=>a.lockAudioRepresentations(s,{representations:r,switchingMode:o}))}getLockedVideoRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedVideoRepresentations(i))}getLockedAudioRepresentations(e){if(this._priv_contentInfos===null)return null;let{isDirectFile:t}=this._priv_contentInfos;return t?null:this._priv_callTracksStoreGetterSetter(e,null,(r,i)=>r.getLockedAudioRepresentations(i))}unlockVideoRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockVideoRepresentations(i))}unlockAudioRepresentations(e){if(this._priv_contentInfos===null)return;let{isDirectFile:t}=this._priv_contentInfos;if(!t)return this._priv_callTracksStoreGetterSetter(e,void 0,(r,i)=>r.unlockAudioRepresentations(i))}getMinimumPosition(){if(this._priv_contentInfos===null)return null;if(this._priv_contentInfos.isDirectFile)return 0;let{manifest:e}=this._priv_contentInfos;return e!==null?bn(e):null}getLivePosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(!e)return(t==null?void 0:t.isLive)!==!0?null:Sn(t)}getMaximumPosition(){if(this._priv_contentInfos===null)return null;let{isDirectFile:e,manifest:t}=this._priv_contentInfos;if(e){if(this.videoElement===null)throw new Error("Disposed player");return this.videoElement.duration}return t!==null?!t.isDynamic&&this.videoElement!==null?this.videoElement.duration:kt(t):null}async __priv_getSegmentSinkMetrics(){var e,t;return(t=(e=this._priv_contentInfos)==null?void 0:e.segmentSinkMetricsCallback)==null?void 0:t.call(e)}__priv_getManifest(){return this._priv_contentInfos===null?null:this._priv_contentInfos.manifest}__priv_getCurrentAdaptation(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeAdaptations:t}=this._priv_contentInfos;return e===null||t===null||E(t[e.id])?null:t[e.id]}__priv_getCurrentRepresentations(){if(this._priv_contentInfos===null)return null;let{currentPeriod:e,activeRepresentations:t}=this._priv_contentInfos;return e===null||t===null||E(t[e.id])?null:t[e.id]}_priv_cleanUpCurrentContentState(){var t,r,i,o;m.debug("API","Locking `contentLock` to clean-up the current content."),this._priv_contentLock.setValue(!0),(r=(t=this._priv_contentInfos)==null?void 0:t.tracksStore)==null||r.dispose(),(o=(i=this._priv_contentInfos)==null?void 0:i.mediaElementTracksStore)==null||o.dispose(),this._priv_contentInfos=null,this._priv_contentEventsMemory={};let e=()=>{this.videoElement!==null&&(m.debug("API","Unlocking `contentLock`. Next content can begin."),this._priv_contentLock.setValue(!1))};E(this.videoElement)?e():zo(this.videoElement).then(()=>{m.debug("API","DRM session cleaned-up with success!"),e()},a=>{m.error("API","An error arised when trying to clean-up the DRM session:"+(a instanceof Error?a.toString():"Unknown Error")),e()})}_priv_onManifestReady(e,t){var i;if(e.contentId!==((i=this._priv_contentInfos)==null?void 0:i.contentId))return;e.manifest=t,t.manifestFormat===0&&(this._priv_reloadingMetadata.manifest=t);let r=new Pp({preferTrickModeTracks:this._priv_preferTrickModeTracks,defaultAudioTrackSwitchingMode:e.defaultAudioTrackSwitchingMode,onTracksNotPlayableForType:{audio:e.onAudioTracksNotPlayable,video:e.onVideoTracksNotPlayable,text:"continue"}});e.tracksStore=r,r.addEventListener("newAvailablePeriods",o=>{this.trigger("newAvailablePeriods",o)}),r.addEventListener("brokenRepresentationsLock",o=>{this.trigger("brokenRepresentationsLock",o)}),r.addEventListener("trackUpdate",o=>{var s,d;this.trigger("trackUpdate",o);let a=(d=(s=this._priv_contentInfos)==null?void 0:s.currentPeriod)!=null?d:void 0;o.reason==="no-playable-representation"&&o.period.id===(a==null?void 0:a.id)&&this._priv_onAvailableTracksMayHaveChanged(o.trackType)}),r.addEventListener("warning",o=>{this.trigger("warning",o)}),r.addEventListener("error",o=>{this._priv_onFatalError(o,e)}),r.addEventListener("noPlayableTrack",o=>{this.trigger("noPlayableTrack",o)}),r.onManifestUpdate(t)}_priv_onManifestUpdate(e,t){var o,a,s;if(this._priv_contentInfos===null||this._priv_contentInfos.manifest===null)return;E(e==null?void 0:e.tracksStore)||e.tracksStore.onManifestUpdate(this._priv_contentInfos.manifest);let r=(a=(o=this._priv_contentInfos)==null?void 0:o.currentPeriod)!=null?a:void 0,i=(s=this._priv_contentInfos)==null?void 0:s.tracksStore;if(!(r===void 0||E(i))){for(let d of t.updatedPeriods)if(d.period.id===r.id&&(d.result.addedAdaptations.length>0||d.result.removedAdaptations.length>0)){if(i.getPeriodObjectFromPeriod(r)===void 0)return;this._priv_onAvailableTracksMayHaveChanged("audio"),this._priv_onAvailableTracksMayHaveChanged("text"),this._priv_onAvailableTracksMayHaveChanged("video")}}}_priv_onCodecSupportUpdate(e){let t=e==null?void 0:e.tracksStore;E(t)||t.onManifestCodecSupportUpdate()}_priv_onDecipherabilityUpdate(e,t){if(e===null||e.manifest===null)return;E(e==null?void 0:e.tracksStore)||e.tracksStore.onDecipherabilityUpdates();let r=t.reduce((i,o)=>{var s,d,u;if(!(Q(i,c=>c[0].id===o.period.id&&c[1]===o.adaptation.type)!==void 0)){let c=e.tracksStore;if(c===null)return i;let l=!1,f=c.getPeriodObjectFromPeriod(o.period);if(f===void 0)return i;switch(o.adaptation.type){case"audio":l=((s=c.getChosenAudioTrack(f,!1))==null?void 0:s.id)===o.adaptation.id;break;case"video":l=((d=c.getChosenVideoTrack(f,!1))==null?void 0:d.id)===o.adaptation.id;break;case"text":l=((u=c.getChosenTextTrack(f))==null?void 0:u.id)===o.adaptation.id;break}l&&i.push([o.period,o.adaptation.type])}return i},[]);for(let[i,o]of r)this._priv_triggerEventIfNotStopped("representationListUpdate",{period:{start:i.start,end:i.end,id:i.id},trackType:o,reason:"decipherability-update"},e.currentContentCanceller.signal)}_priv_onActivePeriodChanged(e,{period:t}){var s,d,u,c,l,f;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;e.currentPeriod=t;let r=e.currentContentCanceller.signal;this._priv_contentEventsMemory.periodChange!==t&&(this._priv_contentEventsMemory.periodChange=t,this._priv_triggerEventIfNotStopped("periodChange",{start:t.start,end:t.end,id:t.id},r)),this._priv_triggerEventIfNotStopped("availableAudioTracksChange",this.getAvailableAudioTracks(),r),this._priv_triggerEventIfNotStopped("availableTextTracksChange",this.getAvailableTextTracks(),r),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",this.getAvailableVideoTracks(),r);let i=(d=this._priv_contentInfos)==null?void 0:d.tracksStore;if(E(i))this._priv_triggerEventIfNotStopped("audioTrackChange",null,r),this._priv_triggerEventIfNotStopped("textTrackChange",null,r),this._priv_triggerEventIfNotStopped("videoTrackChange",null,r);else{let p=i.getPeriodObjectFromPeriod(t);if(p!==void 0){let h=i.getChosenAudioTrack(p,!0);this._priv_triggerEventIfNotStopped("audioTrackChange",h,r);let I=i.getChosenTextTrack(p);this._priv_triggerEventIfNotStopped("textTrackChange",I,r);let g=i.getChosenVideoTrack(p,!0);this._priv_triggerEventIfNotStopped("videoTrackChange",g,r)}}let o=(c=(u=this.__priv_getCurrentRepresentations())==null?void 0:u.audio)!=null?c:null;this._priv_triggerEventIfNotStopped("audioRepresentationChange",E(o)?o:In(o),r);let a=(f=(l=this.__priv_getCurrentRepresentations())==null?void 0:l.video)!=null?f:null;this._priv_triggerEventIfNotStopped("videoRepresentationChange",E(a)?a:In(a),r)}_priv_onPeriodStreamReady(e,t){var s;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{type:r,period:i,adaptationRef:o}=t,a=e.tracksStore;switch(r){case"video":case"audio":case"text":E(a)?(m.error("API",`TracksStore not instanciated for a new ${r} period`),o.setValue(null)):a.addTrackReference(r,i,o);break;default:ze(r)}}_priv_onPeriodStreamCleared(e,t){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;let{type:r,periodId:i}=t,o=e.tracksStore;switch(r){case"audio":case"text":case"video":E(o)||o.removeTrackReference(r,i);break}let{activeAdaptations:a,activeRepresentations:s}=e;if(!E(a)&&!E(a[i])){let u=a[i];delete u[r],Object.keys(u).length===0&&delete a[i]}if(!E(s)&&!E(s[i])){let u=s[i];delete u[r],Object.keys(u).length===0&&delete s[i]}}_priv_onAdaptationChange(e,{type:t,adaptation:r,period:i}){var c;if(e.contentId!==((c=this._priv_contentInfos)==null?void 0:c.contentId))return;e.activeAdaptations===null&&(e.activeAdaptations={});let{activeAdaptations:o,currentPeriod:a}=e,s=o[i.id];E(s)?o[i.id]={[t]:r}:s[t]=r;let{tracksStore:d}=e,u=e.currentContentCanceller.signal;if(d!==null&&a!==null&&!E(i)&&i.id===a.id){let l=d.getPeriodObjectFromPeriod(i);if(l===void 0)return;switch(t){case"audio":{let f=d.getChosenAudioTrack(l,!0);this._priv_triggerEventIfNotStopped("audioTrackChange",f,u);break}case"text":{let f=d.getChosenTextTrack(l);this._priv_triggerEventIfNotStopped("textTrackChange",f,u);break}case"video":{let f=d.getChosenVideoTrack(l,!0);this._priv_triggerEventIfNotStopped("videoTrackChange",f,u);break}}}}_priv_onRepresentationChange(e,{type:t,period:r,representation:i}){var d;if(e.contentId!==((d=this._priv_contentInfos)==null?void 0:d.contentId))return;e.activeRepresentations===null&&(e.activeRepresentations={});let{activeRepresentations:o,currentPeriod:a}=e,s=o[r.id];if(E(s)?o[r.id]={[t]:i}:s[t]=i,!E(r)&&a!==null&&a.id===r.id){let u=this._priv_contentInfos.currentContentCanceller.signal;t==="video"?this._priv_triggerEventIfNotStopped("videoRepresentationChange",E(i)?i:In(i),u):t==="audio"&&this._priv_triggerEventIfNotStopped("audioRepresentationChange",E(i)?i:Bo(i),u)}}_priv_onBitrateEstimateChange({type:e,bitrate:t}){t!==void 0&&(this._priv_bitrateInfos.lastBitrates[e]=t),this.trigger("__priv_bitrateEstimateChange",{type:e,bitrate:t})}_priv_setPlayerState(e){this.state!==e&&(this.state=e,m.info("API","playerStateChange event",{newState:e}),this.trigger("playerStateChange",e))}_priv_triggerPositionUpdate(e,t){var s,d;if(e.contentId!==((s=this._priv_contentInfos)==null?void 0:s.contentId))return;let{isDirectFile:r,manifest:i}=e;if(!r&&i===null||E(t))return;let o=i!==null?kt(i):void 0,a={position:t.position.getPolled(),duration:t.duration,playbackRate:t.playbackRate,maximumPosition:o,bufferGap:t.bufferGap===void 0||!isFinite(t.bufferGap)?0:t.bufferGap};if(i!==null&&i.isLive&&t.position.getPolled()>0){let u=(d=i.availabilityStartTime)!=null?d:0;a.wallClockTime=t.position.getPolled()+u;let c=Sn(i);c!==void 0&&(a.liveGap=c-t.position.getPolled())}else if(r&&this.videoElement!==null){let u=yo(this.videoElement);u!==void 0&&(a.wallClockTime=u+t.position.getPolled())}this.trigger("positionUpdate",a)}_priv_triggerEventIfNotStopped(e,t,r){r.isCancelled()||this.trigger(e,t)}_priv_initializeMediaElementTracksStore(e){var r,i,o;ne(pe.directfile!==null,"Initializing `MediaElementTracksStore` without Directfile feature"),ne(this.videoElement!==null,"Initializing `MediaElementTracksStore` on a disposed RxPlayer");let t=new pe.directfile.mediaElementTracksStore(this.videoElement);return this._priv_triggerEventIfNotStopped("availableAudioTracksChange",t.getAvailableAudioTracks(),e),this._priv_triggerEventIfNotStopped("availableVideoTracksChange",t.getAvailableVideoTracks(),e),this._priv_triggerEventIfNotStopped("availableTextTracksChange",t.getAvailableTextTracks(),e),this._priv_triggerEventIfNotStopped("audioTrackChange",(r=t.getChosenAudioTrack())!=null?r:null,e),this._priv_triggerEventIfNotStopped("textTrackChange",(i=t.getChosenTextTrack())!=null?i:null,e),this._priv_triggerEventIfNotStopped("videoTrackChange",(o=t.getChosenVideoTrack())!=null?o:null,e),t.addEventListener("availableVideoTracksChange",a=>this.trigger("availableVideoTracksChange",a)),t.addEventListener("availableAudioTracksChange",a=>this.trigger("availableAudioTracksChange",a)),t.addEventListener("availableTextTracksChange",a=>this.trigger("availableTextTracksChange",a)),t.addEventListener("audioTrackChange",a=>this.trigger("audioTrackChange",a)),t.addEventListener("videoTrackChange",a=>this.trigger("videoTrackChange",a)),t.addEventListener("textTrackChange",a=>this.trigger("textTrackChange",a)),t}_priv_callTracksStoreGetterSetter(e,t,r){var d,u;if(this._priv_contentInfos===null||this._priv_contentInfos.tracksStore===null)return m.warn("API","Trying to call track API too soon"),t;let{tracksStore:i}=this._priv_contentInfos,o=(u=(d=this._priv_contentInfos)==null?void 0:d.currentPeriod)!=null?u:void 0,a=e!=null?e:o==null?void 0:o.id;if(a===void 0)return t;let s=a===(o==null?void 0:o.id)?i.getPeriodObjectFromPeriod(o):i.getPeriodObjectFromId(a);return s===void 0?t:r(i,s)}_priv_onAvailableTracksMayHaveChanged(e,t){let r=this._priv_contentInfos;if(r===null)return;let{currentPeriod:i,tracksStore:o,currentContentCanceller:a}=r,s=a.signal;if(E(i)||o===null)return;let d=t!=null?t:o.getPeriodObjectFromPeriod(i);if(d!==void 0)switch(e){case"video":{let u=o.getAvailableVideoTracks(d,!0);this._priv_triggerEventIfNotStopped("availableVideoTracksChange",u!=null?u:[],s);break}case"audio":{let u=o.getAvailableAudioTracks(d,!0);this._priv_triggerEventIfNotStopped("availableAudioTracksChange",u!=null?u:[],s);break}case"text":{let u=o.getAvailableTextTracks(d);this._priv_triggerEventIfNotStopped("availableTextTracksChange",u!=null?u:[],s);break}default:ze(e)}}_priv_onFatalError(e,t){let r=Me(e,{defaultCode:"NONE",defaultReason:"An unknown error stopped content playback."});r.fatal=!0,t.currentContentCanceller.cancel(),this._priv_cleanUpCurrentContentState(),this._priv_currentError=r,m.error("API","The player stopped because of an error",r),this._priv_setPlayerState("STOPPED"),this._priv_currentError===r&&this.trigger("error",r)}};Yt._priv_currentlyUsedVideoElements=new WeakSet;var Ir=Yt;Ir.version="4.4.0";var Dp=Ir;var es=Dp;ts();es.addFeatures([Fl,Au,Du,Lu,Cl,_l,Ml,Rl,ll,Ku,bl,Wu]);var nue=es;Z.RxPlayer=es;})();
|