shaka-player
Version:
DASH/EME video player library
122 lines (121 loc) • 530 kB
JavaScript
/*
@license
Shaka Player
Copyright 2016 Google LLC
SPDX-License-Identifier: Apache-2.0
*/
(function(){var innerGlobal=typeof window!="undefined"?window:global;var exportTo={};(function(window,global,module){/*
Copyright The Closure Library Authors.
SPDX-License-Identifier: Apache-2.0
*/
var ba=typeof Object.defineProperties=="function"?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};function da(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var ea=da(this);
function fa(a,b){if(b)a:{var c=ea;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&b!=null&&ba(c,a,{configurable:!0,writable:!0,value:b})}}fa("Promise.withResolvers",function(a){return a?a:function(){var b,c;return{promise:new Promise(function(d,e){b=d;c=e}),resolve:b,reject:c}}});var ha=this||self;
function x(a,b){a=a.split(".");var c=ha;a[0]in c||typeof c.execScript=="undefined"||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||b===void 0?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b};/*
@license
Shaka Player
Copyright 2016 Google LLC
SPDX-License-Identifier: Apache-2.0
*/
function ia(a){return a.h/(1-Math.pow(a.g,a.j))}var ja=class{constructor(a){this.i=Math.log(.5);this.g=Math.exp(this.i/a);this.j=this.h=0}sample(a,b){const c=Math.pow(this.g,a);b=b*(1-c)+c*this.h;isNaN(b)||(this.h=b,this.j+=a)}};var ka=class{constructor(){this.h=new ja(2);this.j=new ja(5);this.g=0;this.i=128E3;this.l=16E3}configure(a){this.i=a.minTotalBytes;this.l=a.minBytes;var b=this.h;b.g=Math.exp(b.i/a.fastHalfLife);b=this.j;b.g=Math.exp(b.i/a.slowHalfLife)}sample(a,b){if(!(b<this.l)){var c=8E3*b/a;a/=1E3;this.g+=b;this.h.sample(a,c);this.j.sample(a,c)}}getBandwidthEstimate(a){return this.g<this.i?a:Math.min(ia(this.h),ia(this.j))}};function la(){}function ma(){}function na(a,...b){oa.has(a)||(oa.add(a),ma(...b))}function pa(){}function qa(){}var oa=new Set;self.console&&((new Map).set(1,(...a)=>console.error(...a)).set(2,(...a)=>console.warn(...a)).set(3,(...a)=>console.info(...a)).set(4,(...a)=>console.log(...a)).set(5,(...a)=>console.debug(...a)).set(6,(...a)=>console.debug(...a)),ma=(...a)=>{console.warn(...a)},la=(...a)=>{console.error(...a)});function sa(a,b){return typeof a==="number"&&typeof b==="number"&&isNaN(a)&&isNaN(b)?!0:a===b}function ta(a,b){b=a.indexOf(b);b>-1&&a.splice(b,1)}function ua(a,b){var c;c||=sa;if(a.length!=b.length)return!1;b=b.slice();for(const d of a){a=b.findIndex(e=>c(d,e));if(a==-1)return!1;b[a]=b[b.length-1];b.pop()}return b.length==0}function wa(a,b){let c=0,d=a.length;for(;c<d;){const e=c+d>>>1;b(a[e])?c=e+1:d=e}return c}
function xa(a,b,c){if(a===b)return!0;if(!a||!b)return a==b;c||=sa;if(a.length!=b.length)return!1;for(let d=0;d<a.length;d++)if(!c(a[d],b[d]))return!1;return!0};var ya=class{constructor(){this.g=new Map}push(a,b){this.g.getOrInsertComputed(a,()=>[]).push(b)}get(a){return this.g.has(a)?this.g.get(a).slice():null}remove(a,b){if(this.g.has(a)){var c=this.g.get(a).filter(d=>d!=b);this.g.set(a,c);c.length||this.g.delete(a)}}forEach(a){this.g.forEach((b,c)=>{a(c,b)})}size(){return this.g.size}keys(){return Array.from(this.g.keys())}};var Aa=class{constructor(){this.g=new ya}release(){this.Ka();this.g=null}H(a,b,c,d){this.g&&(a=new za(a,b,c,d),this.g.push(b,a))}Ea(a,b,c,d){const e=f=>{this.$a(a,b,e);c(f)};this.H(a,b,e,d)}hb(a,b,c,d){if(this.g)for(const e of b)this.H(a,e,c,d)}bi(a,b,c,d){if(this.g){var e=!1,f=g=>{if(!e){e=!0;for(const h of b)this.$a(a,h,f);c(g)}};for(const g of b)this.H(a,g,f,d)}}$a(a,b,c){if(this.g){var d=this.g.get(b)||[];for(const e of d)e.target!=a||c!=e.listener&&c||(e.$a(),this.g.remove(b,e))}}Ri(a,b,c){if(this.g)for(const d of b)this.$a(a,
d,c)}Ka(){if(this.g){var a=this.g;const b=[];for(const c of a.g.values())b.push(...c);a=b;for(const c of a)c.$a();this.g.g.clear()}}};x("shaka.util.EventManager",Aa);Aa.prototype.removeAll=Aa.prototype.Ka;Aa.prototype.unlistenMulti=Aa.prototype.Ri;Aa.prototype.unlisten=Aa.prototype.$a;Aa.prototype.listenOnceMulti=Aa.prototype.bi;Aa.prototype.listenMulti=Aa.prototype.hb;Aa.prototype.listenOnce=Aa.prototype.Ea;Aa.prototype.listen=Aa.prototype.H;Aa.prototype.release=Aa.prototype.release;
function Ba(a,b){if(b==void 0)return!1;if(typeof b=="boolean")return b;const c=new Set(["passive","capture"]);Object.keys(b).filter(d=>!c.has(d));return Ca(a)?b:b.capture||!1}function Ca(a){let b=Da;if(b==void 0){b=!1;try{const d={};var c={get:()=>{b=!0;return!1}};Object.defineProperty(d,"passive",c);Object.defineProperty(d,"capture",c);c=()=>{};a.addEventListener("test",c,d);a.removeEventListener("test",c,d)}catch(d){b=!1}Da=b}return b||!1}
var za=class{constructor(a,b,c,d){this.target=a;this.type=b;this.listener=c;this.g=Ba(a,d);this.target.addEventListener(b,c,this.g)}$a(){this.target.removeEventListener(this.type,this.listener,this.g);this.listener=this.target=null;this.g=!1}},Da=void 0;var Ea=class{constructor(a){this.h=a;this.g=void 0}value(){this.g===void 0&&(this.g=this.h());return this.g}};function y(){return Fa.value()}var Ga=null,Ha=null,Fa=new Ea(()=>{let a=void 0;Ga&&(a=Ga());!a&&Ha&&(a=Ha());return a});function Ia(a,b){if(!a&&!b)return!0;if(!a||!b||a.byteLength!=b.byteLength)return!1;if((ArrayBuffer.isView(a)?a.buffer:a)==(ArrayBuffer.isView(b)?b.buffer:b)&&(a.byteOffset||0)==(b.byteOffset||0))return!0;const c=G(a);b=G(b);for(let d=0;d<a.byteLength;d++)if(c[d]!=b[d])return!1;return!0}function G(a,b=0,c=Infinity){return Ja(a,b,c,Uint8Array)}function Ka(a){return ArrayBuffer.isView(a)?a.byteOffset==0&&a.byteLength==a.buffer.byteLength?a.buffer:(new Uint8Array(a)).buffer:a}
function Ja(a,b,c,d){const e=ArrayBuffer.isView(a)?a.buffer:a;let f=1;"BYTES_PER_ELEMENT"in d&&(f=d.BYTES_PER_ELEMENT);const g=((a.byteOffset||0)+a.byteLength)/f;a=Math.floor(Math.max(0,Math.min(((a.byteOffset||0)+b)/f,g)));return new d(e,a,Math.floor(Math.min(a+Math.max(c,0),g))-a)}function La(a,b=0,c=Infinity){return Ja(a,b,c,Uint16Array)}function Ma(a,b=0,c=Infinity){return Ja(a,b,c,DataView)}var Na=class{};x("shaka.util.BufferUtils",Na);Na.toDataView=Ma;Na.toUint16=La;Na.toUint8=G;
Na.toArrayBuffer=Ka;Na.equal=Ia;function Oa(a){const b=a.code;let c=a.msExtendedCode;c&&(c<0&&(c+=4294967296),c=c.toString(16));return{code:b,eh:c,message:a.message}}var I=class{constructor(a,b,c,...d){this.severity=a;this.category=b;this.code=c;this.data=d;this.handled=!1;this.message="Shaka Error "+this.code;if(Pa)try{throw Error(this.message||"Shaka Error");}catch(e){this.stack=e.stack}}toString(){return"shaka.util.Error "+JSON.stringify(this,null," ")}};x("shaka.util.Error",I);var Pa=!0;I.Severity={RECOVERABLE:1,CRITICAL:2};
I.Category={NETWORK:1,TEXT:2,MEDIA:3,MANIFEST:4,STREAMING:5,DRM:6,PLAYER:7,CAST:8,STORAGE:9,ADS:10};
I.Code={UNSUPPORTED_SCHEME:1E3,BAD_HTTP_STATUS:1001,HTTP_ERROR:1002,TIMEOUT:1003,MALFORMED_DATA_URI:1004,REQUEST_FILTER_ERROR:1006,RESPONSE_FILTER_ERROR:1007,MALFORMED_TEST_URI:1008,UNEXPECTED_TEST_REQUEST:1009,ATTEMPTS_EXHAUSTED:1010,SEGMENT_MISSING:1011,INVALID_TEXT_HEADER:2E3,INVALID_TEXT_CUE:2001,UNABLE_TO_DETECT_ENCODING:2003,BAD_ENCODING:2004,INVALID_XML:2005,INVALID_MP4_TTML:2007,INVALID_MP4_VTT:2008,UNABLE_TO_EXTRACT_CUE_START_TIME:2009,INVALID_MP4_CEA:2010,TEXT_COULD_NOT_GUESS_MIME_TYPE:2011,
CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS:2012,TEXT_ONLY_WEBVTT_SRC_EQUALS:2013,MISSING_TEXT_PLUGIN:2014,UNSUPPORTED_EXTERNAL_THUMBNAILS_URI:2017,BUFFER_READ_OUT_OF_BOUNDS:3E3,JS_INTEGER_OVERFLOW:3001,EBML_OVERFLOW:3002,EBML_BAD_FLOATING_POINT_SIZE:3003,MP4_SIDX_WRONG_BOX_TYPE:3004,MP4_SIDX_INVALID_TIMESCALE:3005,MP4_SIDX_TYPE_NOT_SUPPORTED:3006,WEBM_CUES_ELEMENT_MISSING:3007,WEBM_EBML_HEADER_ELEMENT_MISSING:3008,WEBM_SEGMENT_ELEMENT_MISSING:3009,WEBM_INFO_ELEMENT_MISSING:3010,WEBM_DURATION_ELEMENT_MISSING:3011,
WEBM_CUE_TRACK_POSITIONS_ELEMENT_MISSING:3012,WEBM_CUE_TIME_ELEMENT_MISSING:3013,MEDIA_SOURCE_OPERATION_FAILED:3014,MEDIA_SOURCE_OPERATION_THREW:3015,VIDEO_ERROR:3016,QUOTA_EXCEEDED_ERROR:3017,TRANSMUXING_FAILED:3018,CONTENT_TRANSFORMATION_FAILED:3019,TRANSMUXING_NO_VIDEO_DATA:3023,STREAMING_NOT_ALLOWED:3024,BUFFER_WRITE_OUT_OF_BOUNDS:3025,UNABLE_TO_GUESS_MANIFEST_TYPE:4E3,DASH_INVALID_XML:4001,DASH_NO_SEGMENT_INFO:4002,DASH_EMPTY_ADAPTATION_SET:4003,DASH_EMPTY_PERIOD:4004,DASH_WEBM_MISSING_INIT:4005,
DASH_UNSUPPORTED_CONTAINER:4006,DASH_PSSH_BAD_ENCODING:4007,DASH_NO_COMMON_KEY_SYSTEM:4008,DASH_MULTIPLE_KEY_IDS_NOT_SUPPORTED:4009,DASH_CONFLICTING_KEY_IDS:4010,RESTRICTIONS_CANNOT_BE_MET:4012,HLS_PLAYLIST_HEADER_MISSING:4015,INVALID_HLS_TAG:4016,HLS_INVALID_PLAYLIST_HIERARCHY:4017,DASH_DUPLICATE_REPRESENTATION_ID:4018,HLS_MULTIPLE_MEDIA_INIT_SECTIONS_FOUND:4020,HLS_REQUIRED_ATTRIBUTE_MISSING:4023,HLS_REQUIRED_TAG_MISSING:4024,HLS_COULD_NOT_GUESS_CODECS:4025,HLS_KEYFORMATS_NOT_SUPPORTED:4026,DASH_UNSUPPORTED_XLINK_ACTUATE:4027,
DASH_XLINK_DEPTH_LIMIT:4028,CONTENT_UNSUPPORTED_BY_BROWSER:4032,CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM:4033,NO_VARIANTS:4036,PERIOD_FLATTENING_FAILED:4037,INCONSISTENT_DRM_ACROSS_PERIODS:4038,HLS_VARIABLE_NOT_FOUND:4039,HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED:4040,HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED:4041,NO_WEB_CRYPTO_API:4042,CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM:4045,AES_128_INVALID_IV_LENGTH:4048,AES_128_INVALID_KEY_LENGTH:4049,DASH_CONFLICTING_AES_128:4050,DASH_UNSUPPORTED_AES_128:4051,
DASH_INVALID_PATCH:4052,HLS_EMPTY_MEDIA_PLAYLIST:4053,DASH_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED:4054,CANNOT_ADD_EXTERNAL_CHAPTERS_TO_LIVE_STREAM:4055,WEBTRANSPORT_NOT_AVAILABLE:4056,WEBTRANSPORT_INITIALIZATION_FAILED:4057,MSF_VOD_CONTENT_NOT_SUPPORTED:4058,MSF_CATALOG_TIMEOUT:4058,HLS_INVALID_KEY_IV_FOR_GCM:4059,HLS_INVALID_GCM_SEGMENT:4060,DASH_INVALID_JSON:4061,MSF_NO_CATALOG:4062,DASH_UNSUPPORTED_ESSENTIAL_PROPERTY:4063,STREAMING_ENGINE_STARTUP_INVALID_STATE:5006,NO_RECOGNIZED_KEY_SYSTEMS:6E3,
REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE:6001,FAILED_TO_CREATE_CDM:6002,FAILED_TO_ATTACH_TO_VIDEO:6003,INVALID_SERVER_CERTIFICATE:6004,FAILED_TO_CREATE_SESSION:6005,FAILED_TO_GENERATE_LICENSE_REQUEST:6006,LICENSE_REQUEST_FAILED:6007,LICENSE_RESPONSE_REJECTED:6008,ENCRYPTED_CONTENT_WITHOUT_DRM_INFO:6010,NO_LICENSE_SERVER_GIVEN:6012,OFFLINE_SESSION_REMOVED:6013,EXPIRED:6014,SERVER_CERTIFICATE_REQUIRED:6015,INIT_DATA_TRANSFORM_ERROR:6016,SERVER_CERTIFICATE_REQUEST_FAILED:6017,MIN_HDCP_VERSION_NOT_MATCH:6018,
ERROR_CHECKING_HDCP_VERSION:6019,MISSING_EME_SUPPORT:6020,LOAD_INTERRUPTED:7E3,OPERATION_ABORTED:7001,NO_VIDEO_ELEMENT:7002,OBJECT_DESTROYED:7003,CONTENT_NOT_LOADED:7004,SRC_EQUALS_PRELOAD_NOT_SUPPORTED:7005,PRELOAD_DESTROYED:7006,QUEUE_INDEX_OUT_OF_BOUNDS:7007,CAST_API_UNAVAILABLE:8E3,NO_CAST_RECEIVERS:8001,ALREADY_CASTING:8002,UNEXPECTED_CAST_ERROR:8003,CAST_CANCELED_BY_USER:8004,CAST_CONNECTION_TIMED_OUT:8005,CAST_RECEIVER_APP_UNAVAILABLE:8006,STORAGE_NOT_SUPPORTED:9E3,INDEXED_DB_ERROR:9001,DEPRECATED_OPERATION_ABORTED:9002,
REQUESTED_ITEM_NOT_FOUND:9003,MALFORMED_OFFLINE_URI:9004,CANNOT_STORE_LIVE_OFFLINE:9005,NO_INIT_DATA_FOR_OFFLINE:9007,LOCAL_PLAYER_INSTANCE_REQUIRED:9008,NEW_KEY_OPERATION_NOT_SUPPORTED:9011,KEY_NOT_FOUND:9012,MISSING_STORAGE_CELL:9013,STORAGE_LIMIT_REACHED:9014,DOWNLOAD_SIZE_CALLBACK_ERROR:9015,MODIFY_OPERATION_NOT_SUPPORTED:9016,INDEXED_DB_INIT_TIMED_OUT:9017,CS_IMA_SDK_MISSING:1E4,SS_IMA_SDK_MISSING:10002,CURRENT_DAI_REQUEST_NOT_FINISHED:10004,VAST_INVALID_XML:10007,CS_AD_CONTAINER_MISSING:10008,
SS_AD_CONTAINER_MISSING:10009,MEDIATAILOR_REQUEST_FAILED:10010};function Qa(a){if(!a)return"";a=G(a);a[0]==239&&a[1]==187&&a[2]==191&&(a=a.subarray(3));if(self.TextDecoder&&!y().X())return a=(new TextDecoder).decode(a),a.includes("\ufffd")&&la('Decoded string contains an "unknown character" codepoint. That probably means the UTF8 encoding was incorrect!'),a;let b="";for(let d=0;d<a.length;++d){var c=65533;(a[d]&128)==0?c=a[d]:a.length>=d+2&&(a[d]&224)==192&&(a[d+1]&192)==128?(c=(a[d]&31)<<6|a[d+1]&63,d+=1):a.length>=d+3&&(a[d]&240)==224&&(a[d+1]&192)==128&&(a[d+
2]&192)==128?(c=(a[d]&15)<<12|(a[d+1]&63)<<6|a[d+2]&63,d+=2):a.length>=d+4&&(a[d]&241)==240&&(a[d+1]&192)==128&&(a[d+2]&192)==128&&(a[d+3]&192)==128&&(c=(a[d]&7)<<18|(a[d+1]&63)<<12|(a[d+2]&63)<<6|a[d+3]&63,d+=3);if(c<=65535)b+=String.fromCharCode(c);else{c-=65536;const e=c&1023;b+=String.fromCharCode(55296+(c>>10));b+=String.fromCharCode(56320+e)}}return b}
function Ra(a,b,c){if(!a)return"";if(!c&&a.byteLength%2!=0)throw new I(2,2,2004);c=Math.floor(a.byteLength/2);const d=new Uint16Array(c);a=Ma(a);for(let e=0;e<c;e++)d[e]=a.getUint16(e*2,b);return Sa.value()(d)}
function Ta(a){if(!a)return"";const b=G(a);if(b[0]==239&&b[1]==187&&b[2]==191)return Qa(b);if(b[0]==254&&b[1]==255)return Ra(b.subarray(2),!1);if(b[0]==255&&b[1]==254)return Ra(b.subarray(2),!0);const c=d=>b.byteLength<=d||b[d]>=9&&b[d]<=126;if(b[0]==0&&b[2]==0)return Ra(a,!1);if(b[1]==0&&b[3]==0)return Ra(a,!0);if(c(0)&&c(1)&&c(2)&&c(3))return Qa(a);throw new I(2,2,2003);}
function Ua(a){if(self.TextEncoder&&!y().X()){var b=new TextEncoder;return Ka(b.encode(a))}a=encodeURIComponent(a);a=unescape(a);b=new Uint8Array(a.length);for(let c=0;c<a.length;c++)b[c]=a[c].charCodeAt(0);return Ka(b)}function Va(a,b){const c=new ArrayBuffer(a.length*2),d=new DataView(c);for(let e=0;e<a.length;++e)d.setUint16(e*2,a.charCodeAt(e),b);return c}
function Wa(a){const b={"&":"&","<":"<",">":">",""":'"',"'":"'"," ":"\u00a0","‎":"\u200e","‏":"\u200f"},c=/&(?:amp|lt|gt|quot|apos|nbsp|lrm|rlm|#[xX]?[0-9a-fA-F]+);/g,d=RegExp(c.source);return a&&d.test(a)?a.replace(c,e=>e[1]=="#"?(e=e[2]=="x"||e[2]=="X"?parseInt(e.substring(3),16):parseInt(e.substring(2),10),e>=0&&e<=1114111?String.fromCodePoint(e):""):b[e]||"'"):a||""}var Xa=class{};x("shaka.util.StringUtils",Xa);Xa.resetFromCharCode=function(){Sa.g=void 0};
Xa.toUTF16=Va;Xa.toUTF8=Ua;Xa.fromBytesAutoDetect=Ta;Xa.fromUTF16=Ra;Xa.fromUTF8=Qa;var Sa=new Ea(()=>{const a=b=>{try{const c=new Uint8Array(b);return String.fromCharCode.apply(null,c).length>0}catch(c){return!1}};for(let b=65536;b>0;b/=2)if(a(b))return c=>{let d="";for(let e=0;e<c.length;e+=b)d+=String.fromCharCode.apply(null,c.subarray(e,e+b));return d};return null});function Ya(a){a=G(a);return Uint8Array.prototype.toBase64?a.toBase64({alphabet:"base64",omitPadding:!1}):(a=Sa.value()(a),btoa(a))}function Za(a,b){b=b==void 0?!0:b;return Uint8Array.prototype.toBase64?G(a).toBase64({alphabet:"base64url",omitPadding:!b}):(a=Ya(a).replace(/\+/g,"-").replace(/\//g,"_"),b?a:a.replace(/[=]*$/,""))}
function $a(a){if(!("fromBase64"in Uint8Array)){a=self.atob(a.replace(/-/g,"+").replace(/_/g,"/"));const b=new Uint8Array(a.length);for(let c=0;c<a.length;++c)b[c]=a.charCodeAt(c);return b}a=a.replace(/\s+/g,"");return Uint8Array.fromBase64(a,{alphabet:/[-_]/.test(a)?"base64url":"base64"})}function ab(a){if(!("fromHex"in Uint8Array)){const b=a.length/2,c=new Uint8Array(b);for(let d=0;d<b;d++)c[d]=parseInt(a.substr(d*2,2),16);return c}return Uint8Array.fromHex(a)}
function bb(a){a=G(a);if(!Uint8Array.prototype.toHex){let b="";for(let c of a)c=c.toString(16),c.length==1&&(c="0"+c),b+=c;return b}return a.toHex()}function cb(...a){return db(a,0,a.length)}function db(a,b=0,c=a.length){var d=0;for(var e=b;e<c;++e)d+=a[e].byteLength;d=new Uint8Array(d);for(e=0;b<c;++b){const f=a[b];ArrayBuffer.isView(f)&&f.BYTES_PER_ELEMENT===1?d.set(f,e):d.set(G(f),e);e+=f.byteLength}return d}
function eb(a){const b=new Uint8Array(a.length);let c=0,d=0;for(let e=0;e<a.length;e++){const f=a[e];c>=2&&f==3?c=0:(b[d++]=f,f==0?c++:c=0)}return b.subarray(0,d)}var fb=class{};x("shaka.util.Uint8ArrayUtils",fb);fb.concat=cb;fb.toHex=bb;fb.fromHex=ab;fb.fromBase64=$a;fb.toBase64=Za;fb.toStandardBase64=Ya;function gb(a,b){if(a===b||!a.length||!b.length)return!0;for(const c of a){if(ib(c))return!0;for(const d of b)if(c.keySystem===d.keySystem||ib(d))return!0}return!1}function ib(a){return(a=a.licenseServerUri)?a.startsWith("data:application/json;base64,"):!1}
function jb(a,b){if(!a.length)return b;if(!b.length)return a;const c=[];for(const e of a)for(const f of b)if(e.keySystem==f.keySystem){a=new Map;var d=(e.initData||[]).concat(f.initData||[]);for(const g of d)a.set(g.keyId,g);a=Array.from(a.values());d=e.keyIds&&f.keyIds?new Set([...e.keyIds,...f.keyIds]):e.keyIds||f.keyIds;c.push({keySystem:e.keySystem,licenseServerUri:e.licenseServerUri||f.licenseServerUri,distinctiveIdentifierRequired:e.distinctiveIdentifierRequired||f.distinctiveIdentifierRequired,
persistentStateRequired:e.persistentStateRequired||f.persistentStateRequired,videoRobustness:e.videoRobustness||f.videoRobustness,audioRobustness:e.audioRobustness||f.audioRobustness,serverCertificate:e.serverCertificate||f.serverCertificate,serverCertificateUri:e.serverCertificateUri||f.serverCertificateUri,initData:a,keyIds:d});break}else ib(e)?c.push(e):ib(f)&&c.push(f);return c}function kb(a){return a?a.keySystem:""}function lb(a){return a==="org.w3.clearkey"}
function mb(a){return a?!!a.match(/^com\.widevine\.alpha/):!1}function nb(a){return a?!!a.match(/^com\.(microsoft|chromecast)\.playready/):!1}function ob(a){return a?!!a.match(/^com\.apple\.fps/):!1}function pb(a,b,c,d){d=[...(new Set(d))].sort().join("#");return`${a}#${b}#${c}#${d}`}
function qb(a=!1,b=!1){const c={"1077efec-c0b2-4d02-ace3-3c1e52e2fb4b":"org.w3.clearkey","e2719d58-a985-b3c9-781a-b030af78d30e":"org.w3.clearkey","edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":"com.widevine.alpha","9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready","79f0049a-4098-8642-ab92-e65be0885f95":"com.microsoft.playready","94ce86fb-07ff-4f43-adb8-93d2fa968ca2":"com.apple.fps","3d5e6d35-9b9a-41e8-b843-dd3c6e72c42c":"com.huawei.wiseplay"};if(!a&&!b)return c;const d={};for(const e in c){const f=
c[e];let g=e;b?g="urn:uuid:"+e:a&&(g=e.replace(/-/g,""));d[g]=f}return d}function rb(a){return a.length===22?a:Za(ab(a),!1)}var sb=new Ea(()=>Ka(new Uint8Array([0]))),tb=new Map;function ub(a,b){a=vb(a);b=vb(b);return a.split("-")[0]==b.split("-")[0]}function wb(a,b){a=vb(a);b=vb(b);a=a.split("-");b=b.split("-");return a[0]==b[0]&&a.length==1&&b.length==2}function xb(a,b){a=vb(a);b=vb(b);a=a.split("-");b=b.split("-");return a.length==2&&b.length==2&&a[0]==b[0]}function vb(a){const [b="",c=""]=a.split("-x-"),[d="",e=""]=b.split("-");a=c?`${"x-"}${c}`:"";let f=d.toLowerCase();f=yb.get(f)||f;const g=e.toUpperCase();return`${g?`${f}-${g}`:f}${a?`-${a}`:""}`}
function zb(a,b){a=vb(a);b=vb(b);return b==a?4:wb(b,a)?3:xb(b,a)?2:wb(a,b)?1:0}function Ab(a){const b=a.indexOf("-");a=b>=0?a.substring(0,b):a;a=a.toLowerCase();return a=yb.get(a)||a}function Bb(a){return a.language?vb(a.language):a.audio&&a.audio.language?vb(a.audio.language):a.video&&a.video.language?vb(a.video.language):"und"}
function Cb(a,b){a=vb(a);const c=new Set;for(const d of b)c.add(vb(d));for(const d of c)if(d==a)return d;for(const d of c)if(wb(d,a))return d;for(const d of c)if(xb(d,a))return d;for(const d of c)if(wb(a,d))return d;return null}var Db=class{};x("shaka.util.LanguageUtils",Db);Db.findClosestLocale=Cb;Db.getLocaleForVariant=Bb;Db.getLocaleForText=function(a){return vb(a.language||"und")};Db.getBase=Ab;Db.relatedness=zb;Db.areSiblings=function(a,b){const c=Ab(a),d=Ab(b);return a!=c&&b!=d&&c==d};
Db.normalize=vb;Db.isSiblingOf=xb;Db.isParentOf=wb;Db.areLanguageCompatible=ub;Db.areLocaleCompatible=function(a,b){a=vb(a);b=vb(b);return a==b};
var yb=new Map([["aar","aa"],["abk","ab"],["afr","af"],["aka","ak"],["alb","sq"],["amh","am"],["ara","ar"],["arg","an"],["arm","hy"],["asm","as"],["ava","av"],["ave","ae"],["aym","ay"],["aze","az"],["bak","ba"],["bam","bm"],["baq","eu"],["bel","be"],["ben","bn"],["bih","bh"],["bis","bi"],["bod","bo"],["bos","bs"],["bre","br"],["bul","bg"],["bur","my"],["cat","ca"],["ces","cs"],["cha","ch"],["che","ce"],["chi","zh"],["chu","cu"],["chv","cv"],["cor","kw"],["cos","co"],["cre","cr"],["cym","cy"],["cze",
"cs"],["dan","da"],["deu","de"],["div","dv"],["dut","nl"],["dzo","dz"],["ell","el"],["eng","en"],["epo","eo"],["est","et"],["eus","eu"],["ewe","ee"],["fao","fo"],["fas","fa"],["fij","fj"],["fin","fi"],["fra","fr"],["fre","fr"],["fry","fy"],["ful","ff"],["geo","ka"],["ger","de"],["gla","gd"],["gle","ga"],["glg","gl"],["glv","gv"],["gre","el"],["grn","gn"],["guj","gu"],["hat","ht"],["hau","ha"],["heb","he"],["her","hz"],["hin","hi"],["hmo","ho"],["hrv","hr"],["hun","hu"],["hye","hy"],["ibo","ig"],["ice",
"is"],["ido","io"],["iii","ii"],["iku","iu"],["ile","ie"],["ina","ia"],["ind","id"],["ipk","ik"],["isl","is"],["ita","it"],["jav","jv"],["jpn","ja"],["kal","kl"],["kan","kn"],["kas","ks"],["kat","ka"],["kau","kr"],["kaz","kk"],["khm","km"],["kik","ki"],["kin","rw"],["kir","ky"],["kom","kv"],["kon","kg"],["kor","ko"],["kua","kj"],["kur","ku"],["lao","lo"],["lat","la"],["lav","lv"],["lim","li"],["lin","ln"],["lit","lt"],["ltz","lb"],["lub","lu"],["lug","lg"],["mac","mk"],["mah","mh"],["mal","ml"],["mao",
"mi"],["mar","mr"],["may","ms"],["mkd","mk"],["mlg","mg"],["mlt","mt"],["mon","mn"],["mri","mi"],["msa","ms"],["mya","my"],["nau","na"],["nav","nv"],["nbl","nr"],["nde","nd"],["ndo","ng"],["nep","ne"],["nld","nl"],["nno","nn"],["nob","nb"],["nor","no"],["nya","ny"],["oci","oc"],["oji","oj"],["ori","or"],["orm","om"],["oss","os"],["pan","pa"],["per","fa"],["pli","pi"],["pol","pl"],["por","pt"],["pus","ps"],["que","qu"],["roh","rm"],["ron","ro"],["rum","ro"],["run","rn"],["rus","ru"],["sag","sg"],["san",
"sa"],["sin","si"],["slk","sk"],["slo","sk"],["slv","sl"],["sme","se"],["smo","sm"],["sna","sn"],["snd","sd"],["som","so"],["sot","st"],["spa","es"],["sqi","sq"],["srd","sc"],["srp","sr"],["ssw","ss"],["sun","su"],["swa","sw"],["swe","sv"],["tah","ty"],["tam","ta"],["tat","tt"],["tel","te"],["tgk","tg"],["tgl","tl"],["tha","th"],["tib","bo"],["tir","ti"],["ton","to"],["tsn","tn"],["tso","ts"],["tuk","tk"],["tur","tr"],["twi","tw"],["uig","ug"],["ukr","uk"],["urd","ur"],["uzb","uz"],["ven","ve"],["vie",
"vi"],["vol","vo"],["wel","cy"],["wln","wa"],["wol","wo"],["xho","xh"],["yid","yi"],["yor","yo"],["zha","za"],["zho","zh"],["zul","zu"]]);function Eb(a,b,c,d,e){b={keySystem:a,encryptionScheme:b,licenseServerUri:"",distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,serverCertificateUri:"",sessionType:"",initData:c||[],keyIds:new Set,mediaTypes:e};d&&(b.keySystemUris=new Set([d]));!c&&ob(a)&&b.initData.push({initDataType:"sinf",initData:new Uint8Array(0),keyId:null});return b}
function Fb(a,b="cenc"){const c=[],d=[],e=[],f=new Map;a.forEach((h,k)=>{const l=rb(k);h=rb(h);const m={kty:"oct",kid:l,k:h};c.push(m);d.push(m.kid);e.push(k);f.set(l,h)});a=JSON.stringify({keys:c});var g=JSON.stringify({kids:d});g=[{initData:G(Ua(g)),initDataType:"keyids"}];return{keySystem:"org.w3.clearkey",encryptionScheme:b,licenseServerUri:"data:application/json;base64,"+window.btoa(a),distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,
serverCertificateUri:"",sessionType:"",initData:g,keyIds:new Set(e),clearKeys:f}}function Gb(a,b){if(b.length==1)return b[0];a=Hb(a,b);if(a!=null)return a;throw new I(2,4,4025,b);}function Hb(a,b){const c=Ib.get(a);for(const d of c)for(const e of b)if(d.test(e.trim()))return e.trim();return a==J?"":null}function Jb(a,b){const c=[];a=Ib.get(a);for(const d of a)for(const e of b)d.test(e.trim())&&c.push(e.trim());return c}
var J="text",Kb={Hj:"video",cj:"audio",Cf:J,nj:"image",bj:"application",gj:"chapter"},Ib=(new Map).set("audio",[/^vorbis$/,/^Opus$/,/^opus$/,/^fLaC$/,/^flac$/,/^mp4a/,/^[ae]c-3$/,/^ac-4/,/^dts[cehx]?$/,/^iamf/,/^mhm[12]/,/^ac3$/,/^eac3$/,/^apac$/]).set("video",[/^avc/,/^hev/,/^hvc/,/^vvc/,/^vvi/,/^vp0?[89]/,/^av01/,/^mp2v/,/^dvh/,/^dva/,/^dav/]).set("text",[/^vtt$/,/^wvtt/,/^stpp/]);function Lb(a){return a&&typeof LCEVCdec!=="undefined"?a.codecs=="lvc1":!1}function Mb(a,b,c,d){d.type!=="video"||a.j&&!Lb(d)||a.g&&a.g.appendBuffer(b,"video",d.id,-c,!a.j)}function Nb(a){a.g&&a.i.classList.add("shaka-hidden")}
var Ob=class{constructor(a,b,c,d){this.g=null;this.l=a;this.i=b;this.m=c;this.j=d;typeof libDPIModule==="undefined"&&ma("Could not find LCEVC Library dependencies on this page");typeof LCEVCdec!=="undefined"?(this.h=LCEVCdec,typeof this.h.SupportObject==="undefined"?(ma("Could not find LCEVC Library on this page"),a=!1):(this.h.SupportObject.SupportStatus||ma(this.h.SupportObject.SupportError),a=typeof this.h!=="undefined"&&typeof libDPIModule!=="undefined"&&this.i instanceof HTMLCanvasElement&&this.h.SupportObject.SupportStatus)):
(ma("Could not find LCEVC Library on this page"),a=!1);a&&!this.g&&this.h.SupportObject.webGLSupport(this.i)&&(this.i.classList.remove("shaka-hidden"),this.g=new this.h.LCEVCdec(this.l,this.i,this.m))}release(){this.g&&(this.g.close(),this.g=null)}};x("shaka.lcevc.Dec",Ob);Ob.prototype.release=Ob.prototype.release;function Pb(a,b){Qb.set(a,b)}function Rb(){const a={};y();if(Sb())for(var b of Qb.keys())a[b]=!0;b=["application/dash+xml","application/x-mpegurl","application/vnd.apple.mpegurl","audio/x-mpegurl"];for(const c of b)a[c]=Sb()?Qb.has(c):Tb(c);return a}function Ub(a,b){if(b){const c=Qb.get(b);if(c)return c}throw new I(2,4,4E3,a,b);}var Wb=class{};x("shaka.media.ManifestParser",Wb);Wb.unregisterParserByMime=function(a){Qb.delete(a)};Wb.registerParserByMime=Pb;
Wb.AccessibilityPurpose={Ij:"visually impaired",lj:"hard of hearing",Cj:"spoken subtitles"};var Qb=new Map;var Xb=class{extract(){}extractRaw608(){}decode(){return[]}clear(){}getStreams(){return[]}};var Yb=class{init(){}parse(){return[]}};function Zb(a){return $b.get(a)}function ac(a,b){$b.set(a,b)}function bc(a,b){a.h.set(a.i,a.g);a.g=a.h.getOrInsertComputed(b,()=>{const c=cc;return c?c():a.g})}function dc(a,b){b=a.j.parse(b);for(const c of b)if(b=G(c.packet),b.length>0)switch(c.format){case ec:a.g.extract(b,c.pts);break;case fc:a.g.extractRaw608(b,c.pts)}return a.g.decode()}
var hc=class{constructor(a){this.h=new Map;this.i=0;this.j=new Yb;if(a=Zb(a.toLowerCase()))this.j=a();this.g=new Xb;if(a=cc)this.g=a(),this.h.set(this.i,this.g)}init(a,b=!1,c=-1){c!=-1&&this.i!=c?bc(this,c):b||this.g.clear();this.j.init(a);c!=-1&&(this.i=c)}remove(a=[]){a=new Set(a);for(const b of this.h.keys())if(!a.has(b)){const c=this.h.get(b);c&&c.clear();this.h.delete(b)}}};x("shaka.media.ClosedCaptionParser",hc);hc.findDecoder=function(){return cc};hc.unregisterDecoder=function(){cc=null};
hc.registerDecoder=function(a){cc=a};hc.findParser=Zb;hc.unregisterParser=function(a){$b.delete(a)};hc.registerParser=ac;var $b=new Map,cc=null,ec="sei",fc="raw608";var kc=class{constructor(){this.id="";this.regionAnchorY=this.regionAnchorX=this.viewportAnchorY=this.viewportAnchorX=0;this.height=this.width=100;this.viewportAnchorUnits=this.widthUnits=this.heightUnits=ic;this.scroll=jc}clone(){const a=new kc;a.id=this.id;a.viewportAnchorX=this.viewportAnchorX;a.viewportAnchorY=this.viewportAnchorY;a.regionAnchorX=this.regionAnchorX;a.regionAnchorY=this.regionAnchorY;a.width=this.width;a.height=this.height;a.heightUnits=this.heightUnits;a.widthUnits=this.widthUnits;
a.viewportAnchorUnits=this.viewportAnchorUnits;a.scroll=this.scroll;return a}};x("shaka.text.CueRegion",kc);kc.prototype.clone=kc.prototype.clone;var ic=1;kc.units={PX:0,PERCENTAGE:ic,LINES:2};var jc="";kc.scrollMode={NONE:jc,UP:"up"};function lc(a){a=mc(a,nc);if(a==null)return null;const b=Number(a[2]),c=Number(a[3]);return b>59||c>59?null:(Number(a[6])||0)/1E3+c+b*60+(Number(a[1])||0)*3600}function oc(a){return a.g==a.h.length?null:(a=mc(a,/[^ \t\n]*/gm))?a[0]:null}function mc(a,b){b.lastIndex=a.g;b=b.exec(a.h);b=b==null?null:{position:b.index,length:b[0].length,results:b};if(a.g==a.h.length||b==null||b.position!=a.g)return null;a.g+=b.length;return b.results}
function pc(a,b){let c=oc(a);for(;c;)b(c),mc(a,/[ \t]+/gm),c=oc(a)}var qc=class{constructor(a){this.h=a||"";this.g=0}},nc=/(?:(\d{1,}):)?(\d{2}):(\d{2})((\.(\d{1,3})))?/g;function rc(a){const b=new WeakSet,c=d=>{switch(typeof d){case "undefined":case "boolean":case "number":case "string":case "symbol":case "function":return d;default:if(!d||ArrayBuffer.isView(d))return d;if(b.has(d))return null;const e=Array.isArray(d);if(d.constructor!=Object&&!e)return null;b.add(d);const f=e?[]:{};for(const g in d)f[g]=c(d[g]);e&&(f.length=d.length);return f}};return c(a)}function sc(a){const b={};for(const c in a)b[c]=a[c];return b}
function tc(a){if(Array.isArray(a)){var b=[];for(var c=0;c<a.length;c++){var d=c.toString(),e=a[c];e!==void 0&&(e=tc(e))&&b.push(d+":"+e)}a="["+b.join(",")+"]"}else if(typeof a=="function")a="";else if(a instanceof Object){d=Object.keys(a);d.sort();b=[];for(c of d)d=JSON.stringify(c),e=a[c],e!==void 0&&(e=tc(e))&&b.push(d+":"+e);a="{"+b.join(",")+"}"}else a=JSON.stringify(a);return a}var uc=class{};x("shaka.util.ObjectUtils",uc);uc.alphabeticalKeyOrderStringify=tc;uc.shallowCloneObject=sc;
uc.cloneObject=rc;/*
@license
tXml
Copyright 2015 Tobias Nickel
SPDX-License-Identifier: MIT
*/
function vc(a,b,c=!1){a=wc(a,c);if(!b&&a.length)return a[0];const d=b.split(",");return(b=a.find(e=>d.includes(e.tagName)))?b:null}
function wc(a,b){function c(g,h=!1){const k=[];for(;a[e];)if(a.charCodeAt(e)==60){if(a.charCodeAt(e+1)===47){h=e+2;e=a.indexOf(">",e);h=a.substring(h,e);var l=h.indexOf(g);if(l==-1){var m=g.indexOf(".");m>0&&(l=h.indexOf(g.substring(0,m)))}if(l==-1)throw g=a.substring(0,e).split("\n"),Error("Unexpected close tag\nLine: "+(g.length-1)+"\nColumn: "+(g[g.length-1].length+1)+"\nChar: "+a[e]);e+1&&(e+=1);break}else if(a.charCodeAt(e+1)===33){if(a.charCodeAt(e+2)==45){for(;e!==-1&&(a.charCodeAt(e)!==62||
a.charCodeAt(e-1)!=45||a.charCodeAt(e-2)!=45||e==-1);)e=a.indexOf(">",e+1);e===-1&&(e=a.length)}else if(a.charCodeAt(e+2)===91&&a.charCodeAt(e+8)===91&&a.substr(e+3,5).toLowerCase()==="cdata"){l=a.indexOf("]]\x3e",e);l==-1?(k.push(a.substr(e+9)),e=a.length):(k.push(a.substring(e+9,l)),e=l+3);continue}e++;continue}if(f>512)throw Error("XML is too deeply nested");f++;a:{m=h;e++;var n=d(),p={};for(l=[];a.charCodeAt(e)!==62&&a[e];){var q=a.charCodeAt(e);if(q>64&&q<91||q>96&&q<123){q=d();for(var r=a.charCodeAt(e);r&&
r!==39&&r!==34&&!(r>64&&r<91||r>96&&r<123)&&r!==62;)e++,r=a.charCodeAt(e);var t=e+1;e=a.indexOf(a[e],t);t=(" "+a.slice(t,e)).slice(1);if(r===39||r===34){if(e===-1){m={tagName:n,attributes:p,children:l,parent:null};if(b)for(n=0;n<l.length;n++)typeof l[n]!=="string"&&(l[n].parent=m);l=m;break a}}else t=null,e--;if(q.startsWith("xmlns:")){r=t;var u=q.split(":")[1];xc.set(r,u);yc.set(u,r)}n==="tt"&&q==="xml:space"&&t==="preserve"&&(m=!0);p[q]=t}e++}a.charCodeAt(e-1)!==47?(e++,l=c(n,m)):e++;m={tagName:n,
attributes:p,children:l,parent:null};n=l.length;for(p=0;p<n;p++)q=l[p],typeof q!=="string"?b&&(q.parent=m):p==n-1&&q=="\n"&&l.pop();l=m}f--;k.push(l);if(typeof l==="string")break;l.tagName[0]==="?"&&l.children&&(k.push(...l.children),l.children=[])}else l=e,e=a.indexOf("<",e)-1,e===-2&&(e=a.length),l=(" "+a.slice(l,e+1)).slice(1),h?l.length>0&&k.push(l):k.length&&l.length==1&&l[0]=="\n"?k.push(l):l.trim().length>0&&k.push(l),e++;return k}function d(){const g=e;for(;"\r\n\t>/= ".indexOf(a[e])===-1&&
a[e];)e++;return(" "+a.slice(g,e)).slice(1)}let e=0,f=0;return c("")}function zc(a){return typeof a==="string"}function Ac(a,b){const c=[];if(!a.children)return[];for(const d of a.children)d.tagName===b&&c.push(d);return c}function Bc(a){if(typeof a==="string")return Wa(a);const b=[];for(const c of a.children)typeof c==="string"&&b.push(c);a=b.join("");return a===""?null:Wa(a)}function Cc(a,b,c=[]){a.tagName===b&&c.push(a);if(a.children)for(const d of a.children)Cc(d,b,c);return c}
function Dc(a,b,c){b=xc.has(b)?xc.get(b):"";return a.attributes[`${b}:${c}`]||null}function Ec(a,b,c){for(const d of b)if(b=Dc(a,d,c))return b;return null}function Fc(a){if(!a)return null;/^\d+-\d+-\d+T\d+:\d+:\d+(\.\d+)?$/.test(a)&&(a+="Z");a=Date.parse(a);return isNaN(a)?null:a/1E3}var xc=new Map,yc=new Map;function Gc(a,b){a=new Hc(a,b,"");a.lineBreak=!0;return a}function Ic(a,b){if(a.payload!=b.payload||!(Math.abs(a.startTime-b.startTime)<.001&&Math.abs(a.endTime-b.endTime)<.001))return!1;for(const c in a)if(c!="startTime"&&c!="endTime"&&c!="payload")if(c=="nestedCues"){if(!xa(a.nestedCues,b.nestedCues,Ic))return!1}else if(c=="region"||c=="cellResolution")for(const d in a[c]){if(a[c][d]!=b[c][d])return!1}else if(Array.isArray(a[c])){if(!xa(a[c],b[c]))return!1}else if(a[c]!=b[c])return!1;return!0}
function Jc(a,b=new Map){var c=a.payload;if(c.includes("<")){b.size===0&&Kc(b);var d=c;c=[];var e=-1;for(var f=0;f<d.length;f++)d[f]==="<"?e=f+1:d[f]===">"&&e>0&&(e=d.substr(e,f-e),e.match(Lc)&&c.push(e),e=-1);for(var g of c)d=d.replace("<"+g+">",'<div time="'+g+'">'),d+="</div>";c=d;a:{d=c;f=[];e=-1;g="";c=!1;for(let m=0;m<d.length;m++)if(d[m]==="/"){var h=d.indexOf(">",m);if(h===-1){c=d;break a}h=d.substring(m+1,h);if(!h||h!="v"){g+=d[m];continue}c=!0;let n=null;f.length&&(n=f[f.length-1]);if(n){if(n===
h)g+="/"+h+">";else{if(!n.startsWith("v")){g+=d[m];continue}g+="/"+n+">"}m+=h.length+1}else g+=d[m]}else d[m]==="<"?(e=m+1,d[e]!="v"&&(e=-1)):d[m]===">"&&e>0&&(f.push(d.substr(e,m-e)),e=-1),g+=d[m];for(var k of f)d=k.replace(" ",".voice-"),g=g.replace(`<${k}>`,`<${d}>`),g=g.replace(`</${k}>`,`</${d}>`),c||(g+=`</${d}>`);c=g}c=Mc(c);a.payload="";k="<span>"+c.replace(/\n/g,"<br />")+"</span>";try{var l=vc(k,"span")}catch(m){}if(l)if(l=l.children,l.length!=1||l[0].tagName)for(const m of l)Nc(m,a,b);
else a.payload=Wa(c);else a.payload=Wa(c)}else a.payload=Wa(c)}function Kc(a){for(const [c,d]of Object.entries(Oc)){var b=new Hc(0,0,"");b.color=d;a.set("."+c,b)}for(const [c,d]of Object.entries(Pc))b=new Hc(0,0,""),b.backgroundColor=d,a.set("."+c,b)}function Mc(a){const b={"< ":""," >":" >"},c=/(< +>|<\s|\s>)/g,d=RegExp(c.source);return a&&d.test(a)?a.replace(c,e=>b[e]||""):a||""}
function Nc(a,b,c){var d=b.clone();d.nestedCues=[];d.payload="";d.rubyTag="";d.line=null;d.region=new kc;d.position=null;d.size=0;d.textAlign=Qc;if(a.tagName){var e=a.tagName.split(/(?=[ .])+/g);for(var f of e){var g=f;g.startsWith(".voice-")&&(e=g.split("-").pop(),g=`v[voice="${e}"]`,c.has(g)||(g=`v[voice=${e}]`));c.has(g)&&(e=d,g=c.get(g))&&(e.backgroundColor=g.backgroundColor||e.backgroundColor,e.color=g.color||e.color,e.fontFamily=g.fontFamily||e.fontFamily,e.fontSize=g.fontSize||e.fontSize,e.textShadow=
g.textShadow||e.textShadow,e.fontWeight=g.fontWeight,e.fontStyle=g.fontStyle,e.opacity=g.opacity,e.rubyTag=g.rubyTag,e.textCombineUpright=g.textCombineUpright,e.wrapLine=g.wrapLine);switch(f){case "br":d=Gc(d.startTime,d.endTime);b.nestedCues.push(d);return;case "b":d.fontWeight=Rc;break;case "i":d.fontStyle=Sc;break;case "u":d.textDecoration.push(Tc);break;case "font":if(e=a.attributes.color)d.color=e;break;case "div":e=a.attributes.time;if(!e)break;if(e=e?lc(new qc(e)):null)d.startTime=e;break;
case "ruby":case "rp":case "rt":d.rubyTag=f}}}f=a.children;if(zc(a)||f.length==1&&zc(f[0])){a=Bc(a).split("\n");c=!0;for(const h of a)c||(a=Gc(d.startTime,d.endTime),b.nestedCues.push(a)),h.length>0&&(a=d.clone(),a.payload=Wa(h),b.nestedCues.push(a)),c=!1}else{b.nestedCues.push(d);for(const h of f)Nc(h,d,c)}}
var Hc=class{constructor(a,b,c){this.startTime=a;this.endTime=b;this.payload=c;this.region=new kc;this.position=null;this.positionAlign=Uc;this.size=0;this.textAlign=Qc;this.direction=Vc;this.writingMode=Wc;this.lineInterpretation=Xc;this.line=null;this.lineHeight="";this.lineAlign=Yc;this.displayAlign=Zc;this.fontSize=this.border=this.backgroundImage=this.backgroundColor=this.color="";this.fontWeight=$c;this.fontStyle=ad;this.linePadding=this.letterSpacing=this.fontFamily="";this.opacity=1;this.textCombineUpright=
"";this.textDecoration=[];this.textStrokeWidth=this.textStrokeColor=this.textShadow="";this.wrapLine=!0;this.id="";this.nestedCues=[];this.lineBreak=this.isContainer=!1;this.rubyTag=null;this.cellResolution={columns:32,rows:15}}clone(){const a=new Hc(0,0,""),b=c=>{if(c===null||typeof c!=="object")return c;if(Array.isArray(c))return c.map(b);if(c instanceof Hc)return c.clone();if(c instanceof kc)return c.clone();const d={};for(const e in c)d[e]=b(c[e]);return d};for(const c in this)a[c]=b(this[c]);
return a}};x("shaka.text.Cue",Hc);Hc.parseCuePayload=Jc;Hc.equal=Ic;Hc.prototype.clone=Hc.prototype.clone;var Uc="auto";Hc.positionAlign={LEFT:"line-left",RIGHT:"line-right",CENTER:"center",AUTO:Uc};var Qc="center",bd={LEFT:"left",RIGHT:"right",CENTER:Qc,START:"start",END:"end"};Hc.textAlign=bd;var Zc="after",cd={BEFORE:"before",CENTER:"center",AFTER:Zc};Hc.displayAlign=cd;var Vc="ltr";Hc.direction={HORIZONTAL_LEFT_TO_RIGHT:Vc,HORIZONTAL_RIGHT_TO_LEFT:"rtl"};var Wc="horizontal-tb";
Hc.writingMode={HORIZONTAL_TOP_TO_BOTTOM:Wc,VERTICAL_LEFT_TO_RIGHT:"vertical-lr",VERTICAL_RIGHT_TO_LEFT:"vertical-rl"};var Xc=0;Hc.lineInterpretation={LINE_NUMBER:Xc,PERCENTAGE:1};var Yc="start",dd={CENTER:"center",START:Yc,END:"end"};Hc.lineAlign=dd;var Oc={white:"white",lime:"lime",cyan:"cyan",red:"red",yellow:"yellow",magenta:"magenta",blue:"blue",black:"black"};Hc.defaultTextColor=Oc;
var Pc={bg_white:"white",bg_lime:"lime",bg_cyan:"cyan",bg_red:"red",bg_yellow:"yellow",bg_magenta:"magenta",bg_blue:"blue",bg_black:"black"};Hc.defaultTextBackgroundColor=Pc;var $c=400,Rc=700;Hc.fontWeight={NORMAL:$c,BOLD:Rc};var ad="normal",Sc="italic",ed={NORMAL:ad,ITALIC:Sc,OBLIQUE:"oblique"};Hc.fontStyle=ed;var Tc="underline";Hc.textDecoration={UNDERLINE:Tc,LINE_THROUGH:"line-through",OVERLINE:"overline"};var Lc=/(?:(\d{1,}):)?(\d{2}):(\d{2})\.(\d{2,3})/g;function fd(a,b,c){gd.set(a.toLowerCase().split(";")[0]+"-"+c,{priority:c,df:b})}function hd(a,b){for(const c of id){const d=jd(a,c);if(!d)continue;const e=d(),f=e.isSupported(a,b);e.destroy();if(f)return d}return null}function jd(a,b=null){a=a.toLowerCase().split(";")[0];b=b!==null?[b]:id;for(const c of b)if(b=gd.get(a+"-"+c))return b.df;return null}var kd=class{destroy(){}};x("shaka.transmuxer.TransmuxerEngine",kd);kd.findTransmuxer=hd;
kd.unregisterTransmuxer=function(a,b){gd.delete(a.toLowerCase().split(";")[0]+"-"+b)};kd.registerTransmuxer=fd;kd.prototype.destroy=kd.prototype.destroy;var gd=new Map;kd.PluginPriority={FALLBACK:1,PREFERRED_SECONDARY:2,PREFERRED:3,APPLICATION:4};var id=[4,3,2,1];function ld(a,b){let c=a;b&&!md.includes(a)&&(c+='; codecs="'+b+'"');return c}function nd(a,b){b&&(a+='; codecs="'+b+'"');return a}function od(a,b,c){const d=ld(a,b);b=nd(a,b);hd(b)?(a=hd(b))?(a=a(),c=a.convertCodecs(c,b),a.destroy()):c=b:c=a!="video/mp2t"&&c=="audio"?d.replace("video","audio"):d;return c}function pd(a){return a.split(";")[0].split("/")[1]}
function qd(a){var b=rd(a);a=b[0].toLowerCase();b=b[1].toLowerCase();switch(!0){case a==="mp4a"&&b==="69":case a==="mp4a"&&b==="6b":case a==="mp4a"&&b==="40.34":return"mp3";case a==="mp4a"&&b==="66":case a==="mp4a"&&b==="67":case a==="mp4a"&&b==="68":case a==="mp4a"&&b==="40.2":case a==="mp4a"&&b==="40.02":case a==="mp4a"&&b==="40.5":case a==="mp4a"&&b==="40.05":case a==="mp4a"&&b==="40.29":case a==="mp4a"&&b==="40.42":return"aac";case a==="mp4a"&&b==="a5":case a==="ac3":case a==="ac-3":return"ac-3";
case a==="mp4a"&&b==="a6":case a==="eac3":case a==="ec-3":return"ec-3";case a==="ac-4":return"ac-4";case a==="mp4a"&&b==="b2":return"dtsx";case a==="mp4a"&&b==="a9":return"dtsc";case a==="vp09":case a==="vp9":return"vp9";case a==="avc1":case a==="avc3":return"avc";case a==="hvc1":case a==="hev1":return"hevc";case a==="vvc1":case a==="vvi1":return"vvc";case a==="dvh1":case a==="dvhe":return b&&b.startsWith("05")?"dovi-p5":"dovi-hevc";case a==="dvav":case a==="dva1":return"dovi-avc";case a==="dav1":return"dovi-av1";
case a==="dvc1":case a==="dvi1":return"dovi-vvc";case a==="lvc1":return"lcevc"}return a}function rd(a){a=a.split(".");const b=a[0];a.shift();return[b,a.join(".")]}function sd(a){const b=[];for(const c of a.split(","))a=rd(c),b.push(a[0]);return b.sort().join(",")}function td(a){return a.split(";")[0]}function ud(a){a=a.split(/ *; */);a.shift();return(a=a.find(b=>b.startsWith("codecs=")))?a.split("=")[1].replace(/^"|"$/g,""):""}
function vd(a){return a==="application/x-mpegurl"||a==="application/vnd.apple.mpegurl"||a==="audio/x-mpegurl"}function wd(a,b){const c=y(),d=a.toLowerCase();return d=="flac"?c.h()!="WEBKIT"?"flac":"fLaC":d==="opus"?c.h()!="WEBKIT"?"opus":pd(b)=="mp4"?"Opus":"opus":d=="ac-3"&&c.I()?"ec-3":a}
function xd(a){if(a.includes("avc1")){const b=a.split(".");if(b.length==3)return a=b.shift()+".",a+=parseInt(b.shift(),10).toString(16),a+=("000"+parseInt(b.shift(),10).toString(16)).slice(-4)}else if(a=="vp9")return"vp09.00.41.08";return a}var yd=class{};x("shaka.util.MimeUtils",yd);yd.getFullTypeWithAllCodecs=nd;yd.getFullType=ld;(new Map).set("codecs","codecs").set("frameRate","framerate").set("bandwidth","bitrate").set("width","width").set("height","height").set("channelsCount","channels");
var md=["audio/aac","audio/ac3","audio/ec3","audio/mpeg"];function zd(a,b){Ad.set(a,b)}function Bd(a){return Ad.get(a)}function Cd(a){return Ad.has(a)?!0:a=="application/cea-608"||a=="application/cea-708"?!!cc:!1}
async function Dd(a,b,c,d,e,f=-1){if(a.C||a.o.has(f)){if(await Promise.resolve(),a.l&&a.j)if(c==null||d==null)a.l.parseInit(G(b));else{var g=a.C?0:a.o.get(f);f=a.G||a.C?c:a.o.get(f);f={periodStart:g,segmentStart:c,segmentEnd:d,vttOffset:f,isMpegTs:a.I};b=a.l.parseMedia(G(b),f,e,[]);for(var h of b)a.D(h,e||null,f);e=b.filter(k=>k.startTime>=a.u&&k.startTime<a.A);a.j.append(e);a.g==null&&(a.g=Math.max(c,a.u));a.h=Math.min(d,a.A)}}else h=a.i.get(f)||[],h.push({buffer:b,startTime:c,endTime:d,uri:e,bh:f}),
a.i.set(f,h)}function Ed(a,b,c){for(const d of a.m.keys()){let e=a.m.get(d);e=e.filter(f=>f.startTime<b||f.endTime>=c);a.m.set(d,e)}}function Fd(a){let b=Infinity,c=-Infinity;for(const d of a.m.values())for(const e of d)b=Math.min(b,e.startTime),c=Math.max(c,e.endTime);b!==Infinity&&c!==-Infinity&&(a.g=a.g==null?Math.max(b,a.u):Math.min(a.g,Math.max(b,a.u)),a.h=Math.max(a.h,Math.min(c,a.A)))}
function Gd(a,b,c=-1){(!a.o.has(c)||a.B!=="HLS"||a.B==="HLS"&&c===-1&&a.o.get(c)===0)&&a.o.set(c,b);b=a.i.get(c)||[];for(let d=0;d<b.length;d++){const {buffer:e,startTime:f,endTime:g,uri:h,bh:k}=b[d];Dd(a,e,f,g,h,k)}a.i.set(c,[])}function Hd(a,b){a.I=b}function Id(a,b,c){a.u=b;a.A=c}function Jd(a,b,c){a.F=b;if(b=a.m.get(b))b=b.filter(d=>d.endTime<=c),b.length&&a.j.append(b)}function Ld(a,b,c){b.startTime+=c;b.endTime+=c;for(const d of b.nestedCues)Ld(a,d,c)}
function Md(a,b,c){const d=new Map;for(const e of b){b=e.stream;const f=e.cue;d.getOrInsert(b,[]);Ld(a,f,c);f.startTime>=a.u&&f.startTime<a.A&&(d.get(b).push(f),b==a.F&&a.j.append([f]))}for(const e of d.keys()){c=a.m.getOrInsertComputed(e,()=>[]);for(const f of d.get(e))c.push(f)}Fd(a)}
var Nd=class{constructor(a,b="UNKNOWN"){this.l=null;this.j=a;this.B=b;this.C=this.I=this.G=!1;this.o=new Map;this.i=new Map;this.u=0;this.A=Infinity;this.h=this.g=null;this.F="";this.D=()=>{};this.m=new Map}destroy(){this.j=this.l=null;this.o.clear();this.i.clear();this.m.clear();return Promise.resolve()}async remove(a,b,c=!1){await Promise.resolve();if(!(a>=b)){if(c&&(Ed(this,a,b),this.F===""))return;c=d=>d.startTime<b&&d.endTime>a;for(const d of this.i.keys()){const e=this.i.get(d),f=[];for(let g=
0;g<e.length;g++){const h=e[g];c(h)||f.push(h)}this.i.set(d,f)}this.j&&this.j.remove(a,b)&&this.g!=null&&(b<=this.g||a>=this.h||(a<=this.g&&b>=this.h?this.g=this.h=null:a<=this.g&&b<this.h?this.g=b:a>this.g&&b>=this.h&&(this.h=a)),Fd(this))}}};x("shaka.text.TextEngine",Nd);Nd.prototype.destroy=Nd.prototype.destroy;Nd.findParser=Bd;Nd.unregisterParser=function(a){Ad.delete(a)};Nd.registerParser=zd;var Ad=new Map;function Od(a,b,c){let d=!0,e=null;a.g=()=>{clearTimeout(e);d=!1};e=setTimeout(()=>{d&&b()},c*1E3)}function Pd(a,b){Od(a,()=>{Pd(a,b);a.h()},b)}var Qd=class{constructor(a){this.h=a;this.g=null}Qa(){this.stop();this.h();return this}ba(a){this.stop();Od(this,()=>{this.h()},a);return this}Fa(a){this.stop();Pd(this,a);return this}stop(){this.g?.();this.g=null}};x("shaka.util.Timer",Qd);Qd.prototype.stop=Qd.prototype.stop;Qd.prototype.tickEvery=Qd.prototype.Fa;Qd.prototype.tickAfter=Qd.prototype.ba;
Qd.prototype.tickNow=Qd.prototype.Qa;function Rd(a){return a!=null}function Sd(a,b){return Promise.race([b,new Promise((c,d)=>{(new Qd(d)).ba(a)})])}function Td(a){return new Promise(b=>{(new Qd(b)).ba(a)})};function Ud(a,b,c,d,e){if(e.length){var f=a.textStreams;for(const m of e)if(e=f.filter(n=>n.codecs.startsWith(m)||n.mimeType.startsWith(m)?!0:!1),e.length){f=e;break}a.textStreams=f}f=a.variants;if(b.length||c.length)f=Vd(f,b,c);if(d.length){b=new ya;for(var g of f)b.push(String(g.video.width||0),g);const m=[];b.forEach((n,p)=>{n=0;let q=[];for(const r of p)p=d.filter(t=>r.decodingInfos[0][t]).length,p>n?(n=p,q=[r]):p==n&&q.push(r);m.push(...q)});f=m}g=new Set;for(var h of f)h.video&&g.add(h.video);
if(g.size){var k={vp8:1,avc:1,"dovi-avc":.95,vp9:.9,vp09:.9,hevc:.85,"dovi-hevc":.8,"dovi-p5":.75,av01:.7,"dovi-av1":.65,vvc:.6};b=Array.from(g).sort((m,n)=>m.bandwidth&&n.bandwidth&&m.bandwidth!=n.bandwidth?m.bandwidth-n.bandwidth:m.width!=n.width?m.width-n.width:m.codecs&&n.codecs?(m=qd(m.codecs),n=qd(n.codecs),(k[m]||1)-(k[n]||1)):0);var l=[];h=new Map;g=m=>{const n=[String(m.width||""),String(m.height||""),String(Math.round(m.frameRate||0)),m.hdr||"",m.fastSwitching];m.dependencyStream&&n.push(m.dependencyStream.baseOriginalId||
"");m.roles&&n.push(m.roles.sort().join("_"));return n.join(";")};for(const m of b){b=g(m);c=h.get(b)||[];if(c.length){e=qd(c[c.length-1].codecs);const n=qd(m.codecs);e==n&&(c.push(m),l.push(m.id))}else c.push(m),l.push(m.id);h.set(b,c)}a.variants=f.filter(m=>(m=m.video)&&!l.includes(m.id)?!1:!0)}else a.variants=f}
function Vd(a,b,c){for(const d of b)if(b=a.filter(e=>e.video&&e.video.codecs.startsWith(d)),b.length){a=b;break}for(const d of c)if(c=a.filter(e=>e.audio&&e.audio.codecs.startsWith(d)),c.length){a=c;break}return a}
function Wd(a,b,c){if(a&&a.video&&a.video.width&&a.video.height){var d=a.video.width;let e=a.video.height;e>d&&([d,e]=[e,d]);(c=!(d>=b.minWidth&&d<=Math.min(b.maxWidth,c.width))||!(e>=b.minHeight&&e<=Math.min(b.maxHeight,c.height)))||(d*=e,c=!(d>=b.minPixels&&d<=b.maxPixels));if(c)return!1}if(d=a&&a.video&&a.video.frameRate)d=a.video.frameRate,d=!(d>=b.minFrameRate&&d<=b.maxFrameRate);!d&&(d=a&&a.audio&&a.audio.channelsCount)&&(d=a.audio.channelsCount,d=!(d>=b.minChannelsCount&&d<=b.maxChannelsCount));
d||(a=a.bandwidth,d=!(a>=b.minBandwidth&&a<=b.maxBandwidth));return d?!1:!0}async function Xd(a,b,c=[],d={}){await Yd(a,b,b.offlineSessionIds.length>0,c,d);Zd(b);await $d(b)}async function Yd(a,b,c,d,e){y().sa()&&ae(b.variants);await be(b.variants,c,!1,d);let f=null;a&&(a=a.Pb())&&(f=a.keySystem);b.variants=b.variants.filter(g=>{const h=ce(g,f,e);if(!h){const k=[];g.audio&&k.push(de(g.audio));g.video&&k.push(de(g.video))}return h})}
function Zd(a){a.textStreams=a.textStreams.filter(b=>{b=ld(b.mimeType,b.codecs);return Cd(b)})}async function $d(a){const b=[];for(const d of a.imageStreams){let e=d.mimeType;e=="application/mp4"&&d.codecs=="mjpg"&&(e="image/jpg");if(!ee.has(e)){var c=fe.get(e);c?(c=await ge(c),ee.set(e,c)):ee.set(e,!1)}ee.get(e)&&b.push(d)}a.imageStreams=b}
function ae(a){const b=(new Map).set("dvav","avc3").set("dva1","avc1").set("dvhe","hev1").set("dvh1","hvc1").set("dvc1","vvc1").set("dvi1","vvi1"),c=new Set;for(const d of a)d.video&&c.add(d.video);for(const d of c)for(const [e,f]of b)if(d.codecs.includes(e)){d.codecs=d.codecs.replace(e,f);break}}
async function be(a,b,c,d){if(!a.some(e=>e.decodingInfos.length)){for(const e of d){let f=!1;for(const g of a){const h=he(g,b,c).filter(k=>{k=k[0];k=k.keySystemConfiguration&&k.keySystemConfiguration.keySystem;return!k||k===e});for(const k of h)await ie(g,k);g.decodingInfos.some(k=>k.supported)&&(f=!0)}if(f)return}for(const e of a){a=he(e,b,c).filter(f=>{f=f[0];f=f.keySystemConfiguration&&f.keySystemConfiguration.keySystem;return!f||!d.includes(f)});for(const f of a)await ie(e,f)}}}
function ce(a,b,c){if(!a.decodingInfos.some(k=>!k.supported||b&&(k=k.keySystemAccess)&&(c[k.keySystem]||k.keySystem)!=b?!1:!0))return!1;var d=y(),e=d.m()==="Xbox";d=d.i()==="MOBILE"&&d.h()==="GECKO";const f=a.video,g=f&&f.width||0,h=f&&f.height||0;if(e&&f&&(g>1920||h>1080)&&(f.codecs.includes("avc1.")||f.codecs.includes("avc3."))||(e=f&&f.dependencyStream)&&!Lb(e))return!1;a=a.audio;return d&&a&&a.encrypted&&a.codecs.toLowerCase().includes("opus")||a&&a.dependencyStream?!1:!0}
async function ie(a,b){const c=(f,g)=>{if(f){const h=sc(f);h.supported=f.supported&&g.supported;h.powerEfficient=f.powerEfficient&&g.powerEfficient;h.smooth=f.smooth&&g.smooth;g.keySystemAccess&&!h.keySystemAccess&&(h.keySystemAccess=g.keySystemAccess);return h}return g};let d=null;const e=[];for(const f of b){const g=tc(f),h=je;h.has(g)?d=c(d,h.get(g)):e.push(ke(f).then(k=>{let l=null;for(const m of k||[])l=c(l,m);l&&(h.set(g,l),d=c(d,l))}))}await Promise.all(e);d&&a.decodingInfos.push(d)}
function ke(a){let b=[""];a.video&&(b=ud(a.video.contentType).split(","));let c=[""];a.audio&&(c=ud(a.audio.contentType).split(","));const d=[];for(const e of b)for(const f of c){const g=rc(a);a.video&&(g.video.contentType=ld(td(g.video.contentType),e));a.audio&&(g.audio.contentType=ld(td(g.audio.contentType),f));d.push(new Promise((h,k)=>{(y().i()=="MOBILE"?Sd(5,navigator.mediaCapabilities.decodingInfo(g)):navigator.mediaCapabilities.decodingInfo(g)).then(l=>{h(l)}).catch(k)}))}return Promise.all(d).catch(()=>
{JSON.stringify(a);return null})}
function he(a,b,c){const d=a.audio,e=a.video;var f=[],g=[];if(e)for(var h of e.fullMimeTypes){var k=ud(h);if(k.includes(",")&&!d){var l=k.split(","),m=td(h);k=Gb("video",l);l=Gb("audio",l);l=wd(l,m);m=od(m,l,"audio");g.push({contentTyp