(()=>{var{create:SR,defineProperty:iz,getOwnPropertyDescriptor:TR,getOwnPropertyNames:hR,getPrototypeOf:fR}=Object,yR=Object.prototype.hasOwnProperty,rz=function(Y,Z){return function(){return Y&&(Z=Y(Y=0)),Z}},h1=function(Y,Z){return function(){return Z||Y((Z={exports:{}}).exports,Z),Z.exports}},kR=function(Y,Z,Q,X){if(Z&&typeof Z=="object"||typeof Z=="function")for(var J=hR(Z),W=0,q=J.length,z;W";default:return J(U)}}function J(U){var V=[],F=U.tagName;return U.namespaceURI==="http://www.w3.org/1999/xhtml"&&(F=F.toLowerCase()),V.push("<"+F+E(U)+z(U)),Q.indexOf(F)>-1?V.push(" />"):(V.push(">"),U.childNodes.length?V.push.apply(V,U.childNodes.map(X)):U.textContent||U.innerText?V.push(K(U.textContent||U.innerText)):U.innerHTML&&V.push(U.innerHTML),V.push("")),V.join("")}function W(U,V){var F=az(U[V]);return V==="style"&&Object.keys(U.style).length>0?!0:U.hasOwnProperty(V)&&(F==="string"||F==="boolean"||F==="number")&&V!=="nodeName"&&V!=="className"&&V!=="tagName"&&V!=="textContent"&&V!=="innerText"&&V!=="namespaceURI"&&V!=="innerHTML"}function q(U){if(typeof U=="string")return U;var V="";return Object.keys(U).forEach(function(F){var R=U[F];F=F.replace(/[A-Z]/g,function(B){return"-"+B.toLowerCase()}),V+=F+":"+R+";"}),V}function z(U){var V=U.dataset,F=[];for(var R in V)F.push({name:"data-"+R,value:V[R]});return F.length?H(F):""}function H(U){var V=[];return U.forEach(function(F){var{name:R,value:B}=F;R==="style"&&(B=q(B)),V.push(R+'="'+G(B)+'"')}),V.length?" "+V.join(" "):""}function E(U){var V=[];for(var F in U)W(U,F)&&V.push({name:F,value:U[F]});for(var R in U._attributes)for(var B in U._attributes[R]){var $=U._attributes[R][B],L=($.prefix?$.prefix+":":"")+B;V.push({name:L,value:$.value})}return U.className&&V.push({name:"class",value:U.className}),V.length?H(V):""}function K(U){var V="";return typeof U=="string"?V=U:U&&(V=U.toString()),V.replace(/&/g,"&").replace(//g,">")}function G(U){return K(U).replace(/"/g,""")}}),X3=h1(function(Y,Z){R7();var Q=ez(),X=Y3(),J=Z3(),W=Q3(),q=_R(),z="http://www.w3.org/1999/xhtml";Z.exports=H;function H(E,K,G){if(!F7(this,H))return new H(E);var U=G===void 0?z:G||null;this.tagName=U===z?String(E).toUpperCase():E,this.nodeName=this.tagName,this.className="",this.dataset={},this.childNodes=[],this.parentNode=null,this.style={},this.ownerDocument=K||null,this.namespaceURI=U,this._attributes={},this.tagName==="INPUT"&&(this.type="text")}H.prototype.type="DOMElement",H.prototype.nodeType=1,H.prototype.appendChild=function(E){return E.parentNode&&E.parentNode.removeChild(E),this.childNodes.push(E),E.parentNode=this,E},H.prototype.replaceChild=function(E,K){E.parentNode&&E.parentNode.removeChild(E);var G=this.childNodes.indexOf(K);return K.parentNode=null,this.childNodes[G]=E,E.parentNode=this,K},H.prototype.removeChild=function(E){var K=this.childNodes.indexOf(E);return this.childNodes.splice(K,1),E.parentNode=null,E},H.prototype.insertBefore=function(E,K){E.parentNode&&E.parentNode.removeChild(E);var G=K==null?-1:this.childNodes.indexOf(K);return G>-1?this.childNodes.splice(G,0,E):this.childNodes.push(E),E.parentNode=this,E},H.prototype.setAttributeNS=function(E,K,G){var U=null,V=K,F=K.indexOf(":");if(F>-1&&(U=K.substr(0,F),V=K.substr(F+1)),this.tagName==="INPUT"&&K==="type")this.type=G;else{var R=this._attributes[E]||(this._attributes[E]={});R[V]={value:G,prefix:U}}},H.prototype.getAttributeNS=function(E,K){var G=this._attributes[E],U=G&&G[K]&&G[K].value;return this.tagName==="INPUT"&&K==="type"?this.type:typeof U!="string"?null:U},H.prototype.removeAttributeNS=function(E,K){var G=this._attributes[E];G&&delete G[K]},H.prototype.hasAttributeNS=function(E,K){var G=this._attributes[E];return!!G&&K in G},H.prototype.setAttribute=function(E,K){return this.setAttributeNS(null,E,K)},H.prototype.getAttribute=function(E){return this.getAttributeNS(null,E)},H.prototype.removeAttribute=function(E){return this.removeAttributeNS(null,E)},H.prototype.hasAttribute=function(E){return this.hasAttributeNS(null,E)},H.prototype.removeEventListener=W,H.prototype.addEventListener=J,H.prototype.dispatchEvent=X,H.prototype.focus=function(){},H.prototype.toString=function(){return q(this)},H.prototype.getElementsByClassName=function(E){var K=E.split(" "),G=[];return Q(this,function(U){if(U.nodeType===1){var V=U.className||"",F=V.split(" ");K.every(function(R){return F.indexOf(R)!==-1})&&G.push(U)}}),G},H.prototype.getElementsByTagName=function(E){E=E.toLowerCase();var K=[];return Q(this.childNodes,function(G){G.nodeType===1&&(E==="*"||G.tagName.toLowerCase()===E)&&K.push(G)}),K},H.prototype.contains=function(E){return Q(this,function(K){return E===K})||!1}}),vR=h1(function(Y,Z){R7();var Q=X3();Z.exports=X;function X(J){if(!F7(this,X))return new X;this.childNodes=[],this.parentNode=null,this.ownerDocument=J||null}X.prototype.type="DocumentFragment",X.prototype.nodeType=11,X.prototype.nodeName="#document-fragment",X.prototype.appendChild=Q.prototype.appendChild,X.prototype.replaceChild=Q.prototype.replaceChild,X.prototype.removeChild=Q.prototype.removeChild,X.prototype.toString=function(){return this.childNodes.map(function(J){return String(J)}).join("")}}),pR=h1(function(Y,Z){Z.exports=Q;function Q(X){}Q.prototype.initEvent=function(X,J,W){this.type=X,this.bubbles=J,this.cancelable=W},Q.prototype.preventDefault=function(){}}),cR=h1(function(Y,Z){R7();var Q=ez(),X=gR(),J=bR(),W=X3(),q=vR(),z=pR(),H=Y3(),E=Z3(),K=Q3();Z.exports=G;function G(){if(!F7(this,G))return new G;this.head=this.createElement("head"),this.body=this.createElement("body"),this.documentElement=this.createElement("html"),this.documentElement.appendChild(this.head),this.documentElement.appendChild(this.body),this.childNodes=[this.documentElement],this.nodeType=9}var U=G.prototype;U.createTextNode=function(V){return new J(V,this)},U.createElementNS=function(V,F){var R=V===null?null:String(V);return new W(F,this,R)},U.createElement=function(V){return new W(V,this)},U.createDocumentFragment=function(){return new q(this)},U.createEvent=function(V){return new z(V)},U.createComment=function(V){return new X(V,this)},U.getElementById=function(V){V=String(V);var F=Q(this.childNodes,function(R){if(String(R.id)===V)return R});return F||null},U.getElementsByClassName=W.prototype.getElementsByClassName,U.getElementsByTagName=W.prototype.getElementsByTagName,U.contains=W.prototype.contains,U.removeEventListener=K,U.addEventListener=E,U.dispatchEvent=H}),uR=h1(function(Y,Z){var Q=cR();Z.exports=new Q}),J3=h1(function(Y,Z){var Q=typeof global<"u"?global:typeof window<"u"?window:{},X=uR(),J;typeof document<"u"?J=document:(J=Q["__GLOBAL_DOCUMENT_CACHE@4"],J||(J=Q["__GLOBAL_DOCUMENT_CACHE@4"]=X)),Z.exports=J});function mR(Y){if(Array.isArray(Y))return Y}function oR(Y,Z){var Q=Y==null?null:typeof Symbol<"u"&&Y[Symbol.iterator]||Y["@@iterator"];if(Q!=null){var X=[],J=!0,W=!1,q,z;try{for(Q=Q.call(Y);!(J=(q=Q.next()).done)&&(X.push(q.value),!(Z&&X.length===Z));J=!0);}catch(H){W=!0,z=H}finally{try{!J&&Q.return!=null&&Q.return()}finally{if(W)throw z}}return X}}function dR(){throw TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function FW(Y,Z){(Z==null||Z>Y.length)&&(Z=Y.length);for(var Q=0,X=Array(Z);Q1&&arguments[1]!==void 0?arguments[1]:3,Q,X,J,W,q,z=Y?[console,Y]:[console],H=(Q=console.trace).bind.apply(Q,R8(z)),E=(X=console.info).bind.apply(X,R8(z)),K=(J=console.debug).bind.apply(J,R8(z)),G=(W=console.warn).bind.apply(W,R8(z)),U=(q=console.error).bind.apply(q,R8(z)),V=Z;return{trace:function(){for(var F=arguments.length,R=Array(F),B=0;BV7.TRACE))return H.apply(void 0,R8(R))},debug:function(){for(var F=arguments.length,R=Array(F),B=0;BV7.DEBUG))return K.apply(void 0,R8(R))},info:function(){for(var F=arguments.length,R=Array(F),B=0;BV7.INFO))return E.apply(void 0,R8(R))},warn:function(){for(var F=arguments.length,R=Array(F),B=0;BV7.WARN))return G.apply(void 0,R8(R))},error:function(){for(var F=arguments.length,R=Array(F),B=0;BV7.ERROR))return U.apply(void 0,R8(R))},get level(){return V},set level(F){F!==this.level&&(V=F!=null?F:Z)}}},g0=aR("[mux]"),zW=Z8(S8());function RW(){var Y=zW.default.doNotTrack||zW.default.navigator&&zW.default.navigator.doNotTrack;return Y==="1"}function z0(Y){if(Y===void 0)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return Y}R7();function Q1(Y,Z){if(!F7(Y,Z))throw TypeError("Cannot call a class as a function")}function uz(Y,Z){for(var Q=0;Q=0)&&(Q[J]=Y[J]);return Q}function ZB(Y,Z){if(Y==null)return{};var Q=YB(Y,Z),X,J;if(Object.getOwnPropertySymbols){var W=Object.getOwnPropertySymbols(Y);for(J=0;J=0)&&Object.prototype.propertyIsEnumerable.call(Y,X)&&(Q[X]=Y[X])}return Q}function QB(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(Y){return!1}}tz();function XB(Y,Z){return Z&&(az(Z)==="object"||typeof Z=="function")?Z:z0(Y)}function JB(Y){var Z=QB();return function(){var Q=Q9(Y),X;if(Z){var J=Q9(this).constructor;X=Reflect.construct(Q,arguments,J)}else X=Q.apply(this,arguments);return XB(this,X)}}var B8=function(Y){return CY(Y)[0]},CY=function(Y){if(typeof Y!="string"||Y==="")return["localhost"];var Z=/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,Q=Y.match(Z)||[],X=Q[4],J;return X&&(J=(X.match(/[^\.]+\.[^\.]+$/)||[])[0]),[X,J]},EW=Z8(S8()),WB={exists:function(){var Y=EW.default.performance,Z=Y&&Y.timing;return Z!==void 0},domContentLoadedEventEnd:function(){var Y=EW.default.performance,Z=Y&&Y.timing;return Z&&Z.domContentLoadedEventEnd},navigationStart:function(){var Y=EW.default.performance,Z=Y&&Y.timing;return Z&&Z.navigationStart}},z2=WB;function E1(Y,Z,Q){Q=Q===void 0?1:Q,Y[Z]=Y[Z]||0,Y[Z]+=Q}function E2(Y){for(var Z=1;Z=0||W.toLowerCase().indexOf("x-litix-")===0)&&(Z[W]=J.join(": "))}}),Z}function K2(Y){if(Y){var Z=H3.find(function(Q){return Y[Q]!==void 0});return Z?Y[Z]:void 0}}var EB=function(Y){var Z={};for(var Q in Y){var X=Y[Q],J=X["DATA-ID"].search("io.litix.data.");if(J!==-1){var W=X["DATA-ID"].replace("io.litix.data.","");Z[W]=X.VALUE}}return Z},z3=EB,W2=function(Y){if(!Y)return{};var Z=z2.navigationStart(),Q=Y.loading,X=Q?Q.start:Y.trequest,J=Q?Q.first:Y.tfirst,W=Q?Q.end:Y.tload;return{bytesLoaded:Y.total,requestStart:Math.round(Z+X),responseStart:Math.round(Z+J),responseEnd:Math.round(Z+W)}},jY=function(Y){if(!(!Y||typeof Y.getAllResponseHeaders!="function"))return LW(Y.getAllResponseHeaders())},KB=function(Y,Z,Q){var X=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},J=arguments.length>4?arguments[4]:void 0,W=Y.log,q=Y.utils.secondsToMs,z=function($){var L=parseInt(J.version),O;return L===1&&$.programDateTime!==null&&(O=$.programDateTime),L===0&&$.pdt!==null&&(O=$.pdt),O};if(!z2.exists()){W.warn("performance timing not supported. Not tracking HLS.js.");return}var H=function($,L){return Y.emit(Z,$,L)},E=function($,L){var{levels:O,audioTracks:j,url:w,stats:D,networkDetails:M,sessionData:C}=L,I={},x={};O.forEach(function(l,c){I[c]={width:l.width,height:l.height,bitrate:l.bitrate,attrs:l.attrs}}),j.forEach(function(l,c){x[c]={name:l.name,language:l.lang,bitrate:l.bitrate}});var f=W2(D),_=f.bytesLoaded,o=f.requestStart,n=f.responseStart,g=f.responseEnd;H("requestcompleted",$W(E2({},z3(C)),{request_event_type:$,request_bytes_loaded:_,request_start:o,request_response_start:n,request_response_end:g,request_type:"manifest",request_hostname:B8(w),request_response_headers:jY(M),request_rendition_lists:{media:I,audio:x,video:{}}}))};Q.on(J.Events.MANIFEST_LOADED,E);var K=function($,L){var{details:O,level:j,networkDetails:w,stats:D}=L,M=W2(D),C=M.bytesLoaded,I=M.requestStart,x=M.responseStart,f=M.responseEnd,_=O.fragments[O.fragments.length-1],o=z(_)+q(_.duration);H("requestcompleted",{request_event_type:$,request_bytes_loaded:C,request_start:I,request_response_start:x,request_response_end:f,request_current_level:j,request_type:"manifest",request_hostname:B8(O.url),request_response_headers:jY(w),video_holdback:O.holdBack&&q(O.holdBack),video_part_holdback:O.partHoldBack&&q(O.partHoldBack),video_part_target_duration:O.partTarget&&q(O.partTarget),video_target_duration:O.targetduration&&q(O.targetduration),video_source_is_live:O.live,player_manifest_newest_program_time:isNaN(o)?void 0:o})};Q.on(J.Events.LEVEL_LOADED,K);var G=function($,L){var{details:O,networkDetails:j,stats:w}=L,D=W2(w),M=D.bytesLoaded,C=D.requestStart,I=D.responseStart,x=D.responseEnd;H("requestcompleted",{request_event_type:$,request_bytes_loaded:M,request_start:C,request_response_start:I,request_response_end:x,request_type:"manifest",request_hostname:B8(O.url),request_response_headers:jY(j)})};Q.on(J.Events.AUDIO_TRACK_LOADED,G);var U=function($,L){var{stats:O,networkDetails:j,frag:w}=L;O=O||w.stats;var D=W2(O),M=D.bytesLoaded,C=D.requestStart,I=D.responseStart,x=D.responseEnd,f=j?jY(j):void 0,_={request_event_type:$,request_bytes_loaded:M,request_start:C,request_response_start:I,request_response_end:x,request_hostname:j?B8(j.responseURL):void 0,request_id:f?K2(f):void 0,request_response_headers:f,request_media_duration:w.duration,request_url:j==null?void 0:j.responseURL};w.type==="main"?(_.request_type="media",_.request_current_level=w.level,_.request_video_width=(Q.levels[w.level]||{}).width,_.request_video_height=(Q.levels[w.level]||{}).height,_.request_labeled_bitrate=(Q.levels[w.level]||{}).bitrate):_.request_type=w.type,H("requestcompleted",_)};Q.on(J.Events.FRAG_LOADED,U);var V=function($,L){var O=L.frag,j=O.start,w=z(O),D={currentFragmentPDT:w,currentFragmentStart:q(j)};H("fragmentchange",D)};Q.on(J.Events.FRAG_CHANGED,V);var F=function($,L){var{type:O,details:j,response:w,fatal:D,frag:M,networkDetails:C}=L,I=(M==null?void 0:M.url)||L.url||"",x=C?jY(C):void 0;if((j===J.ErrorDetails.MANIFEST_LOAD_ERROR||j===J.ErrorDetails.MANIFEST_LOAD_TIMEOUT||j===J.ErrorDetails.FRAG_LOAD_ERROR||j===J.ErrorDetails.FRAG_LOAD_TIMEOUT||j===J.ErrorDetails.LEVEL_LOAD_ERROR||j===J.ErrorDetails.LEVEL_LOAD_TIMEOUT||j===J.ErrorDetails.AUDIO_TRACK_LOAD_ERROR||j===J.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT||j===J.ErrorDetails.SUBTITLE_LOAD_ERROR||j===J.ErrorDetails.SUBTITLE_LOAD_TIMEOUT||j===J.ErrorDetails.KEY_LOAD_ERROR||j===J.ErrorDetails.KEY_LOAD_TIMEOUT)&&H("requestfailed",{request_error:j,request_url:I,request_hostname:B8(I),request_id:x?K2(x):void 0,request_type:j===J.ErrorDetails.FRAG_LOAD_ERROR||j===J.ErrorDetails.FRAG_LOAD_TIMEOUT?"media":j===J.ErrorDetails.AUDIO_TRACK_LOAD_ERROR||j===J.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT?"audio":j===J.ErrorDetails.SUBTITLE_LOAD_ERROR||j===J.ErrorDetails.SUBTITLE_LOAD_TIMEOUT?"subtitle":j===J.ErrorDetails.KEY_LOAD_ERROR||j===J.ErrorDetails.KEY_LOAD_TIMEOUT?"encryption":"manifest",request_error_code:w==null?void 0:w.code,request_error_text:w==null?void 0:w.text}),D){var f,_="".concat(I?"url: ".concat(I,` `):"")+"".concat(w&&(w.code||w.text)?"response: ".concat(w.code,", ").concat(w.text,` `):"")+"".concat(L.reason?"failure reason: ".concat(L.reason,` `):"")+"".concat(L.level?"level: ".concat(L.level,` `):"")+"".concat(L.parent?"parent stream controller: ".concat(L.parent,` `):"")+"".concat(L.buffer?"buffer length: ".concat(L.buffer,` `):"")+"".concat(L.error?"error: ".concat(L.error,` `):"")+"".concat(L.event?"event: ".concat(L.event,` `):"")+"".concat(L.err?"error message: ".concat((f=L.err)===null||f===void 0?void 0:f.message,` `):"");H("error",{player_error_code:O,player_error_message:j,player_error_context:_})}};Q.on(J.Events.ERROR,F);var R=function($,L){var O=L.frag,j=O&&O._url||"";H("requestcanceled",{request_event_type:$,request_url:j,request_type:"media",request_hostname:B8(j)})};Q.on(J.Events.FRAG_LOAD_EMERGENCY_ABORTED,R);var B=function($,L){var O=L.level,j=Q.levels[O];if(j&&j.attrs&&j.attrs.BANDWIDTH){var w=j.attrs.BANDWIDTH,D,M=parseFloat(j.attrs["FRAME-RATE"]);isNaN(M)||(D=M),w?H("renditionchange",{video_source_fps:D,video_source_bitrate:w,video_source_width:j.width,video_source_height:j.height,video_source_rendition_name:j.name,video_source_codec:j==null?void 0:j.videoCodec}):W.warn("missing BANDWIDTH from HLS manifest parsed by HLS.js")}};Q.on(J.Events.LEVEL_SWITCHED,B),Q._stopMuxMonitor=function(){Q.off(J.Events.MANIFEST_LOADED,E),Q.off(J.Events.LEVEL_LOADED,K),Q.off(J.Events.AUDIO_TRACK_LOADED,G),Q.off(J.Events.FRAG_LOADED,U),Q.off(J.Events.FRAG_CHANGED,V),Q.off(J.Events.ERROR,F),Q.off(J.Events.FRAG_LOAD_EMERGENCY_ABORTED,R),Q.off(J.Events.LEVEL_SWITCHED,B),Q.off(J.Events.DESTROYING,Q._stopMuxMonitor),delete Q._stopMuxMonitor},Q.on(J.Events.DESTROYING,Q._stopMuxMonitor)},GB=function(Y){Y&&typeof Y._stopMuxMonitor=="function"&&Y._stopMuxMonitor()},mz=function(Y,Z){if(!Y||!Y.requestEndDate)return{};var Q=B8(Y.url),X=Y.url,J=Y.bytesLoaded,W=new Date(Y.requestStartDate).getTime(),q=new Date(Y.firstByteDate).getTime(),z=new Date(Y.requestEndDate).getTime(),H=isNaN(Y.duration)?0:Y.duration,E=typeof Z.getMetricsFor=="function"?Z.getMetricsFor(Y.mediaType).HttpList:Z.getDashMetrics().getHttpRequests(Y.mediaType),K;E.length>0&&(K=LW(E[E.length-1]._responseHeaders||""));var G=K?K2(K):void 0;return{requestStart:W,requestResponseStart:q,requestResponseEnd:z,requestBytesLoaded:J,requestResponseHeaders:K,requestMediaDuration:H,requestHostname:Q,requestUrl:X,requestId:G}},VB=function(Y,Z){var Q=Z.getQualityFor(Y),X=Z.getCurrentTrackFor(Y).bitrateList;return X?{currentLevel:Q,renditionWidth:X[Q].width||null,renditionHeight:X[Q].height||null,renditionBitrate:X[Q].bandwidth}:{}},UB=function(Y){var Z;return(Z=Y.match(/.*codecs\*?="(.*)"/))===null||Z===void 0?void 0:Z[1]},FB=function(Y){try{var Z,Q,X=(Q=Y.getVersion)===null||Q===void 0||(Z=Q.call(Y))===null||Z===void 0?void 0:Z.split(".").map(function(J){return parseInt(J)})[0];return X}catch(J){return!1}},RB=function(Y,Z,Q){var X=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},J=Y.log;if(!Q||!Q.on){J.warn("Invalid dash.js player reference. Monitoring blocked.");return}var W=FB(Q),q=function(O,j){return Y.emit(Z,O,j)},z=function(O){var{type:j,data:w}=O,D=(w||{}).url;q("requestcompleted",{request_event_type:j,request_start:0,request_response_start:0,request_response_end:0,request_bytes_loaded:-1,request_type:"manifest",request_hostname:B8(D),request_url:D})};Q.on("manifestLoaded",z);var H={},E=function(O){if(typeof O.getRequests!="function")return null;var j=O.getRequests({state:"executed"});return j.length===0?null:j[j.length-1]},K=function(O){var{type:j,fragmentModel:w,chunk:D}=O,M=E(w);G({type:j,request:M,chunk:D})},G=function(O){var{type:j,chunk:w,request:D}=O,M=(w||{}).mediaInfo,C=M||{},I=C.type,x=C.bitrateList;x=x||[];var f={};x.forEach(function(d,e){f[e]={},f[e].width=d.width,f[e].height=d.height,f[e].bitrate=d.bandwidth,f[e].attrs={}}),I==="video"?H.video=f:I==="audio"?H.audio=f:H.media=f;var _=mz(D,Q),o=_.requestStart,n=_.requestResponseStart,g=_.requestResponseEnd,l=_.requestResponseHeaders,c=_.requestMediaDuration,s=_.requestHostname,Q0=_.requestUrl,p=_.requestId;q("requestcompleted",{request_event_type:j,request_start:o,request_response_start:n,request_response_end:g,request_bytes_loaded:-1,request_type:I+"_init",request_response_headers:l,request_hostname:s,request_id:p,request_url:Q0,request_media_duration:c,request_rendition_lists:H})};W>=4?Q.on("initFragmentLoaded",G):Q.on("initFragmentLoaded",K);var U=function(O){var{type:j,fragmentModel:w,chunk:D}=O,M=E(w);V({type:j,request:M,chunk:D})},V=function(O){var{type:j,chunk:w,request:D}=O,M=w||{},C=M.mediaInfo,I=M.start,x=C||{},f=x.type,_=mz(D,Q),o=_.requestStart,n=_.requestResponseStart,g=_.requestResponseEnd,l=_.requestBytesLoaded,c=_.requestResponseHeaders,s=_.requestMediaDuration,Q0=_.requestHostname,p=_.requestUrl,d=_.requestId,e=VB(f,Q),F0=e.currentLevel,U0=e.renditionWidth,N0=e.renditionHeight,o0=e.renditionBitrate;q("requestcompleted",{request_event_type:j,request_start:o,request_response_start:n,request_response_end:g,request_bytes_loaded:l,request_type:f,request_response_headers:c,request_hostname:Q0,request_id:d,request_url:p,request_media_start_time:I,request_media_duration:s,request_current_level:F0,request_labeled_bitrate:o0,request_video_width:U0,request_video_height:N0})};W>=4?Q.on("mediaFragmentLoaded",V):Q.on("mediaFragmentLoaded",U);var F={video:void 0,audio:void 0,totalBitrate:void 0},R=function(){if(F.video&&typeof F.video.bitrate=="number"){if(!(F.video.width&&F.video.height)){J.warn("have bitrate info for video but missing width/height");return}var O=F.video.bitrate;if(F.audio&&typeof F.audio.bitrate=="number"&&(O+=F.audio.bitrate),O!==F.totalBitrate)return F.totalBitrate=O,{video_source_bitrate:O,video_source_height:F.video.height,video_source_width:F.video.width,video_source_codec:UB(F.video.codec)}}},B=function(O,j,w){if(typeof O.newQuality!="number"){J.warn("missing evt.newQuality in qualityChangeRendered event",O);return}var D=O.mediaType;if(D==="audio"||D==="video"){var M=Q.getBitrateInfoListFor(D).find(function(I){var x=I.qualityIndex;return x===O.newQuality});if(!(M&&typeof M.bitrate=="number")){J.warn("missing bitrate info for ".concat(D));return}F[D]=$W(E2({},M),{codec:Q.getCurrentTrackFor(D).codec});var C=R();C&&q("renditionchange",C)}};Q.on("qualityChangeRendered",B);var $=function(O){var{request:j,mediaType:w}=O;j=j||{},q("requestcanceled",{request_event_type:j.type+"_"+j.action,request_url:j.url,request_type:w,request_hostname:B8(j.url)})};Q.on("fragmentLoadingAbandoned",$);var L=function(O){var j=O.error,w,D,M=(j==null||(w=j.data)===null||w===void 0?void 0:w.request)||{},C=(j==null||(D=j.data)===null||D===void 0?void 0:D.response)||{};(j==null?void 0:j.code)===27&&q("requestfailed",{request_error:M.type+"_"+M.action,request_url:M.url,request_hostname:B8(M.url),request_type:M.mediaType,request_error_code:C.status,request_error_text:C.statusText});var I="".concat(M!=null&&M.url?"url: ".concat(M.url,` `):"")+"".concat(C!=null&&C.status||C!=null&&C.statusText?"response: ".concat(C==null?void 0:C.status,", ").concat(C==null?void 0:C.statusText,` `):"");q("error",{player_error_code:j==null?void 0:j.code,player_error_message:j==null?void 0:j.message,player_error_context:I})};Q.on("error",L),Q._stopMuxMonitor=function(){Q.off("manifestLoaded",z),Q.off("initFragmentLoaded",G),Q.off("mediaFragmentLoaded",V),Q.off("qualityChangeRendered",B),Q.off("error",L),Q.off("fragmentLoadingAbandoned",$),delete Q._stopMuxMonitor}},BB=function(Y){Y&&typeof Y._stopMuxMonitor=="function"&&Y._stopMuxMonitor()},oz=0,NB=function(){function Y(){Q1(this,Y),u(this,"_listeners",void 0)}return N8(Y,[{key:"on",value:function(Z,Q,X){return Q._eventEmitterGuid=Q._eventEmitterGuid||++oz,this._listeners=this._listeners||{},this._listeners[Z]=this._listeners[Z]||[],X&&(Q=Q.bind(X)),this._listeners[Z].push(Q),Q}},{key:"off",value:function(Z,Q){var X=this._listeners&&this._listeners[Z];X&&X.forEach(function(J,W){J._eventEmitterGuid===Q._eventEmitterGuid&&X.splice(W,1)})}},{key:"one",value:function(Z,Q,X){var J=this;Q._eventEmitterGuid=Q._eventEmitterGuid||++oz;var W=function(){J.off(Z,W),Q.apply(X||this,arguments)};W._eventEmitterGuid=Q._eventEmitterGuid,this.on(Z,W)}},{key:"emit",value:function(Z,Q){var X=this;if(this._listeners){Q=Q||{};var J=this._listeners["before"+Z]||[],W=this._listeners["before*"]||[],q=this._listeners[Z]||[],z=this._listeners["after"+Z]||[],H=function(E,K){E=E.slice(),E.forEach(function(G){G.call(X,{type:Z},K)})};H(J,Q),H(W,Q),H(q,Q),H(z,Q)}}}]),Y}(),$B=NB,KW=Z8(S8()),LB=function(){function Y(Z){var Q=this;Q1(this,Y),u(this,"_playbackHeartbeatInterval",void 0),u(this,"_playheadShouldBeProgressing",void 0),u(this,"pm",void 0),this.pm=Z,this._playbackHeartbeatInterval=null,this._playheadShouldBeProgressing=!1,Z.on("playing",function(){Q._playheadShouldBeProgressing=!0}),Z.on("play",this._startPlaybackHeartbeatInterval.bind(this)),Z.on("playing",this._startPlaybackHeartbeatInterval.bind(this)),Z.on("adbreakstart",this._startPlaybackHeartbeatInterval.bind(this)),Z.on("adplay",this._startPlaybackHeartbeatInterval.bind(this)),Z.on("adplaying",this._startPlaybackHeartbeatInterval.bind(this)),Z.on("devicewake",this._startPlaybackHeartbeatInterval.bind(this)),Z.on("viewstart",this._startPlaybackHeartbeatInterval.bind(this)),Z.on("rebufferstart",this._startPlaybackHeartbeatInterval.bind(this)),Z.on("pause",this._stopPlaybackHeartbeatInterval.bind(this)),Z.on("ended",this._stopPlaybackHeartbeatInterval.bind(this)),Z.on("viewend",this._stopPlaybackHeartbeatInterval.bind(this)),Z.on("error",this._stopPlaybackHeartbeatInterval.bind(this)),Z.on("aderror",this._stopPlaybackHeartbeatInterval.bind(this)),Z.on("adpause",this._stopPlaybackHeartbeatInterval.bind(this)),Z.on("adended",this._stopPlaybackHeartbeatInterval.bind(this)),Z.on("adbreakend",this._stopPlaybackHeartbeatInterval.bind(this)),Z.on("seeked",function(){Z.data.player_is_paused?Q._stopPlaybackHeartbeatInterval():Q._startPlaybackHeartbeatInterval()}),Z.on("timeupdate",function(){Q._playbackHeartbeatInterval!==null&&Z.emit("playbackheartbeat")}),Z.on("devicesleep",function(X,J){Q._playbackHeartbeatInterval!==null&&(KW.default.clearInterval(Q._playbackHeartbeatInterval),Z.emit("playbackheartbeatend",{viewer_time:J.viewer_time}),Q._playbackHeartbeatInterval=null)})}return N8(Y,[{key:"_startPlaybackHeartbeatInterval",value:function(){var Z=this;this._playbackHeartbeatInterval===null&&(this.pm.emit("playbackheartbeat"),this._playbackHeartbeatInterval=KW.default.setInterval(function(){Z.pm.emit("playbackheartbeat")},this.pm.playbackHeartbeatTime))}},{key:"_stopPlaybackHeartbeatInterval",value:function(){this._playheadShouldBeProgressing=!1,this._playbackHeartbeatInterval!==null&&(KW.default.clearInterval(this._playbackHeartbeatInterval),this.pm.emit("playbackheartbeatend"),this._playbackHeartbeatInterval=null)}}]),Y}(),OB=LB,jB=function Y(Z){var Q=this;Q1(this,Y),u(this,"viewErrored",void 0),Z.on("viewinit",function(){Q.viewErrored=!1}),Z.on("error",function(X,J){try{var W=Z.errorTranslator({player_error_code:J.player_error_code,player_error_message:J.player_error_message,player_error_context:J.player_error_context,player_error_severity:J.player_error_severity,player_error_business_exception:J.player_error_business_exception});W&&(Z.data.player_error_code=W.player_error_code||J.player_error_code,Z.data.player_error_message=W.player_error_message||J.player_error_message,Z.data.player_error_context=W.player_error_context||J.player_error_context,Z.data.player_error_severity=W.player_error_severity||J.player_error_severity,Z.data.player_error_business_exception=W.player_error_business_exception||J.player_error_business_exception,Q.viewErrored=!0)}catch(q){Z.mux.log.warn("Exception in error translator callback.",q),Q.viewErrored=!0}}),Z.on("aftererror",function(){var X,J,W,q,z;(X=Z.data)===null||X===void 0||delete X.player_error_code,(J=Z.data)===null||J===void 0||delete J.player_error_message,(W=Z.data)===null||W===void 0||delete W.player_error_context,(q=Z.data)===null||q===void 0||delete q.player_error_severity,(z=Z.data)===null||z===void 0||delete z.player_error_business_exception})},AB=jB,DB=function(){function Y(Z){Q1(this,Y),u(this,"_watchTimeTrackerLastCheckedTime",void 0),u(this,"pm",void 0),this.pm=Z,this._watchTimeTrackerLastCheckedTime=null,Z.on("playbackheartbeat",this._updateWatchTime.bind(this)),Z.on("playbackheartbeatend",this._clearWatchTimeState.bind(this))}return N8(Y,[{key:"_updateWatchTime",value:function(Z,Q){var X=Q.viewer_time;this._watchTimeTrackerLastCheckedTime===null&&(this._watchTimeTrackerLastCheckedTime=X),E1(this.pm.data,"view_watch_time",X-this._watchTimeTrackerLastCheckedTime),this._watchTimeTrackerLastCheckedTime=X}},{key:"_clearWatchTimeState",value:function(Z,Q){this._updateWatchTime(Z,Q),this._watchTimeTrackerLastCheckedTime=null}}]),Y}(),wB=DB,PB=function(){function Y(Z){var Q=this;Q1(this,Y),u(this,"_playbackTimeTrackerLastPlayheadPosition",void 0),u(this,"_lastTime",void 0),u(this,"_isAdPlaying",void 0),u(this,"_callbackUpdatePlaybackTime",void 0),u(this,"pm",void 0),this.pm=Z,this._playbackTimeTrackerLastPlayheadPosition=-1,this._lastTime=R1.now(),this._isAdPlaying=!1,this._callbackUpdatePlaybackTime=null,Z.on("viewinit",function(){Q.pm.data.view_playing_time_ms_cumulative=0});var X=this._startPlaybackTimeTracking.bind(this);Z.on("playing",X),Z.on("adplaying",X),Z.on("seeked",X),Z.on("rebufferend",X);var J=this._stopPlaybackTimeTracking.bind(this);Z.on("playbackheartbeatend",J),Z.on("seeking",J),Z.on("rebufferstart",J),Z.on("adplaying",function(){Q._isAdPlaying=!0}),Z.on("adended",function(){Q._isAdPlaying=!1}),Z.on("adpause",function(){Q._isAdPlaying=!1}),Z.on("adbreakstart",function(){Q._isAdPlaying=!1}),Z.on("adbreakend",function(){Q._isAdPlaying=!1}),Z.on("adplay",function(){Q._isAdPlaying=!1}),Z.on("viewinit",function(){Q._playbackTimeTrackerLastPlayheadPosition=-1,Q._lastTime=R1.now(),Q._isAdPlaying=!1,Q._callbackUpdatePlaybackTime=null})}return N8(Y,[{key:"_startPlaybackTimeTracking",value:function(){this._callbackUpdatePlaybackTime===null&&(this._callbackUpdatePlaybackTime=this._updatePlaybackTime.bind(this),this._playbackTimeTrackerLastPlayheadPosition=this.pm.data.player_playhead_time,this._lastTime=R1.now(),this.pm.on("playbackheartbeat",this._callbackUpdatePlaybackTime))}},{key:"_stopPlaybackTimeTracking",value:function(){this._callbackUpdatePlaybackTime&&(this._updatePlaybackTime(),this.pm.off("playbackheartbeat",this._callbackUpdatePlaybackTime),this._callbackUpdatePlaybackTime=null,this._playbackTimeTrackerLastPlayheadPosition=-1)}},{key:"_updatePlaybackTime",value:function(){var Z=this.pm.data.player_playhead_time||0,Q=R1.now(),X=Q-this._lastTime,J=-1;this._playbackTimeTrackerLastPlayheadPosition>=0&&Z>this._playbackTimeTrackerLastPlayheadPosition?J=Z-this._playbackTimeTrackerLastPlayheadPosition:this._isAdPlaying&&(J=X),J>0&&J<=1000&&E1(this.pm.data,"view_content_playback_time",J),this._callbackUpdatePlaybackTime!==null&&X>0&&X<=1000&&(this._isAdPlaying&&E1(this.pm.data,"ad_playing_time_ms_cumulative",X),E1(this.pm.data,"view_playing_time_ms_cumulative",X)),this._playbackTimeTrackerLastPlayheadPosition=Z,this._lastTime=Q}}]),Y}(),CB=PB,MB=function(){function Y(Z){Q1(this,Y),u(this,"pm",void 0),this.pm=Z;var Q=this._updatePlayheadTime.bind(this);Z.on("playbackheartbeat",Q),Z.on("playbackheartbeatend",Q),Z.on("timeupdate",Q),Z.on("destroy",function(){Z.off("timeupdate",Q)})}return N8(Y,[{key:"_updateMaxPlayheadPosition",value:function(){this.pm.data.view_max_playhead_position=typeof this.pm.data.view_max_playhead_position>"u"?this.pm.data.player_playhead_time:Math.max(this.pm.data.view_max_playhead_position,this.pm.data.player_playhead_time)}},{key:"_updatePlayheadTime",value:function(Z,Q){var X=this,J=function(){X.pm.currentFragmentPDT&&X.pm.currentFragmentStart&&(X.pm.data.player_program_time=X.pm.currentFragmentPDT+X.pm.data.player_playhead_time-X.pm.currentFragmentStart)};if(Q&&Q.player_playhead_time)this.pm.data.player_playhead_time=Q.player_playhead_time,J(),this._updateMaxPlayheadPosition();else if(this.pm.getPlayheadTime){var W=this.pm.getPlayheadTime();typeof W<"u"&&(this.pm.data.player_playhead_time=W,J(),this._updateMaxPlayheadPosition())}}}]),Y}(),xB=MB,dz=300000,IB=function Y(Z){if(Q1(this,Y),!Z.disableRebufferTracking){var Q,X=function(W,q){J(q),Q=void 0},J=function(W){if(Q){var q=W.viewer_time-Q;E1(Z.data,"view_rebuffer_duration",q),Q=W.viewer_time,Z.data.view_rebuffer_duration>dz&&(Z.emit("viewend"),Z.send("viewend"),Z.mux.log.warn("Ending view after rebuffering for longer than ".concat(dz,"ms, future events will be ignored unless a programchange or videochange occurs.")))}Z.data.view_watch_time>=0&&Z.data.view_rebuffer_count>0&&(Z.data.view_rebuffer_frequency=Z.data.view_rebuffer_count/Z.data.view_watch_time,Z.data.view_rebuffer_percentage=Z.data.view_rebuffer_duration/Z.data.view_watch_time)};Z.on("playbackheartbeat",function(W,q){return J(q)}),Z.on("rebufferstart",function(W,q){Q||(E1(Z.data,"view_rebuffer_count",1),Q=q.viewer_time,Z.one("rebufferend",X))}),Z.on("viewinit",function(){Q=void 0,Z.off("rebufferend",X)})}},SB=IB,TB=function(){function Y(Z){var Q=this;Q1(this,Y),u(this,"_lastCheckedTime",void 0),u(this,"_lastPlayheadTime",void 0),u(this,"_lastPlayheadTimeUpdatedTime",void 0),u(this,"_rebuffering",void 0),u(this,"pm",void 0),this.pm=Z,!(Z.disableRebufferTracking||Z.disablePlayheadRebufferTracking)&&(this._lastCheckedTime=null,this._lastPlayheadTime=null,this._lastPlayheadTimeUpdatedTime=null,Z.on("playbackheartbeat",this._checkIfRebuffering.bind(this)),Z.on("playbackheartbeatend",this._cleanupRebufferTracker.bind(this)),Z.on("seeking",function(){Q._cleanupRebufferTracker(null,{viewer_time:R1.now()})}))}return N8(Y,[{key:"_checkIfRebuffering",value:function(Z,Q){if(this.pm.seekingTracker.isSeeking||this.pm.adTracker.isAdBreak||!this.pm.playbackHeartbeat._playheadShouldBeProgressing){this._cleanupRebufferTracker(Z,Q);return}if(this._lastCheckedTime===null){this._prepareRebufferTrackerState(Q.viewer_time);return}if(this._lastPlayheadTime!==this.pm.data.player_playhead_time){this._cleanupRebufferTracker(Z,Q,!0);return}var X=Q.viewer_time-this._lastPlayheadTimeUpdatedTime;typeof this.pm.sustainedRebufferThreshold=="number"&&X>=this.pm.sustainedRebufferThreshold&&(this._rebuffering||(this._rebuffering=!0,this.pm.emit("rebufferstart",{viewer_time:this._lastPlayheadTimeUpdatedTime}))),this._lastCheckedTime=Q.viewer_time}},{key:"_clearRebufferTrackerState",value:function(){this._lastCheckedTime=null,this._lastPlayheadTime=null,this._lastPlayheadTimeUpdatedTime=null}},{key:"_prepareRebufferTrackerState",value:function(Z){this._lastCheckedTime=Z,this._lastPlayheadTime=this.pm.data.player_playhead_time,this._lastPlayheadTimeUpdatedTime=Z}},{key:"_cleanupRebufferTracker",value:function(Z,Q){var X=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;if(this._rebuffering)this._rebuffering=!1,this.pm.emit("rebufferend",{viewer_time:Q.viewer_time});else{if(this._lastCheckedTime===null)return;var J=this.pm.data.player_playhead_time-this._lastPlayheadTime,W=Q.viewer_time-this._lastPlayheadTimeUpdatedTime;typeof this.pm.minimumRebufferDuration=="number"&&J>0&&W-J>this.pm.minimumRebufferDuration&&(this._lastCheckedTime=null,this.pm.emit("rebufferstart",{viewer_time:this._lastPlayheadTimeUpdatedTime}),this.pm.emit("rebufferend",{viewer_time:this._lastPlayheadTimeUpdatedTime+W-J}))}X?this._prepareRebufferTrackerState(Q.viewer_time):this._clearRebufferTrackerState()}}]),Y}(),hB=TB,fB=function(){function Y(Z){var Q=this;Q1(this,Y),u(this,"pm",void 0),this.pm=Z,Z.on("viewinit",function(){var X=Z.data,J=X.view_id;if(!X.view_program_changed){var W=function(q,z){var H=z.viewer_time;q.type==="playing"&&typeof Z.data.view_time_to_first_frame>"u"?Q.calculateTimeToFirstFrame(H||R1.now(),J):q.type==="adplaying"&&(typeof Z.data.view_time_to_first_frame>"u"||Q._inPrerollPosition())&&Q.calculateTimeToFirstFrame(H||R1.now(),J)};Z.one("playing",W),Z.one("adplaying",W),Z.one("viewend",function(){Z.off("playing",W),Z.off("adplaying",W)})}})}return N8(Y,[{key:"_inPrerollPosition",value:function(){return typeof this.pm.data.view_content_playback_time>"u"||this.pm.data.view_content_playback_time<=1000}},{key:"calculateTimeToFirstFrame",value:function(Z,Q){Q===this.pm.data.view_id&&(this.pm.watchTimeTracker._updateWatchTime(null,{viewer_time:Z}),this.pm.data.view_time_to_first_frame=this.pm.data.view_watch_time,(this.pm.data.player_autoplay_on||this.pm.data.video_is_autoplay)&&this.pm.pageLoadInitTime&&(this.pm.data.view_aggregate_startup_time=this.pm.data.view_start+this.pm.data.view_watch_time-this.pm.pageLoadInitTime))}}]),Y}(),yB=fB,kB=function Y(Z){var Q=this;Q1(this,Y),u(this,"_lastPlayerHeight",void 0),u(this,"_lastPlayerWidth",void 0),u(this,"_lastPlayheadPosition",void 0),u(this,"_lastSourceHeight",void 0),u(this,"_lastSourceWidth",void 0),Z.on("viewinit",function(){Q._lastPlayheadPosition=-1});var X=["pause","rebufferstart","seeking","error","adbreakstart","hb","renditionchange","orientationchange","viewend","playbackmodechange"],J=["playing","hb","renditionchange","orientationchange","playbackmodechange"];X.forEach(function(W){Z.on(W,function(){if(Q._lastPlayheadPosition>=0&&Z.data.player_playhead_time>=0&&Q._lastPlayerWidth>=0&&Q._lastSourceWidth>0&&Q._lastPlayerHeight>=0&&Q._lastSourceHeight>0){var q=Z.data.player_playhead_time-Q._lastPlayheadPosition;if(q<0){Q._lastPlayheadPosition=-1;return}var z=Math.min(Q._lastPlayerWidth/Q._lastSourceWidth,Q._lastPlayerHeight/Q._lastSourceHeight),H=Math.max(0,z-1),E=Math.max(0,1-z);Z.data.view_max_upscale_percentage=Math.max(Z.data.view_max_upscale_percentage||0,H),Z.data.view_max_downscale_percentage=Math.max(Z.data.view_max_downscale_percentage||0,E),E1(Z.data,"view_total_content_playback_time",q),E1(Z.data,"view_total_upscaling",H*q),E1(Z.data,"view_total_downscaling",E*q)}Q._lastPlayheadPosition=-1})}),J.forEach(function(W){Z.on(W,function(){Q._lastPlayheadPosition=Z.data.player_playhead_time,Q._lastPlayerWidth=Z.data.player_width,Q._lastPlayerHeight=Z.data.player_height,Q._lastSourceWidth=Z.data.video_source_width,Q._lastSourceHeight=Z.data.video_source_height})})},gB=kB,bB=2000,_B=function Y(Z){var Q=this;Q1(this,Y),u(this,"isSeeking",void 0),this.isSeeking=!1;var X=-1,J=function(){var W=R1.now(),q=(Z.data.viewer_time||W)-(X||W);E1(Z.data,"view_seek_duration",q),Z.data.view_max_seek_time=Math.max(Z.data.view_max_seek_time||0,q),Q.isSeeking=!1,X=-1};Z.on("seeking",function(W,q){if(Object.assign(Z.data,q),Q.isSeeking&&q.viewer_time-X<=bB){X=q.viewer_time;return}Q.isSeeking&&J(),Q.isSeeking=!0,X=q.viewer_time,E1(Z.data,"view_seek_count",1),Z.send("seeking")}),Z.on("seeked",function(){J()}),Z.on("viewend",function(){Q.isSeeking&&(J(),Z.send("seeked")),Q.isSeeking=!1,X=-1})},vB=_B,lz=function(Y,Z){Y.push(Z),Y.sort(function(Q,X){return Q.viewer_time-X.viewer_time})},pB=["adbreakstart","adrequest","adresponse","adplay","adplaying","adpause","adended","adbreakend","aderror","adclicked","adskipped"],cB=function(){function Y(Z){var Q=this;Q1(this,Y),u(this,"_adHasPlayed",void 0),u(this,"_adRequests",void 0),u(this,"_adResponses",void 0),u(this,"_currentAdRequestNumber",void 0),u(this,"_currentAdResponseNumber",void 0),u(this,"_prerollPlayTime",void 0),u(this,"_wouldBeNewAdPlay",void 0),u(this,"isAdBreak",void 0),u(this,"pm",void 0),this.pm=Z,Z.on("viewinit",function(){Q.isAdBreak=!1,Q._currentAdRequestNumber=0,Q._currentAdResponseNumber=0,Q._adRequests=[],Q._adResponses=[],Q._adHasPlayed=!1,Q._wouldBeNewAdPlay=!0,Q._prerollPlayTime=void 0}),pB.forEach(function(J){return Z.on(J,Q._updateAdData.bind(Q))});var X=function(){Q.isAdBreak=!1};Z.on("adbreakstart",function(){Q.isAdBreak=!0}),Z.on("play",X),Z.on("playing",X),Z.on("viewend",X),Z.on("adrequest",function(J,W){W=Object.assign({ad_request_id:"generatedAdRequestId"+Q._currentAdRequestNumber++},W),lz(Q._adRequests,W),E1(Z.data,"view_ad_request_count"),Q.inPrerollPosition()&&(Z.data.view_preroll_requested=!0,Q._adHasPlayed||E1(Z.data,"view_preroll_request_count"))}),Z.on("adresponse",function(J,W){W=Object.assign({ad_request_id:"generatedAdRequestId"+Q._currentAdResponseNumber++},W),lz(Q._adResponses,W);var q=Q.findAdRequest(W.ad_request_id);q&&E1(Z.data,"view_ad_request_time",Math.max(0,W.viewer_time-q.viewer_time))}),Z.on("adplay",function(J,W){Q._adHasPlayed=!0,Q._wouldBeNewAdPlay&&(Q._wouldBeNewAdPlay=!1,E1(Z.data,"view_ad_played_count")),Q.inPrerollPosition()&&!Z.data.view_preroll_played&&(Z.data.view_preroll_played=!0,Q._adRequests.length>0&&(Z.data.view_preroll_request_time=Math.max(0,W.viewer_time-Q._adRequests[0].viewer_time)),Z.data.view_start&&(Z.data.view_startup_preroll_request_time=Math.max(0,W.viewer_time-Z.data.view_start)),Q._prerollPlayTime=W.viewer_time)}),Z.on("adplaying",function(J,W){Q.inPrerollPosition()&&typeof Z.data.view_preroll_load_time>"u"&&typeof Q._prerollPlayTime<"u"&&(Z.data.view_preroll_load_time=W.viewer_time-Q._prerollPlayTime,Z.data.view_startup_preroll_load_time=W.viewer_time-Q._prerollPlayTime)}),Z.on("adclicked",function(J,W){Q._wouldBeNewAdPlay||E1(Z.data,"view_ad_clicked_count")}),Z.on("adskipped",function(J,W){Q._wouldBeNewAdPlay||E1(Z.data,"view_ad_skipped_count")}),Z.on("adended",function(){Q._wouldBeNewAdPlay=!0}),Z.on("aderror",function(){Q._wouldBeNewAdPlay=!0})}return N8(Y,[{key:"inPrerollPosition",value:function(){return typeof this.pm.data.view_content_playback_time>"u"||this.pm.data.view_content_playback_time<=1000}},{key:"findAdRequest",value:function(Z){for(var Q=0;Q30000&&(Z.emit("devicesleep",{viewer_time:z}),Object.assign(Z.data,{viewer_time:z}),Z.send("devicesleep"),Z.emit("devicewake",{viewer_time:q}),Object.assign(Z.data,{viewer_time:q}),Z.send("devicewake"))};Z.one("playbackheartbeat",X),Z.on("playbackheartbeatend",function(){Z.off("before*",J),Z.one("playbackheartbeat",X)})},oB=mB,GW=Z8(S8()),E3=function(Y){return Y()}(function(){var Y=function(){for(var Q=0,X={};Q1){if(q=Y({path:"/"},X.defaults,q),typeof q.expires=="number"){var H=new Date;H.setMilliseconds(H.getMilliseconds()+q.expires*86400000),q.expires=H}try{z=JSON.stringify(W),/^[\{\[]/.test(z)&&(W=z)}catch(R){}return Q.write?W=Q.write(W,J):W=encodeURIComponent(String(W)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),J=encodeURIComponent(String(J)),J=J.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),J=J.replace(/[\(\)]/g,escape),document.cookie=[J,"=",W,q.expires?"; expires="+q.expires.toUTCString():"",q.path?"; path="+q.path:"",q.domain?"; domain="+q.domain:"",q.secure?"; secure":""].join("")}J||(z={});for(var E=document.cookie?document.cookie.split("; "):[],K=/(%[0-9A-Z]{2})+/g,G=0;G1&&arguments[1]!==void 0?arguments[1]:{};this._beaconUrl=Y||WN,this._eventQueue=[],this._postInFlight=!1,this._resendAfterPost=!1,this._failureCount=0,this._sendTimeout=!1,this._options=Object.assign({},QN,Z)};K6.prototype.queueEvent=function(Y,Z){var Q=Object.assign({},Z);return this._eventQueue.length<=this._options.maxQueueLength||Y==="eventrateexceeded"?(this._eventQueue.push(Q),this._sendTimeout||this._startBeaconSending(),this._eventQueue.length<=this._options.maxQueueLength):!1};K6.prototype.flushEvents=function(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(Y&&this._eventQueue.length===1){this._eventQueue.pop();return}this._eventQueue.length&&this._sendBeaconQueue(),this._startBeaconSending()};K6.prototype.destroy=function(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.destroyed=!0,Y?this._clearBeaconQueue():this.flushEvents(),U7.default.clearTimeout(this._sendTimeout)};K6.prototype._clearBeaconQueue=function(){var Y=this._eventQueue.length>this._options.maxBeaconSize?this._eventQueue.length-this._options.maxBeaconSize:0,Z=this._eventQueue.slice(Y);Y>0&&Object.assign(Z[Z.length-1],NW({mux_view_message:"event queue truncated"}));var Q=this._createPayload(Z);B3(this._beaconUrl,Q,!0,function(){})};K6.prototype._sendBeaconQueue=function(){var Y=this;if(this._postInFlight){this._resendAfterPost=!0;return}var Z=this._eventQueue.slice(0,this._options.maxBeaconSize);this._eventQueue=this._eventQueue.slice(this._options.maxBeaconSize),this._postInFlight=!0;var Q=this._createPayload(Z),X=R1.now();B3(this._beaconUrl,Q,!1,function(J,W){W?(Y._eventQueue=Z.concat(Y._eventQueue),Y._failureCount+=1,g0.info("Error sending beacon: "+W)):Y._failureCount=0,Y._roundTripTime=R1.now()-X,Y._postInFlight=!1,Y._resendAfterPost&&(Y._resendAfterPost=!1,Y._eventQueue.length>0&&Y._sendBeaconQueue())})};K6.prototype._getNextBeaconTime=function(){if(!this._failureCount)return this._options.baseTimeBetweenBeacons;var Y=Math.pow(2,this._failureCount-1);return Y=Y*Math.random(),(1+Y)*this._options.baseTimeBetweenBeacons};K6.prototype._startBeaconSending=function(){var Y=this;U7.default.clearTimeout(this._sendTimeout),!this.destroyed&&(this._sendTimeout=U7.default.setTimeout(function(){Y._eventQueue.length&&Y._sendBeaconQueue(),Y._startBeaconSending()},this._getNextBeaconTime()))};K6.prototype._createPayload=function(Y){var Z=this,Q={transmission_timestamp:Math.round(R1.now())};this._roundTripTime&&(Q.rtt_ms=Math.round(this._roundTripTime));var X,J,W,q=function(){X=JSON.stringify({metadata:Q,events:J||Y}),W=X.length/1024},z=function(){return W<=Z._options.maxPayloadKBSize};return q(),z()||(g0.info("Payload size is too big ("+W+" kb). Removing unnecessary events."),J=Y.filter(function(H){return JN.indexOf(H.e)===-1}),q()),z()||(g0.info("Payload size still too big ("+W+" kb). Cropping fields.."),J.forEach(function(H){for(var E in H){var K=H[E],G=51200;typeof K=="string"&&K.length>G&&(H[E]=K.substring(0,G))}}),q()),X};var qN=typeof ZN.default.exitPictureInPicture=="function"?function(Y){return Y.length<=XN}:function(Y){return!1},B3=function(Y,Z,Q,X){if(Q&&navigator&&navigator.sendBeacon&&navigator.sendBeacon(Y,Z)){X();return}if(U7.default.fetch){U7.default.fetch(Y,{method:"POST",body:Z,headers:{"Content-Type":"text/plain"},keepalive:qN(Z)}).then(function(W){return X(null,W.ok?null:"Error")}).catch(function(W){return X(null,W)});return}if(U7.default.XMLHttpRequest){var J=new U7.default.XMLHttpRequest;J.onreadystatechange=function(){if(J.readyState===4)return X(null,J.status!==200?"error":void 0)},J.open("POST",Y),J.setRequestHeader("Content-Type","text/plain"),J.send(Z);return}X()},HN=K6,zN=["env_key","view_id","view_sequence_number","player_sequence_number","beacon_domain","player_playhead_time","viewer_time","mux_api_version","event","video_id","player_instance_id","player_error_code","player_error_message","player_error_context","player_error_severity","player_error_business_exception","view_playing_time_ms_cumulative","ad_playing_time_ms_cumulative"],EN=["adplay","adplaying","adpause","adfirstquartile","admidpoint","adthirdquartile","adended","adresponse","adrequest"],KN=["ad_id","ad_creative_id","ad_universal_id"],GN=["viewstart","error","ended","viewend"],VN=600000,UN=function(){function Y(Z,Q){var X=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Q1(this,Y);var J,W,q,z,H,E,K,G,U,V,F,R;u(this,"mux",void 0),u(this,"envKey",void 0),u(this,"options",void 0),u(this,"eventQueue",void 0),u(this,"sampleRate",void 0),u(this,"disableCookies",void 0),u(this,"respectDoNotTrack",void 0),u(this,"previousBeaconData",void 0),u(this,"lastEventTime",void 0),u(this,"rateLimited",void 0),u(this,"pageLevelData",void 0),u(this,"viewerData",void 0),this.mux=Z,this.envKey=Q,this.options=X,this.previousBeaconData=null,this.lastEventTime=0,this.rateLimited=!1,this.eventQueue=new HN(iB(this.envKey,this.options));var B;this.sampleRate=(B=this.options.sampleRate)!==null&&B!==void 0?B:1;var $;this.disableCookies=($=this.options.disableCookies)!==null&&$!==void 0?$:!1;var L;this.respectDoNotTrack=(L=this.options.respectDoNotTrack)!==null&&L!==void 0?L:!1,this.previousBeaconData=null,this.lastEventTime=0,this.rateLimited=!1,this.pageLevelData={mux_api_version:this.mux.API_VERSION,mux_embed:this.mux.NAME,mux_embed_version:this.mux.VERSION,viewer_application_name:(J=this.options.platform)===null||J===void 0?void 0:J.name,viewer_application_version:(W=this.options.platform)===null||W===void 0?void 0:W.version,viewer_application_engine:(q=this.options.platform)===null||q===void 0?void 0:q.layout,viewer_device_name:(z=this.options.platform)===null||z===void 0?void 0:z.product,viewer_device_category:"",viewer_device_manufacturer:(H=this.options.platform)===null||H===void 0?void 0:H.manufacturer,viewer_os_family:(K=this.options.platform)===null||K===void 0||(E=K.os)===null||E===void 0?void 0:E.family,viewer_os_architecture:(U=this.options.platform)===null||U===void 0||(G=U.os)===null||G===void 0?void 0:G.architecture,viewer_os_version:(F=this.options.platform)===null||F===void 0||(V=F.os)===null||V===void 0?void 0:V.version,viewer_connection_type:aB(),page_url:GW.default===null||GW.default===void 0||(R=GW.default.location)===null||R===void 0?void 0:R.href},this.viewerData=this.disableCookies?{}:nB()}return N8(Y,[{key:"send",value:function(Z,Q){if(!(!Z||!(Q!=null&&Q.view_id))){if(this.respectDoNotTrack&&RW())return g0.info("Not sending `"+Z+"` because Do Not Track is enabled");if(!Q||typeof Q!="object")return g0.error("A data object was expected in send() but was not provided");var X=this.disableCookies?{}:sB(),J=$W(E2({},this.pageLevelData,Q,X,this.viewerData),{event:Z,env_key:this.envKey});J.user_id&&(J.viewer_user_id=J.user_id,delete J.user_id);var W,q=((W=J.mux_sample_number)!==null&&W!==void 0?W:0)>=this.sampleRate,z=this._deduplicateBeaconData(Z,J),H=NW(z);if(this.lastEventTime=this.mux.utils.now(),q)return g0.info("Not sending event due to sample rate restriction",Z,J,H);if(this.envKey||g0.info("Missing environment key (envKey) - beacons will be dropped if the video source is not a valid mux video URL",Z,J,H),!this.rateLimited)if(g0.info("Sending event",Z,J,H),this.rateLimited=!this.eventQueue.queueEvent(Z,H),this.mux.WINDOW_UNLOADING&&Z==="viewend")this.eventQueue.destroy(!0);else{if(this.mux.WINDOW_HIDDEN&&Z==="hb")this.eventQueue.flushEvents(!0);else if(GN.indexOf(Z)>=0){if(Z==="error"&&Q.player_error_severity==="warning")return;this.eventQueue.flushEvents()}if(this.rateLimited)return J.event="eventrateexceeded",H=NW(J),this.eventQueue.queueEvent(J.event,H),g0.error("Beaconing disabled due to rate limit.")}}}},{key:"destroy",value:function(){this.eventQueue.destroy(!1)}},{key:"_deduplicateBeaconData",value:function(Z,Q){var X=this,J={},W=Q.view_id;if(W==="-1"||Z==="viewstart"||Z==="viewend"||!this.previousBeaconData||this.mux.utils.now()-this.lastEventTime>=VN)J=E2({},Q),W&&(this.previousBeaconData=J),W&&Z==="viewend"&&(this.previousBeaconData=null);else{var q=Z.indexOf("request")===0;Object.entries(Q).forEach(function(z){var H=E6(z,2),E=H[0],K=H[1];X.previousBeaconData&&(K!==X.previousBeaconData[E]||zN.indexOf(E)>-1||X.objectHasChanged(q,E,K,X.previousBeaconData[E])||X.eventRequiresKey(Z,E))&&(J[E]=K,X.previousBeaconData[E]=K)})}return J}},{key:"objectHasChanged",value:function(Z,Q,X,J){return!Z||Q.indexOf("request_")!==0?!1:Q==="request_response_headers"||typeof X!="object"||typeof J!="object"?!0:Object.keys(X||{}).length!==Object.keys(J||{}).length}},{key:"eventRequiresKey",value:function(Z,Q){return!!(Z==="renditionchange"&&Q.indexOf("video_source_")===0||KN.includes(Q)&&EN.includes(Z))}}]),Y}(),FN=function Y(Z){Q1(this,Y);var Q=0,X=0,J=0,W=0,q=0,z=0,H=0,E=function(U,V){var{request_start:F,request_response_start:R,request_response_end:B,request_bytes_loaded:$}=V;W++;var L,O;if(R?(L=R-(F!=null?F:0),O=(B!=null?B:0)-R):O=(B!=null?B:0)-(F!=null?F:0),O>0&&$&&$>0){var j=$/O*8000;q++,X+=$,J+=O,Z.data.view_min_request_throughput=Math.min(Z.data.view_min_request_throughput||1/0,j),Z.data.view_average_request_throughput=X/J*8000,Z.data.view_request_count=W,L>0&&(Q+=L,Z.data.view_max_request_latency=Math.max(Z.data.view_max_request_latency||0,L),Z.data.view_average_request_latency=Q/q)}},K=function(U,V){W++,z++,Z.data.view_request_count=W,Z.data.view_request_failed_count=z},G=function(U,V){W++,H++,Z.data.view_request_count=W,Z.data.view_request_canceled_count=H};Z.on("requestcompleted",E),Z.on("requestfailed",K),Z.on("requestcanceled",G)},RN=FN,BN=3600000,NN=function Y(Z){var Q=this;Q1(this,Y),u(this,"_lastEventTime",void 0),Z.on("before*",function(X,J){var W=J.viewer_time,q=R1.now(),z=Q._lastEventTime;if(Q._lastEventTime=q,z&&q-z>BN){var H=Object.keys(Z.data).reduce(function(K,G){return G.indexOf("video_")===0?Object.assign(K,u({},G,Z.data[G])):K},{});Z.mux.log.info("Received event after at least an hour inactivity, creating a new view");var E=Z.playbackHeartbeat._playheadShouldBeProgressing;Z._resetView(Object.assign({viewer_time:W},H)),Z.playbackHeartbeat._playheadShouldBeProgressing=E,Z.playbackHeartbeat._playheadShouldBeProgressing&&X.type!=="play"&&X.type!=="adbreakstart"&&(Z.emit("play",{viewer_time:W}),X.type!=="playing"&&Z.emit("playing",{viewer_time:W}))}})},$N=NN,LN=function Y(Z){Q1(this,Y);var Q=function(z){var H=ON(z),E=jN(z);if(H!=null&&!sz(H,W)&&q<=E){W=H,q=E;var K={video_cdn:H};Z.emit("cdnchange",K)}},X=null,J=null,W=null,q=0;Z.on("viewinit",function(){X=null,J=null,W=null,q=0}),Z.on("beforecdnchange",function(z,H){var E=H==null?void 0:H.video_cdn;E&&(typeof H.video_previous_cdn>"u"||H.video_previous_cdn===null)&&(sz(E,J)?H.video_previous_cdn=X!=null?X:void 0:(H.video_previous_cdn=J!=null?J:void 0,X=J,J=E))}),Z.on("requestcompleted",function(z,H){Q(H)})};function sz(Y,Z){return(Y==null?void 0:Y.toLowerCase())===(Z==null?void 0:Z.toLowerCase())}function ON(Y){var Z;return Y!=null&&Y.request_type&&(Y.request_type==="media"||Y.request_type==="video")&&(!((Z=Y.request_response_headers)===null||Z===void 0)&&Z["x-cdn"])?Y.request_response_headers["x-cdn"]:Y!=null&&Y.video_cdn?Y.video_cdn:null}function jN(Y){return Y!=null&&Y.request_start?Y.request_start:Y!=null&&Y.viewer_time?Y.viewer_time:Date.now()}var AN=LN,DN=function(Y){try{return JSON.parse(Y),!0}catch(Z){return!1}},wN=function Y(Z){var Q=this;Q1(this,Y),u(this,"_emittingAutomaticEvent",!1),u(this,"_hasInitialized",!1),u(this,"_currentMode","standard"),Z.on("viewstart",function(){Q._hasInitialized||(Q._hasInitialized=!0,Q._currentMode=Z.data.player_playback_mode||"standard",Q._emittingAutomaticEvent=!0,Z.emit("playbackmodechange",{player_playback_mode:Q._currentMode,player_playback_mode_data:"{}"}),Q._emittingAutomaticEvent=!1)}),Z.on("viewend",function(){Q._hasInitialized=!1}),Z.on("playbackmodechange",function(X,J){Q._emittingAutomaticEvent||(J.player_playback_mode_data?DN(J.player_playback_mode_data)||(Z.mux.log.warn("Invalid JSON string for player_playback_mode_data"),J.player_playback_mode_data="{}"):J.player_playback_mode_data="{}",Z.data.player_playback_mode_data=J.player_playback_mode_data,Z.data.player_playback_mode=J.player_playback_mode,Q._currentMode=J.player_playback_mode)})},PN=wN,CN=function(){function Y(Z){Q1(this,Y),u(this,"pm",void 0),u(this,"_currentRangeStart",void 0),u(this,"_lastPlayheadTime",void 0),this.pm=Z,this._currentRangeStart=null,this._lastPlayheadTime=null,Z.on("playbackheartbeat",this._updatePlaybackRange.bind(this)),Z.on("playbackheartbeatend",this._endPlaybackRange.bind(this))}return N8(Y,[{key:"_updateLastRangeEnd",value:function(){var Z=this.pm.data.video_playback_ranges;if(Z&&Z.length>0){var Q=this.pm.data.player_playhead_time||0;Z[Z.length-1][1]=Q}}},{key:"_updatePlaybackRange",value:function(){var Z,Q=this.pm.data.player_playhead_time||0;if(!(!this.pm.disableAdPlaybackRangeFiltering&&(!((Z=this.pm.adTracker)===null||Z===void 0)&&Z.isAdBreak)&&this._lastPlayheadTime!==null&&Q1000){var J=this.pm.data.video_playback_ranges;J&&J.length>0&&(J[J.length-1][1]=this._lastPlayheadTime),this._currentRangeStart=null}}if(this._currentRangeStart===null){var W=this.pm.data.video_playback_ranges||[];W.length>0&&W[W.length-1][1]===Q?this._currentRangeStart=W[W.length-1][0]:(this._currentRangeStart=Q,W.push([Q,Q])),this.pm.data.video_playback_ranges=W}else this._updateLastRangeEnd();this._lastPlayheadTime=Q}}},{key:"_endPlaybackRange",value:function(){this._currentRangeStart!==null&&(this._updateLastRangeEnd(),this._currentRangeStart=null,this._lastPlayheadTime=null)}}]),Y}(),MN=CN,xN=["viewstart","ended","loadstart","pause","play","playing","ratechange","waiting","adplay","adpause","adended","aderror","adplaying","adrequest","adresponse","adbreakstart","adbreakend","adfirstquartile","admidpoint","adthirdquartile","rebufferstart","rebufferend","seeked","error","hb","requestcompleted","requestfailed","requestcanceled","renditionchange","cdnchange","playbackmodechange"],IN=new Set(["requestcompleted","requestfailed","requestcanceled"]),SN=function(Y){eR(Q,Y);var Z=JB(Q);function Q(X,J,W){Q1(this,Q);var q;q=Z.call(this),u(z0(q),"pageLoadEndTime",void 0),u(z0(q),"pageLoadInitTime",void 0),u(z0(q),"_destroyed",void 0),u(z0(q),"_heartBeatTimeout",void 0),u(z0(q),"adTracker",void 0),u(z0(q),"dashjs",void 0),u(z0(q),"data",void 0),u(z0(q),"disablePlayheadRebufferTracking",void 0),u(z0(q),"disableRebufferTracking",void 0),u(z0(q),"disableAdPlaybackRangeFiltering",void 0),u(z0(q),"errorTracker",void 0),u(z0(q),"errorTranslator",void 0),u(z0(q),"emitTranslator",void 0),u(z0(q),"getAdData",void 0),u(z0(q),"getPlayheadTime",void 0),u(z0(q),"getStateData",void 0),u(z0(q),"stateDataTranslator",void 0),u(z0(q),"hlsjs",void 0),u(z0(q),"id",void 0),u(z0(q),"longResumeTracker",void 0),u(z0(q),"minimumRebufferDuration",void 0),u(z0(q),"mux",void 0),u(z0(q),"playbackEventDispatcher",void 0),u(z0(q),"playbackHeartbeat",void 0),u(z0(q),"playbackHeartbeatTime",void 0),u(z0(q),"playheadTime",void 0),u(z0(q),"seekingTracker",void 0),u(z0(q),"sustainedRebufferThreshold",void 0),u(z0(q),"watchTimeTracker",void 0),u(z0(q),"currentFragmentPDT",void 0),u(z0(q),"currentFragmentStart",void 0),q.pageLoadInitTime=z2.navigationStart(),q.pageLoadEndTime=z2.domContentLoadedEventEnd();var z={debug:!1,minimumRebufferDuration:250,sustainedRebufferThreshold:1000,playbackHeartbeatTime:25,beaconDomain:"litix.io",sampleRate:1,disableCookies:!1,respectDoNotTrack:!1,disableRebufferTracking:!1,disablePlayheadRebufferTracking:!1,disableAdPlaybackRangeFiltering:!1,errorTranslator:function(U){return U},emitTranslator:function(){for(var U=arguments.length,V=Array(U),F=0;F"u"&&(this.data.view_start=this.mux.utils.now(),this.emit("viewstart"),this.emit("renditionchange"))}.bind(z0(q));if(q.on("viewinit",function(U,V){this._resetVideoData(),this._resetViewData(),this._resetErrorData(),this._updateStateData(),Object.assign(this.data,V),this._initializeViewData(),this.one("play",H),this.one("adbreakstart",H)}),q.on("videochange",function(U,V){this._resetView(V)}),q.on("programchange",function(U,V){this.data.player_is_paused&&this.mux.log.warn("The `programchange` event is intended to be used when the content changes mid playback without the video source changing, however the video is not currently playing. If the video source is changing please use the videochange event otherwise you will lose startup time information."),this._resetView(Object.assign(V,{view_program_changed:!0})),H(),this.emit("play"),this.emit("playing")}),q.on("fragmentchange",function(U,V){this.currentFragmentPDT=V.currentFragmentPDT,this.currentFragmentStart=V.currentFragmentStart}),q.on("destroy",q.destroy),typeof window<"u"&&typeof window.addEventListener=="function"&&typeof window.removeEventListener=="function"){var E=function(){var U=typeof q.data.view_start<"u";q.mux.WINDOW_HIDDEN=document.visibilityState==="hidden",U&&q.mux.WINDOW_HIDDEN&&(q.data.player_is_paused||q.emit("hb"))};window.addEventListener("visibilitychange",E,!1);var K=function(U){U.persisted||q.destroy()};window.addEventListener("pagehide",K,!1),q.on("destroy",function(){window.removeEventListener("visibilitychange",E),window.removeEventListener("pagehide",K)})}q.on("playerready",function(U,V){Object.assign(this.data,V)}),xN.forEach(function(U){q.on(U,function(V,F){U.indexOf("ad")!==0&&this._updateStateData(),Object.assign(this.data,F),this._sanitizeData()}),q.on("after"+U,function(){(U!=="error"||this.errorTracker.viewErrored)&&this.send(U)})}),q.on("viewend",function(U,V){Object.assign(q.data,V)});var G=function(U){var V=this.mux.utils.now();this.data.player_init_time&&(this.data.player_startup_time=V-this.data.player_init_time),this.pageLoadInitTime=this.data.page_load_init_time||this.pageLoadInitTime,this.pageLoadEndTime=this.data.page_load_end_time||this.pageLoadEndTime,!this.mux.PLAYER_TRACKED&&this.pageLoadInitTime&&(this.mux.PLAYER_TRACKED=!0,(this.data.player_init_time||this.pageLoadEndTime)&&(this.data.page_load_time=Math.min(this.data.player_init_time||1/0,this.pageLoadEndTime||1/0)-this.pageLoadInitTime)),this.send("playerready"),delete this.data.player_startup_time,delete this.data.page_load_time};return q.one("playerready",G),q.longResumeTracker=new $N(z0(q)),q.errorTracker=new AB(z0(q)),new oB(z0(q)),q.seekingTracker=new vB(z0(q)),q.playheadTime=new xB(z0(q)),q.playbackHeartbeat=new OB(z0(q)),new gB(z0(q)),q.watchTimeTracker=new wB(z0(q)),new CB(z0(q)),new MN(z0(q)),q.adTracker=new uB(z0(q)),new hB(z0(q)),new SB(z0(q)),new yB(z0(q)),new RN(z0(q)),new AN(z0(q)),new PN(z0(q)),W.hlsjs&&q.addHLSJS(W),W.dashjs&&q.addDashJS(W),q.emit("viewinit",W.data),q}return N8(Q,[{key:"emit",value:function(X,J){var W,q=Object.assign({viewer_time:this.mux.utils.now()},J),z=[X,q];if(this.emitTranslator)try{z=this.emitTranslator(X,q)}catch(H){this.mux.log.warn("Exception in emit translator callback.",H)}z!=null&&z.length&&(W=q2(Q9(Q.prototype),"emit",this)).call.apply(W,[this].concat(R8(z)))}},{key:"destroy",value:function(){this._destroyed||(this._destroyed=!0,typeof this.data.view_start<"u"&&(this.emit("viewend"),this.send("viewend")),this.playbackEventDispatcher.destroy(),this.removeHLSJS(),this.removeDashJS(),window.clearTimeout(this._heartBeatTimeout))}},{key:"send",value:function(X){if(this.data.view_id){var J=Object.assign({},this.data),W=["player_program_time","player_manifest_newest_program_time","player_live_edge_program_time","player_program_time","video_holdback","video_part_holdback","video_target_duration","video_part_target_duration"];if(J.video_source_is_live===void 0&&(J.player_source_duration===1/0||J.video_source_duration===1/0?J.video_source_is_live=!0:(J.player_source_duration>0||J.video_source_duration>0)&&(J.video_source_is_live=!1)),J.video_source_is_live||W.forEach(function(E){J[E]=void 0}),J.video_source_url=J.video_source_url||J.player_source_url,J.video_source_url){var q=E6(CY(J.video_source_url),2),z=q[0],H=q[1];J.video_source_domain=H,J.video_source_hostname=z}delete J.ad_request_id,J.video_playback_ranges&&(J.video_playback_range=JSON.stringify(J.video_playback_ranges.filter(function(E){return E[0]!==E[1]}).map(function(E){return"".concat(E[0],":").concat(E[1])})),delete J.video_playback_ranges),this.playbackEventDispatcher.send(X,J),this.data.view_sequence_number++,this.data.player_sequence_number++,IN.has(X)||this._restartHeartBeat(),X==="viewend"&&delete this.data.view_id}}},{key:"_resetView",value:function(X){this.emit("viewend"),this.send("viewend"),this.emit("viewinit",X)}},{key:"_updateStateData",value:function(){var X,J=this.getStateData();if(typeof this.stateDataTranslator=="function")try{J=this.stateDataTranslator(J)}catch(z){this.mux.log.warn("Exception in stateDataTranslator translator callback.",z)}if(!((X=this.data)===null||X===void 0)&&X.video_cdn&&(J!=null&&J.video_cdn)){var W=J.video_cdn,q=ZB(J,["video_cdn"]);J=q}Object.assign(this.data,J),this.playheadTime._updatePlayheadTime(),this._sanitizeData()}},{key:"_sanitizeData",value:function(){var X=this,J=["player_width","player_height","video_source_width","video_source_height","player_playhead_time","video_source_bitrate"];J.forEach(function(q){var z=parseInt(X.data[q],10);X.data[q]=isNaN(z)?void 0:z});var W=["player_source_url","video_source_url"];W.forEach(function(q){if(X.data[q]){var z=X.data[q].toLowerCase();(z.indexOf("data:")===0||z.indexOf("blob:")===0)&&(X.data[q]="MSE style URL")}})}},{key:"_resetVideoData",value:function(){var X=this;Object.keys(this.data).forEach(function(J){J.indexOf("video_")===0&&delete X.data[J]})}},{key:"_resetViewData",value:function(){var X=this;Object.keys(this.data).forEach(function(J){J.indexOf("view_")===0&&delete X.data[J]}),this.data.view_sequence_number=1}},{key:"_resetErrorData",value:function(){delete this.data.player_error_code,delete this.data.player_error_message,delete this.data.player_error_context,delete this.data.player_error_severity,delete this.data.player_error_business_exception}},{key:"_initializeViewData",value:function(){var X=this,J=this.data.view_id=PY(),W=function(){J===X.data.view_id&&E1(X.data,"player_view_count",1)};this.data.player_is_paused?this.one("play",W):W()}},{key:"_restartHeartBeat",value:function(){var X=this;window.clearTimeout(this._heartBeatTimeout),this._heartBeatTimeout=window.setTimeout(function(){X.data.player_is_paused||X.emit("hb")},1e4)}},{key:"addHLSJS",value:function(X){if(!X.hlsjs){this.mux.log.warn("You must pass a valid hlsjs instance in order to track it.");return}if(this.hlsjs){this.mux.log.warn("An instance of HLS.js is already being monitored for this player.");return}this.hlsjs=X.hlsjs,KB(this.mux,this.id,X.hlsjs,{},X.Hls||window.Hls)}},{key:"removeHLSJS",value:function(){this.hlsjs&&(GB(this.hlsjs),this.hlsjs=void 0)}},{key:"addDashJS",value:function(X){if(!X.dashjs){this.mux.log.warn("You must pass a valid dashjs instance in order to track it.");return}if(this.dashjs){this.mux.log.warn("An instance of Dash.js is already being monitored for this player.");return}this.dashjs=X.dashjs,RB(this.mux,this.id,X.dashjs)}},{key:"removeDashJS",value:function(){this.dashjs&&(BB(this.dashjs),this.dashjs=void 0)}}]),Q}($B),TN=SN,AY=Z8(J3());function VW(){return AY.default&&!!(AY.default.fullscreenElement||AY.default.webkitFullscreenElement||AY.default.mozFullScreenElement||AY.default.msFullscreenElement)}var hN=["loadstart","pause","play","playing","seeking","seeked","timeupdate","ratechange","stalled","waiting","error","ended"],fN={1:"MEDIA_ERR_ABORTED",2:"MEDIA_ERR_NETWORK",3:"MEDIA_ERR_DECODE",4:"MEDIA_ERR_SRC_NOT_SUPPORTED"};function yN(Y,Z,Q){var X=E6(H2(Z),3),J=X[0],W=X[1],q=X[2],z=Y.log,H=Y.utils.getComputedStyle,E=Y.utils.secondsToMs,K={automaticErrorTracking:!0};if(J){if(q!=="video"&&q!=="audio")return z.error("The element of `"+W+"` was not a media element.")}else return z.error("No element was found with the `"+W+"` query selector.");J.mux&&(J.mux.destroy(),delete J.mux,z.warn("Already monitoring this video element, replacing existing event listeners"));var G={getPlayheadTime:function(){return E(J.currentTime)},getStateData:function(){var V,F,R,B=((V=(F=this).getPlayheadTime)===null||V===void 0?void 0:V.call(F))||E(J.currentTime),$=this.hlsjs&&this.hlsjs.url,L=this.dashjs&&typeof this.dashjs.getSource=="function"&&this.dashjs.getSource(),O={player_is_paused:J.paused,player_width:parseInt(H(J,"width")),player_height:parseInt(H(J,"height")),player_autoplay_on:J.autoplay,player_preload_on:J.preload,player_language_code:J.lang,player_is_fullscreen:VW(),video_poster_url:J.poster,video_source_url:$||L||J.currentSrc,video_source_duration:E(J.duration),video_source_height:J.videoHeight,video_source_width:J.videoWidth,view_dropped_frame_count:J==null||(R=J.getVideoPlaybackQuality)===null||R===void 0?void 0:R.call(J).droppedVideoFrames};if(J.getStartDate&&B>0){var j=J.getStartDate();if(j&&typeof j.getTime=="function"&&j.getTime()){var w=j.getTime();if(O.player_program_time=w+B,J.seekable.length>0){var D=w+J.seekable.end(J.seekable.length-1);O.player_live_edge_program_time=D}}}return O}};Q=Object.assign(K,Q,G),Q.data=Object.assign({player_software:"HTML5 Video Element",player_mux_plugin_name:"VideoElementMonitor",player_mux_plugin_version:Y.VERSION},Q.data),J.mux=J.mux||{},J.mux.deleted=!1,J.mux.emit=function(V,F){Y.emit(W,V,F)},J.mux.updateData=function(V){J.mux.emit("hb",V)};var U=function(){z.error("The monitor for this video element has already been destroyed.")};J.mux.destroy=function(){Object.keys(J.mux.listeners).forEach(function(V){J.removeEventListener(V,J.mux.listeners[V],!1)}),delete J.mux.listeners,J.mux.fullscreenChangeListener&&(document.removeEventListener("fullscreenchange",J.mux.fullscreenChangeListener,!1),delete J.mux.fullscreenChangeListener),J.mux.destroy=U,J.mux.swapElement=U,J.mux.emit=U,J.mux.addHLSJS=U,J.mux.addDashJS=U,J.mux.removeHLSJS=U,J.mux.removeDashJS=U,J.mux.updateData=U,J.mux.setEmitTranslator=U,J.mux.setStateDataTranslator=U,J.mux.setGetPlayheadTime=U,J.mux.deleted=!0,Y.emit(W,"destroy")},J.mux.swapElement=function(V){var F=E6(H2(V),3),R=F[0],B=F[1],$=F[2];if(R){if($!=="video"&&$!=="audio")return Y.log.error("The element of `"+B+"` was not a media element.")}else return Y.log.error("No element was found with the `"+B+"` query selector.");R.muxId=J.muxId,delete J.muxId,R.mux=R.mux||{},R.mux.listeners=Object.assign({},J.mux.listeners),delete J.mux.listeners,Object.keys(R.mux.listeners).forEach(function(L){J.removeEventListener(L,R.mux.listeners[L],!1),R.addEventListener(L,R.mux.listeners[L],!1)}),R.mux.fullscreenChangeListener=J.mux.fullscreenChangeListener,delete J.mux.fullscreenChangeListener,R.mux.swapElement=J.mux.swapElement,R.mux.destroy=J.mux.destroy,delete J.mux,J=R},J.mux.addHLSJS=function(V){Y.addHLSJS(W,V)},J.mux.addDashJS=function(V){Y.addDashJS(W,V)},J.mux.removeHLSJS=function(){Y.removeHLSJS(W)},J.mux.removeDashJS=function(){Y.removeDashJS(W)},J.mux.setEmitTranslator=function(V){Y.setEmitTranslator(W,V)},J.mux.setStateDataTranslator=function(V){Y.setStateDataTranslator(W,V)},J.mux.setGetPlayheadTime=function(V){V||(V=Q.getPlayheadTime),Y.setGetPlayheadTime(W,V)},Y.init(W,Q),Y.emit(W,"playerready"),J.paused||(Y.emit(W,"play"),J.readyState>2&&Y.emit(W,"playing")),J.mux.listeners={},hN.forEach(function(V){V==="error"&&!Q.automaticErrorTracking||(J.mux.listeners[V]=function(){var F={};if(V==="error"){if(!J.error||J.error.code===1)return;F.player_error_code=J.error.code,F.player_error_message=fN[J.error.code]||J.error.message}Y.emit(W,V,F)},J.addEventListener(V,J.mux.listeners[V],!1))}),J.mux.listeners.enterpictureinpicture=function(){Y.emit(W,"playbackmodechange",{player_playback_mode:"pip",player_playback_mode_data:"{}"})},J.mux.listeners.leavepictureinpicture=function(){var V=VW()?"fullscreen":"standard";Y.emit(W,"playbackmodechange",{player_playback_mode:V,player_playback_mode_data:"{}"})},J.addEventListener("enterpictureinpicture",J.mux.listeners.enterpictureinpicture,!1),J.addEventListener("leavepictureinpicture",J.mux.listeners.leavepictureinpicture,!1),J.mux.fullscreenChangeListener=function(){var V=VW(),F=document.fullscreenElement;if(V&&(F===J||F!=null&&F.contains(J)))Y.emit(W,"playbackmodechange",{player_playback_mode:"fullscreen",player_playback_mode_data:"{}"});else if(!V){var R=document.pictureInPictureElement===J,B=R?"pip":"standard";Y.emit(W,"playbackmodechange",{player_playback_mode:B,player_playback_mode_data:"{}"})}},document.addEventListener("fullscreenchange",J.mux.fullscreenChangeListener,!1)}function kN(Y,Z,Q,X){var J=X;if(Y&&typeof Y[Z]=="function")try{J=Y[Z].apply(Y,Q)}catch(W){g0.info("safeCall error",W)}return J}var wY=Z8(S8()),Z9;wY.default&&wY.default.WeakMap&&(Z9=new WeakMap);function gN(Y,Z){if(!Y||!Z||!wY.default||typeof wY.default.getComputedStyle!="function")return"";var Q;return Z9&&Z9.has(Y)&&(Q=Z9.get(Y)),Q||(Q=wY.default.getComputedStyle(Y,null),Z9&&Z9.set(Y,Q)),Q.getPropertyValue(Z)}function bN(Y){return Math.floor(Y*1000)}var G7={TARGET_DURATION:"#EXT-X-TARGETDURATION",PART_INF:"#EXT-X-PART-INF",SERVER_CONTROL:"#EXT-X-SERVER-CONTROL",INF:"#EXTINF",PROGRAM_DATE_TIME:"#EXT-X-PROGRAM-DATE-TIME",VERSION:"#EXT-X-VERSION",SESSION_DATA:"#EXT-X-SESSION-DATA"},G2=function(Y){return this.buffer="",this.manifest={segments:[],serverControl:{},sessionData:{}},this.currentUri={},this.process(Y),this.manifest};G2.prototype.process=function(Y){var Z;for(this.buffer+=Y,Z=this.buffer.indexOf(` `);Z>-1;Z=this.buffer.indexOf(` `))this.processLine(this.buffer.substring(0,Z)),this.buffer=this.buffer.substring(Z+1)};G2.prototype.processLine=function(Y){var Z=Y.indexOf(":"),Q=cN(Y,Z),X=Q[0],J=Q.length===2?OW(Q[1]):void 0;if(X[0]!=="#")this.currentUri.uri=X,this.manifest.segments.push(this.currentUri),this.manifest.targetDuration&&!("duration"in this.currentUri)&&(this.currentUri.duration=this.manifest.targetDuration),this.currentUri={};else switch(X){case G7.TARGET_DURATION:{if(!isFinite(J)||J<0)return;this.manifest.targetDuration=J,this.setHoldBack();break}case G7.PART_INF:{UW(this.manifest,Q),this.manifest.partInf.partTarget&&(this.manifest.partTargetDuration=this.manifest.partInf.partTarget),this.setHoldBack();break}case G7.SERVER_CONTROL:{UW(this.manifest,Q),this.setHoldBack();break}case G7.INF:{J===0?this.currentUri.duration=0.01:J>0&&(this.currentUri.duration=J);break}case G7.PROGRAM_DATE_TIME:{var W=J,q=new Date(W);this.manifest.dateTimeString||(this.manifest.dateTimeString=W,this.manifest.dateTimeObject=q),this.currentUri.dateTimeString=W,this.currentUri.dateTimeObject=q;break}case G7.VERSION:{UW(this.manifest,Q);break}case G7.SESSION_DATA:{var z=uN(Q[1]),H=z3(z);Object.assign(this.manifest.sessionData,H)}}};G2.prototype.setHoldBack=function(){var Y=this.manifest,Z=Y.serverControl,Q=Y.targetDuration,X=Y.partTargetDuration;if(Z){var J="holdBack",W="partHoldBack",q=Q&&Q*3,z=X&&X*2;Q&&!Z.hasOwnProperty(J)&&(Z[J]=q),q&&Z[J]1){var X=N3(Q[0]);Z[X]=OW(Q[1])}return Z},vN=function(Y){for(var Z=Y.split(","),Q={},X=0;Z.length>X;X++){var J=Z[X],W=_N(J);Q=Object.assign(W,Q)}return Q},pN=function(Y){return Y.indexOf("=")>-1},cN=function(Y,Z){return Z===-1?[Y]:[Y.substring(0,Z),Y.substring(Z+1)]},uN=function(Y){var Z={};if(Y){var Q=Y.search(","),X=Y.slice(0,Q),J=Y.slice(Q+1),W=[X,J];return W.forEach(function(q,z){for(var H=q.replace(/['"]+/g,"").split("="),E=0;E=this.minWeight_}getEstimate(){if(this.canEstimate())return Math.min(this.fast_.getEstimate(),this.slow_.getEstimate());else return this.defaultEstimate_}getEstimateTTFB(){if(this.ttfb_.getTotalWeight()>=this.minWeight_)return this.ttfb_.getEstimate();else return this.defaultTTFB_}get defaultEstimate(){return this.defaultEstimate_}destroy(){}}function Y$(Y,Z,Q){return(Z=Q$(Z))in Y?Object.defineProperty(Y,Z,{value:Q,enumerable:!0,configurable:!0,writable:!0}):Y[Z]=Q,Y}function h0(){return h0=Object.assign?Object.assign.bind():function(Y){for(var Z=1;Z`):y6}function L3(Y,Z,Q){return Z[Y]?Z[Y].bind(Z):J$(Y,Q)}var oW=mW();function W$(Y,Z,Q){let X=mW();if(typeof console==="object"&&Y===!0||typeof Y==="object"){let J=["debug","log","info","warn","error"];J.forEach((W)=>{X[W]=L3(W,Y,Q)});try{X.log(`Debug logs enabled for "${Z}" in hls.js version 1.6.15`)}catch(W){return mW()}J.forEach((W)=>{oW[W]=L3(W,Y)})}else h0(oW,X);return X}var S0=oW;function b6(Y=!0){if(typeof self>"u")return;return(Y||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}function q$(Y){return typeof self<"u"&&Y===self.ManagedMediaSource}function T5(Y,Z){let Q=Object.keys(Y),X=Object.keys(Z),J=Q.length,W=X.length;return!J||!W||J===W&&!Q.some((q)=>X.indexOf(q)===-1)}function o1(Y,Z=!1){if(typeof TextDecoder<"u"){let E=new TextDecoder("utf-8").decode(Y);if(Z){let K=E.indexOf("\x00");return K!==-1?E.substring(0,K):E}return E.replace(/\0/g,"")}let Q=Y.length,X,J,W,q="",z=0;while(z>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:q+=String.fromCharCode(X);break;case 12:case 13:J=Y[z++],q+=String.fromCharCode((X&31)<<6|J&63);break;case 14:J=Y[z++],W=Y[z++],q+=String.fromCharCode((X&15)<<12|(J&63)<<6|(W&63)<<0);break}}return q}function j1(Y){let Z="";for(let Q=0;Q1||X===1&&(Z=this.levelkeys[Q[0]])!=null&&Z.encrypted)return!0}return!1}get programDateTime(){if(this._programDateTime===null&&this.rawProgramDateTime)this.programDateTime=Date.parse(this.rawProgramDateTime);return this._programDateTime}set programDateTime(Y){if(!r(Y)){this._programDateTime=this.rawProgramDateTime=null;return}this._programDateTime=Y}get ref(){if(!t0(this))return null;if(!this._ref)this._ref={base:this.base,start:this.start,duration:this.duration,sn:this.sn,programDateTime:this.programDateTime};return this._ref}addStart(Y){this.setStart(this.start+Y)}setStart(Y){if(this.start=Y,this._ref)this._ref.start=Y}setDuration(Y){if(this.duration=Y,this._ref)this._ref.duration=Y}setKeyFormat(Y){let Z=this.levelkeys;if(Z){var Q;let X=Z[Y];if(X&&!((Q=this._decryptdata)!=null&&Q.keyId))this._decryptdata=X.getDecryptData(this.sn,Z)}}abortRequests(){var Y,Z;(Y=this.loader)==null||Y.abort(),(Z=this.keyLoader)==null||Z.abort()}setElementaryStreamInfo(Y,Z,Q,X,J,W=!1){let{elementaryStreams:q}=this,z=q[Y];if(!z){q[Y]={startPTS:Z,endPTS:Q,startDTS:X,endDTS:J,partial:W};return}z.startPTS=Math.min(z.startPTS,Z),z.endPTS=Math.max(z.endPTS,Q),z.startDTS=Math.min(z.startDTS,X),z.endDTS=Math.max(z.endDTS,J)}}class f5 extends Fq{constructor(Y,Z,Q,X,J){super(Q);this.fragOffset=0,this.duration=0,this.gap=!1,this.independent=!1,this.relurl=void 0,this.fragment=void 0,this.index=void 0,this.duration=Y.decimalFloatingPoint("DURATION"),this.gap=Y.bool("GAP"),this.independent=Y.bool("INDEPENDENT"),this.relurl=Y.enumeratedString("URI"),this.fragment=Z,this.index=X;let W=Y.enumeratedString("BYTERANGE");if(W)this.setByteRange(W,J);if(J)this.fragOffset=J.fragOffset+J.duration}get start(){return this.fragment.start+this.fragOffset}get end(){return this.start+this.duration}get loaded(){let{elementaryStreams:Y}=this;return!!(Y.audio||Y.video||Y.audiovideo)}}function y5(Y,Z){let Q=Object.getPrototypeOf(Y);if(Q){let X=Object.getOwnPropertyDescriptor(Q,Z);if(X)return X;return y5(Q,Z)}}function E$(Y,Z){let Q=y5(Y,Z);if(Q)Q.enumerable=!0,Object.defineProperty(Y,Z,Q)}var j3=Math.pow(2,32)-1,K$=[].push,k5={video:1,audio:2,id3:3,text:4};function K1(Y){return String.fromCharCode.apply(null,Y)}function g5(Y,Z){let Q=Y[Z]<<8|Y[Z+1];return Q<0?65536+Q:Q}function E0(Y,Z){let Q=b5(Y,Z);return Q<0?4294967296+Q:Q}function A3(Y,Z){let Q=E0(Y,Z);return Q*=Math.pow(2,32),Q+=E0(Y,Z+4),Q}function b5(Y,Z){return Y[Z]<<24|Y[Z+1]<<16|Y[Z+2]<<8|Y[Z+3]}function G$(Y){let Z=Y.byteLength;for(let Q=0;Q8&&Y[Q+4]===109&&Y[Q+5]===111&&Y[Q+6]===111&&Y[Q+7]===102)return!0;Q=X>1?Q+X:Z}return!1}function $0(Y,Z){let Q=[];if(!Z.length)return Q;let X=Y.byteLength;for(let J=0;J1?J+W:X;if(q===Z[0])if(Z.length===1)Q.push(Y.subarray(J+8,z));else{let H=$0(Y.subarray(J+8,z),Z.slice(1));if(H.length)K$.apply(Q,H)}J=z}return Q}function V$(Y){let Z=[],Q=Y[0],X=8,J=E0(Y,X);X+=4;let W=0,q=0;if(Q===0)W=E0(Y,X),q=E0(Y,X+4),X+=8;else W=A3(Y,X),q=A3(Y,X+8),X+=16;X+=2;let z=Y.length+q,H=g5(Y,X);X+=2;for(let E=0;E>>31===1)return S0.warn("SIDX has hierarchical references (not supported)"),null;let F=E0(Y,K);K+=4,Z.push({referenceSize:U,subsegmentDuration:F,info:{duration:F/J,start:z,end:z+U-1}}),z+=U,K+=4,X=K}return{earliestPresentationTime:W,timescale:J,version:Q,referencesCount:H,references:Z}}function _5(Y){let Z=[],Q=$0(Y,["moov","trak"]);for(let J=0;J{let W=E0(J,4),q=Z[W];if(q)q.default={duration:E0(J,12),flags:E0(J,20)}}),Z}function U$(Y){let Z=Y.subarray(8),Q=Z.subarray(86),X=K1(Z.subarray(4,8)),J=X,W,q=X==="enca"||X==="encv";if(q){let E=$0(Z,[X])[0].subarray(X==="enca"?28:78);$0(E,["sinf"]).forEach((G)=>{let U=$0(G,["schm"])[0];if(U){let V=K1(U.subarray(4,8));if(V==="cbcs"||V==="cenc"){let F=$0(G,["frma"])[0];if(F)J=K1(F)}}})}let z=J;switch(J){case"avc1":case"avc2":case"avc3":case"avc4":{let H=$0(Q,["avcC"])[0];if(H&&H.length>3)J+="."+F2(H[1])+F2(H[2])+F2(H[3]),W=U2(z==="avc1"?"dva1":"dvav",Q);break}case"mp4a":{let H=$0(Z,[X])[0],E=$0(H.subarray(28),["esds"])[0];if(E&&E.length>7){let K=4;if(E[K++]!==3)break;K=AW(E,K),K+=2;let G=E[K++];if(G&128)K+=2;if(G&64)K+=E[K++];if(E[K++]!==4)break;K=AW(E,K);let U=E[K++];if(U===64)J+="."+F2(U);else break;if(K+=12,E[K++]!==5)break;K=AW(E,K);let V=E[K++],F=(V&248)>>3;if(F===31)F+=1+((V&7)<<3)+((E[K]&224)>>5);J+="."+F}break}case"hvc1":case"hev1":{let H=$0(Q,["hvcC"])[0];if(H&&H.length>12){let E=H[1],K=["","A","B","C"][E>>6],G=E&31,U=E0(H,2),V=(E&32)>>5?"H":"L",F=H[12],R=H.subarray(6,12);J+="."+K+G,J+="."+F$(U).toString(16).toUpperCase(),J+="."+V+F;let B="";for(let $=R.length;$--;){let L=R[$];if(L||B)B="."+L.toString(16).toUpperCase()+B}J+=B}W=U2(z=="hev1"?"dvhe":"dvh1",Q);break}case"dvh1":case"dvhe":case"dvav":case"dva1":case"dav1":{J=U2(J,Q)||J;break}case"vp09":{let H=$0(Q,["vpcC"])[0];if(H&&H.length>6){let E=H[4],K=H[5],G=H[6]>>4&15;J+="."+f8(E)+"."+f8(K)+"."+f8(G)}break}case"av01":{let H=$0(Q,["av1C"])[0];if(H&&H.length>2){let E=H[1]>>>5,K=H[1]&31,G=H[2]>>>7?"H":"M",U=(H[2]&64)>>6,V=(H[2]&32)>>5,F=E===2&&U?V?12:10:U?10:8,R=(H[2]&16)>>4,B=(H[2]&8)>>3,$=(H[2]&4)>>2,L=H[2]&3,O=1,j=1,w=1,D=0;J+="."+E+"."+f8(K)+G+"."+f8(F)+"."+R+"."+B+$+L+"."+f8(1)+"."+f8(1)+"."+f8(1)+".0",W=U2("dav1",Q)}break}}return{codec:J,encrypted:q,supplemental:W}}function U2(Y,Z){let Q=$0(Z,["dvvC"]),X=Q.length?Q[0]:$0(Z,["dvcC"])[0];if(X){let J=X[2]>>1&127,W=X[2]<<5&32|X[3]>>3&31;return Y+"."+f8(J)+"."+f8(W)}}function F$(Y){let Z=0;for(let Q=0;Q<32;Q++)Z|=(Y>>Q&1)<<31-Q;return Z>>>0}function AW(Y,Z){let Q=Z+5;while(Y[Z++]&128&&Z{let W=X.subarray(8,24);if(!W.some((q)=>q!==0))S0.log(`[eme] Patching keyId in 'enc${J?"a":"v"}>sinf>>tenc' box: ${j1(W)} -> ${j1(Q)}`),X.set(Q,8)})}function B$(Y){let Z=[];return v5(Y,(Q)=>Z.push(Q.subarray(8,24))),Z}function v5(Y,Z){$0(Y,["moov","trak"]).forEach((X)=>{let J=$0(X,["mdia","minf","stbl","stsd"])[0];if(!J)return;let W=J.subarray(8),q=$0(W,["enca"]),z=q.length>0;if(!z)q=$0(W,["encv"]);q.forEach((H)=>{let E=z?H.subarray(28):H.subarray(78);$0(E,["sinf"]).forEach((G)=>{let U=p5(G);if(U)Z(U,z)})})})}function p5(Y){let Z=$0(Y,["schm"])[0];if(Z){let Q=K1(Z.subarray(4,8));if(Q==="cbcs"||Q==="cenc"){let X=$0(Y,["schi","tenc"])[0];if(X)return X}}}function N$(Y,Z,Q){let X={},J=$0(Y,["moof","traf"]);for(let W=0;WX[W].duration)){let W=1/0,q=0,z=$0(Y,["sidx"]);for(let H=0;HG+U.info.duration||0,0);q=Math.max(q,K+E.earliestPresentationTime/E.timescale)}}if(q&&r(q))Object.keys(X).forEach((H)=>{if(!X[H].duration)X[H].duration=q*X[H].timescale-X[H].start})}return X}function $$(Y){let Z={valid:null,remainder:null},Q=$0(Y,["moof"]);if(Q.length<2)return Z.remainder=Y,Z;let X=Q[Q.length-1];return Z.valid=Y.slice(0,X.byteOffset-8),Z.remainder=Y.slice(X.byteOffset-8),Z}function Q8(Y,Z){let Q=new Uint8Array(Y.length+Z.length);return Q.set(Y),Q.set(Z,Y.length),Q}function D3(Y,Z){let Q=[],X=Z.samples,J=Z.timescale,W=Z.id,q=!1;return $0(X,["moof"]).map((H)=>{let E=H.byteOffset-8;$0(H,["traf"]).map((G)=>{let U=$0(G,["tfdt"]).map((V)=>{let F=V[0],R=E0(V,4);if(F===1)R*=Math.pow(2,32),R+=E0(V,8);return R/J})[0];if(U!==void 0)Y=U;return $0(G,["tfhd"]).map((V)=>{let F=E0(V,4),R=E0(V,0)&16777215,B=(R&1)!==0,$=(R&2)!==0,L=(R&8)!==0,O=0,j=(R&16)!==0,w=0,D=(R&32)!==0,M=8;if(F===W){if(B)M+=8;if($)M+=4;if(L)O=E0(V,M),M+=4;if(j)w=E0(V,M),M+=4;if(D)M+=4;if(Z.type==="video")q=s2(Z.codec);$0(G,["trun"]).map((C)=>{let I=C[0],x=E0(C,0)&16777215,f=(x&1)!==0,_=0,o=(x&4)!==0,n=(x&256)!==0,g=0,l=(x&512)!==0,c=0,s=(x&1024)!==0,Q0=(x&2048)!==0,p=0,d=E0(C,4),e=8;if(f)_=E0(C,e),e+=4;if(o)e+=4;let F0=_+E;for(let U0=0;U0>1&63;return Q===39||Q===40}else return(Z&31)===6}function Rq(Y,Z,Q,X){let J=c5(Y),W=0;W+=Z;let q=0,z=0,H=0;while(W=J.length)break;H=J[W++],q+=H}while(H===255);z=0;do{if(W>=J.length)break;H=J[W++],z+=H}while(H===255);let E=J.length-W,K=W;if(zE){S0.error(`Malformed SEI payload. ${z} is too small, only ${E} bytes left to parse.`);break}if(q===4){if(J[K++]===181){let U=g5(J,K);if(K+=2,U===49){let V=E0(J,K);if(K+=4,V===1195456820){let F=J[K++];if(F===3){let R=J[K++],B=31&R,$=64&R,L=$?2+B*3:0,O=new Uint8Array(L);if($){O[0]=R;for(let j=1;j16){let G=[];for(let F=0;F<16;F++){let R=J[K++].toString(16);if(G.push(R.length==1?"0"+R:R),F===3||F===5||F===7||F===9)G.push("-")}let U=z-16,V=new Uint8Array(U);for(let F=0;F>24&255,W[1]=X>>16&255,W[2]=X>>8&255,W[3]=X&255,W.set(Y,4);for(J=0,X=8;J0){if(W=new Uint8Array(4),Z.length>0)new DataView(W.buffer).setUint32(0,Z.length,!1)}else W=new Uint8Array;let q=new Uint8Array(4);if(Q.byteLength>0)new DataView(q.buffer).setUint32(0,Q.byteLength,!1);return j$([112,115,115,104],new Uint8Array([X,0,0,0]),Y,W,J,q,Q)}function D$(Y){let Z=[];if(Y instanceof ArrayBuffer){let Q=Y.byteLength,X=0;while(X+32>>24;if(W!==0&&W!==1)return{offset:Q,size:Z};let q=Y.buffer,z=j1(new Uint8Array(q,Q+12,16)),H=null,E=null,K=0;if(W===0)K=28;else{let U=Y.getUint32(28);if(!U||X<32+U*16)return{offset:Q,size:Z};H=[];for(let V=0;V{return/\(Windows.+Firefox\//i.test(navigator.userAgent)},F9={audio:{a3ds:1,"ac-3":0.95,"ac-4":1,alac:0.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":0.9,enca:1,fLaC:0.9,flac:0.9,FLAC:0.9,g719:1,g726:1,m4ae:1,mha1:1,mha2:1,mhm1:1,mhm2:1,mlpa:1,mp4a:1,"raw ":1,Opus:1,opus:1,samr:1,sawb:1,sawp:1,sevc:1,sqcp:1,ssmv:1,twos:1,ulaw:1},video:{avc1:1,avc2:1,avc3:1,avc4:1,avcp:1,av01:0.8,dav1:0.8,drac:1,dva1:1,dvav:1,dvh1:0.7,dvhe:0.7,encv:1,hev1:0.75,hvc1:0.75,mjp2:1,mp4v:1,mvc1:1,mvc2:1,mvc3:1,mvc4:1,resv:1,rv60:1,s263:1,svc1:1,svc2:1,"vc-1":1,vp08:1,vp09:0.9},text:{stpp:1,wvtt:1}};function Bq(Y,Z){let Q=F9[Z];return!!Q&&!!Q[Y.slice(0,4)]}function fY(Y,Z,Q=!0){return!Y.split(",").some((X)=>!Nq(X,Z,Q))}function Nq(Y,Z,Q=!0){var X;let J=b6(Q);return(X=J==null?void 0:J.isTypeSupported(yY(Y,Z)))!=null?X:!1}function yY(Y,Z){return`${Z}/mp4;codecs=${Y}`}function w3(Y){if(Y){let Z=Y.substring(0,4);return F9.video[Z]}return 2}function g2(Y){let Z=u5();return Y.split(",").reduce((Q,X)=>{let W=Z&&s2(X)?9:F9.video[X];if(W)return(W*2+Q)/(Q?3:2);return(F9.audio[X]+Q)/(Q?2:1)},0)}var DW={};function P$(Y,Z=!0){if(DW[Y])return DW[Y];let Q={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"],"mp4a.40.34":["mp3"]}[Y];for(let J=0;JP$(Q.toLowerCase(),Z))}function M$(Y,Z){let Q=[];if(Y){let X=Y.split(",");for(let J=0;J4||["ac-3","ec-3","alac","fLaC","Opus"].indexOf(Y)!==-1)){if(P3(Y,"audio")||P3(Y,"video"))return Y}if(Z){let Q=Z.split(",");if(Q.length>1){if(Y){for(let X=Q.length;X--;)if(Q[X].substring(0,4)===Y.substring(0,4))return Q[X]}return Q[0]}}return Z||Y}function P3(Y,Z){return Bq(Y,Z)&&Nq(Y,Z)}function x$(Y){let Z=Y.split(",");for(let Q=0;Q2&&X[0]==="avc1")Z[Q]=`avc1.${parseInt(X[1]).toString(16)}${("000"+parseInt(X[2]).toString(16)).slice(-4)}`}return Z.join(",")}function I$(Y){if(Y.startsWith("av01.")){let Z=Y.split("."),Q=["0","111","01","01","01","0"];for(let X=Z.length;X>4&&X<10;X++)Z[X]=Q[X-4];return Z.join(".")}return Y}function C3(Y){let Z=b6(Y)||{isTypeSupported:()=>!1};return{mpeg:Z.isTypeSupported("audio/mpeg"),mp3:Z.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:Z.isTypeSupported('audio/mp4; codecs="ac-3"')}}function dW(Y){return Y.replace(/^.+codecs=["']?([^"']+).*$/,"$1")}var S$={supported:!0,powerEfficient:!0,smooth:!0},T$={supported:!1,smooth:!1,powerEfficient:!1},m5={supported:!0,configurations:[],decodingInfoResults:[S$]};function o5(Y,Z){return{supported:!1,configurations:Z,decodingInfoResults:[T$],error:Y}}function h$(Y,Z,Q,X,J,W){let q=Y.videoCodec,z=Y.audioCodec?Y.audioGroups:null,H=W==null?void 0:W.audioCodec,E=W==null?void 0:W.channels,K=E?parseInt(E):H?1/0:2,G=null;if(z!=null&&z.length)try{if(z.length===1&&z[0])G=Z.groups[z[0]].channels;else G=z.reduce((U,V)=>{if(V){let F=Z.groups[V];if(!F)throw Error(`Audio track group ${V} not found`);Object.keys(F.channels).forEach((R)=>{U[R]=(U[R]||0)+F.channels[R]})}return U},{2:0})}catch(U){return!0}return q!==void 0&&(q.split(",").some((U)=>s2(U))||Y.width>1920&&Y.height>1088||Y.height>1920&&Y.width>1088||Y.frameRate>Math.max(X,30)||Y.videoRange!=="SDR"&&Y.videoRange!==Q||Y.bitrate>Math.max(J,8000000))||!!G&&r(K)&&Object.keys(G).some((U)=>parseInt(U)>K)}function d5(Y,Z,Q,X={}){let J=Y.videoCodec;if(!J&&!Y.audioCodec||!Q)return Promise.resolve(m5);let W=[],q=f$(Y),z=q.length,H=y$(Y,Z,z>0),E=H.length;for(let K=z||1*E||1;K--;){let G={type:"media-source"};if(z)G.video=q[K%z];if(E){G.audio=H[K%E];let U=G.audio.bitrate;if(G.video&&U)G.video.bitrate-=U}W.push(G)}if(J){let K=navigator.userAgent;if(J.split(",").some((G)=>s2(G))&&u5())return Promise.resolve(o5(Error(`Overriding Windows Firefox HEVC MediaCapabilities result based on user-agent string: (${K})`),W))}return Promise.all(W.map((K)=>{let G=g$(K);return X[G]||(X[G]=Q.decodingInfo(K))})).then((K)=>({supported:!K.some((G)=>!G.supported),configurations:W,decodingInfoResults:K})).catch((K)=>({supported:!1,configurations:W,decodingInfoResults:[],error:K}))}function f$(Y){var Z;let Q=(Z=Y.videoCodec)==null?void 0:Z.split(","),X=l5(Y),J=Y.width||640,W=Y.height||480,q=Y.frameRate||30,z=Y.videoRange.toLowerCase();return Q?Q.map((H)=>{let E={contentType:yY(I$(H),"video"),width:J,height:W,bitrate:X,framerate:q};if(z!=="sdr")E.transferFunction=z;return E}):[]}function y$(Y,Z,Q){var X;let J=(X=Y.audioCodec)==null?void 0:X.split(","),W=l5(Y);if(J&&Y.audioGroups)return Y.audioGroups.reduce((q,z)=>{var H;let E=z?(H=Z.groups[z])==null?void 0:H.tracks:null;if(E)return E.reduce((K,G)=>{if(G.groupId===z){let U=parseFloat(G.channels||"");J.forEach((V)=>{let F={contentType:yY(V,"audio"),bitrate:Q?k$(V,W):W};if(U)F.channels=""+U;K.push(F)})}return K},q);return q},[]);return[]}function k$(Y,Z){if(Z<=1)return 1;let Q=128000;if(Y==="ec-3")Q=768000;else if(Y==="ac-3")Q=640000;return Math.min(Z/2,Q)}function l5(Y){return Math.ceil(Math.max(Y.bitrate*0.9,Y.averageBitrate)/1000)*1000||1}function g$(Y){let Z="",{audio:Q,video:X}=Y;if(X){let J=dW(X.contentType);Z+=`${J}_r${X.height}x${X.width}f${Math.ceil(X.framerate)}${X.transferFunction||"sd"}_${Math.ceil(X.bitrate/1e5)}`}if(Q){let J=dW(Q.contentType);Z+=`${X?"_":""}${J}_c${Q.channels}`}return Z}var lW=["NONE","TYPE-0","TYPE-1",null];function b$(Y){return lW.indexOf(Y)>-1}var _2=["SDR","PQ","HLG"];function _$(Y){return!!Y&&_2.indexOf(Y)>-1}var I2={No:"",Yes:"YES",v2:"v2"};function M3(Y){let{canSkipUntil:Z,canSkipDateRanges:Q,age:X}=Y,J=X!!Q).map((Q)=>Q.substring(0,4)).join(","),"supplemental"in Y){var Z;this.supplemental=Y.supplemental;let Q=(Z=Y.supplemental)==null?void 0:Z.videoCodec;if(Q&&Q!==Y.videoCodec)this.codecSet+=`,${Q.substring(0,4)}`}this.addGroupId("audio",Y.attrs.AUDIO),this.addGroupId("text",Y.attrs.SUBTITLES)}get maxBitrate(){return Math.max(this.realBitrate,this.bitrate)}get averageBitrate(){return this._avgBitrate||this.realBitrate||this.bitrate}get attrs(){return this._attrs[0]}get codecs(){return this.attrs.CODECS||""}get pathwayId(){return this.attrs["PATHWAY-ID"]||"."}get videoRange(){return this.attrs["VIDEO-RANGE"]||"SDR"}get score(){return this.attrs.optionalFloat("SCORE",0)}get uri(){return this.url[0]||""}hasAudioGroup(Y){return x3(this._audioGroups,Y)}hasSubtitleGroup(Y){return x3(this._subtitleGroups,Y)}get audioGroups(){return this._audioGroups}get subtitleGroups(){return this._subtitleGroups}addGroupId(Y,Z){if(!Z)return;if(Y==="audio"){let Q=this._audioGroups;if(!Q)Q=this._audioGroups=[];if(Q.indexOf(Z)===-1)Q.push(Z)}else if(Y==="text"){let Q=this._subtitleGroups;if(!Q)Q=this._subtitleGroups=[];if(Q.indexOf(Z)===-1)Q.push(Z)}}get urlId(){return 0}set urlId(Y){}get audioGroupIds(){return this.audioGroups?[this.audioGroupId]:void 0}get textGroupIds(){return this.subtitleGroups?[this.textGroupId]:void 0}get audioGroupId(){var Y;return(Y=this.audioGroups)==null?void 0:Y[0]}get textGroupId(){var Y;return(Y=this.subtitleGroups)==null?void 0:Y[0]}addFallback(){}}function x3(Y,Z){if(!Z||!Y)return!1;return Y.indexOf(Z)!==-1}function v$(){if(typeof matchMedia==="function"){let Y=matchMedia("(dynamic-range: high)"),Z=matchMedia("bad query");if(Y.media!==Z.media)return Y.matches===!0}return!1}function p$(Y,Z){let Q=!1,X=[];if(Y)Q=Y!=="SDR",X=[Y];if(Z){X=Z.allowedVideoRanges||_2.slice(0);let J=X.join("")!=="SDR"&&!Z.videoCodec;if(Q=Z.preferHDR!==void 0?Z.preferHDR:J&&v$(),!Q)X=["SDR"]}return{preferHDR:Q,allowedVideoRanges:X}}var c$=(Y)=>{let Z=new WeakSet;return(Q,X)=>{if(Y)X=Y(Q,X);if(typeof X==="object"&&X!==null){if(Z.has(X))return;Z.add(X)}return X}},_0=(Y,Z)=>JSON.stringify(Y,c$(Z));function u$(Y,Z,Q,X,J){let W=Object.keys(Y),q=X==null?void 0:X.channels,z=X==null?void 0:X.audioCodec,H=J==null?void 0:J.videoCodec,E=q&&parseInt(q)===2,K=!1,G=!1,U=1/0,V=1/0,F=1/0,R=1/0,B=0,$=[],{preferHDR:L,allowedVideoRanges:O}=p$(Z,J);for(let C=W.length;C--;){let I=Y[W[C]];if(K||(K=I.channels[2]>0),U=Math.min(U,I.minHeight),V=Math.min(V,I.minFramerate),F=Math.min(F,I.minBitrate),O.filter((f)=>I.videoRanges[f]>0).length>0)G=!0}U=r(U)?U:0,V=r(V)?V:0;let j=Math.max(1080,U),w=Math.max(30,V);if(F=r(F)?F:Q,Q=Math.max(F,Q),!G)Z=void 0;let D=W.length>1;return{codecSet:W.reduce((C,I)=>{let x=Y[I];if(I===C)return C;if($=G?O.filter((f)=>x.videoRanges[f]>0):[],D){if(x.minBitrate>Q)return T8(I,`min bitrate of ${x.minBitrate} > current estimate of ${Q}`),C;if(!x.hasDefaultAudio)return T8(I,"no renditions with default or auto-select sound found"),C;if(z&&I.indexOf(z.substring(0,4))%5!==0)return T8(I,`audio codec preference "${z}" not found`),C;if(q&&!E){if(!x.channels[q])return T8(I,`no renditions with ${q} channel sound found (channels options: ${Object.keys(x.channels)})`),C}else if((!z||E)&&K&&x.channels["2"]===0)return T8(I,"no renditions with stereo sound found"),C;if(x.minHeight>j)return T8(I,`min resolution of ${x.minHeight} > maximum of ${j}`),C;if(x.minFramerate>w)return T8(I,`min framerate of ${x.minFramerate} > maximum of ${w}`),C;if(!$.some((f)=>x.videoRanges[f]>0))return T8(I,`no variants with VIDEO-RANGE of ${_0($)} found`),C;if(H&&I.indexOf(H.substring(0,4))%5!==0)return T8(I,`video codec preference "${H}" not found`),C;if(x.maxScore=g2(C)||x.fragmentError>Y[C].fragmentError))return C;return R=x.minIndex,B=x.maxScore,I},void 0),videoRanges:$,preferHDR:L,minFramerate:V,minBitrate:F,minIndex:R}}function T8(Y,Z){S0.log(`[abr] start candidates with "${Y}" ignored because ${Z}`)}function n5(Y){return Y.reduce((Z,Q)=>{let X=Z.groups[Q.groupId];if(!X)X=Z.groups[Q.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1};X.tracks.push(Q);let J=Q.channels||"2";if(X.channels[J]=(X.channels[J]||0)+1,X.hasDefault=X.hasDefault||Q.default,X.hasAutoSelect=X.hasAutoSelect||Q.autoselect,X.hasDefault)Z.hasDefaultAudio=!0;if(X.hasAutoSelect)Z.hasAutoSelectAudio=!0;return Z},{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}function m$(Y,Z,Q,X){return Y.slice(Q,X+1).reduce((J,W,q)=>{if(!W.codecSet)return J;let z=W.audioGroups,H=J[W.codecSet];if(!H)J[W.codecSet]=H={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,minIndex:q,maxScore:0,videoRanges:{SDR:0},channels:{"2":0},hasDefaultAudio:!z,fragmentError:0};H.minBitrate=Math.min(H.minBitrate,W.bitrate);let E=Math.min(W.height,W.width);if(H.minHeight=Math.min(H.minHeight,E),H.minFramerate=Math.min(H.minFramerate,W.frameRate),H.minIndex=Math.min(H.minIndex,q),H.maxScore=Math.max(H.maxScore,W.score),H.fragmentError+=W.fragmentError,H.videoRanges[W.videoRange]=(H.videoRanges[W.videoRange]||0)+1,z)z.forEach((K)=>{if(!K)return;let G=Z.groups[K];if(!G)return;H.hasDefaultAudio=H.hasDefaultAudio||Z.hasDefaultAudio?G.hasDefault:G.hasAutoSelect||!Z.hasDefaultAudio&&!Z.hasAutoSelectAudio,Object.keys(G.channels).forEach((U)=>{H.channels[U]=(H.channels[U]||0)+G.channels[U]})});return J},{})}function I3(Y){if(!Y)return Y;let{lang:Z,assocLang:Q,characteristics:X,channels:J,audioCodec:W}=Y;return{lang:Z,assocLang:Q,characteristics:X,channels:J,audioCodec:W}}function g8(Y,Z,Q){if("attrs"in Y){let X=Z.indexOf(Y);if(X!==-1)return X}for(let X=0;XX.indexOf(J)===-1)}function L7(Y,Z){let{audioCodec:Q,channels:X}=Y;return(Q===void 0||(Z.audioCodec||"").substring(0,4)===Q.substring(0,4))&&(X===void 0||X===(Z.channels||"2"))}function l$(Y,Z,Q,X,J){let W=Z[X],z=Z.reduce((U,V,F)=>{let R=V.uri;return(U[R]||(U[R]=[])).push(F),U},{})[W.uri];if(z.length>1)X=Math.max.apply(Math,z);let{videoRange:H,frameRate:E}=W,K=W.codecSet.substring(0,4),G=S3(Z,X,(U)=>{if(U.videoRange!==H||U.frameRate!==E||U.codecSet.substring(0,4)!==K)return!1;let V=U.audioGroups,F=Q.filter((R)=>!V||V.indexOf(R.groupId)!==-1);return g8(Y,F,J)>-1});if(G>-1)return G;return S3(Z,X,(U)=>{let V=U.audioGroups,F=Q.filter((R)=>!V||V.indexOf(R.groupId)!==-1);return g8(Y,F,J)>-1})}function S3(Y,Z,Q){for(let X=Z;X>-1;X--)if(Q(Y[X]))return X;for(let X=Z+1;X{var Q;let{fragCurrent:X,partCurrent:J,hls:W}=this,{autoLevelEnabled:q,media:z}=W;if(!X||!z)return;let H=performance.now(),E=J?J.stats:X.stats,K=J?J.duration:X.duration,G=H-E.loading.start,U=W.minAutoLevel,V=X.level,F=this._nextAutoLevel;if(E.aborted||E.loaded&&E.loaded===E.total||V<=U){this.clearTimer(),this._nextAutoLevel=-1;return}if(!q)return;let R=F>-1&&F!==V,B=!!Z||R;if(!B&&(z.paused||!z.playbackRate||!z.readyState))return;let $=W.mainForwardBufferInfo;if(!B&&$===null)return;let L=this.bwEstimator.getEstimateTTFB(),O=Math.abs(z.playbackRate);if(G<=Math.max(L,1000*(K/(O*2))))return;let j=$?$.len/O:0,w=E.loading.first?E.loading.first-E.loading.start:-1,D=E.loaded&&w>-1,M=this.getBwEstimate(),C=W.levels,I=C[V],x=Math.max(E.loaded,Math.round(K*(X.bitrate||I.averageBitrate)/8)),f=D?G-w:G;if(f<1&&D)f=Math.min(G,E.loaded*8/M);let _=D?E.loaded*1000/f:0,o=L/1000,n=_?(x-E.loaded)/_:x*8/M+o;if(n<=j)return;let g=_?_*8:M,l=((Q=(Z==null?void 0:Z.details)||this.hls.latestLevelDetails)==null?void 0:Q.live)===!0,c=this.hls.config.abrBandWidthUpFactor,s=Number.POSITIVE_INFINITY,Q0;for(Q0=V-1;Q0>U;Q0--){let F0=C[Q0].maxBitrate,U0=!C[Q0].details||l;if(s=this.getTimeToLoadFrag(o,g,K*F0,U0),s=n)return;if(s>K*10)return;if(D)this.bwEstimator.sample(G-Math.min(L,w),E.loaded);else this.bwEstimator.sampleTTFB(G);let p=C[Q0].maxBitrate;if(this.getBwEstimate()*c>p)this.resetEstimator(p);let d=this.findBestLevel(p,U,Q0,0,j,1,1);if(d>-1)Q0=d;this.warn(`Fragment ${X.sn}${J?" part "+J.index:""} of level ${V} is loading too slowly; Fragment duration: ${X.duration.toFixed(3)} Time to underbuffer: ${j.toFixed(3)} s Estimated load time for current fragment: ${n.toFixed(3)} s Estimated load time for down switch fragment: ${s.toFixed(3)} s TTFB estimate: ${w|0} ms Current BW estimate: ${r(M)?M|0:"Unknown"} bps New BW estimate: ${this.getBwEstimate()|0} bps Switching to level ${Q0} @ ${p|0} bps`),W.nextLoadLevel=W.nextAutoLevel=Q0,this.clearTimer();let e=()=>{if(this.clearTimer(),this.fragCurrent===X&&this.hls.loadLevel===Q0&&Q0>0){let F0=this.getStarvationDelay();if(this.warn(`Aborting inflight request ${Q0>0?"and switching down":""} Fragment duration: ${X.duration.toFixed(3)} s Time to underbuffer: ${F0.toFixed(3)} s`),X.abortRequests(),this.fragCurrent=this.partCurrent=null,Q0>U){let U0=this.findBestLevel(this.hls.levels[U].bitrate,U,Q0,0,F0,1,1);if(U0===-1)U0=U;this.hls.nextLoadLevel=this.hls.nextAutoLevel=U0,this.resetEstimator(this.hls.levels[U0].bitrate)}}};if(R||n>s*2)e();else this.timer=self.setInterval(e,s*1000);W.trigger(N.FRAG_LOAD_EMERGENCY_ABORTED,{frag:X,part:J,stats:E})},this.hls=Y,this.bwEstimator=this.initEstimator(),this.registerListeners()}resetEstimator(Y){if(Y)this.log(`setting initial bwe to ${Y}`),this.hls.config.abrEwmaDefaultEstimate=Y;this.firstSelection=-1,this.bwEstimator=this.initEstimator()}initEstimator(){let Y=this.hls.config;return new S5(Y.abrEwmaSlowVoD,Y.abrEwmaFastVoD,Y.abrEwmaDefaultEstimate)}registerListeners(){let{hls:Y}=this;Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.FRAG_LOADING,this.onFragLoading,this),Y.on(N.FRAG_LOADED,this.onFragLoaded,this),Y.on(N.FRAG_BUFFERED,this.onFragBuffered,this),Y.on(N.LEVEL_SWITCHING,this.onLevelSwitching,this),Y.on(N.LEVEL_LOADED,this.onLevelLoaded,this),Y.on(N.LEVELS_UPDATED,this.onLevelsUpdated,this),Y.on(N.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),Y.on(N.ERROR,this.onError,this)}unregisterListeners(){let{hls:Y}=this;if(!Y)return;Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.FRAG_LOADING,this.onFragLoading,this),Y.off(N.FRAG_LOADED,this.onFragLoaded,this),Y.off(N.FRAG_BUFFERED,this.onFragBuffered,this),Y.off(N.LEVEL_SWITCHING,this.onLevelSwitching,this),Y.off(N.LEVEL_LOADED,this.onLevelLoaded,this),Y.off(N.LEVELS_UPDATED,this.onLevelsUpdated,this),Y.off(N.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),Y.off(N.ERROR,this.onError,this)}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=this.supportedCache=null,this.fragCurrent=this.partCurrent=null}onManifestLoading(Y,Z){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.supportedCache={},this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}onLevelsUpdated(){if(this.lastLoadedFragLevel>-1&&this.fragCurrent)this.lastLoadedFragLevel=this.fragCurrent.level;this._nextAutoLevel=-1,this.onMaxAutoLevelUpdated(),this.codecTiers=null,this.audioTracksByGroup=null}onMaxAutoLevelUpdated(){this.firstSelection=-1,this.nextAutoLevelKey=""}onFragLoading(Y,Z){let Q=Z.frag;if(this.ignoreFragment(Q))return;if(!Q.bitrateTest){var X;this.fragCurrent=Q,this.partCurrent=(X=Z.part)!=null?X:null}this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100)}onLevelSwitching(Y,Z){this.clearTimer()}onError(Y,Z){if(Z.fatal)return;switch(Z.details){case h.BUFFER_ADD_CODEC_ERROR:case h.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case h.FRAG_LOAD_TIMEOUT:{let Q=Z.frag,{fragCurrent:X,partCurrent:J}=this;if(Q&&X&&Q.sn===X.sn&&Q.level===X.level){let W=performance.now(),q=J?J.stats:Q.stats,z=W-q.loading.start,H=q.loading.first?q.loading.first-q.loading.start:-1;if(q.loaded&&H>-1){let K=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(z-Math.min(K,H),q.loaded)}else this.bwEstimator.sampleTTFB(z)}break}}}getTimeToLoadFrag(Y,Z,Q,X){let J=Y+Q/Z,W=X?Y+this.lastLevelLoadSec:0;return J+W}onLevelLoaded(Y,Z){let Q=this.hls.config,{loading:X}=Z.stats,J=X.end-X.first;if(r(J))this.lastLevelLoadSec=J/1000;if(Z.details.live)this.bwEstimator.update(Q.abrEwmaSlowLive,Q.abrEwmaFastLive);else this.bwEstimator.update(Q.abrEwmaSlowVoD,Q.abrEwmaFastVoD);if(this.timer>-1)this._abandonRulesCheck(Z.levelInfo)}onFragLoaded(Y,{frag:Z,part:Q}){let X=Q?Q.stats:Z.stats;if(Z.type===t.MAIN)this.bwEstimator.sampleTTFB(X.loading.first-X.loading.start);if(this.ignoreFragment(Z))return;if(this.clearTimer(),Z.level===this._nextAutoLevel)this._nextAutoLevel=-1;if(this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){let J=Q?Q.duration:Z.duration,W=this.hls.levels[Z.level],q=(W.loaded?W.loaded.bytes:0)+X.loaded,z=(W.loaded?W.loaded.duration:0)+J;W.loaded={bytes:q,duration:z},W.realBitrate=Math.round(8*q/z)}if(Z.bitrateTest){let J={stats:X,frag:Z,part:Q,id:Z.type};this.onFragBuffered(N.FRAG_BUFFERED,J),Z.bitrateTest=!1}else this.lastLoadedFragLevel=Z.level}onFragBuffered(Y,Z){let{frag:Q,part:X}=Z,J=X!=null&&X.stats.loaded?X.stats:Q.stats;if(J.aborted)return;if(this.ignoreFragment(Q))return;let W=J.parsing.end-J.loading.start-Math.min(J.loading.first-J.loading.start,this.bwEstimator.getEstimateTTFB());if(this.bwEstimator.sample(W,J.loaded),J.bwEstimate=this.getBwEstimate(),Q.bitrateTest)this.bitrateTestDelay=W/1000;else this.bitrateTestDelay=0}ignoreFragment(Y){return Y.type!==t.MAIN||Y.sn==="initSegment"}clearTimer(){if(this.timer>-1)self.clearInterval(this.timer),this.timer=-1}get firstAutoLevel(){let{maxAutoLevel:Y,minAutoLevel:Z}=this.hls,Q=this.getBwEstimate(),X=this.hls.config.maxStarvationDelay,J=this.findBestLevel(Q,Z,Y,0,X,1,1);if(J>-1)return J;let W=this.hls.firstLevel,q=Math.min(Math.max(W,Z),Y);return this.warn(`Could not find best starting auto level. Defaulting to first in playlist ${W} clamped to ${q}`),q}get forcedAutoLevel(){if(this.nextAutoLevelKey)return-1;return this._nextAutoLevel}get nextAutoLevel(){let Y=this.forcedAutoLevel,Q=this.bwEstimator.canEstimate(),X=this.lastLoadedFragLevel>-1;if(Y!==-1&&(!Q||!X||this.nextAutoLevelKey===this.getAutoLevelKey()))return Y;let J=Q&&X?this.getNextABRAutoLevel():this.firstAutoLevel;if(Y!==-1){let W=this.hls.levels;if(W.length>Math.max(Y,J)&&W[Y].loadError<=W[J].loadError)return Y}return this._nextAutoLevel=J,this.nextAutoLevelKey=this.getAutoLevelKey(),J}getAutoLevelKey(){return`${this.getBwEstimate()}_${this.getStarvationDelay().toFixed(2)}`}getNextABRAutoLevel(){let{fragCurrent:Y,partCurrent:Z,hls:Q}=this;if(Q.levels.length<=1)return Q.loadLevel;let{maxAutoLevel:X,config:J,minAutoLevel:W}=Q,q=Z?Z.duration:Y?Y.duration:0,z=this.getBwEstimate(),H=this.getStarvationDelay(),E=J.abrBandWidthFactor,K=J.abrBandWidthUpFactor;if(H){let R=this.findBestLevel(z,W,X,H,0,E,K);if(R>=0)return this.rebufferNotice=-1,R}let G=q?Math.min(q,J.maxStarvationDelay):J.maxStarvationDelay;if(!H){let R=this.bitrateTestDelay;if(R)G=(q?Math.min(q,J.maxLoadingDelay):J.maxLoadingDelay)-R,this.info(`bitrate test took ${Math.round(1000*R)}ms, set first fragment max fetchDuration to ${Math.round(1000*G)} ms`),E=K=1}let U=this.findBestLevel(z,W,X,H,G,E,K);if(this.rebufferNotice!==U)this.rebufferNotice=U,this.info(`${H?"rebuffering expected":"buffer is empty"}, optimal quality level ${U}`);if(U>-1)return U;let V=Q.levels[W],F=Q.loadLevelObj;if(F&&(V==null?void 0:V.bitrate)=Z;g--){var n;let l=V[g],c=g>K;if(!l)continue;if(B.useMediaCapabilities&&!l.supportedResult&&!l.supportedPromise){let U0=navigator.mediaCapabilities;if(typeof(U0==null?void 0:U0.decodingInfo)==="function"&&h$(l,I,w,D,Y,M))l.supportedPromise=d5(l,I,U0,this.supportedCache),l.supportedPromise.then((N0)=>{if(!this.hls)return;l.supportedResult=N0;let o0=this.hls.levels,s0=o0.indexOf(l);if(N0.error)this.warn(`MediaCapabilities decodingInfo error: "${N0.error}" for level ${s0} ${_0(N0)}`);else if(!N0.supported){if(this.warn(`Unsupported MediaCapabilities decodingInfo result for level ${s0} ${_0(N0)}`),s0>-1&&o0.length>1){if(this.log(`Removing unsupported level ${s0}`),this.hls.removeLevel(s0),this.hls.loadLevel===-1)this.hls.nextLoadLevel=0}}else if(N0.decodingInfoResults.some((M1)=>M1.smooth===!1||M1.powerEfficient===!1))this.log(`MediaCapabilities decodingInfo for level ${s0} not smooth or powerEfficient: ${_0(N0)}`)}).catch((N0)=>{this.warn(`Error handling MediaCapabilities decodingInfo: ${N0}`)});else l.supportedResult=m5}if(j&&l.codecSet!==j||w&&l.videoRange!==w||c&&D>l.frameRate||!c&&D>0&&DU0.smooth===!1)){if(!O||g!==x){o.push(g);continue}}let s=l.details,Q0=(U?s==null?void 0:s.partTarget:s==null?void 0:s.averagetargetduration)||f,p;if(!c)p=W*Y;else p=q*Y;let d=f&&X>=f*2&&J===0?l.averageBitrate:l.maxBitrate,e=this.getTimeToLoadFrag(_,p,d*Q0,s===void 0);if(p>=d&&(g===E||l.loadError===0&&l.fragmentError===0)&&(e<=_||!r(e)||L&&!this.bitrateTestDelay||e${g} adjustedbw(${Math.round(p)})-bitrate=${Math.round(p-d)} ttfb:${_.toFixed(1)} avgDuration:${Q0.toFixed(1)} maxFetchDuration:${H.toFixed(1)} fetchDuration:${e.toFixed(1)} firstSelection:${O} codecSet:${l.codecSet} videoRange:${l.videoRange} hls.loadLevel:${R}`)}if(O)this.firstSelection=g;return g}}return-1}set nextAutoLevel(Y){let Z=this.deriveNextAutoLevel(Y);if(this._nextAutoLevel!==Z)this.nextAutoLevelKey="",this._nextAutoLevel=Z}deriveNextAutoLevel(Y){let{maxAutoLevel:Z,minAutoLevel:Q}=this.hls;return Math.min(Math.max(Y,Q),Z)}}var i5={search:function(Y,Z){let Q=0,X=Y.length-1,J=null,W=null;while(Q<=X){J=(Q+X)/2|0,W=Y[J];let q=Z(W);if(q>0)Q=J+1;else if(q<0)X=J-1;else return W}return null}};function n$(Y,Z,Q){if(Z===null||!Array.isArray(Y)||!Y.length||!r(Z))return null;let X=Y[0].programDateTime;if(Z<(X||0))return null;let J=Y[Y.length-1].endProgramDateTime;if(Z>=(J||0))return null;for(let W=0;W0&&z<0.0000015)Q+=0.0000015;if(W&&Y.level!==W.level&&W.end<=Y.end)W=Z[2+Y.sn-Z[0].sn]||null}else if(Q===0&&Z[0].start===0)W=Z[0];if(W&&((!Y||Y.level===W.level)&&T3(Q,X,W)===0||s$(W,Y,Math.min(J,X))))return W;let q=i5.search(Z,T3.bind(null,Q,X));if(q&&(q!==Y||!W))return q;return W}function s$(Y,Z,Q){if(Z&&Z.start===0&&Z.level0){let X=Z.tagList.reduce((J,W)=>{if(W[0]==="INF")J+=parseFloat(W[1]);return J},Q);return Y.start<=X}return!1}function T3(Y=0,Z=0,Q){if(Q.start<=Y&&Q.start+Q.duration>Y)return 0;let X=Math.min(Z,Q.duration+(Q.deltaPTS?Q.deltaPTS:0));if(Q.start+Q.duration-X<=Y)return 1;else if(Q.start-X>Y&&Q.start)return-1;return 0}function i$(Y,Z,Q){let X=Math.min(Z,Q.duration+(Q.deltaPTS?Q.deltaPTS:0))*1000;return(Q.endProgramDateTime||0)-X>Y}function r5(Y,Z,Q){if(Y){if(Y.startCC<=Z&&Y.endCC>=Z){let X=Y.fragments,{fragmentHint:J}=Y;if(J)X=X.concat(J);let W;return i5.search(X,(q)=>{if(q.ccZ)return-1;if(W=q,q.end<=Q)return 1;if(q.start>Q)return-1;return 0}),W||null}}return null}function p2(Y){switch(Y.details){case h.FRAG_LOAD_TIMEOUT:case h.KEY_LOAD_TIMEOUT:case h.LEVEL_LOAD_TIMEOUT:case h.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function a5(Y){return Y.details.startsWith("key")}function t5(Y){return a5(Y)&&!!Y.frag&&!Y.frag.decryptdata}function h3(Y,Z){let Q=p2(Z);return Y.default[`${Q?"timeout":"error"}Retry`]}function $q(Y,Z){let Q=Y.backoff==="linear"?1:Math.pow(2,Z);return Math.min(Q*Y.retryDelayMs,Y.maxRetryDelayMs)}function f3(Y){return I0(I0({},Y),{errorRetry:null,timeoutRetry:null})}function c2(Y,Z,Q,X){if(!Y)return!1;let J=X==null?void 0:X.code,W=Z499)}function sW(Y){return Y===0&&navigator.onLine===!1}var N1={DoNothing:0,SendEndCallback:1,SendAlternateToPenaltyBox:2,RemoveAlternatePermanently:3,InsertDiscontinuity:4,RetryRequest:5},c1={None:0,MoveAllAlternatesMatchingHost:1,MoveAllAlternatesMatchingHDCP:2,MoveAllAlternatesMatchingKey:4,SwitchToSDR:8};class e5 extends d1{constructor(Y){super("error-controller",Y.logger);this.hls=void 0,this.playlistError=0,this.hls=Y,this.registerListeners()}registerListeners(){let Y=this.hls;Y.on(N.ERROR,this.onError,this),Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.LEVEL_UPDATED,this.onLevelUpdated,this)}unregisterListeners(){let Y=this.hls;if(!Y)return;Y.off(N.ERROR,this.onError,this),Y.off(N.ERROR,this.onErrorOut,this),Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.LEVEL_UPDATED,this.onLevelUpdated,this)}destroy(){this.unregisterListeners(),this.hls=null}startLoad(Y){}stopLoad(){this.playlistError=0}getVariantLevelIndex(Y){if((Y==null?void 0:Y.type)===t.MAIN)return Y.level;return this.getVariantIndex()}getVariantIndex(){var Y;let Z=this.hls,Q=Z.currentLevel;if((Y=Z.loadLevelObj)!=null&&Y.details||Q===-1)return Z.loadLevel;return Q}variantHasKey(Y,Z){if(Y){var Q;if((Q=Y.details)!=null&&Q.hasKey(Z))return!0;let X=Y.audioGroups;if(X)return this.hls.allAudioTracks.filter((W)=>X.indexOf(W.groupId)>=0).some((W)=>{var q;return(q=W.details)==null?void 0:q.hasKey(Z)})}return!1}onManifestLoading(){this.playlistError=0}onLevelUpdated(){this.playlistError=0}onError(Y,Z){var Q;if(Z.fatal)return;let X=this.hls,J=Z.context;switch(Z.details){case h.FRAG_LOAD_ERROR:case h.FRAG_LOAD_TIMEOUT:case h.KEY_LOAD_ERROR:case h.KEY_LOAD_TIMEOUT:Z.errorAction=this.getFragRetryOrSwitchAction(Z);return;case h.FRAG_PARSING_ERROR:if((Q=Z.frag)!=null&&Q.gap){Z.errorAction=E9();return}case h.FRAG_GAP:case h.FRAG_DECRYPT_ERROR:{Z.errorAction=this.getFragRetryOrSwitchAction(Z),Z.errorAction.action=N1.SendAlternateToPenaltyBox;return}case h.LEVEL_EMPTY_ERROR:case h.LEVEL_PARSING_ERROR:{var W;let z=Z.parent===t.MAIN?Z.level:X.loadLevel;if(Z.details===h.LEVEL_EMPTY_ERROR&&!!((W=Z.context)!=null&&(W=W.levelDetails)!=null&&W.live))Z.errorAction=this.getPlaylistRetryOrSwitchAction(Z,z);else Z.levelRetry=!1,Z.errorAction=this.getLevelSwitchAction(Z,z)}return;case h.LEVEL_LOAD_ERROR:case h.LEVEL_LOAD_TIMEOUT:if(typeof(J==null?void 0:J.level)==="number")Z.errorAction=this.getPlaylistRetryOrSwitchAction(Z,J.level);return;case h.AUDIO_TRACK_LOAD_ERROR:case h.AUDIO_TRACK_LOAD_TIMEOUT:case h.SUBTITLE_LOAD_ERROR:case h.SUBTITLE_TRACK_LOAD_TIMEOUT:if(J){let z=X.loadLevelObj;if(z&&(J.type===O0.AUDIO_TRACK&&z.hasAudioGroup(J.groupId)||J.type===O0.SUBTITLE_TRACK&&z.hasSubtitleGroup(J.groupId))){Z.errorAction=this.getPlaylistRetryOrSwitchAction(Z,X.loadLevel),Z.errorAction.action=N1.SendAlternateToPenaltyBox,Z.errorAction.flags=c1.MoveAllAlternatesMatchingHost;return}}return;case h.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:Z.errorAction={action:N1.SendAlternateToPenaltyBox,flags:c1.MoveAllAlternatesMatchingHDCP};return;case h.KEY_SYSTEM_SESSION_UPDATE_FAILED:case h.KEY_SYSTEM_STATUS_INTERNAL_ERROR:case h.KEY_SYSTEM_NO_SESSION:Z.errorAction={action:N1.SendAlternateToPenaltyBox,flags:c1.MoveAllAlternatesMatchingKey};return;case h.BUFFER_ADD_CODEC_ERROR:case h.REMUX_ALLOC_ERROR:case h.BUFFER_APPEND_ERROR:if(!Z.errorAction){var q;Z.errorAction=this.getLevelSwitchAction(Z,(q=Z.level)!=null?q:X.loadLevel)}return;case h.INTERNAL_EXCEPTION:case h.BUFFER_APPENDING_ERROR:case h.BUFFER_FULL_ERROR:case h.LEVEL_SWITCH_ERROR:case h.BUFFER_STALLED_ERROR:case h.BUFFER_SEEK_OVER_HOLE:case h.BUFFER_NUDGE_ON_STALL:Z.errorAction=E9();return}if(Z.type===Y0.KEY_SYSTEM_ERROR)Z.levelRetry=!1,Z.errorAction=E9()}getPlaylistRetryOrSwitchAction(Y,Z){let Q=this.hls,X=h3(Q.config.playlistLoadPolicy,Y),J=this.playlistError++;if(c2(X,J,p2(Y),Y.response))return{action:N1.RetryRequest,flags:c1.None,retryConfig:X,retryCount:J};let q=this.getLevelSwitchAction(Y,Z);if(X)q.retryConfig=X,q.retryCount=J;return q}getFragRetryOrSwitchAction(Y){let Z=this.hls,Q=this.getVariantLevelIndex(Y.frag),X=Z.levels[Q],{fragLoadPolicy:J,keyLoadPolicy:W}=Z.config,q=h3(a5(Y)?W:J,Y),z=Z.levels.reduce((E,K)=>E+K.fragmentError,0);if(X){if(Y.details!==h.FRAG_GAP)X.fragmentError++;if(!t5(Y)){if(c2(q,z,p2(Y),Y.response))return{action:N1.RetryRequest,flags:c1.None,retryConfig:q,retryCount:z}}}let H=this.getLevelSwitchAction(Y,Q);if(q)H.retryConfig=q,H.retryCount=z;return H}getLevelSwitchAction(Y,Z){let Q=this.hls;if(Z===null||Z===void 0)Z=Q.loadLevel;let X=this.hls.levels[Z];if(X){var J,W;let H=Y.details;if(X.loadError++,H===h.BUFFER_APPEND_ERROR)X.fragmentError++;let E=-1,{levels:K,loadLevel:G,minAutoLevel:U,maxAutoLevel:V}=Q;if(!Q.autoLevelEnabled&&!Q.config.preserveManualLevelOnError)Q.loadLevel=-1;let F=(J=Y.frag)==null?void 0:J.type,B=(F===t.AUDIO&&H===h.FRAG_PARSING_ERROR||Y.sourceBufferName==="audio"&&(H===h.BUFFER_ADD_CODEC_ERROR||H===h.BUFFER_APPEND_ERROR))&&K.some(({audioCodec:w})=>X.audioCodec!==w),L=Y.sourceBufferName==="video"&&(H===h.BUFFER_ADD_CODEC_ERROR||H===h.BUFFER_APPEND_ERROR)&&K.some(({codecSet:w,audioCodec:D})=>X.codecSet!==w&&X.audioCodec===D),{type:O,groupId:j}=(W=Y.context)!=null?W:{};for(let w=K.length;w--;){let D=(w+G)%K.length;if(D!==G&&D>=U&&D<=V&&K[D].loadError===0){var q,z;let M=K[D];if(H===h.FRAG_GAP&&F===t.MAIN&&Y.frag){let C=K[D].details;if(C){let I=j7(Y.frag,C.fragments,Y.frag.start);if(I!=null&&I.gap)continue}}else if(O===O0.AUDIO_TRACK&&M.hasAudioGroup(j)||O===O0.SUBTITLE_TRACK&&M.hasSubtitleGroup(j))continue;else if(F===t.AUDIO&&(q=X.audioGroups)!=null&&q.some((C)=>M.hasAudioGroup(C))||F===t.SUBTITLE&&(z=X.subtitleGroups)!=null&&z.some((C)=>M.hasSubtitleGroup(C))||B&&X.audioCodec===M.audioCodec||L&&X.codecSet===M.codecSet||!B&&X.codecSet!==M.codecSet)continue;E=D;break}}if(E>-1&&Q.loadLevel!==E)return Y.levelRetry=!0,this.playlistError=0,{action:N1.SendAlternateToPenaltyBox,flags:c1.None,nextAutoLevel:E}}return{action:N1.SendAlternateToPenaltyBox,flags:c1.MoveAllAlternatesMatchingHost}}onErrorOut(Y,Z){var Q;switch((Q=Z.errorAction)==null?void 0:Q.action){case N1.DoNothing:break;case N1.SendAlternateToPenaltyBox:if(this.sendAlternateToPenaltyBox(Z),!Z.errorAction.resolved&&Z.details!==h.FRAG_GAP)Z.fatal=!0;else if(/MediaSource readyState: ended/.test(Z.error.message))this.warn(`MediaSource ended after "${Z.sourceBufferName}" sourceBuffer append error. Attempting to recover from media error.`),this.hls.recoverMediaError();break;case N1.RetryRequest:break}if(Z.fatal){this.hls.stopLoad();return}}sendAlternateToPenaltyBox(Y){let Z=this.hls,Q=Y.errorAction;if(!Q)return;let{flags:X}=Q,J=Q.nextAutoLevel;switch(X){case c1.None:this.switchLevel(Y,J);break;case c1.MoveAllAlternatesMatchingHDCP:{let z=this.getVariantLevelIndex(Y.frag),H=Z.levels[z],E=H==null?void 0:H.attrs["HDCP-LEVEL"];if(Q.hdcpLevel=E,E==="NONE")this.warn("HDCP policy resticted output with HDCP-LEVEL=NONE");else if(E){Z.maxHdcpLevel=lW[lW.indexOf(E)-1],Q.resolved=!0,this.warn(`Restricting playback to HDCP-LEVEL of "${Z.maxHdcpLevel}" or lower`);break}}case c1.MoveAllAlternatesMatchingKey:{let z=Y.decryptdata;if(z){let H=this.hls.levels,E=H.length;for(let G=E;G--;)if(this.variantHasKey(H[G],z)){var W,q;this.log(`Banned key found in level ${G} (${H[G].bitrate}bps) or audio group "${(W=H[G].audioGroups)==null?void 0:W.join(",")}" (${(q=Y.frag)==null?void 0:q.type} fragment) ${j1(z.keyId||[])}`),H[G].fragmentError++,H[G].loadError++,this.log(`Removing level ${G} with key error (${Y.error})`),this.hls.removeLevel(G)}let K=Y.frag;if(this.hls.levels.length{let z=this.fragments[q];if(!z)return;if(W>=z.body.sn)return;if(!z.buffered&&(!z.loaded||J)){if(z.body.type===Q)this.removeFragment(z.body);return}let H=z.range[Y];if(!H)return;if(H.time.length===0){this.removeFragment(z.body);return}H.time.some((E)=>{let K=!this.isTimeBuffered(E.startPTS,E.endPTS,Z);if(K)this.removeFragment(z.body);return K})})}detectPartialFragments(Y){let Z=this.timeRanges;if(!Z||Y.frag.sn==="initSegment")return;let Q=Y.frag,X=X9(Q),J=this.fragments[X];if(!J||J.buffered&&Q.gap)return;let W=!Q.relurl;if(Object.keys(Z).forEach((q)=>{let z=Q.elementaryStreams[q];if(!z)return;let H=Z[q],E=W||z.partial===!0;J.range[q]=this.getBufferedTimes(Q,Y.part,E,H)}),J.loaded=null,Object.keys(J.range).length){if(this.bufferedEnd(J,Q),!R2(J))this.removeParts(Q.sn-1,Q.type)}else this.removeFragment(J.body)}bufferedEnd(Y,Z){if(Y.buffered=!0,Y.body.endList=Z.endList||Y.body.endList)this.endListFragments[Y.body.type]=Y}removeParts(Y,Z){let Q=this.activePartLists[Z];if(!Q)return;this.activePartLists[Z]=y3(Q,(X)=>X.fragment.sn>=Y)}fragBuffered(Y,Z){let Q=X9(Y),X=this.fragments[Q];if(!X&&Z){if(X=this.fragments[Q]={body:Y,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},Y.gap)this.hasGaps=!0}if(X)X.loaded=null,this.bufferedEnd(X,Y)}getBufferedTimes(Y,Z,Q,X){let J={time:[],partial:Q},W=Y.start,q=Y.end,z=Y.minEndPTS||q,H=Y.maxStartPTS||W;for(let E=0;E=K&&z<=G){J.time.push({startPTS:Math.max(W,X.start(E)),endPTS:Math.min(q,X.end(E))});break}else if(WK){let U=Math.max(W,X.start(E)),V=Math.min(q,X.end(E));if(V>U)J.partial=!0,J.time.push({startPTS:U,endPTS:V})}else if(q<=K)break}return J}getPartialFragment(Y){let Z=null,Q,X,J,W=0,{bufferPadding:q,fragments:z}=this;return Object.keys(z).forEach((H)=>{let E=z[H];if(!E)return;if(R2(E)){if(X=E.body.start-q,J=E.body.end+q,Y>=X&&Y<=J){if(Q=Math.min(Y-X,J-Y),W<=Q)Z=E.body,W=Q}}}),Z}isEndListAppended(Y){let Z=this.endListFragments[Y];return Z!==void 0&&(Z.buffered||R2(Z))}getState(Y){let Z=X9(Y),Q=this.fragments[Z];if(Q)if(!Q.buffered)return G1.APPENDING;else if(R2(Q))return G1.PARTIAL;else return G1.OK;return G1.NOT_LOADED}isTimeBuffered(Y,Z,Q){let X,J;for(let W=0;W=X&&Z<=J)return!0;if(Z<=X)return!1}return!1}onManifestLoading(){this.removeAllFragments()}onFragLoaded(Y,Z){if(Z.frag.sn==="initSegment"||Z.frag.bitrateTest)return;let Q=Z.frag,X=Z.part?null:Z,J=X9(Q);this.fragments[J]={body:Q,appendedPTS:null,loaded:X,buffered:!1,range:Object.create(null)}}onBufferAppended(Y,Z){let{frag:Q,part:X,timeRanges:J,type:W}=Z;if(Q.sn==="initSegment")return;let q=Q.type;if(X){let H=this.activePartLists[q];if(!H)this.activePartLists[q]=H=[];H.push(X)}this.timeRanges=J;let z=J[W];this.detectEvictedFragments(W,z,q,X)}onFragBuffered(Y,Z){this.detectPartialFragments(Z)}hasFragment(Y){let Z=X9(Y);return!!this.fragments[Z]}hasFragments(Y){let{fragments:Z}=this,Q=Object.keys(Z);if(!Y)return Q.length>0;for(let X=Q.length;X--;){let J=Z[Q[X]];if((J==null?void 0:J.body.type)===Y)return!0}return!1}hasParts(Y){var Z;return!!((Z=this.activePartLists[Y])!=null&&Z.length)}removeFragmentsInRange(Y,Z,Q,X,J){if(X&&!this.hasGaps)return;Object.keys(this.fragments).forEach((W)=>{let q=this.fragments[W];if(!q)return;let z=q.body;if(z.type!==Q||X&&!z.gap)return;if(z.startY&&(q.buffered||J))this.removeFragment(z)})}removeFragment(Y){let Z=X9(Y);Y.clearElementaryStreamInfo();let Q=this.activePartLists[Y.type];if(Q){let X=Y.sn;this.activePartLists[Y.type]=y3(Q,(J)=>J.fragment.sn!==X)}if(delete this.fragments[Z],Y.endList)delete this.endListFragments[Y.type]}removeAllFragments(){var Y;this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1;let Z=(Y=this.hls)==null||(Y=Y.latestLevelDetails)==null?void 0:Y.partList;if(Z)Z.forEach((Q)=>Q.clearElementaryStreamInfo())}}function R2(Y){var Z,Q,X;return Y.buffered&&!!(Y.body.gap||(Z=Y.range.video)!=null&&Z.partial||(Q=Y.range.audio)!=null&&Q.partial||(X=Y.range.audiovideo)!=null&&X.partial)}function X9(Y){return`${Y.type}_${Y.level}_${Y.sn}`}function y3(Y,Z){return Y.filter((Q)=>{let X=Z(Q);if(!X)Q.clearElementaryStreamInfo();return X})}var _6={cbc:0,ctr:1};class ZE{constructor(Y,Z,Q){this.subtle=void 0,this.aesIV=void 0,this.aesMode=void 0,this.subtle=Y,this.aesIV=Z,this.aesMode=Q}decrypt(Y,Z){switch(this.aesMode){case _6.cbc:return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},Z,Y);case _6.ctr:return this.subtle.decrypt({name:"AES-CTR",counter:this.aesIV,length:64},Z,Y);default:throw Error(`[AESCrypto] invalid aes mode ${this.aesMode}`)}}}function a$(Y){let Z=Y.byteLength,Q=Z&&new DataView(Y.buffer).getUint8(Z-1);if(Q)return Y.slice(0,Z-Q);return Y}class QE{constructor(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}uint8ArrayToUint32Array_(Y){let Z=new DataView(Y),Q=new Uint32Array(4);for(let X=0;X<4;X++)Q[X]=Z.getUint32(X*4);return Q}initTable(){let Y=this.sBox,Z=this.invSBox,Q=this.subMix,X=Q[0],J=Q[1],W=Q[2],q=Q[3],z=this.invSubMix,H=z[0],E=z[1],K=z[2],G=z[3],U=new Uint32Array(256),V=0,F=0,R=0;for(R=0;R<256;R++)if(R<128)U[R]=R<<1;else U[R]=R<<1^283;for(R=0;R<256;R++){let B=F^F<<1^F<<2^F<<3^F<<4;B=B>>>8^B&255^99,Y[V]=B,Z[B]=V;let $=U[V],L=U[$],O=U[L],j=U[B]*257^B*16843008;if(X[V]=j<<24|j>>>8,J[V]=j<<16|j>>>16,W[V]=j<<8|j>>>24,q[V]=j,j=O*16843009^L*65537^$*257^V*16843008,H[B]=j<<24|j>>>8,E[B]=j<<16|j>>>16,K[B]=j<<8|j>>>24,G[B]=j,!V)V=F=1;else V=$^U[U[U[O^$]]],F^=U[U[F]]}}expandKey(Y){let Z=this.uint8ArrayToUint32Array_(Y),Q=!0,X=0;while(X{let q=ArrayBuffer.isView(Y)?Y:new Uint8Array(Y);this.softwareDecrypt(q,Z,Q,X);let z=this.flush();if(z)J(z.buffer);else W(Error("[softwareDecrypt] Failed to decrypt data"))});return this.webCryptoDecrypt(new Uint8Array(Y),Z,Q,X)}softwareDecrypt(Y,Z,Q,X){let{currentIV:J,currentResult:W,remainderData:q}=this;if(X!==_6.cbc||Z.byteLength!==16)return S0.warn("SoftwareDecrypt: can only handle AES-128-CBC"),null;if(this.logOnce("JS AES decrypt"),q)Y=Q8(q,Y),this.remainderData=null;let z=this.getValidChunk(Y);if(!z.length)return null;if(J)Q=J;let H=this.softwareDecrypter;if(!H)H=this.softwareDecrypter=new QE;H.expandKey(Z);let E=W;if(this.currentResult=H.decrypt(z.buffer,0,Q),this.currentIV=z.slice(-16).buffer,!E)return null;return E}webCryptoDecrypt(Y,Z,Q,X){if(this.key!==Z||!this.fastAesKey){if(!this.subtle)return Promise.resolve(this.onWebCryptoError(Y,Z,Q,X));this.key=Z,this.fastAesKey=new XE(this.subtle,Z,X)}return this.fastAesKey.expandKey().then((J)=>{if(!this.subtle)return Promise.reject(Error("web crypto not initialized"));return this.logOnce("WebCrypto AES decrypt"),new ZE(this.subtle,new Uint8Array(Q),X).decrypt(Y.buffer,J)}).catch((J)=>{return S0.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${J.name}: ${J.message}`),this.onWebCryptoError(Y,Z,Q,X)})}onWebCryptoError(Y,Z,Q,X){let J=this.enableSoftwareAES;if(J){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(Y,Z,Q,X);let W=this.flush();if(W)return W.buffer}throw Error("WebCrypto"+(J?" and softwareDecrypt":"")+": failed to decrypt data")}getValidChunk(Y){let Z=Y,Q=Y.length-Y.length%e$;if(Q!==Y.length)Z=Y.slice(0,Q),this.remainderData=Y.slice(Q);return Z}logOnce(Y){if(!this.logEnabled)return;S0.log(`[decrypter]: ${Y}`),this.logEnabled=!1}}var k3=Math.pow(2,17);class JE{constructor(Y){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=Y}destroy(){if(this.loader)this.loader.destroy(),this.loader=null}abort(){if(this.loader)this.loader.abort()}load(Y,Z){let Q=Y.url;if(!Q)return Promise.reject(new y8({type:Y0.NETWORK_ERROR,details:h.FRAG_LOAD_ERROR,fatal:!1,frag:Y,error:Error(`Fragment does not have a ${Q?"part list":"url"}`),networkDetails:null}));this.abort();let X=this.config,J=X.fLoader,W=X.loader;return new Promise((q,z)=>{if(this.loader)this.loader.destroy();if(Y.gap)if(Y.tagList.some((V)=>V[0]==="GAP")){z(b3(Y));return}else Y.gap=!1;let H=this.loader=J?new J(X):new W(X),E=g3(Y);Y.loader=H;let K=f3(X.fragLoadPolicy.default),G={loadPolicy:K,timeout:K.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:Y.sn==="initSegment"?1/0:k3};Y.stats=H.stats;let U={onSuccess:(V,F,R,B)=>{this.resetLoader(Y,H);let $=V.data;if(R.resetIV&&Y.decryptdata)Y.decryptdata.iv=new Uint8Array($.slice(0,16)),$=$.slice(16);q({frag:Y,part:null,payload:$,networkDetails:B})},onError:(V,F,R,B)=>{this.resetLoader(Y,H),z(new y8({type:Y0.NETWORK_ERROR,details:h.FRAG_LOAD_ERROR,fatal:!1,frag:Y,response:I0({url:Q,data:void 0},V),error:Error(`HTTP Error ${V.code} ${V.text}`),networkDetails:R,stats:B}))},onAbort:(V,F,R)=>{this.resetLoader(Y,H),z(new y8({type:Y0.NETWORK_ERROR,details:h.INTERNAL_ABORTED,fatal:!1,frag:Y,error:Error("Aborted"),networkDetails:R,stats:V}))},onTimeout:(V,F,R)=>{this.resetLoader(Y,H),z(new y8({type:Y0.NETWORK_ERROR,details:h.FRAG_LOAD_TIMEOUT,fatal:!1,frag:Y,error:Error(`Timeout after ${G.timeout}ms`),networkDetails:R,stats:V}))}};if(Z)U.onProgress=(V,F,R,B)=>Z({frag:Y,part:null,payload:R,networkDetails:B});H.load(E,G,U)})}loadPart(Y,Z,Q){this.abort();let X=this.config,J=X.fLoader,W=X.loader;return new Promise((q,z)=>{if(this.loader)this.loader.destroy();if(Y.gap||Z.gap){z(b3(Y,Z));return}let H=this.loader=J?new J(X):new W(X),E=g3(Y,Z);Y.loader=H;let K=f3(X.fragLoadPolicy.default),G={loadPolicy:K,timeout:K.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:k3};Z.stats=H.stats,H.load(E,G,{onSuccess:(U,V,F,R)=>{this.resetLoader(Y,H),this.updateStatsFromPart(Y,Z);let B={frag:Y,part:Z,payload:U.data,networkDetails:R};Q(B),q(B)},onError:(U,V,F,R)=>{this.resetLoader(Y,H),z(new y8({type:Y0.NETWORK_ERROR,details:h.FRAG_LOAD_ERROR,fatal:!1,frag:Y,part:Z,response:I0({url:E.url,data:void 0},U),error:Error(`HTTP Error ${U.code} ${U.text}`),networkDetails:F,stats:R}))},onAbort:(U,V,F)=>{Y.stats.aborted=Z.stats.aborted,this.resetLoader(Y,H),z(new y8({type:Y0.NETWORK_ERROR,details:h.INTERNAL_ABORTED,fatal:!1,frag:Y,part:Z,error:Error("Aborted"),networkDetails:F,stats:U}))},onTimeout:(U,V,F)=>{this.resetLoader(Y,H),z(new y8({type:Y0.NETWORK_ERROR,details:h.FRAG_LOAD_TIMEOUT,fatal:!1,frag:Y,part:Z,error:Error(`Timeout after ${G.timeout}ms`),networkDetails:F,stats:U}))}})})}updateStatsFromPart(Y,Z){let Q=Y.stats,X=Z.stats,J=X.total;if(Q.loaded+=X.loaded,J){let z=Math.round(Y.duration/Z.duration),H=Math.min(Math.round(Q.loaded/J),z),K=(z-H)*Math.round(Q.loaded/H);Q.total=Q.loaded+K}else Q.total=Math.max(Q.loaded,Q.total);let W=Q.loading,q=X.loading;if(W.start)W.first+=q.first-q.start;else W.start=q.start,W.first=q.first;W.end=q.end}resetLoader(Y,Z){if(Y.loader=null,this.loader===Z)self.clearTimeout(this.partLoadTimeout),this.loader=null;Z.destroy()}}function g3(Y,Z=null){let Q=Z||Y,X={frag:Y,part:Z,responseType:"arraybuffer",url:Q.url,headers:{},rangeStart:0,rangeEnd:0},J=Q.byteRangeStartOffset,W=Q.byteRangeEndOffset;if(r(J)&&r(W)){var q;let z=J,H=W;if(Y.sn==="initSegment"&&YL((q=Y.decryptdata)==null?void 0:q.method)){let E=W-J;if(E%16)H=W+(16-E%16);if(J!==0)X.resetIV=!0,z=J-16}X.rangeStart=z,X.rangeEnd=H}return X}function b3(Y,Z){let Q=Error(`GAP ${Y.gap?"tag":"attribute"} found`),X={type:Y0.MEDIA_ERROR,details:h.FRAG_GAP,fatal:!1,frag:Y,error:Q,networkDetails:null};if(Z)X.part=Z;return(Z?Z:Y).stats.aborted=!0,new y8(X)}function YL(Y){return Y==="AES-128"||Y==="AES-256"}class y8 extends Error{constructor(Y){super(Y.error.message);this.data=void 0,this.data=Y}}class Lq extends d1{constructor(Y,Z){super(Y,Z);this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}destroy(){this.onHandlerDestroying(),this.onHandlerDestroyed()}onHandlerDestroying(){this.clearNextTick(),this.clearInterval()}onHandlerDestroyed(){}hasInterval(){return!!this._tickInterval}hasNextTick(){return!!this._tickTimer}setInterval(Y){if(!this._tickInterval)return this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,Y),!0;return!1}clearInterval(){if(this._tickInterval)return self.clearInterval(this._tickInterval),this._tickInterval=null,!0;return!1}clearNextTick(){if(this._tickTimer)return self.clearTimeout(this._tickTimer),this._tickTimer=null,!0;return!1}tick(){if(this._tickCallCount++,this._tickCallCount===1){if(this.doTick(),this._tickCallCount>1)this.tickImmediate();this._tickCallCount=0}}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}doTick(){}}class r2{constructor(Y,Z,Q,X=0,J=-1,W=!1){this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing=B2(),this.buffering={audio:B2(),video:B2(),audiovideo:B2()},this.level=Y,this.sn=Z,this.id=Q,this.size=X,this.part=J,this.partial=W}}function B2(){return{start:0,executeStart:0,executeEnd:0,end:0}}var _3={length:0,start:()=>0,end:()=>0};class V0{static isBuffered(Y,Z){if(Y){let Q=V0.getBuffered(Y);for(let X=Q.length;X--;)if(Z>=Q.start(X)&&Z<=Q.end(X))return!0}return!1}static bufferedRanges(Y){if(Y){let Z=V0.getBuffered(Y);return V0.timeRangesToArray(Z)}return[]}static timeRangesToArray(Y){let Z=[];for(let Q=0;Q1)Y.sort((E,K)=>E.start-K.start||K.end-E.end);let X=-1,J=[];if(Q)for(let E=0;E=Y[E].start&&Z<=Y[E].end)X=E;let K=J.length;if(K){let G=J[K-1].end;if(Y[E].start-GG)J[K-1].end=Y[E].end}else J.push(Y[E])}else J.push(Y[E])}else J=Y;let W=0,q,z=Z,H=Z;for(let E=0;E=K&&Z<=G)X=E;if(Z+Q>=K&&Z{let J=X.substring(2,X.length-1),W=Q==null?void 0:Q[J];if(W===void 0)return Y.playlistParsingError||(Y.playlistParsingError=Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${J}"`)),X;return W})}return Z}function p3(Y,Z,Q){let X=Y.variableList;if(!X)Y.variableList=X={};let J,W;if("QUERYPARAM"in Z){J=Z.QUERYPARAM;try{let q=new self.URL(Q).searchParams;if(q.has(J))W=q.get(J);else throw Error(`"${J}" does not match any query parameter in URI: "${Q}"`)}catch(q){Y.playlistParsingError||(Y.playlistParsingError=Error(`EXT-X-DEFINE QUERYPARAM: ${q.message}`))}}else J=Z.NAME,W=Z.VALUE;if(J in X)Y.playlistParsingError||(Y.playlistParsingError=Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${J}"`));else X[J]=W||""}function ZL(Y,Z,Q){let X=Z.IMPORT;if(Q&&X in Q){let J=Y.variableList;if(!J)Y.variableList=J={};J[X]=Q[X]}else Y.playlistParsingError||(Y.playlistParsingError=Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${X}"`))}var QL=/^(\d+)x(\d+)$/,c3=/(.+?)=(".*?"|.*?)(?:,|$)/g;class d0{constructor(Y,Z){if(typeof Y==="string")Y=d0.parseAttrList(Y,Z);h0(this,Y)}get clientAttrs(){return Object.keys(this).filter((Y)=>Y.substring(0,2)==="X-")}decimalInteger(Y){let Z=parseInt(this[Y],10);if(Z>Number.MAX_SAFE_INTEGER)return 1/0;return Z}hexadecimalInteger(Y){if(this[Y]){let Z=(this[Y]||"0x").slice(2);Z=(Z.length&1?"0":"")+Z;let Q=new Uint8Array(Z.length/2);for(let X=0;XNumber.MAX_SAFE_INTEGER)return 1/0;return Z}decimalFloatingPoint(Y){return parseFloat(this[Y])}optionalFloat(Y,Z){let Q=this[Y];return Q?parseFloat(Q):Z}enumeratedString(Y){return this[Y]}enumeratedStringList(Y,Z){let Q=this[Y];return(Q?Q.split(/[ ,]+/):[]).reduce((X,J)=>{return X[J.toLowerCase()]=!0,X},Z)}bool(Y){return this[Y]==="YES"}decimalResolution(Y){let Z=QL.exec(this[Y]);if(Z===null)return;return{width:parseInt(Z[1],10),height:parseInt(Z[2],10)}}static parseAttrList(Y,Z){let Q,X={},J='"';c3.lastIndex=0;while((Q=c3.exec(Y))!==null){let W=Q[1].trim(),q=Q[2],z=q.indexOf('"')===0&&q.lastIndexOf('"')===q.length-1,H=!1;if(z)q=q.slice(1,-1);else switch(W){case"IV":case"SCTE35-CMD":case"SCTE35-IN":case"SCTE35-OUT":H=!0}if(Z&&(z||H))q=iW(Z,q);else if(!H&&!z)switch(W){case"CLOSED-CAPTIONS":if(q==="NONE")break;case"ALLOWED-CPC":case"CLASS":case"ASSOC-LANGUAGE":case"AUDIO":case"BYTERANGE":case"CHANNELS":case"CHARACTERISTICS":case"CODECS":case"DATA-ID":case"END-DATE":case"GROUP-ID":case"ID":case"IMPORT":case"INSTREAM-ID":case"KEYFORMAT":case"KEYFORMATVERSIONS":case"LANGUAGE":case"NAME":case"PATHWAY-ID":case"QUERYPARAM":case"RECENTLY-REMOVED-DATERANGES":case"SERVER-URI":case"STABLE-RENDITION-ID":case"STABLE-VARIANT-ID":case"START-DATE":case"SUBTITLES":case"SUPPLEMENTAL-CODECS":case"URI":case"VALUE":case"VIDEO":case"X-ASSET-LIST":case"X-ASSET-URI":S0.warn(`${Y}: attribute ${W} is missing quotes`)}X[W]=q}return X}}var XL="com.apple.hls.interstitial";function JL(Y){return Y!=="ID"&&Y!=="CLASS"&&Y!=="CUE"&&Y!=="START-DATE"&&Y!=="DURATION"&&Y!=="END-DATE"&&Y!=="END-ON-NEXT"}function WL(Y){return Y==="SCTE35-OUT"||Y==="SCTE35-IN"||Y==="SCTE35-CMD"}class Oq{constructor(Y,Z,Q=0){var X;if(this.attr=void 0,this.tagAnchor=void 0,this.tagOrder=void 0,this._startDate=void 0,this._endDate=void 0,this._dateAtEnd=void 0,this._cue=void 0,this._badValueForSameId=void 0,this.tagAnchor=(Z==null?void 0:Z.tagAnchor)||null,this.tagOrder=(X=Z==null?void 0:Z.tagOrder)!=null?X:Q,Z){let J=Z.attr;for(let W in J)if(Object.prototype.hasOwnProperty.call(Y,W)&&Y[W]!==J[W]){S0.warn(`DATERANGE tag attribute: "${W}" does not match for tags with ID: "${Y.ID}"`),this._badValueForSameId=W;break}Y=h0(new d0({}),J,Y)}if(this.attr=Y,Z)this._startDate=Z._startDate,this._cue=Z._cue,this._endDate=Z._endDate,this._dateAtEnd=Z._dateAtEnd;else this._startDate=new Date(Y["START-DATE"]);if("END-DATE"in this.attr){let J=(Z==null?void 0:Z.endDate)||new Date(this.attr["END-DATE"]);if(r(J.getTime()))this._endDate=J}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get cue(){let Y=this._cue;if(Y===void 0)return this._cue=this.attr.enumeratedStringList(this.attr.CUE?"CUE":"X-CUE",{pre:!1,post:!1,once:!1});return Y}get startTime(){let{tagAnchor:Y}=this;if(Y===null||Y.programDateTime===null)return S0.warn(`Expected tagAnchor Fragment with PDT set for DateRange "${this.id}": ${Y}`),NaN;return Y.start+(this.startDate.getTime()-Y.programDateTime)/1000}get startDate(){return this._startDate}get endDate(){let Y=this._endDate||this._dateAtEnd;if(Y)return Y;let Z=this.duration;if(Z!==null)return this._dateAtEnd=new Date(this._startDate.getTime()+Z*1000);return null}get duration(){if("DURATION"in this.attr){let Y=this.attr.decimalFloatingPoint("DURATION");if(r(Y))return Y}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1000;return null}get plannedDuration(){if("PLANNED-DURATION"in this.attr)return this.attr.decimalFloatingPoint("PLANNED-DURATION");return null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isInterstitial(){return this.class===XL}get isValid(){return!!this.id&&!this._badValueForSameId&&r(this.startDate.getTime())&&(this.duration===null||this.duration>=0)&&(!this.endOnNext||!!this.class)&&(!this.attr.CUE||!this.cue.pre&&!this.cue.post||this.cue.pre!==this.cue.post)&&(!this.isInterstitial||("X-ASSET-URI"in this.attr)||("X-ASSET-LIST"in this.attr))}}var qL=10;class qE{constructor(Y){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.dateRangeTagCount=0,this.live=!0,this.requestScheduled=-1,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.appliedTimelineOffset=void 0,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=Y}reloaded(Y){if(!Y){this.advanced=!0,this.updated=!0;return}let Z=this.lastPartSn-Y.lastPartSn,Q=this.lastPartIndex-Y.lastPartIndex;if(this.updated=this.endSN!==Y.endSN||!!Q||!!Z||!this.live,this.advanced=this.endSN>Y.endSN||Z>0||Z===0&&Q>0,this.updated||this.advanced)this.misses=Math.floor(Y.misses*0.6);else this.misses=Y.misses+1}hasKey(Y){return this.encryptedFragments.some((Z)=>{let Q=Z.decryptdata;if(!Q)Z.setKeyFormat(Y.keyFormat),Q=Z.decryptdata;return!!Q&&Y.matches(Q)})}get hasProgramDateTime(){if(this.fragments.length)return r(this.fragments[this.fragments.length-1].programDateTime);return!1}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||qL}get drift(){let Y=this.driftEndTime-this.driftStartTime;if(Y>0)return(this.driftEnd-this.driftStart)*1000/Y;return 1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var Y;if((Y=this.partList)!=null&&Y.length)return this.partList[this.partList.length-1].end;return this.fragmentEnd}get fragmentEnd(){if(this.fragments.length)return this.fragments[this.fragments.length-1].end;return 0}get fragmentStart(){if(this.fragments.length)return this.fragments[0].start;return 0}get age(){if(this.advancedDateTime)return Math.max(Date.now()-this.advancedDateTime,0)/1000;return 0}get lastPartIndex(){var Y;if((Y=this.partList)!=null&&Y.length)return this.partList[this.partList.length-1].index;return-1}get maxPartIndex(){let Y=this.partList;if(Y){let Z=this.lastPartIndex;if(Z!==-1){for(let Q=Y.length;Q--;)if(Y[Q].index>Z)return Y[Q].index;return Z}}return 0}get lastPartSn(){var Y;if((Y=this.partList)!=null&&Y.length)return this.partList[this.partList.length-1].fragment.sn;return this.endSN}get expired(){if(this.live&&this.age&&this.misses<3){let Y=this.partEnd-this.fragmentStart;return this.age>Math.max(Y,this.totalduration)+this.levelTargetDuration}return!1}}function u2(Y,Z){if(Y.length===Z.length)return!Y.some((Q,X)=>Q!==Z[X]);return!1}function u3(Y,Z){if(!Y&&!Z)return!0;if(!Y||!Z)return!1;return u2(Y,Z)}function K9(Y){return Y==="AES-128"||Y==="AES-256"||Y==="AES-256-CTR"}function jq(Y){switch(Y){case"AES-128":case"AES-256":return _6.cbc;case"AES-256-CTR":return _6.ctr;default:throw Error(`invalid full segment method ${Y}`)}}function Aq(Y){return Uint8Array.from(atob(Y),(Z)=>Z.charCodeAt(0))}function rW(Y){return Uint8Array.from(unescape(encodeURIComponent(Y)),(Z)=>Z.charCodeAt(0))}function HL(Y){let Z=rW(Y).subarray(0,16),Q=new Uint8Array(16);return Q.set(Z,16-Z.length),Q}function HE(Y){let Z=function(X,J,W){let q=X[J];X[J]=X[W],X[W]=q};Z(Y,0,3),Z(Y,1,2),Z(Y,4,5),Z(Y,6,7)}function zE(Y){let Z=Y.split(":"),Q=null;if(Z[0]==="data"&&Z.length===2){let X=Z[1].split(";"),J=X[X.length-1].split(",");if(J.length===2){let W=J[0]==="base64",q=J[1];if(W)X.splice(-1,1),Q=Aq(q);else Q=HL(q)}}return Q}var m2=typeof self<"u"?self:void 0,l0={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},A1={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.streamingkeydelivery",PLAYREADY:"com.microsoft.playready",WIDEVINE:"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"};function S2(Y){switch(Y){case A1.FAIRPLAY:return l0.FAIRPLAY;case A1.PLAYREADY:return l0.PLAYREADY;case A1.WIDEVINE:return l0.WIDEVINE;case A1.CLEARKEY:return l0.CLEARKEY}}function wW(Y){switch(Y){case l0.FAIRPLAY:return A1.FAIRPLAY;case l0.PLAYREADY:return A1.PLAYREADY;case l0.WIDEVINE:return A1.WIDEVINE;case l0.CLEARKEY:return A1.CLEARKEY}}function xY(Y){let{drmSystems:Z,widevineLicenseUrl:Q}=Y,X=Z?[l0.FAIRPLAY,l0.WIDEVINE,l0.PLAYREADY,l0.CLEARKEY].filter((J)=>!!Z[J]):[];if(!X[l0.WIDEVINE]&&Q)X.push(l0.WIDEVINE);return X}var EE=function(Y){if(m2!=null&&(Y=m2.navigator)!=null&&Y.requestMediaKeySystemAccess)return self.navigator.requestMediaKeySystemAccess.bind(self.navigator);else return null}();function zL(Y,Z,Q,X){let J;switch(Y){case l0.FAIRPLAY:J=["cenc","sinf"];break;case l0.WIDEVINE:case l0.PLAYREADY:J=["cenc"];break;case l0.CLEARKEY:J=["cenc","keyids"];break;default:throw Error(`Unknown key-system: ${Y}`)}return EL(J,Z,Q,X)}function EL(Y,Z,Q,X){return[{initDataTypes:Y,persistentState:X.persistentState||"optional",distinctiveIdentifier:X.distinctiveIdentifier||"optional",sessionTypes:X.sessionTypes||[X.sessionType||"temporary"],audioCapabilities:Z.map((W)=>({contentType:`audio/mp4; codecs=${W}`,robustness:X.audioRobustness||"",encryptionScheme:X.audioEncryptionScheme||null})),videoCapabilities:Q.map((W)=>({contentType:`video/mp4; codecs=${W}`,robustness:X.videoRobustness||"",encryptionScheme:X.videoEncryptionScheme||null}))}]}function KL(Y){var Z;return!!Y&&(Y.sessionType==="persistent-license"||!!((Z=Y.sessionTypes)!=null&&Z.some((Q)=>Q==="persistent-license")))}function KE(Y){let Z=new Uint16Array(Y.buffer,Y.byteOffset,Y.byteLength/2),Q=String.fromCharCode.apply(null,Array.from(Z)),X=Q.substring(Q.indexOf("<"),Q.length),q=new DOMParser().parseFromString(X,"text/xml").getElementsByTagName("KID")[0];if(q){let z=q.childNodes[0]?q.childNodes[0].nodeValue:q.getAttribute("VALUE");if(z){let H=Aq(z).subarray(0,16);return HE(H),H}}return null}var J9={};class g6{static clearKeyUriToKeyIdMap(){J9={}}static setKeyIdForUri(Y,Z){J9[Y]=Z}static addKeyIdForUri(Y){let Z=Object.keys(J9).length%Number.MAX_SAFE_INTEGER,Q=new Uint8Array(16);return new DataView(Q.buffer,12,4).setUint32(0,Z),J9[Y]=Q,Q}constructor(Y,Z,Q,X=[1],J=null,W){if(this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=Y,this.uri=Z,this.keyFormat=Q,this.keyFormatVersions=X,this.iv=J,this.encrypted=Y?Y!=="NONE":!1,this.isCommonEncryption=this.encrypted&&!K9(Y),W!=null&&W.startsWith("0x"))this.keyId=new Uint8Array(h5(W))}matches(Y){return Y.uri===this.uri&&Y.method===this.method&&Y.encrypted===this.encrypted&&Y.keyFormat===this.keyFormat&&u2(Y.keyFormatVersions,this.keyFormatVersions)&&u3(Y.iv,this.iv)&&u3(Y.keyId,this.keyId)}isSupported(){if(this.method){if(K9(this.method)||this.method==="NONE")return!0;if(this.keyFormat==="identity")return this.method==="SAMPLE-AES";else switch(this.keyFormat){case A1.FAIRPLAY:case A1.WIDEVINE:case A1.PLAYREADY:case A1.CLEARKEY:return["SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)!==-1}}return!1}getDecryptData(Y,Z){if(!this.encrypted||!this.uri)return null;if(K9(this.method)){let J=this.iv;if(!J){if(typeof Y!=="number")S0.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),Y=0;J=VL(Y)}return new g6(this.method,this.uri,"identity",this.keyFormatVersions,J)}if(this.keyId){let J=J9[this.uri];if(J&&!u2(this.keyId,J))g6.setKeyIdForUri(this.uri,this.keyId);if(this.pssh)return this}let Q=zE(this.uri);if(Q)switch(this.keyFormat){case A1.WIDEVINE:if(this.pssh=Q,!this.keyId){let J=D$(Q.buffer);if(J.length){var X;let W=J[0];this.keyId=(X=W.kids)!=null&&X.length?W.kids[0]:null}}if(!this.keyId)this.keyId=m3(Z);break;case A1.PLAYREADY:{let J=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=A$(J,null,Q),this.keyId=KE(Q);break}default:{let J=Q.subarray(0,16);if(J.length!==16){let W=new Uint8Array(16);W.set(J,16-J.length),J=W}this.keyId=J;break}}if(!this.keyId||this.keyId.byteLength!==16){let J;if(J=GL(Z),!J){if(J=m3(Z),!J)J=J9[this.uri]}if(J)this.keyId=J,g6.setKeyIdForUri(this.uri,J)}return this}}function GL(Y){let Z=Y==null?void 0:Y[A1.WIDEVINE];if(Z)return Z.keyId;return null}function m3(Y){let Z=Y==null?void 0:Y[A1.PLAYREADY];if(Z){let Q=zE(Z.uri);if(Q)return KE(Q)}return null}function VL(Y){let Z=new Uint8Array(16);for(let Q=12;Q<16;Q++)Z[Q]=Y>>8*(15-Q)&255;return Z}var o3=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,d3=/#EXT-X-MEDIA:(.*)/g,UL=/^#EXT(?:INF|-X-TARGETDURATION):/m,PW=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[^\r\n]*)/.source,/#.*/.source].join("|"),"g"),FL=new RegExp([/#EXT-X-(PROGRAM-DATE-TIME|BYTERANGE|DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|"));class b8{static findGroup(Y,Z){for(let Q=0;Q0&&J.length({id:H.attrs.AUDIO,audioCodec:H.audioCodec})),SUBTITLES:W.map((H)=>({id:H.attrs.SUBTITLES,textCodec:H.textCodec})),"CLOSED-CAPTIONS":[]},z=0;d3.lastIndex=0;while((X=d3.exec(Y))!==null){let H=new d0(X[1],Q),E=H.TYPE;if(E){let K=q[E],G=J[E]||[];J[E]=G;let U=H.LANGUAGE,V=H["ASSOC-LANGUAGE"],F=H.CHANNELS,R=H.CHARACTERISTICS,B=H["INSTREAM-ID"],$={attrs:H,bitrate:0,id:z++,groupId:H["GROUP-ID"]||"",name:H.NAME||U||"",type:E,default:H.bool("DEFAULT"),autoselect:H.bool("AUTOSELECT"),forced:H.bool("FORCED"),lang:U,url:H.URI?b8.resolve(H.URI,Z):""};if(V)$.assocLang=V;if(F)$.channels=F;if(R)$.characteristics=R;if(B)$.instreamId=B;if(K!=null&&K.length){let L=b8.findGroup(K,$.groupId)||K[0];i3($,L,"audioCodec"),i3($,L,"textCodec")}G.push($)}}return J}static parseLevelPlaylist(Y,Z,Q,X,J,W){var q;let z={url:Z},H=new qE(Z),E=H.fragments,K=[],G=null,U=0,V=0,F=0,R=0,B=0,$=null,L=new M2(X,z),O,j,w,D=-1,M=!1,C=null,I;if(PW.lastIndex=0,H.m3u8=Y,H.hasVariableRefs=v3(Y),((q=PW.exec(Y))==null?void 0:q[0])!=="#EXTM3U")return H.playlistParsingError=Error("Missing format identifier #EXTM3U"),H;while((O=PW.exec(Y))!==null){if(M){if(M=!1,L=new M2(X,z),L.playlistOffset=F,L.setStart(F),L.sn=U,L.cc=R,B)L.bitrate=B;if(L.level=Q,G){if(L.initSegment=G,G.rawProgramDateTime)L.rawProgramDateTime=G.rawProgramDateTime,G.rawProgramDateTime=null;if(C)L.setByteRange(C),C=null}}let o=O[1];if(o){L.duration=parseFloat(o);let n=(" "+O[2]).slice(1);L.title=n||null,L.tagList.push(n?["INF",o,n]:["INF",o])}else if(O[3]){if(r(L.duration)){if(L.playlistOffset=F,L.setStart(F),w)a3(L,w,H);L.sn=U,L.level=Q,L.cc=R,E.push(L);let n=(" "+O[3]).slice(1);L.relurl=iW(H,n),aW(L,$,K),$=L,F+=L.duration,U++,V=0,M=!0}}else{if(O=O[0].match(FL),!O){S0.warn("No matches on slow regex match for level playlist!");continue}for(j=1;j0)t3(H,n,O);U=H.startSN=parseInt(g);break;case"SKIP":{if(H.skippedSegments)G6(H,n,O);let c=new d0(g,H),s=c.decimalInteger("SKIPPED-SEGMENTS");if(r(s)){H.skippedSegments+=s;for(let p=s;p--;)E.push(null);U+=s}let Q0=c.enumeratedString("RECENTLY-REMOVED-DATERANGES");if(Q0)H.recentlyRemovedDateranges=(H.recentlyRemovedDateranges||[]).concat(Q0.split("\t"));break}case"TARGETDURATION":if(H.targetduration!==0)G6(H,n,O);H.targetduration=Math.max(parseInt(g),1);break;case"VERSION":if(H.version!==null)G6(H,n,O);H.version=parseInt(g);break;case"INDEPENDENT-SEGMENTS":break;case"ENDLIST":if(!H.live)G6(H,n,O);H.live=!1;break;case"#":if(g||l)L.tagList.push(l?[g,l]:[g]);break;case"DISCONTINUITY":R++,L.tagList.push(["DIS"]);break;case"GAP":L.gap=!0,L.tagList.push([n]);break;case"BITRATE":if(L.tagList.push([n,g]),B=parseInt(g)*1000,r(B))L.bitrate=B;else B=0;break;case"DATERANGE":{let c=new d0(g,H),s=new Oq(c,H.dateRanges[c.ID],H.dateRangeTagCount);if(H.dateRangeTagCount++,s.isValid||H.skippedSegments)H.dateRanges[s.id]=s;else S0.warn(`Ignoring invalid DATERANGE tag: "${g}"`);L.tagList.push(["EXT-X-DATERANGE",g]);break}case"DEFINE":{{let c=new d0(g,H);if("IMPORT"in c)ZL(H,c,W);else p3(H,c,Z)}break}case"DISCONTINUITY-SEQUENCE":if(H.startCC!==0)G6(H,n,O);else if(E.length>0)t3(H,n,O);H.startCC=R=parseInt(g);break;case"KEY":{let c=l3(g,Z,H);if(c.isSupported()){if(c.method==="NONE"){w=void 0;break}if(!w)w={};let s=w[c.keyFormat];if(!(s!=null&&s.matches(c))){if(s)w=h0({},w);w[c.keyFormat]=c}}else S0.warn(`[Keys] Ignoring unsupported EXT-X-KEY tag: "${g}"`);break}case"START":H.startTimeOffset=n3(g);break;case"MAP":{let c=new d0(g,H);if(L.duration){let s=new M2(X,z);if(r3(s,c,Q,w),G=s,L.initSegment=G,G.rawProgramDateTime&&!L.rawProgramDateTime)L.rawProgramDateTime=G.rawProgramDateTime}else{let s=L.byteRangeEndOffset;if(s){let Q0=L.byteRangeStartOffset;C=`${s-Q0}@${Q0}`}else C=null;r3(L,c,Q,w),G=L,M=!0}G.cc=R;break}case"SERVER-CONTROL":{if(I)G6(H,n,O);I=new d0(g),H.canBlockReload=I.bool("CAN-BLOCK-RELOAD"),H.canSkipUntil=I.optionalFloat("CAN-SKIP-UNTIL",0),H.canSkipDateRanges=H.canSkipUntil>0&&I.bool("CAN-SKIP-DATERANGES"),H.partHoldBack=I.optionalFloat("PART-HOLD-BACK",0),H.holdBack=I.optionalFloat("HOLD-BACK",0);break}case"PART-INF":{if(H.partTarget)G6(H,n,O);let c=new d0(g);H.partTarget=c.decimalFloatingPoint("PART-TARGET");break}case"PART":{let c=H.partList;if(!c)c=H.partList=[];let s=V>0?c[c.length-1]:void 0,Q0=V++,p=new d0(g,H),d=new f5(p,L,z,Q0,s);c.push(d),L.duration+=d.duration;break}case"PRELOAD-HINT":{let c=new d0(g,H);H.preloadHint=c;break}case"RENDITION-REPORT":{let c=new d0(g,H);H.renditionReports=H.renditionReports||[],H.renditionReports.push(c);break}default:S0.warn(`line parsed but not handled: ${O}`);break}}}if($&&!$.relurl){if(E.pop(),F-=$.duration,H.partList)H.fragmentHint=$}else if(H.partList){if(aW(L,$,K),L.cc=R,H.fragmentHint=L,w)a3(L,w,H)}if(!H.targetduration)H.playlistParsingError=Error("Missing Target Duration");let x=E.length,f=E[0],_=E[x-1];if(F+=H.skippedSegments*H.targetduration,F>0&&x&&_){H.averagetargetduration=F/x;let o=_.sn;if(H.endSN=o!=="initSegment"?o:0,!H.live)_.endList=!0;if(D>0){if(BL(E,D),f)K.unshift(f)}}if(H.fragmentHint)F+=H.fragmentHint.duration;if(H.totalduration=F,K.length&&H.dateRangeTagCount&&f)GE(K,H);return H.endCC=R,H}}function GE(Y,Z){let Q=Y.length;if(!Q)if(Z.hasProgramDateTime){let z=Z.fragments[Z.fragments.length-1];Y.push(z),Q++}else return;let X=Y[Q-1],J=Z.live?1/0:Z.totalduration,W=Object.keys(Z.dateRanges);for(let z=W.length;z--;){let H=Z.dateRanges[W[z]],E=H.startDate.getTime();H.tagAnchor=X.ref;for(let K=Q;K--;){var q;if(((q=Y[K])==null?void 0:q.sn)=z||X===0){var q;let H=(((q=Q[X+1])==null?void 0:q.start)||J)-W.start;if(Z<=z+H*1000){let E=Q[X].sn-Y.startSN;if(E<0)return-1;let K=Y.fragments;if(K.length>Q.length){let U=(Q[X+1]||K[K.length-1]).sn-Y.startSN;for(let V=U;V>E;V--){let F=K[V].programDateTime;if(Z>=F&&ZX);["video","audio","text"].forEach((X)=>{let J=Q.filter((W)=>Bq(W,X));if(J.length)Z[`${X}Codec`]=J.map((W)=>W.split("/")[0]).join(","),Q=Q.filter((W)=>J.indexOf(W)===-1)}),Z.unknownCodecs=Q}function i3(Y,Z,Q){let X=Z[Q];if(X)Y[Q]=X}function BL(Y,Z){let Q=Y[Z];for(let X=Z;X--;){let J=Y[X];if(!J)return;J.programDateTime=Q.programDateTime-J.duration*1000,Q=J}}function aW(Y,Z,Q){if(Y.rawProgramDateTime)Q.push(Y);else if(Z!=null&&Z.programDateTime)Y.programDateTime=Z.endProgramDateTime}function r3(Y,Z,Q,X){if(Y.relurl=Z.URI,Z.BYTERANGE)Y.setByteRange(Z.BYTERANGE);if(Y.level=Q,Y.sn="initSegment",X)Y.levelkeys=X;Y.initSegment=null}function a3(Y,Z,Q){Y.levelkeys=Z;let{encryptedFragments:X}=Q;if((!X.length||X[X.length-1].levelkeys!==Z)&&Object.keys(Z).some((J)=>Z[J].isCommonEncryption))X.push(Y)}function G6(Y,Z,Q){Y.playlistParsingError=Error(`#EXT-X-${Z} must not appear more than once (${Q[0]})`)}function t3(Y,Z,Q){Y.playlistParsingError=Error(`#EXT-X-${Z} must appear before the first Media Segment (${Q[0]})`)}function CW(Y,Z){let Q=Z.startPTS;if(r(Q)){let X=0,J;if(Z.sn>Y.sn)X=Q-Y.start,J=Y;else X=Y.start-Q,J=Z;if(J.duration!==X)J.setDuration(X)}else if(Z.sn>Y.sn)if(Y.cc===Z.cc&&Y.minEndPTS)Z.setStart(Y.start+(Y.minEndPTS-Y.start));else Z.setStart(Y.start+Y.duration);else Z.setStart(Math.max(Y.start-Z.duration,0))}function VE(Y,Z,Q,X,J,W,q){if(X-Q<=0)q.warn("Fragment should have a positive duration",Z),X=Q+Z.duration,W=J+Z.duration;let H=Q,E=X,K=Z.startPTS,G=Z.endPTS;if(r(K)){let $=Math.abs(K-Q);if(Y&&$>Y.totalduration)q.warn(`media timestamps and playlist times differ by ${$}s for level ${Z.level} ${Y.url}`);else if(!r(Z.deltaPTS))Z.deltaPTS=$;else Z.deltaPTS=Math.max($,Z.deltaPTS);H=Math.max(Q,K),Q=Math.min(Q,K),J=Z.startDTS!==void 0?Math.min(J,Z.startDTS):J,E=Math.min(X,G),X=Math.max(X,G),W=Z.endDTS!==void 0?Math.max(W,Z.endDTS):W}let U=Q-Z.start;if(Z.start!==0)Z.setStart(Q);Z.setDuration(X-Z.start),Z.startPTS=Q,Z.maxStartPTS=H,Z.startDTS=J,Z.endPTS=X,Z.minEndPTS=E,Z.endDTS=W;let V=Z.sn;if(!Y||VY.endSN)return 0;let F,R=V-Y.startSN,B=Y.fragments;B[R]=Z;for(F=R;F>0;F--)CW(B[F],B[F-1]);for(F=R;F=0;K--){let G=J[K].initSegment;if(G){X=G;break}}if(Y.fragmentHint)delete Y.fragmentHint.endPTS;let W;OL(Y,Z,(K,G,U,V)=>{if((!Z.startCC||Z.skippedSegments)&&G.cc!==K.cc){let F=K.cc-G.cc;for(let R=U;R{var G;if(K&&(!K.initSegment||K.initSegment.relurl===((G=X)==null?void 0:G.relurl)))K.initSegment=X});if(Z.skippedSegments){if(Z.deltaUpdateFailed=q.some((K)=>!K),Z.deltaUpdateFailed){Q.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let K=Z.skippedSegments;K--;)q.shift();Z.startSN=q[0].sn}else{if(Z.canSkipDateRanges)Z.dateRanges=$L(Y.dateRanges,Z,Q);let K=Y.fragments.filter((G)=>G.rawProgramDateTime);if(Y.hasProgramDateTime&&!Z.hasProgramDateTime){for(let G=1;G{G.elementaryStreams=K.elementaryStreams,G.stats=K.stats}),W)VE(Z,W,W.startPTS,W.endPTS,W.startDTS,W.endDTS,Q);else UE(Y,Z);if(q.length)Z.totalduration=Z.edge-q[0].start;Z.driftStartTime=Y.driftStartTime,Z.driftStart=Y.driftStart;let E=Z.advancedDateTime;if(Z.advanced&&E){let K=Z.edge;if(!Z.driftStart)Z.driftStartTime=E,Z.driftStart=K;Z.driftEndTime=E,Z.driftEnd=K}else Z.driftEndTime=Y.driftEndTime,Z.driftEnd=Y.driftEnd,Z.advancedDateTime=Y.advancedDateTime;if(Z.requestScheduled===-1)Z.requestScheduled=Y.requestScheduled}function $L(Y,Z,Q){let{dateRanges:X,recentlyRemovedDateranges:J}=Z,W=h0({},Y);if(J)J.forEach((H)=>{delete W[H]});let z=Object.keys(W).length;if(!z)return X;return Object.keys(X).forEach((H)=>{let E=W[H],K=new Oq(X[H].attr,E);if(K.isValid){if(W[H]=K,!E)K.tagOrder+=z}else Q.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${_0(X[H].attr)}"`)}),W}function LL(Y,Z,Q){if(Y&&Z){let X=0;for(let J=0,W=Y.length;J<=W;J++){let q=Y[J],z=Z[J+X];if(q&&z&&q.index===z.index&&q.fragment.sn===z.fragment.sn)Q(q,z);else X--}}}function OL(Y,Z,Q){let X=Z.skippedSegments,J=Math.max(Y.startSN,Z.startSN)-Z.startSN,W=(Y.fragmentHint?1:0)+(X?Z.endSN:Math.min(Y.endSN,Z.endSN))-Z.startSN,q=Z.startSN-Y.startSN,z=Z.fragmentHint?Z.fragments.concat(Z.fragmentHint):Z.fragments,H=Y.fragmentHint?Y.fragments.concat(Y.fragmentHint):Y.fragments;for(let E=J;E<=W;E++){let K=H[q+E],G=z[E];if(X&&!G&&K)G=Z.fragments[E]=K;if(K&&G){Q(K,G,E,z);let U=K.relurl,V=G.relurl;if(U&&jL(U,V)){Z.playlistParsingError=e3(`media sequence mismatch ${G.sn}:`,Y,Z,K,G);return}else if(K.cc!==G.cc){Z.playlistParsingError=e3(`discontinuity sequence mismatch (${K.cc}!=${G.cc})`,Y,Z,K,G);return}}}}function e3(Y,Z,Q,X,J){return Error(`${Y} ${J.url} Playlist starting @${Z.startSN} ${Z.m3u8} Playlist starting @${Q.startSN} ${Q.m3u8}`)}function UE(Y,Z,Q=!0){let X=Z.startSN+Z.skippedSegments-Y.startSN,J=Y.fragments,W=X>=0,q=0;if(W&&XZ){let W=X[X.length-1].duration*1000;if(W{var X;(X=Z.details)==null||X.fragments.forEach((J)=>{if(J.level=Q,J.initSegment)J.initSegment.level=Q})})}function jL(Y,Z){if(Y!==Z&&Z)return Z5(Y)!==Z5(Z);return!1}function Z5(Y){return Y.replace(/\?[^?]*$/,"")}function SY(Y,Z){for(let X=0,J=Y.length;XY.startCC)return!0}return!1}function Q5(Y,Z){let Q=Y.start+Z;Y.startPTS=Q,Y.setStart(Q),Y.endPTS=Q+Y.duration}function $E(Y,Z){let Q=Z.fragments;for(let X=0,J=Q.length;X{let{config:W,fragCurrent:q,media:z,mediaBuffer:H,state:E}=this,K=z?z.currentTime:0,G=V0.bufferInfo(H?H:z,K,W.maxBufferHole),U=!G.len;if(this.log(`Media seeking to ${r(K)?K.toFixed(3):K}, state: ${E}, ${U?"out of":"in"} buffer`),this.state===y.ENDED)this.resetLoadingState();else if(q){let V=W.maxFragLookUpTolerance,F=q.start-V,R=q.start+q.duration+V;if(U||RG.end){let B=K>R;if(KV)this.lastCurrentTime=K;if(!this.loadingParts){let F=Math.max(G.end,K),R=this.shouldLoadParts(this.getLevelDetails(),F);if(R)this.log(`LL-Part loading ON after seeking to ${K.toFixed(2)} with buffer @${F.toFixed(2)}`),this.loadingParts=R}}if(!this.hls.hasEnoughToStart){if(this.log(`Setting ${U?"startPosition":"nextLoadPosition"} to ${K} for seek without enough to start`),this.nextLoadPosition=K,U)this.startPosition=K}if(U&&this.state===y.IDLE)this.tickImmediate()},this.onMediaEnded=()=>{this.log("setting startPosition to 0 because media ended"),this.startPosition=this.lastCurrentTime=0},this.playlistType=J,this.hls=Y,this.fragmentLoader=new JE(Y.config),this.keyLoader=Q,this.fragmentTracker=Z,this.config=Y.config,this.decrypter=new i2(Y.config)}registerListeners(){let{hls:Y}=this;Y.on(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.on(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.MANIFEST_LOADED,this.onManifestLoaded,this),Y.on(N.ERROR,this.onError,this)}unregisterListeners(){let{hls:Y}=this;Y.off(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.off(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.MANIFEST_LOADED,this.onManifestLoaded,this),Y.off(N.ERROR,this.onError,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(Y){}stopLoad(){if(this.state===y.STOPPED)return;this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);let Y=this.fragCurrent;if(Y!=null&&Y.loader)Y.abortRequests(),this.fragmentTracker.removeFragment(Y);this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=y.STOPPED}get startPositionValue(){let{nextLoadPosition:Y,startPosition:Z}=this;if(Z===-1&&Y)return Y;return Z}get bufferingEnabled(){return this.buffering}pauseBuffering(){this.buffering=!1}resumeBuffering(){this.buffering=!0}get inFlightFrag(){return{frag:this.fragCurrent,state:this.state}}_streamEnded(Y,Z){if(Z.live||!this.media)return!1;let Q=Y.end||0,X=this.config.timelineOffset||0;if(Q<=X)return!1;let J=Y.buffered;if(this.config.maxBufferHole&&J&&J.length>1)Y=V0.bufferedInfo(J,Y.start,0);let W=Y.nextStart;if(W&&W>X&&W{let W=J.frag;if(this.fragContextChanged(W)){this.warn(`${W.type} sn: ${W.sn}${J.part?" part: "+J.part.index:""} of ${this.fragInfo(W,!1,J.part)}) was dropped during download.`),this.fragmentTracker.removeFragment(W);return}W.stats.chunkCount++,this._handleFragmentLoadProgress(J)};this._doFragLoad(Y,Z,Q,X).then((J)=>{if(!J)return;let W=this.state,q=J.frag;if(this.fragContextChanged(q)){if(W===y.FRAG_LOADING||!this.fragCurrent&&W===y.PARSING)this.fragmentTracker.removeFragment(q),this.state=y.IDLE;return}if("payload"in J)this.log(`Loaded ${q.type} sn: ${q.sn} of ${this.playlistLabel()} ${q.level}`),this.hls.trigger(N.FRAG_LOADED,J);this._handleFragmentLoadComplete(J)}).catch((J)=>{if(this.state===y.STOPPED||this.state===y.ERROR)return;this.warn(`Frag error: ${(J==null?void 0:J.message)||J}`),this.resetFragmentLoading(Y)})}clearTrackerIfNeeded(Y){var Z;let{fragmentTracker:Q}=this;if(Q.getState(Y)===G1.APPENDING){let J=Y.type,W=this.getFwdBufferInfo(this.mediaBuffer,J),q=Math.max(Y.duration,W?W.len:this.config.maxBufferLength),z=this.backtrackFragment;if((z?Y.sn-z.sn:0)===1||this.reduceMaxBufferLength(q,Y.duration))Q.removeFragment(Y)}else if(((Z=this.mediaBuffer)==null?void 0:Z.buffered.length)===0)Q.removeAllFragments();else if(Q.hasParts(Y.type)){if(Q.detectPartialFragments({frag:Y,part:null,stats:Y.stats,id:Y.type}),Q.getState(Y)===G1.PARTIAL)Q.removeFragment(Y)}}checkLiveUpdate(Y){if(Y.updated&&!Y.live){let Z=Y.fragments[Y.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:Z,part:null,stats:Z.stats,id:Z.type})}if(!Y.fragments[0])Y.deltaUpdateFailed=!0}waitForLive(Y){let Z=Y.details;return(Z==null?void 0:Z.live)&&Z.type!=="EVENT"&&(this.levelLastLoaded!==Y||Z.expired)}flushMainBuffer(Y,Z,Q=null){if(!(Y-Z))return;let X={startOffset:Y,endOffset:Z,type:Q};this.hls.trigger(N.BUFFER_FLUSHING,X)}_loadInitSegment(Y,Z){this._doFragLoad(Y,Z).then((Q)=>{let X=Q==null?void 0:Q.frag;if(!X||this.fragContextChanged(X)||!this.levels)throw Error("init load aborted");return Q}).then((Q)=>{let{hls:X}=this,{frag:J,payload:W}=Q,q=J.decryptdata;if(W&&W.byteLength>0&&q!=null&&q.key&&q.iv&&K9(q.method)){let z=self.performance.now();return this.decrypter.decrypt(new Uint8Array(W),q.key.buffer,q.iv.buffer,jq(q.method)).catch((H)=>{throw X.trigger(N.ERROR,{type:Y0.MEDIA_ERROR,details:h.FRAG_DECRYPT_ERROR,fatal:!1,error:H,reason:H.message,frag:J}),H}).then((H)=>{let E=self.performance.now();return X.trigger(N.FRAG_DECRYPTED,{frag:J,payload:H,stats:{tstart:z,tdecrypt:E}}),Q.payload=H,this.completeInitSegmentLoad(Q)})}return this.completeInitSegmentLoad(Q)}).catch((Q)=>{if(this.state===y.STOPPED||this.state===y.ERROR)return;this.warn(Q),this.resetFragmentLoading(Y)})}completeInitSegmentLoad(Y){let{levels:Z}=this;if(!Z)throw Error("init load aborted, missing levels");let Q=Y.frag.stats;if(this.state!==y.STOPPED)this.state=y.IDLE;Y.frag.data=new Uint8Array(Y.payload),Q.parsing.start=Q.buffering.start=self.performance.now(),Q.parsing.end=Q.buffering.end=self.performance.now(),this.tick()}unhandledEncryptionError(Y,Z){var Q,X;let J=Y.tracks;if(J&&!Z.encrypted&&((Q=J.audio)!=null&&Q.encrypted||(X=J.video)!=null&&X.encrypted)&&(!this.config.emeEnabled||!this.keyLoader.emeController)){let W=this.media,q=Error(`Encrypted track with no key in ${this.fragInfo(Z)} (media ${W?"attached mediaKeys: "+W.mediaKeys:"detached"})`);if(this.warn(q.message),!W||W.mediaKeys)return!1;return this.hls.trigger(N.ERROR,{type:Y0.KEY_SYSTEM_ERROR,details:h.KEY_SYSTEM_NO_KEYS,fatal:!1,error:q,frag:Z}),this.resetTransmuxer(),!0}return!1}fragContextChanged(Y){let{fragCurrent:Z}=this;return!Y||!Z||Y.sn!==Z.sn||Y.level!==Z.level}fragBufferedComplete(Y,Z){let Q=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log(`Buffered ${Y.type} sn: ${Y.sn}${Z?" part: "+Z.index:""} of ${this.fragInfo(Y,!1,Z)} > buffer:${Q?wL.toString(V0.getBuffered(Q)):"(detached)"})`),t0(Y)){var X;if(Y.type!==t.SUBTITLE){let W=Y.elementaryStreams;if(!Object.keys(W).some((q)=>!!W[q])){this.state=y.IDLE;return}}let J=(X=this.levels)==null?void 0:X[Y.level];if(J!=null&&J.fragmentError)this.log(`Resetting level fragment error count of ${J.fragmentError} on frag buffered`),J.fragmentError=0}this.state=y.IDLE}_handleFragmentLoadComplete(Y){let{transmuxer:Z}=this;if(!Z)return;let{frag:Q,part:X,partsLoaded:J}=Y,W=!J||J.length===0||J.some((z)=>!z),q=new r2(Q.level,Q.sn,Q.stats.chunkCount+1,0,X?X.index:-1,!W);Z.flush(q)}_handleFragmentLoadProgress(Y){}_doFragLoad(Y,Z,Q=null,X){var J;this.fragCurrent=Y;let W=Z.details;if(!this.levels||!W)throw Error(`frag load aborted, missing level${W?"":" detail"}s`);let q=null;if(Y.encrypted&&!((J=Y.decryptdata)!=null&&J.key)){if(this.log(`Loading key for ${Y.sn} of [${W.startSN}-${W.endSN}], ${this.playlistLabel()} ${Y.level}`),this.state=y.KEY_LOADING,this.fragCurrent=Y,q=this.keyLoader.load(Y).then((G)=>{if(!this.fragContextChanged(G.frag)){if(this.hls.trigger(N.KEY_LOADED,G),this.state===y.KEY_LOADING)this.state=y.IDLE;return G}}),this.hls.trigger(N.KEY_LOADING,{frag:Y}),this.fragCurrent===null)return this.log("context changed in KEY_LOADING"),Promise.resolve(null)}else if(!Y.encrypted){if(q=this.keyLoader.loadClear(Y,W.encryptedFragments,this.startFragRequested),q)this.log("[eme] blocking frag load until media-keys acquired")}let z=this.fragPrevious;if(t0(Y)&&(!z||Y.sn!==z.sn)){let G=this.shouldLoadParts(Z.details,Y.end);if(G!==this.loadingParts)this.log(`LL-Part loading ${G?"ON":"OFF"} loading sn ${z==null?void 0:z.sn}->${Y.sn}`),this.loadingParts=G}if(Q=Math.max(Y.start,Q||0),this.loadingParts&&t0(Y)){let G=W.partList;if(G&&X){if(Q>W.fragmentEnd&&W.fragmentHint)Y=W.fragmentHint;let U=this.getNextPart(G,Y,Q);if(U>-1){let V=G[U];Y=this.fragCurrent=V.fragment,this.log(`Loading ${Y.type} sn: ${Y.sn} part: ${V.index} (${U}/${G.length-1}) of ${this.fragInfo(Y,!1,V)}) cc: ${Y.cc} [${W.startSN}-${W.endSN}], target: ${parseFloat(Q.toFixed(3))}`),this.nextLoadPosition=V.start+V.duration,this.state=y.FRAG_LOADING;let F;if(q)F=q.then((R)=>{if(!R||this.fragContextChanged(R.frag))return null;return this.doFragPartsLoad(Y,V,Z,X)}).catch((R)=>this.handleFragLoadError(R));else F=this.doFragPartsLoad(Y,V,Z,X).catch((R)=>this.handleFragLoadError(R));if(this.hls.trigger(N.FRAG_LOADING,{frag:Y,part:V,targetBufferTime:Q}),this.fragCurrent===null)return Promise.reject(Error("frag load aborted, context changed in FRAG_LOADING parts"));return F}else if(!Y.url||this.loadedEndOfParts(G,Q))return Promise.resolve(null)}}if(t0(Y)&&this.loadingParts){var H;this.log(`LL-Part loading OFF after next part miss @${Q.toFixed(2)} Check buffer at sn: ${Y.sn} loaded parts: ${(H=W.partList)==null?void 0:H.filter((G)=>G.loaded).map((G)=>`[${G.start}-${G.end}]`)}`),this.loadingParts=!1}else if(!Y.url)return Promise.resolve(null);if(this.log(`Loading ${Y.type} sn: ${Y.sn} of ${this.fragInfo(Y,!1)}) cc: ${Y.cc} ${"["+W.startSN+"-"+W.endSN+"]"}, target: ${parseFloat(Q.toFixed(3))}`),r(Y.sn)&&!this.bitrateTest)this.nextLoadPosition=Y.start+Y.duration;this.state=y.FRAG_LOADING;let E=this.config.progressive&&Y.type!==t.SUBTITLE,K;if(E&&q)K=q.then((G)=>{if(!G||this.fragContextChanged(G.frag))return null;return this.fragmentLoader.load(Y,X)}).catch((G)=>this.handleFragLoadError(G));else K=Promise.all([this.fragmentLoader.load(Y,E?X:void 0),q]).then(([G])=>{if(!E&&X)X(G);return G}).catch((G)=>this.handleFragLoadError(G));if(this.hls.trigger(N.FRAG_LOADING,{frag:Y,targetBufferTime:Q}),this.fragCurrent===null)return Promise.reject(Error("frag load aborted, context changed in FRAG_LOADING"));return K}doFragPartsLoad(Y,Z,Q,X){return new Promise((J,W)=>{var q;let z=[],H=(q=Q.details)==null?void 0:q.partList,E=(K)=>{this.fragmentLoader.loadPart(Y,K,X).then((G)=>{z[K.index]=G;let U=G.part;this.hls.trigger(N.FRAG_LOADED,G);let V=Y5(Q.details,Y.sn,K.index+1)||BE(H,Y.sn,K.index+1);if(V)E(V);else return J({frag:Y,part:U,partsLoaded:z})}).catch(W)};E(Z)})}handleFragLoadError(Y){if("data"in Y){let Z=Y.data;if(Z.frag&&Z.details===h.INTERNAL_ABORTED)this.handleFragLoadAborted(Z.frag,Z.part);else if(Z.frag&&Z.type===Y0.KEY_SYSTEM_ERROR)Z.frag.abortRequests(),this.resetStartWhenNotLoaded(),this.resetFragmentLoading(Z.frag);else this.hls.trigger(N.ERROR,Z)}else this.hls.trigger(N.ERROR,{type:Y0.OTHER_ERROR,details:h.INTERNAL_EXCEPTION,err:Y,error:Y,fatal:!0});return null}_handleTransmuxerFlush(Y){let Z=this.getCurrentContext(Y);if(!Z||this.state!==y.PARSING){if(!this.fragCurrent&&this.state!==y.STOPPED&&this.state!==y.ERROR)this.state=y.IDLE;return}let{frag:Q,part:X,level:J}=Z,W=self.performance.now();if(Q.stats.parsing.end=W,X)X.stats.parsing.end=W;let q=this.getLevelDetails(),H=q&&Q.sn>q.endSN||this.shouldLoadParts(q,Q.end);if(H!==this.loadingParts)this.log(`LL-Part loading ${H?"ON":"OFF"} after parsing segment ending @${Q.end.toFixed(2)}`),this.loadingParts=H;this.updateLevelTiming(Q,X,J,Y.partial)}shouldLoadParts(Y,Z){if(this.config.lowLatencyMode){if(!Y)return this.loadingParts;if(Y.partList){var Q;let J=Y.partList[0];if(J.fragment.type===t.SUBTITLE)return!1;let W=J.end+(((Q=Y.fragmentHint)==null?void 0:Q.duration)||0);if(Z>=W){var X;if((this.hls.hasEnoughToStart?((X=this.media)==null?void 0:X.currentTime)||this.lastCurrentTime:this.getLoadPosition())>J.start-J.fragment.duration)return!0}}}return!1}getCurrentContext(Y){let{levels:Z,fragCurrent:Q}=this,{level:X,sn:J,part:W}=Y;if(!(Z!=null&&Z[X]))return this.warn(`Levels object was unset while buffering fragment ${J} of ${this.playlistLabel()} ${X}. The current chunk will not be buffered.`),null;let q=Z[X],z=q.details,H=W>-1?Y5(z,J,W):null,E=H?H.fragment:RE(z,J,Q);if(!E)return null;if(Q&&Q!==E)E.stats=Q.stats;return{frag:E,part:H,level:q}}bufferFragmentData(Y,Z,Q,X,J){if(this.state!==y.PARSING)return;let{data1:W,data2:q}=Y,z=W;if(q)z=Q8(W,q);if(!z.length)return;let H=this.initPTS[Z.cc],E=H?-H.baseTime/H.timescale:void 0,K={type:Y.type,frag:Z,part:Q,chunkMeta:X,offset:E,parent:Z.type,data:z};if(this.hls.trigger(N.BUFFER_APPENDING,K),Y.dropped&&Y.independent&&!Q){if(J)return;this.flushBufferGap(Z)}}flushBufferGap(Y){let Z=this.media;if(!Z)return;if(!V0.isBuffered(Z,Z.currentTime)){this.flushMainBuffer(0,Y.start);return}let Q=Z.currentTime,X=V0.bufferInfo(Z,Q,0),J=Y.duration,W=Math.min(this.config.maxFragLookUpTolerance*2,J*0.25),q=Math.max(Math.min(Y.start-W,X.end-W),Q+W);if(Y.start-q>W)this.flushMainBuffer(q,Y.start)}getFwdBufferInfo(Y,Z){var Q;let X=this.getLoadPosition();if(!r(X))return null;let W=this.lastCurrentTime>X||(Q=this.media)!=null&&Q.paused?0:this.config.maxBufferHole;return this.getFwdBufferInfoAtPos(Y,X,Z,W)}getFwdBufferInfoAtPos(Y,Z,Q,X){let J=V0.bufferInfo(Y,Z,X);if(J.len===0&&J.nextStart!==void 0){let W=this.fragmentTracker.getBufferedFrag(Z,Q);if(W&&(J.nextStart<=W.end||W.gap)){let q=Math.max(Math.min(J.nextStart,W.end)-Z,X);return V0.bufferInfo(Y,Z,q)}}return J}getMaxBufferLength(Y){let{config:Z}=this,Q;if(Y)Q=Math.max(8*Z.maxBufferSize/Y,Z.maxBufferLength);else Q=Z.maxBufferLength;return Math.min(Q,Z.maxMaxBufferLength)}reduceMaxBufferLength(Y,Z){let Q=this.config,X=Math.max(Math.min(Y-Z,Q.maxBufferLength),Z),J=Math.max(Y-Z*3,Q.maxMaxBufferLength/2,X);if(J>=X)return Q.maxMaxBufferLength=J,this.warn(`Reduce max buffer length to ${J}s`),!0;return!1}getAppendedFrag(Y,Z=t.MAIN){let Q=this.fragmentTracker?this.fragmentTracker.getAppendedFrag(Y,Z):null;if(Q&&"fragment"in Q)return Q.fragment;return Q}getNextFragment(Y,Z){let Q=Z.fragments,X=Q.length;if(!X)return null;let{config:J}=this,W=Q[0].start,q=J.lowLatencyMode&&!!Z.partList,z=null;if(Z.live){let K=J.initialLiveManifestSize;if(X=W?G:U)||z.start:Y;this.log(`Setting startPosition to ${V} to match start frag at live edge. mainStart: ${G} liveSyncPosition: ${U} frag.start: ${(H=z)==null?void 0:H.start}`),this.startPosition=this.nextLoadPosition=V}}else if(Y<=W)z=Q[0];if(!z){let K=this.loadingParts?Z.partEnd:Z.fragmentEnd;z=this.getFragmentAtPosition(Y,K,Z)}let E=this.filterReplacedPrimary(z,Z);if(!E&&z){let K=z.sn-Z.startSN;E=this.filterReplacedPrimary(Q[K+1]||null,Z)}return this.mapToInitFragWhenRequired(E)}isLoopLoading(Y,Z){let Q=this.fragmentTracker.getState(Y);return(Q===G1.OK||Q===G1.PARTIAL&&!!Y.gap)&&this.nextLoadPosition>Z}getNextFragmentLoopLoading(Y,Z,Q,X,J){let W=null;if(Y.gap){if(W=this.getNextFragment(this.nextLoadPosition,Z),W&&!W.gap&&Q.nextStart){let q=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,Q.nextStart,X,0);if(q!==null&&Q.len+q.len>=J){let z=W.sn;if(this.loopSn!==z)this.log(`buffer full after gaps in "${X}" playlist starting at sn: ${z}`),this.loopSn=z;return null}}}return this.loopSn=void 0,W}get primaryPrefetch(){if(X5(this.config)){var Y;if((Y=this.hls.interstitialsManager)==null||(Y=Y.playingItem)==null?void 0:Y.event)return!0}return!1}filterReplacedPrimary(Y,Z){if(!Y)return Y;if(X5(this.config)&&Y.type!==t.SUBTITLE){let Q=this.hls.interstitialsManager,X=Q==null?void 0:Q.bufferingItem;if(X){let W=X.event;if(W){if(W.appendInPlace||Math.abs(Y.start-X.start)>1||X.start===0)return null}else{if(Y.end<=X.start&&(Z==null?void 0:Z.live)===!1)return null;if(Y.start>X.end&&X.nextEvent){if(X.nextEvent.appendInPlace||Y.start-X.end>1)return null}}}let J=Q==null?void 0:Q.playerQueue;if(J)for(let W=J.length;W--;){let q=J[W].interstitial;if(q.appendInPlace&&Y.start>=q.startTime&&Y.end<=q.resumeTime)return null}}return Y}mapToInitFragWhenRequired(Y){if(Y!=null&&Y.initSegment&&!Y.initSegment.data&&!this.bitrateTest)return Y.initSegment;return Y}getNextPart(Y,Z,Q){let X=-1,J=!1,W=!0;for(let q=0,z=Y.length;q-1&&QQ.start)return!0}return!1}getInitialLiveFragment(Y){let Z=Y.fragments,Q=this.fragPrevious,X=null;if(Q){if(Y.hasProgramDateTime)this.log(`Live playlist, switching playlist, load frag with same PDT: ${Q.programDateTime}`),X=n$(Z,Q.endProgramDateTime,this.config.maxFragLookUpTolerance);if(!X){let J=Q.sn+1;if(J>=Y.startSN&&J<=Y.endSN){let W=Z[J-Y.startSN];if(Q.cc===W.cc)X=W,this.log(`Live playlist, switching playlist, load frag with next SN: ${X.sn}`)}if(!X){if(X=r5(Y,Q.cc,Q.end),X)this.log(`Live playlist, switching playlist, load frag with same CC: ${X.sn}`)}}}else{let J=this.hls.liveSyncPosition;if(J!==null)X=this.getFragmentAtPosition(J,this.bitrateTest?Y.fragmentEnd:Y.edge,Y)}return X}getFragmentAtPosition(Y,Z,Q){let{config:X}=this,{fragPrevious:J}=this,{fragments:W,endSN:q}=Q,{fragmentHint:z}=Q,{maxFragLookUpTolerance:H}=X,E=Q.partList,K=!!(this.loadingParts&&E!=null&&E.length&&z);if(K&&!this.bitrateTest&&E[E.length-1].fragment.sn===z.sn)W=W.concat(z),q=z.sn;let G;if(YZ-H||(U=this.media)!=null&&U.paused||!this.startFragRequested?0:H;G=j7(J,W,Y,F)}else G=W[W.length-1];if(G){let V=G.sn-Q.startSN,F=this.fragmentTracker.getState(G);if(F===G1.OK||F===G1.PARTIAL&&G.gap)J=G;if(J&&G.sn===J.sn&&(!K||E[0].fragment.sn>G.sn||!Q.live)){if(G.level===J.level){let B=W[V+1];if(G.sn${Y.startSN} fragments: ${X}`),z}return J}waitForCdnTuneIn(Y){return Y.live&&Y.canBlockReload&&Y.partTarget&&Y.tuneInGoal>Math.max(Y.partHoldBack,Y.partTarget*3)}setStartPosition(Y,Z){let Q=this.startPosition;if(Q=0)Q=this.nextLoadPosition;return Q}handleFragLoadAborted(Y,Z){if(this.transmuxer&&Y.type===this.playlistType&&t0(Y)&&Y.stats.aborted)this.log(`Fragment ${Y.sn}${Z?" part "+Z.index:""} of ${this.playlistLabel()} ${Y.level} was aborted`),this.resetFragmentLoading(Y)}resetFragmentLoading(Y){if(!this.fragCurrent||!this.fragContextChanged(Y)&&this.state!==y.FRAG_LOADING_WAITING_RETRY)this.state=y.IDLE}onFragmentOrKeyLoadError(Y,Z){var Q;if(Z.chunkMeta&&!Z.frag){let B=this.getCurrentContext(Z.chunkMeta);if(B)Z.frag=B.frag}let X=Z.frag;if(!X||X.type!==Y||!this.levels)return;if(this.fragContextChanged(X)){var J;this.warn(`Frag load error must match current frag to retry ${X.url} > ${(J=this.fragCurrent)==null?void 0:J.url}`);return}let W=Z.details===h.FRAG_GAP;if(W)this.fragmentTracker.fragBuffered(X,!0);let q=Z.errorAction;if(!q){this.state=y.ERROR;return}let{action:z,flags:H,retryCount:E=0,retryConfig:K}=q,G=!!K,U=G&&z===N1.RetryRequest,V=G&&!q.resolved&&H===c1.MoveAllAlternatesMatchingHost,F=(Q=this.hls.latestLevelDetails)==null?void 0:Q.live;if(!U&&V&&t0(X)&&!X.endList&&F&&!t5(Z))this.resetFragmentErrors(Y),this.treatAsGap(X),q.resolved=!0;else if((U||V)&&E=Z||Q&&!sW(0)){if(Q)this.log("Connection restored (online)");this.resetStartWhenNotLoaded(),this.state=y.IDLE}}reduceLengthAndFlushBuffer(Y){if(this.state===y.PARSING||this.state===y.PARSED){let{frag:Z,parent:Q}=Y,X=this.getFwdBufferInfo(this.mediaBuffer,Q),J=X&&X.len>0.5;if(J)this.reduceMaxBufferLength(X.len,(Z==null?void 0:Z.duration)||10);let W=!J;if(W)this.warn(`Buffer full error while media.currentTime (${this.getLoadPosition()}) is not buffered, flush ${Q} buffer`);if(Z)this.fragmentTracker.removeFragment(Z),this.nextLoadPosition=Z.start;return this.resetLoadingState(),W}return!1}resetFragmentErrors(Y){if(Y===t.AUDIO)this.fragCurrent=null;if(!this.hls.hasEnoughToStart)this.startFragRequested=!1;if(this.state!==y.STOPPED)this.state=y.IDLE}afterBufferFlushed(Y,Z,Q){if(!Y)return;let X=V0.getBuffered(Y);if(this.fragmentTracker.detectEvictedFragments(Z,X,Q),this.state===y.ENDED)this.resetLoadingState()}resetLoadingState(){if(this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state!==y.STOPPED)this.state=y.IDLE}resetStartWhenNotLoaded(){if(!this.hls.hasEnoughToStart){this.startFragRequested=!1;let Y=this.levelLastLoaded,Z=Y?Y.details:null;if(Z!=null&&Z.live)this.log("resetting startPosition for live start"),this.startPosition=-1,this.setStartPosition(Z,Z.fragmentStart),this.resetLoadingState();else this.nextLoadPosition=this.startPosition}}resetWhenMissingContext(Y){this.log(`Loading context changed while buffering sn ${Y.sn} of ${this.playlistLabel()} ${Y.level===-1?"":Y.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(),this.resetLoadingState()}removeUnbufferedFrags(Y=0){this.fragmentTracker.removeFragmentsInRange(Y,1/0,this.playlistType,!1,!0)}updateLevelTiming(Y,Z,Q,X){let J=Q.details;if(!J){this.warn("level.details undefined");return}if(!Object.keys(Y.elementaryStreams).reduce((z,H)=>{let E=Y.elementaryStreams[H];if(E){let K=E.endPTS-E.startPTS;if(K<=0)return this.warn(`Could not parse fragment ${Y.sn} ${H} duration reliably (${K})`),z||!1;let G=X?0:VE(J,Y,E.startPTS,E.endPTS,E.startDTS,E.endDTS,this);return this.hls.trigger(N.LEVEL_PTS_UPDATED,{details:J,level:Q,drift:G,type:H,frag:Y,start:E.startPTS,end:E.endPTS}),!0}return z},!1)){var q;let z=((q=this.transmuxer)==null?void 0:q.error)===null;if(Q.fragmentError===0||z&&(Q.fragmentError<2||Y.endList))this.treatAsGap(Y,Q);if(z){let H=Error(`Found no media in fragment ${Y.sn} of ${this.playlistLabel()} ${Y.level} resetting transmuxer to fallback to playlist timing`);if(this.warn(H.message),this.hls.trigger(N.ERROR,{type:Y0.MEDIA_ERROR,details:h.FRAG_PARSING_ERROR,fatal:!1,error:H,frag:Y,reason:`Found no media in msn ${Y.sn} of ${this.playlistLabel()} "${Q.url}"`}),!this.hls)return;this.resetTransmuxer()}}this.state=y.PARSED,this.log(`Parsed ${Y.type} sn: ${Y.sn}${Z?" part: "+Z.index:""} of ${this.fragInfo(Y,!1,Z)})`),this.hls.trigger(N.FRAG_PARSED,{frag:Y,part:Z})}playlistLabel(){return this.playlistType===t.MAIN?"level":"track"}fragInfo(Y,Z=!0,Q){var X,J;return`${this.playlistLabel()} ${Y.level} (${Q?"part":"frag"}:[${((X=Z&&!Q?Y.startPTS:(Q||Y).start)!=null?X:NaN).toFixed(3)}-${((J=Z&&!Q?Y.endPTS:(Q||Y).end)!=null?J:NaN).toFixed(3)}]${Q&&Y.type==="main"?"INDEPENDENT="+(Q.independent?"YES":"NO"):""}`}treatAsGap(Y,Z){if(Z)Z.fragmentError++;Y.gap=!0,this.fragmentTracker.removeFragment(Y),this.fragmentTracker.fragBuffered(Y,!0)}resetTransmuxer(){var Y;(Y=this.transmuxer)==null||Y.reset()}recoverWorkerError(Y){if(Y.event==="demuxerWorker"){if(this.fragmentTracker.removeAllFragments(),this.transmuxer)this.transmuxer.destroy(),this.transmuxer=null;this.resetStartWhenNotLoaded(),this.resetLoadingState()}}set state(Y){let Z=this._state;if(Z!==Y)this._state=Y,this.log(`${Z}->${Y}`)}get state(){return this._state}}function X5(Y){return!!Y.interstitialsController&&Y.enableInterstitialPlayback!==!1}class Dq{constructor(){this.chunks=[],this.dataLength=0}push(Y){this.chunks.push(Y),this.dataLength+=Y.length}flush(){let{chunks:Y,dataLength:Z}=this,Q;if(!Y.length)return new Uint8Array(0);else if(Y.length===1)Q=Y[0];else Q=PL(Y,Z);return this.reset(),Q}reset(){this.chunks.length=0,this.dataLength=0}}function PL(Y,Z){let Q=new Uint8Array(Z),X=0;for(let J=0;J0)return Y.subarray(Q,Q+X);return}function hL(Y,Z,Q,X){let J=[96000,88200,64000,48000,44100,32000,24000,22050,16000,12000,11025,8000,7350],W=Z[Q+2],q=W>>2&15;if(q>12){let V=Error(`invalid ADTS sampling index:${q}`);Y.emit(N.ERROR,N.ERROR,{type:Y0.MEDIA_ERROR,details:h.FRAG_PARSING_ERROR,fatal:!0,error:V,reason:V.message});return}let z=(W>>6&3)+1,H=Z[Q+3]>>6&3|(W&1)<<2,E="mp4a.40."+z,K=J[q],G=q;if(z===5||z===29)G-=3;let U=[z<<3|(G&14)>>1,(G&1)<<7|H<<3];return S0.log(`manifest codec:${X}, parsed codec:${E}, channels:${H}, rate:${K} (ADTS object type:${z} sampling index:${q})`),{config:U,samplerate:K,channelCount:H,codec:E,parsedCodec:E,manifestCodec:X}}function jE(Y,Z){return Y[Z]===255&&(Y[Z+1]&246)===240}function AE(Y,Z){return Y[Z+1]&1?7:9}function Cq(Y,Z){return(Y[Z+3]&3)<<11|Y[Z+4]<<3|(Y[Z+5]&224)>>>5}function fL(Y,Z){return Z+5=Y.length)return!1;let X=Cq(Y,Z);if(X<=Q)return!1;let J=Z+X;return J===Y.length||d2(Y,J)}return!1}function DE(Y,Z,Q,X,J){if(!Y.samplerate){let W=hL(Z,Q,X,J);if(!W)return;h0(Y,W)}}function wE(Y){return 92160000/Y}function gL(Y,Z){let Q=AE(Y,Z);if(Z+Q<=Y.length){let X=Cq(Y,Z)-Q;if(X>0)return{headerLength:Q,frameLength:X}}}function PE(Y,Z,Q,X,J){let W=wE(Y.samplerate),q=X+J*W,z=gL(Z,Q),H;if(z){let{frameLength:G,headerLength:U}=z,V=U+G,F=Math.max(0,Q+V-Z.length);if(F)H=new Uint8Array(V-U),H.set(Z.subarray(Q+U,Z.length),0);else H=Z.subarray(Q+U,Q+V);let R={unit:H,pts:q};if(!F)Y.samples.push(R);return{sample:R,length:V,missing:F}}let E=Z.length-Q;return H=new Uint8Array(E),H.set(Z.subarray(Q,Z.length),0),{sample:{unit:H,pts:q},length:E,missing:-1}}function bL(Y,Z){return Pq(Y,Z)&&t2(Y,Z+6)+10<=Y.length-Z}function _L(Y){if(Y instanceof ArrayBuffer)return Y;else{if(Y.byteOffset==0&&Y.byteLength==Y.buffer.byteLength)return Y.buffer;return new Uint8Array(Y).buffer}}function xW(Y,Z=0,Q=1/0){return vL(Y,Z,Q,Uint8Array)}function vL(Y,Z,Q,X){let J=pL(Y),W=1;if("BYTES_PER_ELEMENT"in X)W=X.BYTES_PER_ELEMENT;let q=cL(Y)?Y.byteOffset:0,z=(q+Y.byteLength)/W,H=(q+Z)/W,E=Math.floor(Math.max(0,Math.min(H,z))),K=Math.floor(Math.min(E+Math.max(Q,0),z));return new X(J,E,K-E)}function pL(Y){if(Y instanceof ArrayBuffer)return Y;else return Y.buffer}function cL(Y){return Y&&Y.buffer instanceof ArrayBuffer&&Y.byteLength!==void 0&&Y.byteOffset!==void 0}function uL(Y){let Z={key:Y.type,description:"",data:"",mimeType:null,pictureType:null},Q=3;if(Y.size<2)return;if(Y.data[0]!==3){console.log("Ignore frame with unrecognized character encoding");return}let X=Y.data.subarray(1).indexOf(0);if(X===-1)return;let J=o1(xW(Y.data,1,X)),W=Y.data[2+X],q=Y.data.subarray(3+X).indexOf(0);if(q===-1)return;let z=o1(xW(Y.data,3+X,q)),H;if(J==="-->")H=o1(xW(Y.data,4+X+q));else H=_L(Y.data.subarray(4+X+q));return Z.mimeType=J,Z.pictureType=W,Z.description=z,Z.data=H,Z}function mL(Y){if(Y.size<2)return;let Z=o1(Y.data,!0),Q=new Uint8Array(Y.data.subarray(Z.length+1));return{key:Y.type,info:Z,data:Q.buffer}}function oL(Y){if(Y.size<2)return;if(Y.type==="TXXX"){let Q=1,X=o1(Y.data.subarray(Q),!0);Q+=X.length+1;let J=o1(Y.data.subarray(Q));return{key:Y.type,info:X,data:J}}let Z=o1(Y.data.subarray(1));return{key:Y.type,info:"",data:Z}}function dL(Y){if(Y.type==="WXXX"){if(Y.size<2)return;let Q=1,X=o1(Y.data.subarray(Q),!0);Q+=X.length+1;let J=o1(Y.data.subarray(Q));return{key:Y.type,info:X,data:J}}let Z=o1(Y.data);return{key:Y.type,info:"",data:Z}}function lL(Y){if(Y.type==="PRIV")return mL(Y);else if(Y.type[0]==="W")return dL(Y);else if(Y.type==="APIC")return uL(Y);return oL(Y)}function nL(Y){let Z=String.fromCharCode(Y[0],Y[1],Y[2],Y[3]),Q=t2(Y,4),X=10;return{type:Z,size:Q,data:Y.subarray(10,10+Q)}}var N2=10,sL=10;function CE(Y){let Z=0,Q=[];while(Pq(Y,Z)){let X=t2(Y,Z+6);if(Y[Z+5]>>6&1)Z+=N2;Z+=N2;let J=Z+X;while(Z+sL0)q.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:Q,type:m1.audioId3,duration:Number.POSITIVE_INFINITY});while(X{if(r(Y))return Y*90;let X=Q?Q.baseTime*90000/Q.timescale:0;return Z*90000+X},$2=null,aL=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],tL=[44100,48000,32000,22050,24000,16000,11025,12000,8000],eL=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],YO=[0,1,1,4];function xE(Y,Z,Q,X,J){if(Q+24>Z.length)return;let W=IE(Z,Q);if(W&&Q+W.frameLength<=Z.length){let q=W.samplesPerFrame*90000/W.sampleRate,z=X+J*q,H={unit:Z.subarray(Q,Q+W.frameLength),pts:z,dts:z};return Y.config=[],Y.channelCount=W.channelCount,Y.samplerate=W.sampleRate,Y.samples.push(H),{sample:H,length:W.frameLength,missing:0}}}function IE(Y,Z){let Q=Y[Z+1]>>3&3,X=Y[Z+1]>>1&3,J=Y[Z+2]>>4&15,W=Y[Z+2]>>2&3;if(Q!==1&&J!==0&&J!==15&&W!==3){let q=Y[Z+2]>>1&1,z=Y[Z+3]>>6,H=Q===3?3-X:X===3?3:4,E=aL[H*14+J-1]*1000,G=tL[(Q===3?0:Q===2?1:2)*3+W],U=z===3?1:2,V=eL[Q][X],F=YO[X],R=V*8*F,B=Math.floor(V*E/G+q)*F;if($2===null){let O=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);$2=O?parseInt(O[1]):0}if(!!$2&&$2<=87&&X===2&&E>=224000&&z===0)Y[Z+3]=Y[Z+3]|128;return{sampleRate:G,channelCount:U,frameLength:B,samplesPerFrame:R}}}function xq(Y,Z){return Y[Z]===255&&(Y[Z+1]&224)===224&&(Y[Z+1]&6)!==0}function SE(Y,Z){return Z+1{let Q=0,X=5;Z+=X;let J=new Uint32Array(1),W=new Uint32Array(1),q=new Uint8Array(1);while(X>0){q[0]=Y[Z];let z=Math.min(X,8),H=8-z;W[0]=4278190080>>>24+H<>H,Q=!Q?J[0]:Q<Z.length)return-1;if(Z[Q]!==11||Z[Q+1]!==119)return-1;let W=Z[Q+4]>>6;if(W>=3)return-1;let z=[48000,44100,32000][W],H=Z[Q+4]&63,K=[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][H*3+W]*2;if(Q+K>Z.length)return-1;let G=Z[Q+6]>>5,U=0;if(G===2)U+=2;else{if(G&1&&G!==1)U+=2;if(G&4)U+=2}let V=(Z[Q+6]<<8|Z[Q+7])>>12-U&1,R=[2,1,2,3,3,4,4,5][G]+V,B=Z[Q+5]>>3,$=Z[Q+5]&7,L=new Uint8Array([W<<6|B<<1|$>>2,($&3)<<6|G<<3|V<<2|H>>4,H<<4&224]),O=1536/z*90000,j=X+J*O,w=Z.subarray(Q,Q+K);return Y.config=L,Y.channelCount=R,Y.samplerate=z,Y.samples.push({unit:w,pts:j}),K}class gE extends e2{resetInitSegment(Y,Z,Q,X){super.resetInitSegment(Y,Z,Q,X),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:Z,duration:X,inputTimeScale:90000,dropped:0}}static probe(Y){if(!Y)return!1;let Z=gY(Y,0),Q=(Z==null?void 0:Z.length)||0;if(Z&&Y[Q]===11&&Y[Q+1]===119&&Mq(Z)!==void 0&&fE(Y,Q)<=16)return!1;for(let X=Y.length;Q{let W=O$(J);if(QO.test(W.schemeIdUri)){let q=W5(W,Z),z=W.eventDuration===4294967295?Number.POSITIVE_INFINITY:W.eventDuration/W.timeScale;if(z<=0.001)z=Number.POSITIVE_INFINITY;let H=W.payload;Q.samples.push({data:H,len:H.byteLength,dts:q,pts:q,type:m1.emsg,duration:z})}else if(this.config.enableEmsgKLVMetadata&&W.schemeIdUri.startsWith("urn:misb:KLV:bin:1910.1")){let q=W5(W,Z);Q.samples.push({data:W.payload,len:W.payload.byteLength,dts:q,pts:q,type:m1.misbklv,duration:Number.POSITIVE_INFINITY})}})}return Q}demuxSampleAes(Y,Z,Q){return Promise.reject(Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){this.config=null,this.remainderData=null,this.videoTrack=this.audioTrack=this.id3Track=this.txtTrack=void 0}}function W5(Y,Z){return r(Y.presentationTime)?Y.presentationTime/Y.timeScale:Z+Y.presentationTimeDelta/Y.timeScale}class _E{constructor(Y,Z,Q){this.keyData=void 0,this.decrypter=void 0,this.keyData=Q,this.decrypter=new i2(Z,{removePKCS7Padding:!1})}decryptBuffer(Y){return this.decrypter.decrypt(Y,this.keyData.key.buffer,this.keyData.iv.buffer,_6.cbc)}decryptAacSample(Y,Z,Q){let X=Y[Z].unit;if(X.length<=16)return;let J=X.subarray(16,X.length-X.length%16),W=J.buffer.slice(J.byteOffset,J.byteOffset+J.length);this.decryptBuffer(W).then((q)=>{let z=new Uint8Array(q);if(X.set(z,16),!this.decrypter.isSync())this.decryptAacSamples(Y,Z+1,Q)}).catch(Q)}decryptAacSamples(Y,Z,Q){for(;;Z++){if(Z>=Y.length){Q();return}if(Y[Z].unit.length<32)continue;if(this.decryptAacSample(Y,Z,Q),!this.decrypter.isSync())return}}getAvcEncryptedData(Y){let Z=Math.floor((Y.length-48)/160)*16+16,Q=new Int8Array(Z),X=0;for(let J=32;J{if(J.data=this.getAvcDecryptedUnit(W,z),!this.decrypter.isSync())this.decryptAvcSamples(Y,Z,Q+1,X)}).catch(X)}decryptAvcSamples(Y,Z,Q,X){if(Y instanceof Uint8Array)throw Error("Cannot decrypt samples of type Uint8Array");for(;;Z++,Q=0){if(Z>=Y.length){X();return}let J=Y[Z].units;for(;;Q++){if(Q>=J.length)break;let W=J[Q];if(W.data.length<=48||W.type!==1&&W.type!==5)continue;if(this.decryptAvcSample(Y,Z,Q,X,W),!this.decrypter.isSync())return}}}}class Iq{constructor(){this.VideoSample=null}createVideoSample(Y,Z,Q){return{key:Y,frame:!1,pts:Z,dts:Q,units:[],length:0}}getLastNalUnit(Y){var Z;let Q=this.VideoSample,X;if(!Q||Q.units.length===0)Q=Y[Y.length-1];if((Z=Q)!=null&&Z.units){let J=Q.units;X=J[J.length-1]}return X}pushAccessUnit(Y,Z){if(Y.units.length&&Y.frame){if(Y.pts===void 0){let Q=Z.samples,X=Q.length;if(X){let J=Q[X-1];Y.pts=J.pts,Y.dts=J.dts}else{Z.dropped++;return}}Z.samples.push(Y)}}parseNALu(Y,Z,Q){let X=Z.byteLength,J=Y.naluState||0,W=J,q=[],z=0,H,E,K,G=-1,U=0;if(J===-1)G=0,U=this.getNALuType(Z,0),J=0,z=1;while(z=0){let V={data:Z.subarray(G,E),type:U};q.push(V)}else{let V=this.getLastNalUnit(Y.samples);if(V){if(W&&z<=4-W){if(V.state)V.data=V.data.subarray(0,V.data.byteLength-W)}if(E>0)V.data=Q8(V.data,Z.subarray(0,E)),V.state=0}}if(z=0&&J>=0){let V={data:Z.subarray(G,X),type:U,state:J};q.push(V)}if(q.length===0){let V=this.getLastNalUnit(Y.samples);if(V)V.data=Q8(V.data,Z)}return Y.naluState=J,q}}class G9{constructor(Y){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=Y,this.bytesAvailable=Y.byteLength,this.word=0,this.bitsAvailable=0}loadWord(){let Y=this.data,Z=this.bytesAvailable,Q=Y.byteLength-Z,X=new Uint8Array(4),J=Math.min(4,Z);if(J===0)throw Error("no bytes available");X.set(Y.subarray(Q,Q+J)),this.word=new DataView(X.buffer).getUint32(0),this.bitsAvailable=J*8,this.bytesAvailable-=J}skipBits(Y){let Z;if(Y=Math.min(Y,this.bytesAvailable*8+this.bitsAvailable),this.bitsAvailable>Y)this.word<<=Y,this.bitsAvailable-=Y;else Y-=this.bitsAvailable,Z=Y>>3,Y-=Z<<3,this.bytesAvailable-=Z,this.loadWord(),this.word<<=Y,this.bitsAvailable-=Y}readBits(Y){let Z=Math.min(this.bitsAvailable,Y),Q=this.word>>>32-Z;if(Y>32)S0.error("Cannot read more than 32 bits at a time");if(this.bitsAvailable-=Z,this.bitsAvailable>0)this.word<<=Z;else if(this.bytesAvailable>0)this.loadWord();else throw Error("no bits available");if(Z=Y-Z,Z>0&&this.bitsAvailable)return Q<>>Y)!==0)return this.word<<=Y,this.bitsAvailable-=Y,Y;return this.loadWord(),Y+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ())}skipEG(){this.skipBits(1+this.skipLZ())}readUEG(){let Y=this.skipLZ();return this.readBits(Y+1)-1}readEG(){let Y=this.readUEG();if(1&Y)return 1+Y>>>1;else return-1*(Y>>>1)}readBoolean(){return this.readBits(1)===1}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}}class vE extends Iq{parsePES(Y,Z,Q,X){let J=this.parseNALu(Y,Q.data,X),W=this.VideoSample,q,z=!1;if(Q.data=null,W&&J.length&&!Y.audFound)this.pushAccessUnit(W,Y),W=this.VideoSample=this.createVideoSample(!1,Q.pts,Q.dts);if(J.forEach((H)=>{var E,K;switch(H.type){case 1:{let F=!1;q=!0;let R=H.data;if(z&&R.length>4){let B=this.readSliceType(R);if(B===2||B===4||B===7||B===9)F=!0}if(F){var G;if((G=W)!=null&&G.frame&&!W.key)this.pushAccessUnit(W,Y),W=this.VideoSample=null}if(!W)W=this.VideoSample=this.createVideoSample(!0,Q.pts,Q.dts);W.frame=!0,W.key=F;break}case 5:if(q=!0,(E=W)!=null&&E.frame&&!W.key)this.pushAccessUnit(W,Y),W=this.VideoSample=null;if(!W)W=this.VideoSample=this.createVideoSample(!0,Q.pts,Q.dts);W.key=!0,W.frame=!0;break;case 6:{q=!0,Rq(H.data,1,Q.pts,Z.samples);break}case 7:{var U,V;q=!0,z=!0;let F=H.data,R=this.readSPS(F);if(!Y.sps||Y.width!==R.width||Y.height!==R.height||((U=Y.pixelRatio)==null?void 0:U[0])!==R.pixelRatio[0]||((V=Y.pixelRatio)==null?void 0:V[1])!==R.pixelRatio[1]){Y.width=R.width,Y.height=R.height,Y.pixelRatio=R.pixelRatio,Y.sps=[F];let B=F.subarray(1,4),$="avc1.";for(let L=0;L<3;L++){let O=B[L].toString(16);if(O.length<2)O="0"+O;$+=O}Y.codec=$}break}case 8:q=!0,Y.pps=[H.data];break;case 9:if(q=!0,Y.audFound=!0,(K=W)!=null&&K.frame)this.pushAccessUnit(W,Y),W=null;if(!W)W=this.VideoSample=this.createVideoSample(!1,Q.pts,Q.dts);break;case 12:q=!0;break;default:q=!1;break}if(W&&q)W.units.push(H)}),X&&W)this.pushAccessUnit(W,Y),this.VideoSample=null}getNALuType(Y,Z){return Y[Z]&31}readSliceType(Y){let Z=new G9(Y);return Z.readUByte(),Z.readUEG(),Z.readUEG()}skipScalingList(Y,Z){let Q=8,X=8,J;for(let W=0;W{var E,K;switch(H.type){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:if(!W)W=this.VideoSample=this.createVideoSample(!1,Q.pts,Q.dts);W.frame=!0,q=!0;break;case 16:case 17:case 18:case 21:if(q=!0,z){var G;if((G=W)!=null&&G.frame&&!W.key)this.pushAccessUnit(W,Y),W=this.VideoSample=null}if(!W)W=this.VideoSample=this.createVideoSample(!0,Q.pts,Q.dts);W.key=!0,W.frame=!0;break;case 19:case 20:if(q=!0,(E=W)!=null&&E.frame&&!W.key)this.pushAccessUnit(W,Y),W=this.VideoSample=null;if(!W)W=this.VideoSample=this.createVideoSample(!0,Q.pts,Q.dts);W.key=!0,W.frame=!0;break;case 39:q=!0,Rq(H.data,2,Q.pts,Z.samples);break;case 32:if(q=!0,!Y.vps){if(typeof Y.params!=="object")Y.params={};Y.params=h0(Y.params,this.readVPS(H.data)),this.initVPS=H.data}Y.vps=[H.data];break;case 33:if(q=!0,z=!0,Y.vps!==void 0&&Y.vps[0]!==this.initVPS&&Y.sps!==void 0&&!this.matchSPS(Y.sps[0],H.data))this.initVPS=Y.vps[0],Y.sps=Y.pps=void 0;if(!Y.sps){let U=this.readSPS(H.data);if(Y.width=U.width,Y.height=U.height,Y.pixelRatio=U.pixelRatio,Y.codec=U.codecString,Y.sps=[],typeof Y.params!=="object")Y.params={};for(let V in U.params)Y.params[V]=U.params[V]}if(this.pushParameterSet(Y.sps,H.data,Y.vps),!W)W=this.VideoSample=this.createVideoSample(!0,Q.pts,Q.dts);W.key=!0;break;case 34:if(q=!0,typeof Y.params==="object"){if(!Y.pps){Y.pps=[];let U=this.readPPS(H.data);for(let V in U)Y.params[V]=U[V]}this.pushParameterSet(Y.pps,H.data,Y.vps)}break;case 35:if(q=!0,Y.audFound=!0,(K=W)!=null&&K.frame)this.pushAccessUnit(W,Y),W=null;if(!W)W=this.VideoSample=this.createVideoSample(!1,Q.pts,Q.dts);break;default:q=!1;break}if(W&&q)W.units.push(H)}),X&&W)this.pushAccessUnit(W,Y),this.VideoSample=null}pushParameterSet(Y,Z,Q){if(Q&&Q[0]===this.initVPS||!Q&&!Y.length)Y.push(Z)}getNALuType(Y,Z){return(Y[Z]&126)>>>1}ebsp2rbsp(Y){let Z=new Uint8Array(Y.byteLength),Q=0;for(let X=0;X=2){if(Y[X]===3&&Y[X-1]===0&&Y[X-2]===0)continue}Z[Q]=Y[X],Q++}return new Uint8Array(Z.buffer,0,Q)}pushAccessUnit(Y,Z){if(super.pushAccessUnit(Y,Z),this.initVPS)this.initVPS=null}readVPS(Y){let Z=new G9(Y);Z.readUByte(),Z.readUByte(),Z.readBits(4),Z.skipBits(2),Z.readBits(6);let Q=Z.readBits(3),X=Z.readBoolean();return{numTemporalLayers:Q+1,temporalIdNested:X}}readSPS(Y){let Z=new G9(this.ebsp2rbsp(Y));Z.readUByte(),Z.readUByte(),Z.readBits(4);let Q=Z.readBits(3);Z.readBoolean();let X=Z.readBits(2),J=Z.readBoolean(),W=Z.readBits(5),q=Z.readUByte(),z=Z.readUByte(),H=Z.readUByte(),E=Z.readUByte(),K=Z.readUByte(),G=Z.readUByte(),U=Z.readUByte(),V=Z.readUByte(),F=Z.readUByte(),R=Z.readUByte(),B=Z.readUByte(),$=[],L=[];for(let w0=0;w00)for(let w0=Q;w0<8;w0++)Z.readBits(2);for(let w0=0;w01)Z.readEG();for(let E7=0;E70&&j0<16)d=S6[j0-1],e=Y9[j0-1];else if(j0===255)d=Z.readBits(16),e=Z.readBits(16)}if(Z.readBoolean())Z.readBoolean();if(Z.readBoolean()){if(Z.readBits(3),Z.readBoolean(),Z.readBoolean())Z.readUByte(),Z.readUByte(),Z.readUByte()}if(Z.readBoolean())Z.readUEG(),Z.readUEG();if(Z.readBoolean(),Z.readBoolean(),Z.readBoolean(),o0=Z.readBoolean(),o0)Z.skipUEG(),Z.skipUEG(),Z.skipUEG(),Z.skipUEG();if(Z.readBoolean()){if(U0=Z.readBits(32),N0=Z.readBits(32),Z.readBoolean())Z.readUEG();if(Z.readBoolean()){let Y9=Z.readBoolean(),Y2=Z.readBoolean(),K7=!1;if(Y9||Y2){if(K7=Z.readBoolean(),K7)Z.readUByte(),Z.readBits(5),Z.readBoolean(),Z.readBits(5);if(Z.readBits(4),Z.readBits(4),K7)Z.readBits(4);Z.readBits(5),Z.readBits(5),Z.readBits(5)}for(let Z2=0;Z2<=Q;Z2++){F0=Z.readBoolean();let HW=F0||Z.readBoolean(),Q2=!1;if(HW)Z.readEG();else Q2=Z.readBoolean();let X2=Q2?1:Z.readUEG()+1;if(Y9)for(let z1=0;z1>w0&1)<<31-w0)>>>0;let e7=x8.toString(16);if(W===1&&e7==="2")e7="6";return{codecString:`hvc1.${M8}${W}.${e7}.${J?"H":"L"}${B}.B0`,params:{general_tier_flag:J,general_profile_idc:W,general_profile_space:X,general_profile_compatibility_flags:[q,z,H,E],general_constraint_indicator_flags:[K,G,U,V,F,R],general_level_idc:B,bit_depth:f+8,bit_depth_luma_minus8:f,bit_depth_chroma_minus8:_,min_spatial_segmentation_idc:p,chroma_format_idc:O,frame_rate:{fixed:F0,fps:N0/U0}},width:M1,height:p1,pixelRatio:[d,e]}}readPPS(Y){let Z=new G9(this.ebsp2rbsp(Y));if(Z.readUByte(),Z.readUByte(),Z.skipUEG(),Z.skipUEG(),Z.skipBits(2),Z.skipBits(3),Z.skipBits(2),Z.skipUEG(),Z.skipUEG(),Z.skipEG(),Z.skipBits(2),Z.readBoolean())Z.skipUEG();Z.skipEG(),Z.skipEG(),Z.skipBits(4);let X=Z.readBoolean(),J=Z.readBoolean(),W=1;if(J&&X)W=0;else if(J)W=3;else if(X)W=2;return{parallelismType:W}}matchSPS(Y,Z){return String.fromCharCode.apply(null,Y).substr(3)===String.fromCharCode.apply(null,Z).substr(3)}}var B1=188;class k6{constructor(Y,Z,Q,X){this.logger=void 0,this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._pmtId=-1,this._videoTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.remainderData=null,this.videoParser=void 0,this.observer=Y,this.config=Z,this.typeSupported=Q,this.logger=X,this.videoParser=null}static probe(Y,Z){let Q=k6.syncOffset(Y);if(Q>0)Z.warn(`MPEG2-TS detected but first sync word found @ offset ${Q}`);return Q!==-1}static syncOffset(Y){let Z=Y.length,Q=Math.min(B1*5,Z-B1)+1,X=0;while(X1&&(W===0&&q>2||z+B1>Q))return W}else if(q)return-1;else break;X++}return-1}static createTrack(Y,Z){return{container:Y==="video"||Y==="audio"?"video/mp2t":void 0,type:Y,id:k5[Y],pid:-1,inputTimeScale:90000,sequenceNumber:0,samples:[],dropped:0,duration:Y==="audio"?Z:void 0}}resetInitSegment(Y,Z,Q,X){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=k6.createTrack("video"),this._videoTrack.duration=X,this._audioTrack=k6.createTrack("audio",X),this._id3Track=k6.createTrack("id3"),this._txtTrack=k6.createTrack("text"),this._audioTrack.segmentCodec="aac",this.videoParser=null,this.aacOverFlow=null,this.remainderData=null,this.audioCodec=Z,this.videoCodec=Q}resetTimeStamp(){}resetContiguity(){let{_audioTrack:Y,_videoTrack:Z,_id3Track:Q}=this;if(Y)Y.pesData=null;if(Z)Z.pesData=null;if(Q)Q.pesData=null;this.aacOverFlow=null,this.remainderData=null}demux(Y,Z,Q=!1,X=!1){if(!Q)this.sampleAes=null;let J,W=this._videoTrack,q=this._audioTrack,z=this._id3Track,H=this._txtTrack,E=W.pid,K=W.pesData,G=q.pid,U=z.pid,V=q.pesData,F=z.pesData,R=null,B=this.pmtParsed,$=this._pmtId,L=Y.length;if(this.remainderData)Y=Q8(this.remainderData,Y),L=Y.length,this.remainderData=null;if(L>4,x;if(I>1){if(x=D+5+Y[D+4],x===D+B1)continue}else x=D+4;switch(C){case E:if(M){if(K&&(J=W9(K,this.logger))){if(this.readyVideoParser(W.segmentCodec),this.videoParser!==null)this.videoParser.parsePES(W,H,J,!1)}K={data:[],size:0}}if(K)K.data.push(Y.subarray(x,D+B1)),K.size+=D+B1-x;break;case G:if(M){if(V&&(J=W9(V,this.logger)))switch(q.segmentCodec){case"aac":this.parseAACPES(q,J);break;case"mp3":this.parseMPEGPES(q,J);break;case"ac3":this.parseAC3PES(q,J);break}V={data:[],size:0}}if(V)V.data.push(Y.subarray(x,D+B1)),V.size+=D+B1-x;break;case U:if(M){if(F&&(J=W9(F,this.logger)))this.parseID3PES(z,J);F={data:[],size:0}}if(F)F.data.push(Y.subarray(x,D+B1)),F.size+=D+B1-x;break;case 0:if(M)x+=Y[x]+1;$=this._pmtId=XO(Y,x);break;case $:{if(M)x+=Y[x]+1;let f=JO(Y,x,this.typeSupported,Q,this.observer,this.logger);if(E=f.videoPid,E>0)W.pid=E,W.segmentCodec=f.segmentVideoCodec;if(G=f.audioPid,G>0)q.pid=G,q.segmentCodec=f.segmentAudioCodec;if(U=f.id3Pid,U>0)z.pid=U;if(R!==null&&!B)this.logger.warn(`MPEG-TS PMT found at ${D} after unknown PID '${R}'. Backtracking to sync byte @${O} to parse all TS packets.`),R=null,D=O-188;B=this.pmtParsed=!0;break}case 17:case 8191:break;default:R=C;break}}else j++;if(j>0)Yq(this.observer,Error(`Found ${j} TS packet/s that do not start with 0x47`),void 0,this.logger);W.pesData=K,q.pesData=V,z.pesData=F;let w={audioTrack:q,videoTrack:W,id3Track:z,textTrack:H};if(X)this.extractRemainingSamples(w);return w}flush(){let{remainderData:Y}=this;this.remainderData=null;let Z;if(Y)Z=this.demux(Y,-1,!1,!0);else Z={videoTrack:this._videoTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack};if(this.extractRemainingSamples(Z),this.sampleAes)return this.decrypt(Z,this.sampleAes);return Z}extractRemainingSamples(Y){let{audioTrack:Z,videoTrack:Q,id3Track:X,textTrack:J}=Y,W=Q.pesData,q=Z.pesData,z=X.pesData,H;if(W&&(H=W9(W,this.logger))){if(this.readyVideoParser(Q.segmentCodec),this.videoParser!==null)this.videoParser.parsePES(Q,J,H,!0),Q.pesData=null}else Q.pesData=W;if(q&&(H=W9(q,this.logger))){switch(Z.segmentCodec){case"aac":this.parseAACPES(Z,H);break;case"mp3":this.parseMPEGPES(Z,H);break;case"ac3":this.parseAC3PES(Z,H);break}Z.pesData=null}else{if(q!=null&&q.size)this.logger.log("last AAC PES packet truncated,might overlap between fragments");Z.pesData=q}if(z&&(H=W9(z,this.logger)))this.parseID3PES(X,H),X.pesData=null;else X.pesData=z}demuxSampleAes(Y,Z,Q){let X=this.demux(Y,Q,!0,!this.config.progressive),J=this.sampleAes=new _E(this.observer,this.config,Z);return this.decrypt(X,J)}readyVideoParser(Y){if(this.videoParser===null){if(Y==="avc")this.videoParser=new vE;else if(Y==="hevc")this.videoParser=new pE}}decrypt(Y,Z){return new Promise((Q)=>{let{audioTrack:X,videoTrack:J}=Y;if(X.samples&&X.segmentCodec==="aac")Z.decryptAacSamples(X.samples,0,()=>{if(J.samples)Z.decryptAvcSamples(J.samples,0,0,()=>{Q(Y)});else Q(Y)});else if(J.samples)Z.decryptAvcSamples(J.samples,0,0,()=>{Q(Y)})})}destroy(){if(this.observer)this.observer.removeAllListeners();this.config=this.logger=this.observer=null,this.aacOverFlow=this.videoParser=this.remainderData=this.sampleAes=null,this._videoTrack=this._audioTrack=this._id3Track=this._txtTrack=void 0}parseAACPES(Y,Z){let Q=0,X=this.aacOverFlow,J=Z.data;if(X){this.aacOverFlow=null;let K=X.missing,G=X.sample.unit.byteLength;if(K===-1)J=Q8(X.sample.unit,J);else{let U=G-K;X.sample.unit.set(J.subarray(0,K),U),Y.samples.push(X.sample),Q=X.missing}}let W,q;for(W=Q,q=J.length;W0)q+=z}}parseID3PES(Y,Z){if(Z.pts===void 0){this.logger.warn("[tsdemuxer]: ID3 PES unknown PTS");return}let Q=h0({},Z,{type:this._videoTrack?m1.emsg:m1.audioId3,duration:Number.POSITIVE_INFINITY});Y.samples.push(Q)}}function eW(Y,Z){return((Y[Z+1]&31)<<8)+Y[Z+2]}function XO(Y,Z){return(Y[Z+10]&31)<<8|Y[Z+11]}function JO(Y,Z,Q,X,J,W){let q={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},z=(Y[Z+1]&15)<<8|Y[Z+2],H=Z+3+z-4,E=(Y[Z+10]&15)<<8|Y[Z+11];Z+=12+E;while(Z0){let U=Z+5,V=G;while(V>2){switch(Y[U]){case 106:if(Q.ac3!==!0)W.log("AC-3 audio found, not supported in this browser for now");else q.audioPid=K,q.segmentAudioCodec="ac3";break}let R=Y[U+1]+2;U+=R,V-=R}}break;case 194:case 135:return Yq(J,Error("Unsupported EC-3 in M2TS found"),void 0,W),q;case 36:if(q.videoPid===-1)q.videoPid=K,q.segmentVideoCodec="hevc",W.log("HEVC in M2TS found");break}Z+=G+5}return q}function Yq(Y,Z,Q,X){X.warn(`parsing error: ${Z.message}`),Y.emit(N.ERROR,N.ERROR,{type:Y0.MEDIA_ERROR,details:h.FRAG_PARSING_ERROR,fatal:!1,levelRetry:Q,error:Z,reason:Z.message})}function IW(Y,Z){Z.log(`${Y} with AES-128-CBC encryption found in unencrypted stream`)}function W9(Y,Z){let Q=0,X,J,W,q,z,H=Y.data;if(!Y||Y.size===0)return null;while(H[0].length<19&&H.length>1)H[0]=Q8(H[0],H[1]),H.splice(1,1);if(X=H[0],(X[0]<<16)+(X[1]<<8)+X[2]===1){if(J=(X[4]<<8)+X[5],J&&J>Y.size-6)return null;let K=X[7];if(K&192)if(q=(X[9]&14)*536870912+(X[10]&255)*4194304+(X[11]&254)*16384+(X[12]&255)*128+(X[13]&254)/2,K&64){if(z=(X[14]&14)*536870912+(X[15]&255)*4194304+(X[16]&254)*16384+(X[17]&255)*128+(X[18]&254)/2,q-z>5400000)Z.warn(`${Math.round((q-z)/90000)}s delta between PTS and DTS, align them`),q=z}else z=q;W=X[8];let G=W+9;if(Y.size<=G)return null;Y.size-=G;let U=new Uint8Array(Y.size);for(let V=0,F=H.length;VR){G-=R;continue}else X=X.subarray(G),R-=G,G=0;U.set(X,Q),Q+=R}if(J)J-=W+3;return{data:U,pts:q,dts:z,len:J}}return null}class cE{static getSilentFrame(Y,Z){switch(Y){case"mp4a.40.2":if(Z===1)return new Uint8Array([0,200,0,128,35,128]);else if(Z===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);else if(Z===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);else if(Z===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);else if(Z===5)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);else if(Z===6)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(Z===1)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);else if(Z===2)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);else if(Z===3)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);break}return}}var h6=Math.pow(2,32)-1;class T{static init(){T.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],dac3:[],"ac-3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]};let Y;for(Y in T.types)if(T.types.hasOwnProperty(Y))T.types[Y]=[Y.charCodeAt(0),Y.charCodeAt(1),Y.charCodeAt(2),Y.charCodeAt(3)];let Z=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),Q=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);T.HDLR_TYPES={video:Z,audio:Q};let X=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),J=new Uint8Array([0,0,0,0,0,0,0,0]);T.STTS=T.STSC=T.STCO=J,T.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),T.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),T.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),T.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);let W=new Uint8Array([105,115,111,109]),q=new Uint8Array([97,118,99,49]),z=new Uint8Array([0,0,0,1]);T.FTYP=T.box(T.types.ftyp,W,z,W,q),T.DINF=T.box(T.types.dinf,T.box(T.types.dref,X))}static box(Y,...Z){let Q=8,X=Z.length,J=X;while(X--)Q+=Z[X].byteLength;let W=new Uint8Array(Q);W[0]=Q>>24&255,W[1]=Q>>16&255,W[2]=Q>>8&255,W[3]=Q&255,W.set(Y,4);for(X=0,Q=8;X>24&255,Y>>16&255,Y>>8&255,Y&255,Q>>24,Q>>16&255,Q>>8&255,Q&255,X>>24,X>>16&255,X>>8&255,X&255,85,196,0,0]))}static mdia(Y){return T.box(T.types.mdia,T.mdhd(Y.timescale||0,Y.duration||0),T.hdlr(Y.type),T.minf(Y))}static mfhd(Y){return T.box(T.types.mfhd,new Uint8Array([0,0,0,0,Y>>24,Y>>16&255,Y>>8&255,Y&255]))}static minf(Y){if(Y.type==="audio")return T.box(T.types.minf,T.box(T.types.smhd,T.SMHD),T.DINF,T.stbl(Y));else return T.box(T.types.minf,T.box(T.types.vmhd,T.VMHD),T.DINF,T.stbl(Y))}static moof(Y,Z,Q){return T.box(T.types.moof,T.mfhd(Y),T.traf(Q,Z))}static moov(Y){let Z=Y.length,Q=[];while(Z--)Q[Z]=T.trak(Y[Z]);return T.box.apply(null,[T.types.moov,T.mvhd(Y[0].timescale||0,Y[0].duration||0)].concat(Q).concat(T.mvex(Y)))}static mvex(Y){let Z=Y.length,Q=[];while(Z--)Q[Z]=T.trex(Y[Z]);return T.box.apply(null,[T.types.mvex,...Q])}static mvhd(Y,Z){Z*=Y;let Q=Math.floor(Z/(h6+1)),X=Math.floor(Z%(h6+1)),J=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,Y>>24&255,Y>>16&255,Y>>8&255,Y&255,Q>>24,Q>>16&255,Q>>8&255,Q&255,X>>24,X>>16&255,X>>8&255,X&255,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return T.box(T.types.mvhd,J)}static sdtp(Y){let Z=Y.samples||[],Q=new Uint8Array(4+Z.length),X,J;for(X=0;X>>8&255),Z.push(W&255),Z=Z.concat(Array.prototype.slice.call(J));for(X=0;X>>8&255),Q.push(W&255),Q=Q.concat(Array.prototype.slice.call(J));let q=T.box(T.types.avcC,new Uint8Array([1,Z[3],Z[4],Z[5],255,224|Y.sps.length].concat(Z).concat([Y.pps.length]).concat(Q))),z=Y.width,H=Y.height,E=Y.pixelRatio[0],K=Y.pixelRatio[1];return T.box(T.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,z>>8&255,z&255,H>>8&255,H&255,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),q,T.box(T.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),T.box(T.types.pasp,new Uint8Array([E>>24,E>>16&255,E>>8&255,E&255,K>>24,K>>16&255,K>>8&255,K&255])))}static esds(Y){let Z=Y.config;return new Uint8Array([0,0,0,0,3,25,0,1,0,4,17,64,21,0,0,0,0,0,0,0,0,0,0,0,5,2,...Z,6,1,2])}static audioStsd(Y){let Z=Y.samplerate||0;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,Y.channelCount||0,0,16,0,0,0,0,Z>>8&255,Z&255,0,0])}static mp4a(Y){return T.box(T.types.mp4a,T.audioStsd(Y),T.box(T.types.esds,T.esds(Y)))}static mp3(Y){return T.box(T.types[".mp3"],T.audioStsd(Y))}static ac3(Y){return T.box(T.types["ac-3"],T.audioStsd(Y),T.box(T.types.dac3,Y.config))}static stsd(Y){let{segmentCodec:Z}=Y;if(Y.type==="audio"){if(Z==="aac")return T.box(T.types.stsd,T.STSD,T.mp4a(Y));if(Z==="ac3"&&Y.config)return T.box(T.types.stsd,T.STSD,T.ac3(Y));if(Z==="mp3"&&Y.codec==="mp3")return T.box(T.types.stsd,T.STSD,T.mp3(Y))}else if(Y.pps&&Y.sps){if(Z==="avc")return T.box(T.types.stsd,T.STSD,T.avc1(Y));if(Z==="hevc"&&Y.vps)return T.box(T.types.stsd,T.STSD,T.hvc1(Y))}else throw Error("video track missing pps or sps");throw Error(`unsupported ${Y.type} segment codec (${Z}/${Y.codec})`)}static tkhd(Y){let Z=Y.id,Q=(Y.duration||0)*(Y.timescale||0),X=Y.width||0,J=Y.height||0,W=Math.floor(Q/(h6+1)),q=Math.floor(Q%(h6+1));return T.box(T.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,Z>>24&255,Z>>16&255,Z>>8&255,Z&255,0,0,0,0,W>>24,W>>16&255,W>>8&255,W&255,q>>24,q>>16&255,q>>8&255,q&255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,X>>8&255,X&255,0,0,J>>8&255,J&255,0,0]))}static traf(Y,Z){let Q=T.sdtp(Y),X=Y.id,J=Math.floor(Z/(h6+1)),W=Math.floor(Z%(h6+1));return T.box(T.types.traf,T.box(T.types.tfhd,new Uint8Array([0,0,0,0,X>>24,X>>16&255,X>>8&255,X&255])),T.box(T.types.tfdt,new Uint8Array([1,0,0,0,J>>24,J>>16&255,J>>8&255,J&255,W>>24,W>>16&255,W>>8&255,W&255])),T.trun(Y,Q.length+16+20+8+16+8+8),Q)}static trak(Y){return Y.duration=Y.duration||4294967295,T.box(T.types.trak,T.tkhd(Y),T.mdia(Y))}static trex(Y){let Z=Y.id;return T.box(T.types.trex,new Uint8Array([0,0,0,0,Z>>24,Z>>16&255,Z>>8&255,Z&255,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(Y,Z){let Q=Y.samples||[],X=Q.length,J=12+16*X,W=new Uint8Array(J),q,z,H,E,K,G;Z+=8+J,W.set([Y.type==="video"?1:0,0,15,1,X>>>24&255,X>>>16&255,X>>>8&255,X&255,Z>>>24&255,Z>>>16&255,Z>>>8&255,Z&255],0);for(q=0;q>>24&255,H>>>16&255,H>>>8&255,H&255,E>>>24&255,E>>>16&255,E>>>8&255,E&255,K.isLeading<<2|K.dependsOn,K.isDependedOn<<6|K.hasRedundancy<<4|K.paddingValue<<1|K.isNonSync,K.degradPrio&61440,K.degradPrio&15,G>>>24&255,G>>>16&255,G>>>8&255,G&255],12+16*q);return T.box(T.types.trun,W)}static initSegment(Y){if(!T.types)T.init();let Z=T.moov(Y);return Q8(T.FTYP,Z)}static hvc1(Y){let Z=Y.params,Q=[Y.vps,Y.sps,Y.pps],X=4,J=new Uint8Array([1,Z.general_profile_space<<6|(Z.general_tier_flag?32:0)|Z.general_profile_idc,Z.general_profile_compatibility_flags[0],Z.general_profile_compatibility_flags[1],Z.general_profile_compatibility_flags[2],Z.general_profile_compatibility_flags[3],Z.general_constraint_indicator_flags[0],Z.general_constraint_indicator_flags[1],Z.general_constraint_indicator_flags[2],Z.general_constraint_indicator_flags[3],Z.general_constraint_indicator_flags[4],Z.general_constraint_indicator_flags[5],Z.general_level_idc,240|Z.min_spatial_segmentation_idc>>8,255&Z.min_spatial_segmentation_idc,252|Z.parallelismType,252|Z.chroma_format_idc,248|Z.bit_depth_luma_minus8,248|Z.bit_depth_chroma_minus8,0,parseInt(Z.frame_rate.fps),3|Z.temporal_id_nested<<2|Z.num_temporal_layers<<3|(Z.frame_rate.fixed?64:0),Q.length]),W=J.length;for(let V=0;V>8,Q[V][F].length&255]),W),W+=2,q.set(Q[V][F],W),W+=Q[V][F].length}let H=T.box(T.types.hvcC,q),E=Y.width,K=Y.height,G=Y.pixelRatio[0],U=Y.pixelRatio[1];return T.box(T.types.hvc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,E>>8&255,E&255,K>>8&255,K&255,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),H,T.box(T.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),T.box(T.types.pasp,new Uint8Array([G>>24,G>>16&255,G>>8&255,G&255,U>>24,U>>16&255,U>>8&255,U&255])))}}T.types=void 0;T.HDLR_TYPES=void 0;T.STTS=void 0;T.STSC=void 0;T.STCO=void 0;T.STSZ=void 0;T.VMHD=void 0;T.SMHD=void 0;T.STSD=void 0;T.FTYP=void 0;T.DINF=void 0;var uE=90000;function Sq(Y,Z,Q=1,X=!1){let J=Y*Z*Q;return X?Math.round(J):J}function WO(Y,Z,Q=1,X=!1){return Sq(Y,Z,1/Q,X)}function MY(Y,Z=!1){return Sq(Y,1000,1/uE,Z)}function qO(Y,Z=1){return Sq(Y,uE,1/Z)}function q5(Y){let{baseTime:Z,timescale:Q,trackId:X}=Y;return`${Z/Q} (${Z}/${Q}) trackId: ${X}`}var HO=1e4,zO=1024,EO=1152,KO=1536,q9=null,SW=null;function H5(Y,Z,Q,X){return{duration:Z,size:Q,cts:X,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:Y?2:1,isNonSync:Y?0:1}}}class TY extends d1{constructor(Y,Z,Q,X){super("mp4-remuxer",X);if(this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextVideoTs=null,this.nextAudioTs=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=Y,this.config=Z,this.typeSupported=Q,this.ISGenerated=!1,q9===null){let W=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);q9=W?parseInt(W[1]):0}if(SW===null){let J=navigator.userAgent.match(/Safari\/(\d+)/i);SW=J?parseInt(J[1]):0}}destroy(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null}resetTimeStamp(Y){let Z=this._initPTS;if(!Z||!Y||Y.trackId!==Z.trackId||Y.baseTime!==Z.baseTime||Y.timescale!==Z.timescale)this.log(`Reset initPTS: ${Z?q5(Z):Z} > ${Y?q5(Y):Y}`);this._initPTS=this._initDTS=Y}resetNextTimestamp(){this.log("reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){this.log("ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0}getVideoStartPts(Y){let Z=!1,Q=Y[0].pts,X=Y.reduce((J,W)=>{let q=W.pts,z=q-J;if(z<-4294967296)Z=!0,q=u1(q,Q),z=q-J;if(z>0)return J;return q},Q);if(Z)this.debug("PTS rollover detected");return X}remux(Y,Z,Q,X,J,W,q,z){let H,E,K,G,U,V,F=J,R=J,B=Y.pid>-1,$=Z.pid>-1,L=Z.samples.length,O=Y.samples.length>0,j=q&&L>0||L>1;if((!B||O)&&(!$||j)||this.ISGenerated||q){if(this.ISGenerated){var D,M,C,I;let o=this.videoTrackConfig;if(o&&(Z.width!==o.width||Z.height!==o.height||((D=Z.pixelRatio)==null?void 0:D[0])!==((M=o.pixelRatio)==null?void 0:M[0])||((C=Z.pixelRatio)==null?void 0:C[1])!==((I=o.pixelRatio)==null?void 0:I[1]))||!o&&j||this.nextAudioTs===null&&O)this.resetInitSegment()}if(!this.ISGenerated)K=this.generateIS(Y,Z,J,W);let x=this.isVideoContiguous,f=-1,_;if(j){if(f=GO(Z.samples),!x&&this.config.forceKeyFrameOnDiscontinuity){if(V=!0,f>0){this.warn(`Dropped ${f} out of ${L} video samples due to a missing keyframe`);let o=this.getVideoStartPts(Z.samples);Z.samples=Z.samples.slice(f),Z.dropped+=f,R+=(Z.samples[0].pts-o)/Z.inputTimeScale,_=R}else if(f===-1)this.warn(`No keyframe found out of ${L} video samples`),V=!1}}if(this.ISGenerated){if(O&&j){let o=this.getVideoStartPts(Z.samples),g=(u1(Y.samples[0].pts,o)-o)/Z.inputTimeScale;F+=Math.max(0,g),R+=Math.max(0,-g)}if(O){if(!Y.samplerate)this.warn("regenerate InitSegment as audio detected"),K=this.generateIS(Y,Z,J,W);if(E=this.remuxAudio(Y,F,this.isAudioContiguous,W,$||j||z===t.AUDIO?R:void 0),j){let o=E?E.endPTS-E.startPTS:0;if(!Z.inputTimeScale)this.warn("regenerate InitSegment as video detected"),K=this.generateIS(Y,Z,J,W);H=this.remuxVideo(Z,R,x,o)}}else if(j)H=this.remuxVideo(Z,R,x,0);if(H)H.firstKeyFrame=f,H.independent=f!==-1,H.firstKeyFramePTS=_}}if(this.ISGenerated&&this._initPTS&&this._initDTS){if(Q.samples.length)U=mE(Q,J,this._initPTS,this._initDTS);if(X.samples.length)G=oE(X,J,this._initPTS)}return{audio:E,video:H,initSegment:K,independent:V,text:G,id3:U}}computeInitPts(Y,Z,Q,X){let J=Math.round(Q*Z),W=u1(Y,J);if(W0?p-1:p].dts)$=!0}if($)W.sort(function(p,d){let e=p.dts-d.dts,F0=p.pts-d.pts;return e||F0});V=W[0].dts,F=W[W.length-1].dts;let O=F-V,j=O?Math.round(O/(z-1)):U||Y.inputTimeScale/30;if(Q){let p=V-L,d=p>j,e=p<-1;if(d||e){if(d)this.warn(`${(Y.segmentCodec||"").toUpperCase()}: ${MY(p,!0)} ms (${p}dts) hole between fragments detected at ${Z.toFixed(3)}`);else this.warn(`${(Y.segmentCodec||"").toUpperCase()}: ${MY(-p,!0)} ms (${p}dts) overlapping between fragments detected at ${Z.toFixed(3)}`);if(!e||L>=W[0].pts||q9){V=L;let F0=W[0].pts-p;if(d)W[0].dts=V,W[0].pts=F0;else{let U0=!0;for(let N0=0;N0F0&&U0)break;let o0=W[N0].pts;if(W[N0].dts-=p,W[N0].pts-=p,N00?d.dts-W[p-1].dts:j;if(U0=p>0?d.pts-W[p-1].pts:j,o0.stretchShortVideoTrack&&this.nextAudioTs!==null){let M1=Math.floor(o0.maxBufferHole*J),p1=(X?R+X*J:this.nextAudioTs+E)-d.pts;if(p1>M1){if(U=p1-s0,U<0)U=s0;else f=!0;this.log(`It is approximately ${p1/90} ms to the next segment; using duration ${U/90} ms for the last video frame.`)}else U=s0}else U=s0}let N0=Math.round(d.pts-d.dts);_=Math.min(_,U),n=Math.max(n,U),o=Math.min(o,U0),g=Math.max(g,U0),q.push(H5(d.key,U,F0,N0))}if(q.length){if(q9){if(q9<70){let p=q[0].flags;p.dependsOn=2,p.isNonSync=0}}else if(SW){if(g-o0&&(X&&Math.abs(L-(B+$))<9000||Math.abs(u1(F[0].pts,L)-(B+$))<20*E),F.forEach(function(g){g.pts=u1(g.pts,L)}),!Q||B<0){let g=F.length;if(F=F.filter((l)=>l.pts>=0),g!==F.length)this.warn(`Removed ${F.length-g} of ${g} samples (initPTS ${$} / ${W})`);if(!F.length)return;if(J===0)B=0;else if(X&&!V)B=Math.max(0,L-$);else B=F[0].pts-$}if(Y.segmentCodec==="aac"){let g=this.config.maxAudioFramesDrift;for(let l=0,c=B+$;l=g*E&&d0){D+=R;try{w=new Uint8Array(D)}catch(d){this.observer.emit(N.ERROR,N.ERROR,{type:Y0.MUX_ERROR,details:h.REMUX_ALLOC_ERROR,fatal:!1,error:d,bytes:D,reason:`fail allocating audio mdat ${D}`});return}if(!G)new DataView(w.buffer).setUint32(0,D),w.set(T.types.mdat,4)}else return}w.set(s,R);let p=s.byteLength;R+=p,U.push(H5(!0,H,p,0)),j=Q0}let C=U.length;if(!C)return;let I=U[U.length-1];B=j-$,this.nextAudioTs=B+z*I.duration;let x=G?new Uint8Array(0):T.moof(Y.sequenceNumber++,O/z,h0({},Y,{samples:U}));Y.samples=[];let f=(O-$)/W,_=this.nextAudioTs/W,n={data1:x,data2:w,startPTS:f,endPTS:_,startDTS:f,endDTS:_,type:"audio",hasAudio:!0,hasVideo:!1,nb:C};return this.isAudioContiguous=!0,n}}function u1(Y,Z){let Q;if(Z===null)return Y;if(Z4294967296)Y+=Q;return Y}function GO(Y){for(let Z=0;Zq.pts-z.pts);let W=Y.samples;return Y.samples=[],{samples:W}}class dE extends d1{constructor(Y,Z,Q,X){super("passthrough-remuxer",X);this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null,this.isVideoContiguous=!1}destroy(){}resetTimeStamp(Y){this.lastEndTime=null;let Z=this.initPTS;if(Z&&Y){if(Z.baseTime===Y.baseTime&&Z.timescale===Y.timescale)return}this.initPTS=Y}resetNextTimestamp(){this.isVideoContiguous=!1,this.lastEndTime=null}resetInitSegment(Y,Z,Q,X){this.audioCodec=Z,this.videoCodec=Q,this.generateInitSegment(Y,X),this.emitInitSegment=!0}generateInitSegment(Y,Z){let{audioCodec:Q,videoCodec:X}=this;if(!(Y!=null&&Y.byteLength)){this.initTracks=void 0,this.initData=void 0;return}let{audio:J,video:W}=this.initData=_5(Y);if(Z)R$(Y,Z);else{let z=J||W;if(z!=null&&z.encrypted)this.warn(`Init segment with encrypted track with has no key ("${z.codec}")!`)}if(J)Q=z5(J,b0.AUDIO,this);if(W)X=z5(W,b0.VIDEO,this);let q={};if(J&&W)q.audiovideo={container:"video/mp4",codec:Q+","+X,supplemental:W.supplemental,encrypted:W.encrypted,initSegment:Y,id:"main"};else if(J)q.audio={container:"audio/mp4",codec:Q,encrypted:J.encrypted,initSegment:Y,id:"audio"};else if(W)q.video={container:"video/mp4",codec:X,supplemental:W.supplemental,encrypted:W.encrypted,initSegment:Y,id:"main"};else this.warn("initSegment does not contain moov or trak boxes.");this.initTracks=q}remux(Y,Z,Q,X,J,W){var q,z;let{initPTS:H,lastEndTime:E}=this,K={audio:void 0,video:void 0,text:X,id3:Q,initSegment:void 0};if(!r(E))E=this.lastEndTime=J||0;let G=Z.samples;if(!G.length)return K;let U={initPTS:void 0,timescale:void 0,trackId:void 0},V=this.initData;if(!((q=V)!=null&&q.length))this.generateInitSegment(G),V=this.initData;if(!((z=V)!=null&&z.length))return this.warn("Failed to generate initSegment."),K;if(this.emitInitSegment)U.tracks=this.initTracks,this.emitInitSegment=!1;let F=N$(G,V,this),R=V.audio?F[V.audio.id]:null,B=V.video?F[V.video.id]:null,$=L2(B,1/0),L=L2(R,1/0),O=L2(B,0,!0),j=L2(R,0,!0),w=J,D=0,M=R&&(!B||!H&&L<$||H&&H.trackId===V.audio.id),C=M?R:B;if(C){let c=C.timescale,s=C.start-J*c,Q0=M?V.audio.id:V.video.id;if(w=C.start/c,D=M?j-L:O-$,(W||!H)&&(VO(H,w,J,D)||c!==H.timescale)){if(H)this.warn(`Timestamps at playlist time: ${W?"":"~"}${J} ${s/c} != initPTS: ${H.baseTime/H.timescale} (${H.baseTime}/${H.timescale}) trackId: ${H.trackId}`);this.log(`Found initPTS at playlist time: ${J} offset: ${w-J} (${s}/${c}) trackId: ${Q0}`),H=null,U.initPTS=s,U.timescale=c,U.trackId=Q0}}else this.warn(`No audio or video samples found for initPTS at playlist time: ${J}`);if(!H){if(!U.timescale||U.trackId===void 0||U.initPTS===void 0)this.warn("Could not set initPTS"),U.initPTS=w,U.timescale=1,U.trackId=-1;this.initPTS=H={baseTime:U.initPTS,timescale:U.timescale,trackId:U.trackId}}else U.initPTS=H.baseTime,U.timescale=H.timescale,U.trackId=H.trackId;let I=w-H.baseTime/H.timescale,x=I+D;if(D>0)this.lastEndTime=x;else this.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp();let f=!!V.audio,_=!!V.video,o="";if(f)o+="audio";if(_)o+="video";let n=(V.audio?V.audio.encrypted:!1)||(V.video?V.video.encrypted:!1),g={data1:G,startPTS:I,startDTS:I,endPTS:x,endDTS:x,type:o,hasAudio:f,hasVideo:_,nb:1,dropped:0,encrypted:n};K.audio=f&&!_?g:void 0,K.video=_?g:void 0;let l=B==null?void 0:B.sampleCount;if(l){let c=B.keyFrameIndex,s=c!==-1;if(g.nb=l,g.dropped=c===0||this.isVideoContiguous?0:s?c:l,g.independent=s,g.firstKeyFrame=c,s&&B.keyFrameStart)g.firstKeyFramePTS=(B.keyFrameStart-H.baseTime)/H.timescale;if(!this.isVideoContiguous)K.independent=s;if(this.isVideoContiguous||(this.isVideoContiguous=s),g.dropped)this.warn(`fmp4 does not start with IDR: firstIDR ${c}/${l} dropped: ${g.dropped} start: ${g.firstKeyFramePTS||"NA"}`)}if(K.initSegment=U,K.id3=mE(Q,J,H,H),X.samples.length)K.text=oE(X,J,H);return K}}function L2(Y,Z,Q=!1){return(Y==null?void 0:Y.start)!==void 0?(Y.start+(Q?Y.duration:0))/Y.timescale:Z}function VO(Y,Z,Q,X){if(Y===null)return!0;let J=Math.max(X,1),W=Z-Y.baseTime/Y.timescale;return Math.abs(W-Q)>J}function z5(Y,Z,Q){let X=Y.codec;if(X&&X.length>4)return X;if(Z===b0.AUDIO){if(X==="ec-3"||X==="ac-3"||X==="alac")return X;if(X==="fLaC"||X==="Opus")return b2(X,!1);return Q.warn(`Unhandled audio codec "${X}" in mp4 MAP`),X||"mp4a"}return Q.warn(`Unhandled video codec "${X}" in mp4 MAP`),X||"avc1"}var U6;try{U6=self.performance.now.bind(self.performance)}catch(Y){U6=Date.now}var T2=[{demux:bE,remux:dE},{demux:k6,remux:TY},{demux:hE,remux:TY},{demux:gE,remux:TY}];T2.splice(2,0,{demux:yE,remux:TY});class Zq{constructor(Y,Z,Q,X,J,W){this.asyncResult=!1,this.logger=void 0,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.observer=Y,this.typeSupported=Z,this.config=Q,this.id=J,this.logger=W}configure(Y){if(this.transmuxConfig=Y,this.decrypter)this.decrypter.reset()}push(Y,Z,Q,X){let J=Q.transmuxing;J.executeStart=U6();let W=new Uint8Array(Y),{currentTransmuxState:q,transmuxConfig:z}=this;if(X)this.currentTransmuxState=X;let{contiguous:H,discontinuity:E,trackSwitch:K,accurateTimeOffset:G,timeOffset:U,initSegmentChange:V}=X||q,{audioCodec:F,videoCodec:R,defaultInitPts:B,duration:$,initSegmentData:L}=z,O=UO(W,Z);if(O&&K9(O.method)){let M=this.getDecrypter(),C=jq(O.method);if(M.isSync()){let I=M.softwareDecrypt(W,O.key.buffer,O.iv.buffer,C);if(Q.part>-1){let f=M.flush();I=f?f.buffer:f}if(!I)return J.executeEnd=U6(),TW(Q);W=new Uint8Array(I)}else return this.asyncResult=!0,this.decryptionPromise=M.webCryptoDecrypt(W,O.key.buffer,O.iv.buffer,C).then((I)=>{let x=this.push(I,null,Q);return this.decryptionPromise=null,x}),this.decryptionPromise}let j=this.needsProbing(E,K);if(j){let M=this.configureTransmuxer(W);if(M)return this.logger.warn(`[transmuxer] ${M.message}`),this.observer.emit(N.ERROR,N.ERROR,{type:Y0.MEDIA_ERROR,details:h.FRAG_PARSING_ERROR,fatal:!1,error:M,reason:M.message}),J.executeEnd=U6(),TW(Q)}if(E||K||V||j)this.resetInitSegment(L,F,R,$,Z);if(E||V||j)this.resetInitialTimestamp(B);if(!H)this.resetContiguity();let w=this.transmux(W,O,U,G,Q);this.asyncResult=bY(w);let D=this.currentTransmuxState;return D.contiguous=!0,D.discontinuity=!1,D.trackSwitch=!1,J.executeEnd=U6(),w}flush(Y){let Z=Y.transmuxing;Z.executeStart=U6();let{decrypter:Q,currentTransmuxState:X,decryptionPromise:J}=this;if(J)return this.asyncResult=!0,J.then(()=>{return this.flush(Y)});let W=[],{timeOffset:q}=X;if(Q){let K=Q.flush();if(K)W.push(this.push(K.buffer,null,Y))}let{demuxer:z,remuxer:H}=this;if(!z||!H){Z.executeEnd=U6();let K=[TW(Y)];if(this.asyncResult)return Promise.resolve(K);return K}let E=z.flush(q);if(bY(E))return this.asyncResult=!0,E.then((K)=>{return this.flushRemux(W,K,Y),W});if(this.flushRemux(W,E,Y),this.asyncResult)return Promise.resolve(W);return W}flushRemux(Y,Z,Q){let{audioTrack:X,videoTrack:J,id3Track:W,textTrack:q}=Z,{accurateTimeOffset:z,timeOffset:H}=this.currentTransmuxState;this.logger.log(`[transmuxer.ts]: Flushed ${this.id} sn: ${Q.sn}${Q.part>-1?" part: "+Q.part:""} of ${this.id===t.MAIN?"level":"track"} ${Q.level}`);let E=this.remuxer.remux(X,J,W,q,H,z,!0,this.id);Y.push({remuxResult:E,chunkMeta:Q}),Q.transmuxing.executeEnd=U6()}resetInitialTimestamp(Y){let{demuxer:Z,remuxer:Q}=this;if(!Z||!Q)return;Z.resetTimeStamp(Y),Q.resetTimeStamp(Y)}resetContiguity(){let{demuxer:Y,remuxer:Z}=this;if(!Y||!Z)return;Y.resetContiguity(),Z.resetNextTimestamp()}resetInitSegment(Y,Z,Q,X,J){let{demuxer:W,remuxer:q}=this;if(!W||!q)return;W.resetInitSegment(Y,Z,Q,X),q.resetInitSegment(Y,Z,Q,J)}destroy(){if(this.demuxer)this.demuxer.destroy(),this.demuxer=void 0;if(this.remuxer)this.remuxer.destroy(),this.remuxer=void 0}transmux(Y,Z,Q,X,J){let W;if(Z&&Z.method==="SAMPLE-AES")W=this.transmuxSampleAes(Y,Z,Q,X,J);else W=this.transmuxUnencrypted(Y,Q,X,J);return W}transmuxUnencrypted(Y,Z,Q,X){let{audioTrack:J,videoTrack:W,id3Track:q,textTrack:z}=this.demuxer.demux(Y,Z,!1,!this.config.progressive);return{remuxResult:this.remuxer.remux(J,W,q,z,Z,Q,!1,this.id),chunkMeta:X}}transmuxSampleAes(Y,Z,Q,X,J){return this.demuxer.demuxSampleAes(Y,Z,Q).then((W)=>{return{remuxResult:this.remuxer.remux(W.audioTrack,W.videoTrack,W.id3Track,W.textTrack,Q,X,!1,this.id),chunkMeta:J}})}configureTransmuxer(Y){let{config:Z,observer:Q,typeSupported:X}=this,J;for(let K=0,G=T2.length;K0&&(Z==null?void 0:Z.key)!=null&&Z.iv!==null&&Z.method!=null)Q=Z;return Q}var TW=(Y)=>({remuxResult:{},chunkMeta:Y});function bY(Y){return"then"in Y&&Y.then instanceof Function}class lE{constructor(Y,Z,Q,X,J){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=Y,this.videoCodec=Z,this.initSegmentData=Q,this.duration=X,this.defaultInitPts=J||null}}class nE{constructor(Y,Z,Q,X,J,W){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=Y,this.contiguous=Z,this.accurateTimeOffset=Q,this.trackSwitch=X,this.timeOffset=J,this.initSegmentChange=W}}var E5=0;class Tq{constructor(Y,Z,Q,X){this.error=null,this.hls=void 0,this.id=void 0,this.instanceNo=E5++,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0,this.onWorkerMessage=(z)=>{let H=z.data,E=this.hls;if(!E||!(H!=null&&H.event)||H.instanceNo!==this.instanceNo)return;switch(H.event){case"init":{var K;let G=(K=this.workerContext)==null?void 0:K.objectURL;if(G)self.URL.revokeObjectURL(G);break}case"transmuxComplete":{this.handleTransmuxComplete(H.data);break}case"flush":{this.onFlush(H.data);break}case"workerLog":{if(E.logger[H.data.logType])E.logger[H.data.logType](H.data.message);break}default:{H.data=H.data||{},H.data.frag=this.frag,H.data.part=this.part,H.data.id=this.id,E.trigger(H.event,H.data);break}}},this.onWorkerError=(z)=>{if(!this.hls)return;let H=Error(`${z.message} (${z.filename}:${z.lineno})`);this.hls.config.enableWorker=!1,this.hls.logger.warn(`Error in "${this.id}" Web Worker, fallback to inline`),this.hls.trigger(N.ERROR,{type:Y0.OTHER_ERROR,details:h.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:H})};let J=Y.config;this.hls=Y,this.id=Z,this.useWorker=!!J.enableWorker,this.onTransmuxComplete=Q,this.onFlush=X;let W=(z,H)=>{if(H=H||{},H.frag=this.frag||void 0,z===N.ERROR)H=H,H.parent=this.id,H.part=this.part,this.error=H.error;this.hls.trigger(z,H)};this.observer=new wq,this.observer.on(N.FRAG_DECRYPTED,W),this.observer.on(N.ERROR,W);let q=C3(J.preferManagedMediaSource);if(this.useWorker&&typeof Worker<"u"){let z=this.hls.logger;if(J.workerPath||xL()){try{if(J.workerPath)z.log(`loading Web Worker ${J.workerPath} for "${Z}"`),this.workerContext=SL(J.workerPath);else z.log(`injecting Web Worker for "${Z}"`),this.workerContext=IL();let{worker:E}=this.workerContext;E.addEventListener("message",this.onWorkerMessage),E.addEventListener("error",this.onWorkerError),E.postMessage({instanceNo:this.instanceNo,cmd:"init",typeSupported:q,id:Z,config:_0(J)})}catch(E){z.warn(`Error setting up "${Z}" Web Worker, fallback to inline`,E),this.terminateWorker(),this.error=null,this.transmuxer=new Zq(this.observer,q,J,"",Z,Y.logger)}return}}this.transmuxer=new Zq(this.observer,q,J,"",Z,Y.logger)}reset(){if(this.frag=null,this.part=null,this.workerContext){let Y=this.instanceNo;this.instanceNo=E5++;let Z=this.hls.config,Q=C3(Z.preferManagedMediaSource);this.workerContext.worker.postMessage({instanceNo:this.instanceNo,cmd:"reset",resetNo:Y,typeSupported:Q,id:this.id,config:_0(Z)})}}terminateWorker(){if(this.workerContext){let{worker:Y}=this.workerContext;this.workerContext=null,Y.removeEventListener("message",this.onWorkerMessage),Y.removeEventListener("error",this.onWorkerError),TL(this.hls.config.workerPath)}}destroy(){if(this.workerContext)this.terminateWorker(),this.onWorkerMessage=this.onWorkerError=null;else{let Z=this.transmuxer;if(Z)Z.destroy(),this.transmuxer=null}let Y=this.observer;if(Y)Y.removeAllListeners();this.frag=null,this.part=null,this.observer=null,this.hls=null}push(Y,Z,Q,X,J,W,q,z,H,E){var K,G;H.transmuxing.start=self.performance.now();let{instanceNo:U,transmuxer:V}=this,F=W?W.start:J.start,R=J.decryptdata,B=this.frag,$=!(B&&J.cc===B.cc),L=!(B&&H.level===B.level),O=B?H.sn-B.sn:-1,j=this.part?H.part-this.part.index:-1,w=O===0&&H.id>1&&H.id===(B==null?void 0:B.stats.chunkCount),D=!L&&(O===1||O===0&&(j===1||w&&j<=0)),M=self.performance.now();if(L||O||J.stats.parsing.start===0)J.stats.parsing.start=M;if(W&&(j||!D))W.stats.parsing.start=M;let C=!(B&&((K=J.initSegment)==null?void 0:K.url)===((G=B.initSegment)==null?void 0:G.url)),I=new nE($,D,z,L,F,C);if(!D||$||C){this.hls.logger.log(`[transmuxer-interface]: Starting new transmux session for ${J.type} sn: ${H.sn}${H.part>-1?" part: "+H.part:""} ${this.id===t.MAIN?"level":"track"}: ${H.level} id: ${H.id} discontinuity: ${$} trackSwitch: ${L} contiguous: ${D} accurateTimeOffset: ${z} timeOffset: ${F} initSegmentChange: ${C}`);let x=new lE(Q,X,Z,q,E);this.configureTransmuxer(x)}if(this.frag=J,this.part=W,this.workerContext)this.workerContext.worker.postMessage({instanceNo:U,cmd:"demux",data:Y,decryptdata:R,chunkMeta:H,state:I},Y instanceof ArrayBuffer?[Y]:[]);else if(V){let x=V.push(Y,R,H,I);if(bY(x))x.then((f)=>{this.handleTransmuxComplete(f)}).catch((f)=>{this.transmuxerError(f,H,"transmuxer-interface push error")});else this.handleTransmuxComplete(x)}}flush(Y){Y.transmuxing.start=self.performance.now();let{instanceNo:Z,transmuxer:Q}=this;if(this.workerContext)this.workerContext.worker.postMessage({instanceNo:Z,cmd:"flush",chunkMeta:Y});else if(Q){let X=Q.flush(Y);if(bY(X))X.then((J)=>{this.handleFlushResult(J,Y)}).catch((J)=>{this.transmuxerError(J,Y,"transmuxer-interface flush error")});else this.handleFlushResult(X,Y)}}transmuxerError(Y,Z,Q){if(!this.hls)return;this.error=Y,this.hls.trigger(N.ERROR,{type:Y0.MEDIA_ERROR,details:h.FRAG_PARSING_ERROR,chunkMeta:Z,frag:this.frag||void 0,part:this.part||void 0,fatal:!1,error:Y,err:Y,reason:Q})}handleFlushResult(Y,Z){Y.forEach((Q)=>{this.handleTransmuxComplete(Q)}),this.onFlush(Z)}configureTransmuxer(Y){let{instanceNo:Z,transmuxer:Q}=this;if(this.workerContext)this.workerContext.worker.postMessage({instanceNo:Z,cmd:"configure",config:Y});else if(Q)Q.configure(Y)}handleTransmuxComplete(Y){Y.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(Y)}}var K5=100;class sE extends a2{constructor(Y,Z,Q){super(Y,Z,Q,"audio-stream-controller",t.AUDIO);this.mainAnchor=null,this.mainFragLoading=null,this.audioOnly=!1,this.bufferedTrack=null,this.switchingTrack=null,this.trackId=-1,this.waitingData=null,this.mainDetails=null,this.flushing=!1,this.bufferFlushed=!1,this.cachedTrackLoadedData=null,this.registerListeners()}onHandlerDestroying(){this.unregisterListeners(),super.onHandlerDestroying(),this.resetItem()}resetItem(){this.mainDetails=this.mainAnchor=this.mainFragLoading=this.bufferedTrack=this.switchingTrack=this.waitingData=this.cachedTrackLoadedData=null}registerListeners(){super.registerListeners();let{hls:Y}=this;Y.on(N.LEVEL_LOADED,this.onLevelLoaded,this),Y.on(N.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),Y.on(N.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),Y.on(N.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),Y.on(N.BUFFER_RESET,this.onBufferReset,this),Y.on(N.BUFFER_CREATED,this.onBufferCreated,this),Y.on(N.BUFFER_FLUSHING,this.onBufferFlushing,this),Y.on(N.BUFFER_FLUSHED,this.onBufferFlushed,this),Y.on(N.INIT_PTS_FOUND,this.onInitPtsFound,this),Y.on(N.FRAG_LOADING,this.onFragLoading,this),Y.on(N.FRAG_BUFFERED,this.onFragBuffered,this)}unregisterListeners(){let{hls:Y}=this;if(!Y)return;super.unregisterListeners(),Y.off(N.LEVEL_LOADED,this.onLevelLoaded,this),Y.off(N.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),Y.off(N.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),Y.off(N.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),Y.off(N.BUFFER_RESET,this.onBufferReset,this),Y.off(N.BUFFER_CREATED,this.onBufferCreated,this),Y.off(N.BUFFER_FLUSHING,this.onBufferFlushing,this),Y.off(N.BUFFER_FLUSHED,this.onBufferFlushed,this),Y.off(N.INIT_PTS_FOUND,this.onInitPtsFound,this),Y.off(N.FRAG_LOADING,this.onFragLoading,this),Y.off(N.FRAG_BUFFERED,this.onFragBuffered,this)}onInitPtsFound(Y,{frag:Z,id:Q,initPTS:X,timescale:J,trackId:W}){if(Q===t.MAIN){let q=Z.cc,z=this.fragCurrent;if(this.initPTS[q]={baseTime:X,timescale:J,trackId:W},this.log(`InitPTS for cc: ${q} found from main: ${X/J} (${X}/${J}) trackId: ${W}`),this.mainAnchor=Z,this.state===y.WAITING_INIT_PTS){let H=this.waitingData;if(!H&&!this.loadingParts||H&&H.frag.cc!==q)this.syncWithAnchor(Z,H==null?void 0:H.frag)}else if(!this.hls.hasEnoughToStart&&z&&z.cc!==q)z.abortRequests(),this.syncWithAnchor(Z,z);else if(this.state===y.IDLE)this.tick()}}getLoadPosition(){if(!this.startFragRequested&&this.nextLoadPosition>=0)return this.nextLoadPosition;return super.getLoadPosition()}syncWithAnchor(Y,Z){var Q;let X=((Q=this.mainFragLoading)==null?void 0:Q.frag)||null;if(Z){if((X==null?void 0:X.cc)===Z.cc)return}let J=(X||Y).cc,W=this.getLevelDetails(),q=this.getLoadPosition(),z=r5(W,J,q);if(z){if(this.log(`Syncing with main frag at ${z.start} cc ${z.cc}`),this.startFragRequested=!1,this.nextLoadPosition=z.start,this.resetLoadingState(),this.state===y.IDLE)this.doTickIdle()}}startLoad(Y,Z){if(!this.levels){this.startPosition=Y,this.state=y.STOPPED;return}let Q=this.lastCurrentTime;if(this.stopLoad(),this.setInterval(K5),Q>0&&Y===-1)this.log(`Override startPosition with lastCurrentTime @${Q.toFixed(3)}`),Y=Q,this.state=y.IDLE;else this.state=y.WAITING_TRACK;this.nextLoadPosition=this.lastCurrentTime=Y+this.timelineOffset,this.startPosition=Z?-1:Y,this.tick()}doTick(){switch(this.state){case y.IDLE:this.doTickIdle();break;case y.WAITING_TRACK:{let{levels:Y,trackId:Z}=this,Q=Y==null?void 0:Y[Z],X=Q==null?void 0:Q.details;if(X&&!this.waitForLive(Q)){if(this.waitForCdnTuneIn(X))break;this.state=y.WAITING_INIT_PTS}break}case y.FRAG_LOADING_WAITING_RETRY:{this.checkRetryDate();break}case y.WAITING_INIT_PTS:{let Y=this.waitingData;if(Y){let{frag:Z,part:Q,cache:X,complete:J}=Y,W=this.mainAnchor;if(this.initPTS[Z.cc]!==void 0){this.waitingData=null,this.state=y.FRAG_LOADING;let q=X.flush().buffer,z={frag:Z,part:Q,payload:q,networkDetails:null};if(this._handleFragmentLoadProgress(z),J)super._handleFragmentLoadComplete(z)}else if(W&&W.cc!==Y.frag.cc)this.syncWithAnchor(W,Y.frag)}else this.state=y.IDLE}}this.onTickEnd()}resetLoadingState(){let Y=this.waitingData;if(Y)this.fragmentTracker.removeFragment(Y.frag),this.waitingData=null;super.resetLoadingState()}onTickEnd(){let{media:Y}=this;if(!(Y!=null&&Y.readyState))return;this.lastCurrentTime=Y.currentTime}doTickIdle(){var Y;let{hls:Z,levels:Q,media:X,trackId:J}=this,W=Z.config;if(!this.buffering||!X&&!this.primaryPrefetch&&(this.startFragRequested||!W.startFragPrefetch)||!(Q!=null&&Q[J]))return;let q=Q[J],z=q.details;if(!z||this.waitForLive(q)||this.waitForCdnTuneIn(z)){this.state=y.WAITING_TRACK,this.startFragRequested=!1;return}let H=this.mediaBuffer?this.mediaBuffer:this.media;if(this.bufferFlushed&&H)this.bufferFlushed=!1,this.afterBufferFlushed(H,b0.AUDIO,t.AUDIO);let E=this.getFwdBufferInfo(H,t.AUDIO);if(E===null)return;if(!this.switchingTrack&&this._streamEnded(E,z)){Z.trigger(N.BUFFER_EOS,{type:"audio"}),this.state=y.ENDED;return}let K=E.len,G=Z.maxBufferLength,U=z.fragments,V=U[0].start,F=this.getLoadPosition(),R=this.flushing?F:E.end;if(this.switchingTrack&&X){let L=F;if(z.PTSKnown&&LV||E.nextStart)this.log("Alt audio track ahead of main track, seek to start of alt audio track"),X.currentTime=V+0.05}}if(K>=G&&!this.switchingTrack&&R$.end){let O=this.fragmentTracker.getFragAtPos(R,t.MAIN);if(O&&O.end>$.end)$=O,this.mainFragLoading={frag:O,targetBufferTime:null}}if(B.start>$.end)return}}this.loadFragment(B,q,R)}onMediaDetaching(Y,Z){this.bufferFlushed=this.flushing=!1,super.onMediaDetaching(Y,Z)}onAudioTracksUpdated(Y,{audioTracks:Z}){this.resetTransmuxer(),this.levels=Z.map((Q)=>new R9(Q))}onAudioTrackSwitching(Y,Z){let Q=!!Z.url;this.trackId=Z.id;let{fragCurrent:X}=this;if(X)X.abortRequests(),this.removeUnbufferedFrags(X.start);if(this.resetLoadingState(),Q){if(this.switchingTrack=Z,this.flushAudioIfNeeded(Z),this.state!==y.STOPPED)this.setInterval(K5),this.state=y.IDLE,this.tick()}else this.resetTransmuxer(),this.switchingTrack=null,this.bufferedTrack=Z,this.clearInterval()}onManifestLoading(){super.onManifestLoading(),this.bufferFlushed=this.flushing=this.audioOnly=!1,this.resetItem(),this.trackId=-1}onLevelLoaded(Y,Z){this.mainDetails=Z.details;let Q=this.cachedTrackLoadedData;if(Q)this.cachedTrackLoadedData=null,this.onAudioTrackLoaded(N.AUDIO_TRACK_LOADED,Q)}onAudioTrackLoaded(Y,Z){var Q;let{levels:X}=this,{details:J,id:W,groupId:q,track:z}=Z;if(!X){this.warn(`Audio tracks reset while loading track ${W} "${z.name}" of "${q}"`);return}let H=this.mainDetails;if(!H||J.endCC>H.endCC||H.expired){if(this.cachedTrackLoadedData=Z,this.state!==y.STOPPED)this.state=y.WAITING_TRACK;return}this.cachedTrackLoadedData=null,this.log(`Audio track ${W} "${z.name}" of "${q}" loaded [${J.startSN},${J.endSN}]${J.lastPartSn?`[part-${J.lastPartSn}-${J.lastPartIndex}]`:""},duration:${J.totalduration}`);let E=X[W],K=0;if(J.live||(Q=E.details)!=null&&Q.live){if(this.checkLiveUpdate(J),J.deltaUpdateFailed)return;if(E.details){var G;K=this.alignPlaylists(J,E.details,(G=this.levelLastLoaded)==null?void 0:G.details)}if(!J.alignedSliding){if(LE(J,H),!J.alignedSliding)o2(J,H);K=J.fragmentStart}}if(E.details=J,this.levelLastLoaded=E,!this.startFragRequested)this.setStartPosition(H,K);if(this.hls.trigger(N.AUDIO_TRACK_UPDATED,{details:J,id:W,groupId:Z.groupId}),this.state===y.WAITING_TRACK&&!this.waitForCdnTuneIn(J))this.state=y.IDLE;this.tick()}_handleFragmentLoadProgress(Y){var Z;let Q=Y.frag,{part:X,payload:J}=Y,{config:W,trackId:q,levels:z}=this;if(!z){this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${Q.sn} of level ${Q.level} will not be buffered`);return}let H=z[q];if(!H){this.warn("Audio track is undefined on fragment load progress");return}let E=H.details;if(!E){this.warn("Audio track details undefined on fragment load progress"),this.removeUnbufferedFrags(Q.start);return}let K=W.defaultAudioCodec||H.audioCodec||"mp4a.40.2",G=this.transmuxer;if(!G)G=this.transmuxer=new Tq(this.hls,t.AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this));let U=this.initPTS[Q.cc],V=(Z=Q.initSegment)==null?void 0:Z.data;if(U!==void 0){let R=X?X.index:-1,B=R!==-1,$=new r2(Q.level,Q.sn,Q.stats.chunkCount,J.byteLength,R,B);G.push(J,V,K,"",Q,X,E.totalduration,!1,$,U)}else{this.log(`Unknown video PTS for cc ${Q.cc}, waiting for video PTS before demuxing audio frag ${Q.sn} of [${E.startSN} ,${E.endSN}],track ${q}`);let{cache:F}=this.waitingData=this.waitingData||{frag:Q,part:X,cache:new Dq,complete:!1};if(F.push(new Uint8Array(J)),this.state!==y.STOPPED)this.state=y.WAITING_INIT_PTS}}_handleFragmentLoadComplete(Y){if(this.waitingData){this.waitingData.complete=!0;return}super._handleFragmentLoadComplete(Y)}onBufferReset(){this.mediaBuffer=null}onBufferCreated(Y,Z){this.bufferFlushed=this.flushing=!1;let Q=Z.tracks.audio;if(Q)this.mediaBuffer=Q.buffer||null}onFragLoading(Y,Z){if(!this.audioOnly&&Z.frag.type===t.MAIN&&t0(Z.frag)){if(this.mainFragLoading=Z,this.state===y.IDLE)this.tick()}}onFragBuffered(Y,Z){let{frag:Q,part:X}=Z;if(Q.type!==t.AUDIO){if(!this.audioOnly&&Q.type===t.MAIN&&!Q.elementaryStreams.video&&!Q.elementaryStreams.audiovideo)this.audioOnly=!0,this.mainFragLoading=null;return}if(this.fragContextChanged(Q)){this.warn(`Fragment ${Q.sn}${X?" p: "+X.index:""} of level ${Q.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack?this.switchingTrack.name:"false"}`);return}if(t0(Q)){this.fragPrevious=Q;let J=this.switchingTrack;if(J)this.bufferedTrack=J,this.switchingTrack=null,this.hls.trigger(N.AUDIO_TRACK_SWITCHED,I0({},J))}if(this.fragBufferedComplete(Q,X),this.media)this.tick()}onError(Y,Z){var Q;if(Z.fatal){this.state=y.ERROR;return}switch(Z.details){case h.FRAG_GAP:case h.FRAG_PARSING_ERROR:case h.FRAG_DECRYPT_ERROR:case h.FRAG_LOAD_ERROR:case h.FRAG_LOAD_TIMEOUT:case h.KEY_LOAD_ERROR:case h.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(t.AUDIO,Z);break;case h.AUDIO_TRACK_LOAD_ERROR:case h.AUDIO_TRACK_LOAD_TIMEOUT:case h.LEVEL_PARSING_ERROR:if(!Z.levelRetry&&this.state===y.WAITING_TRACK&&((Q=Z.context)==null?void 0:Q.type)===O0.AUDIO_TRACK)this.state=y.IDLE;break;case h.BUFFER_ADD_CODEC_ERROR:case h.BUFFER_APPEND_ERROR:if(Z.parent!=="audio")return;if(!this.reduceLengthAndFlushBuffer(Z))this.resetLoadingState();break;case h.BUFFER_FULL_ERROR:if(Z.parent!=="audio")return;if(this.reduceLengthAndFlushBuffer(Z))this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio");break;case h.INTERNAL_EXCEPTION:this.recoverWorkerError(Z);break}}onBufferFlushing(Y,{type:Z}){if(Z!==b0.VIDEO)this.flushing=!0}onBufferFlushed(Y,{type:Z}){if(Z!==b0.VIDEO){if(this.flushing=!1,this.bufferFlushed=!0,this.state===y.ENDED)this.state=y.IDLE;let Q=this.mediaBuffer||this.media;if(Q)this.afterBufferFlushed(Q,Z,t.AUDIO),this.tick()}}_handleTransmuxComplete(Y){var Z;let Q="audio",{hls:X}=this,{remuxResult:J,chunkMeta:W}=Y,q=this.getCurrentContext(W);if(!q){this.resetWhenMissingContext(W);return}let{frag:z,part:H,level:E}=q,{details:K}=E,{audio:G,text:U,id3:V,initSegment:F}=J;if(this.fragContextChanged(z)||!K){this.fragmentTracker.removeFragment(z);return}if(this.state=y.PARSING,this.switchingTrack&&G)this.completeAudioSwitch(this.switchingTrack);if(F!=null&&F.tracks){let R=z.initSegment||z;if(this.unhandledEncryptionError(F,z))return;this._bufferInitSegment(E,F.tracks,R,W),X.trigger(N.FRAG_PARSING_INIT_SEGMENT,{frag:R,id:"audio",tracks:F.tracks})}if(G){let{startPTS:R,endPTS:B,startDTS:$,endDTS:L}=G;if(H)H.elementaryStreams[b0.AUDIO]={startPTS:R,endPTS:B,startDTS:$,endDTS:L};z.setElementaryStreamInfo(b0.AUDIO,R,B,$,L),this.bufferFragmentData(G,z,H,W)}if(V!=null&&(Z=V.samples)!=null&&Z.length){let R=h0({id:"audio",frag:z,details:K},V);X.trigger(N.FRAG_PARSING_METADATA,R)}if(U){let R=h0({id:"audio",frag:z,details:K},U);X.trigger(N.FRAG_PARSING_USERDATA,R)}}_bufferInitSegment(Y,Z,Q,X){if(this.state!==y.PARSING)return;if(Z.video)delete Z.video;if(Z.audiovideo)delete Z.audiovideo;if(!Z.audio)return;let J=Z.audio;J.id=t.AUDIO;let W=Y.audioCodec;if(this.log(`Init audio buffer, container:${J.container}, codecs[level/parsed]=[${W}/${J.codec}]`),W&&W.split(",").length===1)J.levelCodec=W;this.hls.trigger(N.BUFFER_CODECS,Z);let q=J.initSegment;if(q!=null&&q.byteLength){let z={type:"audio",frag:Q,part:null,chunkMeta:X,parent:Q.type,data:q};this.hls.trigger(N.BUFFER_APPENDING,z)}this.tickImmediate()}loadFragment(Y,Z,Q){let X=this.fragmentTracker.getState(Y);if(this.switchingTrack||X===G1.NOT_LOADED||X===G1.PARTIAL){var J;if(!t0(Y))this._loadInitSegment(Y,Z);else if((J=Z.details)!=null&&J.live&&!this.initPTS[Y.cc]){this.log(`Waiting for video PTS in continuity counter ${Y.cc} of live stream before loading audio fragment ${Y.sn} of level ${this.trackId}`),this.state=y.WAITING_INIT_PTS;let W=this.mainDetails;if(W&&W.fragmentStart!==Z.details.fragmentStart)o2(Z.details,W)}else super.loadFragment(Y,Z,Q)}else this.clearTrackerIfNeeded(Y)}flushAudioIfNeeded(Y){if(this.media&&this.bufferedTrack){let{name:Z,lang:Q,assocLang:X,characteristics:J,audioCodec:W,channels:q}=this.bufferedTrack;if(!O7({name:Z,lang:Q,assocLang:X,characteristics:J,audioCodec:W,channels:q},Y,L7))if(v2(Y.url,this.hls))this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null;else this.bufferedTrack=Y}}completeAudioSwitch(Y){let{hls:Z}=this;this.flushAudioIfNeeded(Y),this.bufferedTrack=Y,this.switchingTrack=null,Z.trigger(N.AUDIO_TRACK_SWITCHED,I0({},Y))}}class YQ extends d1{constructor(Y,Z){super(Z,Y.logger);this.hls=void 0,this.canLoad=!1,this.timer=-1,this.hls=Y}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){if(this.timer!==-1)self.clearTimeout(this.timer),this.timer=-1}startLoad(){this.canLoad=!0,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(Y,Z,Q){let X=Z==null?void 0:Z.renditionReports;if(X){let J=-1;for(let W=0;W=0&&E>Z.partTarget)z+=1}let H=Q&&M3(Q);return new nW(q,z>=0?z:void 0,H)}}}loadPlaylist(Y){this.clearTimer()}loadingPlaylist(Y,Z){this.clearTimer()}shouldLoadPlaylist(Y){return this.canLoad&&!!Y&&!!Y.url&&(!Y.details||Y.details.live)}getUrlWithDirectives(Y,Z){if(Z)try{return Z.addDirectives(Y)}catch(Q){this.warn(`Could not construct new URL with HLS Delivery Directives: ${Q}`)}return Y}playlistLoaded(Y,Z,Q){let{details:X,stats:J}=Z,W=self.performance.now(),q=J.loading.first?Math.max(0,W-J.loading.first):0;X.advancedDateTime=Date.now()-q;let z=this.hls.config.timelineOffset;if(z!==X.appliedTimelineOffset){let E=Math.max(z||0,0);X.appliedTimelineOffset=E,X.fragments.forEach((K)=>{K.setStart(K.playlistOffset+E)})}if(X.live||Q!=null&&Q.live){let E="levelInfo"in Z?Z.levelInfo:Z.track;if(X.reloaded(Q),Q&&X.fragments.length>0){NL(Q,X,this);let $=X.playlistParsingError;if($){this.warn($);let L=this.hls;if(!L.config.ignorePlaylistParsingErrors){var H;let{networkDetails:O}=Z;L.trigger(N.ERROR,{type:Y0.NETWORK_ERROR,details:h.LEVEL_PARSING_ERROR,fatal:!1,url:X.url,error:$,reason:$.message,level:Z.level||void 0,parent:(H=X.fragments[0])==null?void 0:H.type,networkDetails:O,stats:J});return}X.playlistParsingError=null}}if(X.requestScheduled===-1)X.requestScheduled=J.loading.start;let K=this.hls.mainForwardBufferInfo,G=K?K.end-K.len:0,U=(X.edge-G)*1000,V=FE(X,U);if(X.requestScheduled+V0){if(C>X.targetduration*3)this.log(`Playlist last advanced ${M.toFixed(2)}s ago. Omitting segment and part directives.`),R=void 0,B=void 0;else if(Q!=null&&Q.tuneInGoal&&C-X.partTarget>Q.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${Q.tuneInGoal} to: ${I} with playlist age: ${X.age}`),I=0;else{let x=Math.floor(I/X.targetduration);if(R+=x,B!==void 0){let f=Math.round(I%X.targetduration/X.partTarget);B+=f}this.log(`CDN Tune-in age: ${X.ageHeader}s last advanced ${M.toFixed(2)}s goal: ${I} skip sn ${x} to part ${B}`)}X.tuneInGoal=I}if(F=this.getDeliveryDirectives(X,Z.deliveryDirectives,R,B),$||!D){X.requestScheduled=W,this.loadingPlaylist(E,F);return}}else if(X.canBlockReload||X.canSkipUntil)F=this.getDeliveryDirectives(X,Z.deliveryDirectives,R,B);if(F&&R!==void 0&&X.canBlockReload)X.requestScheduled=J.loading.first+Math.max(V-q*2,V/2);this.scheduleLoading(E,F,X)}else this.clearTimer()}scheduleLoading(Y,Z,Q){let X=Q||Y.details;if(!X){this.loadingPlaylist(Y,Z);return}let J=self.performance.now(),W=X.requestScheduled;if(J>=W){this.loadingPlaylist(Y,Z);return}let q=W-J;this.log(`reload live playlist ${Y.name||Y.bitrate+"bps"} in ${Math.round(q)} ms`),this.clearTimer(),this.timer=self.setTimeout(()=>this.loadingPlaylist(Y,Z),q)}getDeliveryDirectives(Y,Z,Q,X){let J=M3(Y);if(Z!=null&&Z.skip&&Y.deltaUpdateFailed)Q=Z.msn,X=Z.part,J=I2.No;return new nW(Q,X,J)}checkRetry(Y){let Z=Y.details,Q=p2(Y),X=Y.errorAction,{action:J,retryCount:W=0,retryConfig:q}=X||{},z=!!X&&!!q&&(J===N1.RetryRequest||!X.resolved&&J===N1.SendAlternateToPenaltyBox);if(z){var H;if(W>=q.maxNumRetry)return!1;if(Q&&(H=Y.context)!=null&&H.deliveryDirectives)this.warn(`Retrying playlist loading ${W+1}/${q.maxNumRetry} after "${Z}" without delivery-directives`),this.loadPlaylist();else{let E=$q(q,W);this.clearTimer(),this.timer=self.setTimeout(()=>this.loadPlaylist(),E),this.warn(`Retrying playlist loading ${W+1}/${q.maxNumRetry} after "${Z}" in ${E}ms`)}Y.levelRetry=!0,X.resolved=!0}return z}}function iE(Y,Z){if(Y.length!==Z.length)return!1;for(let Q=0;QY[J]!==Z[J])}function Qq(Y,Z){return Z.label.toLowerCase()===Y.name.toLowerCase()&&(!Z.language||Z.language.toLowerCase()===(Y.lang||"").toLowerCase())}class rE extends YQ{constructor(Y){super(Y,"audio-track-controller");this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){let{hls:Y}=this;Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.MANIFEST_PARSED,this.onManifestParsed,this),Y.on(N.LEVEL_LOADING,this.onLevelLoading,this),Y.on(N.LEVEL_SWITCHING,this.onLevelSwitching,this),Y.on(N.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),Y.on(N.ERROR,this.onError,this)}unregisterListeners(){let{hls:Y}=this;Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.MANIFEST_PARSED,this.onManifestParsed,this),Y.off(N.LEVEL_LOADING,this.onLevelLoading,this),Y.off(N.LEVEL_SWITCHING,this.onLevelSwitching,this),Y.off(N.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),Y.off(N.ERROR,this.onError,this)}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,super.destroy()}onManifestLoading(){this.tracks=[],this.tracksInGroup=[],this.groupIds=null,this.currentTrack=null,this.trackId=-1,this.selectDefaultTrack=!0}onManifestParsed(Y,Z){this.tracks=Z.audioTracks||[]}onAudioTrackLoaded(Y,Z){let{id:Q,groupId:X,details:J}=Z,W=this.tracksInGroup[Q];if(!W||W.groupId!==X){this.warn(`Audio track with id:${Q} and group:${X} not found in active group ${W==null?void 0:W.groupId}`);return}let q=W.details;if(W.details=Z.details,this.log(`Audio track ${Q} "${W.name}" lang:${W.lang} group:${X} loaded [${J.startSN}-${J.endSN}]`),Q===this.trackId)this.playlistLoaded(Q,Z,q)}onLevelLoading(Y,Z){this.switchLevel(Z.level)}onLevelSwitching(Y,Z){this.switchLevel(Z.level)}switchLevel(Y){let Z=this.hls.levels[Y];if(!Z)return;let Q=Z.audioGroups||null,X=this.groupIds,J=this.currentTrack;if(!Q||(X==null?void 0:X.length)!==(Q==null?void 0:Q.length)||Q!=null&&Q.some((q)=>(X==null?void 0:X.indexOf(q))===-1)){this.groupIds=Q,this.trackId=-1,this.currentTrack=null;let q=this.tracks.filter((G)=>!Q||Q.indexOf(G.groupId)!==-1);if(q.length){if(this.selectDefaultTrack&&!q.some((G)=>G.default))this.selectDefaultTrack=!1;q.forEach((G,U)=>{G.id=U})}else if(!J&&!this.tracksInGroup.length)return;this.tracksInGroup=q;let z=this.hls.config.audioPreference;if(!J&&z){let G=g8(z,q,L7);if(G>-1)J=q[G];else{let U=g8(z,this.tracks);J=this.tracks[U]}}let H=this.findTrackId(J);if(H===-1&&J)H=this.findTrackId(null);let E={audioTracks:q};this.log(`Updating audio tracks, ${q.length} track(s) found in group(s): ${Q==null?void 0:Q.join(",")}`),this.hls.trigger(N.AUDIO_TRACKS_UPDATED,E);let K=this.trackId;if(H!==-1&&K===-1)this.setAudioTrack(H);else if(q.length&&K===-1){var W;let G=Error(`No audio track selected for current audio group-ID(s): ${(W=this.groupIds)==null?void 0:W.join(",")} track count: ${q.length}`);this.warn(G.message),this.hls.trigger(N.ERROR,{type:Y0.MEDIA_ERROR,details:h.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:G})}}}onError(Y,Z){if(Z.fatal||!Z.context)return;if(Z.context.type===O0.AUDIO_TRACK&&Z.context.id===this.trackId&&(!this.groupIds||this.groupIds.indexOf(Z.context.groupId)!==-1))this.checkRetry(Z)}get allAudioTracks(){return this.tracks}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(Y){this.selectDefaultTrack=!1,this.setAudioTrack(Y)}setAudioOption(Y){let Z=this.hls;if(Z.config.audioPreference=Y,Y){let Q=this.allAudioTracks;if(this.selectDefaultTrack=!1,Q.length){let X=this.currentTrack;if(X&&O7(Y,X,L7))return X;let J=g8(Y,this.tracksInGroup,L7);if(J>-1){let W=this.tracksInGroup[J];return this.setAudioTrack(J),W}else if(X){let W=Z.loadLevel;if(W===-1)W=Z.firstAutoLevel;let q=l$(Y,Z.levels,Q,W,L7);if(q===-1)return null;Z.nextLoadLevel=q}if(Y.channels||Y.audioCodec){let W=g8(Y,Q);if(W>-1)return Q[W]}}}return null}setAudioTrack(Y){let Z=this.tracksInGroup;if(Y<0||Y>=Z.length){this.warn(`Invalid audio track id: ${Y}`);return}this.selectDefaultTrack=!1;let Q=this.currentTrack,X=Z[Y],J=X.details&&!X.details.live;if(Y===this.trackId&&X===Q&&J)return;if(this.log(`Switching to audio-track ${Y} "${X.name}" lang:${X.lang} group:${X.groupId} channels:${X.channels}`),this.trackId=Y,this.currentTrack=X,this.hls.trigger(N.AUDIO_TRACK_SWITCHING,I0({},X)),J)return;let W=this.switchParams(X.url,Q==null?void 0:Q.details,X.details);this.loadPlaylist(W)}findTrackId(Y){let Z=this.tracksInGroup;for(let Q=0;Q{let Q={label:"async-blocker",execute:Z,onStart:()=>{},onComplete:()=>{},onError:()=>{}};this.append(Q,Y)})}prependBlocker(Y){return new Promise((Z)=>{if(this.queues){let Q={label:"async-blocker-prepend",execute:Z,onStart:()=>{},onComplete:()=>{},onError:()=>{}};this.queues[Y].unshift(Q)}})}removeBlockers(){if(this.queues===null)return;[this.queues.video,this.queues.audio,this.queues.audiovideo].forEach((Y)=>{var Z;let Q=(Z=Y[0])==null?void 0:Z.label;if(Q==="async-blocker"||Q==="async-blocker-prepend")Y[0].execute(),Y.splice(0,1)})}unblockAudio(Y){if(this.queues===null)return;if(this.queues.audio[0]===Y)this.shiftAndExecuteNext("audio")}executeNext(Y){if(this.queues===null||this.tracks===null)return;let Z=this.queues[Y];if(Z.length){let X=Z[0];try{X.execute()}catch(J){var Q;if(X.onError(J),this.queues===null||this.tracks===null)return;let W=(Q=this.tracks[Y])==null?void 0:Q.buffer;if(!(W!=null&&W.updating))this.shiftAndExecuteNext(Y)}}}shiftAndExecuteNext(Y){if(this.queues===null)return;this.queues[Y].shift(),this.executeNext(Y)}current(Y){var Z;return((Z=this.queues)==null?void 0:Z[Y][0])||null}toString(){let{queues:Y,tracks:Z}=this;if(Y===null||Z===null)return"";return` ${this.list("video")} ${this.list("audio")} ${this.list("audiovideo")}}`}list(Y){var Z,Q;return(Z=this.queues)!=null&&Z[Y]||(Q=this.tracks)!=null&&Q[Y]?`${Y}: (${this.listSbInfo(Y)}) ${this.listOps(Y)}`:""}listSbInfo(Y){var Z;let Q=(Z=this.tracks)==null?void 0:Z[Y],X=Q==null?void 0:Q.buffer;if(!X)return"none";return`SourceBuffer${X.updating?" updating":""}${Q.ended?" ended":""}${Q.ending?" ending":""}`}listOps(Y){var Z;return((Z=this.queues)==null?void 0:Z[Y].map((Q)=>Q.label).join(", "))||""}}var G5=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/,tE="HlsJsTrackRemovedError";class eE extends Error{constructor(Y){super(Y);this.name=tE}}class YK extends d1{constructor(Y,Z){super("buffer-controller",Y.logger);this.hls=void 0,this.fragmentTracker=void 0,this.details=null,this._objectUrl=null,this.operationQueue=null,this.bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.blockedAudioAppend=null,this.lastVideoAppendEnd=0,this.appendSource=void 0,this.transferData=void 0,this.overrides=void 0,this.appendErrors={audio:0,video:0,audiovideo:0},this.tracks={},this.sourceBuffers=[[null,null],[null,null]],this._onEndStreaming=(Q)=>{var X;if(!this.hls)return;if(((X=this.mediaSource)==null?void 0:X.readyState)!=="open")return;this.hls.pauseBuffering()},this._onStartStreaming=(Q)=>{if(!this.hls)return;this.hls.resumeBuffering()},this._onMediaSourceOpen=(Q)=>{let{media:X,mediaSource:J}=this;if(Q)this.log("Media source opened");if(!X||!J)return;if(J.removeEventListener("sourceopen",this._onMediaSourceOpen),X.removeEventListener("emptied",this._onMediaEmptied),this.updateDuration(),this.hls.trigger(N.MEDIA_ATTACHED,{media:X,mediaSource:J}),this.mediaSource!==null)this.checkPendingTracks()},this._onMediaSourceClose=()=>{this.log("Media source closed")},this._onMediaSourceEnded=()=>{this.log("Media source ended")},this._onMediaEmptied=()=>{let{mediaSrc:Q,_objectUrl:X}=this;if(Q!==X)this.error(`Media element src was set while attaching MediaSource (${X} > ${Q})`)},this.hls=Y,this.fragmentTracker=Z,this.appendSource=q$(b6(Y.config.preferManagedMediaSource)),this.initTracks(),this.registerListeners()}hasSourceTypes(){return Object.keys(this.tracks).length>0}destroy(){if(this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.transferData=this.overrides=void 0,this.operationQueue)this.operationQueue.destroy(),this.operationQueue=null;this.hls=this.fragmentTracker=null,this._onMediaSourceOpen=this._onMediaSourceClose=null,this._onMediaSourceEnded=null,this._onStartStreaming=this._onEndStreaming=null}registerListeners(){let{hls:Y}=this;Y.on(N.MEDIA_ATTACHING,this.onMediaAttaching,this),Y.on(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.MANIFEST_PARSED,this.onManifestParsed,this),Y.on(N.BUFFER_RESET,this.onBufferReset,this),Y.on(N.BUFFER_APPENDING,this.onBufferAppending,this),Y.on(N.BUFFER_CODECS,this.onBufferCodecs,this),Y.on(N.BUFFER_EOS,this.onBufferEos,this),Y.on(N.BUFFER_FLUSHING,this.onBufferFlushing,this),Y.on(N.LEVEL_UPDATED,this.onLevelUpdated,this),Y.on(N.FRAG_PARSED,this.onFragParsed,this),Y.on(N.FRAG_CHANGED,this.onFragChanged,this),Y.on(N.ERROR,this.onError,this)}unregisterListeners(){let{hls:Y}=this;Y.off(N.MEDIA_ATTACHING,this.onMediaAttaching,this),Y.off(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.MANIFEST_PARSED,this.onManifestParsed,this),Y.off(N.BUFFER_RESET,this.onBufferReset,this),Y.off(N.BUFFER_APPENDING,this.onBufferAppending,this),Y.off(N.BUFFER_CODECS,this.onBufferCodecs,this),Y.off(N.BUFFER_EOS,this.onBufferEos,this),Y.off(N.BUFFER_FLUSHING,this.onBufferFlushing,this),Y.off(N.LEVEL_UPDATED,this.onLevelUpdated,this),Y.off(N.FRAG_PARSED,this.onFragParsed,this),Y.off(N.FRAG_CHANGED,this.onFragChanged,this),Y.off(N.ERROR,this.onError,this)}transferMedia(){let{media:Y,mediaSource:Z}=this;if(!Y)return null;let Q={};if(this.operationQueue){let J=this.isUpdating();if(!J)this.operationQueue.removeBlockers();let W=this.isQueued();if(J||W)this.warn(`Transfering MediaSource with${W?" operations in queue":""}${J?" updating SourceBuffer(s)":""} ${this.operationQueue}`);this.operationQueue.destroy()}let X=this.transferData;if(!this.sourceBufferCount&&X&&X.mediaSource===Z)h0(Q,X.tracks);else this.sourceBuffers.forEach((J)=>{let[W]=J;if(W)Q[W]=h0({},this.tracks[W]),this.removeBuffer(W);J[0]=J[1]=null});return{media:Y,mediaSource:Z,tracks:Q}}initTracks(){let Y={};this.sourceBuffers=[[null,null],[null,null]],this.tracks=Y,this.resetQueue(),this.resetAppendErrors(),this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.lastVideoAppendEnd=0}onManifestLoading(){this.bufferCodecEventsTotal=0,this.details=null}onManifestParsed(Y,Z){var Q;let X=2;if(Z.audio&&!Z.video||!Z.altAudio)X=1;if(this.bufferCodecEventsTotal=X,this.log(`${X} bufferCodec event(s) expected.`),(Q=this.transferData)!=null&&Q.mediaSource&&this.sourceBufferCount&&X)this.bufferCreated()}onMediaAttaching(Y,Z){let Q=this.media=Z.media;this.transferData=this.overrides=void 0;let X=b6(this.appendSource);if(X){let J=!!Z.mediaSource;if(J||Z.overrides)this.transferData=Z,this.overrides=Z.overrides;let W=this.mediaSource=Z.mediaSource||new X;if(this.assignMediaSource(W),J)this._objectUrl=Q.src,this.attachTransferred();else{let q=this._objectUrl=self.URL.createObjectURL(W);if(this.appendSource)try{Q.removeAttribute("src");let z=self.ManagedMediaSource;Q.disableRemotePlayback=Q.disableRemotePlayback||z&&W instanceof z,V5(Q),FO(Q,q),Q.load()}catch(z){Q.src=q}else Q.src=q}Q.addEventListener("emptied",this._onMediaEmptied)}}assignMediaSource(Y){var Z,Q;if(this.log(`${((Z=this.transferData)==null?void 0:Z.mediaSource)===Y?"transferred":"created"} media source: ${(Q=Y.constructor)==null?void 0:Q.name}`),Y.addEventListener("sourceopen",this._onMediaSourceOpen),Y.addEventListener("sourceended",this._onMediaSourceEnded),Y.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource)Y.addEventListener("startstreaming",this._onStartStreaming),Y.addEventListener("endstreaming",this._onEndStreaming)}attachTransferred(){let Y=this.media,Z=this.transferData;if(!Z||!Y)return;let Q=this.tracks,X=Z.tracks,J=X?Object.keys(X):null,W=J?J.length:0,q=()=>{Promise.resolve().then(()=>{if(this.media&&this.mediaSourceOpenOrEnded)this._onMediaSourceOpen()})};if(X&&J&&W){if(!this.tracksReady){this.hls.config.startFragPrefetch=!0,this.log("attachTransferred: waiting for SourceBuffer track info");return}if(this.log(`attachTransferred: (bufferCodecEventsTotal ${this.bufferCodecEventsTotal}) required tracks: ${_0(Q,(z,H)=>z==="initSegment"?void 0:H)}; transfer tracks: ${_0(X,(z,H)=>z==="initSegment"?void 0:H)}}`),!T5(X,Q)){Z.mediaSource=null,Z.tracks=void 0;let z=Y.currentTime,H=this.details,E=Math.max(z,(H==null?void 0:H.fragments[0].start)||0);if(E-z>1){this.log(`attachTransferred: waiting for playback to reach new tracks start time ${z} -> ${E}`);return}this.warn(`attachTransferred: resetting MediaSource for incompatible tracks ("${Object.keys(X)}"->"${Object.keys(Q)}") start time: ${E} currentTime: ${z}`),this.onMediaDetaching(N.MEDIA_DETACHING,{}),this.onMediaAttaching(N.MEDIA_ATTACHING,Z),Y.currentTime=E;return}this.transferData=void 0,J.forEach((z)=>{let H=z,E=X[H];if(E){let K=E.buffer;if(K){let G=this.fragmentTracker,U=E.id;if(G.hasFragments(U)||G.hasParts(U)){let R=V0.getBuffered(K);G.detectEvictedFragments(H,R,U,null,!0)}let V=hW(H),F=[H,K];if(this.sourceBuffers[V]=F,K.updating&&this.operationQueue)this.operationQueue.prependBlocker(H);this.trackSourceBuffer(H,E)}}}),q(),this.bufferCreated()}else this.log("attachTransferred: MediaSource w/o SourceBuffers"),q()}get mediaSourceOpenOrEnded(){var Y;let Z=(Y=this.mediaSource)==null?void 0:Y.readyState;return Z==="open"||Z==="ended"}onMediaDetaching(Y,Z){let Q=!!Z.transferMedia;this.transferData=this.overrides=void 0;let{media:X,mediaSource:J,_objectUrl:W}=this;if(J){if(this.log(`media source ${Q?"transferring":"detaching"}`),Q)this.sourceBuffers.forEach(([q])=>{if(q)this.removeBuffer(q)}),this.resetQueue();else{if(this.mediaSourceOpenOrEnded){let q=J.readyState==="open";try{let z=J.sourceBuffers;for(let H=z.length;H--;){if(q)z[H].abort();J.removeSourceBuffer(z[H])}if(q)J.endOfStream()}catch(z){this.warn(`onMediaDetaching: ${z.message} while calling endOfStream`)}}if(this.sourceBufferCount)this.onBufferReset()}if(J.removeEventListener("sourceopen",this._onMediaSourceOpen),J.removeEventListener("sourceended",this._onMediaSourceEnded),J.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource)J.removeEventListener("startstreaming",this._onStartStreaming),J.removeEventListener("endstreaming",this._onEndStreaming);this.mediaSource=null,this._objectUrl=null}if(X){if(X.removeEventListener("emptied",this._onMediaEmptied),!Q){if(W)self.URL.revokeObjectURL(W);if(this.mediaSrc===W){if(X.removeAttribute("src"),this.appendSource)V5(X);X.load()}else this.warn("media|source.src was changed by a third party - skip cleanup")}this.media=null}this.hls.trigger(N.MEDIA_DETACHED,Z)}onBufferReset(){this.sourceBuffers.forEach(([Y])=>{if(Y)this.resetBuffer(Y)}),this.initTracks()}resetBuffer(Y){var Z;let Q=(Z=this.tracks[Y])==null?void 0:Z.buffer;if(this.removeBuffer(Y),Q)try{var X;if((X=this.mediaSource)!=null&&X.sourceBuffers.length)this.mediaSource.removeSourceBuffer(Q)}catch(J){this.warn(`onBufferReset ${Y}`,J)}delete this.tracks[Y]}removeBuffer(Y){this.removeBufferListeners(Y),this.sourceBuffers[hW(Y)]=[null,null];let Z=this.tracks[Y];if(Z)Z.buffer=void 0}resetQueue(){if(this.operationQueue)this.operationQueue.destroy();this.operationQueue=new aE(this.tracks)}onBufferCodecs(Y,Z){var Q;let X=this.tracks,J=Object.keys(Z);this.log(`BUFFER_CODECS: "${J}" (current SB count ${this.sourceBufferCount})`);let W="audiovideo"in Z&&(X.audio||X.video)||X.audiovideo&&(("audio"in Z)||("video"in Z)),q=!W&&this.sourceBufferCount&&this.media&&J.some((z)=>!X[z]);if(W||q){this.warn(`Unsupported transition between "${Object.keys(X)}" and "${J}" SourceBuffers`);return}if(J.forEach((z)=>{var H,E;let K=Z[z],{id:G,codec:U,levelCodec:V,container:F,metadata:R,supplemental:B}=K,$=X[z],L=(H=this.transferData)==null||(H=H.tracks)==null?void 0:H[z],O=L!=null&&L.buffer?L:$,j=(O==null?void 0:O.pendingCodec)||(O==null?void 0:O.codec),w=O==null?void 0:O.levelCodec;if(!$)$=X[z]={buffer:void 0,listeners:[],codec:U,supplemental:B,container:F,levelCodec:V,metadata:R,id:G};let D=x2(j,w),M=D==null?void 0:D.replace(G5,"$1"),C=x2(U,V),I=(E=C)==null?void 0:E.replace(G5,"$1");if(C&&D&&M!==I){if(z.slice(0,5)==="audio")C=b2(C,this.appendSource);if(this.log(`switching codec ${j} to ${C}`),C!==($.pendingCodec||$.codec))$.pendingCodec=C;$.container=F,this.appendChangeType(z,F,C)}}),this.tracksReady||this.sourceBufferCount)Z.tracks=this.sourceBufferTracks;if(this.sourceBufferCount)return;if(this.bufferCodecEventsTotal>1&&!this.tracks.video&&!Z.video&&((Q=Z.audio)==null?void 0:Q.id)==="main")this.log("Main audio-only"),this.bufferCodecEventsTotal=1;if(this.mediaSourceOpenOrEnded)this.checkPendingTracks()}get sourceBufferTracks(){return Object.keys(this.tracks).reduce((Y,Z)=>{let Q=this.tracks[Z];return Y[Z]={id:Q.id,container:Q.container,codec:Q.codec,levelCodec:Q.levelCodec},Y},{})}appendChangeType(Y,Z,Q){let X=`${Z};codecs=${Q}`,J={label:`change-type=${X}`,execute:()=>{let W=this.tracks[Y];if(W){let q=W.buffer;if(q!=null&&q.changeType)this.log(`changing ${Y} sourceBuffer type to ${X}`),q.changeType(X),W.codec=Q,W.container=Z}this.shiftAndExecuteNext(Y)},onStart:()=>{},onComplete:()=>{},onError:(W)=>{this.warn(`Failed to change ${Y} SourceBuffer type`,W)}};this.append(J,Y,this.isPending(this.tracks[Y]))}blockAudio(Y){var Z;let Q=Y.start,X=Q+Y.duration*0.05;if(((Z=this.fragmentTracker.getAppendedFrag(Q,t.MAIN))==null?void 0:Z.gap)===!0)return;let W={label:"block-audio",execute:()=>{var q;let z=this.tracks.video;if(this.lastVideoAppendEnd>X||z!=null&&z.buffer&&V0.isBuffered(z.buffer,X)||((q=this.fragmentTracker.getAppendedFrag(X,t.MAIN))==null?void 0:q.gap)===!0)this.blockedAudioAppend=null,this.shiftAndExecuteNext("audio")},onStart:()=>{},onComplete:()=>{},onError:(q)=>{this.warn("Error executing block-audio operation",q)}};this.blockedAudioAppend={op:W,frag:Y},this.append(W,"audio",!0)}unblockAudio(){let{blockedAudioAppend:Y,operationQueue:Z}=this;if(Y&&Z)this.blockedAudioAppend=null,Z.unblockAudio(Y.op)}onBufferAppending(Y,Z){let{tracks:Q}=this,{data:X,type:J,parent:W,frag:q,part:z,chunkMeta:H,offset:E}=Z,K=H.buffering[J],{sn:G,cc:U}=q,V=self.performance.now();K.start=V;let F=q.stats.buffering,R=z?z.stats.buffering:null;if(F.start===0)F.start=V;if(R&&R.start===0)R.start=V;let B=Q.audio,$=!1;if(J==="audio"&&(B==null?void 0:B.container)==="audio/mpeg")$=!this.lastMpegAudioChunk||H.id===1||this.lastMpegAudioChunk.sn!==H.sn,this.lastMpegAudioChunk=H;let L=Q.video,O=L==null?void 0:L.buffer;if(O&&G!=="initSegment"){let D=z||q,M=this.blockedAudioAppend;if(J==="audio"&&W!=="main"&&!this.blockedAudioAppend&&!(L.ending||L.ended)){let I=D.start+D.duration*0.05,x=O.buffered,f=this.currentOp("video");if(!x.length&&!f)this.blockAudio(D);else if(!f&&!V0.isBuffered(O,I)&&this.lastVideoAppendEndI||C{var D;K.executeStart=self.performance.now();let M=(D=this.tracks[J])==null?void 0:D.buffer;if(M){if($)this.updateTimestampOffset(M,j,0.1,J,G,U);else if(E!==void 0&&r(E))this.updateTimestampOffset(M,E,0.000001,J,G,U)}this.appendExecutor(X,J)},onStart:()=>{},onComplete:()=>{let D=self.performance.now();if(K.executeEnd=K.end=D,F.first===0)F.first=D;if(R&&R.first===0)R.first=D;let M={};if(this.sourceBuffers.forEach(([C,I])=>{if(C)M[C]=V0.getBuffered(I)}),this.appendErrors[J]=0,J==="audio"||J==="video")this.appendErrors.audiovideo=0;else this.appendErrors.audio=0,this.appendErrors.video=0;this.hls.trigger(N.BUFFER_APPENDED,{type:J,frag:q,part:z,chunkMeta:H,parent:q.type,timeRanges:M})},onError:(D)=>{var M;let C={type:Y0.MEDIA_ERROR,parent:q.type,details:h.BUFFER_APPEND_ERROR,sourceBufferName:J,frag:q,part:z,chunkMeta:H,error:D,err:D,fatal:!1},I=(M=this.media)==null?void 0:M.error;if(D.code===DOMException.QUOTA_EXCEEDED_ERR||D.name=="QuotaExceededError"||"quota"in D)C.details=h.BUFFER_FULL_ERROR;else if(D.code===DOMException.INVALID_STATE_ERR&&this.mediaSourceOpenOrEnded&&!I)C.errorAction=E9(!0);else if(D.name===tE&&this.sourceBufferCount===0)C.errorAction=E9(!0);else{let x=++this.appendErrors[J];if(this.warn(`Failed ${x}/${this.hls.config.appendErrorMaxRetry} times to append segment in "${J}" sourceBuffer (${I?I:"no media error"})`),x>=this.hls.config.appendErrorMaxRetry||!!I)C.fatal=!0}this.hls.trigger(N.ERROR,C)}};this.log(`queuing "${J}" append sn: ${G}${z?" p: "+z.index:""} of ${q.type===t.MAIN?"level":"track"} ${q.level} cc: ${U}`),this.append(w,J,this.isPending(this.tracks[J]))}getFlushOp(Y,Z,Q){return this.log(`queuing "${Y}" remove ${Z}-${Q}`),{label:"remove",execute:()=>{this.removeExecutor(Y,Z,Q)},onStart:()=>{},onComplete:()=>{this.hls.trigger(N.BUFFER_FLUSHED,{type:Y})},onError:(X)=>{this.warn(`Failed to remove ${Z}-${Q} from "${Y}" SourceBuffer`,X)}}}onBufferFlushing(Y,Z){let{type:Q,startOffset:X,endOffset:J}=Z;if(Q)this.append(this.getFlushOp(Q,X,J),Q);else this.sourceBuffers.forEach(([W])=>{if(W)this.append(this.getFlushOp(W,X,J),W)})}onFragParsed(Y,Z){let{frag:Q,part:X}=Z,J=[],W=X?X.elementaryStreams:Q.elementaryStreams;if(W[b0.AUDIOVIDEO])J.push("audiovideo");else{if(W[b0.AUDIO])J.push("audio");if(W[b0.VIDEO])J.push("video")}let q=()=>{let z=self.performance.now();if(Q.stats.buffering.end=z,X)X.stats.buffering.end=z;let H=X?X.stats:Q.stats;this.hls.trigger(N.FRAG_BUFFERED,{frag:Q,part:X,stats:H,id:Q.type})};if(J.length===0)this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${Q.type} level: ${Q.level} sn: ${Q.sn}`);this.blockBuffers(q,J).catch((z)=>{this.warn(`Fragment buffered callback ${z}`),this.stepOperationQueue(this.sourceBufferTypes)})}onFragChanged(Y,Z){this.trimBuffers()}get bufferedToEnd(){return this.sourceBufferCount>0&&!this.sourceBuffers.some(([Y])=>{if(Y){let Z=this.tracks[Y];if(Z)return!Z.ended||Z.ending}return!1})}onBufferEos(Y,Z){var Q;this.sourceBuffers.forEach(([W])=>{if(W){let q=this.tracks[W];if(!Z.type||Z.type===W){if(q.ending=!0,!q.ended)q.ended=!0,this.log(`${W} buffer reached EOS`)}}});let X=((Q=this.overrides)==null?void 0:Q.endOfStream)!==!1;if(this.sourceBufferCount>0&&!this.sourceBuffers.some(([W])=>{var q;return W&&!((q=this.tracks[W])!=null&&q.ended)}))if(X)this.log("Queueing EOS"),this.blockUntilOpen(()=>{this.tracksEnded();let{mediaSource:W}=this;if(!W||W.readyState!=="open"){if(W)this.log(`Could not call mediaSource.endOfStream(). mediaSource.readyState: ${W.readyState}`);return}this.log("Calling mediaSource.endOfStream()"),W.endOfStream(),this.hls.trigger(N.BUFFERED_TO_END,void 0)});else this.tracksEnded(),this.hls.trigger(N.BUFFERED_TO_END,void 0);else if(Z.type==="video")this.unblockAudio()}tracksEnded(){this.sourceBuffers.forEach(([Y])=>{if(Y!==null){let Z=this.tracks[Y];if(Z)Z.ending=!1}})}onLevelUpdated(Y,{details:Z}){if(!Z.fragments.length)return;this.details=Z,this.updateDuration()}updateDuration(){this.blockUntilOpen(()=>{let Y=this.getDurationAndRange();if(!Y)return;this.updateMediaSource(Y)})}onError(Y,Z){if(Z.details===h.BUFFER_APPEND_ERROR&&Z.frag){var Q;let X=(Q=Z.errorAction)==null?void 0:Q.nextAutoLevel;if(r(X)&&X!==Z.frag.level)this.resetAppendErrors()}}resetAppendErrors(){this.appendErrors={audio:0,video:0,audiovideo:0}}trimBuffers(){let{hls:Y,details:Z,media:Q}=this;if(!Q||Z===null)return;if(!this.sourceBufferCount)return;let X=Y.config,J=Q.currentTime,W=Z.levelTargetDuration,q=Z.live&&X.liveBackBufferLength!==null?X.liveBackBufferLength:X.backBufferLength;if(r(q)&&q>=0){let H=Math.max(q,W),E=Math.floor(J/W)*W-H;this.flushBackBuffer(J,W,E)}let z=X.frontBufferFlushThreshold;if(r(z)&&z>0){let H=Math.max(X.maxBufferLength,z),E=Math.max(H,W),K=Math.floor(J/W)*W+E;this.flushFrontBuffer(J,W,K)}}flushBackBuffer(Y,Z,Q){this.sourceBuffers.forEach(([X,J])=>{if(J){let q=V0.getBuffered(J);if(q.length>0&&Q>q.start(0)){var W;this.hls.trigger(N.BACK_BUFFER_REACHED,{bufferEnd:Q});let z=this.tracks[X];if((W=this.details)!=null&&W.live)this.hls.trigger(N.LIVE_BACK_BUFFER_REACHED,{bufferEnd:Q});else if(z!=null&&z.ended){this.log(`Cannot flush ${X} back buffer while SourceBuffer is in ended state`);return}this.hls.trigger(N.BUFFER_FLUSHING,{startOffset:0,endOffset:Q,type:X})}}})}flushFrontBuffer(Y,Z,Q){this.sourceBuffers.forEach(([X,J])=>{if(J){let W=V0.getBuffered(J),q=W.length;if(q<2)return;let z=W.start(q-1),H=W.end(q-1);if(Q>z||Y>=z&&Y<=H)return;this.hls.trigger(N.BUFFER_FLUSHING,{startOffset:z,endOffset:1/0,type:X})}})}getDurationAndRange(){var Y;let{details:Z,mediaSource:Q}=this;if(!Z||!this.media||(Q==null?void 0:Q.readyState)!=="open")return null;let X=Z.edge;if(Z.live&&this.hls.config.liveDurationInfinity){if(Z.fragments.length&&!!Q.setLiveSeekableRange){let H=Math.max(0,Z.fragmentStart),E=Math.max(H,X);return{duration:1/0,start:H,end:E}}return{duration:1/0}}let J=(Y=this.overrides)==null?void 0:Y.duration;if(J){if(!r(J))return null;return{duration:J}}let W=this.media.duration,q=r(Q.duration)?Q.duration:0;if(X>q&&X>W||!r(W))return{duration:X};return null}updateMediaSource({duration:Y,start:Z,end:Q}){let X=this.mediaSource;if(!this.media||!X||X.readyState!=="open")return;if(X.duration!==Y){if(r(Y))this.log(`Updating MediaSource duration to ${Y.toFixed(3)}`);X.duration=Y}if(Z!==void 0&&Q!==void 0)this.log(`MediaSource duration is set to ${X.duration}. Setting seekable range to ${Z}-${Q}.`),X.setLiveSeekableRange(Z,Q)}get tracksReady(){let Y=this.pendingTrackCount;return Y>0&&(Y>=this.bufferCodecEventsTotal||this.isPending(this.tracks.audiovideo))}checkPendingTracks(){let{bufferCodecEventsTotal:Y,pendingTrackCount:Z,tracks:Q}=this;if(this.log(`checkPendingTracks (pending: ${Z} codec events expected: ${Y}) ${_0(Q)}`),this.tracksReady){var X;let J=(X=this.transferData)==null?void 0:X.tracks;if(J&&Object.keys(J).length)this.attachTransferred();else this.createSourceBuffers()}}bufferCreated(){if(this.sourceBufferCount){let Y={};this.sourceBuffers.forEach(([Z,Q])=>{if(Z){let X=this.tracks[Z];Y[Z]={buffer:Q,container:X.container,codec:X.codec,supplemental:X.supplemental,levelCodec:X.levelCodec,id:X.id,metadata:X.metadata}}}),this.hls.trigger(N.BUFFER_CREATED,{tracks:Y}),this.log(`SourceBuffers created. Running queue: ${this.operationQueue}`),this.sourceBuffers.forEach(([Z])=>{this.executeNext(Z)})}else{let Y=Error("could not create source buffer for media codec(s)");this.hls.trigger(N.ERROR,{type:Y0.MEDIA_ERROR,details:h.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:Y,reason:Y.message})}}createSourceBuffers(){let{tracks:Y,sourceBuffers:Z,mediaSource:Q}=this;if(!Q)throw Error("createSourceBuffers called when mediaSource was null");for(let J in Y){let W=J,q=Y[W];if(this.isPending(q)){let z=this.getTrackCodec(q,W),H=`${q.container};codecs=${z}`;q.codec=z,this.log(`creating sourceBuffer(${H})${this.currentOp(W)?" Queued":""} ${_0(q)}`);try{let E=Q.addSourceBuffer(H),K=hW(W),G=[W,E];Z[K]=G,q.buffer=E}catch(E){var X;this.error(`error while trying to add sourceBuffer: ${E.message}`),this.shiftAndExecuteNext(W),(X=this.operationQueue)==null||X.removeBlockers(),delete this.tracks[W],this.hls.trigger(N.ERROR,{type:Y0.MEDIA_ERROR,details:h.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:E,sourceBufferName:W,mimeType:H,parent:q.id});return}this.trackSourceBuffer(W,q)}}this.bufferCreated()}getTrackCodec(Y,Z){let{supplemental:Q,codec:X}=Y;if(Q&&(Z==="video"||Z==="audiovideo")&&fY(Q,"video"))X=M$(X,Q);let J=x2(X,Y.levelCodec);if(J){if(Z.slice(0,5)==="audio")return b2(J,this.appendSource);return J}return""}trackSourceBuffer(Y,Z){let Q=Z.buffer;if(!Q)return;let X=this.getTrackCodec(Z,Y);if(this.tracks[Y]={buffer:Q,codec:X,container:Z.container,levelCodec:Z.levelCodec,supplemental:Z.supplemental,metadata:Z.metadata,id:Z.id,listeners:[]},this.removeBufferListeners(Y),this.addBufferListener(Y,"updatestart",this.onSBUpdateStart),this.addBufferListener(Y,"updateend",this.onSBUpdateEnd),this.addBufferListener(Y,"error",this.onSBUpdateError),this.appendSource)this.addBufferListener(Y,"bufferedchange",(J,W)=>{let q=W.removedRanges;if(q!=null&&q.length)this.hls.trigger(N.BUFFER_FLUSHED,{type:J})})}get mediaSrc(){var Y,Z;let Q=((Y=this.media)==null||(Z=Y.querySelector)==null?void 0:Z.call(Y,"source"))||this.media;return Q==null?void 0:Q.src}onSBUpdateStart(Y){let Z=this.currentOp(Y);if(!Z)return;Z.onStart()}onSBUpdateEnd(Y){var Z;if(((Z=this.mediaSource)==null?void 0:Z.readyState)==="closed"){this.resetBuffer(Y);return}let Q=this.currentOp(Y);if(!Q)return;Q.onComplete(),this.shiftAndExecuteNext(Y)}onSBUpdateError(Y,Z){var Q;let X=Error(`${Y} SourceBuffer error. MediaSource readyState: ${(Q=this.mediaSource)==null?void 0:Q.readyState}`);this.error(`${X}`,Z),this.hls.trigger(N.ERROR,{type:Y0.MEDIA_ERROR,details:h.BUFFER_APPENDING_ERROR,sourceBufferName:Y,error:X,fatal:!1});let J=this.currentOp(Y);if(J)J.onError(X)}updateTimestampOffset(Y,Z,Q,X,J,W){let q=Z-Y.timestampOffset;if(Math.abs(q)>=Q)this.log(`Updating ${X} SourceBuffer timestampOffset to ${Z} (sn: ${J} cc: ${W})`),Y.timestampOffset=Z}removeExecutor(Y,Z,Q){let{media:X,mediaSource:J}=this,W=this.tracks[Y],q=W==null?void 0:W.buffer;if(!X||!J||!q){this.warn(`Attempting to remove from the ${Y} SourceBuffer, but it does not exist`),this.shiftAndExecuteNext(Y);return}let z=r(X.duration)?X.duration:1/0,H=r(J.duration)?J.duration:1/0,E=Math.max(0,Z),K=Math.min(Q,z,H);if(K>E&&(!W.ending||W.ended))W.ended=!1,this.log(`Removing [${E},${K}] from the ${Y} SourceBuffer`),q.remove(E,K);else this.shiftAndExecuteNext(Y)}appendExecutor(Y,Z){let Q=this.tracks[Z],X=Q==null?void 0:Q.buffer;if(!X)throw new eE(`Attempting to append to the ${Z} SourceBuffer, but it does not exist`);Q.ending=!1,Q.ended=!1,X.appendBuffer(Y)}blockUntilOpen(Y){if(this.isUpdating()||this.isQueued())this.blockBuffers(Y).catch((Z)=>{this.warn(`SourceBuffer blocked callback ${Z}`),this.stepOperationQueue(this.sourceBufferTypes)});else try{Y()}catch(Z){this.warn(`Callback run without blocking ${this.operationQueue} ${Z}`)}}isUpdating(){return this.sourceBuffers.some(([Y,Z])=>Y&&Z.updating)}isQueued(){return this.sourceBuffers.some(([Y])=>Y&&!!this.currentOp(Y))}isPending(Y){return!!Y&&!Y.buffer}blockBuffers(Y,Z=this.sourceBufferTypes){if(!Z.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),Promise.resolve().then(Y);let{operationQueue:Q}=this,X=Z.map((W)=>this.appendBlocker(W));if(Z.length>1&&!!this.blockedAudioAppend)this.unblockAudio();return Promise.all(X).then((W)=>{if(Q!==this.operationQueue)return;Y(),this.stepOperationQueue(this.sourceBufferTypes)})}stepOperationQueue(Y){Y.forEach((Z)=>{var Q;let X=(Q=this.tracks[Z])==null?void 0:Q.buffer;if(!X||X.updating)return;this.shiftAndExecuteNext(Z)})}append(Y,Z,Q){if(this.operationQueue)this.operationQueue.append(Y,Z,Q)}appendBlocker(Y){if(this.operationQueue)return this.operationQueue.appendBlocker(Y)}currentOp(Y){if(this.operationQueue)return this.operationQueue.current(Y);return null}executeNext(Y){if(Y&&this.operationQueue)this.operationQueue.executeNext(Y)}shiftAndExecuteNext(Y){if(this.operationQueue)this.operationQueue.shiftAndExecuteNext(Y)}get pendingTrackCount(){return Object.keys(this.tracks).reduce((Y,Z)=>Y+(this.isPending(this.tracks[Z])?1:0),0)}get sourceBufferCount(){return this.sourceBuffers.reduce((Y,[Z])=>Y+(Z?1:0),0)}get sourceBufferTypes(){return this.sourceBuffers.map(([Y])=>Y).filter((Y)=>!!Y)}addBufferListener(Y,Z,Q){let X=this.tracks[Y];if(!X)return;let J=X.buffer;if(!J)return;let W=Q.bind(this,Y);X.listeners.push({event:Z,listener:W}),J.addEventListener(Z,W)}removeBufferListeners(Y){let Z=this.tracks[Y];if(!Z)return;let Q=Z.buffer;if(!Q)return;Z.listeners.forEach((X)=>{Q.removeEventListener(X.event,X.listener)}),Z.listeners.length=0}}function V5(Y){let Z=Y.querySelectorAll("source");[].slice.call(Z).forEach((Q)=>{Y.removeChild(Q)})}function FO(Y,Z){let Q=self.document.createElement("source");Q.type="video/mp4",Q.src=Z,Y.appendChild(Q)}function hW(Y){return Y==="audio"?1:0}class vY{constructor(Y){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=Y,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(Y){this.streamController=Y}destroy(){if(this.hls)this.unregisterListener();if(this.timer)this.stopCapping();this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){let{hls:Y}=this;Y.on(N.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),Y.on(N.MEDIA_ATTACHING,this.onMediaAttaching,this),Y.on(N.MANIFEST_PARSED,this.onManifestParsed,this),Y.on(N.LEVELS_UPDATED,this.onLevelsUpdated,this),Y.on(N.BUFFER_CODECS,this.onBufferCodecs,this),Y.on(N.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){let{hls:Y}=this;Y.off(N.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),Y.off(N.MEDIA_ATTACHING,this.onMediaAttaching,this),Y.off(N.MANIFEST_PARSED,this.onManifestParsed,this),Y.off(N.LEVELS_UPDATED,this.onLevelsUpdated,this),Y.off(N.BUFFER_CODECS,this.onBufferCodecs,this),Y.off(N.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(Y,Z){let Q=this.hls.levels[Z.droppedLevel];if(this.isLevelAllowed(Q))this.restrictedLevels.push({bitrate:Q.bitrate,height:Q.height,width:Q.width})}onMediaAttaching(Y,Z){if(this.media=Z.media instanceof HTMLVideoElement?Z.media:null,this.clientRect=null,this.timer&&this.hls.levels.length)this.detectPlayerSize()}onManifestParsed(Y,Z){let Q=this.hls;if(this.restrictedLevels=[],this.firstLevel=Z.firstLevel,Q.config.capLevelToPlayerSize&&Z.video)this.startCapping()}onLevelsUpdated(Y,Z){if(this.timer&&r(this.autoLevelCapping))this.detectPlayerSize()}onBufferCodecs(Y,Z){if(this.hls.config.capLevelToPlayerSize&&Z.video)this.startCapping()}onMediaDetaching(){this.stopCapping(),this.media=null}detectPlayerSize(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0){this.clientRect=null;return}let Y=this.hls.levels;if(Y.length){let Z=this.hls,Q=this.getMaxLevel(Y.length-1);if(Q!==this.autoLevelCapping)Z.logger.log(`Setting autoLevelCapping to ${Q}: ${Y[Q].height}p@${Y[Q].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`);if(Z.autoLevelCapping=Q,Z.autoLevelEnabled&&Z.autoLevelCapping>this.autoLevelCapping&&this.streamController)this.streamController.nextLevelSwitch();this.autoLevelCapping=Z.autoLevelCapping}}}getMaxLevel(Y){let Z=this.hls.levels;if(!Z.length)return-1;let Q=Z.filter((X,J)=>this.isLevelAllowed(X)&&J<=Y);return this.clientRect=null,vY.getMaxLevelByMediaSize(Q,this.mediaWidth,this.mediaHeight)}startCapping(){if(this.timer)return;this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1000),this.detectPlayerSize()}stopCapping(){if(this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer)self.clearInterval(this.timer),this.timer=void 0}getDimensions(){if(this.clientRect)return this.clientRect;let Y=this.media,Z={width:0,height:0};if(Y){let Q=Y.getBoundingClientRect();if(Z.width=Q.width,Z.height=Q.height,!Z.width&&!Z.height)Z.width=Q.right-Q.left||Y.width||0,Z.height=Q.bottom-Q.top||Y.height||0}return this.clientRect=Z,Z}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let Y=1;if(!this.hls.config.ignoreDevicePixelRatio)try{Y=self.devicePixelRatio}catch(Z){}return Math.min(Y,this.hls.config.maxDevicePixelRatio)}isLevelAllowed(Y){return!this.restrictedLevels.some((Q)=>{return Y.bitrate===Q.bitrate&&Y.width===Q.width&&Y.height===Q.height})}static getMaxLevelByMediaSize(Y,Z,Q){if(!(Y!=null&&Y.length))return-1;let X=(q,z)=>{if(!z)return!0;return q.width!==z.width||q.height!==z.height},J=Y.length-1,W=Math.max(Z,Q);for(let q=0;q=W||z.height>=W)&&X(z,Y[q+1])){J=q;break}}return J}}var RO={MANIFEST:"m",AUDIO:"a",VIDEO:"v",MUXED:"av",INIT:"i",CAPTION:"c",TIMED_TEXT:"tt",KEY:"k",OTHER:"o"},f1=RO,BO={HLS:"h"},NO=BO;class _8{constructor(Y,Z){if(Array.isArray(Y))Y=Y.map((Q)=>Q instanceof _8?Q:new _8(Q));this.value=Y,this.params=Z}}var $O="Dict";function LO(Y){if(Array.isArray(Y))return JSON.stringify(Y);if(Y instanceof Map)return"Map{}";if(Y instanceof Set)return"Set{}";if(typeof Y==="object")return JSON.stringify(Y);return String(Y)}function OO(Y,Z,Q,X){return Error(`failed to ${Y} "${LO(Z)}" as ${Q}`,{cause:X})}function v8(Y,Z,Q){return OO("serialize",Y,Z,Q)}class hq{constructor(Y){this.description=Y}}var U5="Bare Item",jO="Boolean";function AO(Y){if(typeof Y!=="boolean")throw v8(Y,jO);return Y?"?1":"?0"}function DO(Y){return btoa(String.fromCharCode(...Y))}var wO="Byte Sequence";function PO(Y){if(ArrayBuffer.isView(Y)===!1)throw v8(Y,wO);return`:${DO(Y)}:`}var CO="Integer";function MO(Y){return Y<-999999999999999||99999999999999912)throw v8(Y,IO);let Q=Z.toString();return Q.includes(".")?Q:`${Q}.0`}var TO="String",hO=/[\x00-\x1f\x7f]+/;function fO(Y){if(hO.test(Y))throw v8(Y,TO);return`"${Y.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`}function yO(Y){return Y.description||Y.toString().slice(7,-1)}var kO="Token";function F5(Y){let Z=yO(Y);if(/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(Z)===!1)throw v8(Z,kO);return Z}function Xq(Y){switch(typeof Y){case"number":if(!r(Y))throw v8(Y,U5);if(Number.isInteger(Y))return ZK(Y);return SO(Y);case"string":return fO(Y);case"symbol":return F5(Y);case"boolean":return AO(Y);case"object":if(Y instanceof Date)return xO(Y);if(Y instanceof Uint8Array)return PO(Y);if(Y instanceof hq)return F5(Y);default:throw v8(Y,U5)}}var gO="Key";function Jq(Y){if(/^[a-z*][a-z0-9\-_.*]*$/.test(Y)===!1)throw v8(Y,gO);return Y}function fq(Y){if(Y==null)return"";return Object.entries(Y).map(([Z,Q])=>{if(Q===!0)return`;${Jq(Z)}`;return`;${Jq(Z)}=${Xq(Q)}`}).join("")}function XK(Y){if(Y instanceof _8)return`${Xq(Y.value)}${fq(Y.params)}`;else return Xq(Y)}function bO(Y){return`(${Y.value.map(XK).join(" ")})${fq(Y.params)}`}function _O(Y,Z={whitespace:!0}){if(typeof Y!=="object"||Y==null)throw v8(Y,$O);let Q=Y instanceof Map?Y.entries():Object.entries(Y),X=(Z===null||Z===void 0?void 0:Z.whitespace)?" ":"";return Array.from(Q).map(([J,W])=>{if(W instanceof _8===!1)W=new _8(W);let q=Jq(J);if(W.value===!0)q+=fq(W.params);else if(q+="=",Array.isArray(W.value))q+=bO(W);else q+=XK(W);return q}).join(`,${X}`)}function JK(Y,Z){return _O(Y,Z)}var h8="CMCD-Object",i0="CMCD-Request",B7="CMCD-Session",f6="CMCD-Status",vO={br:h8,ab:h8,d:h8,ot:h8,tb:h8,tpb:h8,lb:h8,tab:h8,lab:h8,url:h8,pb:i0,bl:i0,tbl:i0,dl:i0,ltc:i0,mtp:i0,nor:i0,nrr:i0,rc:i0,sn:i0,sta:i0,su:i0,ttfb:i0,ttfbb:i0,ttlb:i0,cmsdd:i0,cmsds:i0,smrt:i0,df:i0,cs:i0,ts:i0,cid:B7,pr:B7,sf:B7,sid:B7,st:B7,v:B7,msd:B7,bs:f6,bsd:f6,cdn:f6,rtp:f6,bg:f6,pt:f6,ec:f6,e:f6},pO={REQUEST:i0};function cO(Y){return Object.keys(Y).reduce((Z,Q)=>{var X;return(X=Y[Q])===null||X===void 0||X.forEach((J)=>Z[J]=Q),Z},{})}function uO(Y,Z){let Q={};if(!Y)return Q;let X=Object.keys(Y),J=Z?cO(Z):{};return X.reduce((W,q)=>{var z;let H=vO[q]||J[q]||pO.REQUEST,E=(z=W[H])!==null&&z!==void 0?z:W[H]={};return E[q]=Y[q],W},Q)}function mO(Y){return["ot","sf","st","e","sta"].includes(Y)}function oO(Y){if(typeof Y==="number")return r(Y);return Y!=null&&Y!==""&&Y!==!1}var WK="event";function dO(Y,Z){let Q=new URL(Y),X=new URL(Z);if(Q.origin!==X.origin)return Y;let J=Q.pathname.split("/").slice(1),W=X.pathname.split("/").slice(1,-1);while(J[0]===W[0])J.shift(),W.shift();while(W.length)W.shift(),J.unshift("..");return J.join("/")+Q.search+Q.hash}var h2=(Y)=>Math.round(Y),Wq=(Y,Z)=>{if(Array.isArray(Y))return Y.map((Q)=>Wq(Q,Z));if(Y instanceof _8&&typeof Y.value==="string")return new _8(Wq(Y.value,Z),Y.params);else{if(Z.baseUrl)Y=dO(Y,Z.baseUrl);return Z.version===1?encodeURIComponent(Y):Y}},O2=(Y)=>h2(Y/100)*100,lO=(Y,Z)=>{let Q=Y;if(Z.version>=2){if(Y instanceof _8&&typeof Y.value==="string")Q=new _8([Y]);else if(typeof Y==="string")Q=[Y]}return Wq(Q,Z)},nO={br:h2,d:h2,bl:O2,dl:O2,mtp:O2,nor:lO,rtp:O2,tb:h2},qK="request",HK="response",yq=["ab","bg","bl","br","bs","bsd","cdn","cid","cs","df","ec","lab","lb","ltc","msd","mtp","pb","pr","pt","sf","sid","sn","st","sta","tab","tb","tbl","tpb","ts","v"],sO=["e"],iO=/^[a-zA-Z0-9-.]+-[a-zA-Z0-9-.]+$/;function ZQ(Y){return iO.test(Y)}function rO(Y){return yq.includes(Y)||sO.includes(Y)||ZQ(Y)}var zK=["d","dl","nor","ot","rtp","su"];function aO(Y){return yq.includes(Y)||zK.includes(Y)||ZQ(Y)}var tO=["cmsdd","cmsds","rc","smrt","ttfb","ttfbb","ttlb","url"];function eO(Y){return yq.includes(Y)||zK.includes(Y)||tO.includes(Y)||ZQ(Y)}var Yj=["bl","br","bs","cid","d","dl","mtp","nor","nrr","ot","pr","rtp","sf","sid","st","su","tb","v"];function Zj(Y){return Yj.includes(Y)||ZQ(Y)}var Qj={[HK]:eO,[WK]:rO,[qK]:aO};function EK(Y,Z={}){let Q={};if(Y==null||typeof Y!=="object")return Q;let X=Z.version||Y.v||1,J=Z.reportingMode||qK,W=X===1?Zj:Qj[J],q=Object.keys(Y).filter(W),z=Z.filter;if(typeof z==="function")q=q.filter(z);let H=J===HK||J===WK;if(H&&!q.includes("ts"))q.push("ts");if(X>1&&!q.includes("v"))q.push("v");let E=h0({},nO,Z.formatters),K={version:X,reportingMode:J,baseUrl:Z.baseUrl};return q.sort().forEach((G)=>{let U=Y[G],V=E[G];if(typeof V==="function")U=V(U,K);if(G==="v")if(X===1)return;else U=X;if(G=="pr"&&U===1)return;if(H&&G==="ts"&&!r(U))U=Date.now();if(!oO(U))return;if(mO(G)&&typeof U==="string")U=new hq(U);Q[G]=U}),Q}function Xj(Y,Z={}){let Q={};if(!Y)return Q;let X=EK(Y,Z),J=uO(X,Z===null||Z===void 0?void 0:Z.customHeaderMap);return Object.entries(J).reduce((W,[q,z])=>{let H=JK(z,{whitespace:!1});if(H)W[q]=H;return W},Q)}function Jj(Y,Z,Q){return h0(Y,Xj(Z,Q))}var Wj="CMCD";function qj(Y,Z={}){if(!Y)return"";return JK(EK(Y,Z),{whitespace:!1})}function Hj(Y,Z={}){if(!Y)return"";let Q=qj(Y,Z);return encodeURIComponent(Q)}function zj(Y,Z={}){if(!Y)return"";let Q=Hj(Y,Z);return`${Wj}=${Q}`}var R5=/CMCD=[^&#]+/;function Ej(Y,Z,Q){let X=zj(Z,Q);if(!X)return Y;if(R5.test(Y))return Y.replace(R5,X);let J=Y.includes("?")?"&":"?";return`${Y}${J}${X}`}class KK{constructor(Y){this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.includeKeys=void 0,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=()=>{if(this.initialized)this.starved=!0;this.buffering=!0},this.onPlaying=()=>{if(!this.initialized)this.initialized=!0;this.buffering=!1},this.applyPlaylistData=(X)=>{try{this.apply(X,{ot:f1.MANIFEST,su:!this.initialized})}catch(J){this.hls.logger.warn("Could not generate manifest CMCD data.",J)}},this.applyFragmentData=(X)=>{try{let{frag:J,part:W}=X,q=this.hls.levels[J.level],z=this.getObjectType(J),H={d:(W||J).duration*1000,ot:z};if(z===f1.VIDEO||z===f1.AUDIO||z==f1.MUXED)H.br=q.bitrate/1000,H.tb=this.getTopBandwidth(z)/1000,H.bl=this.getBufferLength(z);let E=W?this.getNextPart(W):this.getNextFrag(J);if(E!=null&&E.url&&E.url!==J.url)H.nor=E.url;this.apply(X,H)}catch(J){this.hls.logger.warn("Could not generate segment CMCD data.",J)}},this.hls=Y;let Z=this.config=Y.config,{cmcd:Q}=Z;if(Q!=null)Z.pLoader=this.createPlaylistLoader(),Z.fLoader=this.createFragmentLoader(),this.sid=Q.sessionId||Y.sessionId,this.cid=Q.contentId,this.useHeaders=Q.useHeaders===!0,this.includeKeys=Q.includeKeys,this.registerListeners()}registerListeners(){let Y=this.hls;Y.on(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.on(N.MEDIA_DETACHED,this.onMediaDetached,this),Y.on(N.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){let Y=this.hls;Y.off(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.off(N.MEDIA_DETACHED,this.onMediaDetached,this),Y.off(N.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=this.media=null}onMediaAttached(Y,Z){this.media=Z.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){if(!this.media)return;this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null}onBufferCreated(Y,Z){var Q,X;this.audioBuffer=(Q=Z.tracks.audio)==null?void 0:Q.buffer,this.videoBuffer=(X=Z.tracks.video)==null?void 0:X.buffer}createData(){var Y;return{v:1,sf:NO.HLS,sid:this.sid,cid:this.cid,pr:(Y=this.media)==null?void 0:Y.playbackRate,mtp:this.hls.bandwidthEstimate/1000}}apply(Y,Z={}){h0(Z,this.createData());let Q=Z.ot===f1.INIT||Z.ot===f1.VIDEO||Z.ot===f1.MUXED;if(this.starved&&Q)Z.bs=!0,Z.su=!0,this.starved=!1;if(Z.su==null)Z.su=this.buffering;let{includeKeys:X}=this;if(X)Z=Object.keys(Z).reduce((W,q)=>{return X.includes(q)&&(W[q]=Z[q]),W},{});let J={baseUrl:Y.url};if(this.useHeaders){if(!Y.headers)Y.headers={};Jj(Y.headers,Z,J)}else Y.url=Ej(Y.url,Z,J)}getNextFrag(Y){var Z;let Q=(Z=this.hls.levels[Y.level])==null?void 0:Z.details;if(Q){let X=Y.sn-Q.startSN;return Q.fragments[X+1]}return}getNextPart(Y){var Z;let{index:Q,fragment:X}=Y,J=(Z=this.hls.levels[X.level])==null||(Z=Z.details)==null?void 0:Z.partList;if(J){let{sn:W}=X;for(let q=J.length-1;q>=0;q--){let z=J[q];if(z.index===Q&&z.fragment.sn===W)return J[q+1]}}return}getObjectType(Y){let{type:Z}=Y;if(Z==="subtitle")return f1.TIMED_TEXT;if(Y.sn==="initSegment")return f1.INIT;if(Z==="audio")return f1.AUDIO;if(Z==="main"){if(!this.hls.audioTracks.length)return f1.MUXED;return f1.VIDEO}return}getTopBandwidth(Y){let Z=0,Q,X=this.hls;if(Y===f1.AUDIO)Q=X.audioTracks;else{let J=X.maxAutoLevel,W=J>-1?J+1:X.levels.length;Q=X.levels.slice(0,W)}return Q.forEach((J)=>{if(J.bitrate>Z)Z=J.bitrate}),Z>0?Z:NaN}getBufferLength(Y){let Z=this.media,Q=Y===f1.AUDIO?this.audioBuffer:this.videoBuffer;if(!Q||!Z)return NaN;return V0.bufferInfo(Q,Z.currentTime,this.config.maxBufferHole).len*1000}createPlaylistLoader(){let{pLoader:Y}=this.config,Z=this.applyPlaylistData,Q=Y||this.config.loader;return class{constructor(J){this.loader=void 0,this.loader=new Q(J)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(J,W,q){Z(J),this.loader.load(J,W,q)}}}createFragmentLoader(){let{fLoader:Y}=this.config,Z=this.applyFragmentData,Q=Y||this.config.loader;return class{constructor(J){this.loader=void 0,this.loader=new Q(J)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(J,W,q){Z(J),this.loader.load(J,W,q)}}}}var Kj=300000;class GK extends d1{constructor(Y){super("content-steering",Y.logger);this.hls=void 0,this.loader=null,this.uri=null,this.pathwayId=".",this._pathwayPriority=null,this.timeToLoad=300,this.reloadTimer=-1,this.updated=0,this.started=!1,this.enabled=!0,this.levels=null,this.audioTracks=null,this.subtitleTracks=null,this.penalizedPathways={},this.hls=Y,this.registerListeners()}registerListeners(){let Y=this.hls;Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.MANIFEST_LOADED,this.onManifestLoaded,this),Y.on(N.MANIFEST_PARSED,this.onManifestParsed,this),Y.on(N.ERROR,this.onError,this)}unregisterListeners(){let Y=this.hls;if(!Y)return;Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.MANIFEST_LOADED,this.onManifestLoaded,this),Y.off(N.MANIFEST_PARSED,this.onManifestParsed,this),Y.off(N.ERROR,this.onError,this)}pathways(){return(this.levels||[]).reduce((Y,Z)=>{if(Y.indexOf(Z.pathwayId)===-1)Y.push(Z.pathwayId);return Y},[])}get pathwayPriority(){return this._pathwayPriority}set pathwayPriority(Y){this.updatePathwayPriority(Y)}startLoad(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){let Y=this.timeToLoad*1000-(performance.now()-this.updated);if(Y>0){this.scheduleRefresh(this.uri,Y);return}}this.loadSteeringManifest(this.uri)}}stopLoad(){if(this.started=!1,this.loader)this.loader.destroy(),this.loader=null;this.clearTimeout()}clearTimeout(){if(this.reloadTimer!==-1)self.clearTimeout(this.reloadTimer),this.reloadTimer=-1}destroy(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null}removeLevel(Y){let Z=this.levels;if(Z)this.levels=Z.filter((Q)=>Q!==Y)}onManifestLoading(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null}onManifestLoaded(Y,Z){let{contentSteering:Q}=Z;if(Q===null)return;if(this.pathwayId=Q.pathwayId,this.uri=Q.uri,this.started)this.startLoad()}onManifestParsed(Y,Z){this.audioTracks=Z.audioTracks,this.subtitleTracks=Z.subtitleTracks}onError(Y,Z){let{errorAction:Q}=Z;if((Q==null?void 0:Q.action)===N1.SendAlternateToPenaltyBox&&Q.flags===c1.MoveAllAlternatesMatchingHost){let X=this.levels,J=this._pathwayPriority,W=this.pathwayId;if(Z.context){let{groupId:q,pathwayId:z,type:H}=Z.context;if(q&&X)W=this.getPathwayForGroupId(q,H,W);else if(z)W=z}if(!(W in this.penalizedPathways))this.penalizedPathways[W]=performance.now();if(!J&&X)J=this.pathways();if(J&&J.length>1)this.updatePathwayPriority(J),Q.resolved=this.pathwayId!==W;if(Z.details===h.BUFFER_APPEND_ERROR&&!Z.fatal)Q.resolved=!0;else if(!Q.resolved)this.warn(`Could not resolve ${Z.details} ("${Z.error.message}") with content-steering for Pathway: ${W} levels: ${X?X.length:X} priorities: ${_0(J)} penalized: ${_0(this.penalizedPathways)}`)}}filterParsedLevels(Y){this.levels=Y;let Z=this.getLevelsForPathway(this.pathwayId);if(Z.length===0){let Q=Y[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${Q}"`),Z=this.getLevelsForPathway(Q),this.pathwayId=Q}if(Z.length!==Y.length)this.log(`Found ${Z.length}/${Y.length} levels in Pathway "${this.pathwayId}"`);return Z}getLevelsForPathway(Y){if(this.levels===null)return[];return this.levels.filter((Z)=>Y===Z.pathwayId)}updatePathwayPriority(Y){this._pathwayPriority=Y;let Z,Q=this.penalizedPathways,X=performance.now();Object.keys(Q).forEach((J)=>{if(X-Q[J]>Kj)delete Q[J]});for(let J=0;J0){this.log(`Setting Pathway to "${W}"`),this.pathwayId=W,NE(Z),this.hls.trigger(N.LEVELS_UPDATED,{levels:Z});let H=this.hls.levels[q];if(z&&H&&this.levels){if(H.attrs["STABLE-VARIANT-ID"]!==z.attrs["STABLE-VARIANT-ID"]&&H.bitrate!==z.bitrate)this.log(`Unstable Pathways change from bitrate ${z.bitrate} to ${H.bitrate}`);this.hls.nextLoadLevel=q}break}}}getPathwayForGroupId(Y,Z,Q){let X=this.getLevelsForPathway(Q).concat(this.levels||[]);for(let J=0;J{let{ID:W,"BASE-ID":q,"URI-REPLACEMENT":z}=J;if(Z.some((E)=>E.pathwayId===W))return;let H=this.getLevelsForPathway(q).map((E)=>{let K=new d0(E.attrs);K["PATHWAY-ID"]=W;let G=K.AUDIO&&`${K.AUDIO}_clone_${W}`,U=K.SUBTITLES&&`${K.SUBTITLES}_clone_${W}`;if(G)Q[K.AUDIO]=G,K.AUDIO=G;if(U)X[K.SUBTITLES]=U,K.SUBTITLES=U;let V=VK(E.uri,K["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",z),F=new R9({attrs:K,audioCodec:E.audioCodec,bitrate:E.bitrate,height:E.height,name:E.name,url:V,videoCodec:E.videoCodec,width:E.width});if(E.audioGroups)for(let R=1;R{this.log(`Loaded steering manifest: "${X}"`);let V=E.data;if((V==null?void 0:V.VERSION)!==1){this.log(`Steering VERSION ${V.VERSION} not supported!`);return}this.updated=performance.now(),this.timeToLoad=V.TTL;let{"RELOAD-URI":F,"PATHWAY-CLONES":R,"PATHWAY-PRIORITY":B}=V;if(F)try{this.uri=new self.URL(F,X).href}catch(L){this.enabled=!1,this.log(`Failed to parse Steering Manifest RELOAD-URI: ${F}`);return}if(this.scheduleRefresh(this.uri||G.url),R)this.clonePathways(R);let $={steeringManifest:V,url:X.toString()};if(this.hls.trigger(N.STEERING_MANIFEST_LOADED,$),B)this.updatePathwayPriority(B)},onError:(E,K,G,U)=>{if(this.log(`Error loading steering manifest: ${E.code} ${E.text} (${K.url})`),this.stopLoad(),E.code===410){this.enabled=!1,this.log(`Steering manifest ${K.url} no longer available`);return}let V=this.timeToLoad*1000;if(E.code===429){let F=this.loader;if(typeof(F==null?void 0:F.getResponseHeader)==="function"){let R=F.getResponseHeader("Retry-After");if(R)V=parseFloat(R)*1000}this.log(`Steering manifest ${K.url} rate limited`);return}this.scheduleRefresh(this.uri||K.url,V)},onTimeout:(E,K,G)=>{this.log(`Timeout loading steering manifest (${K.url})`),this.scheduleRefresh(this.uri||K.url)}};this.log(`Requesting steering manifest: ${X}`),this.loader.load(J,z,H)}scheduleRefresh(Y,Z=this.timeToLoad*1000){this.clearTimeout(),this.reloadTimer=self.setTimeout(()=>{var Q;let X=(Q=this.hls)==null?void 0:Q.media;if(X&&!X.ended){this.loadSteeringManifest(Y);return}this.scheduleRefresh(Y,this.timeToLoad*1000)},Z)}}function B5(Y,Z,Q,X){if(!Y)return;Object.keys(Z).forEach((J)=>{let W=Y.filter((q)=>q.groupId===J).map((q)=>{let z=h0({},q);return z.details=void 0,z.attrs=new d0(z.attrs),z.url=z.attrs.URI=VK(q.url,q.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",Q),z.groupId=z.attrs["GROUP-ID"]=Z[J],z.attrs["PATHWAY-ID"]=X,z});Y.push(...W)})}function VK(Y,Z,Q,X){let{HOST:J,PARAMS:W,[Q]:q}=X,z;if(Z){if(z=q==null?void 0:q[Z],z)Y=z}let H=new self.URL(Y);if(J&&!z)H.host=J;if(W)Object.keys(W).sort().forEach((E)=>{if(E)H.searchParams.set(E,W[E])});return H.href}class V9 extends d1{constructor(Y){super("eme",Y.logger);this.hls=void 0,this.config=void 0,this.media=null,this.mediaResolved=void 0,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.mediaKeys=null,this.setMediaKeysQueue=V9.CDMCleanupPromise?[V9.CDMCleanupPromise]:[],this.bannedKeyIds={},this.onMediaEncrypted=(Z)=>{let{initDataType:Q,initData:X}=Z,J=`"${Z.type}" event: init data type: "${Q}"`;if(this.debug(J),X===null)return;if(!this.keyFormatPromise){let W=Object.keys(this.keySystemAccessPromises);if(!W.length)W=xY(this.config);let q=W.map(wW).filter((z)=>!!z);this.keyFormatPromise=this.getKeyFormatPromise(q)}this.keyFormatPromise.then((W)=>{let q=S2(W);if(Q!=="sinf"||q!==l0.FAIRPLAY){this.log(`Ignoring "${Z.type}" event with init data type: "${Q}" for selected key-system ${q}`);return}let z;try{let U=K1(new Uint8Array(X)),V=Aq(JSON.parse(U).sinf),F=p5(V);if(!F)throw Error("'schm' box missing or not cbcs/cenc with schi > tenc");z=new Uint8Array(F.subarray(8,24))}catch(U){this.warn(`${J} Failed to parse sinf: ${U}`);return}let H=j1(z),{keyIdToKeySessionPromise:E,mediaKeySessions:K}=this,G=E[H];for(let U=0;U{return this.generateRequestWithPreferredKeySession(V,Q,X,"encrypted-event-key-match")}),G.catch((B)=>this.handleError(B));break}}if(!G)this.handleError(Error(`Key ID ${H} not encountered in playlist. Key-system sessions ${K.length}.`))}).catch((W)=>this.handleError(W))},this.onWaitingForKey=(Z)=>{this.log(`"${Z.type}" event`)},this.hls=Y,this.config=Y.config,this.registerListeners()}destroy(){this.onDestroying(),this.onMediaDetached();let Y=this.config;Y.requestMediaKeySystemAccessFunc=null,Y.licenseXhrSetup=Y.licenseResponseCallback=void 0,Y.drmSystems=Y.drmSystemOptions={},this.hls=this.config=this.keyIdToKeySessionPromise=null,this.onMediaEncrypted=this.onWaitingForKey=null}registerListeners(){this.hls.on(N.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(N.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(N.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(N.MANIFEST_LOADED,this.onManifestLoaded,this),this.hls.on(N.DESTROYING,this.onDestroying,this)}unregisterListeners(){this.hls.off(N.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(N.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(N.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(N.MANIFEST_LOADED,this.onManifestLoaded,this),this.hls.off(N.DESTROYING,this.onDestroying,this)}getLicenseServerUrl(Y){let{drmSystems:Z,widevineLicenseUrl:Q}=this.config,X=Z==null?void 0:Z[Y];if(X)return X.licenseUrl;if(Y===l0.WIDEVINE&&Q)return Q}getLicenseServerUrlOrThrow(Y){let Z=this.getLicenseServerUrl(Y);if(Z===void 0)throw Error(`no license server URL configured for key-system "${Y}"`);return Z}getServerCertificateUrl(Y){let{drmSystems:Z}=this.config,Q=Z==null?void 0:Z[Y];if(Q)return Q.serverCertificateUrl;else this.log(`No Server Certificate in config.drmSystems["${Y}"]`)}attemptKeySystemAccess(Y){let Z=this.hls.levels,Q=(W,q,z)=>!!W&&z.indexOf(W)===q,X=Z.map((W)=>W.audioCodec).filter(Q),J=Z.map((W)=>W.videoCodec).filter(Q);if(X.length+J.length===0)J.push("avc1.42e01e");return new Promise((W,q)=>{let z=(H)=>{let E=H.shift();this.getMediaKeysPromise(E,X,J).then((K)=>W({keySystem:E,mediaKeys:K})).catch((K)=>{if(H.length)z(H);else if(K instanceof y1)q(K);else q(new y1({type:Y0.KEY_SYSTEM_ERROR,details:h.KEY_SYSTEM_NO_ACCESS,error:K,fatal:!0},K.message))})};z(Y)})}requestMediaKeySystemAccess(Y,Z){let{requestMediaKeySystemAccessFunc:Q}=this.config;if(typeof Q!=="function"){let X=`Configured requestMediaKeySystemAccess is not a function ${Q}`;if(EE===null&&self.location.protocol==="http:")X=`navigator.requestMediaKeySystemAccess is not available over insecure protocol ${location.protocol}`;return Promise.reject(Error(X))}return Q(Y,Z)}getMediaKeysPromise(Y,Z,Q){var X;let J=zL(Y,Z,Q,this.config.drmSystemOptions||{}),W=this.keySystemAccessPromises[Y],q=(X=W)==null?void 0:X.keySystemAccess;if(!q){this.log(`Requesting encrypted media "${Y}" key-system access with config: ${_0(J)}`),q=this.requestMediaKeySystemAccess(Y,J);let z=W=this.keySystemAccessPromises[Y]={keySystemAccess:q};return q.catch((H)=>{this.log(`Failed to obtain access to key-system "${Y}": ${H}`)}),q.then((H)=>{this.log(`Access for key-system "${H.keySystem}" obtained`);let E=this.fetchServerCertificate(Y);this.log(`Create media-keys for "${Y}"`);let K=z.mediaKeys=H.createMediaKeys().then((G)=>{return this.log(`Media-keys created for "${Y}"`),z.hasMediaKeys=!0,E.then((U)=>{if(U)return this.setMediaKeysServerCertificate(G,Y,U);return G})});return K.catch((G)=>{this.error(`Failed to create media-keys for "${Y}"}: ${G}`)}),K})}return q.then(()=>W.mediaKeys)}createMediaKeySessionContext({decryptdata:Y,keySystem:Z,mediaKeys:Q}){this.log(`Creating key-system session "${Z}" keyId: ${j1(Y.keyId||[])} keyUri: ${Y.uri}`);let X=Q.createSession(),J={decryptdata:Y,keySystem:Z,mediaKeys:Q,mediaKeysSession:X,keyStatus:"status-pending"};return this.mediaKeySessions.push(J),J}renewKeySession(Y){let Z=Y.decryptdata;if(Z.pssh){let Q=this.createMediaKeySessionContext(Y),X=j2(Z),J="cenc";this.keyIdToKeySessionPromise[X]=this.generateRequestWithPreferredKeySession(Q,"cenc",Z.pssh.buffer,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(Y)}updateKeySession(Y,Z){let Q=Y.mediaKeysSession;return this.log(`Updating key-session "${Q.sessionId}" for keyId ${j1(Y.decryptdata.keyId||[])} } (data length: ${Z.byteLength})`),Q.update(Z)}getSelectedKeySystemFormats(){return Object.keys(this.keySystemAccessPromises).map((Y)=>({keySystem:Y,hasMediaKeys:this.keySystemAccessPromises[Y].hasMediaKeys})).filter(({hasMediaKeys:Y})=>!!Y).map(({keySystem:Y})=>wW(Y)).filter((Y)=>!!Y)}getKeySystemAccess(Y){return this.getKeySystemSelectionPromise(Y).then(({keySystem:Z,mediaKeys:Q})=>{return this.attemptSetMediaKeys(Z,Q)})}selectKeySystem(Y){return new Promise((Z,Q)=>{this.getKeySystemSelectionPromise(Y).then(({keySystem:X})=>{let J=wW(X);if(J)Z(J);else Q(Error(`Unable to find format for key-system "${X}"`))}).catch(Q)})}selectKeySystemFormat(Y){let Z=Object.keys(Y.levelkeys||{});if(!this.keyFormatPromise)this.log(`Selecting key-system from fragment (sn: ${Y.sn} ${Y.type}: ${Y.level}) key formats ${Z.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(Z);return this.keyFormatPromise}getKeyFormatPromise(Y){let Z=xY(this.config),Q=Y.map(S2).filter((X)=>!!X&&Z.indexOf(X)!==-1);return this.selectKeySystem(Q)}getKeyStatus(Y){let{mediaKeySessions:Z}=this;for(let Q=0;Q{return this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${Y.frag.sn} ${Y.frag.type}: ${Y.frag.level} using key ${J}`),this.attemptSetMediaKeys(z,H).then(()=>{return this.throwIfDestroyed(),this.createMediaKeySessionContext({keySystem:z,mediaKeys:H,decryptdata:Z})})}).then((z)=>{let E=Z.pssh?Z.pssh.buffer:null;return this.generateRequestWithPreferredKeySession(z,"cenc",E,"playlist-key")});return q.catch((z)=>this.handleError(z,Y.frag)),this.keyIdToKeySessionPromise[Q]=q,q}return W.catch((q)=>{if(q instanceof y1){let z=I0({},q.data);if(this.getKeyStatus(Z)==="internal-error")z.decryptdata=Z;let H=new y1(z,q.message);this.handleError(H,Y.frag)}}),W}throwIfDestroyed(Y="Invalid state"){if(!this.hls)throw Error("invalid state")}handleError(Y,Z){if(!this.hls)return;if(Y instanceof y1){if(Z)Y.data.frag=Z;let Q=Y.data.decryptdata;this.error(`${Y.message}${Q?` (${j1(Q.keyId||[])})`:""}`),this.hls.trigger(N.ERROR,Y.data)}else this.error(Y.message),this.hls.trigger(N.ERROR,{type:Y0.KEY_SYSTEM_ERROR,details:h.KEY_SYSTEM_NO_KEYS,error:Y,fatal:!0})}getKeySystemForKeyPromise(Y){let Z=j2(Y),Q=this.keyIdToKeySessionPromise[Z];if(!Q){let X=S2(Y.keyFormat),J=X?[X]:xY(this.config);return this.attemptKeySystemAccess(J)}return Q}getKeySystemSelectionPromise(Y){if(!Y.length)Y=xY(this.config);if(Y.length===0)throw new y1({type:Y0.KEY_SYSTEM_ERROR,details:h.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},`Missing key-system license configuration options ${_0({drmSystems:this.config.drmSystems})}`);return this.attemptKeySystemAccess(Y)}attemptSetMediaKeys(Y,Z){if(this.mediaResolved=void 0,this.mediaKeys===Z)return Promise.resolve();let Q=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${Y}"`);let X=Promise.all(Q).then(()=>{if(!this.media)return new Promise((J,W)=>{this.mediaResolved=()=>{if(this.mediaResolved=void 0,!this.media)return W(Error("Attempted to set mediaKeys without media element attached"));this.mediaKeys=Z,this.media.setMediaKeys(Z).then(J).catch(W)}});return this.media.setMediaKeys(Z)});return this.mediaKeys=Z,this.setMediaKeysQueue.push(X),X.then(()=>{this.log(`Media-keys set for "${Y}"`),Q.push(X),this.setMediaKeysQueue=this.setMediaKeysQueue.filter((J)=>Q.indexOf(J)===-1)})}generateRequestWithPreferredKeySession(Y,Z,Q,X){var J;let W=(J=this.config.drmSystems)==null||(J=J[Y.keySystem])==null?void 0:J.generateRequest;if(W)try{let V=W.call(this.hls,Z,Q,Y);if(!V)throw Error("Invalid response from configured generateRequest filter");Z=V.initDataType,Q=V.initData?V.initData:null,Y.decryptdata.pssh=Q?new Uint8Array(Q):null}catch(V){if(this.warn(V.message),this.hls&&this.hls.config.debug)throw V}if(Q===null)return this.log(`Skipping key-session request for "${X}" (no initData)`),Promise.resolve(Y);let q=j2(Y.decryptdata),z=Y.decryptdata.uri;this.log(`Generating key-session request for "${X}" keyId: ${q} URI: ${z} (init data type: ${Z} length: ${Q.byteLength})`);let H=new wq,E=Y._onmessage=(V)=>{let F=Y.mediaKeysSession;if(!F){H.emit("error",Error("invalid state"));return}let{messageType:R,message:B}=V;if(this.log(`"${R}" message event for session "${F.sessionId}" message size: ${B.byteLength}`),R==="license-request"||R==="license-renewal")this.renewLicense(Y,B).catch(($)=>{if(H.eventNames().length)H.emit("error",$);else this.handleError($)});else if(R==="license-release"){if(Y.keySystem===l0.FAIRPLAY)this.updateKeySession(Y,rW("acknowledged")).then(()=>this.removeSession(Y)).catch(($)=>this.handleError($))}else this.warn(`unhandled media key message type "${R}"`)},K=(V,F)=>{F.keyStatus=V;let R;if(V.startsWith("usable"))H.emit("resolved");else if(V==="internal-error"||V==="output-restricted"||V==="output-downscaled")R=N5(V,F.decryptdata);else if(V==="expired")R=Error(`key expired (keyId: ${q})`);else if(V==="released")R=Error("key released");else if(V==="status-pending");else this.warn(`unhandled key status change "${V}" (keyId: ${q})`);if(R)if(H.eventNames().length)H.emit("error",R);else this.handleError(R)},G=Y._onkeystatuseschange=(V)=>{if(!Y.mediaKeysSession){H.emit("error",Error("invalid state"));return}let R=this.getKeyStatuses(Y);if(!Object.keys(R).some((O)=>R[O]!=="status-pending"))return;if(R[q]==="expired"){this.log(`Expired key ${_0(R)} in key-session "${Y.mediaKeysSession.sessionId}"`),this.renewKeySession(Y);return}let $=R[q];if($)K($,Y);else{var L;let O=1000;Y.keyStatusTimeouts||(Y.keyStatusTimeouts={}),(L=Y.keyStatusTimeouts)[q]||(L[q]=self.setTimeout(()=>{if(!Y.mediaKeysSession||!this.mediaKeys)return;let j=this.getKeyStatus(Y.decryptdata);if(j&&j!=="status-pending")return this.log(`No status for keyId ${q} in key-session "${Y.mediaKeysSession.sessionId}". Using session key-status ${j} from other session.`),K(j,Y);this.log(`key status for ${q} in key-session "${Y.mediaKeysSession.sessionId}" timed out after 1000ms`),$="internal-error",K($,Y)},1000)),this.log(`No status for keyId ${q} (${_0(R)}).`)}};I1(Y.mediaKeysSession,"message",E),I1(Y.mediaKeysSession,"keystatuseschange",G);let U=new Promise((V,F)=>{H.on("error",F),H.on("resolved",V)});return Y.mediaKeysSession.generateRequest(Z,Q).then(()=>{this.log(`Request generated for key-session "${Y.mediaKeysSession.sessionId}" keyId: ${q} URI: ${z}`)}).catch((V)=>{throw new y1({type:Y0.KEY_SYSTEM_ERROR,details:h.KEY_SYSTEM_NO_SESSION,error:V,decryptdata:Y.decryptdata,fatal:!1},`Error generating key-session request: ${V}`)}).then(()=>U).catch((V)=>{return H.removeAllListeners(),this.removeSession(Y).then(()=>{throw V})}).then(()=>{return H.removeAllListeners(),Y})}getKeyStatuses(Y){let Z={};return Y.mediaKeysSession.keyStatuses.forEach((Q,X)=>{if(typeof X==="string"&&typeof Q==="object"){let q=X;X=Q,Q=q}let J="buffer"in X?new Uint8Array(X.buffer,X.byteOffset,X.byteLength):new Uint8Array(X);if(Y.keySystem===l0.PLAYREADY&&J.length===16){let q=j1(J);Z[q]=Q,HE(J)}let W=j1(J);if(Q==="internal-error")this.bannedKeyIds[W]=Q;this.log(`key status change "${Q}" for keyStatuses keyId: ${W} key-session "${Y.mediaKeysSession.sessionId}"`),Z[W]=Q}),Z}fetchServerCertificate(Y){let Z=this.config,X=new Z.loader(Z),J=this.getServerCertificateUrl(Y);if(!J)return Promise.resolve();return this.log(`Fetching server certificate for "${Y}"`),new Promise((W,q)=>{let z={responseType:"arraybuffer",url:J},H=Z.certLoadPolicy.default,E={loadPolicy:H,timeout:H.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},K={onSuccess:(G,U,V,F)=>{W(G.data)},onError:(G,U,V,F)=>{q(new y1({type:Y0.KEY_SYSTEM_ERROR,details:h.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:V,response:I0({url:z.url,data:void 0},G)},`"${Y}" certificate request failed (${J}). Status: ${G.code} (${G.text})`))},onTimeout:(G,U,V)=>{q(new y1({type:Y0.KEY_SYSTEM_ERROR,details:h.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:V,response:{url:z.url,data:void 0}},`"${Y}" certificate request timed out (${J})`))},onAbort:(G,U,V)=>{q(Error("aborted"))}};X.load(z,E,K)})}setMediaKeysServerCertificate(Y,Z,Q){return new Promise((X,J)=>{Y.setServerCertificate(Q).then((W)=>{this.log(`setServerCertificate ${W?"success":"not supported by CDM"} (${Q.byteLength}) on "${Z}"`),X(Y)}).catch((W)=>{J(new y1({type:Y0.KEY_SYSTEM_ERROR,details:h.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:W,fatal:!0},W.message))})})}renewLicense(Y,Z){return this.requestLicense(Y,new Uint8Array(Z)).then((Q)=>{return this.updateKeySession(Y,new Uint8Array(Q)).catch((X)=>{throw new y1({type:Y0.KEY_SYSTEM_ERROR,details:h.KEY_SYSTEM_SESSION_UPDATE_FAILED,decryptdata:Y.decryptdata,error:X,fatal:!1},X.message)})})}unpackPlayReadyKeyMessage(Y,Z){let Q=String.fromCharCode.apply(null,new Uint16Array(Z.buffer));if(!Q.includes("PlayReadyKeyMessage"))return Y.setRequestHeader("Content-Type","text/xml; charset=utf-8"),Z;let X=new DOMParser().parseFromString(Q,"application/xml"),J=X.querySelectorAll("HttpHeader");if(J.length>0){let E;for(let K=0,G=J.length;K in key message");return rW(atob(H))}setupLicenseXHR(Y,Z,Q,X){let J=this.config.licenseXhrSetup;if(!J)return Y.open("POST",Z,!0),Promise.resolve({xhr:Y,licenseChallenge:X});return Promise.resolve().then(()=>{if(!Q.decryptdata)throw Error("Key removed");return J.call(this.hls,Y,Z,Q,X)}).catch((W)=>{if(!Q.decryptdata)throw W;return Y.open("POST",Z,!0),J.call(this.hls,Y,Z,Q,X)}).then((W)=>{if(!Y.readyState)Y.open("POST",Z,!0);return{xhr:Y,licenseChallenge:W?W:X}})}requestLicense(Y,Z){let Q=this.config.keyLoadPolicy.default;return new Promise((X,J)=>{let W=this.getLicenseServerUrlOrThrow(Y.keySystem);this.log(`Sending license request to URL: ${W}`);let q=new XMLHttpRequest;if(q.responseType="arraybuffer",q.onreadystatechange=()=>{if(!this.hls||!Y.mediaKeysSession)return J(Error("invalid state"));if(q.readyState===4)if(q.status===200){this._requestLicenseFailureCount=0;let z=q.response;this.log(`License received ${z instanceof ArrayBuffer?z.byteLength:z}`);let H=this.config.licenseResponseCallback;if(H)try{z=H.call(this.hls,q,W,Y)}catch(E){this.error(E)}X(z)}else{let z=Q.errorRetry,H=z?z.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>H||q.status>=400&&q.status<500)J(new y1({type:Y0.KEY_SYSTEM_ERROR,details:h.KEY_SYSTEM_LICENSE_REQUEST_FAILED,decryptdata:Y.decryptdata,fatal:!0,networkDetails:q,response:{url:W,data:void 0,code:q.status,text:q.statusText}},`License Request XHR failed (${W}). Status: ${q.status} (${q.statusText})`));else{let E=H-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${E} attempts left`),this.requestLicense(Y,Z).then(X,J)}}},Y.licenseXhr&&Y.licenseXhr.readyState!==XMLHttpRequest.DONE)Y.licenseXhr.abort();Y.licenseXhr=q,this.setupLicenseXHR(q,W,Y,Z).then(({xhr:z,licenseChallenge:H})=>{if(Y.keySystem==l0.PLAYREADY)H=this.unpackPlayReadyKeyMessage(z,H);z.send(H)}).catch(J)})}onDestroying(){this.unregisterListeners(),this._clear()}onMediaAttached(Y,Z){if(!this.config.emeEnabled)return;let Q=Z.media;this.media=Q,I1(Q,"encrypted",this.onMediaEncrypted),I1(Q,"waitingforkey",this.onWaitingForKey);let X=this.mediaResolved;if(X)X();else this.mediaKeys=Q.mediaKeys}onMediaDetached(){let Y=this.media;if(Y)k1(Y,"encrypted",this.onMediaEncrypted),k1(Y,"waitingforkey",this.onWaitingForKey),this.media=null,this.mediaKeys=null}_clear(){var Y;this._requestLicenseFailureCount=0,this.keyIdToKeySessionPromise={},this.bannedKeyIds={};let Z=this.mediaResolved;if(Z)Z();if(!this.mediaKeys&&!this.mediaKeySessions.length)return;let Q=this.media,X=this.mediaKeySessions.slice();this.mediaKeySessions=[],this.mediaKeys=null,g6.clearKeyUriToKeyIdMap();let J=X.length;V9.CDMCleanupPromise=Promise.all(X.map((W)=>this.removeSession(W)).concat((Q==null||(Y=Q.setMediaKeys(null))==null?void 0:Y.catch((W)=>{if(this.log(`Could not clear media keys: ${W}`),!this.hls)return;this.hls.trigger(N.ERROR,{type:Y0.OTHER_ERROR,details:h.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR,fatal:!1,error:Error(`Could not clear media keys: ${W}`)})}))||Promise.resolve())).catch((W)=>{if(this.log(`Could not close sessions and clear media keys: ${W}`),!this.hls)return;this.hls.trigger(N.ERROR,{type:Y0.OTHER_ERROR,details:h.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:Error(`Could not close sessions and clear media keys: ${W}`)})}).then(()=>{if(J)this.log("finished closing key sessions and clearing media keys")})}onManifestLoading(){this._clear()}onManifestLoaded(Y,{sessionKeys:Z}){if(!Z||!this.config.emeEnabled)return;if(!this.keyFormatPromise){let Q=Z.reduce((X,J)=>{if(X.indexOf(J.keyFormat)===-1)X.push(J.keyFormat);return X},[]);this.log(`Selecting key-system from session-keys ${Q.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(Q)}}removeSession(Y){let{mediaKeysSession:Z,licenseXhr:Q,decryptdata:X}=Y;if(Z){if(this.log(`Remove licenses and keys and close session "${Z.sessionId}" keyId: ${j1((X==null?void 0:X.keyId)||[])}`),Y._onmessage)Z.removeEventListener("message",Y._onmessage),Y._onmessage=void 0;if(Y._onkeystatuseschange)Z.removeEventListener("keystatuseschange",Y._onkeystatuseschange),Y._onkeystatuseschange=void 0;if(Q&&Q.readyState!==XMLHttpRequest.DONE)Q.abort();Y.mediaKeysSession=Y.decryptdata=Y.licenseXhr=void 0;let J=this.mediaKeySessions.indexOf(Y);if(J>-1)this.mediaKeySessions.splice(J,1);let{keyStatusTimeouts:W}=Y;if(W)Object.keys(W).forEach((H)=>self.clearTimeout(W[H]));let{drmSystemOptions:q}=this.config;return(KL(q)?new Promise((H,E)=>{self.setTimeout(()=>E(Error("MediaKeySession.remove() timeout")),8000),Z.remove().then(H).catch(E)}):Promise.resolve()).catch((H)=>{if(this.log(`Could not remove session: ${H}`),!this.hls)return;this.hls.trigger(N.ERROR,{type:Y0.OTHER_ERROR,details:h.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR,fatal:!1,error:Error(`Could not remove session: ${H}`)})}).then(()=>{return Z.close()}).catch((H)=>{if(this.log(`Could not close session: ${H}`),!this.hls)return;this.hls.trigger(N.ERROR,{type:Y0.OTHER_ERROR,details:h.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:Error(`Could not close session: ${H}`)})})}return Promise.resolve()}}V9.CDMCleanupPromise=void 0;function j2(Y){if(!Y)throw Error("Could not read keyId of undefined decryptdata");if(Y.keyId===null)throw Error("keyId is null");return j1(Y.keyId)}function Gj(Y,Z){if(Y.keyId&&Z.mediaKeysSession.keyStatuses.has(Y.keyId))return Z.mediaKeysSession.keyStatuses.get(Y.keyId);if(Y.matches(Z.decryptdata))return Z.keyStatus;return}class y1 extends Error{constructor(Y,Z){super(Z);this.data=void 0,Y.error||(Y.error=Error(Z)),this.data=Y,Y.err=Y.error}}function N5(Y,Z){let Q=Y==="output-restricted",X=Q?h.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:h.KEY_SYSTEM_STATUS_INTERNAL_ERROR;return new y1({type:Y0.KEY_SYSTEM_ERROR,details:X,fatal:!1,decryptdata:Z},Q?"HDCP level output restricted":`key status changed to "${Y}"`)}class UK{constructor(Y){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=Y,this.registerListeners()}setStreamController(Y){this.streamController=Y}registerListeners(){this.hls.on(N.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.on(N.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListeners(){this.hls.off(N.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.off(N.MEDIA_DETACHING,this.onMediaDetaching,this)}destroy(){if(this.timer)clearInterval(this.timer);this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(Y,Z){let Q=this.hls.config;if(Q.capLevelOnFPSDrop){let X=Z.media instanceof self.HTMLVideoElement?Z.media:null;if(this.media=X,X&&typeof X.getVideoPlaybackQuality==="function")this.isVideoPlaybackQualityAvailable=!0;self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),Q.fpsDroppedMonitoringPeriod)}}onMediaDetaching(){this.media=null}checkFPS(Y,Z,Q){let X=performance.now();if(Z){if(this.lastTime){let J=X-this.lastTime,W=Q-this.lastDroppedFrames,q=Z-this.lastDecodedFrames,z=1000*W/J,H=this.hls;if(H.trigger(N.FPS_DROP,{currentDropped:W,currentDecoded:q,totalDroppedFrames:Q}),z>0){if(W>H.config.fpsDroppedMonitoringThreshold*q){let E=H.currentLevel;if(H.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+E),E>0&&(H.autoLevelCapping===-1||H.autoLevelCapping>=E))E=E-1,H.trigger(N.FPS_DROP_LEVEL_CAPPING,{level:E,droppedLevel:H.currentLevel}),H.autoLevelCapping=E,this.streamController.nextLevelSwitch()}}}this.lastTime=X,this.lastDroppedFrames=Q,this.lastDecodedFrames=Z}}checkFPSInterval(){let Y=this.media;if(Y)if(this.isVideoPlaybackQualityAvailable){let Z=Y.getVideoPlaybackQuality();this.checkFPS(Y,Z.totalVideoFrames,Z.droppedVideoFrames)}else this.checkFPS(Y,Y.webkitDecodedFrameCount,Y.webkitDroppedFrameCount)}}function FK(Y,Z){let Q;try{Q=new Event("addtrack")}catch(X){Q=document.createEvent("Event"),Q.initEvent("addtrack",!1,!1)}Q.track=Y,Z.dispatchEvent(Q)}function RK(Y,Z){let Q=Y.mode;if(Q==="disabled")Y.mode="hidden";if(Y.cues&&!Y.cues.getCueById(Z.id))try{if(Y.addCue(Z),!Y.cues.getCueById(Z.id))throw Error(`addCue is failed for: ${Z}`)}catch(X){S0.debug(`[texttrack-utils]: ${X}`);try{let J=new self.TextTrackCue(Z.startTime,Z.endTime,Z.text);J.id=Z.id,Y.addCue(J)}catch(J){S0.debug(`[texttrack-utils]: Legacy TextTrackCue fallback failed: ${J}`)}}if(Q==="disabled")Y.mode=Q}function z9(Y,Z){let Q=Y.mode;if(Q==="disabled")Y.mode="hidden";if(Y.cues)for(let X=Y.cues.length;X--;){if(Z)Y.cues[X].removeEventListener("enter",Z);Y.removeCue(Y.cues[X])}if(Q==="disabled")Y.mode=Q}function qq(Y,Z,Q,X){let J=Y.mode;if(J==="disabled")Y.mode="hidden";if(Y.cues&&Y.cues.length>0){let W=Uj(Y.cues,Z,Q);for(let q=0;qY[Q].endTime)return-1;let X=0,J=Q,W;while(X<=J)if(W=Math.floor((J+X)/2),ZY[W].startTime&&X-1)for(let W=J,q=Y.length;W=Z&&z.endTime<=Q)X.push(z);else if(z.startTime>Q)return X}return X}function f2(Y){let Z=[];for(let Q=0;Qthis.pollTrackChange(0),this.onTextTracksChanged=()=>{if(!this.useTextTrackPolling)self.clearInterval(this.subtitlePollingInterval);if(!this.media||!this.hls.config.renderTextTracksNatively)return;let Z=null,Q=f2(this.media.textTracks);for(let J=0;J-1)this.toggleTrackModes()}registerListeners(){let{hls:Y}=this;Y.on(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.on(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.MANIFEST_PARSED,this.onManifestParsed,this),Y.on(N.LEVEL_LOADING,this.onLevelLoading,this),Y.on(N.LEVEL_SWITCHING,this.onLevelSwitching,this),Y.on(N.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),Y.on(N.ERROR,this.onError,this)}unregisterListeners(){let{hls:Y}=this;Y.off(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.off(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.MANIFEST_PARSED,this.onManifestParsed,this),Y.off(N.LEVEL_LOADING,this.onLevelLoading,this),Y.off(N.LEVEL_SWITCHING,this.onLevelSwitching,this),Y.off(N.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),Y.off(N.ERROR,this.onError,this)}onMediaAttached(Y,Z){if(this.media=Z.media,!this.media)return;if(this.queuedDefaultTrack>-1)this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1;if(this.useTextTrackPolling=!(this.media.textTracks&&("onchange"in this.media.textTracks)),this.useTextTrackPolling)this.pollTrackChange(500);else this.media.textTracks.addEventListener("change",this.asyncPollTrackChange)}pollTrackChange(Y){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.onTextTracksChanged,Y)}onMediaDetaching(Y,Z){let Q=this.media;if(!Q)return;let X=!!Z.transferMedia;if(self.clearInterval(this.subtitlePollingInterval),!this.useTextTrackPolling)Q.textTracks.removeEventListener("change",this.asyncPollTrackChange);if(this.trackId>-1)this.queuedDefaultTrack=this.trackId;if(this.subtitleTrack=-1,this.media=null,X)return;f2(Q.textTracks).forEach((W)=>{z9(W)})}onManifestLoading(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(Y,Z){this.tracks=Z.subtitleTracks}onSubtitleTrackLoaded(Y,Z){let{id:Q,groupId:X,details:J}=Z,W=this.tracksInGroup[Q];if(!W||W.groupId!==X){this.warn(`Subtitle track with id:${Q} and group:${X} not found in active group ${W==null?void 0:W.groupId}`);return}let q=W.details;if(W.details=Z.details,this.log(`Subtitle track ${Q} "${W.name}" lang:${W.lang} group:${X} loaded [${J.startSN}-${J.endSN}]`),Q===this.trackId)this.playlistLoaded(Q,Z,q)}onLevelLoading(Y,Z){this.switchLevel(Z.level)}onLevelSwitching(Y,Z){this.switchLevel(Z.level)}switchLevel(Y){let Z=this.hls.levels[Y];if(!Z)return;let Q=Z.subtitleGroups||null,X=this.groupIds,J=this.currentTrack;if(!Q||(X==null?void 0:X.length)!==(Q==null?void 0:Q.length)||Q!=null&&Q.some((W)=>(X==null?void 0:X.indexOf(W))===-1)){this.groupIds=Q,this.trackId=-1,this.currentTrack=null;let W=this.tracks.filter((E)=>!Q||Q.indexOf(E.groupId)!==-1);if(W.length){if(this.selectDefaultTrack&&!W.some((E)=>E.default))this.selectDefaultTrack=!1;W.forEach((E,K)=>{E.id=K})}else if(!J&&!this.tracksInGroup.length)return;this.tracksInGroup=W;let q=this.hls.config.subtitlePreference;if(!J&&q){this.selectDefaultTrack=!1;let E=g8(q,W);if(E>-1)J=W[E];else{let K=g8(q,this.tracks);J=this.tracks[K]}}let z=this.findTrackId(J);if(z===-1&&J)z=this.findTrackId(null);let H={subtitleTracks:W};if(this.log(`Updating subtitle tracks, ${W.length} track(s) found in "${Q==null?void 0:Q.join(",")}" group-id`),this.hls.trigger(N.SUBTITLE_TRACKS_UPDATED,H),z!==-1&&this.trackId===-1)this.setSubtitleTrack(z)}}findTrackId(Y){let Z=this.tracksInGroup,Q=this.selectDefaultTrack;for(let X=0;X-1){let J=this.tracksInGroup[X];return this.setSubtitleTrack(X),J}else if(Q)return null;else{let J=g8(Y,Z);if(J>-1)return Z[J]}}}return null}loadPlaylist(Y){if(super.loadPlaylist(),this.shouldLoadPlaylist(this.currentTrack))this.scheduleLoading(this.currentTrack,Y)}loadingPlaylist(Y,Z){super.loadingPlaylist(Y,Z);let{id:Q,groupId:X}=Y,J=this.getUrlWithDirectives(Y.url,Z),W=Y.details,q=W==null?void 0:W.age;this.log(`Loading subtitle ${Q} "${Y.name}" lang:${Y.lang} group:${X}${(Z==null?void 0:Z.msn)!==void 0?" at sn "+Z.msn+" part "+Z.part:""}${q&&W.live?" age "+q.toFixed(1)+(W.type?" "+W.type||"":""):""} ${J}`),this.hls.trigger(N.SUBTITLE_TRACK_LOADING,{url:J,id:Q,groupId:X,deliveryDirectives:Z||null,track:Y})}toggleTrackModes(){let{media:Y}=this;if(!Y)return;let Z=f2(Y.textTracks),Q=this.currentTrack,X;if(Q){if(X=Z.filter((J)=>Qq(Q,J))[0],!X)this.warn(`Unable to find subtitle TextTrack with name "${Q.name}" and language "${Q.lang}"`)}if([].slice.call(Z).forEach((J)=>{if(J.mode!=="disabled"&&J!==X)J.mode="disabled"}),X){let J=this.subtitleDisplay?"showing":"hidden";if(X.mode!==J)X.mode=J}}setSubtitleTrack(Y){let Z=this.tracksInGroup;if(!this.media){this.queuedDefaultTrack=Y;return}if(Y<-1||Y>=Z.length||!r(Y)){this.warn(`Invalid subtitle track id: ${Y}`);return}this.selectDefaultTrack=!1;let Q=this.currentTrack,X=Z[Y]||null;if(this.trackId=Y,this.currentTrack=X,this.toggleTrackModes(),!X){this.hls.trigger(N.SUBTITLE_TRACK_SWITCH,{id:Y});return}let J=!!X.details&&!X.details.live;if(Y===this.trackId&&X===Q&&J)return;this.log(`Switching to subtitle-track ${Y}`+(X?` "${X.name}" lang:${X.lang} group:${X.groupId}`:""));let{id:W,groupId:q="",name:z,type:H,url:E}=X;this.hls.trigger(N.SUBTITLE_TRACK_SWITCH,{id:W,groupId:q,name:z,type:H,url:E});let K=this.switchParams(X.url,Q==null?void 0:Q.details,X.details);this.loadPlaylist(K)}}function Fj(){try{return crypto.randomUUID()}catch(Y){try{let Z=URL.createObjectURL(new Blob),Q=Z.toString();return URL.revokeObjectURL(Z),Q.slice(Q.lastIndexOf("/")+1)}catch(Z){let Q=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(J)=>{let W=(Q+Math.random()*16)%16|0;return Q=Math.floor(Q/16),(J=="x"?W:W&3|8).toString(16)})}}}function hY(Y){let Z=5381,Q=Y.length;while(Q)Z=Z*33^Y.charCodeAt(--Q);return(Z>>>0).toString()}var U9=0.025,l2=function(Y){return Y[Y.Point=0]="Point",Y[Y.Range=1]="Range",Y}({});function Rj(Y,Z,Q){return`${Y.identifier}-${Q+1}-${hY(Z)}`}class NK{constructor(Y,Z){this.base=void 0,this._duration=null,this._timelineStart=null,this.appendInPlaceDisabled=void 0,this.appendInPlaceStarted=void 0,this.dateRange=void 0,this.hasPlayed=!1,this.cumulativeDuration=0,this.resumeOffset=NaN,this.playoutLimit=NaN,this.restrictions={skip:!1,jump:!1},this.snapOptions={out:!1,in:!1},this.assetList=[],this.assetListLoader=void 0,this.assetListResponse=null,this.resumeAnchor=void 0,this.error=void 0,this.resetOnResume=void 0,this.base=Z,this.dateRange=Y,this.setDateRange(Y)}setDateRange(Y){this.dateRange=Y,this.resumeOffset=Y.attr.optionalFloat("X-RESUME-OFFSET",this.resumeOffset),this.playoutLimit=Y.attr.optionalFloat("X-PLAYOUT-LIMIT",this.playoutLimit),this.restrictions=Y.attr.enumeratedStringList("X-RESTRICT",this.restrictions),this.snapOptions=Y.attr.enumeratedStringList("X-SNAP",this.snapOptions)}reset(){var Y;if(this.appendInPlaceStarted=!1,(Y=this.assetListLoader)==null||Y.destroy(),this.assetListLoader=void 0,!this.supplementsPrimary)this.assetListResponse=null,this.assetList=[],this._duration=null}isAssetPastPlayoutLimit(Y){var Z;if(Y>0&&Y>=this.assetList.length)return!0;let Q=this.playoutLimit;if(Y<=0||isNaN(Q))return!1;if(Q===0)return!0;return(((Z=this.assetList[Y])==null?void 0:Z.startOffset)||0)>Q}findAssetIndex(Y){return this.assetList.indexOf(Y)}get identifier(){return this.dateRange.id}get startDate(){return this.dateRange.startDate}get startTime(){let Y=this.dateRange.startTime;if(this.snapOptions.out){let Z=this.dateRange.tagAnchor;if(Z)return fW(Y,Z)}return Y}get startOffset(){return this.cue.pre?0:this.startTime}get startIsAligned(){if(this.startTime===0||this.snapOptions.out)return!0;let Y=this.dateRange.tagAnchor;if(Y){let Z=this.dateRange.startTime,Q=fW(Z,Y);return Z-Q<0.1}return!1}get resumptionOffset(){let Y=this.resumeOffset,Z=r(Y)?Y:this.duration;return this.cumulativeDuration+Z}get resumeTime(){let Y=this.startOffset+this.resumptionOffset;if(this.snapOptions.in){let Z=this.resumeAnchor;if(Z)return fW(Y,Z)}return Y}get appendInPlace(){if(this.appendInPlaceStarted)return!0;if(this.appendInPlaceDisabled)return!1;if(!this.cue.once&&!this.cue.pre&&this.startIsAligned&&(isNaN(this.playoutLimit)&&isNaN(this.resumeOffset)||this.resumeOffset&&this.duration&&Math.abs(this.resumeOffset-this.duration)0||this.assetListResponse!==null}toString(){return Bj(this)}}function fW(Y,Z){return Y-Z.start":Y.cue.post?"":""}${Y.timelineStart.toFixed(2)}-${Y.resumeTime.toFixed(2)}]`}function H9(Y){let Z=Y.timelineStart,Q=Y.duration||0;return`["${Y.identifier}" ${Z.toFixed(2)}-${(Z+Q).toFixed(2)}]`}class LK{constructor(Y,Z,Q,X){this.hls=void 0,this.interstitial=void 0,this.assetItem=void 0,this.tracks=null,this.hasDetails=!1,this.mediaAttached=null,this._currentTime=void 0,this._bufferedEosTime=void 0,this.checkPlayout=()=>{if(this.reachedPlayout(this.currentTime)&&this.hls)this.hls.trigger(N.PLAYOUT_LIMIT_REACHED,{})};let J=this.hls=new Y(Z);this.interstitial=Q,this.assetItem=X;let W=()=>{this.hasDetails=!0};J.once(N.LEVEL_LOADED,W),J.once(N.AUDIO_TRACK_LOADED,W),J.once(N.SUBTITLE_TRACK_LOADED,W),J.on(N.MEDIA_ATTACHING,(q,{media:z})=>{if(this.removeMediaListeners(),this.mediaAttached=z,this.interstitial.playoutLimit){if(z.addEventListener("timeupdate",this.checkPlayout),this.appendInPlace)J.on(N.BUFFER_APPENDED,()=>{let E=this.bufferedEnd;if(this.reachedPlayout(E))this._bufferedEosTime=E,J.trigger(N.BUFFERED_TO_END,void 0)})}})}get appendInPlace(){return this.interstitial.appendInPlace}loadSource(){let Y=this.hls;if(!Y)return;if(!Y.url){let Z=this.assetItem.uri;try{Z=$K(Z,Y.config.primarySessionId||"").href}catch(Q){}Y.loadSource(Z)}else if(Y.levels.length&&!Y.started)Y.startLoad(-1,!0)}bufferedInPlaceToEnd(Y){var Z;if(!this.appendInPlace)return!1;if((Z=this.hls)!=null&&Z.bufferedToEnd)return!0;if(!Y)return!1;let Q=Math.min(this._bufferedEosTime||1/0,this.duration),X=this.timelineOffset,J=V0.bufferInfo(Y,X,0);return this.getAssetTime(J.end)>=Q-0.02}reachedPlayout(Y){let Q=this.interstitial.playoutLimit;return this.startOffset+Y>=Q}get destroyed(){var Y;return!((Y=this.hls)!=null&&Y.userConfig)}get assetId(){return this.assetItem.identifier}get interstitialId(){return this.assetItem.parentIdentifier}get media(){var Y;return((Y=this.hls)==null?void 0:Y.media)||null}get bufferedEnd(){let Y=this.media||this.mediaAttached;if(!Y){if(this._bufferedEosTime)return this._bufferedEosTime;return this.currentTime}let Z=V0.bufferInfo(Y,Y.currentTime,0.001);return this.getAssetTime(Z.end)}get currentTime(){let Y=this.media||this.mediaAttached;if(!Y)return this._currentTime||0;return this.getAssetTime(Y.currentTime)}get duration(){let Y=this.assetItem.duration;if(!Y)return 0;let Z=this.interstitial.playoutLimit;if(Z){let Q=Z-this.startOffset;if(Q>0&&Q0.000011111111111111112&&this.hls){if(this.hasDetails)throw Error("Cannot set timelineOffset after playlists are loaded");this.hls.config.timelineOffset=Y}}}getAssetTime(Y){let Z=this.timelineOffset,Q=this.duration;return Math.min(Math.max(0,Y-Z),Q)}removeMediaListeners(){let Y=this.mediaAttached;if(Y)this._currentTime=Y.currentTime,this.bufferSnapShot(),Y.removeEventListener("timeupdate",this.checkPlayout)}bufferSnapShot(){if(this.mediaAttached){var Y;if((Y=this.hls)!=null&&Y.bufferedToEnd)this._bufferedEosTime=this.bufferedEnd}}destroy(){if(this.removeMediaListeners(),this.hls)this.hls.destroy();this.hls=null,this.tracks=this.mediaAttached=this.checkPlayout=null}attachMedia(Y){var Z;this.loadSource(),(Z=this.hls)==null||Z.attachMedia(Y)}detachMedia(){var Y;this.removeMediaListeners(),this.mediaAttached=null,(Y=this.hls)==null||Y.detachMedia()}resumeBuffering(){var Y;(Y=this.hls)==null||Y.resumeBuffering()}pauseBuffering(){var Y;(Y=this.hls)==null||Y.pauseBuffering()}transferMedia(){var Y;return this.bufferSnapShot(),((Y=this.hls)==null?void 0:Y.transferMedia())||null}resetDetails(){let Y=this.hls;if(Y&&this.hasDetails){Y.stopLoad();let Z=(Q)=>delete Q.details;Y.levels.forEach(Z),Y.allAudioTracks.forEach(Z),Y.allSubtitleTracks.forEach(Z),this.hasDetails=!1}}on(Y,Z,Q){var X;(X=this.hls)==null||X.on(Y,Z)}once(Y,Z,Q){var X;(X=this.hls)==null||X.once(Y,Z)}off(Y,Z,Q){var X;(X=this.hls)==null||X.off(Y,Z)}toString(){var Y;return`HlsAssetPlayer: ${H9(this.assetItem)} ${(Y=this.hls)==null?void 0:Y.sessionId} ${this.appendInPlace?"append-in-place":""}`}}var $5=0.033;class OK extends d1{constructor(Y,Z){super("interstitials-sched",Z);this.onScheduleUpdate=void 0,this.eventMap={},this.events=null,this.items=null,this.durations={primary:0,playout:0,integrated:0},this.onScheduleUpdate=Y}destroy(){this.reset(),this.onScheduleUpdate=null}reset(){if(this.eventMap={},this.setDurations(0,0,0),this.events)this.events.forEach((Y)=>Y.reset());this.events=this.items=null}resetErrorsInRange(Y,Z){if(this.events)return this.events.reduce((Q,X)=>{if(Y<=X.startOffset&&Z>X.startOffset)return delete X.error,Q+1;return Q},0);return 0}get duration(){let Y=this.items;return Y?Y[Y.length-1].end:0}get length(){return this.items?this.items.length:0}getEvent(Y){return Y?this.eventMap[Y]||null:null}hasEvent(Y){return Y in this.eventMap}findItemIndex(Y,Z){if(Y.event)return this.findEventIndex(Y.event.identifier);let Q=-1;if(Y.nextEvent)Q=this.findEventIndex(Y.nextEvent.identifier)-1;else if(Y.previousEvent)Q=this.findEventIndex(Y.previousEvent.identifier)+1;let X=this.items;if(X){if(!X[Q]){if(Z===void 0)Z=Y.start;Q=this.findItemIndexAtTime(Z)}while(Q>=0&&(J=X[Q])!=null&&J.event){var J;Q--}}return Q}findItemIndexAtTime(Y,Z){let Q=this.items;if(Q)for(let X=0;XJ.start&&Y1)for(let J=0;Jq&&(Z!q.includes(H.identifier)):[];if(W.length)W.sort((H,E)=>{let K=H.cue.pre,G=H.cue.post,U=E.cue.pre,V=E.cue.post;if(K&&!U)return-1;if(U&&!K)return 1;if(G&&!V)return 1;if(V&&!G)return-1;if(!K&&!U&&!G&&!V){let F=H.startTime,R=E.startTime;if(F!==R)return F-R}return H.dateRange.tagOrder-E.dateRange.tagOrder});this.events=W,z.forEach((H)=>{this.removeEvent(H)}),this.updateSchedule(Y,z)}updateSchedule(Y,Z=[],Q=!1){let X=this.events||[];if(X.length||Z.length||this.length<2){let J=this.items,W=this.parseSchedule(X,Y);if(Q||Z.length||(J==null?void 0:J.length)!==W.length||W.some((z,H)=>{return Math.abs(z.playout.start-J[H].playout.start)>0.005||Math.abs(z.playout.end-J[H].playout.end)>0.005}))this.items=W,this.onScheduleUpdate(Z,J)}}parseDateRanges(Y,Z,Q){let X=[],J=Object.keys(Y);for(let W=0;W!z.error&&!(z.cue.once&&z.hasPlayed)),Y.length){this.resolveOffsets(Y,Z);let z=0,H=0;if(Y.forEach((E,K)=>{let G=E.cue.pre,U=E.cue.post,V=Y[K-1]||null,F=E.appendInPlace,R=U?J:E.startOffset,B=E.duration,$=E.timelineOccupancy===l2.Range?B:0,L=E.resumptionOffset,O=(V==null?void 0:V.startTime)===R,j=R+E.cumulativeDuration,w=F?j+B:R+L;if(G||!U&&R<=0){let M=H;H+=$,E.timelineStart=j;let C=W;W+=B,Q.push({event:E,start:j,end:w,playout:{start:C,end:W},integrated:{start:M,end:H}})}else if(R<=J){if(!O){let I=R-z;if(I>$5){let x=z,f=H;H+=I;let _=W;W+=I;let o={previousEvent:Y[K-1]||null,nextEvent:E,start:x,end:x+I,playout:{start:_,end:W},integrated:{start:f,end:H}};Q.push(o)}else if(I>0&&V)V.cumulativeDuration+=I,Q[Q.length-1].end=R}if(U)w=j;E.timelineStart=j;let M=H;H+=$;let C=W;W+=B,Q.push({event:E,start:j,end:w,playout:{start:C,end:W},integrated:{start:M,end:H}})}else return;let D=E.resumeTime;if(U||D>J)z=J;else z=D}),z{let H=q.cue.pre,E=q.cue.post,K=H?0:E?X:q.startTime;if(this.updateAssetDurations(q),W===K)q.cumulativeDuration=J;else J=0,W=K;if(!E&&q.snapOptions.in)q.resumeAnchor=j7(null,Q.fragments,q.startOffset+q.resumptionOffset,0,0)||void 0;if(q.appendInPlace&&!q.appendInPlaceStarted){if(!this.primaryCanResumeInPlaceAt(q,Z))q.appendInPlace=!1}if(!q.appendInPlace&&z+1U9)return this.log(`"${Y.identifier}" resumption ${Q} not aligned with estimated timeline end ${X}`),!1;return!Object.keys(Z).some((W)=>{let q=Z[W].details,z=q.edge;if(Q>=z)return this.log(`"${Y.identifier}" resumption ${Q} past ${W} playlist end ${z}`),!1;let H=j7(null,q.fragments,Q);if(!H)return this.log(`"${Y.identifier}" resumption ${Q} does not align with any fragments in ${W} playlist (${q.fragStart}-${q.fragmentEnd})`),!0;let E=W==="audio"?0.175:0;if(!(Math.abs(H.start-Q){let R=G.data,B=R==null?void 0:R.ASSETS;if(!Array.isArray(B)){let $=this.assignAssetListError(Y,h.ASSET_LIST_PARSING_ERROR,Error("Invalid interstitial asset list"),V.url,U,F);this.hls.trigger(N.ERROR,$);return}Y.assetListResponse=R,this.hls.trigger(N.ASSET_LIST_LOADED,{event:Y,assetListResponse:R,networkDetails:F})},onError:(G,U,V,F)=>{let R=this.assignAssetListError(Y,h.ASSET_LIST_LOAD_ERROR,Error(`Error loading X-ASSET-LIST: HTTP status ${G.code} ${G.text} (${U.url})`),U.url,F,V);this.hls.trigger(N.ERROR,R)},onTimeout:(G,U,V)=>{let F=this.assignAssetListError(Y,h.ASSET_LIST_LOAD_TIMEOUT,Error(`Timeout loading X-ASSET-LIST (${U.url})`),U.url,G,V);this.hls.trigger(N.ERROR,F)}};return q.load(z,E,K),this.hls.trigger(N.ASSET_LIST_LOADING,{event:Y}),q}assignAssetListError(Y,Z,Q,X,J,W){return Y.error=Q,{type:Y0.NETWORK_ERROR,details:Z,fatal:!1,interstitial:Y,url:X,error:Q,networkDetails:W,stats:J}}}function L5(Y){var Z;Y==null||(Z=Y.play())==null||Z.catch(()=>{})}function A2(Y,Z){return`[${Y}] Advancing timeline position to ${Z}`}class AK extends d1{constructor(Y,Z){super("interstitials",Y.logger);this.HlsPlayerClass=void 0,this.hls=void 0,this.assetListLoader=void 0,this.mediaSelection=null,this.altSelection=null,this.media=null,this.detachedData=null,this.requiredTracks=null,this.manager=null,this.playerQueue=[],this.bufferedPos=-1,this.timelinePos=-1,this.schedule=void 0,this.playingItem=null,this.bufferingItem=null,this.waitingItem=null,this.endedItem=null,this.playingAsset=null,this.endedAsset=null,this.bufferingAsset=null,this.shouldPlay=!1,this.onPlay=()=>{this.shouldPlay=!0},this.onPause=()=>{this.shouldPlay=!1},this.onSeeking=()=>{let Q=this.currentTime;if(Q===void 0||this.playbackDisabled||!this.schedule)return;let X=Q-this.timelinePos;if(Math.abs(X)<0.0000000014172335600907028)return;let W=X<=-0.01;this.timelinePos=Q,this.bufferedPos=Q;let q=this.playingItem;if(!q){this.checkBuffer();return}if(W){if(this.schedule.resetErrorsInRange(Q,Q-X))this.updateSchedule(!0)}if(this.checkBuffer(),W&&Q=q.end){var z;let U=this.findItemIndex(q),V=this.schedule.findItemIndexAtTime(Q);if(V===-1)V=U+(W?-1:1),this.log(`seeked ${W?"back ":""}to position not covered by schedule ${Q} (resolving from ${U} to ${V})`);if(!this.isInterstitial(q)&&(z=this.media)!=null&&z.paused)this.shouldPlay=!1;if(!W){if(V>U){let F=this.schedule.findJumpRestrictedIndex(U+1,V);if(F>U){this.setSchedulePosition(F);return}}}this.setSchedulePosition(V);return}let H=this.playingAsset;if(!H){if(this.playingLastItem&&this.isInterstitial(q)){let U=q.event.assetList[0];if(U)this.endedItem=this.playingItem,this.playingItem=null,this.setScheduleToAssetAtTime(Q,U)}return}let E=H.timelineStart,K=H.duration||0;if(W&&Q=E+K){var G;if((G=q.event)!=null&&G.appendInPlace)this.clearAssetPlayers(q.event,q),this.flushFrontBuffer(Q);this.setScheduleToAssetAtTime(Q,H)}},this.onTimeupdate=()=>{let Q=this.currentTime;if(Q===void 0||this.playbackDisabled)return;if(Q>this.timelinePos){if(this.timelinePos=Q,Q>this.bufferedPos)this.checkBuffer()}else return;let X=this.playingItem;if(!X||this.playingLastItem)return;if(Q>=X.end){this.timelinePos=X.end;let q=this.findItemIndex(X);this.setSchedulePosition(q+1)}let J=this.playingAsset;if(!J)return;let W=J.timelineStart+(J.duration||0);if(Q>=W)this.setScheduleToAssetAtTime(Q,J)},this.onScheduleUpdate=(Q,X)=>{let J=this.schedule;if(!J)return;let W=this.playingItem,q=J.events||[],z=J.items||[],H=J.durations,E=Q.map((F)=>F.identifier),K=!!(q.length||E.length);if(K||X)this.log(`INTERSTITIALS_UPDATED (${q.length}): ${q} Schedule: ${z.map((F)=>$8(F))} pos: ${this.timelinePos}`);if(E.length)this.log(`Removed events ${E}`);let G=null,U=null;if(W)if(G=this.updateItem(W,this.timelinePos),this.itemsMatch(W,G))this.playingItem=G;else this.waitingItem=this.endedItem=null;this.waitingItem=this.updateItem(this.waitingItem),this.endedItem=this.updateItem(this.endedItem);let V=this.bufferingItem;if(V){if(U=this.updateItem(V,this.bufferedPos),this.itemsMatch(V,U))this.bufferingItem=U;else if(V.event)this.bufferingItem=this.playingItem,this.clearInterstitial(V.event,null)}if(Q.forEach((F)=>{F.assetList.forEach((R)=>{this.clearAssetPlayer(R.identifier,null)})}),this.playerQueue.forEach((F)=>{if(F.interstitial.appendInPlace){let R=F.assetItem.timelineStart,B=F.timelineOffset-R;if(B)try{F.timelineOffset=R}catch($){if(Math.abs(B)>U9)this.warn(`${$} ("${F.assetId}" ${F.timelineOffset}->${R})`)}}}),K||X){if(this.hls.trigger(N.INTERSTITIALS_UPDATED,{events:q.slice(0),schedule:z.slice(0),durations:H,removedIds:E}),this.isInterstitial(W)&&E.includes(W.event.identifier)){this.warn(`Interstitial "${W.event.identifier}" removed while playing`),this.primaryFallback(W.event);return}if(W)this.trimInPlace(G,W);if(V&&U!==G)this.trimInPlace(U,V);this.checkBuffer()}},this.hls=Y,this.HlsPlayerClass=Z,this.assetListLoader=new jK(Y),this.schedule=new OK(this.onScheduleUpdate,Y.logger),this.registerListeners()}registerListeners(){let Y=this.hls;if(Y)Y.on(N.MEDIA_ATTACHING,this.onMediaAttaching,this),Y.on(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.on(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.LEVEL_UPDATED,this.onLevelUpdated,this),Y.on(N.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),Y.on(N.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),Y.on(N.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),Y.on(N.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),Y.on(N.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),Y.on(N.ASSET_LIST_LOADED,this.onAssetListLoaded,this),Y.on(N.BUFFER_APPENDED,this.onBufferAppended,this),Y.on(N.BUFFER_FLUSHED,this.onBufferFlushed,this),Y.on(N.BUFFERED_TO_END,this.onBufferedToEnd,this),Y.on(N.MEDIA_ENDED,this.onMediaEnded,this),Y.on(N.ERROR,this.onError,this),Y.on(N.DESTROYING,this.onDestroying,this)}unregisterListeners(){let Y=this.hls;if(Y)Y.off(N.MEDIA_ATTACHING,this.onMediaAttaching,this),Y.off(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.off(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.LEVEL_UPDATED,this.onLevelUpdated,this),Y.off(N.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),Y.off(N.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),Y.off(N.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),Y.off(N.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),Y.off(N.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),Y.off(N.ASSET_LIST_LOADED,this.onAssetListLoaded,this),Y.off(N.BUFFER_CODECS,this.onBufferCodecs,this),Y.off(N.BUFFER_APPENDED,this.onBufferAppended,this),Y.off(N.BUFFER_FLUSHED,this.onBufferFlushed,this),Y.off(N.BUFFERED_TO_END,this.onBufferedToEnd,this),Y.off(N.MEDIA_ENDED,this.onMediaEnded,this),Y.off(N.ERROR,this.onError,this),Y.off(N.DESTROYING,this.onDestroying,this)}startLoad(){this.resumeBuffering()}stopLoad(){this.pauseBuffering()}resumeBuffering(){var Y;(Y=this.getBufferingPlayer())==null||Y.resumeBuffering()}pauseBuffering(){var Y;(Y=this.getBufferingPlayer())==null||Y.pauseBuffering()}destroy(){if(this.unregisterListeners(),this.stopLoad(),this.assetListLoader)this.assetListLoader.destroy();if(this.emptyPlayerQueue(),this.clearScheduleState(),this.schedule)this.schedule.destroy();this.media=this.detachedData=this.mediaSelection=this.requiredTracks=this.altSelection=this.schedule=this.manager=null,this.hls=this.HlsPlayerClass=this.log=null,this.assetListLoader=null,this.onPlay=this.onPause=this.onSeeking=this.onTimeupdate=null,this.onScheduleUpdate=null}onDestroying(){let Y=this.primaryMedia||this.media;if(Y)this.removeMediaListeners(Y)}removeMediaListeners(Y){k1(Y,"play",this.onPlay),k1(Y,"pause",this.onPause),k1(Y,"seeking",this.onSeeking),k1(Y,"timeupdate",this.onTimeupdate)}onMediaAttaching(Y,Z){let Q=this.media=Z.media;I1(Q,"seeking",this.onSeeking),I1(Q,"timeupdate",this.onTimeupdate),I1(Q,"play",this.onPlay),I1(Q,"pause",this.onPause)}onMediaAttached(Y,Z){let Q=this.effectivePlayingItem,X=this.detachedData;if(this.detachedData=null,Q===null)this.checkStart();else if(!X){this.clearScheduleState();let J=this.findItemIndex(Q);this.setSchedulePosition(J)}}clearScheduleState(){this.log("clear schedule state"),this.playingItem=this.bufferingItem=this.waitingItem=this.endedItem=this.playingAsset=this.endedAsset=this.bufferingAsset=null}onMediaDetaching(Y,Z){let Q=!!Z.transferMedia,X=this.media;if(this.media=null,Q)return;if(X)this.removeMediaListeners(X);if(this.detachedData){let J=this.getBufferingPlayer();if(J)this.log(`Removing schedule state for detachedData and ${J}`),this.playingAsset=this.endedAsset=this.bufferingAsset=this.bufferingItem=this.waitingItem=this.detachedData=null,J.detachMedia();this.shouldPlay=!1}}get interstitialsManager(){if(!this.hls)return null;if(this.manager)return this.manager;let Y=this,Z=()=>Y.bufferingItem||Y.waitingItem,Q=(K)=>K?Y.getAssetPlayer(K.identifier):K,X=(K,G,U,V,F)=>{if(K){let R=K[G].start,B=K.event;if(B){if(G==="playout"||B.timelineOccupancy!==l2.Point){let $=Q(U);if(($==null?void 0:$.interstitial)===B)R+=$.assetItem.startOffset+$[F]}}else{let $=V==="bufferedPos"?W():Y[V];R+=$-K.start}return R}return 0},J=(K,G)=>{var U;if(K!==0&&G!=="primary"&&(U=Y.schedule)!=null&&U.length){var V;let F=Y.schedule.findItemIndexAtTime(K),R=(V=Y.schedule.items)==null?void 0:V[F];if(R){let B=R[G].start-R.start;return K+B}}return K},W=()=>{let K=Y.bufferedPos;if(K===Number.MAX_VALUE)return q("primary");return Math.max(K,0)},q=(K)=>{var G,U;if((G=Y.primaryDetails)!=null&&G.live)return Y.primaryDetails.edge;return((U=Y.schedule)==null?void 0:U.durations[K])||0},z=(K,G)=>{var U,V;let F=Y.effectivePlayingItem;if(F!=null&&(U=F.event)!=null&&U.restrictions.skip||!Y.schedule)return;Y.log(`seek to ${K} "${G}"`);let R=Y.effectivePlayingItem,B=Y.schedule.findItemIndexAtTime(K,G),$=(V=Y.schedule.items)==null?void 0:V[B],L=Y.getBufferingPlayer(),O=L==null?void 0:L.interstitial,j=O==null?void 0:O.appendInPlace,w=R&&Y.itemsMatch(R,$);if(R&&(j||w)){let D=Q(Y.playingAsset),M=(D==null?void 0:D.media)||Y.primaryMedia;if(M){let C=G==="primary"?M.currentTime:X(R,G,Y.playingAsset,"timelinePos","currentTime"),I=K-C,x=(j?C:M.currentTime)+I;if(x>=0&&(!D||j||x<=D.duration)){M.currentTime=x;return}}}if($){let D=K;if(G!=="primary"){let C=$[G].start,I=K-C;D=$.start+I}let M=!Y.isInterstitial($);if((!Y.isInterstitial(R)||R.event.appendInPlace)&&(M||$.event.appendInPlace)){let C=Y.media||(j?L==null?void 0:L.media:null);if(C)C.currentTime=D}else if(R){let C=Y.findItemIndex(R);if(B>C){let x=Y.schedule.findJumpRestrictedIndex(C+1,B);if(x>C){Y.setSchedulePosition(x);return}}let I=0;if(M)Y.timelinePos=D,Y.checkBuffer();else{let x=$.event.assetList,f=K-($[G]||$).start;for(let _=x.length;_--;){let o=x[_];if(o.duration&&f>=o.startOffset&&f{let K=Y.effectivePlayingItem;if(Y.isInterstitial(K))return K;let G=Z();if(Y.isInterstitial(G))return G;return null},E={get bufferedEnd(){let K=Z(),G=Y.bufferingItem;if(G&&G===K){var U;return X(G,"playout",Y.bufferingAsset,"bufferedPos","bufferedEnd")-G.playout.start||((U=Y.bufferingAsset)==null?void 0:U.startOffset)||0}return 0},get currentTime(){let K=H(),G=Y.effectivePlayingItem;if(G&&G===K)return X(G,"playout",Y.effectivePlayingAsset,"timelinePos","currentTime")-G.playout.start;return 0},set currentTime(K){let G=H(),U=Y.effectivePlayingItem;if(U&&U===G)z(K+U.playout.start,"playout")},get duration(){let K=H();if(K)return K.playout.end-K.playout.start;return 0},get assetPlayers(){var K;let G=(K=H())==null?void 0:K.event.assetList;if(G)return G.map((U)=>Y.getAssetPlayer(U.identifier));return[]},get playingIndex(){var K;let G=(K=H())==null?void 0:K.event;if(G&&Y.effectivePlayingAsset)return G.findAssetIndex(Y.effectivePlayingAsset);return-1},get scheduleItem(){return H()}};return this.manager={get events(){var K;return((K=Y.schedule)==null||(K=K.events)==null?void 0:K.slice(0))||[]},get schedule(){var K;return((K=Y.schedule)==null||(K=K.items)==null?void 0:K.slice(0))||[]},get interstitialPlayer(){if(H())return E;return null},get playerQueue(){return Y.playerQueue.slice(0)},get bufferingAsset(){return Y.bufferingAsset},get bufferingItem(){return Z()},get bufferingIndex(){let K=Z();return Y.findItemIndex(K)},get playingAsset(){return Y.effectivePlayingAsset},get playingItem(){return Y.effectivePlayingItem},get playingIndex(){let K=Y.effectivePlayingItem;return Y.findItemIndex(K)},primary:{get bufferedEnd(){return W()},get currentTime(){let K=Y.timelinePos;return K>0?K:0},set currentTime(K){z(K,"primary")},get duration(){return q("primary")},get seekableStart(){var K;return((K=Y.primaryDetails)==null?void 0:K.fragmentStart)||0}},integrated:{get bufferedEnd(){return X(Z(),"integrated",Y.bufferingAsset,"bufferedPos","bufferedEnd")},get currentTime(){return X(Y.effectivePlayingItem,"integrated",Y.effectivePlayingAsset,"timelinePos","currentTime")},set currentTime(K){z(K,"integrated")},get duration(){return q("integrated")},get seekableStart(){var K;return J(((K=Y.primaryDetails)==null?void 0:K.fragmentStart)||0,"integrated")}},skip:()=>{let K=Y.effectivePlayingItem,G=K==null?void 0:K.event;if(G&&!G.restrictions.skip){let U=Y.findItemIndex(K);if(G.appendInPlace){let V=K.playout.start+K.event.duration;z(V+0.001,"playout")}else Y.advanceAfterAssetEnded(G,U,1/0)}}}}get effectivePlayingItem(){return this.waitingItem||this.playingItem||this.endedItem}get effectivePlayingAsset(){return this.playingAsset||this.endedAsset}get playingLastItem(){var Y;let Z=this.playingItem,Q=(Y=this.schedule)==null?void 0:Y.items;if(!this.playbackStarted||!Z||!Q)return!1;return this.findItemIndex(Z)===Q.length-1}get playbackStarted(){return this.effectivePlayingItem!==null}get currentTime(){var Y,Z;if(this.mediaSelection===null)return;let Q=this.waitingItem||this.playingItem;if(this.isInterstitial(Q)&&!Q.event.appendInPlace)return;let X=this.media;if(!X&&(Y=this.bufferingItem)!=null&&(Y=Y.event)!=null&&Y.appendInPlace)X=this.primaryMedia;let J=(Z=X)==null?void 0:Z.currentTime;if(J===void 0||!r(J))return;return J}get primaryMedia(){var Y;return this.media||((Y=this.detachedData)==null?void 0:Y.media)||null}isInterstitial(Y){return!!(Y!=null&&Y.event)}retreiveMediaSource(Y,Z){let Q=this.getAssetPlayer(Y);if(Q)this.transferMediaFromPlayer(Q,Z)}transferMediaFromPlayer(Y,Z){let Q=Y.interstitial.appendInPlace,X=Y.media;if(Q&&X===this.primaryMedia){if(this.bufferingAsset=null,!Z||this.isInterstitial(Z)&&!Z.event.appendInPlace){if(Z&&X){this.detachedData={media:X};return}}let J=Y.transferMedia();this.log(`transfer MediaSource from ${Y} ${_0(J)}`),this.detachedData=J}else if(Z&&X)this.shouldPlay||(this.shouldPlay=!X.paused)}transferMediaTo(Y,Z){var Q,X;if(Y.media===Z)return;let J=null,W=this.hls,q=Y!==W,z=q&&Y.interstitial.appendInPlace,H=(Q=this.detachedData)==null?void 0:Q.mediaSource,E;if(W.media){if(z)J=W.transferMedia(),this.detachedData=J;E="Primary"}else if(H){let V=this.getBufferingPlayer();if(V)J=V.transferMedia(),E=`${V}`;else E="detached MediaSource"}else E="detached media";if(!J){if(H)J=this.detachedData,this.log(`using detachedData: MediaSource ${_0(J)}`);else if(!this.detachedData||W.media===Z){let V=this.playerQueue;if(V.length>1)V.forEach((F)=>{if(q&&F.interstitial.appendInPlace!==z){let R=F.interstitial;if(this.clearInterstitial(F.interstitial,null),R.appendInPlace=!1,R.appendInPlace)this.warn(`Could not change append strategy for queued assets ${R}`)}});this.hls.detachMedia(),this.detachedData={media:Z}}}let K=J&&"mediaSource"in J&&((X=J.mediaSource)==null?void 0:X.readyState)!=="closed",G=K&&J?J:Z;this.log(`${K?"transfering MediaSource":"attaching media"} to ${q?Y:"Primary"} from ${E} (media.currentTime: ${Z.currentTime})`);let U=this.schedule;if(G===J&&U){let V=q&&Y.assetId===U.assetIdAtEnd;G.overrides={duration:U.duration,endOfStream:!q||V,cueRemoval:!q}}Y.attachMedia(G)}onInterstitialCueEnter(){this.onTimeupdate()}checkStart(){let Y=this.schedule,Z=Y==null?void 0:Y.events;if(!Z||this.playbackDisabled||!this.media)return;if(this.bufferedPos===-1)this.bufferedPos=0;let Q=this.timelinePos,X=this.effectivePlayingItem;if(Q===-1){let J=this.hls.startPosition;if(this.log(A2("checkStart",J)),this.timelinePos=J,Z.length&&Z[0].cue.pre){let W=Y.findEventIndex(Z[0].identifier);this.setSchedulePosition(W)}else if(J>=0||!this.primaryLive){let W=this.timelinePos=J>0?J:0,q=Y.findItemIndexAtTime(W);this.setSchedulePosition(q)}}else if(X&&!this.playingItem){let J=Y.findItemIndex(X);this.setSchedulePosition(J)}}advanceAssetBuffering(Y,Z){let Q=Y.event,X=Q.findAssetIndex(Z),J=yW(Q,X);if(!Q.isAssetPastPlayoutLimit(J))this.bufferedToEvent(Y,J);else if(this.schedule){var W;let q=(W=this.schedule.items)==null?void 0:W[this.findItemIndex(Y)+1];if(q)this.bufferedToItem(q)}}advanceAfterAssetEnded(Y,Z,Q){let X=yW(Y,Q);if(!Y.isAssetPastPlayoutLimit(X)){if(Y.appendInPlace){let J=Y.assetList[X];if(J)this.advanceInPlace(J.timelineStart)}this.setSchedulePosition(Z,X)}else if(this.schedule){let J=this.schedule.items;if(J){let W=Z+1,q=J.length;if(W>=q){this.setSchedulePosition(-1);return}let z=Y.resumeTime;if(this.timelinePos=0?X[Y]:null;this.log(`setSchedulePosition ${Y}, ${Z} (${J?$8(J):J}) pos: ${this.timelinePos}`);let W=this.waitingItem||this.playingItem,q=this.playingLastItem;if(this.isInterstitial(W)){let E=W.event,K=this.playingAsset,G=K==null?void 0:K.identifier,U=G?this.getAssetPlayer(G):null;if(U&&G&&(!this.eventItemsMatch(W,J)||Z!==void 0&&G!==E.assetList[Z].identifier)){var z;let V=E.findAssetIndex(K);if(this.log(`INTERSTITIAL_ASSET_ENDED ${V+1}/${E.assetList.length} ${H9(K)}`),this.endedAsset=K,this.playingAsset=null,this.hls.trigger(N.INTERSTITIAL_ASSET_ENDED,{asset:K,assetListIndex:V,event:E,schedule:X.slice(0),scheduleIndex:Y,player:U}),W!==this.playingItem){if(this.itemsMatch(W,this.playingItem)&&!this.playingAsset)this.advanceAfterAssetEnded(E,this.findItemIndex(this.playingItem),V);return}if(this.retreiveMediaSource(G,J),U.media&&!((z=this.detachedData)!=null&&z.mediaSource))U.detachMedia()}if(!this.eventItemsMatch(W,J)){if(this.endedItem=W,this.playingItem=null,this.log(`INTERSTITIAL_ENDED ${E} ${$8(W)}`),E.hasPlayed=!0,this.hls.trigger(N.INTERSTITIAL_ENDED,{event:E,schedule:X.slice(0),scheduleIndex:Y}),E.cue.once){var H;this.updateSchedule();let V=(H=this.schedule)==null?void 0:H.items;if(J&&V){let F=this.findItemIndex(J);this.advanceSchedule(F,V,Z,W,q)}return}}}this.advanceSchedule(Y,X,Z,W,q)}advanceSchedule(Y,Z,Q,X,J){let W=this.schedule;if(!W)return;let q=Z[Y]||null,z=this.primaryMedia,H=this.playerQueue;if(H.length)H.forEach((E)=>{let K=E.interstitial,G=W.findEventIndex(K.identifier);if(GY+1)this.clearInterstitial(K,q)});if(this.isInterstitial(q)){this.timelinePos=Math.min(Math.max(this.timelinePos,q.start),q.end);let E=q.event;if(Q===void 0){Q=W.findAssetIndex(E,this.timelinePos);let V=yW(E,Q-1);if(E.isAssetPastPlayoutLimit(V)||E.appendInPlace&&this.timelinePos===q.end){this.advanceAfterAssetEnded(E,Y,Q);return}Q=V}let K=this.waitingItem;if(!this.assetsBuffered(q,z))this.setBufferingItem(q);let G=this.preloadAssets(E,Q);if(!this.eventItemsMatch(q,K||X))this.waitingItem=q,this.log(`INTERSTITIAL_STARTED ${$8(q)} ${E.appendInPlace?"append in place":""}`),this.hls.trigger(N.INTERSTITIAL_STARTED,{event:E,schedule:Z.slice(0),scheduleIndex:Y});if(!E.assetListLoaded){this.log(`Waiting for ASSET-LIST to complete loading ${E}`);return}if(E.assetListLoader)E.assetListLoader.destroy(),E.assetListLoader=void 0;if(!z){this.log(`Waiting for attachMedia to start Interstitial ${E}`);return}this.waitingItem=this.endedItem=null,this.playingItem=q;let U=E.assetList[Q];if(!U){this.advanceAfterAssetEnded(E,Y,Q||0);return}if(!G)G=this.getAssetPlayer(U.identifier);if(G===null||G.destroyed){let V=E.assetList.length;this.warn(`asset ${Q+1}/${V} player destroyed ${E}`),G=this.createAssetPlayer(E,U,Q),G.loadSource()}if(!this.eventItemsMatch(q,this.bufferingItem)){if(E.appendInPlace&&this.isAssetBuffered(U))return}if(this.startAssetPlayer(G,Q,Z,Y,z),this.shouldPlay)L5(G.media)}else if(q){if(this.resumePrimary(q,Y,X),this.shouldPlay)L5(this.hls.media)}else if(J&&this.isInterstitial(X)){if(this.endedItem=null,this.playingItem=X,!X.event.appendInPlace)this.attachPrimary(W.durations.primary,null)}}get playbackDisabled(){return this.hls.config.enableInterstitialPlayback===!1}get primaryDetails(){var Y;return(Y=this.mediaSelection)==null?void 0:Y.main.details}get primaryLive(){var Y;return!!((Y=this.primaryDetails)!=null&&Y.live)}resumePrimary(Y,Z,Q){var X,J;if(this.playingItem=Y,this.playingAsset=this.endedAsset=null,this.waitingItem=this.endedItem=null,this.bufferedToItem(Y),this.log(`resuming ${$8(Y)}`),!((X=this.detachedData)!=null&&X.mediaSource)){let q=this.timelinePos;if(q=Y.end)q=this.getPrimaryResumption(Y,Z),this.log(A2("resumePrimary",q)),this.timelinePos=q;this.attachPrimary(q,Y)}if(!Q)return;let W=(J=this.schedule)==null?void 0:J.items;if(!W)return;this.log(`INTERSTITIALS_PRIMARY_RESUMED ${$8(Y)}`),this.hls.trigger(N.INTERSTITIALS_PRIMARY_RESUMED,{schedule:W.slice(0),scheduleIndex:Z}),this.checkBuffer()}getPrimaryResumption(Y,Z){let Q=Y.start;if(this.primaryLive){let X=this.primaryDetails;if(Z===0)return this.hls.startPosition;else if(X&&(QX.edge))return this.hls.liveSyncPosition||-1}return Q}isAssetBuffered(Y){let Z=this.getAssetPlayer(Y.identifier);if(Z!=null&&Z.hls)return Z.hls.bufferedToEnd;return V0.bufferInfo(this.primaryMedia,this.timelinePos,0).end+1>=Y.timelineStart+(Y.duration||0)}attachPrimary(Y,Z,Q){if(Z)this.setBufferingItem(Z);else this.bufferingItem=this.playingItem;this.bufferingAsset=null;let X=this.primaryMedia;if(!X)return;let J=this.hls;if(J.media)this.checkBuffer();else if(this.transferMediaTo(J,X),Q)this.startLoadingPrimaryAt(Y,Q);if(!Q)this.log(A2("attachPrimary",Y)),this.timelinePos=Y,this.startLoadingPrimaryAt(Y,Q)}startLoadingPrimaryAt(Y,Z){var Q;let X=this.hls;if(!X.loadingEnabled||!X.media||Math.abs((((Q=X.mainForwardBufferInfo)==null?void 0:Q.start)||X.media.currentTime)-Y)>0.5)X.startLoad(Y,Z);else if(!X.bufferingEnabled)X.resumeBuffering()}onManifestLoading(){var Y;this.stopLoad(),(Y=this.schedule)==null||Y.reset(),this.emptyPlayerQueue(),this.clearScheduleState(),this.shouldPlay=!1,this.bufferedPos=this.timelinePos=-1,this.mediaSelection=this.altSelection=this.manager=this.requiredTracks=null,this.hls.off(N.BUFFER_CODECS,this.onBufferCodecs,this),this.hls.on(N.BUFFER_CODECS,this.onBufferCodecs,this)}onLevelUpdated(Y,Z){if(Z.level===-1||!this.schedule)return;let Q=this.hls.levels[Z.level];if(!Q.details)return;let X=I0(I0({},this.mediaSelection||this.altSelection),{},{main:Q});if(this.mediaSelection=X,this.schedule.parseInterstitialDateRanges(X,this.hls.config.interstitialAppendInPlace),!this.effectivePlayingItem&&this.schedule.items)this.checkStart()}onAudioTrackUpdated(Y,Z){let Q=this.hls.audioTracks[Z.id],X=this.mediaSelection;if(!X){this.altSelection=I0(I0({},this.altSelection),{},{audio:Q});return}let J=I0(I0({},X),{},{audio:Q});this.mediaSelection=J}onSubtitleTrackUpdated(Y,Z){let Q=this.hls.subtitleTracks[Z.id],X=this.mediaSelection;if(!X){this.altSelection=I0(I0({},this.altSelection),{},{subtitles:Q});return}let J=I0(I0({},X),{},{subtitles:Q});this.mediaSelection=J}onAudioTrackSwitching(Y,Z){let Q=I3(Z);this.playerQueue.forEach(({hls:X})=>X&&(X.setAudioOption(Z)||X.setAudioOption(Q)))}onSubtitleTrackSwitch(Y,Z){let Q=I3(Z);this.playerQueue.forEach(({hls:X})=>X&&(X.setSubtitleOption(Z)||Z.id!==-1&&X.setSubtitleOption(Q)))}onBufferCodecs(Y,Z){let Q=Z.tracks;if(Q)this.requiredTracks=Q}onBufferAppended(Y,Z){this.checkBuffer()}onBufferFlushed(Y,Z){let Q=this.playingItem;if(Q&&!this.itemsMatch(Q,this.bufferingItem)&&!this.isInterstitial(Q)){let X=this.timelinePos;this.bufferedPos=X,this.checkBuffer()}}onBufferedToEnd(Y){if(!this.schedule)return;let Z=this.schedule.events;if(this.bufferedPos0.25){Y.event.assetList.forEach((J,W)=>{if(Y.event.isAssetPastPlayoutLimit(W))this.clearAssetPlayer(J.identifier,null)});let Q=Y.end+0.25,X=V0.bufferInfo(this.primaryMedia,Q,0);if(X.end>Q||(X.nextStart||0)>Q){this.log(`trim buffered interstitial ${$8(Y)} (was ${$8(Z)})`);let J=!0;this.attachPrimary(Q,null,J),this.flushFrontBuffer(Q)}}}itemsMatch(Y,Z){return!!Z&&(Y===Z||Y.event&&Z.event&&this.eventItemsMatch(Y,Z)||!Y.event&&!Z.event&&this.findItemIndex(Y)===this.findItemIndex(Z))}eventItemsMatch(Y,Z){var Q;return!!Z&&(Y===Z||Y.event.identifier===((Q=Z.event)==null?void 0:Q.identifier))}findItemIndex(Y,Z){return Y&&this.schedule?this.schedule.findItemIndex(Y,Z):-1}updateSchedule(Y=!1){var Z;let Q=this.mediaSelection;if(!Q)return;(Z=this.schedule)==null||Z.updateSchedule(Q,[],Y)}checkBuffer(Y){var Z;let Q=(Z=this.schedule)==null?void 0:Z.items;if(!Q)return;let X=V0.bufferInfo(this.primaryMedia,this.timelinePos,0);if(Y)this.bufferedPos=this.timelinePos;Y||(Y=X.len<1),this.updateBufferedPos(X.end,Q,Y)}updateBufferedPos(Y,Z,Q){let X=this.schedule,J=this.bufferingItem;if(this.bufferedPos>Y||!X)return;if(Z.length===1&&this.itemsMatch(Z[0],J)){this.bufferedPos=Y;return}let W=this.playingItem,q=this.findItemIndex(W),z=X.findItemIndexAtTime(Y);if(this.bufferedPos=J.end||(H=G.event)!=null&&H.appendInPlace&&Y+0.01>=G.start)z=K;if(this.isInterstitial(J)){let U=J.event;if(K-q>1&&U.appendInPlace===!1)return;if(U.assetList.length===0&&U.assetListLoader)return}if(this.bufferedPos=Y,z>E&&z>q)this.bufferedToItem(G);else{let U=this.primaryDetails;if(this.primaryLive&&U&&Y>U.edge-U.targetduration&&G.start{let J=this.getAssetPlayer(X.identifier);return!(J!=null&&J.bufferedInPlaceToEnd(Z))})}setBufferingItem(Y){let Z=this.bufferingItem,Q=this.schedule;if(!this.itemsMatch(Y,Z)&&Q){let{items:X,events:J}=Q;if(!X||!J)return Z;let W=this.isInterstitial(Y),q=this.getBufferingPlayer();this.bufferingItem=Y,this.bufferedPos=Math.max(Y.start,Math.min(Y.end,this.timelinePos));let z=q?q.remaining:Z?Z.end-this.timelinePos:0;if(this.log(`INTERSTITIALS_BUFFERED_TO_BOUNDARY ${$8(Y)}`+(Z?` (${z.toFixed(2)} remaining)`:"")),!this.playbackDisabled)if(W){let H=Q.findAssetIndex(Y.event,this.bufferedPos);Y.event.assetList.forEach((E,K)=>{let G=this.getAssetPlayer(E.identifier);if(G){if(K===H)G.loadSource();G.resumeBuffering()}})}else this.hls.resumeBuffering(),this.playerQueue.forEach((H)=>H.pauseBuffering());this.hls.trigger(N.INTERSTITIALS_BUFFERED_TO_BOUNDARY,{events:J.slice(0),schedule:X.slice(0),bufferingIndex:this.findItemIndex(Y),playingIndex:this.findItemIndex(this.playingItem)})}else if(this.bufferingItem!==Y)this.bufferingItem=Y;return Z}bufferedToItem(Y,Z=0){let Q=this.setBufferingItem(Y);if(this.playbackDisabled)return;if(this.isInterstitial(Y))this.bufferedToEvent(Y,Z);else if(Q!==null){this.bufferingAsset=null;let X=this.detachedData;if(X)if(X.mediaSource)this.attachPrimary(Y.start,Y,!0);else this.preloadPrimary(Y);else this.preloadPrimary(Y)}}preloadPrimary(Y){let Z=this.findItemIndex(Y),Q=this.getPrimaryResumption(Y,Z);this.startLoadingPrimaryAt(Q)}bufferedToEvent(Y,Z){let Q=Y.event,X=Q.assetList.length===0&&!Q.assetListLoader,J=Q.cue.once;if(X||!J){let W=this.preloadAssets(Q,Z);if(W!=null&&W.interstitial.appendInPlace){let q=this.primaryMedia;if(q)this.bufferAssetPlayer(W,q)}}}preloadAssets(Y,Z){let Q=Y.assetUrl,X=Y.assetList.length,J=X===0&&!Y.assetListLoader,W=Y.cue.once;if(J){let z=Y.timelineStart;if(Y.appendInPlace){var q;let G=this.playingItem;if(!this.isInterstitial(G)&&(G==null||(q=G.nextEvent)==null?void 0:q.identifier)===Y.identifier)this.flushFrontBuffer(z+0.25)}let H,E=0;if(!this.playingItem&&this.primaryLive){if(E=this.hls.startPosition,E===-1)E=this.hls.liveSyncPosition||0}if(E&&!(Y.cue.pre||Y.cue.post)){let G=E-z;if(G>0)H=Math.round(G*1000)/1000}if(this.log(`Load interstitial asset ${Z+1}/${Q?1:X} ${Y}${H?` live-start: ${E} start-offset: ${H}`:""}`),Q)return this.createAsset(Y,0,0,z,Y.duration,Q);let K=this.assetListLoader.loadAssetList(Y,H);if(K)Y.assetListLoader=K}else if(!W&&X){for(let H=Z;H{this.hls.trigger(N.BUFFER_FLUSHING,{startOffset:Y,endOffset:1/0,type:X})})}getAssetPlayerQueueIndex(Y){let Z=this.playerQueue;for(let Q=0;Q1){let j=Z.duration;if(j&&O{if(O.live){var j;let M=Error(`Interstitials MUST be VOD assets ${Y}`),C={fatal:!0,type:Y0.OTHER_ERROR,details:h.INTERSTITIAL_ASSET_ITEM_ERROR,error:M},I=((j=this.schedule)==null?void 0:j.findEventIndex(Y.identifier))||-1;this.handleAssetItemError(C,Y,I,Q,M.message);return}let w=O.edge-O.fragmentStart,D=Z.duration;if(F||D===null||w>D)F=!1,this.log(`Interstitial asset "${K}" duration change ${D} > ${w}`),Z.duration=w,this.updateSchedule()};V.on(N.LEVEL_UPDATED,(O,{details:j})=>R(j)),V.on(N.LEVEL_PTS_UPDATED,(O,{details:j})=>R(j)),V.on(N.EVENT_CUE_ENTER,()=>this.onInterstitialCueEnter());let B=(O,j)=>{let w=this.getAssetPlayer(K);if(w&&j.tracks){w.off(N.BUFFER_CODECS,B),w.tracks=j.tracks;let D=this.primaryMedia;if(this.bufferingAsset===w.assetItem&&D&&!w.media)this.bufferAssetPlayer(w,D)}};V.on(N.BUFFER_CODECS,B);let $=()=>{var O;let j=this.getAssetPlayer(K);if(this.log(`buffered to end of asset ${j}`),!j||!this.schedule)return;let w=this.schedule.findEventIndex(Y.identifier),D=(O=this.schedule.items)==null?void 0:O[w];if(this.isInterstitial(D))this.advanceAssetBuffering(D,Z)};V.on(N.BUFFERED_TO_END,$);let L=(O)=>{return()=>{if(!this.getAssetPlayer(K)||!this.schedule)return;this.shouldPlay=!0;let w=this.schedule.findEventIndex(Y.identifier);this.advanceAfterAssetEnded(Y,w,O)}};return V.once(N.MEDIA_ENDED,L(Q)),V.once(N.PLAYOUT_LIMIT_REACHED,L(1/0)),V.on(N.ERROR,(O,j)=>{if(!this.schedule)return;let w=this.getAssetPlayer(K);if(j.details===h.BUFFER_STALLED_ERROR){if(w!=null&&w.appendInPlace){this.handleInPlaceStall(Y);return}this.onTimeupdate(),this.checkBuffer(!0);return}this.handleAssetItemError(j,Y,this.schedule.findEventIndex(Y.identifier),Q,`Asset player error ${j.error} ${Y}`)}),V.on(N.DESTROYING,()=>{if(!this.getAssetPlayer(K)||!this.schedule)return;let j=Error(`Asset player destroyed unexpectedly ${K}`),w={fatal:!0,type:Y0.OTHER_ERROR,details:h.INTERSTITIAL_ASSET_ITEM_ERROR,error:j};this.handleAssetItemError(w,Y,this.schedule.findEventIndex(Y.identifier),Q,j.message)}),this.log(`INTERSTITIAL_ASSET_PLAYER_CREATED ${H9(Z)}`),this.hls.trigger(N.INTERSTITIAL_ASSET_PLAYER_CREATED,{asset:Z,assetListIndex:Q,event:Y,player:V}),V}clearInterstitial(Y,Z){this.clearAssetPlayers(Y,Z),Y.reset()}clearAssetPlayers(Y,Z){Y.assetList.forEach((Q)=>{this.clearAssetPlayer(Q.identifier,Z)})}resetAssetPlayer(Y){let Z=this.getAssetPlayerQueueIndex(Y);if(Z!==-1){this.log(`reset asset player "${Y}" after error`);let Q=this.playerQueue[Z];this.transferMediaFromPlayer(Q,null),Q.resetDetails()}}clearAssetPlayer(Y,Z){let Q=this.getAssetPlayerQueueIndex(Y);if(Q!==-1){let X=this.playerQueue[Q];this.log(`clear ${X} toSegment: ${Z?$8(Z):Z}`),this.transferMediaFromPlayer(X,Z),this.playerQueue.splice(Q,1),X.destroy()}}emptyPlayerQueue(){let Y;while(Y=this.playerQueue.pop())Y.destroy();this.playerQueue=[]}startAssetPlayer(Y,Z,Q,X,J){let{interstitial:W,assetItem:q,assetId:z}=Y,H=W.assetList.length,E=this.playingAsset;if(this.endedAsset=null,this.playingAsset=q,!E||E.identifier!==z){if(E)this.clearAssetPlayer(E.identifier,Q[X]),delete E.error;this.log(`INTERSTITIAL_ASSET_STARTED ${Z+1}/${H} ${H9(q)}`),this.hls.trigger(N.INTERSTITIAL_ASSET_STARTED,{asset:q,assetListIndex:Z,event:W,schedule:Q.slice(0),scheduleIndex:X,player:Y})}this.bufferAssetPlayer(Y,J)}bufferAssetPlayer(Y,Z){var Q,X;if(!this.schedule)return;let{interstitial:J,assetItem:W}=Y,q=this.schedule.findEventIndex(J.identifier),z=(Q=this.schedule.items)==null?void 0:Q[q];if(!z)return;Y.loadSource(),this.setBufferingItem(z),this.bufferingAsset=W;let H=this.getBufferingPlayer();if(H===Y)return;let E=J.appendInPlace;if(E&&(H==null?void 0:H.interstitial.appendInPlace)===!1)return;let K=(H==null?void 0:H.tracks)||((X=this.detachedData)==null?void 0:X.tracks)||this.requiredTracks;if(E&&W!==this.playingAsset){if(!Y.tracks){this.log(`Waiting for track info before buffering ${Y}`);return}if(K&&!T5(K,Y.tracks)){let G=Error(`Asset ${H9(W)} SourceBuffer tracks ('${Object.keys(Y.tracks)}') are not compatible with primary content tracks ('${Object.keys(K)}')`),U={fatal:!0,type:Y0.OTHER_ERROR,details:h.INTERSTITIAL_ASSET_ITEM_ERROR,error:G},V=J.findAssetIndex(W);this.handleAssetItemError(U,J,q,V,G.message);return}}this.transferMediaTo(Y,Z)}handleInPlaceStall(Y){let Z=this.schedule,Q=this.primaryMedia;if(!Z||!Q)return;let X=Q.currentTime,J=Z.findAssetIndex(Y,X),W=Y.assetList[J];if(W){let q=this.getAssetPlayer(W.identifier);if(q){let z=q.currentTime||X-W.timelineStart,H=q.duration-z;if(this.warn(`Stalled at ${z} of ${z+H} in ${q} ${Y} (media.currentTime: ${X})`),z&&(H/Q.playbackRate<0.5||q.bufferedInPlaceToEnd(Q))&&q.hls){let E=Z.findEventIndex(Y.identifier);this.advanceAfterAssetEnded(Y,E,J)}}}}advanceInPlace(Y){let Z=this.primaryMedia;if(Z&&Z.currentTime!F.error))Z.error=V;else for(let F=X;F{let B=parseFloat(F.DURATION);this.createAsset(J,R,E,z+E,B,F.URI),E+=B}),J.duration=E,this.log(`Loaded asset-list with duration: ${E} (was: ${H}) ${J}`);let K=this.waitingItem,G=(K==null?void 0:K.event.identifier)===W;this.updateSchedule();let U=(X=this.bufferingItem)==null?void 0:X.event;if(G){var V;let F=this.schedule.findEventIndex(W),R=(V=this.schedule.items)==null?void 0:V[F];if(R){if(!this.playingItem&&this.timelinePos>R.end){if(this.schedule.findItemIndexAtTime(this.timelinePos)!==F){J.error=Error(`Interstitial ${q.length?"no longer within playback range":"asset-list is empty"} ${this.timelinePos} ${J}`),this.log(J.error.message),this.updateSchedule(!0),this.primaryFallback(J);return}}this.setBufferingItem(R)}this.setSchedulePosition(F)}else if((U==null?void 0:U.identifier)===W){let F=J.assetList[0];if(F){let R=this.getAssetPlayer(F.identifier);if(U.appendInPlace){let B=this.primaryMedia;if(R&&B)this.bufferAssetPlayer(R,B)}else if(R)R.loadSource()}}}onError(Y,Z){if(!this.schedule)return;switch(Z.details){case h.ASSET_LIST_PARSING_ERROR:case h.ASSET_LIST_LOAD_ERROR:case h.ASSET_LIST_LOAD_TIMEOUT:{let Q=Z.interstitial;if(Q)this.updateSchedule(!0),this.primaryFallback(Q);break}case h.BUFFER_STALLED_ERROR:{let Q=this.endedItem||this.waitingItem||this.playingItem;if(this.isInterstitial(Q)&&Q.event.appendInPlace){this.handleInPlaceStall(Q.event);return}this.log(`Primary player stall @${this.timelinePos} bufferedPos: ${this.bufferedPos}`),this.onTimeupdate(),this.checkBuffer(!0);break}}}}var O5=500;class DK extends a2{constructor(Y,Z,Q){super(Y,Z,Q,"subtitle-stream-controller",t.SUBTITLE);this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this.registerListeners()}onHandlerDestroying(){this.unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null}registerListeners(){super.registerListeners();let{hls:Y}=this;Y.on(N.LEVEL_LOADED,this.onLevelLoaded,this),Y.on(N.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),Y.on(N.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),Y.on(N.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),Y.on(N.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),Y.on(N.BUFFER_FLUSHING,this.onBufferFlushing,this)}unregisterListeners(){super.unregisterListeners();let{hls:Y}=this;Y.off(N.LEVEL_LOADED,this.onLevelLoaded,this),Y.off(N.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),Y.off(N.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),Y.off(N.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),Y.off(N.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),Y.off(N.BUFFER_FLUSHING,this.onBufferFlushing,this)}startLoad(Y,Z){this.stopLoad(),this.state=y.IDLE,this.setInterval(O5),this.nextLoadPosition=this.lastCurrentTime=Y+this.timelineOffset,this.startPosition=Z?-1:Y,this.tick()}onManifestLoading(){super.onManifestLoading(),this.mainDetails=null}onMediaDetaching(Y,Z){this.tracksBuffered=[],super.onMediaDetaching(Y,Z)}onLevelLoaded(Y,Z){this.mainDetails=Z.details}onSubtitleFragProcessed(Y,Z){let{frag:Q,success:X}=Z;if(!this.fragContextChanged(Q)){if(t0(Q))this.fragPrevious=Q;this.state=y.IDLE}if(!X)return;let J=this.tracksBuffered[this.currentTrackId];if(!J)return;let W,q=Q.start;for(let H=0;H=J[H].start&&q<=J[H].end){W=J[H];break}let z=Q.start+Q.duration;if(W)W.end=z;else W={start:q,end:z},J.push(W);if(this.fragmentTracker.fragBuffered(Q),this.fragBufferedComplete(Q,null),this.media)this.tick()}onBufferFlushing(Y,Z){let{startOffset:Q,endOffset:X}=Z;if(Q===0&&X!==Number.POSITIVE_INFINITY){let J=X-1;if(J<=0)return;Z.endOffsetSubtitles=Math.max(0,J),this.tracksBuffered.forEach((W)=>{for(let q=0;qnew R9(Q));return}this.tracksBuffered=[],this.levels=Z.map((Q)=>{let X=new R9(Q);return this.tracksBuffered[X.id]=[],X}),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,t.SUBTITLE),this.fragPrevious=null,this.mediaBuffer=null}onSubtitleTrackSwitch(Y,Z){var Q;if(this.currentTrackId=Z.id,!((Q=this.levels)!=null&&Q.length)||this.currentTrackId===-1){this.clearInterval();return}let X=this.levels[this.currentTrackId];if(X!=null&&X.details)this.mediaBuffer=this.mediaBufferTimeRanges;else this.mediaBuffer=null;if(X&&this.state!==y.STOPPED)this.setInterval(O5)}onSubtitleTrackLoaded(Y,Z){var Q;let{currentTrackId:X,levels:J}=this,{details:W,id:q}=Z;if(!J){this.warn(`Subtitle tracks were reset while loading level ${q}`);return}let z=J[q];if(q>=J.length||!z)return;this.log(`Subtitle track ${q} loaded [${W.startSN},${W.endSN}]${W.lastPartSn?`[part-${W.lastPartSn}-${W.lastPartIndex}]`:""},duration:${W.totalduration}`),this.mediaBuffer=this.mediaBufferTimeRanges;let H=0;if(W.live||(Q=z.details)!=null&&Q.live){if(W.deltaUpdateFailed)return;let K=this.mainDetails;if(!K){this.startFragRequested=!1;return}let G=K.fragments[0];if(!z.details){if(W.hasProgramDateTime&&K.hasProgramDateTime)o2(W,K),H=W.fragmentStart;else if(G)H=G.start,tW(W,H)}else{var E;if(H=this.alignPlaylists(W,z.details,(E=this.levelLastLoaded)==null?void 0:E.details),H===0&&G)H=G.start,tW(W,H)}if(K&&!this.startFragRequested)this.setStartPosition(K,H)}if(z.details=W,this.levelLastLoaded=z,q!==X)return;if(this.hls.trigger(N.SUBTITLE_TRACK_UPDATED,{details:W,id:q,groupId:Z.groupId}),this.tick(),W.live&&!this.fragCurrent&&this.media&&this.state===y.IDLE){if(!j7(null,W.fragments,this.media.currentTime,0))this.warn("Subtitle playlist not aligned with playback"),z.details=void 0}}_handleFragmentLoadComplete(Y){let{frag:Z,payload:Q}=Y,X=Z.decryptdata,J=this.hls;if(this.fragContextChanged(Z))return;if(Q&&Q.byteLength>0&&X!=null&&X.key&&X.iv&&K9(X.method)){let W=performance.now();this.decrypter.decrypt(new Uint8Array(Q),X.key.buffer,X.iv.buffer,jq(X.method)).catch((q)=>{throw J.trigger(N.ERROR,{type:Y0.MEDIA_ERROR,details:h.FRAG_DECRYPT_ERROR,fatal:!1,error:q,reason:q.message,frag:Z}),q}).then((q)=>{let z=performance.now();J.trigger(N.FRAG_DECRYPTED,{frag:Z,payload:q,stats:{tstart:W,tdecrypt:z}})}).catch((q)=>{this.warn(`${q.name}: ${q.message}`),this.state=y.IDLE})}}doTick(){if(!this.media){this.state=y.IDLE;return}if(this.state===y.IDLE){let{currentTrackId:Y,levels:Z}=this,Q=Z==null?void 0:Z[Y];if(!Q||!Z.length||!Q.details)return;if(this.waitForLive(Q))return;let{config:X}=this,J=this.getLoadPosition(),W=V0.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],J,X.maxBufferHole),{end:q,len:z}=W,H=Q.details,E=this.hls.maxBufferLength+H.levelTargetDuration;if(z>E)return;let K=H.fragments,G=K.length,U=H.edge,V=null,F=this.fragPrevious;if(qU-$?0:$;if(V=j7(F,K,Math.max(K[0].start,q),L),!V&&F&&F.start{if(X=X>>>0,X>J-1)throw new DOMException(`Failed to execute '${Q}' on 'TimeRanges': The index provided (${X}) is greater than the maximum bound (${J})`);return Y[X][Q]};this.buffered={get length(){return Y.length},end(Q){return Z("end",Q,Y.length)},start(Q){return Z("start",Q,Y.length)}}}}var Nj={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},PK=(Y)=>String.fromCharCode(Nj[Y]||Y),L8=15,V6=100,$j={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},Lj={17:2,18:4,21:6,22:8,23:10,19:13,20:15},Oj={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},jj={25:2,26:4,29:6,30:8,31:10,27:13,28:15},Aj=["white","green","blue","cyan","red","yellow","magenta","black","transparent"];class CK{constructor(){this.time=null,this.verboseLevel=0}log(Y,Z){if(this.verboseLevel>=Y){let Q=typeof Z==="function"?Z():Z;S0.log(`${this.time} [${Y}] ${Q}`)}}}var N7=function(Z){let Q=[];for(let X=0;XV6)this.logger.log(3,"Too large cursor position "+this.pos),this.pos=V6}moveCursor(Y){let Z=this.pos+Y;if(Y>1)for(let Q=this.pos+1;Q=144)this.backSpace();let Z=PK(Y);if(this.pos>=V6){this.logger.log(0,()=>"Cannot insert "+Y.toString(16)+" ("+Z+") at position "+this.pos+". Skipping it!");return}this.chars[this.pos].setChar(Z,this.currPenState),this.moveCursor(1)}clearFromPos(Y){let Z;for(Z=Y;Z"pacData = "+_0(Y));let Z=Y.row-1;if(this.nrRollUpRows&&Z"bkgData = "+_0(Y)),this.backSpace(),this.setPen(Y),this.insertChar(32)}setRollUpRows(Y){this.nrRollUpRows=Y}rollUp(){if(this.nrRollUpRows===null){this.logger.log(3,"roll_up but nrRollUpRows not set yet");return}this.logger.log(1,()=>this.getDisplayText());let Y=this.currRow+1-this.nrRollUpRows,Z=this.rows.splice(Y,1)[0];Z.clear(),this.rows.splice(this.currRow,0,Z),this.logger.log(2,"Rolling up")}getDisplayText(Y){Y=Y||!1;let Z=[],Q="",X=-1;for(let J=0;J0)if(Y)Q="["+Z.join(" | ")+"]";else Q=Z.join(` `);return Q}getTextAndFormat(){return this.rows}}class Hq{constructor(Y,Z,Q){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=Y,this.outputFilter=Z,this.mode=null,this.verbose=0,this.displayedMemory=new y2(Q),this.nonDisplayedMemory=new y2(Q),this.lastOutputScreen=new y2(Q),this.currRollUpRow=this.displayedMemory.rows[L8-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=Q}reset(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[L8-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}getHandler(){return this.outputFilter}setHandler(Y){this.outputFilter=Y}setPAC(Y){this.writeScreen.setPAC(Y)}setBkgData(Y){this.writeScreen.setBkgData(Y)}setMode(Y){if(Y===this.mode)return;if(this.mode=Y,this.logger.log(2,()=>"MODE="+Y),this.mode==="MODE_POP-ON")this.writeScreen=this.nonDisplayedMemory;else this.writeScreen=this.displayedMemory,this.writeScreen.reset();if(this.mode!=="MODE_ROLL-UP")this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null;this.mode=Y}insertChars(Y){for(let Q=0;QZ+": "+this.writeScreen.getDisplayText(!0)),this.mode==="MODE_PAINT-ON"||this.mode==="MODE_ROLL-UP")this.logger.log(1,()=>"DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate()}ccRCL(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")}ccBS(){if(this.logger.log(2,"BS - BackSpace"),this.mode==="MODE_TEXT")return;if(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory)this.outputDataUpdate()}ccAOF(){}ccAON(){}ccDER(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()}ccRU(Y){this.logger.log(2,"RU("+Y+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(Y)}ccFON(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:!0})}ccRDC(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")}ccTR(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT")}ccRTD(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT")}ccEDM(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)}ccCR(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)}ccENM(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()}ccEOC(){if(this.logger.log(2,"EOC - End Of Caption"),this.mode==="MODE_POP-ON"){let Y=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=Y,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,()=>"DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)}ccTO(Y){this.logger.log(2,"TO("+Y+") - Tab Offset"),this.writeScreen.moveCursor(Y)}ccMIDROW(Y){let Z={flash:!1};if(Z.underline=Y%2===1,Z.italics=Y>=46,!Z.italics){let Q=Math.floor(Y/2)-16,X=["white","green","blue","cyan","red","yellow","magenta"];Z.foreground=X[Q]}else Z.foreground="white";this.logger.log(2,"MIDROW: "+_0(Z)),this.writeScreen.setPen(Z)}outputDataUpdate(Y=!1){let Z=this.logger.time;if(Z===null)return;if(this.outputFilter){if(this.cueStartTime===null&&!this.displayedMemory.isEmpty())this.cueStartTime=Z;else if(!this.displayedMemory.equals(this.lastOutputScreen)){if(this.outputFilter.newCue(this.cueStartTime,Z,this.lastOutputScreen),Y&&this.outputFilter.dispatchCue)this.outputFilter.dispatchCue();this.cueStartTime=this.displayedMemory.isEmpty()?null:Z}this.lastOutputScreen.copy(this.displayedMemory)}}cueSplitAtTime(Y){if(this.outputFilter){if(!this.displayedMemory.isEmpty()){if(this.outputFilter.newCue)this.outputFilter.newCue(this.cueStartTime,Y,this.displayedMemory);this.cueStartTime=Y}}}}class zq{constructor(Y,Z,Q){this.channels=void 0,this.currentChannel=0,this.cmdHistory=wj(),this.logger=void 0;let X=this.logger=new CK;this.channels=[null,new Hq(Y,Z,X),new Hq(Y+1,Q,X)]}getHandler(Y){return this.channels[Y].getHandler()}setHandler(Y,Z){this.channels[Y].setHandler(Z)}addData(Y,Z){this.logger.time=Y;for(let Q=0;Q"["+N7([Z[Q],Z[Q+1]])+"] -> ("+N7([X,J])+")");let z=this.cmdHistory;if(X>=16&&X<=31){if(Dj(X,J,z)){D2(null,null,z),this.logger.log(3,()=>"Repeated command ("+N7([X,J])+") is dropped");continue}if(D2(X,J,this.cmdHistory),W=this.parseCmd(X,J),!W)W=this.parseMidrow(X,J);if(!W)W=this.parsePAC(X,J);if(!W)W=this.parseBackgroundAttributes(X,J)}else D2(null,null,z);if(!W){if(q=this.parseChars(X,J),q){let E=this.currentChannel;if(E&&E>0)this.channels[E].insertChars(q);else this.logger.log(2,"No channel found yet. TEXT-MODE?")}}if(!W&&!q)this.logger.log(2,()=>"Couldn't parse cleaned data "+N7([X,J])+" orig: "+N7([Z[Q],Z[Q+1]]))}}parseCmd(Y,Z){let Q=(Y===20||Y===28||Y===21||Y===29)&&Z>=32&&Z<=47,X=(Y===23||Y===31)&&Z>=33&&Z<=35;if(!(Q||X))return!1;let J=Y===20||Y===21||Y===23?1:2,W=this.channels[J];if(Y===20||Y===21||Y===28||Y===29){if(Z===32)W.ccRCL();else if(Z===33)W.ccBS();else if(Z===34)W.ccAOF();else if(Z===35)W.ccAON();else if(Z===36)W.ccDER();else if(Z===37)W.ccRU(2);else if(Z===38)W.ccRU(3);else if(Z===39)W.ccRU(4);else if(Z===40)W.ccFON();else if(Z===41)W.ccRDC();else if(Z===42)W.ccTR();else if(Z===43)W.ccRTD();else if(Z===44)W.ccEDM();else if(Z===45)W.ccCR();else if(Z===46)W.ccENM();else if(Z===47)W.ccEOC()}else W.ccTO(Z-32);return this.currentChannel=J,!0}parseMidrow(Y,Z){let Q=0;if((Y===17||Y===25)&&Z>=32&&Z<=47){if(Y===17)Q=1;else Q=2;if(Q!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;let X=this.channels[Q];if(!X)return!1;return X.ccMIDROW(Z),this.logger.log(3,()=>"MIDROW ("+N7([Y,Z])+")"),!0}return!1}parsePAC(Y,Z){let Q,X=(Y>=17&&Y<=23||Y>=25&&Y<=31)&&Z>=64&&Z<=127,J=(Y===16||Y===24)&&Z>=64&&Z<=95;if(!(X||J))return!1;let W=Y<=23?1:2;if(Z>=64&&Z<=95)Q=W===1?$j[Y]:Oj[Y];else Q=W===1?Lj[Y]:jj[Y];let q=this.channels[W];if(!q)return!1;return q.setPAC(this.interpretPAC(Q,Z)),this.currentChannel=W,!0}interpretPAC(Y,Z){let Q,X={color:null,italics:!1,indent:null,underline:!1,row:Y};if(Z>95)Q=Z-96;else Q=Z-64;if(X.underline=(Q&1)===1,Q<=13)X.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(Q/2)];else if(Q<=15)X.italics=!0,X.color="white";else X.indent=Math.floor((Q-16)/2)*4;return X}parseChars(Y,Z){let Q,X=null,J=null;if(Y>=25)Q=2,J=Y-8;else Q=1,J=Y;if(J>=17&&J<=19){let W;if(J===17)W=Z+80;else if(J===18)W=Z+112;else W=Z+144;this.logger.log(2,()=>"Special char '"+PK(W)+"' in channel "+Q),X=[W]}else if(Y>=32&&Y<=127)X=Z===0?[Y]:[Y,Z];if(X)this.logger.log(3,()=>"Char codes = "+N7(X).join(","));return X}parseBackgroundAttributes(Y,Z){let Q=(Y===16||Y===24)&&Z>=32&&Z<=47,X=(Y===23||Y===31)&&Z>=45&&Z<=47;if(!(Q||X))return!1;let J,W={};if(Y===16||Y===24){if(J=Math.floor((Z-32)/2),W.background=Aj[J],Z%2===1)W.background=W.background+"_semi"}else if(Z===45)W.background="transparent";else if(W.foreground="black",Z===47)W.underline=!0;let q=Y<=23?1:2;return this.channels[q].setBkgData(W),!0}reset(){for(let Y=0;Y100)throw Error("Position must be between 0 and 100.");D=x,this.hasBeenReset=!0}})),Object.defineProperty(K,"positionAlign",W({},G,{get:function(){return M},set:function(x){let f=J(x);if(!f)throw SyntaxError("An invalid or illegal string was specified.");M=f,this.hasBeenReset=!0}})),Object.defineProperty(K,"size",W({},G,{get:function(){return C},set:function(x){if(x<0||x>100)throw Error("Size must be between 0 and 100.");C=x,this.hasBeenReset=!0}})),Object.defineProperty(K,"align",W({},G,{get:function(){return I},set:function(x){let f=J(x);if(!f)throw SyntaxError("An invalid or illegal string was specified.");I=f,this.hasBeenReset=!0}})),K.displayState=void 0}return q.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},q}();class IK{decode(Y,Z){if(!Y)return"";if(typeof Y!=="string")throw Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(Y))}}function SK(Y){function Z(X,J,W,q){return(X|0)*3600+(J|0)*60+(W|0)+parseFloat(q||0)}let Q=Y.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);if(!Q)return null;if(parseFloat(Q[2])>59)return Z(Q[2],Q[3],0,Q[4]);return Z(Q[1],Q[2],Q[3],Q[4])}class TK{constructor(){this.values=Object.create(null)}set(Y,Z){if(!this.get(Y)&&Z!=="")this.values[Y]=Z}get(Y,Z,Q){if(Q)return this.has(Y)?this.values[Y]:Z[Q];return this.has(Y)?this.values[Y]:Z}has(Y){return Y in this.values}alt(Y,Z,Q){for(let X=0;X=0&&Q<=100)return this.set(Y,Q),!0}return!1}}function hK(Y,Z,Q,X){let J=X?Y.split(X):[Y];for(let W in J){if(typeof J[W]!=="string")continue;let q=J[W].split(Q);if(q.length!==2)continue;let z=q[0],H=q[1];Z(z,H)}}var Eq=new gq(0,0,""),w2=Eq.align==="middle"?"middle":"center";function Pj(Y,Z,Q){let X=Y;function J(){let z=SK(Y);if(z===null)throw Error("Malformed timestamp: "+X);return Y=Y.replace(/^[^\sa-zA-Z-]+/,""),z}function W(z,H){let E=new TK;hK(z,function(U,V){let F;switch(U){case"region":for(let R=Q.length-1;R>=0;R--)if(Q[R].id===V){E.set(U,Q[R].region);break}break;case"vertical":E.alt(U,V,["rl","lr"]);break;case"line":if(F=V.split(","),E.integer(U,F[0]),E.percent(U,F[0]))E.set("snapToLines",!1);if(E.alt(U,F[0],["auto"]),F.length===2)E.alt("lineAlign",F[1],["start",w2,"end"]);break;case"position":if(F=V.split(","),E.percent(U,F[0]),F.length===2)E.alt("positionAlign",F[1],["start",w2,"end","line-left","line-right","auto"]);break;case"size":E.percent(U,V);break;case"align":E.alt(U,V,["start",w2,"end","left","right"]);break}},/:/,/\s/),H.region=E.get("region",null),H.vertical=E.get("vertical","");let K=E.get("line","auto");if(K==="auto"&&Eq.line===-1)K=-1;H.line=K,H.lineAlign=E.get("lineAlign","start"),H.snapToLines=E.get("snapToLines",!0),H.size=E.get("size",100),H.align=E.get("align",w2);let G=E.get("position","auto");if(G==="auto"&&Eq.position===50)G=H.align==="start"||H.align==="left"?0:H.align==="end"||H.align==="right"?100:50;H.position=G}function q(){Y=Y.replace(/^\s+/,"")}if(q(),Z.startTime=J(),q(),Y.slice(0,3)!=="-->")throw Error("Malformed time stamp (time stamps must be separated by '-->'): "+X);Y=Y.slice(3),q(),Z.endTime=J(),q(),W(Y,Z)}function fK(Y){return Y.replace(//gi,` `)}class yK{constructor(){this.state="INITIAL",this.buffer="",this.decoder=new IK,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}parse(Y){let Z=this;if(Y)Z.buffer+=Z.decoder.decode(Y,{stream:!0});function Q(){let J=Z.buffer,W=0;J=fK(J);while(W")===-1){Z.cue.id=J;continue}case"CUE":if(!Z.cue){Z.state="BADCUE";continue}try{Pj(J,Z.cue,Z.regionList)}catch(q){Z.cue=null,Z.state="BADCUE";continue}Z.state="CUETEXT";continue;case"CUETEXT":{let q=J.indexOf("-->")!==-1;if(!J||q&&(W=!0)){if(Z.oncue&&Z.cue)Z.oncue(Z.cue);Z.cue=null,Z.state="ID";continue}if(Z.cue===null)continue;if(Z.cue.text)Z.cue.text+=` `;Z.cue.text+=J}continue;case"BADCUE":if(!J)Z.state="ID"}}}catch(J){if(Z.state==="CUETEXT"&&Z.cue&&Z.oncue)Z.oncue(Z.cue);Z.cue=null,Z.state=Z.state==="INITIAL"?"BADWEBVTT":"BADCUE"}return this}flush(){let Y=this;try{if(Y.cue||Y.state==="HEADER")Y.buffer+=` `,Y.parse();if(Y.state==="INITIAL"||Y.state==="BADWEBVTT")throw Error("Malformed WebVTT signature.")}catch(Z){if(Y.onparsingerror)Y.onparsingerror(Z)}if(Y.onflush)Y.onflush();return this}}var Cj=/\r\n|\n\r|\n|\r/g,kW=function(Z,Q,X=0){return Z.slice(X,X+Q.length)===Q},Mj=function(Z){let Q=parseInt(Z.slice(-3)),X=parseInt(Z.slice(-6,-4)),J=parseInt(Z.slice(-9,-7)),W=Z.length>9?parseInt(Z.substring(0,Z.indexOf(":"))):0;if(!r(Q)||!r(X)||!r(J)||!r(W))throw Error(`Malformed X-TIMESTAMP-MAP: Local:${Z}`);return Q+=1000*X,Q+=60000*J,Q+=3600000*W,Q};function bq(Y,Z,Q){return hY(Y.toString())+hY(Z.toString())+hY(Q)}var xj=function(Z,Q,X){let J=Z[Q],W=Z[J.prevCC];if(!W||!W.new&&J.new){Z.ccOffset=Z.presentationOffset=J.start,J.new=!1;return}while((q=W)!=null&&q.new){var q;Z.ccOffset+=J.start-W.start,J.new=!1,J=W,W=Z[J.prevCC]}Z.presentationOffset=X};function Ij(Y,Z,Q,X,J,W,q){let z=new yK,H=o1(new Uint8Array(Y)).trim().replace(Cj,` `).split(` `),E=[],K=Z?qO(Z.baseTime,Z.timescale):0,G="00:00.000",U=0,V=0,F,R=!0;z.oncue=function(B){let $=Q[X],L=Q.ccOffset,O=(U-K)/90000;if($!=null&&$.new)if(V!==void 0)L=Q.ccOffset=$.start;else xj(Q,X,O);if(O){if(!Z){F=Error("Missing initPTS for VTT MPEGTS");return}L=O-Q.presentationOffset}let j=B.endTime-B.startTime,w=u1((B.startTime+L-V)*90000,J*90000)/90000;B.startTime=Math.max(w,0),B.endTime=Math.max(w+j,0);let D=B.text.trim();if(B.text=decodeURIComponent(encodeURIComponent(D)),!B.id)B.id=bq(B.startTime,B.endTime,D);if(B.endTime>0)E.push(B)},z.onparsingerror=function(B){F=B},z.onflush=function(){if(F){q(F);return}W(E)},H.forEach((B)=>{if(R){if(kW(B,"X-TIMESTAMP-MAP=")){R=!1,B.slice(16).split(",").forEach(($)=>{if(kW($,"LOCAL:"))G=$.slice(6);else if(kW($,"MPEGTS:"))U=parseInt($.slice(7))});try{V=Mj(G)/1000}catch($){F=$}return}else if(B==="")R=!1}z.parse(B+` `)}),z.flush()}var gW="stpp.ttml.im1t",kK=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,gK=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,Sj={left:"start",center:"center",right:"end",start:"start",end:"end"};function j5(Y,Z,Q,X){let J=$0(new Uint8Array(Y),["mdat"]);if(J.length===0){X(Error("Could not parse IMSC1 mdat"));return}let W=J.map((z)=>o1(z)),q=WO(Z.baseTime,1,Z.timescale);try{W.forEach((z)=>Q(Tj(z,q)))}catch(z){X(z)}}function Tj(Y,Z){let J=new DOMParser().parseFromString(Y,"text/xml").getElementsByTagName("tt")[0];if(!J)throw Error("Invalid ttml");let W={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},q=Object.keys(W).reduce((G,U)=>{return G[U]=J.getAttribute(`ttp:${U}`)||W[U],G},{}),z=J.getAttribute("xml:space")!=="preserve",H=A5(bW(J,"styling","style")),E=A5(bW(J,"layout","region")),K=bW(J,"body","[begin]");return[].map.call(K,(G)=>{let U=bK(G,z);if(!U||!G.hasAttribute("begin"))return null;let V=vW(G.getAttribute("begin"),q),F=vW(G.getAttribute("dur"),q),R=vW(G.getAttribute("end"),q);if(V===null)throw D5(G);if(R===null){if(F===null)throw D5(G);R=V+F}let B=new gq(V-Z,R-Z,U);B.id=bq(B.startTime,B.endTime,B.text);let $=E[G.getAttribute("region")],L=H[G.getAttribute("style")],O=hj($,L,H),{textAlign:j}=O;if(j){let w=Sj[j];if(w)B.lineAlign=w;B.align=j}return h0(B,O),B}).filter((G)=>G!==null)}function bW(Y,Z,Q){let X=Y.getElementsByTagName(Z)[0];if(X)return[].slice.call(X.querySelectorAll(Q));return[]}function A5(Y){return Y.reduce((Z,Q)=>{let X=Q.getAttribute("xml:id");if(X)Z[X]=Q;return Z},{})}function bK(Y,Z){return[].slice.call(Y.childNodes).reduce((Q,X,J)=>{var W;if(X.nodeName==="br"&&J)return Q+` `;if((W=X.childNodes)!=null&&W.length)return bK(X,Z);else if(Z)return Q+X.textContent.trim().replace(/\s+/g," ");return Q+X.textContent},"")}function hj(Y,Z,Q){let J=null,W=["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"],q=Y!=null&&Y.hasAttribute("style")?Y.getAttribute("style"):null;if(q&&Q.hasOwnProperty(q))J=Q[q];return W.reduce((z,H)=>{let E=_W(Z,"http://www.w3.org/ns/ttml#styling",H)||_W(Y,"http://www.w3.org/ns/ttml#styling",H)||_W(J,"http://www.w3.org/ns/ttml#styling",H);if(E)z[H]=E;return z},{})}function _W(Y,Z,Q){if(!Y)return null;return Y.hasAttributeNS(Z,Q)?Y.getAttributeNS(Z,Q):null}function D5(Y){return Error(`Could not parse ttml timestamp ${Y}`)}function vW(Y,Z){if(!Y)return null;let Q=SK(Y);if(Q===null){if(kK.test(Y))Q=fj(Y,Z);else if(gK.test(Y))Q=yj(Y,Z)}return Q}function fj(Y,Z){let Q=kK.exec(Y),X=(Q[4]|0)+(Q[5]|0)/Z.subFrameRate;return(Q[1]|0)*3600+(Q[2]|0)*60+(Q[3]|0)+X/Z.frameRate}function yj(Y,Z){let Q=gK.exec(Y),X=Number(Q[1]);switch(Q[2]){case"h":return X*3600;case"m":return X*60;case"ms":return X*1000;case"f":return X/Z.frameRate;case"t":return X/Z.tickRate}return X}class IY{constructor(Y,Z){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=Y,this.trackName=Z}dispatchCue(){if(this.startTime===null)return;this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null}newCue(Y,Z,Q){if(this.startTime===null||this.startTime>Y)this.startTime=Y;this.endTime=Z,this.screen=Q,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}}class _K{constructor(Y){this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=P5(),this.captionsProperties=void 0,this.hls=Y,this.config=Y.config,this.Cues=Y.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},Y.on(N.MEDIA_ATTACHING,this.onMediaAttaching,this),Y.on(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.MANIFEST_LOADED,this.onManifestLoaded,this),Y.on(N.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),Y.on(N.FRAG_LOADING,this.onFragLoading,this),Y.on(N.FRAG_LOADED,this.onFragLoaded,this),Y.on(N.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),Y.on(N.FRAG_DECRYPTED,this.onFragDecrypted,this),Y.on(N.INIT_PTS_FOUND,this.onInitPtsFound,this),Y.on(N.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),Y.on(N.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){let{hls:Y}=this;Y.off(N.MEDIA_ATTACHING,this.onMediaAttaching,this),Y.off(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.MANIFEST_LOADED,this.onManifestLoaded,this),Y.off(N.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),Y.off(N.FRAG_LOADING,this.onFragLoading,this),Y.off(N.FRAG_LOADED,this.onFragLoaded,this),Y.off(N.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),Y.off(N.FRAG_DECRYPTED,this.onFragDecrypted,this),Y.off(N.INIT_PTS_FOUND,this.onInitPtsFound,this),Y.off(N.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),Y.off(N.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.media=null,this.cea608Parser1=this.cea608Parser2=void 0}initCea608Parsers(){let Y=new IY(this,"textTrack1"),Z=new IY(this,"textTrack2"),Q=new IY(this,"textTrack3"),X=new IY(this,"textTrack4");this.cea608Parser1=new zq(1,Y,Z),this.cea608Parser2=new zq(3,Q,X)}addCues(Y,Z,Q,X,J){let W=!1;for(let q=J.length;q--;){let z=J[q],H=kj(z[0],z[1],Z,Q);if(H>=0){if(z[0]=Math.min(z[0],Z),z[1]=Math.max(z[1],Q),W=!0,H/(Q-Z)>0.5)return}}if(!W)J.push([Z,Q]);if(this.config.renderTextTracksNatively){let q=this.captionsTracks[Y];this.Cues.newCue(q,Z,Q,X)}else{let q=this.Cues.newCue(null,Z,Q,X);this.hls.trigger(N.CUES_PARSED,{type:"captions",cues:q,track:Y})}}onInitPtsFound(Y,{frag:Z,id:Q,initPTS:X,timescale:J,trackId:W}){let{unparsedVttFrags:q}=this;if(Q===t.MAIN)this.initPTS[Z.cc]={baseTime:X,timescale:J,trackId:W};if(q.length)this.unparsedVttFrags=[],q.forEach((z)=>{if(this.initPTS[z.frag.cc])this.onFragLoaded(N.FRAG_LOADED,z);else this.hls.trigger(N.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:z.frag,error:Error("Subtitle discontinuity domain does not match main")})})}getExistingTrack(Y,Z){let{media:Q}=this;if(Q)for(let X=0;X{z9(X[J]),delete X[J]}),this.nonNativeCaptionsTracks={}}onManifestLoading(){if(this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=P5(),this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2)this.cea608Parser1.reset(),this.cea608Parser2.reset()}_cleanTracks(){let{media:Y}=this;if(!Y)return;let Z=Y.textTracks;if(Z)for(let Q=0;QJ.textCodec===gW);if(this.config.enableWebVTT||X&&this.config.enableIMSC1){if(iE(this.tracks,Q)){this.tracks=Q;return}if(this.textTracks=[],this.tracks=Q,this.config.renderTextTracksNatively){let W=this.media,q=W?f2(W.textTracks):null;if(this.tracks.forEach((z,H)=>{let E;if(q){let K=null;for(let G=0;GH!==null).map((H)=>H.label);if(z.length)this.hls.logger.warn(`Media element contains unused subtitle tracks: ${z.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`)}}else if(this.tracks.length){let W=this.tracks.map((q)=>{return{label:q.name,kind:q.type.toLowerCase(),default:q.default,subtitleTrack:q}});this.hls.trigger(N.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:W})}}}onManifestLoaded(Y,Z){if(this.config.enableCEA708Captions&&Z.captions)Z.captions.forEach((Q)=>{let X=/(?:CC|SERVICE)([1-4])/.exec(Q.instreamId);if(!X)return;let J=`textTrack${X[1]}`,W=this.captionsProperties[J];if(!W)return;if(W.label=Q.name,Q.lang)W.languageCode=Q.lang;W.media=Q})}closedCaptionsForLevel(Y){let Z=this.hls.levels[Y.level];return Z==null?void 0:Z.attrs["CLOSED-CAPTIONS"]}onFragLoading(Y,Z){if(this.enabled&&Z.frag.type===t.MAIN){var Q,X;let{cea608Parser1:J,cea608Parser2:W,lastSn:q}=this,{cc:z,sn:H}=Z.frag,E=(Q=(X=Z.part)==null?void 0:X.index)!=null?Q:-1;if(J&&W){if(H!==q+1||H===q&&E!==this.lastPartIndex+1||z!==this.lastCc)J.reset(),W.reset()}this.lastCc=z,this.lastSn=H,this.lastPartIndex=E}}onFragLoaded(Y,Z){let{frag:Q,payload:X}=Z;if(Q.type===t.SUBTITLE)if(X.byteLength){let J=Q.decryptdata,W="stats"in Z;if(J==null||!J.encrypted||W){let q=this.tracks[Q.level],z=this.vttCCs;if(!z[Q.cc])z[Q.cc]={start:Q.start,prevCC:this.prevCC,new:!0},this.prevCC=Q.cc;if(q&&q.textCodec===gW)this._parseIMSC1(Q,X);else this._parseVTTs(Z)}}else this.hls.trigger(N.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:Q,error:Error("Empty subtitle payload")})}_parseIMSC1(Y,Z){let Q=this.hls;j5(Z,this.initPTS[Y.cc],(X)=>{this._appendCues(X,Y.level),Q.trigger(N.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:Y})},(X)=>{Q.logger.log(`Failed to parse IMSC1: ${X}`),Q.trigger(N.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:Y,error:X})})}_parseVTTs(Y){var Z;let{frag:Q,payload:X}=Y,{initPTS:J,unparsedVttFrags:W}=this,q=J.length-1;if(!J[Q.cc]&&q===-1){W.push(Y);return}let z=this.hls,H=(Z=Q.initSegment)!=null&&Z.data?Q8(Q.initSegment.data,new Uint8Array(X)).buffer:X;Ij(H,this.initPTS[Q.cc],this.vttCCs,Q.cc,Q.start,(E)=>{this._appendCues(E,Q.level),z.trigger(N.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:Q})},(E)=>{let K=E.message==="Missing initPTS for VTT MPEGTS";if(K)W.push(Y);else this._fallbackToIMSC1(Q,X);if(z.logger.log(`Failed to parse VTT cue: ${E}`),K&&q>Q.cc)return;z.trigger(N.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:Q,error:E})})}_fallbackToIMSC1(Y,Z){let Q=this.tracks[Y.level];if(!Q.textCodec)j5(Z,this.initPTS[Y.cc],()=>{Q.textCodec=gW,this._parseIMSC1(Y,Z)},()=>{Q.textCodec="wvtt"})}_appendCues(Y,Z){let Q=this.hls;if(this.config.renderTextTracksNatively){let X=this.textTracks[Z];if(!X||X.mode==="disabled")return;Y.forEach((J)=>RK(X,J))}else{let X=this.tracks[Z];if(!X)return;let J=X.default?"default":"subtitles"+Z;Q.trigger(N.CUES_PARSED,{type:"subtitles",cues:Y,track:J})}}onFragDecrypted(Y,Z){let{frag:Q}=Z;if(Q.type===t.SUBTITLE)this.onFragLoaded(N.FRAG_LOADED,Z)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(Y,Z){if(!this.enabled||!this.config.enableCEA708Captions)return;let{frag:Q,samples:X}=Z;if(Q.type===t.MAIN&&this.closedCaptionsForLevel(Q)==="NONE")return;for(let J=0;Jqq(q[z],Z,Q))}if(this.config.renderTextTracksNatively){if(Z===0&&X!==void 0){let{textTracks:q}=this;Object.keys(q).forEach((z)=>qq(q[z],Z,X))}}}extractCea608Data(Y){let Z=[[],[]],Q=Y[0]&31,X=2;for(let J=0;J=16)H--;else H++;let V=fK(E.trim()),F=bq(Z,Q,V);if(!(Y!=null&&(G=Y.cues)!=null&&G.getCueById(F)))q=new K(Z,Q,V),q.id=F,q.line=U+1,q.align="left",q.position=10+Math.min(80,Math.floor(H*8/32)*10),J.push(q)}if(Y&&J.length)J.sort((U,V)=>{if(U.line==="auto"||V.line==="auto")return 0;if(U.line>8&&V.line>8)return V.line-U.line;return U.line-V.line}),J.forEach((U)=>RK(Y,U));return J}};function _j(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(Y){}return!1}var vj=/(\d+)-(\d+)\/(\d+)/;class Kq{constructor(Y){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=null,this.response=null,this.controller=void 0,this.context=null,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=Y.fetchSetup||mj,this.controller=new self.AbortController,this.stats=new n2}destroy(){this.loader=this.callbacks=this.context=this.config=this.request=null,this.abortInternal(),this.response=null,this.fetchSetup=this.controller=this.stats=null}abortInternal(){if(this.controller&&!this.stats.loading.end)this.stats.aborted=!0,this.controller.abort()}abort(){var Y;if(this.abortInternal(),(Y=this.callbacks)!=null&&Y.onAbort)this.callbacks.onAbort(this.stats,this.context,this.response)}load(Y,Z,Q){let X=this.stats;if(X.loading.start)throw Error("Loader can only be used once.");X.loading.start=self.performance.now();let J=pj(Y,this.controller.signal),W=Y.responseType==="arraybuffer",q=W?"byteLength":"length",{maxTimeToFirstByteMs:z,maxLoadTimeMs:H}=Z.loadPolicy;this.context=Y,this.config=Z,this.callbacks=Q,this.request=this.fetchSetup(Y,J),self.clearTimeout(this.requestTimeout),Z.timeout=z&&r(z)?z:H,this.requestTimeout=self.setTimeout(()=>{if(this.callbacks)this.abortInternal(),this.callbacks.onTimeout(X,Y,this.response)},Z.timeout),(bY(this.request)?this.request.then(self.fetch):self.fetch(this.request)).then((K)=>{var G;this.response=this.loader=K;let U=Math.max(self.performance.now(),X.loading.start);if(self.clearTimeout(this.requestTimeout),Z.timeout=H,this.requestTimeout=self.setTimeout(()=>{if(this.callbacks)this.abortInternal(),this.callbacks.onTimeout(X,Y,this.response)},H-(U-X.loading.start)),!K.ok){let{status:F,statusText:R}=K;throw new pK(R||"fetch, bad network response",F,K)}X.loading.first=U,X.total=uj(K.headers)||X.total;let V=(G=this.callbacks)==null?void 0:G.onProgress;if(V&&r(Z.highWaterMark))return this.loadProgressively(K,X,Y,Z.highWaterMark,V);if(W)return K.arrayBuffer();if(Y.responseType==="json")return K.json();return K.text()}).then((K)=>{var G,U;let V=this.response;if(!V)throw Error("loader destroyed");self.clearTimeout(this.requestTimeout),X.loading.end=Math.max(self.performance.now(),X.loading.first);let F=K[q];if(F)X.loaded=X.total=F;let R={url:V.url,data:K,code:V.status},B=(G=this.callbacks)==null?void 0:G.onProgress;if(B&&!r(Z.highWaterMark))B(X,Y,K,V);(U=this.callbacks)==null||U.onSuccess(R,X,Y,V)}).catch((K)=>{var G;if(self.clearTimeout(this.requestTimeout),X.aborted)return;let U=!K?0:K.code||0,V=!K?null:K.message;(G=this.callbacks)==null||G.onError({code:U,text:V},Y,K?K.details:null,X)})}getCacheAge(){let Y=null;if(this.response){let Z=this.response.headers.get("age");Y=Z?parseFloat(Z):null}return Y}getResponseHeader(Y){return this.response?this.response.headers.get(Y):null}loadProgressively(Y,Z,Q,X=0,J){let W=new Dq,q=Y.body.getReader(),z=()=>{return q.read().then((H)=>{if(H.done){if(W.dataLength)J(Z,Q,W.flush().buffer,Y);return Promise.resolve(new ArrayBuffer(0))}let E=H.value,K=E.length;if(Z.loaded+=K,K=X)J(Z,Q,W.flush().buffer,Y)}else J(Z,Q,E.buffer,Y);return z()}).catch(()=>{return Promise.reject()})};return z()}}function pj(Y,Z){let Q={method:"GET",mode:"cors",credentials:"same-origin",signal:Z,headers:new self.Headers(h0({},Y.headers))};if(Y.rangeEnd)Q.headers.set("Range","bytes="+Y.rangeStart+"-"+String(Y.rangeEnd-1));return Q}function cj(Y){let Z=vj.exec(Y);if(Z)return parseInt(Z[2])-parseInt(Z[1])+1}function uj(Y){let Z=Y.get("Content-Range");if(Z){let X=cj(Z);if(r(X))return X}let Q=Y.get("Content-Length");if(Q)return parseInt(Q)}function mj(Y,Z){return new self.Request(Y.url,Z)}class pK extends Error{constructor(Y,Z,Q){super(Y);this.code=void 0,this.details=void 0,this.code=Z,this.details=Q}}var oj=/^age:\s*[\d.]+\s*$/im;class _q{constructor(Y){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=null,this.loader=null,this.stats=void 0,this.xhrSetup=Y?Y.xhrSetup||null:null,this.stats=new n2,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null}abortInternal(){let Y=this.loader;if(self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),Y){if(Y.onreadystatechange=null,Y.onprogress=null,Y.readyState!==4)this.stats.aborted=!0,Y.abort()}}abort(){var Y;if(this.abortInternal(),(Y=this.callbacks)!=null&&Y.onAbort)this.callbacks.onAbort(this.stats,this.context,this.loader)}load(Y,Z,Q){if(this.stats.loading.start)throw Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=Y,this.config=Z,this.callbacks=Q,this.loadInternal()}loadInternal(){let{config:Y,context:Z}=this;if(!Y||!Z)return;let Q=this.loader=new self.XMLHttpRequest,X=this.stats;X.loading.first=0,X.loaded=0,X.aborted=!1;let J=this.xhrSetup;if(J)Promise.resolve().then(()=>{if(this.loader!==Q||this.stats.aborted)return;return J(Q,Z.url)}).catch((W)=>{if(this.loader!==Q||this.stats.aborted)return;return Q.open("GET",Z.url,!0),J(Q,Z.url)}).then(()=>{if(this.loader!==Q||this.stats.aborted)return;this.openAndSendXhr(Q,Z,Y)}).catch((W)=>{var q;(q=this.callbacks)==null||q.onError({code:Q.status,text:W.message},Z,Q,X);return});else this.openAndSendXhr(Q,Z,Y)}openAndSendXhr(Y,Z,Q){if(!Y.readyState)Y.open("GET",Z.url,!0);let X=Z.headers,{maxTimeToFirstByteMs:J,maxLoadTimeMs:W}=Q.loadPolicy;if(X)for(let q in X)Y.setRequestHeader(q,X[q]);if(Z.rangeEnd)Y.setRequestHeader("Range","bytes="+Z.rangeStart+"-"+(Z.rangeEnd-1));Y.onreadystatechange=this.readystatechange.bind(this),Y.onprogress=this.loadprogress.bind(this),Y.responseType=Z.responseType,self.clearTimeout(this.requestTimeout),Q.timeout=J&&r(J)?J:W,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),Q.timeout),Y.send()}readystatechange(){let{context:Y,loader:Z,stats:Q}=this;if(!Y||!Z)return;let X=Z.readyState,J=this.config;if(Q.aborted)return;if(X>=2){if(Q.loading.first===0){if(Q.loading.first=Math.max(self.performance.now(),Q.loading.start),J.timeout!==J.loadPolicy.maxLoadTimeMs)self.clearTimeout(this.requestTimeout),J.timeout=J.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),J.loadPolicy.maxLoadTimeMs-(Q.loading.first-Q.loading.start))}if(X===4){self.clearTimeout(this.requestTimeout),Z.onreadystatechange=null,Z.onprogress=null;let H=Z.status,E=Z.responseType==="text"?Z.responseText:null;if(H>=200&&H<300){let V=E!=null?E:Z.response;if(V!=null){var W,q;Q.loading.end=Math.max(self.performance.now(),Q.loading.first);let F=Z.responseType==="arraybuffer"?V.byteLength:V.length;Q.loaded=Q.total=F,Q.bwEstimate=Q.total*8000/(Q.loading.end-Q.loading.first);let R=(W=this.callbacks)==null?void 0:W.onProgress;if(R)R(Q,Y,V,Z);let B={url:Z.responseURL,data:V,code:H};(q=this.callbacks)==null||q.onSuccess(B,Q,Y,Z);return}}let K=J.loadPolicy.errorRetry,G=Q.retry,U={url:Y.url,data:void 0,code:H};if(c2(K,G,!1,U))this.retry(K);else{var z;S0.error(`${H} while loading ${Y.url}`),(z=this.callbacks)==null||z.onError({code:H,text:Z.statusText},Y,Z,Q)}}}}loadtimeout(){if(!this.config)return;let Y=this.config.loadPolicy.timeoutRetry,Z=this.stats.retry;if(c2(Y,Z,!0))this.retry(Y);else{var Q;S0.warn(`timeout while loading ${(Q=this.context)==null?void 0:Q.url}`);let X=this.callbacks;if(X)this.abortInternal(),X.onTimeout(this.stats,this.context,this.loader)}}retry(Y){let{context:Z,stats:Q}=this;this.retryDelay=$q(Y,Q.retry),Q.retry++,S0.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${Z==null?void 0:Z.url}, retrying ${Q.retry}/${Y.maxNumRetry} in ${this.retryDelay}ms`),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)}loadprogress(Y){let Z=this.stats;if(Z.loaded=Y.loaded,Y.lengthComputable)Z.total=Y.total}getCacheAge(){let Y=null;if(this.loader&&oj.test(this.loader.getAllResponseHeaders())){let Z=this.loader.getResponseHeader("age");Y=Z?parseFloat(Z):null}return Y}getResponseHeader(Y){if(this.loader&&new RegExp(`^${Y}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders()))return this.loader.getResponseHeader(Y);return null}}var dj={maxTimeToFirstByteMs:8000,maxLoadTimeMs:20000,timeoutRetry:null,errorRetry:null},lj=I0(I0({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,maxDevicePixelRatio:Number.POSITIVE_INFINITY,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,startOnSegmentBoundary:!1,maxBufferSize:60000000,maxFragLookUpTolerance:0.25,maxBufferHole:0.1,detectStallWithCurrentTimeMs:1250,highBufferWatchdogPeriod:2,nudgeOffset:0.1,nudgeMaxRetry:3,nudgeOnVideoHole:!0,liveSyncMode:"edge",liveSyncDurationCount:3,liveSyncOnStallIncrease:1,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5000,fpsDroppedMonitoringThreshold:0.2,appendErrorMaxRetry:3,ignorePlaylistParsingErrors:!1,loader:_q,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:s5,bufferController:YK,capLevelController:vY,errorController:e5,fpsController:UK,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:500000,abrEwmaDefaultEstimateMax:5000000,abrBandWidthFactor:0.95,abrBandWidthUpFactor:0.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:EE,requireKeySystemAccessOnStart:!1,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableEmsgKLVMetadata:!1,enableID3MetadataCues:!0,enableInterstitialPlayback:!0,interstitialAppendInPlace:!0,interstitialLiveLookAhead:10,useMediaCapabilities:!0,preserveManualLevelOnError:!1,certLoadPolicy:{default:dj},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8000,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:1,retryDelayMs:1000,maxRetryDelayMs:20000,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1000,maxRetryDelayMs:20000,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1000,maxRetryDelayMs:8000}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1000,maxRetryDelayMs:8000}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:120000,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1000,maxRetryDelayMs:8000}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1000,maxRetryDelayMs:8000}}},interstitialAssetListLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:30000,timeoutRetry:{maxNumRetry:0,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:0,retryDelayMs:1000,maxRetryDelayMs:8000}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1000,manifestLoadingMaxRetryTimeout:64000,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1000,levelLoadingMaxRetryTimeout:64000,fragLoadingTimeOut:20000,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1000,fragLoadingMaxRetryTimeout:64000},nj()),{},{subtitleStreamController:DK,subtitleTrackController:BK,timelineController:_K,audioStreamController:sE,audioTrackController:rE,emeController:V9,cmcdController:KK,contentSteeringController:GK,interstitialsController:AK});function nj(){return{cueHandler:bj,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}}function sj(Y,Z,Q){if((Z.liveSyncDurationCount||Z.liveMaxLatencyDurationCount)&&(Z.liveSyncDuration||Z.liveMaxLatencyDuration))throw Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(Z.liveMaxLatencyDurationCount!==void 0&&(Z.liveSyncDurationCount===void 0||Z.liveMaxLatencyDurationCount<=Z.liveSyncDurationCount))throw Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(Z.liveMaxLatencyDuration!==void 0&&(Z.liveSyncDuration===void 0||Z.liveMaxLatencyDuration<=Z.liveSyncDuration))throw Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');let X=Gq(Y),J=["manifest","level","frag"],W=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return J.forEach((q)=>{let z=`${q==="level"?"playlist":q}LoadPolicy`,H=Z[z]===void 0,E=[];if(W.forEach((K)=>{let G=`${q}Loading${K}`,U=Z[G];if(U!==void 0&&H){E.push(G);let V=X[z].default;switch(Z[z]={default:V},K){case"TimeOut":V.maxLoadTimeMs=U,V.maxTimeToFirstByteMs=U;break;case"MaxRetry":V.errorRetry.maxNumRetry=U,V.timeoutRetry.maxNumRetry=U;break;case"RetryDelay":V.errorRetry.retryDelayMs=U,V.timeoutRetry.retryDelayMs=U;break;case"MaxRetryTimeout":V.errorRetry.maxRetryDelayMs=U,V.timeoutRetry.maxRetryDelayMs=U;break}}}),E.length)Q.warn(`hls.js config: "${E.join('", "')}" setting(s) are deprecated, use "${z}": ${_0(Z[z])}`)}),I0(I0({},X),Z)}function Gq(Y){if(Y&&typeof Y==="object"){if(Array.isArray(Y))return Y.map(Gq);return Object.keys(Y).reduce((Z,Q)=>{return Z[Q]=Gq(Y[Q]),Z},{})}return Y}function ij(Y,Z){let Q=Y.loader;if(Q!==Kq&&Q!==_q)Z.log("[config]: Custom loader detected, cannot enable progressive streaming"),Y.progressive=!1;else if(_j())Y.loader=Kq,Y.progressive=!0,Y.enableSoftwareAES=!0,Z.log("[config]: Progressive streaming enabled, using FetchLoader")}var k2=2,rj=0.1,aj=0.05,tj=100;class cK extends Lq{constructor(Y,Z){super("gap-controller",Y.logger);this.hls=void 0,this.fragmentTracker=void 0,this.media=null,this.mediaSource=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.buffered={},this.lastCurrentTime=0,this.ended=0,this.waiting=0,this.onMediaPlaying=()=>{this.ended=0,this.waiting=0},this.onMediaWaiting=()=>{var Q;if((Q=this.media)!=null&&Q.seeking)return;this.waiting=self.performance.now(),this.tick()},this.onMediaEnded=()=>{if(this.hls){var Q;this.ended=((Q=this.media)==null?void 0:Q.currentTime)||1,this.hls.trigger(N.MEDIA_ENDED,{stalled:!1})}},this.hls=Y,this.fragmentTracker=Z,this.registerListeners()}registerListeners(){let{hls:Y}=this;if(Y)Y.on(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.on(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.on(N.BUFFER_APPENDED,this.onBufferAppended,this)}unregisterListeners(){let{hls:Y}=this;if(Y)Y.off(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.off(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.off(N.BUFFER_APPENDED,this.onBufferAppended,this)}destroy(){super.destroy(),this.unregisterListeners(),this.media=this.hls=this.fragmentTracker=null,this.mediaSource=void 0}onMediaAttached(Y,Z){this.setInterval(tj),this.mediaSource=Z.mediaSource;let Q=this.media=Z.media;I1(Q,"playing",this.onMediaPlaying),I1(Q,"waiting",this.onMediaWaiting),I1(Q,"ended",this.onMediaEnded)}onMediaDetaching(Y,Z){this.clearInterval();let{media:Q}=this;if(Q)k1(Q,"playing",this.onMediaPlaying),k1(Q,"waiting",this.onMediaWaiting),k1(Q,"ended",this.onMediaEnded),this.media=null;this.mediaSource=void 0}onBufferAppended(Y,Z){this.buffered=Z.timeRanges}get hasBuffered(){return Object.keys(this.buffered).length>0}tick(){var Y;if(!((Y=this.media)!=null&&Y.readyState)||!this.hasBuffered)return;let Z=this.media.currentTime;this.poll(Z,this.lastCurrentTime),this.lastCurrentTime=Z}poll(Y,Z){var Q,X;let J=(Q=this.hls)==null?void 0:Q.config;if(!J)return;let W=this.media;if(!W)return;let{seeking:q}=W,z=this.seeking&&!q,H=!this.seeking&&q,E=W.paused&&!q||W.ended||W.playbackRate===0;if(this.seeking=q,Y!==Z){if(Z)this.ended=0;if(this.moved=!0,!q){if(this.nudgeRetry=0,J.nudgeOnVideoHole&&!E&&Y>Z)this.nudgeOnVideoHole(Y,Z)}if(this.waiting===0)this.stallResolved(Y);return}if(H||z){if(z)this.stallResolved(Y);return}if(E){if(this.nudgeRetry=0,this.stallResolved(Y),!this.ended&&W.ended&&this.hls)this.ended=Y||1,this.hls.trigger(N.MEDIA_ENDED,{stalled:!1});return}if(!V0.getBuffered(W).length){this.nudgeRetry=0;return}let K=V0.bufferInfo(W,Y,0),G=K.nextStart||0,U=this.fragmentTracker;if(q&&U&&this.hls){let w=C5(this.hls.inFlightFragments,Y),D=K.len>k2,M=!G||w||G-Y>k2&&!U.getPartialFragment(Y);if(D||M)return;this.moved=!1}let V=(X=this.hls)==null?void 0:X.latestLevelDetails;if(!this.moved&&this.stalled!==null&&U){if(!(K.len>0)&&!G)return;let D=Math.max(G,K.start||0)-Y,C=V!=null&&V.live?V.targetduration*2:k2,I=P2(Y,U);if(D>0&&(D<=C||I)){if(!W.paused)this._trySkipBufferHole(I);return}}let F=J.detectStallWithCurrentTimeMs,R=self.performance.now(),B=this.waiting,$=this.stalled;if($===null)if(B>0&&R-B=F||B)&&this.hls){var O;if(((O=this.mediaSource)==null?void 0:O.readyState)==="ended"&&!(V!=null&&V.live)&&Math.abs(Y-((V==null?void 0:V.edge)||0))<1){if(this.ended)return;this.ended=Y||1,this.hls.trigger(N.MEDIA_ENDED,{stalled:!0});return}if(this._reportStall(K),!this.media||!this.hls)return}let j=V0.bufferInfo(W,Y,J.maxBufferHole);this._tryFixBufferStall(j,L,Y)}stallResolved(Y){let Z=this.stalled;if(Z&&this.hls){if(this.stalled=null,this.stallReported){let Q=self.performance.now()-Z;this.log(`playback not stuck anymore @${Y}, after ${Math.round(Q)}ms`),this.stallReported=!1,this.waiting=0,this.hls.trigger(N.STALL_RESOLVED,{})}}}nudgeOnVideoHole(Y,Z){var Q;let X=this.buffered.video;if(this.hls&&this.media&&this.fragmentTracker&&(Q=this.buffered.audio)!=null&&Q.length&&X&&X.length>1&&Y>X.end(0)){let J=V0.bufferedInfo(V0.timeRangesToArray(this.buffered.audio),Y,0);if(J.len>1&&Z>=J.start){let W=V0.timeRangesToArray(X),q=V0.bufferedInfo(W,Z,0).bufferedIndex;if(q>-1&&qq)&&E-H<1&&Y-H<2){let K=Error(`nudging playhead to flush pipeline after video hole. currentTime: ${Y} hole: ${H} -> ${E} buffered index: ${z}`);this.warn(K.message),this.media.currentTime+=0.000001;let G=P2(Y,this.fragmentTracker);if(G&&"fragment"in G)G=G.fragment;else if(!G)G=void 0;let U=V0.bufferInfo(this.media,Y,0);this.hls.trigger(N.ERROR,{type:Y0.MEDIA_ERROR,details:h.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:K,reason:K.message,frag:G,buffer:U.len,bufferInfo:U})}}}}}_tryFixBufferStall(Y,Z,Q){var X,J;let{fragmentTracker:W,media:q}=this,z=(X=this.hls)==null?void 0:X.config;if(!q||!W||!z)return;let H=(J=this.hls)==null?void 0:J.latestLevelDetails,E=P2(Q,W);if(E||H!=null&&H.live&&Q1&&Y.len>z.maxBufferHole||Y.nextStart&&(Y.nextStart-Qz.highBufferWatchdogPeriod*1000||this.waiting))this.warn("Trying to nudge playhead over buffer-hole"),this._tryNudgeBuffer(Y)}adjacentTraversal(Y,Z){let Q=this.fragmentTracker,X=Y.nextStart;if(Q&&X){let J=Q.getFragAtPos(Z,t.MAIN),W=Q.getFragAtPos(X,t.MAIN);if(J&&W)return W.sn-J.sn<2}return!1}_reportStall(Y){let{hls:Z,media:Q,stallReported:X,stalled:J}=this;if(!X&&J!==null&&Q&&Z){this.stallReported=!0;let W=Error(`Playback stalling at @${Q.currentTime} due to low buffer (${_0(Y)})`);this.warn(W.message),Z.trigger(N.ERROR,{type:Y0.MEDIA_ERROR,details:h.BUFFER_STALLED_ERROR,fatal:!1,error:W,buffer:Y.len,bufferInfo:Y,stalled:{start:J}})}}_trySkipBufferHole(Y){var Z;let{fragmentTracker:Q,media:X}=this,J=(Z=this.hls)==null?void 0:Z.config;if(!X||!Q||!J)return 0;let W=X.currentTime,q=V0.bufferInfo(X,W,0),z=W0&&q.len<1&&X.readyState<3,G=z-W;if(G>0&&(E||K)){if(G>J.maxBufferHole){let V=!1;if(W===0){let F=Q.getAppendedFrag(0,t.MAIN);if(F&&z"u")return;return self.VTTCue||self.TextTrackCue}function pW(Y,Z,Q,X,J){let W=new Y(Z,Q,"");try{if(W.value=X,J)W.type=J}catch(q){W=new Y(Z,Q,_0(J?I0({type:J},X):X))}return W}var C2=(()=>{let Y=Vq();try{Y&&new Y(0,Number.POSITIVE_INFINITY,"")}catch(Z){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})();class uK{constructor(Y){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.removeCues=!0,this.assetCue=void 0,this.onEventCueEnter=()=>{if(!this.hls)return;this.hls.trigger(N.EVENT_CUE_ENTER,{})},this.hls=Y,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=this.onEventCueEnter=null}_registerListeners(){let{hls:Y}=this;if(Y)Y.on(N.MEDIA_ATTACHING,this.onMediaAttaching,this),Y.on(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.on(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),Y.on(N.BUFFER_FLUSHING,this.onBufferFlushing,this),Y.on(N.LEVEL_UPDATED,this.onLevelUpdated,this),Y.on(N.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this)}_unregisterListeners(){let{hls:Y}=this;if(Y)Y.off(N.MEDIA_ATTACHING,this.onMediaAttaching,this),Y.off(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.off(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),Y.off(N.BUFFER_FLUSHING,this.onBufferFlushing,this),Y.off(N.LEVEL_UPDATED,this.onLevelUpdated,this),Y.off(N.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this)}onMediaAttaching(Y,Z){var Q;if(this.media=Z.media,((Q=Z.overrides)==null?void 0:Q.cueRemoval)===!1)this.removeCues=!1}onMediaAttached(){var Y;let Z=(Y=this.hls)==null?void 0:Y.latestLevelDetails;if(Z)this.updateDateRangeCues(Z)}onMediaDetaching(Y,Z){if(this.media=null,!!Z.transferMedia)return;if(this.id3Track){if(this.removeCues)z9(this.id3Track,this.onEventCueEnter);this.id3Track=null}this.dateRangeCuesAppended={}}onManifestLoading(){this.dateRangeCuesAppended={}}createTrack(Y){let Z=this.getID3Track(Y.textTracks);return Z.mode="hidden",Z}getID3Track(Y){if(!this.media)return;for(let Z=0;ZC2)K=C2;if(K-E<=0)K=E+ej;for(let U=0;UE.type===m1.audioId3&&z;else if(X==="video")H=(E)=>E.type===m1.emsg&&q;else H=(E)=>E.type===m1.audioId3&&z||E.type===m1.emsg&&q;qq(J,Z,Q,H)}}onLevelUpdated(Y,{details:Z}){this.updateDateRangeCues(Z,!0)}onLevelPtsUpdated(Y,Z){if(Math.abs(Z.drift)>0.01)this.updateDateRangeCues(Z.details)}updateDateRangeCues(Y,Z){if(!this.hls||!this.media)return;let{assetPlayerId:Q,timelineOffset:X,enableDateRangeMetadataCues:J,interstitialsController:W}=this.hls.config;if(!J)return;let q=Vq();if(Q&&X&&!W){let{fragmentStart:F,fragmentEnd:R}=Y,B=this.assetCue;if(B)B.startTime=F,B.endTime=R;else if(q){if(B=this.assetCue=pW(q,F,R,{assetPlayerId:this.hls.config.assetPlayerId},"hlsjs.interstitial.asset"),B)B.id=Q,this.id3Track||(this.id3Track=this.createTrack(this.media)),this.id3Track.addCue(B),B.addEventListener("enter",this.onEventCueEnter)}}if(!Y.hasProgramDateTime)return;let{id3Track:z}=this,{dateRanges:H}=Y,E=Object.keys(H),K=this.dateRangeCuesAppended;if(z&&Z){var G;if((G=z.cues)!=null&&G.length){let F=Object.keys(K).filter((R)=>!E.includes(R));for(let R=F.length;R--;){var U;let B=F[R],$=(U=K[B])==null?void 0:U.cues;if(delete K[B],$)Object.keys($).forEach((L)=>{let O=$[L];if(O){O.removeEventListener("enter",this.onEventCueEnter);try{z.removeCue(O)}catch(j){}}})}}else K=this.dateRangeCuesAppended={}}let V=Y.fragments[Y.fragments.length-1];if(E.length===0||!r(V==null?void 0:V.programDateTime))return;this.id3Track||(this.id3Track=this.createTrack(this.media));for(let F=0;F{if(f!==B.id){let _=H[f];if(_.class===B.class&&_.startDate>B.startDate&&(!x||B.startDate0.01)f.startTime=$,f.endTime=w}else if(q){let _=B.attr[x];if(WL(x))_=h5(_);let n=pW(q,$,w,{key:x,data:_},m1.dateRange);if(n){if(n.id=R,this.id3Track.addCue(n),O[x]=n,W){if(x==="X-ASSET-LIST"||x==="X-ASSET-URL")n.addEventListener("enter",this.onEventCueEnter)}}}}K[R]={cues:O,dateRange:B,durationKnown:j}}}}class mK{constructor(Y){this.hls=void 0,this.config=void 0,this.media=null,this.currentTime=0,this.stallCount=0,this._latency=null,this._targetLatencyUpdated=!1,this.onTimeupdate=()=>{let{media:Z}=this,Q=this.levelDetails;if(!Z||!Q)return;this.currentTime=Z.currentTime;let X=this.computeLatency();if(X===null)return;this._latency=X;let{lowLatencyMode:J,maxLiveSyncPlaybackRate:W}=this.config;if(!J||W===1||!Q.live)return;let q=this.targetLatency;if(q===null)return;let z=X-q,H=Math.min(this.maxLatency,q+Q.targetduration);if(z0.05&&this.forwardBufferLength>1){let K=Math.min(2,Math.max(1,W)),G=Math.round(2/(1+Math.exp(-0.75*z-this.edgeStalled))*20)/20,U=Math.min(K,Math.max(1,G));this.changeMediaPlaybackRate(Z,U)}else if(Z.playbackRate!==1&&Z.playbackRate!==0)this.changeMediaPlaybackRate(Z,1)},this.hls=Y,this.config=Y.config,this.registerListeners()}get levelDetails(){var Y;return((Y=this.hls)==null?void 0:Y.latestLevelDetails)||null}get latency(){return this._latency||0}get maxLatency(){let{config:Y}=this;if(Y.liveMaxLatencyDuration!==void 0)return Y.liveMaxLatencyDuration;let Z=this.levelDetails;return Z?Y.liveMaxLatencyDurationCount*Z.targetduration:0}get targetLatency(){let Y=this.levelDetails;if(Y===null||this.hls===null)return null;let{holdBack:Z,partHoldBack:Q,targetduration:X}=Y,{liveSyncDuration:J,liveSyncDurationCount:W,lowLatencyMode:q}=this.config,z=this.hls.userConfig,H=q?Q||Z:Z;if(this._targetLatencyUpdated||z.liveSyncDuration||z.liveSyncDurationCount||H===0)H=J!==void 0?J:W*X;let E=X;return H+Math.min(this.stallCount*this.config.liveSyncOnStallIncrease,E)}set targetLatency(Y){this.stallCount=0,this.config.liveSyncDuration=Y,this._targetLatencyUpdated=!0}get liveSyncPosition(){let Y=this.estimateLiveEdge(),Z=this.targetLatency;if(Y===null||Z===null)return null;let Q=this.levelDetails;if(Q===null)return null;let X=Q.edge,J=Y-Z-this.edgeStalled,W=X-Q.totalduration,q=X-(this.config.lowLatencyMode&&Q.partTarget||Q.targetduration);return Math.min(Math.max(W,J),q)}get drift(){let Y=this.levelDetails;if(Y===null)return 1;return Y.drift}get edgeStalled(){let Y=this.levelDetails;if(Y===null)return 0;let Z=(this.config.lowLatencyMode&&Y.partTarget||Y.targetduration)*3;return Math.max(Y.age-Z,0)}get forwardBufferLength(){let{media:Y}=this,Z=this.levelDetails;if(!Y||!Z)return 0;let Q=Y.buffered.length;return(Q?Y.buffered.end(Q-1):Z.edge)-this.currentTime}destroy(){this.unregisterListeners(),this.onMediaDetaching(),this.hls=null}registerListeners(){let{hls:Y}=this;if(!Y)return;Y.on(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.on(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.LEVEL_UPDATED,this.onLevelUpdated,this),Y.on(N.ERROR,this.onError,this)}unregisterListeners(){let{hls:Y}=this;if(!Y)return;Y.off(N.MEDIA_ATTACHED,this.onMediaAttached,this),Y.off(N.MEDIA_DETACHING,this.onMediaDetaching,this),Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.LEVEL_UPDATED,this.onLevelUpdated,this),Y.off(N.ERROR,this.onError,this)}onMediaAttached(Y,Z){this.media=Z.media,this.media.addEventListener("timeupdate",this.onTimeupdate)}onMediaDetaching(){if(this.media)this.media.removeEventListener("timeupdate",this.onTimeupdate),this.media=null}onManifestLoading(){this._latency=null,this.stallCount=0}onLevelUpdated(Y,{details:Z}){if(Z.advanced)this.onTimeupdate();if(!Z.live&&this.media)this.media.removeEventListener("timeupdate",this.onTimeupdate)}onError(Y,Z){var Q;if(Z.details!==h.BUFFER_STALLED_ERROR)return;if(this.stallCount++,this.hls&&(Q=this.levelDetails)!=null&&Q.live)this.hls.logger.warn("[latency-controller]: Stall detected, adjusting target latency")}changeMediaPlaybackRate(Y,Z){var Q,X;if(Y.playbackRate===Z)return;(Q=this.hls)==null||Q.logger.debug(`[latency-controller]: latency=${this.latency.toFixed(3)}, targetLatency=${(X=this.targetLatency)==null?void 0:X.toFixed(3)}, forwardBufferLength=${this.forwardBufferLength.toFixed(3)}: adjusting playback rate from ${Y.playbackRate} to ${Z}`),Y.playbackRate=Z}estimateLiveEdge(){let Y=this.levelDetails;if(Y===null)return null;return Y.edge+Y.age}computeLatency(){let Y=this.estimateLiveEdge();if(Y===null)return null;return Y-this.currentTime}}class oK extends YQ{constructor(Y,Z){super(Y,"level-controller");this._levels=[],this._firstLevel=-1,this._maxAutoLevel=-1,this._startLevel=void 0,this.currentLevel=null,this.currentLevelIndex=-1,this.manualLevelIndex=-1,this.steering=void 0,this.onParsedComplete=void 0,this.steering=Z,this._registerListeners()}_registerListeners(){let{hls:Y}=this;Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.MANIFEST_LOADED,this.onManifestLoaded,this),Y.on(N.LEVEL_LOADED,this.onLevelLoaded,this),Y.on(N.LEVELS_UPDATED,this.onLevelsUpdated,this),Y.on(N.FRAG_BUFFERED,this.onFragBuffered,this),Y.on(N.ERROR,this.onError,this)}_unregisterListeners(){let{hls:Y}=this;Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.MANIFEST_LOADED,this.onManifestLoaded,this),Y.off(N.LEVEL_LOADED,this.onLevelLoaded,this),Y.off(N.LEVELS_UPDATED,this.onLevelsUpdated,this),Y.off(N.FRAG_BUFFERED,this.onFragBuffered,this),Y.off(N.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}stopLoad(){this._levels.forEach((Z)=>{Z.loadError=0,Z.fragmentError=0}),super.stopLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1}onManifestLoading(Y,Z){this.resetLevels()}onManifestLoaded(Y,Z){let Q=this.hls.config.preferManagedMediaSource,X=[],J={},W={},q=!1,z=!1,H=!1;Z.levels.forEach((E)=>{let K=E.attrs,{audioCodec:G,videoCodec:U}=E;if(G)E.audioCodec=G=b2(G,Q)||void 0;if(U)U=E.videoCodec=x$(U);let{width:V,height:F,unknownCodecs:R}=E,B=(R==null?void 0:R.length)||0;if(q||(q=!!(V&&F)),z||(z=!!U),H||(H=!!G),B||G&&!this.isAudioSupported(G)||U&&!this.isVideoSupported(U)){this.log(`Some or all CODECS not supported "${K.CODECS}"`);return}let{CODECS:$,"FRAME-RATE":L,"HDCP-LEVEL":O,"PATHWAY-ID":j,RESOLUTION:w,"VIDEO-RANGE":D}=K,C=`${`${j||"."}-`}${E.bitrate}-${w}-${L}-${$}-${D}-${O}`;if(!J[C]){let I=this.createLevel(E);J[C]=I,W[C]=1,X.push(I)}else if(J[C].uri!==E.url&&!E.attrs["PATHWAY-ID"]){let I=W[C]+=1;E.attrs["PATHWAY-ID"]=Array(I+1).join(".");let x=this.createLevel(E);J[C]=x,X.push(x)}else J[C].addGroupId("audio",K.AUDIO),J[C].addGroupId("text",K.SUBTITLES)}),this.filterAndSortMediaOptions(X,Z,q,z,H)}createLevel(Y){let Z=new R9(Y),Q=Y.supplemental;if(Q!=null&&Q.videoCodec&&!this.isVideoSupported(Q.videoCodec)){let X=Error(`SUPPLEMENTAL-CODECS not supported "${Q.videoCodec}"`);this.log(X.message),Z.supportedResult=o5(X,[])}return Z}isAudioSupported(Y){return fY(Y,"audio",this.hls.config.preferManagedMediaSource)}isVideoSupported(Y){return fY(Y,"video",this.hls.config.preferManagedMediaSource)}filterAndSortMediaOptions(Y,Z,Q,X,J){var W;let q=[],z=[],H=Y,E=((W=Z.stats)==null?void 0:W.parsing)||{};if((Q||X)&&J)H=H.filter(({videoCodec:$,videoRange:L,width:O,height:j})=>(!!$||!!(O&&j))&&_$(L));if(H.length===0){Promise.resolve().then(()=>{if(this.hls){let $="no level with compatible codecs found in manifest",L=$;if(Z.levels.length)L=`one or more CODECS in variant not supported: ${_0(Z.levels.map((j)=>j.attrs.CODECS).filter((j,w,D)=>D.indexOf(j)===w))}`,this.warn(L),$+=` (${L})`;let O=Error($);this.hls.trigger(N.ERROR,{type:Y0.MEDIA_ERROR,details:h.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:Z.url,error:O,reason:L})}}),E.end=performance.now();return}if(Z.audioTracks)q=Z.audioTracks.filter(($)=>!$.audioCodec||this.isAudioSupported($.audioCodec)),x5(q);if(Z.subtitles)z=Z.subtitles,x5(z);let K=H.slice(0);H.sort(($,L)=>{if($.attrs["HDCP-LEVEL"]!==L.attrs["HDCP-LEVEL"])return($.attrs["HDCP-LEVEL"]||"")>(L.attrs["HDCP-LEVEL"]||"")?1:-1;if(Q&&$.height!==L.height)return $.height-L.height;if($.frameRate!==L.frameRate)return $.frameRate-L.frameRate;if($.videoRange!==L.videoRange)return _2.indexOf($.videoRange)-_2.indexOf(L.videoRange);if($.videoCodec!==L.videoCodec){let O=w3($.videoCodec),j=w3(L.videoCodec);if(O!==j)return j-O}if($.uri===L.uri&&$.codecSet!==L.codecSet){let O=g2($.codecSet),j=g2(L.codecSet);if(O!==j)return j-O}if($.averageBitrate!==L.averageBitrate)return $.averageBitrate-L.averageBitrate;return 0});let G=K[0];if(this.steering){if(H=this.steering.filterParsedLevels(H),H.length!==K.length){for(let $=0;$O&&O===this.hls.abrEwmaDefaultEstimate)this.hls.bandwidthEstimate=j}break}let V=J&&!X,F=this.hls.config,R=!!(F.audioStreamController&&F.audioTrackController),B={levels:H,audioTracks:q,subtitleTracks:z,sessionData:Z.sessionData,sessionKeys:Z.sessionKeys,firstLevel:this._firstLevel,stats:Z.stats,audio:J,video:X,altAudio:R&&!V&&q.some(($)=>!!$.url)};E.end=performance.now(),this.hls.trigger(N.MANIFEST_PARSED,B)}get levels(){if(this._levels.length===0)return null;return this._levels}get loadLevelObj(){return this.currentLevel}get level(){return this.currentLevelIndex}set level(Y){let Z=this._levels;if(Z.length===0)return;if(Y<0||Y>=Z.length){let E=Error("invalid level idx"),K=Y<0;if(this.hls.trigger(N.ERROR,{type:Y0.OTHER_ERROR,details:h.LEVEL_SWITCH_ERROR,level:Y,fatal:K,error:E,reason:E.message}),K)return;Y=Math.min(Y,Z.length-1)}let Q=this.currentLevelIndex,X=this.currentLevel,J=X?X.attrs["PATHWAY-ID"]:void 0,W=Z[Y],q=W.attrs["PATHWAY-ID"];if(this.currentLevelIndex=Y,this.currentLevel=W,Q===Y&&X&&J===q)return;this.log(`Switching to level ${Y} (${W.height?W.height+"p ":""}${W.videoRange?W.videoRange+" ":""}${W.codecSet?W.codecSet+" ":""}@${W.bitrate})${q?" with Pathway "+q:""} from level ${Q}${J?" with Pathway "+J:""}`);let z={level:Y,attrs:W.attrs,details:W.details,bitrate:W.bitrate,averageBitrate:W.averageBitrate,maxBitrate:W.maxBitrate,realBitrate:W.realBitrate,width:W.width,height:W.height,codecSet:W.codecSet,audioCodec:W.audioCodec,videoCodec:W.videoCodec,audioGroups:W.audioGroups,subtitleGroups:W.subtitleGroups,loaded:W.loaded,loadError:W.loadError,fragmentError:W.fragmentError,name:W.name,id:W.id,uri:W.uri,url:W.url,urlId:0,audioGroupIds:W.audioGroupIds,textGroupIds:W.textGroupIds};this.hls.trigger(N.LEVEL_SWITCHING,z);let H=W.details;if(!H||H.live){let E=this.switchParams(W.uri,X==null?void 0:X.details,H);this.loadPlaylist(E)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(Y){if(this.manualLevelIndex=Y,this._startLevel===void 0)this._startLevel=Y;if(Y!==-1)this.level=Y}get firstLevel(){return this._firstLevel}set firstLevel(Y){this._firstLevel=Y}get startLevel(){if(this._startLevel===void 0){let Y=this.hls.config.startLevel;if(Y!==void 0)return Y;return this.hls.firstAutoLevel}return this._startLevel}set startLevel(Y){this._startLevel=Y}get pathways(){if(this.steering)return this.steering.pathways();return[]}get pathwayPriority(){if(this.steering)return this.steering.pathwayPriority;return null}set pathwayPriority(Y){if(this.steering){let Z=this.steering.pathways(),Q=Y.filter((X)=>{return Z.indexOf(X)!==-1});if(Y.length<1){this.warn(`pathwayPriority ${Y} should contain at least one pathway from list: ${Z}`);return}this.steering.pathwayPriority=Q}}onError(Y,Z){if(Z.fatal||!Z.context)return;if(Z.context.type===O0.LEVEL&&Z.context.level===this.level)this.checkRetry(Z)}onFragBuffered(Y,{frag:Z}){if(Z!==void 0&&Z.type===t.MAIN){let Q=Z.elementaryStreams;if(!Object.keys(Q).some((J)=>!!Q[J]))return;let X=this._levels[Z.level];if(X!=null&&X.loadError)this.log(`Resetting level error count of ${X.loadError} on frag buffered`),X.loadError=0}}onLevelLoaded(Y,Z){var Q;let{level:X,details:J}=Z,W=Z.levelInfo;if(!W){var q;if(this.warn(`Invalid level index ${X}`),(q=Z.deliveryDirectives)!=null&&q.skip)J.deltaUpdateFailed=!0;return}if(W===this.currentLevel||Z.withoutMultiVariant){if(W.fragmentError===0)W.loadError=0;let z=W.details;if(z===Z.details&&z.advanced)z=void 0;this.playlistLoaded(X,Z,z)}else if((Q=Z.deliveryDirectives)!=null&&Q.skip)J.deltaUpdateFailed=!0}loadPlaylist(Y){if(super.loadPlaylist(),this.shouldLoadPlaylist(this.currentLevel))this.scheduleLoading(this.currentLevel,Y)}loadingPlaylist(Y,Z){super.loadingPlaylist(Y,Z);let Q=this.getUrlWithDirectives(Y.uri,Z),X=this.currentLevelIndex,J=Y.attrs["PATHWAY-ID"],W=Y.details,q=W==null?void 0:W.age;this.log(`Loading level index ${X}${(Z==null?void 0:Z.msn)!==void 0?" at sn "+Z.msn+" part "+Z.part:""}${J?" Pathway "+J:""}${q&&W.live?" age "+q.toFixed(1)+(W.type?" "+W.type||"":""):""} ${Q}`),this.hls.trigger(N.LEVEL_LOADING,{url:Q,level:X,levelInfo:Y,pathwayId:Y.attrs["PATHWAY-ID"],id:0,deliveryDirectives:Z||null})}get nextLoadLevel(){if(this.manualLevelIndex!==-1)return this.manualLevelIndex;else return this.hls.nextAutoLevel}set nextLoadLevel(Y){if(this.level=Y,this.manualLevelIndex===-1)this.hls.nextAutoLevel=Y}removeLevel(Y){var Z;if(this._levels.length===1)return;let Q=this._levels.filter((J,W)=>{if(W!==Y)return!0;if(this.steering)this.steering.removeLevel(J);if(J===this.currentLevel){if(this.currentLevel=null,this.currentLevelIndex=-1,J.details)J.details.fragments.forEach((q)=>q.level=-1)}return!1});if(NE(Q),this._levels=Q,this.currentLevelIndex>-1&&(Z=this.currentLevel)!=null&&Z.details)this.currentLevelIndex=this.currentLevel.details.fragments[0].level;if(this.manualLevelIndex>-1)this.manualLevelIndex=this.currentLevelIndex;let X=Q.length-1;if(this._firstLevel=Math.min(this._firstLevel,X),this._startLevel)this._startLevel=Math.min(this._startLevel,X);this.hls.trigger(N.LEVELS_UPDATED,{levels:Q})}onLevelsUpdated(Y,{levels:Z}){this._levels=Z}checkMaxAutoUpdated(){let{autoLevelCapping:Y,maxAutoLevel:Z,maxHdcpLevel:Q}=this.hls;if(this._maxAutoLevel!==Z)this._maxAutoLevel=Z,this.hls.trigger(N.MAX_AUTO_LEVEL_UPDATED,{autoLevelCapping:Y,levels:this.levels,maxAutoLevel:Z,minAutoLevel:this.hls.minAutoLevel,maxHdcpLevel:Q})}}function x5(Y){let Z={};Y.forEach((Q)=>{let X=Q.groupId||"";Q.id=Z[X]=Z[X]||0,Z[X]++})}function dK(){return self.SourceBuffer||self.WebKitSourceBuffer}function lK(){if(!b6())return!1;let Z=dK();return!Z||Z.prototype&&typeof Z.prototype.appendBuffer==="function"&&typeof Z.prototype.remove==="function"}function YA(){if(!lK())return!1;let Y=b6();return typeof(Y==null?void 0:Y.isTypeSupported)==="function"&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some((Z)=>Y.isTypeSupported(yY(Z,"video")))||["mp4a.40.2","fLaC"].some((Z)=>Y.isTypeSupported(yY(Z,"audio"))))}function ZA(){var Y;let Z=dK();return typeof(Z==null||(Y=Z.prototype)==null?void 0:Y.changeType)==="function"}var QA=100;class nK extends a2{constructor(Y,Z,Q){super(Y,Z,Q,"stream-controller",t.MAIN);this.audioCodecSwap=!1,this.level=-1,this._forceStartLoad=!1,this._hasEnoughToStart=!1,this.altAudio=0,this.audioOnly=!1,this.fragPlaying=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this.onMediaPlaying=()=>{this.tick()},this.onMediaSeeked=()=>{let X=this.media,J=X?X.currentTime:null;if(J===null||!r(J))return;if(this.log(`Media seeked to ${J.toFixed(3)}`),!this.getBufferedFrag(J))return;let W=this.getFwdBufferInfoAtPos(X,J,t.MAIN,0);if(W===null||W.len===0){this.warn(`Main forward buffer length at ${J} on "seeked" event ${W?W.len:"empty"})`);return}this.tick()},this.registerListeners()}registerListeners(){super.registerListeners();let{hls:Y}=this;Y.on(N.MANIFEST_PARSED,this.onManifestParsed,this),Y.on(N.LEVEL_LOADING,this.onLevelLoading,this),Y.on(N.LEVEL_LOADED,this.onLevelLoaded,this),Y.on(N.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),Y.on(N.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),Y.on(N.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),Y.on(N.BUFFER_CREATED,this.onBufferCreated,this),Y.on(N.BUFFER_FLUSHED,this.onBufferFlushed,this),Y.on(N.LEVELS_UPDATED,this.onLevelsUpdated,this),Y.on(N.FRAG_BUFFERED,this.onFragBuffered,this)}unregisterListeners(){super.unregisterListeners();let{hls:Y}=this;Y.off(N.MANIFEST_PARSED,this.onManifestParsed,this),Y.off(N.LEVEL_LOADED,this.onLevelLoaded,this),Y.off(N.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),Y.off(N.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),Y.off(N.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),Y.off(N.BUFFER_CREATED,this.onBufferCreated,this),Y.off(N.BUFFER_FLUSHED,this.onBufferFlushed,this),Y.off(N.LEVELS_UPDATED,this.onLevelsUpdated,this),Y.off(N.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this.onMediaPlaying=this.onMediaSeeked=null,this.unregisterListeners(),super.onHandlerDestroying()}startLoad(Y,Z){if(this.levels){let{lastCurrentTime:Q,hls:X}=this;if(this.stopLoad(),this.setInterval(QA),this.level=-1,!this.startFragRequested){let J=X.startLevel;if(J===-1)if(X.config.testBandwidth&&this.levels.length>1)J=0,this.bitrateTest=!0;else J=X.firstAutoLevel;X.nextLoadLevel=J,this.level=X.loadLevel,this._hasEnoughToStart=!!Z}if(Q>0&&Y===-1&&!Z)this.log(`Override startPosition with lastCurrentTime @${Q.toFixed(3)}`),Y=Q;this.state=y.IDLE,this.nextLoadPosition=this.lastCurrentTime=Y+this.timelineOffset,this.startPosition=Z?-1:Y,this.tick()}else this._forceStartLoad=!0,this.state=y.STOPPED}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case y.WAITING_LEVEL:{let{levels:Y,level:Z}=this,Q=Y==null?void 0:Y[Z],X=Q==null?void 0:Q.details;if(X&&(!X.live||this.levelLastLoaded===Q&&!this.waitForLive(Q))){if(this.waitForCdnTuneIn(X))break;this.state=y.IDLE;break}else if(this.hls.nextLoadLevel!==this.level){this.state=y.IDLE;break}break}case y.FRAG_LOADING_WAITING_RETRY:this.checkRetryDate();break}if(this.state===y.IDLE)this.doTickIdle();this.onTickEnd()}onTickEnd(){var Y;if(super.onTickEnd(),(Y=this.media)!=null&&Y.readyState&&this.media.seeking===!1)this.lastCurrentTime=this.media.currentTime;this.checkFragmentChanged()}doTickIdle(){let{hls:Y,levelLastLoaded:Z,levels:Q,media:X}=this;if(Z===null||!X&&!this.primaryPrefetch&&(this.startFragRequested||!Y.config.startFragPrefetch))return;if(this.altAudio&&this.audioOnly)return;let J=this.buffering?Y.nextLoadLevel:Y.loadLevel;if(!(Q!=null&&Q[J]))return;let W=Q[J],q=this.getMainFwdBufferInfo();if(q===null)return;let z=this.getLevelDetails();if(z&&this._streamEnded(q,z)){let F={};if(this.altAudio===2)F.type="video";this.hls.trigger(N.BUFFER_EOS,F),this.state=y.ENDED;return}if(!this.buffering)return;if(Y.loadLevel!==J&&Y.manualLevel===-1)this.log(`Adapting to level ${J} from level ${this.level}`);this.level=Y.nextLoadLevel=J;let H=W.details;if(!H||this.state===y.WAITING_LEVEL||this.waitForLive(W)){this.level=J,this.state=y.WAITING_LEVEL,this.startFragRequested=!1;return}let E=q.len,K=this.getMaxBufferLength(W.maxBitrate);if(E>=K)return;if(this.backtrackFragment&&this.backtrackFragment.start>q.end)this.backtrackFragment=null;let G=this.backtrackFragment?this.backtrackFragment.start:q.end,U=this.getNextFragment(G,H);if(this.couldBacktrack&&!this.fragPrevious&&U&&t0(U)&&this.fragmentTracker.getState(U)!==G1.OK){var V;let R=((V=this.backtrackFragment)!=null?V:U).sn-H.startSN,B=H.fragments[R-1];if(B&&U.cc===B.cc)U=B,this.fragmentTracker.removeFragment(B)}else if(this.backtrackFragment&&q.len)this.backtrackFragment=null;if(U&&this.isLoopLoading(U,G)){if(!U.gap){let R=this.audioOnly&&!this.altAudio?b0.AUDIO:b0.VIDEO,B=(R===b0.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;if(B)this.afterBufferFlushed(B,R,t.MAIN)}U=this.getNextFragmentLoopLoading(U,H,q,t.MAIN,K)}if(!U)return;if(U.initSegment&&!U.initSegment.data&&!this.bitrateTest)U=U.initSegment;this.loadFragment(U,W,G)}loadFragment(Y,Z,Q){let X=this.fragmentTracker.getState(Y);if(X===G1.NOT_LOADED||X===G1.PARTIAL)if(!t0(Y))this._loadInitSegment(Y,Z);else if(this.bitrateTest)this.log(`Fragment ${Y.sn} of level ${Y.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(Y,Z);else super.loadFragment(Y,Z,Q);else this.clearTrackerIfNeeded(Y)}getBufferedFrag(Y){return this.fragmentTracker.getBufferedFrag(Y,t.MAIN)}followingBufferedFrag(Y){if(Y)return this.getBufferedFrag(Y.end+0.5);return null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}nextLevelSwitch(){let{levels:Y,media:Z}=this;if(Z!=null&&Z.readyState){let Q,X=this.getAppendedFrag(Z.currentTime);if(X&&X.start>1)this.flushMainBuffer(0,X.start-1);let J=this.getLevelDetails();if(J!=null&&J.live){let q=this.getMainFwdBufferInfo();if(!q||q.len=W-Z.maxFragLookUpTolerance&&J<=q;if(X!==null&&Q.duration>X&&(J{if(!this.hls)return;this.hls.trigger(N.AUDIO_TRACK_SWITCHED,Z)}),Q.trigger(N.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null});return}Q.trigger(N.AUDIO_TRACK_SWITCHED,Z)}else this.altAudio=1}onAudioTrackSwitched(Y,Z){let Q=v2(Z.url,this.hls);if(Q){let X=this.videoBuffer;if(X&&this.mediaBuffer!==X)this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=X}this.altAudio=Q?2:0,this.tick()}onBufferCreated(Y,Z){let Q=Z.tracks,X,J,W=!1;for(let q in Q){let z=Q[q];if(z.id==="main"){if(J=q,X=z,q==="video"){let H=Q[q];if(H)this.videoBuffer=H.buffer}}else W=!0}if(W&&X)this.log(`Alternate track found, use ${J}.buffered to schedule main fragment loading`),this.mediaBuffer=X.buffer;else this.mediaBuffer=this.media}onFragBuffered(Y,Z){let{frag:Q,part:X}=Z,J=Q.type===t.MAIN;if(J){if(this.fragContextChanged(Q)){if(this.warn(`Fragment ${Q.sn}${X?" p: "+X.index:""} of level ${Q.level} finished buffering, but was aborted. state: ${this.state}`),this.state===y.PARSED)this.state=y.IDLE;return}let q=X?X.stats:Q.stats;if(this.fragLastKbps=Math.round(8*q.total/(q.buffering.end-q.loading.first)),t0(Q))this.fragPrevious=Q;this.fragBufferedComplete(Q,X)}let W=this.media;if(!W)return;if(!this._hasEnoughToStart&&V0.getBuffered(W).length)this._hasEnoughToStart=!0,this.seekToStartPos();if(J)this.tick()}get hasEnoughToStart(){return this._hasEnoughToStart}onError(Y,Z){var Q;if(Z.fatal){this.state=y.ERROR;return}switch(Z.details){case h.FRAG_GAP:case h.FRAG_PARSING_ERROR:case h.FRAG_DECRYPT_ERROR:case h.FRAG_LOAD_ERROR:case h.FRAG_LOAD_TIMEOUT:case h.KEY_LOAD_ERROR:case h.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(t.MAIN,Z);break;case h.LEVEL_LOAD_ERROR:case h.LEVEL_LOAD_TIMEOUT:case h.LEVEL_PARSING_ERROR:if(!Z.levelRetry&&this.state===y.WAITING_LEVEL&&((Q=Z.context)==null?void 0:Q.type)===O0.LEVEL)this.state=y.IDLE;break;case h.BUFFER_ADD_CODEC_ERROR:case h.BUFFER_APPEND_ERROR:if(Z.parent!=="main")return;if(this.reduceLengthAndFlushBuffer(Z))this.resetLoadingState();break;case h.BUFFER_FULL_ERROR:if(Z.parent!=="main")return;if(this.reduceLengthAndFlushBuffer(Z))if(!this.config.interstitialsController&&this.config.assetPlayerId)this._hasEnoughToStart=!0;else this.flushMainBuffer(0,Number.POSITIVE_INFINITY);break;case h.INTERNAL_EXCEPTION:this.recoverWorkerError(Z);break}}onFragLoadEmergencyAborted(){if(this.state=y.IDLE,!this._hasEnoughToStart)this.startFragRequested=!1,this.nextLoadPosition=this.lastCurrentTime;this.tickImmediate()}onBufferFlushed(Y,{type:Z}){if(Z!==b0.AUDIO||!this.altAudio){let Q=(Z===b0.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;if(Q)this.afterBufferFlushed(Q,Z,t.MAIN),this.tick()}}onLevelsUpdated(Y,Z){if(this.level>-1&&this.fragCurrent){if(this.level=this.fragCurrent.level,this.level===-1)this.resetWhenMissingContext(this.fragCurrent)}this.levels=Z.levels}swapAudioCodec(){this.audioCodecSwap=!this.audioCodecSwap}seekToStartPos(){let{media:Y}=this;if(!Y)return;let Z=Y.currentTime,Q=this.startPosition;if(Q>=0&&Z0&&(z{let{hls:X}=this,J=Q==null?void 0:Q.frag;if(!J||this.fragContextChanged(J))return;Z.fragmentError=0,this.state=y.IDLE,this.startFragRequested=!1,this.bitrateTest=!1;let W=J.stats;W.parsing.start=W.parsing.end=W.buffering.start=W.buffering.end=self.performance.now(),X.trigger(N.FRAG_LOADED,Q),J.bitrateTest=!1}).catch((Q)=>{if(this.state===y.STOPPED||this.state===y.ERROR)return;this.warn(Q),this.resetFragmentLoading(Y)})}_handleTransmuxComplete(Y){let Z=this.playlistType,{hls:Q}=this,{remuxResult:X,chunkMeta:J}=Y,W=this.getCurrentContext(J);if(!W){this.resetWhenMissingContext(J);return}let{frag:q,part:z,level:H}=W,{video:E,text:K,id3:G,initSegment:U}=X,{details:V}=H,F=this.altAudio?void 0:X.audio;if(this.fragContextChanged(q)){this.fragmentTracker.removeFragment(q);return}if(this.state=y.PARSING,U){let R=U.tracks;if(R){let O=q.initSegment||q;if(this.unhandledEncryptionError(U,q))return;this._bufferInitSegment(H,R,O,J),Q.trigger(N.FRAG_PARSING_INIT_SEGMENT,{frag:O,id:Z,tracks:R})}let{initPTS:B,timescale:$}=U,L=this.initPTS[q.cc];if(r(B)&&(!L||L.baseTime!==B||L.timescale!==$)){let O=U.trackId;this.initPTS[q.cc]={baseTime:B,timescale:$,trackId:O},Q.trigger(N.INIT_PTS_FOUND,{frag:q,id:Z,initPTS:B,timescale:$,trackId:O})}}if(E&&V){if(F&&E.type==="audiovideo")this.logMuxedErr(q);let R=V.fragments[q.sn-1-V.startSN],B=q.sn===V.startSN,$=!R||q.cc>R.cc;if(X.independent!==!1){let{startPTS:L,endPTS:O,startDTS:j,endDTS:w}=E;if(z)z.elementaryStreams[E.type]={startPTS:L,endPTS:O,startDTS:j,endDTS:w};else{if(E.firstKeyFrame&&E.independent&&J.id===1&&!$)this.couldBacktrack=!0;if(E.dropped&&E.independent){let D=this.getMainFwdBufferInfo(),M=(D?D.end:this.getLoadPosition())+this.config.maxBufferHole,C=E.firstKeyFramePTS?E.firstKeyFramePTS:L;if(!B&&Mk2)q.gap=!0}if(q.setElementaryStreamInfo(E.type,L,O,j,w),this.backtrackFragment)this.backtrackFragment=q;this.bufferFragmentData(E,q,z,J,B||$)}else if(B||$)q.gap=!0;else{this.backtrack(q);return}}if(F){let{startPTS:R,endPTS:B,startDTS:$,endDTS:L}=F;if(z)z.elementaryStreams[b0.AUDIO]={startPTS:R,endPTS:B,startDTS:$,endDTS:L};q.setElementaryStreamInfo(b0.AUDIO,R,B,$,L),this.bufferFragmentData(F,q,z,J)}if(V&&G!=null&&G.samples.length){let R={id:Z,frag:q,details:V,samples:G.samples};Q.trigger(N.FRAG_PARSING_METADATA,R)}if(V&&K){let R={id:Z,frag:q,details:V,samples:K.samples};Q.trigger(N.FRAG_PARSING_USERDATA,R)}}logMuxedErr(Y){this.warn(`${t0(Y)?"Media":"Init"} segment with muxed audiovideo where only video expected: ${Y.url}`)}_bufferInitSegment(Y,Z,Q,X){if(this.state!==y.PARSING)return;if(this.audioOnly=!!Z.audio&&!Z.video,this.altAudio&&!this.audioOnly){if(delete Z.audio,Z.audiovideo)this.logMuxedErr(Q)}let{audio:J,video:W,audiovideo:q}=Z;if(J){let H=Y.audioCodec,E=x2(J.codec,H);if(E==="mp4a")E="mp4a.40.5";let K=navigator.userAgent.toLowerCase();if(this.audioCodecSwitch){if(E)if(E.indexOf("mp4a.40.5")!==-1)E="mp4a.40.2";else E="mp4a.40.5";let G=J.metadata;if(G&&"channelCount"in G&&(G.channelCount||1)!==1&&K.indexOf("firefox")===-1)E="mp4a.40.5"}if(E&&E.indexOf("mp4a.40.5")!==-1&&K.indexOf("android")!==-1&&J.container!=="audio/mpeg")E="mp4a.40.2",this.log(`Android: force audio codec to ${E}`);if(H&&H!==E)this.log(`Swapping manifest audio codec "${H}" for "${E}"`);J.levelCodec=E,J.id=t.MAIN,this.log(`Init audio buffer, container:${J.container}, codecs[selected/level/parsed]=[${E||""}/${H||""}/${J.codec}]`),delete Z.audiovideo}if(W){W.levelCodec=Y.videoCodec,W.id=t.MAIN;let H=W.codec;if((H==null?void 0:H.length)===4)switch(H){case"hvc1":case"hev1":W.codec="hvc1.1.6.L120.90";break;case"av01":W.codec="av01.0.04M.08";break;case"avc1":W.codec="avc1.42e01e";break}this.log(`Init video buffer, container:${W.container}, codecs[level/parsed]=[${Y.videoCodec||""}/${H}]${W.codec!==H?" parsed-corrected="+W.codec:""}${W.supplemental?" supplemental="+W.supplemental:""}`),delete Z.audiovideo}if(q)this.log(`Init audiovideo buffer, container:${q.container}, codecs[level/parsed]=[${Y.codecs}/${q.codec}]`),delete Z.video,delete Z.audio;let z=Object.keys(Z);if(z.length){if(this.hls.trigger(N.BUFFER_CODECS,Z),!this.hls)return;z.forEach((H)=>{let K=Z[H].initSegment;if(K!=null&&K.byteLength)this.hls.trigger(N.BUFFER_APPENDING,{type:H,data:K,frag:Q,part:null,chunkMeta:X,parent:Q.type})})}this.tickImmediate()}getMainFwdBufferInfo(){let Y=this.mediaBuffer&&this.altAudio===2?this.mediaBuffer:this.media;return this.getFwdBufferInfo(Y,t.MAIN)}get maxBufferLength(){let{levels:Y,level:Z}=this,Q=Y==null?void 0:Y[Z];if(!Q)return this.config.maxBufferLength;return this.getMaxBufferLength(Q.maxBitrate)}backtrack(Y){this.couldBacktrack=!0,this.backtrackFragment=Y,this.resetTransmuxer(),this.flushBufferGap(Y),this.fragmentTracker.removeFragment(Y),this.fragPrevious=null,this.nextLoadPosition=Y.start,this.state=y.IDLE}checkFragmentChanged(){let Y=this.media,Z=null;if(Y&&Y.readyState>1&&Y.seeking===!1){let Q=Y.currentTime;if(V0.isBuffered(Y,Q))Z=this.getAppendedFrag(Q);else if(V0.isBuffered(Y,Q+0.1))Z=this.getAppendedFrag(Q+0.1);if(Z){this.backtrackFragment=null;let X=this.fragPlaying,J=Z.level;if(!X||Z.sn!==X.sn||X.level!==J){if(this.fragPlaying=Z,this.hls.trigger(N.FRAG_CHANGED,{frag:Z}),!X||X.level!==J)this.hls.trigger(N.LEVEL_SWITCHED,{level:J})}}}}get nextLevel(){let Y=this.nextBufferedFrag;if(Y)return Y.level;return-1}get currentFrag(){var Y;if(this.fragPlaying)return this.fragPlaying;let Z=((Y=this.media)==null?void 0:Y.currentTime)||this.lastCurrentTime;if(r(Z))return this.getAppendedFrag(Z);return null}get currentProgramDateTime(){var Y;let Z=((Y=this.media)==null?void 0:Y.currentTime)||this.lastCurrentTime;if(r(Z)){let Q=this.getLevelDetails(),X=this.currentFrag||(Q?j7(null,Q.fragments,Z):null);if(X){let J=X.programDateTime;if(J!==null){let W=J+(Z-X.start)*1000;return new Date(W)}}}return null}get currentLevel(){let Y=this.currentFrag;if(Y)return Y.level;return-1}get nextBufferedFrag(){let Y=this.currentFrag;if(Y)return this.followingBufferedFrag(Y);return null}get forceStartLoad(){return this._forceStartLoad}}class sK extends d1{constructor(Y,Z){super("key-loader",Z);this.config=void 0,this.keyIdToKeyInfo={},this.emeController=null,this.config=Y}abort(Y){for(let Q in this.keyIdToKeyInfo){let X=this.keyIdToKeyInfo[Q].loader;if(X){var Z;if(Y&&Y!==((Z=X.context)==null?void 0:Z.frag.type))return;X.abort()}}}detach(){for(let Y in this.keyIdToKeyInfo){let Z=this.keyIdToKeyInfo[Y];if(Z.mediaKeySessionContext||Z.decryptdata.isCommonEncryption)delete this.keyIdToKeyInfo[Y]}}destroy(){this.detach();for(let Y in this.keyIdToKeyInfo){let Z=this.keyIdToKeyInfo[Y].loader;if(Z)Z.destroy()}this.keyIdToKeyInfo={}}createKeyLoadError(Y,Z=h.KEY_LOAD_ERROR,Q,X,J){return new y8({type:Y0.NETWORK_ERROR,details:Z,fatal:!1,frag:Y,response:J,error:Q,networkDetails:X})}loadClear(Y,Z,Q){if(this.emeController&&this.config.emeEnabled&&!this.emeController.getSelectedKeySystemFormats().length){if(Z.length)for(let X=0,J=Z.length;X{if(!this.emeController)return;W.setKeyFormat(q);let z=S2(q);if(z)return this.emeController.getKeySystemAccess([z])})}if(this.config.requireKeySystemAccessOnStart){let X=xY(this.config);if(X.length)return this.emeController.getKeySystemAccess(X)}}return null}load(Y){if(!Y.decryptdata&&Y.encrypted&&this.emeController&&this.config.emeEnabled)return this.emeController.selectKeySystemFormat(Y).then((Z)=>{return this.loadInternal(Y,Z)});return this.loadInternal(Y)}loadInternal(Y,Z){var Q,X;if(Z)Y.setKeyFormat(Z);let J=Y.decryptdata;if(!J){let H=Error(Z?`Expected frag.decryptdata to be defined after setting format ${Z}`:`Missing decryption data on fragment in onKeyLoading (emeEnabled with controller: ${this.emeController&&this.config.emeEnabled})`);return Promise.reject(this.createKeyLoadError(Y,h.KEY_LOAD_ERROR,H))}let W=J.uri;if(!W)return Promise.reject(this.createKeyLoadError(Y,h.KEY_LOAD_ERROR,Error(`Invalid key URI: "${W}"`)));let q=cW(J),z=this.keyIdToKeyInfo[q];if((Q=z)!=null&&Q.decryptdata.key)return J.key=z.decryptdata.key,Promise.resolve({frag:Y,keyInfo:z});if(this.emeController&&(X=z)!=null&&X.keyLoadPromise)switch(this.emeController.getKeyStatus(z.decryptdata)){case"usable":case"usable-in-future":return z.keyLoadPromise.then((E)=>{let{keyInfo:K}=E;return J.key=K.decryptdata.key,{frag:Y,keyInfo:K}})}switch(this.log(`${this.keyIdToKeyInfo[q]?"Rel":"L"}oading${J.keyId?" keyId: "+j1(J.keyId):""} URI: ${J.uri} from ${Y.type} ${Y.level}`),z=this.keyIdToKeyInfo[q]={decryptdata:J,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},J.method){case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":if(J.keyFormat==="identity")return this.loadKeyHTTP(z,Y);return this.loadKeyEME(z,Y);case"AES-128":case"AES-256":case"AES-256-CTR":return this.loadKeyHTTP(z,Y);default:return Promise.reject(this.createKeyLoadError(Y,h.KEY_LOAD_ERROR,Error(`Key supplied with unsupported METHOD: "${J.method}"`)))}}loadKeyEME(Y,Z){let Q={frag:Z,keyInfo:Y};if(this.emeController&&this.config.emeEnabled){var X;if(!Y.decryptdata.keyId&&(X=Z.initSegment)!=null&&X.data){let W=B$(Z.initSegment.data);if(W.length){let q=W[0];if(q.some((z)=>z!==0))this.log(`Using keyId found in init segment ${j1(q)}`),g6.setKeyIdForUri(Y.decryptdata.uri,q);else q=g6.addKeyIdForUri(Y.decryptdata.uri),this.log(`Generating keyId to patch media ${j1(q)}`);Y.decryptdata.keyId=q}}if(!Y.decryptdata.keyId&&!t0(Z))return Promise.resolve(Q);let J=this.emeController.loadKey(Q);return(Y.keyLoadPromise=J.then((W)=>{return Y.mediaKeySessionContext=W,Q})).catch((W)=>{if(Y.keyLoadPromise=null,"data"in W)W.data.frag=Z;throw W})}return Promise.resolve(Q)}loadKeyHTTP(Y,Z){let Q=this.config,J=new Q.loader(Q);return Z.keyLoader=Y.loader=J,Y.keyLoadPromise=new Promise((W,q)=>{let z={keyInfo:Y,frag:Z,responseType:"arraybuffer",url:Y.decryptdata.uri},H=Q.keyLoadPolicy.default,E={loadPolicy:H,timeout:H.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},K={onSuccess:(G,U,V,F)=>{let{frag:R,keyInfo:B}=V,$=cW(B.decryptdata);if(!R.decryptdata||B!==this.keyIdToKeyInfo[$])return q(this.createKeyLoadError(R,h.KEY_LOAD_ERROR,Error("after key load, decryptdata unset or changed"),F));B.decryptdata.key=R.decryptdata.key=new Uint8Array(G.data),R.keyLoader=null,B.loader=null,W({frag:R,keyInfo:B})},onError:(G,U,V,F)=>{this.resetLoader(U),q(this.createKeyLoadError(Z,h.KEY_LOAD_ERROR,Error(`HTTP Error ${G.code} loading key ${G.text}`),V,I0({url:z.url,data:void 0},G)))},onTimeout:(G,U,V)=>{this.resetLoader(U),q(this.createKeyLoadError(Z,h.KEY_LOAD_TIMEOUT,Error("key loading timed out"),V))},onAbort:(G,U,V)=>{this.resetLoader(U),q(this.createKeyLoadError(Z,h.INTERNAL_ABORTED,Error("key loading aborted"),V))}};J.load(z,E,K)})}resetLoader(Y){let{frag:Z,keyInfo:Q,url:X}=Y,J=Q.loader;if(Z.keyLoader===J)Z.keyLoader=null,Q.loader=null;let W=cW(Q.decryptdata)||X;if(delete this.keyIdToKeyInfo[W],J)J.destroy()}}function cW(Y){if(Y.keyFormat!==A1.FAIRPLAY){let Z=Y.keyId;if(Z)return j1(Z)}return Y.uri}function I5(Y){let{type:Z}=Y;switch(Z){case O0.AUDIO_TRACK:return t.AUDIO;case O0.SUBTITLE_TRACK:return t.SUBTITLE;default:return t.MAIN}}function uW(Y,Z){let Q=Y.url;if(Q===void 0||Q.indexOf("data:")===0)Q=Z.url;return Q}class iK{constructor(Y){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.onManifestLoaded=this.checkAutostartLoad,this.hls=Y,this.registerListeners()}startLoad(Y){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){let{hls:Y}=this;Y.on(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.on(N.LEVEL_LOADING,this.onLevelLoading,this),Y.on(N.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),Y.on(N.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this),Y.on(N.LEVELS_UPDATED,this.onLevelsUpdated,this)}unregisterListeners(){let{hls:Y}=this;Y.off(N.MANIFEST_LOADING,this.onManifestLoading,this),Y.off(N.LEVEL_LOADING,this.onLevelLoading,this),Y.off(N.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),Y.off(N.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this),Y.off(N.LEVELS_UPDATED,this.onLevelsUpdated,this)}createInternalLoader(Y){let Z=this.hls.config,Q=Z.pLoader,X=Z.loader,W=new(Q||X)(Z);return this.loaders[Y.type]=W,W}getInternalLoader(Y){return this.loaders[Y.type]}resetInternalLoader(Y){if(this.loaders[Y])delete this.loaders[Y]}destroyInternalLoaders(){for(let Y in this.loaders){let Z=this.loaders[Y];if(Z)Z.destroy();this.resetInternalLoader(Y)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(Y,Z){let{url:Q}=Z;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:O0.MANIFEST,url:Q,deliveryDirectives:null,levelOrTrack:null})}onLevelLoading(Y,Z){let{id:Q,level:X,pathwayId:J,url:W,deliveryDirectives:q,levelInfo:z}=Z;this.load({id:Q,level:X,pathwayId:J,responseType:"text",type:O0.LEVEL,url:W,deliveryDirectives:q,levelOrTrack:z})}onAudioTrackLoading(Y,Z){let{id:Q,groupId:X,url:J,deliveryDirectives:W,track:q}=Z;this.load({id:Q,groupId:X,level:null,responseType:"text",type:O0.AUDIO_TRACK,url:J,deliveryDirectives:W,levelOrTrack:q})}onSubtitleTrackLoading(Y,Z){let{id:Q,groupId:X,url:J,deliveryDirectives:W,track:q}=Z;this.load({id:Q,groupId:X,level:null,responseType:"text",type:O0.SUBTITLE_TRACK,url:J,deliveryDirectives:W,levelOrTrack:q})}onLevelsUpdated(Y,Z){let Q=this.loaders[O0.LEVEL];if(Q){let X=Q.context;if(X&&!Z.levels.some((J)=>J===X.levelOrTrack))Q.abort(),delete this.loaders[O0.LEVEL]}}load(Y){var Z;let Q=this.hls.config,X=this.getInternalLoader(Y);if(X){let H=this.hls.logger,E=X.context;if(E&&E.levelOrTrack===Y.levelOrTrack&&(E.url===Y.url||E.deliveryDirectives&&!Y.deliveryDirectives)){if(E.url===Y.url)H.log(`[playlist-loader]: ignore ${Y.url} ongoing request`);else H.log(`[playlist-loader]: ignore ${Y.url} in favor of ${E.url}`);return}H.log(`[playlist-loader]: aborting previous loader for type: ${Y.type}`),X.abort()}let J;if(Y.type===O0.MANIFEST)J=Q.manifestLoadPolicy.default;else J=h0({},Q.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null});if(X=this.createInternalLoader(Y),r((Z=Y.deliveryDirectives)==null?void 0:Z.part)){let H;if(Y.type===O0.LEVEL&&Y.level!==null)H=this.hls.levels[Y.level].details;else if(Y.type===O0.AUDIO_TRACK&&Y.id!==null)H=this.hls.audioTracks[Y.id].details;else if(Y.type===O0.SUBTITLE_TRACK&&Y.id!==null)H=this.hls.subtitleTracks[Y.id].details;if(H){let{partTarget:E,targetduration:K}=H;if(E&&K){let G=Math.max(E*3,K*0.8)*1000;J=h0({},J,{maxTimeToFirstByteMs:Math.min(G,J.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(G,J.maxTimeToFirstByteMs)})}}}let W=J.errorRetry||J.timeoutRetry||{},q={loadPolicy:J,timeout:J.maxLoadTimeMs,maxRetry:W.maxNumRetry||0,retryDelay:W.retryDelayMs||0,maxRetryDelay:W.maxRetryDelayMs||0},z={onSuccess:(H,E,K,G)=>{let U=this.getInternalLoader(K);this.resetInternalLoader(K.type);let V=H.data;if(E.parsing.start=performance.now(),b8.isMediaPlaylist(V)||K.type!==O0.MANIFEST)this.handleTrackOrLevelPlaylist(H,E,K,G||null,U);else this.handleMasterPlaylist(H,E,K,G)},onError:(H,E,K,G)=>{this.handleNetworkError(E,K,!1,H,G)},onTimeout:(H,E,K)=>{this.handleNetworkError(E,K,!0,void 0,H)}};X.load(Y,q,z)}checkAutostartLoad(){if(!this.hls)return;let{config:{autoStartLoad:Y,startPosition:Z},forceStartLoad:Q}=this.hls;if(Y||Q)this.hls.logger.log(`${Y?"auto":"force"} startLoad with configured startPosition ${Z}`),this.hls.startLoad(Z)}handleMasterPlaylist(Y,Z,Q,X){let J=this.hls,W=Y.data,q=uW(Y,Q),z=b8.parseMasterPlaylist(W,q);if(z.playlistParsingError){Z.parsing.end=performance.now(),this.handleManifestParsingError(Y,Q,z.playlistParsingError,X,Z);return}let{contentSteering:H,levels:E,sessionData:K,sessionKeys:G,startTimeOffset:U,variableList:V}=z;this.variableList=V,E.forEach(($)=>{let{unknownCodecs:L}=$;if(L){let{preferManagedMediaSource:O}=this.hls.config,{audioCodec:j,videoCodec:w}=$;for(let D=L.length;D--;){let M=L[D];if(fY(M,"audio",O))$.audioCodec=j=j?`${j},${M}`:M,F9.audio[j.substring(0,4)]=2,L.splice(D,1);else if(fY(M,"video",O))$.videoCodec=w=w?`${w},${M}`:M,F9.video[w.substring(0,4)]=2,L.splice(D,1)}}});let{AUDIO:F=[],SUBTITLES:R,"CLOSED-CAPTIONS":B}=b8.parseMasterPlaylistMedia(W,q,z);if(F.length){if(!F.some((L)=>!L.url)&&E[0].audioCodec&&!E[0].attrs.AUDIO)this.hls.logger.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),F.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new d0({}),bitrate:0,url:""})}J.trigger(N.MANIFEST_LOADED,{levels:E,audioTracks:F,subtitles:R,captions:B,contentSteering:H,url:q,stats:Z,networkDetails:X,sessionData:K,sessionKeys:G,startTimeOffset:U,variableList:V})}handleTrackOrLevelPlaylist(Y,Z,Q,X,J){let W=this.hls,{id:q,level:z,type:H}=Q,E=uW(Y,Q),K=r(z)?z:r(q)?q:0,G=I5(Q),U=b8.parseLevelPlaylist(Y.data,E,K,G,0,this.variableList);if(H===O0.MANIFEST){let V={attrs:new d0({}),bitrate:0,details:U,name:"",url:E};U.requestScheduled=Z.loading.start+FE(U,0),W.trigger(N.MANIFEST_LOADED,{levels:[V],audioTracks:[],url:E,stats:Z,networkDetails:X,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}Z.parsing.end=performance.now(),Q.levelDetails=U,this.handlePlaylistLoaded(U,Y,Z,Q,X,J)}handleManifestParsingError(Y,Z,Q,X,J){this.hls.trigger(N.ERROR,{type:Y0.NETWORK_ERROR,details:h.MANIFEST_PARSING_ERROR,fatal:Z.type===O0.MANIFEST,url:Y.url,err:Q,error:Q,reason:Q.message,response:Y,context:Z,networkDetails:X,stats:J})}handleNetworkError(Y,Z,Q=!1,X,J){let W=`A network ${Q?"timeout":"error"+(X?" (status "+X.code+")":"")} occurred while loading ${Y.type}`;if(Y.type===O0.LEVEL)W+=`: ${Y.level} id: ${Y.id}`;else if(Y.type===O0.AUDIO_TRACK||Y.type===O0.SUBTITLE_TRACK)W+=` id: ${Y.id} group-id: "${Y.groupId}"`;let q=Error(W);this.hls.logger.warn(`[playlist-loader]: ${W}`);let z=h.UNKNOWN,H=!1,E=this.getInternalLoader(Y);switch(Y.type){case O0.MANIFEST:z=Q?h.MANIFEST_LOAD_TIMEOUT:h.MANIFEST_LOAD_ERROR,H=!0;break;case O0.LEVEL:z=Q?h.LEVEL_LOAD_TIMEOUT:h.LEVEL_LOAD_ERROR,H=!1;break;case O0.AUDIO_TRACK:z=Q?h.AUDIO_TRACK_LOAD_TIMEOUT:h.AUDIO_TRACK_LOAD_ERROR,H=!1;break;case O0.SUBTITLE_TRACK:z=Q?h.SUBTITLE_TRACK_LOAD_TIMEOUT:h.SUBTITLE_LOAD_ERROR,H=!1;break}if(E)this.resetInternalLoader(Y.type);let K={type:Y0.NETWORK_ERROR,details:z,fatal:H,url:Y.url,loader:E,context:Y,error:q,networkDetails:Z,stats:J};if(X){let G=(Z==null?void 0:Z.url)||Y.url;K.response=I0({url:G,data:void 0},X)}this.hls.trigger(N.ERROR,K)}handlePlaylistLoaded(Y,Z,Q,X,J,W){let q=this.hls,{type:z,level:H,levelOrTrack:E,id:K,groupId:G,deliveryDirectives:U}=X,V=uW(Z,X),F=I5(X),R=typeof X.level==="number"&&F===t.MAIN?H:void 0,B=Y.playlistParsingError;if(B){if(this.hls.logger.warn(`${B} ${Y.url}`),!q.config.ignorePlaylistParsingErrors){q.trigger(N.ERROR,{type:Y0.NETWORK_ERROR,details:h.LEVEL_PARSING_ERROR,fatal:!1,url:V,error:B,reason:B.message,response:Z,context:X,level:R,parent:F,networkDetails:J,stats:Q});return}Y.playlistParsingError=null}if(!Y.fragments.length){let $=Y.playlistParsingError=Error("No Segments found in Playlist");q.trigger(N.ERROR,{type:Y0.NETWORK_ERROR,details:h.LEVEL_EMPTY_ERROR,fatal:!1,url:V,error:$,reason:$.message,response:Z,context:X,level:R,parent:F,networkDetails:J,stats:Q});return}if(Y.live&&W){if(W.getCacheAge)Y.ageHeader=W.getCacheAge()||0;if(!W.getCacheAge||isNaN(Y.ageHeader))Y.ageHeader=0}switch(z){case O0.MANIFEST:case O0.LEVEL:if(R){if(!E)R=0;else if(E!==q.levels[R]){let $=q.levels.indexOf(E);if($>-1)R=$}}q.trigger(N.LEVEL_LOADED,{details:Y,levelInfo:E||q.levels[0],level:R||0,id:K||0,stats:Q,networkDetails:J,deliveryDirectives:U,withoutMultiVariant:z===O0.MANIFEST});break;case O0.AUDIO_TRACK:q.trigger(N.AUDIO_TRACK_LOADED,{details:Y,track:E,id:K||0,groupId:G||"",stats:Q,networkDetails:J,deliveryDirectives:U});break;case O0.SUBTITLE_TRACK:q.trigger(N.SUBTITLE_TRACK_LOADED,{details:Y,track:E,id:K||0,groupId:G||"",stats:Q,networkDetails:J,deliveryDirectives:U});break}}}class F6{static get version(){return kY}static isMSESupported(){return lK()}static isSupported(){return YA()}static getMediaSource(){return b6()}static get Events(){return N}static get MetadataSchema(){return m1}static get ErrorTypes(){return Y0}static get ErrorDetails(){return h}static get DefaultConfig(){if(!F6.defaultConfig)return lj;return F6.defaultConfig}static set DefaultConfig(Y){F6.defaultConfig=Y}constructor(Y={}){this.config=void 0,this.userConfig=void 0,this.logger=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new wq,this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioStreamController=void 0,this.subtititleStreamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.interstitialsController=void 0,this.gapController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this._url=null,this._sessionId=void 0,this.triggeringException=void 0,this.started=!1;let Z=this.logger=W$(Y.debug||!1,"Hls instance",Y.assetPlayerId),Q=this.config=sj(F6.DefaultConfig,Y,Z);if(this.userConfig=Y,Q.progressive)ij(Q,Z);let{abrController:X,bufferController:J,capLevelController:W,errorController:q,fpsController:z}=Q,H=new q(this),E=this.abrController=new X(this),K=new YE(this),G=Q.interstitialsController,U=G?this.interstitialsController=new G(this,F6):null,V=this.bufferController=new J(this,K),F=this.capLevelController=new W(this),R=new z(this),B=new iK(this),$=Q.contentSteeringController,L=$?new $(this):null,O=this.levelController=new oK(this,L),j=new uK(this),w=new sK(this.config,this.logger),D=this.streamController=new nK(this,K,w),M=this.gapController=new cK(this,K);F.setStreamController(D),R.setStreamController(D);let C=[B,O,D];if(U)C.splice(1,0,U);if(L)C.splice(1,0,L);this.networkControllers=C;let I=[E,V,M,F,R,j,K];this.audioTrackController=this.createController(Q.audioTrackController,C);let x=Q.audioStreamController;if(x)C.push(this.audioStreamController=new x(this,K,w));this.subtitleTrackController=this.createController(Q.subtitleTrackController,C);let f=Q.subtitleStreamController;if(f)C.push(this.subtititleStreamController=new f(this,K,w));this.createController(Q.timelineController,I),w.emeController=this.emeController=this.createController(Q.emeController,I),this.cmcdController=this.createController(Q.cmcdController,I),this.latencyController=this.createController(mK,I),this.coreComponents=I,C.push(H);let _=H.onErrorOut;if(typeof _==="function")this.on(N.ERROR,_,H);this.on(N.MANIFEST_LOADED,B.onManifestLoaded,B)}createController(Y,Z){if(Y){let Q=new Y(this);if(Z)Z.push(Q);return Q}return null}on(Y,Z,Q=this){this._emitter.on(Y,Z,Q)}once(Y,Z,Q=this){this._emitter.once(Y,Z,Q)}removeAllListeners(Y){this._emitter.removeAllListeners(Y)}off(Y,Z,Q=this,X){this._emitter.off(Y,Z,Q,X)}listeners(Y){return this._emitter.listeners(Y)}emit(Y,Z,Q){return this._emitter.emit(Y,Z,Q)}trigger(Y,Z){if(this.config.debug)return this.emit(Y,Y,Z);else try{return this.emit(Y,Y,Z)}catch(Q){if(this.logger.error("An internal error happened while handling event "+Y+'. Error message: "'+Q.message+'". Here is a stacktrace:',Q),!this.triggeringException){this.triggeringException=!0;let X=Y===N.ERROR;this.trigger(N.ERROR,{type:Y0.OTHER_ERROR,details:h.INTERNAL_EXCEPTION,fatal:X,event:Y,error:Q}),this.triggeringException=!1}}return!1}listenerCount(Y){return this._emitter.listenerCount(Y)}destroy(){this.logger.log("destroy"),this.trigger(N.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this._url=null,this.networkControllers.forEach((Z)=>Z.destroy()),this.networkControllers.length=0,this.coreComponents.forEach((Z)=>Z.destroy()),this.coreComponents.length=0;let Y=this.config;Y.xhrSetup=Y.fetchSetup=void 0,this.userConfig=null}attachMedia(Y){if(!Y||"media"in Y&&!Y.media){let J=Error(`attachMedia failed: invalid argument (${Y})`);this.trigger(N.ERROR,{type:Y0.OTHER_ERROR,details:h.ATTACH_MEDIA_ERROR,fatal:!0,error:J});return}if(this.logger.log("attachMedia"),this._media)this.logger.warn("media must be detached before attaching"),this.detachMedia();let Z="media"in Y,Q=Z?Y.media:Y,X=Z?Y:{media:Q};this._media=Q,this.trigger(N.MEDIA_ATTACHING,X)}detachMedia(){this.logger.log("detachMedia"),this.trigger(N.MEDIA_DETACHING,{}),this._media=null}transferMedia(){this._media=null;let Y=this.bufferController.transferMedia();return this.trigger(N.MEDIA_DETACHING,{transferMedia:Y}),Y}loadSource(Y){this.stopLoad();let Z=this.media,Q=this._url,X=this._url=Uq.buildAbsoluteURL(self.location.href,Y,{alwaysNormalize:!0});if(this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.logger.log(`loadSource:${X}`),Z&&Q&&(Q!==X||this.bufferController.hasSourceTypes()))this.detachMedia(),this.attachMedia(Z);this.trigger(N.MANIFEST_LOADING,{url:Y})}get url(){return this._url}get hasEnoughToStart(){return this.streamController.hasEnoughToStart}get startPosition(){return this.streamController.startPositionValue}startLoad(Y=-1,Z){this.logger.log(`startLoad(${Y+(Z?", ":"")})`),this.started=!0,this.resumeBuffering();for(let Q=0;Q{if(Y.resumeBuffering)Y.resumeBuffering()})}pauseBuffering(){if(this.bufferingEnabled)this.logger.log("pause buffering"),this.networkControllers.forEach((Y)=>{if(Y.pauseBuffering)Y.pauseBuffering()})}get inFlightFragments(){let Y={[t.MAIN]:this.streamController.inFlightFrag};if(this.audioStreamController)Y[t.AUDIO]=this.audioStreamController.inFlightFrag;if(this.subtititleStreamController)Y[t.SUBTITLE]=this.subtititleStreamController.inFlightFrag;return Y}swapAudioCodec(){this.logger.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){this.logger.log("recoverMediaError");let Y=this._media,Z=Y==null?void 0:Y.currentTime;if(this.detachMedia(),Y){if(this.attachMedia(Y),Z)this.startLoad(Z)}}removeLevel(Y){this.levelController.removeLevel(Y)}get sessionId(){let Y=this._sessionId;if(!Y)Y=this._sessionId=Fj();return Y}get levels(){let Y=this.levelController.levels;return Y?Y:[]}get latestLevelDetails(){return this.streamController.getLevelDetails()||null}get loadLevelObj(){return this.levelController.loadLevelObj}get currentLevel(){return this.streamController.currentLevel}set currentLevel(Y){this.logger.log(`set currentLevel:${Y}`),this.levelController.manualLevel=Y,this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(Y){this.logger.log(`set nextLevel:${Y}`),this.levelController.manualLevel=Y,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(Y){this.logger.log(`set loadLevel:${Y}`),this.levelController.manualLevel=Y}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(Y){this.levelController.nextLoadLevel=Y}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(Y){this.logger.log(`set firstLevel:${Y}`),this.levelController.firstLevel=Y}get startLevel(){let Y=this.levelController.startLevel;if(Y===-1&&this.abrController.forcedAutoLevel>-1)return this.abrController.forcedAutoLevel;return Y}set startLevel(Y){if(this.logger.log(`set startLevel:${Y}`),Y!==-1)Y=Math.max(Y,this.minAutoLevel);this.levelController.startLevel=Y}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(Y){let Z=!!Y;if(Z!==this.config.capLevelToPlayerSize){if(Z)this.capLevelController.startCapping();else this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch();this.config.capLevelToPlayerSize=Z}}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){let{bwEstimator:Y}=this.abrController;if(!Y)return NaN;return Y.getEstimate()}set bandwidthEstimate(Y){this.abrController.resetEstimator(Y)}get abrEwmaDefaultEstimate(){let{bwEstimator:Y}=this.abrController;if(!Y)return NaN;return Y.defaultEstimate}get ttfbEstimate(){let{bwEstimator:Y}=this.abrController;if(!Y)return NaN;return Y.getEstimateTTFB()}set autoLevelCapping(Y){if(this._autoLevelCapping!==Y)this.logger.log(`set autoLevelCapping:${Y}`),this._autoLevelCapping=Y,this.levelController.checkMaxAutoUpdated()}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(Y){if(b$(Y)&&this._maxHdcpLevel!==Y)this._maxHdcpLevel=Y,this.levelController.checkMaxAutoUpdated()}get autoLevelEnabled(){return this.levelController.manualLevel===-1}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){let{levels:Y,config:{minAutoBitrate:Z}}=this;if(!Y)return 0;let Q=Y.length;for(let X=0;X=Z)return X;return 0}get maxAutoLevel(){let{levels:Y,autoLevelCapping:Z,maxHdcpLevel:Q}=this,X;if(Z===-1&&Y!=null&&Y.length)X=Y.length-1;else X=Z;if(Q)for(let J=X;J--;){let W=Y[J].attrs["HDCP-LEVEL"];if(W&&W<=Q)return J}return X}get firstAutoLevel(){return this.abrController.firstAutoLevel}get nextAutoLevel(){return this.abrController.nextAutoLevel}set nextAutoLevel(Y){this.abrController.nextAutoLevel=Y}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}get maxBufferLength(){return this.streamController.maxBufferLength}setAudioOption(Y){var Z;return((Z=this.audioTrackController)==null?void 0:Z.setAudioOption(Y))||null}setSubtitleOption(Y){var Z;return((Z=this.subtitleTrackController)==null?void 0:Z.setSubtitleOption(Y))||null}get allAudioTracks(){let Y=this.audioTrackController;return Y?Y.allAudioTracks:[]}get audioTracks(){let Y=this.audioTrackController;return Y?Y.audioTracks:[]}get audioTrack(){let Y=this.audioTrackController;return Y?Y.audioTrack:-1}set audioTrack(Y){let Z=this.audioTrackController;if(Z)Z.audioTrack=Y}get allSubtitleTracks(){let Y=this.subtitleTrackController;return Y?Y.allSubtitleTracks:[]}get subtitleTracks(){let Y=this.subtitleTrackController;return Y?Y.subtitleTracks:[]}get subtitleTrack(){let Y=this.subtitleTrackController;return Y?Y.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(Y){let Z=this.subtitleTrackController;if(Z)Z.subtitleTrack=Y}get subtitleDisplay(){let Y=this.subtitleTrackController;return Y?Y.subtitleDisplay:!1}set subtitleDisplay(Y){let Z=this.subtitleTrackController;if(Z)Z.subtitleDisplay=Y}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(Y){this.config.lowLatencyMode=Y}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}set targetLatency(Y){this.latencyController.targetLatency=Y}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}get pathways(){return this.levelController.pathways}get pathwayPriority(){return this.levelController.pathwayPriority}set pathwayPriority(Y){this.levelController.pathwayPriority=Y}get bufferedToEnd(){var Y;return!!((Y=this.bufferController)!=null&&Y.bufferedToEnd)}get interstitialsManager(){var Y;return((Y=this.interstitialsController)==null?void 0:Y.interstitialsManager)||null}getMediaDecodingInfo(Y,Z=this.allAudioTracks){let Q=n5(Z);return d5(Y,Q,navigator.mediaCapabilities)}}F6.defaultConfig=void 0;var A0=F6,v0={VIDEO:"video",THUMBNAIL:"thumbnail",STORYBOARD:"storyboard",DRM:"drm"},X0={NOT_AN_ERROR:0,NETWORK_OFFLINE:2000002,NETWORK_UNKNOWN_ERROR:2000000,NETWORK_NO_STATUS:2000001,NETWORK_INVALID_URL:2400000,NETWORK_NOT_FOUND:2404000,NETWORK_NOT_READY:2412000,NETWORK_GENERIC_SERVER_FAIL:2500000,NETWORK_TOKEN_MISSING:2403201,NETWORK_TOKEN_MALFORMED:2412202,NETWORK_TOKEN_EXPIRED:2403210,NETWORK_TOKEN_AUD_MISSING:2403221,NETWORK_TOKEN_AUD_MISMATCH:2403222,NETWORK_TOKEN_SUB_MISMATCH:2403232,ENCRYPTED_ERROR:5000000,ENCRYPTED_UNSUPPORTED_KEY_SYSTEM:5000001,ENCRYPTED_GENERATE_REQUEST_FAILED:5000002,ENCRYPTED_UPDATE_LICENSE_FAILED:5000003,ENCRYPTED_UPDATE_SERVER_CERT_FAILED:5000004,ENCRYPTED_CDM_ERROR:5000005,ENCRYPTED_OUTPUT_RESTRICTED:5000006,ENCRYPTED_MISSING_TOKEN:5000002},cY=(Y)=>Y===v0.VIDEO?"playback":Y,v6=class Y extends Error{constructor(Z,Q=Y.MEDIA_ERR_CUSTOM,X,J){var W;super(Z),this.name="MediaError",this.code=Q,this.context=J,this.fatal=X!=null?X:Q>=Y.MEDIA_ERR_NETWORK&&Q<=Y.MEDIA_ERR_ENCRYPTED,this.message||(this.message=(W=Y.defaultMessages[this.code])!=null?W:"")}};v6.MEDIA_ERR_ABORTED=1,v6.MEDIA_ERR_NETWORK=2,v6.MEDIA_ERR_DECODE=3,v6.MEDIA_ERR_SRC_NOT_SUPPORTED=4,v6.MEDIA_ERR_ENCRYPTED=5,v6.MEDIA_ERR_CUSTOM=100,v6.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail.",3:"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.",4:"An unsupported error occurred. The server or network failed, or your browser does not support this format.",5:"The media is encrypted and there are no keys to decrypt it."};var i=v6,XA=(Y)=>Y==null,iq=(Y,Z)=>XA(Z)?!1:(Y in Z),cq={ANY:"any",MUTED:"muted"},C0={ON_DEMAND:"on-demand",LIVE:"live",UNKNOWN:"unknown"},X8={MSE:"mse",NATIVE:"native"},pY={HEADER:"header",QUERY:"query",NONE:"none"},$9=Object.values(pY),R6={M3U8:"application/vnd.apple.mpegurl",MP4:"video/mp4"},uq={HLS:R6.M3U8},Xx=Object.keys(uq),Jx=[...Object.values(R6),"hls","HLS"];var JA="en",mq={code:JA},X1=(Y,Z,Q,X,J=Y)=>{J.addEventListener(Z,Q,X),Y.addEventListener("teardown",()=>{J.removeEventListener(Z,Q)},{once:!0})};function WA(Y,Z,Q){Z&&Q>Z&&(Q=Z);for(let X=0;X=Q)return!0;return!1}var qQ=(Y)=>{let Z=Y.indexOf("?");if(Z<0)return[Y];let Q=Y.slice(0,Z),X=Y.slice(Z);return[Q,X]},HQ=(Y)=>{let{type:Z}=Y;if(Z){let Q=Z.toUpperCase();return iq(Q,uq)?uq[Q]:Z}return qA(Y)},WG=(Y)=>Y==="VOD"?C0.ON_DEMAND:C0.LIVE,qG=(Y)=>Y==="EVENT"?Number.POSITIVE_INFINITY:Y==="VOD"?Number.NaN:0,qA=(Y)=>{let{src:Z}=Y;if(!Z)return"";let Q="";try{Q=new URL(Z).pathname}catch{console.error("invalid url")}let X=Q.lastIndexOf(".");if(X<0)return zA(Y)?R6.M3U8:"";let J=Q.slice(X+1).toUpperCase();return iq(J,R6)?R6[J]:""},HA="mux.com",zA=({src:Y,customDomain:Z=HA})=>{let Q;try{Q=new URL(`${Y}`)}catch{return!1}let X=Q.protocol==="https:",J=Q.hostname===`stream.${Z}`.toLowerCase(),W=Q.pathname.split("/"),q=W.length===2,z=!(W!=null&&W[1].includes("."));return X&&J&&q&&z},p6=(Y)=>{let Z=(Y!=null?Y:"").split(".")[1];if(Z)try{let Q=Z.replace(/-/g,"+").replace(/_/g,"/"),X=decodeURIComponent(atob(Q).split("").map(function(J){return"%"+("00"+J.charCodeAt(0).toString(16)).slice(-2)}).join(""));return JSON.parse(X)}catch{return}},EA=({exp:Y},Z=Date.now())=>!Y||Y*1000Y!==Z,GA=({aud:Y},Z)=>!Y,VA=({aud:Y},Z)=>Y!==Z,HG="en";function Z0(Y,Z=!0){var Q,X;let J=Z&&(X=(Q=mq)==null?void 0:Q[Y])!=null?X:Y,W=Z?mq.code:HG;return new UA(J,W)}var UA=class{constructor(Y,Z=((Q)=>(Q=mq)!=null?Q:HG)()){this.message=Y,this.locale=Z}format(Y){return this.message.replace(/\{(\w+)\}/g,(Z,Q)=>{var X;return(X=Y[Q])!=null?X:""})}toString(){return this.message}},FA=Object.values(cq),rK=(Y)=>typeof Y=="boolean"||typeof Y=="string"&&FA.includes(Y),RA=(Y,Z,Q)=>{let{autoplay:X}=Y,J=!1,W=!1,q=rK(X)?X:!!X,z=()=>{J||X1(Z,"playing",()=>{J=!0},{once:!0})};if(z(),X1(Z,"loadstart",()=>{J=!1,z(),vq(Z,q)},{once:!0}),X1(Z,"loadstart",()=>{Q||(Y.streamType&&Y.streamType!==C0.UNKNOWN?W=Y.streamType===C0.LIVE:W=!Number.isFinite(Z.duration)),vq(Z,q)},{once:!0}),Q&&Q.once(A0.Events.LEVEL_LOADED,(H,E)=>{var K;Y.streamType&&Y.streamType!==C0.UNKNOWN?W=Y.streamType===C0.LIVE:W=(K=E.details.live)!=null?K:!1}),!q){let H=()=>{!W||Number.isFinite(Y.startTime)||(Q!=null&&Q.liveSyncPosition?Z.currentTime=Q.liveSyncPosition:Number.isFinite(Z.seekable.end(0))&&(Z.currentTime=Z.seekable.end(0)))};Q&&X1(Z,"play",()=>{Z.preload==="metadata"?Q.once(A0.Events.LEVEL_UPDATED,H):H()},{once:!0})}return(H)=>{J||(q=rK(H)?H:!!H,vq(Z,q))}},vq=(Y,Z)=>{if(!Z)return;let Q=Y.muted,X=()=>Y.muted=Q;switch(Z){case cq.ANY:Y.play().catch(()=>{Y.muted=!0,Y.play().catch(X)});break;case cq.MUTED:Y.muted=!0,Y.play().catch(X);break;default:Y.play().catch(()=>{});break}},BA=({preload:Y,src:Z},Q,X)=>{let J=(G)=>{G!=null&&["","none","metadata","auto"].includes(G)?Q.setAttribute("preload",G):Q.removeAttribute("preload")};if(!X)return J(Y),J;let W=!1,q=!1,z=X.config.maxBufferLength,H=X.config.maxBufferSize,E=(G)=>{J(G);let U=G!=null?G:Q.preload;q||U==="none"||(U==="metadata"?(X.config.maxBufferLength=1,X.config.maxBufferSize=1):(X.config.maxBufferLength=z,X.config.maxBufferSize=H),K())},K=()=>{!W&&Z&&(W=!0,X.loadSource(Z))};return X1(Q,"play",()=>{q=!0,X.config.maxBufferLength=z,X.config.maxBufferSize=H,K()},{once:!0}),E(Y),E};function NA(Y,Z){var Q;if(!("videoTracks"in Y))return;let X=new WeakMap;Z.on(A0.Events.MANIFEST_PARSED,function(H,E){z();let K=Y.addVideoTrack("main");K.selected=!0;for(let[G,U]of E.levels.entries()){let V=K.addRendition(U.url[0],U.width,U.height,U.videoCodec,U.bitrate);X.set(U,`${G}`),V.id=`${G}`}}),Z.on(A0.Events.AUDIO_TRACKS_UPDATED,function(H,E){q();for(let K of E.audioTracks){let G=K.default?"main":"alternative",U=Y.addAudioTrack(G,K.name,K.lang);U.id=`${K.id}`,K.default&&(U.enabled=!0)}}),Y.audioTracks.addEventListener("change",()=>{var H;let E=+((H=[...Y.audioTracks].find((G)=>G.enabled))==null?void 0:H.id),K=Z.audioTracks.map((G)=>G.id);E!=Z.audioTrack&&K.includes(E)&&(Z.audioTrack=E)}),Z.on(A0.Events.LEVELS_UPDATED,function(H,E){var K;let G=Y.videoTracks[(K=Y.videoTracks.selectedIndex)!=null?K:0];if(!G)return;let U=E.levels.map((V)=>X.get(V));for(let V of Y.videoRenditions)V.id&&!U.includes(V.id)&&G.removeRendition(V)});let J=(H)=>{let E=H.target.selectedIndex;E!=Z.nextLevel&&(Z.nextLevel=E)};(Q=Y.videoRenditions)==null||Q.addEventListener("change",J);let W=()=>{for(let H of Y.videoTracks)Y.removeVideoTrack(H)},q=()=>{for(let H of Y.audioTracks)Y.removeAudioTrack(H)},z=()=>{W(),q()};Z.once(A0.Events.DESTROYING,z)}var pq=(Y)=>("time"in Y)?Y.time:Y.startTime;function $A(Y,Z){Z.on(A0.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(J,{tracks:W})=>{W.forEach((q)=>{var z,H;let E=(z=q.subtitleTrack)!=null?z:q.closedCaptions,K=Z.subtitleTracks.findIndex(({lang:U,name:V,type:F})=>U==(E==null?void 0:E.lang)&&V===q.label&&F.toLowerCase()===q.kind),G=((H=q._id)!=null?H:q.default)?"default":`${q.kind}${K}`;zQ(Y,q.kind,q.label,E==null?void 0:E.lang,G,q.default)})});let Q=()=>{if(!Z.subtitleTracks.length)return;let J=Array.from(Y.textTracks).find((z)=>z.id&&z.mode==="showing"&&["subtitles","captions"].includes(z.kind));if(!J)return;let W=Z.subtitleTracks[Z.subtitleTrack],q=W?W.default?"default":`${Z.subtitleTracks[Z.subtitleTrack].type.toLowerCase()}${Z.subtitleTrack}`:void 0;if(Z.subtitleTrack<0||(J==null?void 0:J.id)!==q){let z=Z.subtitleTracks.findIndex(({lang:H,name:E,type:K,default:G})=>J.id==="default"&&G||H==J.language&&E===J.label&&K.toLowerCase()===J.kind);Z.subtitleTrack=z}(J==null?void 0:J.id)===q&&J.cues&&Array.from(J.cues).forEach((z)=>{J.addCue(z)})};Y.textTracks.addEventListener("change",Q),Z.on(A0.Events.CUES_PARSED,(J,{track:W,cues:q})=>{let z=Y.textTracks.getTrackById(W);if(!z)return;let H=z.mode==="disabled";H&&(z.mode="hidden"),q.forEach((E)=>{var K;(K=z.cues)!=null&&K.getCueById(E.id)||z.addCue(E)}),H&&(z.mode="disabled")}),Z.once(A0.Events.DESTROYING,()=>{Y.textTracks.removeEventListener("change",Q),Y.querySelectorAll("track[data-removeondestroy]").forEach((J)=>{J.remove()})});let X=()=>{Array.from(Y.textTracks).forEach((J)=>{var W,q;if(!["subtitles","caption"].includes(J.kind)&&(J.label==="thumbnails"||J.kind==="chapters")){if(!((W=J.cues)!=null&&W.length)){let z="track";J.kind&&(z+=`[kind="${J.kind}"]`),J.label&&(z+=`[label="${J.label}"]`);let H=Y.querySelector(z),E=(q=H==null?void 0:H.getAttribute("src"))!=null?q:"";H==null||H.removeAttribute("src"),setTimeout(()=>{H==null||H.setAttribute("src",E)},0)}J.mode!=="hidden"&&(J.mode="hidden")}})};Z.once(A0.Events.MANIFEST_LOADED,X),Z.once(A0.Events.MEDIA_ATTACHED,X)}function zQ(Y,Z,Q,X,J,W){let q=document.createElement("track");return q.kind=Z,q.label=Q,X&&(q.srclang=X),J&&(q.id=J),W&&(q.default=!0),q.track.mode=["subtitles","captions"].includes(Z)?"disabled":"hidden",q.setAttribute("data-removeondestroy",""),Y.append(q),q.track}function zG(Y,Z){let Q=Array.prototype.find.call(Y.querySelectorAll("track"),(X)=>X.track===Z);Q==null||Q.remove()}function uY(Y,Z,Q){var X;return(X=Array.from(Y.querySelectorAll("track")).find((J)=>J.track.label===Z&&J.track.kind===Q))==null?void 0:X.track}async function EG(Y,Z,Q,X){let J=uY(Y,Q,X);return J||(J=zQ(Y,X,Q),J.mode="hidden",await new Promise((W)=>setTimeout(()=>W(void 0),0))),J.mode!=="hidden"&&(J.mode="hidden"),[...Z].sort((W,q)=>pq(q)-pq(W)).forEach((W)=>{var q,z;let H=W.value,E=pq(W);if("endTime"in W&&W.endTime!=null)J==null||J.addCue(new VTTCue(E,W.endTime,X==="chapters"?H:JSON.stringify(H!=null?H:null)));else{let K=Array.prototype.findIndex.call(J==null?void 0:J.cues,(F)=>F.startTime>=E),G=(q=J==null?void 0:J.cues)==null?void 0:q[K],U=G?G.startTime:Number.isFinite(Y.duration)?Y.duration:Number.MAX_SAFE_INTEGER,V=(z=J==null?void 0:J.cues)==null?void 0:z[K-1];V&&(V.endTime=E),J==null||J.addCue(new VTTCue(E,U,X==="chapters"?H:JSON.stringify(H!=null?H:null)))}}),Y.textTracks.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})),J}var rq="cuepoints",KG=Object.freeze({label:rq});async function aq(Y,Z,Q=KG){return EG(Y,Z,Q.label,"metadata")}var oq=(Y)=>({time:Y.startTime,value:JSON.parse(Y.text)});function GG(Y,Z={label:rq}){let Q=uY(Y,Z.label,"metadata");return Q!=null&&Q.cues?Array.from(Q.cues,(X)=>oq(X)):[]}function tq(Y,Z={label:rq}){var Q,X;let J=uY(Y,Z.label,"metadata");if(!((Q=J==null?void 0:J.activeCues)!=null&&Q.length))return;if(J.activeCues.length===1)return oq(J.activeCues[0]);let{currentTime:W}=Y,q=Array.prototype.find.call((X=J.activeCues)!=null?X:[],({startTime:z,endTime:H})=>z<=W&&H>W);return oq(q||J.activeCues[0])}async function LA(Y,Z=KG){return new Promise((Q)=>{X1(Y,"loadstart",async()=>{let X=await aq(Y,[],Z);X1(Y,"cuechange",()=>{let J=tq(Y);if(J){let W=new CustomEvent("cuepointchange",{composed:!0,bubbles:!0,detail:J});Y.dispatchEvent(W)}},{},X),Q(X)})})}var eq="chapters",VG=Object.freeze({label:eq}),dq=(Y)=>({startTime:Y.startTime,endTime:Y.endTime,value:Y.text});async function Y4(Y,Z,Q=VG){return EG(Y,Z,Q.label,"chapters")}function UG(Y,Z={label:eq}){var Q;let X=uY(Y,Z.label,"chapters");return(Q=X==null?void 0:X.cues)!=null&&Q.length?Array.from(X.cues,(J)=>dq(J)):[]}function Z4(Y,Z={label:eq}){var Q,X;let J=uY(Y,Z.label,"chapters");if(!((Q=J==null?void 0:J.activeCues)!=null&&Q.length))return;if(J.activeCues.length===1)return dq(J.activeCues[0]);let{currentTime:W}=Y,q=Array.prototype.find.call((X=J.activeCues)!=null?X:[],({startTime:z,endTime:H})=>z<=W&&H>W);return dq(q||J.activeCues[0])}async function OA(Y,Z=VG){return new Promise((Q)=>{X1(Y,"loadstart",async()=>{let X=await Y4(Y,[],Z);X1(Y,"cuechange",()=>{let J=Z4(Y);if(J){let W=new CustomEvent("chapterchange",{composed:!0,bubbles:!0,detail:J});Y.dispatchEvent(W)}},{},X),Q(X)})})}function FG(Y,Z){if(Z){let Q=Z.playingDate;if(Q!=null)return new Date(Q.getTime()-Y.currentTime*1000)}return typeof Y.getStartDate=="function"?Y.getStartDate():new Date(NaN)}function RG(Y,Z){if(Z&&Z.playingDate)return Z.playingDate;if(typeof Y.getStartDate=="function"){let Q=Y.getStartDate();return new Date(Q.getTime()+Y.currentTime*1000)}return new Date(NaN)}var N9={VIDEO:"v",THUMBNAIL:"t",STORYBOARD:"s",DRM:"d"},jA=(Y)=>{if(Y===v0.VIDEO)return N9.VIDEO;if(Y===v0.DRM)return N9.DRM},AA=(Y,Z)=>{var Q,X;let J=cY(Y),W=`${J}Token`;return(Q=Z.tokens)!=null&&Q[J]?(X=Z.tokens)==null?void 0:X[J]:iq(W,Z)?Z[W]:void 0},JQ=(Y,Z,Q,X,J=!1,W=!((q)=>(q=globalThis.navigator)==null?void 0:q.onLine)())=>{var q,z;if(W){let $=Z0("Your device appears to be offline",J),L=void 0,O=i.MEDIA_ERR_NETWORK,j=new i($,O,!1,L);return j.errorCategory=Z,j.muxCode=X0.NETWORK_OFFLINE,j.data=Y,j}let H="status"in Y?Y.status:Y.code,E=Date.now(),K=i.MEDIA_ERR_NETWORK;if(H===200)return;let G=cY(Z),U=AA(Z,Q),V=jA(Z),[F]=qQ((q=Q.playbackId)!=null?q:"");if(!H||!F)return;let R=p6(U);if(U&&!R){let $=Z0("The {tokenNamePrefix}-token provided is invalid or malformed.",J).format({tokenNamePrefix:G}),L=Z0("Compact JWT string: {token}",J).format({token:U}),O=new i($,K,!0,L);return O.errorCategory=Z,O.muxCode=X0.NETWORK_TOKEN_MALFORMED,O.data=Y,O}if(H>=500){let $=new i("",K,X!=null?X:!0);return $.errorCategory=Z,$.muxCode=X0.NETWORK_UNKNOWN_ERROR,$}if(H===403)if(R){if(EA(R,E)){let $={timeStyle:"medium",dateStyle:"medium"},L=Z0("The video’s secured {tokenNamePrefix}-token has expired.",J).format({tokenNamePrefix:G}),O=Z0("Expired at: {expiredDate}. Current time: {currentDate}.",J).format({expiredDate:new Intl.DateTimeFormat("en",$).format((z=R.exp)!=null?z:0),currentDate:new Intl.DateTimeFormat("en",$).format(E)}),j=new i(L,K,!0,O);return j.errorCategory=Z,j.muxCode=X0.NETWORK_TOKEN_EXPIRED,j.data=Y,j}if(KA(R,F)){let $=Z0("The video’s playback ID does not match the one encoded in the {tokenNamePrefix}-token.",J).format({tokenNamePrefix:G}),L=Z0("Specified playback ID: {playbackId} and the playback ID encoded in the {tokenNamePrefix}-token: {tokenPlaybackId}",J).format({tokenNamePrefix:G,playbackId:F,tokenPlaybackId:R.sub}),O=new i($,K,!0,L);return O.errorCategory=Z,O.muxCode=X0.NETWORK_TOKEN_SUB_MISMATCH,O.data=Y,O}if(GA(R,V)){let $=Z0("The {tokenNamePrefix}-token is formatted with incorrect information.",J).format({tokenNamePrefix:G}),L=Z0("The {tokenNamePrefix}-token has no aud value. aud value should be {expectedAud}.",J).format({tokenNamePrefix:G,expectedAud:V}),O=new i($,K,!0,L);return O.errorCategory=Z,O.muxCode=X0.NETWORK_TOKEN_AUD_MISSING,O.data=Y,O}if(VA(R,V)){let $=Z0("The {tokenNamePrefix}-token is formatted with incorrect information.",J).format({tokenNamePrefix:G}),L=Z0("The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.",J).format({tokenNamePrefix:G,expectedAud:V,aud:R.aud}),O=new i($,K,!0,L);return O.errorCategory=Z,O.muxCode=X0.NETWORK_TOKEN_AUD_MISMATCH,O.data=Y,O}}else{let $=Z0("Authorization error trying to access this {category} URL. If this is a signed URL, you might need to provide a {tokenNamePrefix}-token.",J).format({tokenNamePrefix:G,category:Z}),L=Z0("Specified playback ID: {playbackId}",J).format({playbackId:F}),O=new i($,K,X!=null?X:!0,L);return O.errorCategory=Z,O.muxCode=X0.NETWORK_TOKEN_MISSING,O.data=Y,O}if(H===412){let $=Z0("This playback-id may belong to a live stream that is not currently active or an asset that is not ready.",J),L=Z0("Specified playback ID: {playbackId}",J).format({playbackId:F}),O=new i($,K,X!=null?X:!0,L);return O.errorCategory=Z,O.muxCode=X0.NETWORK_NOT_READY,O.streamType=Q.streamType===C0.LIVE?"live":Q.streamType===C0.ON_DEMAND?"on-demand":"unknown",O.data=Y,O}if(H===404){let $=Z0("This URL or playback-id does not exist. You may have used an Asset ID or an ID from a different resource.",J),L=Z0("Specified playback ID: {playbackId}",J).format({playbackId:F}),O=new i($,K,X!=null?X:!0,L);return O.errorCategory=Z,O.muxCode=X0.NETWORK_NOT_FOUND,O.data=Y,O}if(H===400){let $=Z0("The URL or playback-id was invalid. You may have used an invalid value as a playback-id."),L=Z0("Specified playback ID: {playbackId}",J).format({playbackId:F}),O=new i($,K,X!=null?X:!0,L);return O.errorCategory=Z,O.muxCode=X0.NETWORK_INVALID_URL,O.data=Y,O}let B=new i("",K,X!=null?X:!0);return B.errorCategory=Z,B.muxCode=X0.NETWORK_UNKNOWN_ERROR,B.data=Y,B},aK=A0.DefaultConfig.capLevelController,DA={"720p":921600,"1080p":2073600,"1440p":4194304,"2160p":8294400};function wA(Y){let Z=Y.toLowerCase().trim();return DA[Z]}var lq=class Y extends aK{constructor(Z){super(Z)}static setMaxAutoResolution(Z,Q){Q?Y.maxAutoResolution.set(Z,Q):Y.maxAutoResolution.delete(Z)}getMaxAutoResolution(){var Z;let Q=this.hls;return(Z=Y.maxAutoResolution.get(Q))!=null?Z:void 0}get levels(){var Z;return(Z=this.hls.levels)!=null?Z:[]}getValidLevels(Z){return this.levels.filter((Q,X)=>this.isLevelAllowed(Q)&&X<=Z)}getMaxLevelCapped(Z){let Q=this.getValidLevels(Z),X=this.getMaxAutoResolution();if(!X)return super.getMaxLevel(Z);let J=wA(X);if(!J)return super.getMaxLevel(Z);let W=Q.filter((H)=>H.width*H.height<=J),q=W.findIndex((H)=>H.width*H.height===J);if(q!==-1){let H=W[q];return Q.findIndex((E)=>E===H)}if(W.length===0)return 0;let z=W[W.length-1];return Q.findIndex((H)=>H===z)}getMaxLevel(Z){if(this.getMaxAutoResolution()!==void 0)return this.getMaxLevelCapped(Z);let Q=super.getMaxLevel(Z),X=this.getValidLevels(Z);if(!X[Q])return Q;let J=Math.min(X[Q].width,X[Q].height),W=Y.minMaxResolution;return J>=W?Q:aK.getMaxLevelByMediaSize(X,W*1.7777777777777777,W)}};lq.minMaxResolution=720,lq.maxAutoResolution=new WeakMap;var PA=lq,nq=PA,QQ={FAIRPLAY:"fairplay",PLAYREADY:"playready",WIDEVINE:"widevine"},CA=(Y)=>{if(Y.includes("fps"))return QQ.FAIRPLAY;if(Y.includes("playready"))return QQ.PLAYREADY;if(Y.includes("widevine"))return QQ.WIDEVINE},MA=(Y)=>{let Z=Y.split(` `).find((Q,X,J)=>X&&J[X-1].startsWith("#EXT-X-STREAM-INF"));return fetch(Z).then((Q)=>Q.status!==200?Promise.reject(Q):Q.text())},xA=(Y)=>{let Z=Y.split(` `).filter((X)=>X.startsWith("#EXT-X-SESSION-DATA"));if(!Z.length)return{};let Q={};for(let X of Z){let J=SA(X),W=J["DATA-ID"];W&&(Q[W]={...J})}return{sessionData:Q}},IA=/([A-Z0-9-]+)="?(.*?)"?(?:,|$)/g;function SA(Y){let Z=[...Y.matchAll(IA)];return Object.fromEntries(Z.map(([,Q,X])=>[Q,X]))}var TA=(Y)=>{var Z,Q,X;let J=Y.split(` `),W=(Q=((Z=J.find((E)=>E.startsWith("#EXT-X-PLAYLIST-TYPE")))!=null?Z:"").split(":")[1])==null?void 0:Q.trim(),q=WG(W),z=qG(W),H;if(q===C0.LIVE){let E=J.find((K)=>K.startsWith("#EXT-X-PART-INF"));if(E)H=+E.split(":")[1].split("=")[1]*2;else{let K=J.find((U)=>U.startsWith("#EXT-X-TARGETDURATION")),G=(X=K==null?void 0:K.split(":"))==null?void 0:X[1];H=+(G!=null?G:6)*3}}return{streamType:q,targetLiveWindow:z,liveEdgeStartOffset:H}},hA=async(Y,Z)=>{if(Z===R6.MP4)return{streamType:C0.ON_DEMAND,targetLiveWindow:Number.NaN,liveEdgeStartOffset:void 0,sessionData:void 0};if(Z===R6.M3U8){let Q=await fetch(Y);if(!Q.ok)return Promise.reject(Q);let X=await Q.text(),J=await MA(X);return{...xA(X),...TA(J)}}return console.error(`Media type ${Z} is an unrecognized or unsupported type for src ${Y}.`),{streamType:void 0,targetLiveWindow:void 0,liveEdgeStartOffset:void 0,sessionData:void 0}},fA=async(Y,Z,Q=HQ({src:Y}))=>{var X,J,W,q;let{streamType:z,targetLiveWindow:H,liveEdgeStartOffset:E,sessionData:K}=await hA(Y,Q),G=K==null?void 0:K["com.apple.hls.chapters"];(G!=null&&G.URI||G!=null&&G.VALUE.toLocaleLowerCase().startsWith("http"))&&Q4((X=G.URI)!=null?X:G.VALUE,Z),((J=r0.get(Z))!=null?J:{}).liveEdgeStartOffset=E,((W=r0.get(Z))!=null?W:{}).targetLiveWindow=H,Z.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((q=r0.get(Z))!=null?q:{}).streamType=z,Z.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},Q4=async(Y,Z)=>{var Q,X;try{let J=await fetch(Y);if(!J.ok)throw Error(`Failed to fetch Mux metadata: ${J.status} ${J.statusText}`);let W=await J.json(),q={};if(!((Q=W==null?void 0:W[0])!=null&&Q.metadata))return;for(let H of W[0].metadata)H.key&&H.value&&(q[H.key]=H.value);((X=r0.get(Z))!=null?X:{}).metadata=q;let z=new CustomEvent("muxmetadata");Z.dispatchEvent(z)}catch(J){console.error(J)}},yA=(Y)=>{var Z;let Q=Y.type,X=WG(Q),J=qG(Q),W,q=!!((Z=Y.partList)!=null&&Z.length);return X===C0.LIVE&&(W=q?Y.partTarget*2:Y.targetduration*3),{streamType:X,targetLiveWindow:J,liveEdgeStartOffset:W,lowLatency:q}},kA=(Y,Z,Q)=>{var X,J,W,q,z,H,E,K;let{streamType:G,targetLiveWindow:U,liveEdgeStartOffset:V,lowLatency:F}=yA(Y);if(G===C0.LIVE){F?(Q.config.backBufferLength=(X=Q.userConfig.backBufferLength)!=null?X:4,Q.config.maxFragLookUpTolerance=(J=Q.userConfig.maxFragLookUpTolerance)!=null?J:0.001,Q.config.abrBandWidthUpFactor=(W=Q.userConfig.abrBandWidthUpFactor)!=null?W:Q.config.abrBandWidthFactor):Q.config.backBufferLength=(q=Q.userConfig.backBufferLength)!=null?q:8;let R=Object.freeze({get length(){return Z.seekable.length},start(B){return Z.seekable.start(B)},end(B){var $;return B>this.length||B<0||Number.isFinite(Z.duration)?Z.seekable.end(B):($=Q.liveSyncPosition)!=null?$:Z.seekable.end(B)}});((z=r0.get(Z))!=null?z:{}).seekable=R}((H=r0.get(Z))!=null?H:{}).liveEdgeStartOffset=V,((E=r0.get(Z))!=null?E:{}).targetLiveWindow=U,Z.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0})),((K=r0.get(Z))!=null?K:{}).streamType=G,Z.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}))},tK,eK,BG=(eK=(tK=globalThis==null?void 0:globalThis.navigator)==null?void 0:tK.userAgent)!=null?eK:"",YG,ZG,QG,gA=(QG=(ZG=(YG=globalThis==null?void 0:globalThis.navigator)==null?void 0:YG.userAgentData)==null?void 0:ZG.platform)!=null?QG:"",bA=BG.toLowerCase().includes("android")||["x11","android"].some((Y)=>gA.toLowerCase().includes(Y)),_A=(Y)=>/^((?!chrome|android).)*safari/i.test(BG)&&!!Y.canPlayType("application/vnd.apple.mpegurl"),r0=new WeakMap,B6="mux.com",XG,JG,NG=(JG=(XG=A0).isSupported)==null?void 0:JG.call(XG),vA=(Y)=>bA||!_A(Y),EQ=()=>{if(typeof window<"u")return V2.utils.now()},pA=V2.utils.generateUUID,mY=({playbackId:Y,customDomain:Z=B6,maxResolution:Q,minResolution:X,renditionOrder:J,programStartTime:W,programEndTime:q,assetStartTime:z,assetEndTime:H,playbackToken:E,tokens:{playback:K=E}={},extraSourceParams:G={}}={})=>{if(!Y)return;let[U,V=""]=qQ(Y),F=new URL(`https://stream.${Z}/${U}.m3u8${V}`);return K||F.searchParams.has("token")?(F.searchParams.forEach((R,B)=>{B!="token"&&F.searchParams.delete(B)}),K&&F.searchParams.set("token",K)):(Q&&F.searchParams.set("max_resolution",Q),X&&(F.searchParams.set("min_resolution",X),Q&&+Q.slice(0,-1)<+X.slice(0,-1)&&console.error("minResolution must be <= maxResolution","minResolution",X,"maxResolution",Q)),J&&F.searchParams.set("rendition_order",J),W&&F.searchParams.set("program_start_time",`${W}`),q&&F.searchParams.set("program_end_time",`${q}`),z&&F.searchParams.set("asset_start_time",`${z}`),H&&F.searchParams.set("asset_end_time",`${H}`),Object.entries(G).forEach(([R,B])=>{B!=null&&F.searchParams.set(R,B)})),F.toString()},KQ=(Y)=>{if(!Y)return;let[Z]=Y.split("?");return Z||void 0},GQ=(Y)=>{if(!Y||!Y.startsWith("https://stream."))return;let[Z]=new URL(Y).pathname.slice(1).split(/\.m3u8|\//);return Z||void 0},cA=(Y)=>{var Z,Q,X;return(Z=Y==null?void 0:Y.metadata)!=null&&Z.video_id?Y.metadata.video_id:CG(Y)&&(X=(Q=KQ(Y.playbackId))!=null?Q:GQ(Y.src))!=null?X:Y.src},X4=(Y)=>{var Z;return(Z=r0.get(Y))==null?void 0:Z.error},$G=(Y)=>{var Z;return(Z=r0.get(Y))==null?void 0:Z.metadata},WQ=(Y)=>{var Z,Q;return(Q=(Z=r0.get(Y))==null?void 0:Z.streamType)!=null?Q:C0.UNKNOWN},LG=(Y)=>{var Z,Q;return(Q=(Z=r0.get(Y))==null?void 0:Z.targetLiveWindow)!=null?Q:Number.NaN},VQ=(Y)=>{var Z,Q;return(Q=(Z=r0.get(Y))==null?void 0:Z.seekable)!=null?Q:Y.seekable},OG=(Y)=>{var Z;let Q=(Z=r0.get(Y))==null?void 0:Z.liveEdgeStartOffset;if(typeof Q!="number")return Number.NaN;let X=VQ(Y);return X.length?X.end(X.length-1)-Q:Number.NaN},J4=0.034,uA=(Y,Z,Q=J4)=>Math.abs(Y-Z)<=Q,jG=(Y,Z,Q=J4)=>Y>Z||uA(Y,Z,Q),mA=(Y,Z=J4)=>Y.paused&&jG(Y.currentTime,Y.duration,Z),AG=(Y,Z)=>{var Q,X,J;if(!Z||!Y.buffered.length)return;if(Y.readyState>2)return!1;let W=Z.currentLevel>=0?(X=(Q=Z.levels)==null?void 0:Q[Z.currentLevel])==null?void 0:X.details:(J=Z.levels.find((G)=>!!G.details))==null?void 0:J.details;if(!W||W.live)return;let{fragments:q}=W;if(!(q!=null&&q.length))return;if(Y.currentTimeE&&HY.ended||Y.loop?Y.ended:Z&&AG(Y,Z)?!0:mA(Y),DG=(Y,Z,Q)=>{q4(Z,Q,Y);let{metadata:X={}}=Y,{view_session_id:J=pA()}=X,W=cA(Y);X.view_session_id=J,X.video_id=W,Y.metadata=X;let q=(K)=>{var G;(G=Z.mux)==null||G.emit("hb",{view_drm_type:K})};Y.drmTypeCb=q,r0.set(Z,{retryCount:0});let z=oA(Y,Z),H=BA(Y,Z,z);Y!=null&&Y.muxDataKeepSession&&(Z!=null&&Z.mux)&&!Z.mux.deleted?z&&Z.mux.addHLSJS({hlsjs:z,Hls:z?A0:void 0}):aA(Y,Z,z),tA(Y,Z,z),LA(Z),OA(Z);let E=RA(Y,Z,z);return{engine:z,setAutoplay:E,setPreload:H}},q4=(Y,Z,Q)=>{let X=Z==null?void 0:Z.engine;Y!=null&&Y.mux&&!Y.mux.deleted&&(Q!=null&&Q.muxDataKeepSession?X&&Y.mux.removeHLSJS():(Y.mux.destroy(),delete Y.mux)),X&&(X.detachMedia(),X.destroy()),Y&&(Y.hasAttribute("src")&&(Y.removeAttribute("src"),Y.load()),Y.removeEventListener("error",xG),Y.removeEventListener("error",sq),Y.removeEventListener("durationchange",MG),r0.delete(Y),Y.dispatchEvent(new Event("teardown")))};function wG(Y,Z){var Q;let X=HQ(Y);if(X!==R6.M3U8)return!0;let J=!X||((Q=Z.canPlayType(X))!=null?Q:!0),{preferPlayback:W}=Y,q=W===X8.MSE,z=W===X8.NATIVE,H=NG&&(q||vA(Z));return J&&(z||!H)}var oA=(Y,Z)=>{let{debug:Q,streamType:X,startTime:J=-1,metadata:W,preferCmcd:q,_hlsConfig:z={},maxAutoResolution:H}=Y,E=HQ(Y)===R6.M3U8,K=wG(Y,Z);if(E&&!K&&NG){let G={backBufferLength:30,renderTextTracksNatively:!1,liveDurationInfinity:!0,capLevelOnFPSDrop:!0},U=dA(X),V=lA(Y),F=[pY.QUERY,pY.HEADER].includes(q)?{useHeaders:q===pY.HEADER,sessionId:W==null?void 0:W.view_session_id,contentId:W==null?void 0:W.video_id}:void 0,R=rA(Y,z),B=new A0({debug:Q,startPosition:J,cmcd:F,xhrSetup:($,L)=>{var O,j;if(q&&q!==pY.QUERY)return;let w=new URL(L);if(!w.searchParams.has("CMCD"))return;let D=((j=(O=w.searchParams.get("CMCD"))==null?void 0:O.split(","))!=null?j:[]).filter((M)=>M.startsWith("sid")||M.startsWith("cid")).join(",");w.searchParams.set("CMCD",D),$.open("GET",w)},...G,...R,...U,...V,...z});return R.capLevelController===nq&&H!==void 0&&nq.setMaxAutoResolution(B,H),B.on(A0.Events.MANIFEST_PARSED,async function($,L){var O,j;let w=(O=L.sessionData)==null?void 0:O["com.apple.hls.chapters"];(w!=null&&w.URI||w!=null&&w.VALUE.toLocaleLowerCase().startsWith("http"))&&Q4((j=w==null?void 0:w.URI)!=null?j:w==null?void 0:w.VALUE,Z)}),B}},dA=(Y)=>Y===C0.LIVE?{backBufferLength:8}:{},lA=(Y)=>{let{tokens:{drm:Z}={},playbackId:Q,drmTypeCb:X}=Y,J=KQ(Q);return!Z||!J?{}:{emeEnabled:!0,drmSystems:{"com.apple.fps":{licenseUrl:XQ(Y,"fairplay"),serverCertificateUrl:PG(Y,"fairplay")},"com.widevine.alpha":{licenseUrl:XQ(Y,"widevine")},"com.microsoft.playready":{licenseUrl:XQ(Y,"playready")}},requestMediaKeySystemAccessFunc:(W,q)=>(W==="com.widevine.alpha"&&(q=[...q.map((z)=>{var H;let E=(H=z.videoCapabilities)==null?void 0:H.map((K)=>({...K,robustness:"HW_SECURE_ALL"}));return{...z,videoCapabilities:E}}),...q]),navigator.requestMediaKeySystemAccess(W,q).then((z)=>{let H=CA(W);return X==null||X(H),z}))}},nA=async(Y)=>{let Z=await fetch(Y);return Z.status!==200?Promise.reject(Z):await Z.arrayBuffer()},sA=async(Y,Z)=>{let Q=await fetch(Z,{method:"POST",headers:{"Content-type":"application/octet-stream"},body:Y});if(Q.status!==200)return Promise.reject(Q);let X=await Q.arrayBuffer();return new Uint8Array(X)},iA=(Y,Z)=>{let Q=async(W)=>{let q=await navigator.requestMediaKeySystemAccess("com.apple.fps",[{initDataTypes:[W],videoCapabilities:[{contentType:"application/vnd.apple.mpegurl",robustness:""}],distinctiveIdentifier:"not-allowed",persistentState:"not-allowed",sessionTypes:["temporary"]}]).then((H)=>{var E;return(E=Y.drmTypeCb)==null||E.call(Y,QQ.FAIRPLAY),H}).catch(()=>{let H=Z0("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser."),E=new i(H,i.MEDIA_ERR_ENCRYPTED,!0);E.errorCategory=v0.DRM,E.muxCode=X0.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM,l1(Z,E)});if(!q)return;let z=await q.createMediaKeys();try{let H=await nA(PG(Y,"fairplay")).catch((E)=>{if(E instanceof Response){let K=JQ(E,v0.DRM,Y);return console.error("mediaError",K==null?void 0:K.message,K==null?void 0:K.context),K?Promise.reject(K):Promise.reject(Error("Unexpected error in app cert request"))}return Promise.reject(E)});await z.setServerCertificate(H).catch(()=>{let E=Z0("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate."),K=new i(E,i.MEDIA_ERR_ENCRYPTED,!0);return K.errorCategory=v0.DRM,K.muxCode=X0.ENCRYPTED_UPDATE_SERVER_CERT_FAILED,Promise.reject(K)})}catch(H){l1(Z,H);return}await Z.setMediaKeys(z)},X=(W)=>{let q;if(W==="internal-error"){let z=Z0("The DRM Content Decryption Module system had an internal failure. Try reloading the page, upading your browser, or playing in another browser.");q=new i(z,i.MEDIA_ERR_ENCRYPTED,!0),q.errorCategory=v0.DRM,q.muxCode=X0.ENCRYPTED_CDM_ERROR}else if(W==="output-restricted"||W==="output-downscaled"){let z=Z0("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");q=new i(z,i.MEDIA_ERR_ENCRYPTED,!1),q.errorCategory=v0.DRM,q.muxCode=X0.ENCRYPTED_OUTPUT_RESTRICTED}q&&l1(Z,q)},J=async(W,q)=>{let z=Z.mediaKeys.createSession(),H=()=>{z.keyStatuses.forEach((K)=>X(K))},E=async(K)=>{let G=K.message;try{let U=await sA(G,XQ(Y,"fairplay"));try{await z.update(U)}catch{let V=Z0("Failed to update DRM license. This may be an issue with the player or your protected content."),F=new i(V,i.MEDIA_ERR_ENCRYPTED,!0);F.errorCategory=v0.DRM,F.muxCode=X0.ENCRYPTED_UPDATE_LICENSE_FAILED,l1(Z,F)}}catch(U){if(U instanceof Response){let V=JQ(U,v0.DRM,Y);if(console.error("mediaError",V==null?void 0:V.message,V==null?void 0:V.context),V){l1(Z,V);return}console.error("Unexpected error in license key request",U);return}console.error(U)}};z.addEventListener("keystatuseschange",H),z.addEventListener("message",E),Z.addEventListener("teardown",()=>{z.removeEventListener("keystatuseschange",H),z.removeEventListener("message",E),z.close()},{once:!0}),await z.generateRequest(W,q).catch((K)=>{console.error("Failed to generate license request",K);let G=Z0("Failed to generate a DRM license request. This may be an issue with the player or your protected content."),U=new i(G,i.MEDIA_ERR_ENCRYPTED,!0);return U.errorCategory=v0.DRM,U.muxCode=X0.ENCRYPTED_GENERATE_REQUEST_FAILED,Promise.reject(U)})};X1(Z,"encrypted",async(W)=>{try{let q=W.initDataType;if(q!=="skd"){console.error(`Received unexpected initialization data type "${q}"`);return}Z.mediaKeys||await Q(q);let z=W.initData;if(z==null){console.error(`Could not start encrypted playback due to missing initData in ${W.type} event`);return}await J(q,z)}catch(q){l1(Z,q);return}})},XQ=({playbackId:Y,tokens:{drm:Z}={},customDomain:Q=B6},X)=>{let J=KQ(Y);return`https://license.${Q.toLocaleLowerCase().endsWith(B6)?Q:B6}/license/${X}/${J}?token=${Z}`},PG=({playbackId:Y,tokens:{drm:Z}={},customDomain:Q=B6},X)=>{let J=KQ(Y);return`https://license.${Q.toLocaleLowerCase().endsWith(B6)?Q:B6}/appcert/${X}/${J}?token=${Z}`},CG=({playbackId:Y,src:Z,customDomain:Q})=>{if(Y)return!0;if(typeof Z!="string")return!1;let X=window==null?void 0:window.location.href,J=new URL(Z,X).hostname.toLocaleLowerCase();return J.includes(B6)||!!Q&&J.includes(Q.toLocaleLowerCase())},rA=(Y,Z)=>{let Q={};return Q.capLevelToPlayerSize=Y.capRenditionToPlayerSize,Q.capLevelToPlayerSize==null?(Q.capLevelController=nq,Q.capLevelToPlayerSize=!0):Q.capLevelController=vY,Q},aA=(Y,Z,Q)=>{var X;let{envKey:J,disableTracking:W,muxDataSDK:q=V2,muxDataSDKOptions:z={}}=Y,H=CG(Y);if(!W&&(J||H)){let{playerInitTime:E,playerSoftwareName:K,playerSoftwareVersion:G,beaconCollectionDomain:U,debug:V,disableCookies:F}=Y,R={...Y.metadata,video_title:((X=Y==null?void 0:Y.metadata)==null?void 0:X.video_title)||void 0},B=($)=>typeof $.player_error_code=="string"?!1:typeof Y.errorTranslator=="function"?Y.errorTranslator($):$;q.monitor(Z,{debug:V,beaconCollectionDomain:U,hlsjs:Q,Hls:Q?A0:void 0,automaticErrorTracking:!1,errorTranslator:B,disableCookies:F,...z,data:{...J?{env_key:J}:{},player_software_name:K,player_software:K,player_software_version:G,player_init_time:E,...R}})}},tA=(Y,Z,Q)=>{var X,J;let W=wG(Y,Z),{src:q,customDomain:z=B6}=Y,H=()=>{Z.ended||Y.disablePseudoEnded||!W4(Z,Q)||(AG(Z,Q)?Z.currentTime=Z.buffered.end(Z.buffered.length-1):Z.dispatchEvent(new Event("ended")))},E,K,G=()=>{let U=VQ(Z),V,F;U.length>0&&(V=U.start(0),F=U.end(0)),(K!==F||E!==V)&&Z.dispatchEvent(new CustomEvent("seekablechange",{composed:!0})),E=V,K=F};if(X1(Z,"durationchange",G),Z&&W){let U=HQ(Y);if(typeof q=="string"){if(q.endsWith(".mp4")&&q.includes(z)){let R=GQ(q),B=new URL(`https://stream.${z}/${R}/metadata.json`);Q4(B.toString(),Z)}let V=()=>{if(WQ(Z)!==C0.LIVE||Number.isFinite(Z.duration))return;let R=setInterval(G,1000);Z.addEventListener("teardown",()=>{clearInterval(R)},{once:!0}),X1(Z,"durationchange",()=>{Number.isFinite(Z.duration)&&clearInterval(R)})},F=async()=>fA(q,Z,U).then(V).catch((R)=>{if(R instanceof Response){let B=JQ(R,v0.VIDEO,Y);if(B){l1(Z,B);return}}else R instanceof Error});if(Z.preload==="none"){let R=()=>{F(),Z.removeEventListener("loadedmetadata",B)},B=()=>{F(),Z.removeEventListener("play",R)};X1(Z,"play",R,{once:!0}),X1(Z,"loadedmetadata",B,{once:!0})}else F();(X=Y.tokens)!=null&&X.drm?iA(Y,Z):X1(Z,"encrypted",()=>{let R=Z0("Attempting to play DRM-protected content without providing a DRM token."),B=new i(R,i.MEDIA_ERR_ENCRYPTED,!0);B.errorCategory=v0.DRM,B.muxCode=X0.ENCRYPTED_MISSING_TOKEN,l1(Z,B)},{once:!0}),Z.setAttribute("src",q),Y.startTime&&(((J=r0.get(Z))!=null?J:{}).startTime=Y.startTime,Z.addEventListener("durationchange",MG,{once:!0}))}else Z.removeAttribute("src");Z.addEventListener("error",xG),Z.addEventListener("error",sq),Z.addEventListener("emptied",()=>{Z.querySelectorAll("track[data-removeondestroy]").forEach((V)=>{V.remove()})},{once:!0}),X1(Z,"pause",H),X1(Z,"seeked",H),X1(Z,"play",()=>{Z.ended||jG(Z.currentTime,Z.duration)&&(Z.currentTime=Z.seekable.length?Z.seekable.start(0):0)})}else Q&&q?(Q.once(A0.Events.LEVEL_LOADED,(U,V)=>{kA(V.details,Z,Q),G(),WQ(Z)===C0.LIVE&&!Number.isFinite(Z.duration)&&(Q.on(A0.Events.LEVEL_UPDATED,G),X1(Z,"durationchange",()=>{Number.isFinite(Z.duration)&&Q.off(A0.Events.LEVELS_UPDATED,G)}))}),Q.on(A0.Events.ERROR,(U,V)=>{var F,R;let B=eA(V,Y);if(B.muxCode===X0.NETWORK_NOT_READY){let $=(F=r0.get(Z))!=null?F:{},L=(R=$.retryCount)!=null?R:0;if(L<6){let O=L===0?5000:60000,j=new i(`Retrying in ${O/1000} seconds...`,B.code,B.fatal);Object.assign(j,B),l1(Z,j),setTimeout(()=>{$.retryCount=L+1,V.details==="manifestLoadError"&&V.url&&Q.loadSource(V.url)},O);return}else{$.retryCount=0;let O=new i('Try again later or click here to retry',B.code,B.fatal);Object.assign(O,B),l1(Z,O);return}}l1(Z,B)}),Q.on(A0.Events.MANIFEST_LOADED,()=>{let U=r0.get(Z);U&&U.error&&(U.error=null,U.retryCount=0,Z.dispatchEvent(new Event("emptied")),Z.dispatchEvent(new Event("loadstart")))}),Z.addEventListener("error",sq),X1(Z,"waiting",H),NA(Y,Q),$A(Z,Q),Q.attachMedia(Z)):console.error("It looks like the video you're trying to play will not work on this system! If possible, try upgrading to the newest versions of your browser or software.")};function MG(Y){var Z;let Q=Y.target,X=(Z=r0.get(Q))==null?void 0:Z.startTime;if(X&&WA(Q.seekable,Q.duration,X)){let J=Q.preload==="auto";J&&(Q.preload="none"),Q.currentTime=X,J&&(Q.preload="auto")}}async function xG(Y){if(!Y.isTrusted)return;Y.stopImmediatePropagation();let Z=Y.target;if(!(Z!=null&&Z.error))return;let{message:Q,code:X}=Z.error,J=new i(Q,X);if(Z.src&&X===i.MEDIA_ERR_SRC_NOT_SUPPORTED&&Z.readyState===HTMLMediaElement.HAVE_NOTHING){setTimeout(()=>{var W;let q=(W=X4(Z))!=null?W:Z.error;(q==null?void 0:q.code)===i.MEDIA_ERR_SRC_NOT_SUPPORTED&&l1(Z,J)},500);return}if(Z.src&&(X!==i.MEDIA_ERR_DECODE||X!==void 0))try{let{status:W}=await fetch(Z.src);J.data={response:{code:W}}}catch{}l1(Z,J)}function l1(Y,Z){var Q;Z.fatal&&(((Q=r0.get(Y))!=null?Q:{}).error=Z,Y.dispatchEvent(new CustomEvent("error",{detail:Z})))}function sq(Y){var Z,Q;if(!(Y instanceof CustomEvent)||!(Y.detail instanceof i))return;let{target:X,detail:J}=Y;!J||!J.fatal||(((Z=r0.get(X))!=null?Z:{}).error=J,(Q=X.mux)==null||Q.emit("error",{player_error_code:J.code,player_error_message:J.message,player_error_context:J.context}))}var eA=(Y,Z)=>{var Q,X,J;!Y.fatal?Z.debug&&console.warn("getErrorFromHlsErrorData() (non-fatal)",Y):console.error("getErrorFromHlsErrorData()",Y);let W={[A0.ErrorTypes.NETWORK_ERROR]:i.MEDIA_ERR_NETWORK,[A0.ErrorTypes.MEDIA_ERROR]:i.MEDIA_ERR_DECODE,[A0.ErrorTypes.KEY_SYSTEM_ERROR]:i.MEDIA_ERR_ENCRYPTED},q=(K)=>[A0.ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,A0.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED].includes(K.details)?i.MEDIA_ERR_NETWORK:W[K.type],z=(K)=>{if(K.type===A0.ErrorTypes.KEY_SYSTEM_ERROR)return v0.DRM;if(K.type===A0.ErrorTypes.NETWORK_ERROR)return v0.VIDEO},H,E=q(Y);if(E===i.MEDIA_ERR_NETWORK&&Y.response){let K=(Q=z(Y))!=null?Q:v0.VIDEO;H=(X=JQ(Y.response,K,Z,Y.fatal))!=null?X:new i("",E,Y.fatal)}else if(E===i.MEDIA_ERR_ENCRYPTED)if(Y.details===A0.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE){let K=Z0("Attempting to play DRM-protected content without providing a DRM token.");H=new i(K,i.MEDIA_ERR_ENCRYPTED,Y.fatal),H.errorCategory=v0.DRM,H.muxCode=X0.ENCRYPTED_MISSING_TOKEN}else if(Y.details===A0.ErrorDetails.KEY_SYSTEM_NO_ACCESS){let K=Z0("Cannot play DRM-protected content with current security configuration on this browser. Try playing in another browser.");H=new i(K,i.MEDIA_ERR_ENCRYPTED,Y.fatal),H.errorCategory=v0.DRM,H.muxCode=X0.ENCRYPTED_UNSUPPORTED_KEY_SYSTEM}else if(Y.details===A0.ErrorDetails.KEY_SYSTEM_NO_SESSION){let K=Z0("Failed to generate a DRM license request. This may be an issue with the player or your protected content.");H=new i(K,i.MEDIA_ERR_ENCRYPTED,!0),H.errorCategory=v0.DRM,H.muxCode=X0.ENCRYPTED_GENERATE_REQUEST_FAILED}else if(Y.details===A0.ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED){let K=Z0("Failed to update DRM license. This may be an issue with the player or your protected content.");H=new i(K,i.MEDIA_ERR_ENCRYPTED,Y.fatal),H.errorCategory=v0.DRM,H.muxCode=X0.ENCRYPTED_UPDATE_LICENSE_FAILED}else if(Y.details===A0.ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED){let K=Z0("Your server certificate failed when attempting to set it. This may be an issue with a no longer valid certificate.");H=new i(K,i.MEDIA_ERR_ENCRYPTED,Y.fatal),H.errorCategory=v0.DRM,H.muxCode=X0.ENCRYPTED_UPDATE_SERVER_CERT_FAILED}else if(Y.details===A0.ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR){let K=Z0("The DRM Content Decryption Module system had an internal failure. Try reloading the page, upading your browser, or playing in another browser.");H=new i(K,i.MEDIA_ERR_ENCRYPTED,Y.fatal),H.errorCategory=v0.DRM,H.muxCode=X0.ENCRYPTED_CDM_ERROR}else if(Y.details===A0.ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED){let K=Z0("DRM playback is being attempted in an environment that is not sufficiently secure. User may see black screen.");H=new i(K,i.MEDIA_ERR_ENCRYPTED,!1),H.errorCategory=v0.DRM,H.muxCode=X0.ENCRYPTED_OUTPUT_RESTRICTED}else H=new i(Y.error.message,i.MEDIA_ERR_ENCRYPTED,Y.fatal),H.errorCategory=v0.DRM,H.muxCode=X0.ENCRYPTED_ERROR;else H=new i("",E,Y.fatal);return H.context||(H.context=`${Y.url?`url: ${Y.url} `:""}${Y.response&&(Y.response.code||Y.response.text)?`response: ${Y.response.code}, ${Y.response.text} `:""}${Y.reason?`failure reason: ${Y.reason} `:""}${Y.level?`level: ${Y.level} `:""}${Y.parent?`parent stream controller: ${Y.parent} `:""}${Y.buffer?`buffer length: ${Y.buffer} `:""}${Y.error?`error: ${Y.error} `:""}${Y.event?`event: ${Y.event} `:""}${Y.err?`error message: ${(J=Y.err)==null?void 0:J.message} `:""}`),H.data=Y,H};var IG=["abort","canplay","canplaythrough","durationchange","emptied","encrypted","ended","error","loadeddata","loadedmetadata","loadstart","pause","play","playing","progress","ratechange","seeked","seeking","stalled","suspend","timeupdate","volumechange","waiting","waitingforkey","resize","enterpictureinpicture","leavepictureinpicture","webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"],SG=["autopictureinpicture","disablepictureinpicture","disableremoteplayback","autoplay","controls","controlslist","crossorigin","loop","muted","playsinline","poster","preload","src"];function YD(Y){return` `}function ZD(Y){return` `}function TG(Y,{tag:Z,is:Q}){let X=globalThis.document?.createElement?.(Z,{is:Q}),J=X?QD(X):[];return class W extends Y{static getTemplateHTML=Z.endsWith("audio")?YD:ZD;static shadowRootOptions={mode:"open"};static Events=IG;static#Y=!1;static get observedAttributes(){return W.#X(),[...X?.constructor?.observedAttributes??[],...SG]}static#X(){if(this.#Y)return;this.#Y=!0;let q=new Set(this.observedAttributes);q.delete("muted");for(let z of J){if(z in this.prototype)continue;if(typeof X[z]==="function")this.prototype[z]=function(...H){return this.#W(),(()=>{if(this.call)return this.call(z,...H);return this.nativeEl?.[z]?.apply(this.nativeEl,H)})()};else{let H={get(){this.#W();let E=z.toLowerCase();if(q.has(E)){let K=this.getAttribute(E);return K===null?!1:K===""?!0:K}return this.get?.(z)??this.nativeEl?.[z]}};if(z!==z.toUpperCase())H.set=function(E){this.#W();let K=z.toLowerCase();if(q.has(K)){if(E===!0||E===!1||E==null)this.toggleAttribute(K,Boolean(E));else this.setAttribute(K,E);return}if(this.set){this.set(z,E);return}if(this.nativeEl)this.nativeEl[z]=E};Object.defineProperty(this.prototype,z,H)}}}#Q=!1;#J=null;#Z=new Map;#q;get;set;call;get nativeEl(){return this.#W(),this.#J??this.querySelector(":scope > [slot=media]")??this.querySelector(Z)??this.shadowRoot?.querySelector(Z)??null}set nativeEl(q){this.#J=q}get defaultMuted(){return this.hasAttribute("muted")}set defaultMuted(q){this.toggleAttribute("muted",q)}get src(){return this.getAttribute("src")}set src(q){this.setAttribute("src",`${q}`)}get preload(){return this.getAttribute("preload")??this.nativeEl?.preload}set preload(q){this.setAttribute("preload",`${q}`)}#W(){if(this.#Q)return;this.#Q=!0,this.init()}init(){if(!this.shadowRoot){this.attachShadow({mode:"open"});let q=XD(this.attributes);if(Q)q.is=Q;if(Z)q.part=Z;this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(q)}this.nativeEl.muted=this.hasAttribute("muted");for(let q of J)this.#G(q);this.#q=new MutationObserver(this.#H.bind(this)),this.shadowRoot.addEventListener("slotchange",()=>this.#z()),this.#z();for(let q of this.constructor.Events)this.shadowRoot.addEventListener(q,this,!0)}handleEvent(q){if(q.target===this.nativeEl)this.dispatchEvent(new CustomEvent(q.type,{detail:q.detail}))}#z(){let q=new Map(this.#Z);(this.shadowRoot?.querySelector("slot:not([name])")?.assignedElements({flatten:!0}).filter((E)=>["track","source"].includes(E.localName))).forEach((E)=>{q.delete(E);let K=this.#Z.get(E);if(!K)K=E.cloneNode(),this.#Z.set(E,K),this.#q?.observe(E,{attributes:!0});this.nativeEl?.append(K),this.#E(K)}),q.forEach((E,K)=>{E.remove(),this.#Z.delete(K)})}#H(q){for(let z of q)if(z.type==="attributes"){let{target:H,attributeName:E}=z,K=this.#Z.get(H);if(K&&E)K.setAttribute(E,H.getAttribute(E)??""),this.#E(K)}}#E(q){if(q&&q.localName==="track"&&q.default&&(q.kind==="chapters"||q.kind==="metadata")&&q.track.mode==="disabled")q.track.mode="hidden"}#G(q){if(Object.prototype.hasOwnProperty.call(this,q)){let z=this[q];delete this[q],this[q]=z}}attributeChangedCallback(q,z,H){this.#W(),this.#K(q,z,H)}#K(q,z,H){if(["id","class"].includes(q))return;if(!W.observedAttributes.includes(q)&&this.constructor.observedAttributes.includes(q))return;if(H===null)this.nativeEl?.removeAttribute(q);else if(this.nativeEl?.getAttribute(q)!==H)this.nativeEl?.setAttribute(q,H)}connectedCallback(){this.#W()}}}function QD(Y){let Z=[];for(let Q=Object.getPrototypeOf(Y);Q&&Q!==HTMLElement.prototype;Q=Object.getPrototypeOf(Q)){let X=Object.getOwnPropertyNames(Q);Z.push(...X)}return Z}function hG(Y){let Z="";for(let Q in Y){if(!SG.includes(Q))continue;let X=Y[Q];if(X==="")Z+=` ${Q}`;else Z+=` ${Q}="${X}"`}return Z}function XD(Y){let Z={};for(let Q of Y)Z[Q.name]=Q.value;return Z}var oY=TG(globalThis.HTMLElement??class{},{tag:"video"}),Hx=TG(globalThis.HTMLElement??class{},{tag:"audio"});var kG=(Y)=>{throw TypeError(Y)},H4=(Y,Z,Q)=>Z.has(Y)||kG("Cannot "+Q),$1=(Y,Z,Q)=>(H4(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)),J8=(Y,Z,Q)=>Z.has(Y)?kG("Cannot add the same private member more than once"):Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q),n1=(Y,Z,Q,X)=>(H4(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q),UQ=(Y,Z,Q)=>(H4(Y,Z,"access private method"),Q),JD=()=>{try{return"0.30.2"}catch{}return"UNKNOWN"},WD=JD(),qD=()=>WD,HD=` `,S={BEACON_COLLECTION_DOMAIN:"beacon-collection-domain",CUSTOM_DOMAIN:"custom-domain",DEBUG:"debug",DISABLE_TRACKING:"disable-tracking",DISABLE_COOKIES:"disable-cookies",DISABLE_PSEUDO_ENDED:"disable-pseudo-ended",DRM_TOKEN:"drm-token",PLAYBACK_TOKEN:"playback-token",ENV_KEY:"env-key",MAX_RESOLUTION:"max-resolution",MIN_RESOLUTION:"min-resolution",MAX_AUTO_RESOLUTION:"max-auto-resolution",RENDITION_ORDER:"rendition-order",PROGRAM_START_TIME:"program-start-time",PROGRAM_END_TIME:"program-end-time",ASSET_START_TIME:"asset-start-time",ASSET_END_TIME:"asset-end-time",METADATA_URL:"metadata-url",PLAYBACK_ID:"playback-id",PLAYER_SOFTWARE_NAME:"player-software-name",PLAYER_SOFTWARE_VERSION:"player-software-version",PLAYER_INIT_TIME:"player-init-time",PREFER_CMCD:"prefer-cmcd",PREFER_PLAYBACK:"prefer-playback",START_TIME:"start-time",STREAM_TYPE:"stream-type",TARGET_LIVE_WINDOW:"target-live-window",LIVE_EDGE_OFFSET:"live-edge-offset",TYPE:"type",LOGO:"logo",CAP_RENDITION_TO_PLAYER_SIZE:"cap-rendition-to-player-size"},zD=Object.values(S),fG=qD(),yG="mux-video",p8,dY,FQ,lY,RQ,BQ,NQ,$Q,LQ,nY,OQ,L9,sY,gG=class extends oY{constructor(){super();J8(this,L9),J8(this,p8),J8(this,dY),J8(this,FQ),J8(this,lY,{}),J8(this,RQ,{}),J8(this,BQ),J8(this,NQ),J8(this,$Q),J8(this,LQ),J8(this,nY,""),J8(this,OQ),n1(this,FQ,EQ()),this.nativeEl.addEventListener("muxmetadata",(Y)=>{var Z;let Q=$G(this.nativeEl),X=(Z=this.metadata)!=null?Z:{};this.metadata={...Q,...X},(Q==null?void 0:Q["com.mux.video.branding"])==="mux-free-plan"&&(n1(this,nY,"default"),this.updateLogo())})}static get NAME(){return yG}static get VERSION(){return fG}static get observedAttributes(){var Y;return[...zD,...(Y=oY.observedAttributes)!=null?Y:[]]}static getLogoHTML(Y){return!Y||Y==="false"?"":Y==="default"?HD:``}static getTemplateHTML(Y={}){var Z;return` ${oY.getTemplateHTML(Y)} ${this.getLogoHTML((Z=Y[S.LOGO])!=null?Z:"")} `}get preferCmcd(){var Y;return(Y=this.getAttribute(S.PREFER_CMCD))!=null?Y:void 0}set preferCmcd(Y){Y!==this.preferCmcd&&(Y?$9.includes(Y)?this.setAttribute(S.PREFER_CMCD,Y):console.warn(`Invalid value for preferCmcd. Must be one of ${$9.join()}`):this.removeAttribute(S.PREFER_CMCD))}get playerInitTime(){return this.hasAttribute(S.PLAYER_INIT_TIME)?+this.getAttribute(S.PLAYER_INIT_TIME):$1(this,FQ)}set playerInitTime(Y){Y!=this.playerInitTime&&(Y==null?this.removeAttribute(S.PLAYER_INIT_TIME):this.setAttribute(S.PLAYER_INIT_TIME,`${+Y}`))}get playerSoftwareName(){var Y;return(Y=$1(this,$Q))!=null?Y:yG}set playerSoftwareName(Y){n1(this,$Q,Y)}get playerSoftwareVersion(){var Y;return(Y=$1(this,NQ))!=null?Y:fG}set playerSoftwareVersion(Y){n1(this,NQ,Y)}get _hls(){var Y;return(Y=$1(this,p8))==null?void 0:Y.engine}get mux(){var Y;return(Y=this.nativeEl)==null?void 0:Y.mux}get error(){var Y;return(Y=X4(this.nativeEl))!=null?Y:null}get errorTranslator(){return $1(this,LQ)}set errorTranslator(Y){n1(this,LQ,Y)}get src(){return this.getAttribute("src")}set src(Y){Y!==this.src&&(Y==null?this.removeAttribute("src"):this.setAttribute("src",Y))}get type(){var Y;return(Y=this.getAttribute(S.TYPE))!=null?Y:void 0}set type(Y){Y!==this.type&&(Y?this.setAttribute(S.TYPE,Y):this.removeAttribute(S.TYPE))}get preload(){let Y=this.getAttribute("preload");return Y===""?"auto":["none","metadata","auto"].includes(Y)?Y:super.preload}set preload(Y){Y!=this.getAttribute("preload")&&(["","none","metadata","auto"].includes(Y)?this.setAttribute("preload",Y):this.removeAttribute("preload"))}get debug(){return this.getAttribute(S.DEBUG)!=null}set debug(Y){Y!==this.debug&&(Y?this.setAttribute(S.DEBUG,""):this.removeAttribute(S.DEBUG))}get disableTracking(){return this.hasAttribute(S.DISABLE_TRACKING)}set disableTracking(Y){Y!==this.disableTracking&&this.toggleAttribute(S.DISABLE_TRACKING,!!Y)}get disableCookies(){return this.hasAttribute(S.DISABLE_COOKIES)}set disableCookies(Y){Y!==this.disableCookies&&(Y?this.setAttribute(S.DISABLE_COOKIES,""):this.removeAttribute(S.DISABLE_COOKIES))}get disablePseudoEnded(){return this.hasAttribute(S.DISABLE_PSEUDO_ENDED)}set disablePseudoEnded(Y){Y!==this.disablePseudoEnded&&(Y?this.setAttribute(S.DISABLE_PSEUDO_ENDED,""):this.removeAttribute(S.DISABLE_PSEUDO_ENDED))}get startTime(){let Y=this.getAttribute(S.START_TIME);if(Y==null)return;let Z=+Y;return Number.isNaN(Z)?void 0:Z}set startTime(Y){Y!==this.startTime&&(Y==null?this.removeAttribute(S.START_TIME):this.setAttribute(S.START_TIME,`${Y}`))}get playbackId(){var Y;return this.hasAttribute(S.PLAYBACK_ID)?this.getAttribute(S.PLAYBACK_ID):(Y=GQ(this.src))!=null?Y:void 0}set playbackId(Y){Y!==this.playbackId&&(Y?this.setAttribute(S.PLAYBACK_ID,Y):this.removeAttribute(S.PLAYBACK_ID))}get maxResolution(){var Y;return(Y=this.getAttribute(S.MAX_RESOLUTION))!=null?Y:void 0}set maxResolution(Y){Y!==this.maxResolution&&(Y?this.setAttribute(S.MAX_RESOLUTION,Y):this.removeAttribute(S.MAX_RESOLUTION))}get minResolution(){var Y;return(Y=this.getAttribute(S.MIN_RESOLUTION))!=null?Y:void 0}set minResolution(Y){Y!==this.minResolution&&(Y?this.setAttribute(S.MIN_RESOLUTION,Y):this.removeAttribute(S.MIN_RESOLUTION))}get maxAutoResolution(){var Y;return(Y=this.getAttribute(S.MAX_AUTO_RESOLUTION))!=null?Y:void 0}set maxAutoResolution(Y){Y==null?this.removeAttribute(S.MAX_AUTO_RESOLUTION):this.setAttribute(S.MAX_AUTO_RESOLUTION,Y)}get renditionOrder(){var Y;return(Y=this.getAttribute(S.RENDITION_ORDER))!=null?Y:void 0}set renditionOrder(Y){Y!==this.renditionOrder&&(Y?this.setAttribute(S.RENDITION_ORDER,Y):this.removeAttribute(S.RENDITION_ORDER))}get programStartTime(){let Y=this.getAttribute(S.PROGRAM_START_TIME);if(Y==null)return;let Z=+Y;return Number.isNaN(Z)?void 0:Z}set programStartTime(Y){Y==null?this.removeAttribute(S.PROGRAM_START_TIME):this.setAttribute(S.PROGRAM_START_TIME,`${Y}`)}get programEndTime(){let Y=this.getAttribute(S.PROGRAM_END_TIME);if(Y==null)return;let Z=+Y;return Number.isNaN(Z)?void 0:Z}set programEndTime(Y){Y==null?this.removeAttribute(S.PROGRAM_END_TIME):this.setAttribute(S.PROGRAM_END_TIME,`${Y}`)}get assetStartTime(){let Y=this.getAttribute(S.ASSET_START_TIME);if(Y==null)return;let Z=+Y;return Number.isNaN(Z)?void 0:Z}set assetStartTime(Y){Y==null?this.removeAttribute(S.ASSET_START_TIME):this.setAttribute(S.ASSET_START_TIME,`${Y}`)}get assetEndTime(){let Y=this.getAttribute(S.ASSET_END_TIME);if(Y==null)return;let Z=+Y;return Number.isNaN(Z)?void 0:Z}set assetEndTime(Y){Y==null?this.removeAttribute(S.ASSET_END_TIME):this.setAttribute(S.ASSET_END_TIME,`${Y}`)}get customDomain(){var Y;return(Y=this.getAttribute(S.CUSTOM_DOMAIN))!=null?Y:void 0}set customDomain(Y){Y!==this.customDomain&&(Y?this.setAttribute(S.CUSTOM_DOMAIN,Y):this.removeAttribute(S.CUSTOM_DOMAIN))}get capRenditionToPlayerSize(){var Y;return((Y=this._hlsConfig)==null?void 0:Y.capLevelToPlayerSize)!=null?this._hlsConfig.capLevelToPlayerSize:$1(this,OQ)}set capRenditionToPlayerSize(Y){n1(this,OQ,Y)}get drmToken(){var Y;return(Y=this.getAttribute(S.DRM_TOKEN))!=null?Y:void 0}set drmToken(Y){Y!==this.drmToken&&(Y?this.setAttribute(S.DRM_TOKEN,Y):this.removeAttribute(S.DRM_TOKEN))}get playbackToken(){var Y,Z,Q,X;if(this.hasAttribute(S.PLAYBACK_TOKEN))return(Y=this.getAttribute(S.PLAYBACK_TOKEN))!=null?Y:void 0;if(this.hasAttribute(S.PLAYBACK_ID)){let[,J]=qQ((Z=this.playbackId)!=null?Z:"");return(Q=new URLSearchParams(J).get("token"))!=null?Q:void 0}if(this.src)return(X=new URLSearchParams(this.src).get("token"))!=null?X:void 0}set playbackToken(Y){Y!==this.playbackToken&&(Y?this.setAttribute(S.PLAYBACK_TOKEN,Y):this.removeAttribute(S.PLAYBACK_TOKEN))}get tokens(){let Y=this.getAttribute(S.PLAYBACK_TOKEN),Z=this.getAttribute(S.DRM_TOKEN);return{...$1(this,RQ),...Y!=null?{playback:Y}:{},...Z!=null?{drm:Z}:{}}}set tokens(Y){n1(this,RQ,Y!=null?Y:{})}get ended(){return W4(this.nativeEl,this._hls)}get envKey(){var Y;return(Y=this.getAttribute(S.ENV_KEY))!=null?Y:void 0}set envKey(Y){Y!==this.envKey&&(Y?this.setAttribute(S.ENV_KEY,Y):this.removeAttribute(S.ENV_KEY))}get beaconCollectionDomain(){var Y;return(Y=this.getAttribute(S.BEACON_COLLECTION_DOMAIN))!=null?Y:void 0}set beaconCollectionDomain(Y){Y!==this.beaconCollectionDomain&&(Y?this.setAttribute(S.BEACON_COLLECTION_DOMAIN,Y):this.removeAttribute(S.BEACON_COLLECTION_DOMAIN))}get streamType(){var Y;return(Y=this.getAttribute(S.STREAM_TYPE))!=null?Y:WQ(this.nativeEl)}set streamType(Y){Y!==this.streamType&&(Y?this.setAttribute(S.STREAM_TYPE,Y):this.removeAttribute(S.STREAM_TYPE))}get targetLiveWindow(){return this.hasAttribute(S.TARGET_LIVE_WINDOW)?+this.getAttribute(S.TARGET_LIVE_WINDOW):LG(this.nativeEl)}set targetLiveWindow(Y){Y!=this.targetLiveWindow&&(Y==null?this.removeAttribute(S.TARGET_LIVE_WINDOW):this.setAttribute(S.TARGET_LIVE_WINDOW,`${+Y}`))}get liveEdgeStart(){var Y,Z;if(this.hasAttribute(S.LIVE_EDGE_OFFSET)){let{liveEdgeOffset:Q}=this,X=(Y=this.nativeEl.seekable.end(0))!=null?Y:0,J=(Z=this.nativeEl.seekable.start(0))!=null?Z:0;return Math.max(J,X-Q)}return OG(this.nativeEl)}get liveEdgeOffset(){if(this.hasAttribute(S.LIVE_EDGE_OFFSET))return+this.getAttribute(S.LIVE_EDGE_OFFSET)}set liveEdgeOffset(Y){Y!=this.liveEdgeOffset&&(Y==null?this.removeAttribute(S.LIVE_EDGE_OFFSET):this.setAttribute(S.LIVE_EDGE_OFFSET,`${+Y}`))}get seekable(){return VQ(this.nativeEl)}async addCuePoints(Y){return aq(this.nativeEl,Y)}get activeCuePoint(){return tq(this.nativeEl)}get cuePoints(){return GG(this.nativeEl)}async addChapters(Y){return Y4(this.nativeEl,Y)}get activeChapter(){return Z4(this.nativeEl)}get chapters(){return UG(this.nativeEl)}getStartDate(){return FG(this.nativeEl,this._hls)}get currentPdt(){return RG(this.nativeEl,this._hls)}get preferPlayback(){let Y=this.getAttribute(S.PREFER_PLAYBACK);if(Y===X8.MSE||Y===X8.NATIVE)return Y}set preferPlayback(Y){Y!==this.preferPlayback&&(Y===X8.MSE||Y===X8.NATIVE?this.setAttribute(S.PREFER_PLAYBACK,Y):this.removeAttribute(S.PREFER_PLAYBACK))}get metadata(){return{...this.getAttributeNames().filter((Y)=>Y.startsWith("metadata-")&&![S.METADATA_URL].includes(Y)).reduce((Y,Z)=>{let Q=this.getAttribute(Z);return Q!=null&&(Y[Z.replace(/^metadata-/,"").replace(/-/g,"_")]=Q),Y},{}),...$1(this,lY)}}set metadata(Y){n1(this,lY,Y!=null?Y:{}),this.mux&&this.mux.emit("hb",$1(this,lY))}get _hlsConfig(){return $1(this,BQ)}set _hlsConfig(Y){n1(this,BQ,Y)}get logo(){var Y;return(Y=this.getAttribute(S.LOGO))!=null?Y:$1(this,nY)}set logo(Y){Y?this.setAttribute(S.LOGO,Y):this.removeAttribute(S.LOGO)}load(){n1(this,p8,DG(this,this.nativeEl,$1(this,p8)))}unload(){q4(this.nativeEl,$1(this,p8),this),n1(this,p8,void 0)}attributeChangedCallback(Y,Z,Q){var X,J;switch(oY.observedAttributes.includes(Y)&&!["src","autoplay","preload"].includes(Y)&&super.attributeChangedCallback(Y,Z,Q),Y){case S.PLAYER_SOFTWARE_NAME:this.playerSoftwareName=Q!=null?Q:void 0;break;case S.PLAYER_SOFTWARE_VERSION:this.playerSoftwareVersion=Q!=null?Q:void 0;break;case"src":{let W=!!Z,q=!!Q;!W&&q?UQ(this,L9,sY).call(this):W&&!q?this.unload():W&&q&&(this.unload(),UQ(this,L9,sY).call(this));break}case"autoplay":if(Q===Z)break;(X=$1(this,p8))==null||X.setAutoplay(this.autoplay);break;case"preload":if(Q===Z)break;(J=$1(this,p8))==null||J.setPreload(Q);break;case S.PLAYBACK_ID:this.src=mY(this);break;case S.DEBUG:{let W=this.debug;this.mux&&console.info("Cannot toggle debug mode of mux data after initialization. Make sure you set all metadata to override before setting the src."),this._hls&&(this._hls.config.debug=W);break}case S.METADATA_URL:Q&&fetch(Q).then((W)=>W.json()).then((W)=>this.metadata=W).catch(()=>console.error(`Unable to load or parse metadata JSON from metadata-url ${Q}!`));break;case S.STREAM_TYPE:(Q==null||Q!==Z)&&this.dispatchEvent(new CustomEvent("streamtypechange",{composed:!0,bubbles:!0}));break;case S.TARGET_LIVE_WINDOW:(Q==null||Q!==Z)&&this.dispatchEvent(new CustomEvent("targetlivewindowchange",{composed:!0,bubbles:!0,detail:this.targetLiveWindow}));break;case S.LOGO:(Q==null||Q!==Z)&&this.updateLogo();break;case S.DISABLE_TRACKING:{if(Q==null||Q!==Z){let W=this.currentTime,q=this.paused;this.unload(),UQ(this,L9,sY).call(this).then(()=>{this.currentTime=W,q||this.play()})}break}case S.DISABLE_COOKIES:{(Q==null||Q!==Z)&&this.disableCookies&&document.cookie.split(";").forEach((W)=>{W.trim().startsWith("muxData")&&(document.cookie=W.replace(/^ +/,"").replace(/=.*/,"=;expires="+new Date().toUTCString()+";path=/"))});break}case S.CAP_RENDITION_TO_PLAYER_SIZE:(Q==null||Q!==Z)&&(this.capRenditionToPlayerSize=Q!=null?!0:void 0)}}updateLogo(){if(!this.shadowRoot)return;let Y=this.shadowRoot.querySelector('slot[name="logo"]');if(!Y)return;let Z=this.constructor.getLogoHTML($1(this,nY)||this.logo);Y.innerHTML=Z}connectedCallback(){var Y;(Y=super.connectedCallback)==null||Y.call(this),this.nativeEl&&this.src&&!$1(this,p8)&&UQ(this,L9,sY).call(this)}disconnectedCallback(){this.unload()}handleEvent(Y){Y.target===this.nativeEl&&this.dispatchEvent(new CustomEvent(Y.type,{composed:!0,detail:Y.detail}))}};p8=new WeakMap,dY=new WeakMap,FQ=new WeakMap,lY=new WeakMap,RQ=new WeakMap,BQ=new WeakMap,NQ=new WeakMap,$Q=new WeakMap,LQ=new WeakMap,nY=new WeakMap,OQ=new WeakMap,L9=new WeakSet,sY=async function(){$1(this,dY)||(await n1(this,dY,Promise.resolve()),n1(this,dY,null),this.load())};var N6=new WeakMap;class iY extends Error{}class z4 extends Error{}var ED=["application/x-mpegURL","application/vnd.apple.mpegurl","audio/mpegurl"],bG=globalThis.WeakRef?class extends Set{add(Y){super.add(new WeakRef(Y))}forEach(Y){super.forEach((Z)=>{let Q=Z.deref();if(Q)Y(Q)})}}:Set;function _G(Y){if(!globalThis.chrome?.cast?.isAvailable)globalThis.__onGCastApiAvailable=()=>{customElements.whenDefined("google-cast-button").then(Y)};else if(!globalThis.cast?.framework)customElements.whenDefined("google-cast-button").then(Y);else Y()}function vG(){return globalThis.chrome}function pG(){if(globalThis.chrome?.cast||document.querySelector('script[src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1"]'))return;let Z=document.createElement("script");Z.src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1",document.head.append(Z)}function $6(){return globalThis.cast?.framework?.CastContext.getInstance()}function rY(){return $6()?.getCurrentSession()}function jQ(){return rY()?.getSessionObj().media[0]}function cG(Y){return new Promise((Z,Q)=>{jQ().editTracksInfo(Y,Z,Q)})}function uG(Y){return new Promise((Z,Q)=>{jQ().getStatus(Y,Z,Q)})}function E4(Y){return $6().setOptions({...K4(),...Y})}function K4(){return{receiverApplicationId:"CC1AD845",autoJoinPolicy:"origin_scoped",androidReceiverCompatible:!1,language:"en-US",resumeSavedSession:!0}}function KD(Y){if(!Y)return;let Z=/\.([a-zA-Z0-9]+)(?:\?.*)?$/,Q=Y.match(Z);return Q?Q[1]:null}function GD(Y){let Z=Y.split(` `),Q=[];for(let X=0;X!X.trim().startsWith("#")&&X.trim()!=="")}async function mG(Y){try{let Q=(await fetch(Y,{method:"HEAD"})).headers.get("Content-Type");return ED.some((X)=>Q===X)}catch(Z){return console.error("Error while trying to get the Content-Type of the manifest",Z),!1}}async function oG(Y){try{let Z=await(await fetch(Y)).text(),Q=Z,X=GD(Z);if(X.length>0){let q=new URL(X[0],Y).toString();Q=await(await fetch(q)).text()}let J=VD(Q);return KD(J)}catch(Z){console.error("Error while trying to parse the manifest playlist",Z);return}}var AQ=new bG,c6=new WeakSet,V1;_G(()=>{if(!globalThis.chrome?.cast?.isAvailable){console.debug("chrome.cast.isAvailable",globalThis.chrome?.cast?.isAvailable);return}if(!V1)V1=cast.framework,$6().addEventListener(V1.CastContextEventType.CAST_STATE_CHANGED,(Y)=>{AQ.forEach((Z)=>N6.get(Z).onCastStateChanged?.(Y))}),$6().addEventListener(V1.CastContextEventType.SESSION_STATE_CHANGED,(Y)=>{AQ.forEach((Z)=>N6.get(Z).onSessionStateChanged?.(Y))}),AQ.forEach((Y)=>N6.get(Y).init?.())});var dG=0;class G4 extends EventTarget{#Y;#X;#Q;#J;#Z="disconnected";#q=!1;#W=new Set;#z=new WeakMap;constructor(Y){super();this.#Y=Y,AQ.add(this),N6.set(this,{init:()=>this.#V(),onCastStateChanged:()=>this.#K(),onSessionStateChanged:()=>this.#F(),getCastPlayer:()=>this.#H}),this.#V()}get#H(){if(c6.has(this.#Y))return this.#Q;return}get state(){return this.#Z}async watchAvailability(Y){if(this.#Y.disableRemotePlayback)throw new iY("disableRemotePlayback attribute is present.");return this.#z.set(Y,++dG),this.#W.add(Y),queueMicrotask(()=>Y(this.#G())),dG}async cancelWatchAvailability(Y){if(this.#Y.disableRemotePlayback)throw new iY("disableRemotePlayback attribute is present.");if(Y)this.#W.delete(Y);else this.#W.clear()}async prompt(){if(this.#Y.disableRemotePlayback)throw new iY("disableRemotePlayback attribute is present.");if(!globalThis.chrome?.cast?.isAvailable)throw new z4("The RemotePlayback API is disabled on this platform.");let Y=c6.has(this.#Y);c6.add(this.#Y),E4(this.#Y.castOptions),Object.entries(this.#J).forEach(([Z,Q])=>{this.#Q.controller.addEventListener(Z,Q)});try{await $6().requestSession()}catch(Z){if(!Y)c6.delete(this.#Y);if(Z==="cancel")return;throw Error(Z)}N6.get(this.#Y)?.loadOnPrompt?.()}#E(){if(!c6.has(this.#Y))return;if(Object.entries(this.#J).forEach(([Y,Z])=>{this.#Q.controller.removeEventListener(Y,Z)}),c6.delete(this.#Y),this.#Y.muted=this.#Q.isMuted,this.#Y.currentTime=this.#Q.savedPlayerState.currentTime,this.#Q.savedPlayerState.isPaused===!1)this.#Y.play()}#G(){let Y=$6()?.getCastState();return Y&&Y!=="NO_DEVICES_AVAILABLE"}#K(){let Y=$6().getCastState();if(c6.has(this.#Y)){if(Y==="CONNECTING")this.#Z="connecting",this.dispatchEvent(new Event("connecting"))}if(!this.#q&&Y?.includes("CONNECT")){this.#q=!0;for(let Z of this.#W)Z(!0)}else if(this.#q&&(!Y||Y==="NO_DEVICES_AVAILABLE")){this.#q=!1;for(let Z of this.#W)Z(!1)}}async#F(){let{SESSION_RESUMED:Y}=V1.SessionState;if($6().getSessionState()===Y){if(this.#Y.castSrc===jQ()?.media.contentId){c6.add(this.#Y),Object.entries(this.#J).forEach(([Z,Q])=>{this.#Q.controller.addEventListener(Z,Q)});try{await uG(new chrome.cast.media.GetStatusRequest)}catch(Z){console.error(Z)}this.#J[V1.RemotePlayerEventType.IS_PAUSED_CHANGED](),this.#J[V1.RemotePlayerEventType.PLAYER_STATE_CHANGED]()}}}#V(){if(!V1||this.#X)return;this.#X=!0,E4(this.#Y.castOptions),this.#Y.textTracks.addEventListener("change",()=>this.#U()),this.#K(),this.#Q=new V1.RemotePlayer,new V1.RemotePlayerController(this.#Q),this.#J={[V1.RemotePlayerEventType.IS_CONNECTED_CHANGED]:({value:Y})=>{if(Y===!0)this.#Z="connected",this.dispatchEvent(new Event("connect"));else this.#E(),this.#Z="disconnected",this.dispatchEvent(new Event("disconnect"))},[V1.RemotePlayerEventType.DURATION_CHANGED]:()=>{this.#Y.dispatchEvent(new Event("durationchange"))},[V1.RemotePlayerEventType.VOLUME_LEVEL_CHANGED]:()=>{this.#Y.dispatchEvent(new Event("volumechange"))},[V1.RemotePlayerEventType.IS_MUTED_CHANGED]:()=>{this.#Y.dispatchEvent(new Event("volumechange"))},[V1.RemotePlayerEventType.CURRENT_TIME_CHANGED]:()=>{if(!this.#H?.isMediaLoaded)return;this.#Y.dispatchEvent(new Event("timeupdate"))},[V1.RemotePlayerEventType.VIDEO_INFO_CHANGED]:()=>{this.#Y.dispatchEvent(new Event("resize"))},[V1.RemotePlayerEventType.IS_PAUSED_CHANGED]:()=>{this.#Y.dispatchEvent(new Event(this.paused?"pause":"play"))},[V1.RemotePlayerEventType.PLAYER_STATE_CHANGED]:()=>{if(this.#H?.playerState===chrome.cast.media.PlayerState.PAUSED)return;this.#Y.dispatchEvent(new Event({[chrome.cast.media.PlayerState.PLAYING]:"playing",[chrome.cast.media.PlayerState.BUFFERING]:"waiting",[chrome.cast.media.PlayerState.IDLE]:"emptied"}[this.#H?.playerState]))},[V1.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED]:async()=>{if(!this.#H?.isMediaLoaded)return;await Promise.resolve(),this.#R()}}}#R(){this.#U()}async#U(){if(!this.#H)return;let Z=(this.#Q.mediaInfo?.tracks??[]).filter(({type:K})=>K===chrome.cast.media.TrackType.TEXT),Q=[...this.#Y.textTracks].filter(({kind:K})=>K==="subtitles"||K==="captions"),X=Z.map(({language:K,name:G,trackId:U})=>{let{mode:V}=Q.find((F)=>F.language===K&&F.label===G)??{};if(V)return{mode:V,trackId:U};return!1}).filter(Boolean),W=X.filter(({mode:K})=>K!=="showing").map(({trackId:K})=>K),q=X.find(({mode:K})=>K==="showing"),z=rY()?.getSessionObj().media[0]?.activeTrackIds??[],H=z;if(z.length)H=H.filter((K)=>!W.includes(K));if(q?.trackId)H=[...H,q.trackId];if(H=[...new Set(H)],!((K,G)=>K.length===G.length&&K.every((U)=>G.includes(U)))(z,H))try{let K=new chrome.cast.media.EditTracksInfoRequest(H);await cG(K)}catch(K){console.error(K)}}}var lG=(Y)=>class extends Y{static observedAttributes=[...Y.observedAttributes??[],"cast-src","cast-content-type","cast-stream-type","cast-receiver"];#Y={paused:!1};#X=K4();#Q;#J;get remote(){if(this.#J)return this.#J;if(vG()){if(!this.disableRemotePlayback)pG();return N6.set(this,{loadOnPrompt:()=>this.#q()}),this.#J=new G4(this)}return super.remote}get#Z(){return N6.get(this.remote)?.getCastPlayer?.()}attributeChangedCallback(Q,X,J){if(super.attributeChangedCallback(Q,X,J),Q==="cast-receiver"&&J){this.#X.receiverApplicationId=J;return}if(!this.#Z)return;switch(Q){case"cast-stream-type":case"cast-src":this.load();break}}async#q(){this.#Y.paused=super.paused,super.pause(),this.muted=super.muted;try{await this.load()}catch(Q){console.error(Q)}}async load(){if(!this.#Z)return super.load();let Q=new chrome.cast.media.MediaInfo(this.castSrc,this.castContentType);Q.customData=this.castCustomData;let X=[...this.querySelectorAll("track")].filter(({kind:z,src:H})=>H&&(z==="subtitles"||z==="captions")),J=[],W=0;if(X.length)Q.tracks=X.map((z)=>{let H=++W;if(J.length===0&&z.track.mode==="showing")J.push(H);let E=new chrome.cast.media.Track(H,chrome.cast.media.TrackType.TEXT);return E.trackContentId=z.src,E.trackContentType="text/vtt",E.subtype=z.kind==="captions"?chrome.cast.media.TextTrackType.CAPTIONS:chrome.cast.media.TextTrackType.SUBTITLES,E.name=z.label,E.language=z.srclang,E});if(this.castStreamType==="live")Q.streamType=chrome.cast.media.StreamType.LIVE;else Q.streamType=chrome.cast.media.StreamType.BUFFERED;if(Q.metadata=new chrome.cast.media.GenericMediaMetadata,Q.metadata.title=this.title,Q.metadata.images=[{url:this.poster}],mG(this.castSrc)){let z=await oG(this.castSrc);if(z?.includes("m4s")||z?.includes("mp4"))Q.hlsSegmentFormat=chrome.cast.media.HlsSegmentFormat.FMP4,Q.hlsVideoSegmentFormat=chrome.cast.media.HlsVideoSegmentFormat.FMP4;else if(z?.includes("ts"))Q.hlsSegmentFormat=chrome.cast.media.HlsSegmentFormat.TS,Q.hlsVideoSegmentFormat=chrome.cast.media.HlsVideoSegmentFormat.TS}let q=new chrome.cast.media.LoadRequest(Q);q.currentTime=super.currentTime??0,q.autoplay=!this.#Y.paused,q.activeTrackIds=J,await rY()?.loadMedia(q),this.dispatchEvent(new Event("volumechange"))}play(){if(this.#Z){if(this.#Z.isPaused)this.#Z.controller?.playOrPause();return}return super.play()}pause(){if(this.#Z){if(!this.#Z.isPaused)this.#Z.controller?.playOrPause();return}super.pause()}get castOptions(){return this.#X}get castReceiver(){return this.getAttribute("cast-receiver")??void 0}set castReceiver(Q){if(this.castReceiver==Q)return;this.setAttribute("cast-receiver",`${Q}`)}get castSrc(){return this.getAttribute("cast-src")??this.querySelector("source")?.src??this.currentSrc}set castSrc(Q){if(this.castSrc==Q)return;this.setAttribute("cast-src",`${Q}`)}get castContentType(){return this.getAttribute("cast-content-type")??void 0}set castContentType(Q){this.setAttribute("cast-content-type",`${Q}`)}get castStreamType(){return this.getAttribute("cast-stream-type")??this.streamType??void 0}set castStreamType(Q){this.setAttribute("cast-stream-type",`${Q}`)}get castCustomData(){return this.#Q}set castCustomData(Q){let X=typeof Q;if(!["object","undefined"].includes(X)){console.error(`castCustomData must be nullish or an object but value was of type ${X}`);return}this.#Q=Q}get readyState(){if(this.#Z)switch(this.#Z.playerState){case chrome.cast.media.PlayerState.IDLE:return 0;case chrome.cast.media.PlayerState.BUFFERING:return 2;default:return 3}return super.readyState}get paused(){if(this.#Z)return this.#Z.isPaused;return super.paused}get muted(){if(this.#Z)return this.#Z?.isMuted;return super.muted}set muted(Q){if(this.#Z){if(Q&&!this.#Z.isMuted||!Q&&this.#Z.isMuted)this.#Z.controller?.muteOrUnmute();return}super.muted=Q}get volume(){if(this.#Z)return this.#Z?.volumeLevel??1;return super.volume}set volume(Q){if(this.#Z){this.#Z.volumeLevel=+Q,this.#Z.controller?.setVolumeLevel();return}super.volume=Q}get duration(){if(this.#Z&&this.#Z?.isMediaLoaded)return this.#Z?.duration??NaN;return super.duration}get currentTime(){if(this.#Z&&this.#Z?.isMediaLoaded)return this.#Z?.currentTime??0;return super.currentTime}set currentTime(Q){if(this.#Z){this.#Z.currentTime=Q,this.#Z.controller?.seek();return}super.currentTime=Q}};class u6 extends Event{track;constructor(Y,Z){super(Y);this.track=Z.track}}var V4=new WeakMap;function a(Y){return V4.get(Y)??UD(Y,{})}function UD(Y,Z){let Q=V4.get(Y);if(!Q)V4.set(Y,Q={});return Object.assign(Q,Z)}function DQ(Y,Z){let Q=Y.videoTracks;if(a(Z).media=Y,!a(Z).renditionSet)a(Z).renditionSet=new Set;let X=a(Q).trackSet;X.add(Z);let J=X.size-1;if(!(J in O9.prototype))Object.defineProperty(O9.prototype,J,{get(){return[...a(this).trackSet][J]}});queueMicrotask(()=>{Q.dispatchEvent(new u6("addtrack",{track:Z}))})}function wQ(Y){let Z=a(Y).media?.videoTracks;if(!Z)return;a(Z).trackSet.delete(Y),queueMicrotask(()=>{Z.dispatchEvent(new u6("removetrack",{track:Y}))})}function nG(Y){let Z=a(Y).media.videoTracks??[],Q=!1;for(let X of Z){if(X===Y)continue;X.selected=!1,Q=!0}if(Q){if(a(Z).changeRequested)return;a(Z).changeRequested=!0,queueMicrotask(()=>{delete a(Z).changeRequested,Z.dispatchEvent(new Event("change"))})}}class O9 extends EventTarget{#Y;#X;#Q;constructor(){super();a(this).trackSet=new Set}get#J(){return a(this).trackSet}[Symbol.iterator](){return this.#J.values()}get length(){return this.#J.size}getTrackById(Y){return[...this.#J].find((Z)=>Z.id===Y)??null}get selectedIndex(){return[...this.#J].findIndex((Y)=>Y.selected)}get onaddtrack(){return this.#Y}set onaddtrack(Y){if(this.#Y)this.removeEventListener("addtrack",this.#Y),this.#Y=void 0;if(typeof Y=="function")this.#Y=Y,this.addEventListener("addtrack",Y)}get onremovetrack(){return this.#X}set onremovetrack(Y){if(this.#X)this.removeEventListener("removetrack",this.#X),this.#X=void 0;if(typeof Y=="function")this.#X=Y,this.addEventListener("removetrack",Y)}get onchange(){return this.#Q}set onchange(Y){if(this.#Q)this.removeEventListener("change",this.#Q),this.#Q=void 0;if(typeof Y=="function")this.#Q=Y,this.addEventListener("change",Y)}}class m6 extends Event{rendition;constructor(Y,Z){super(Y);this.rendition=Z.rendition}}function sG(Y,Z){let Q=a(Y).media.videoRenditions;a(Z).media=a(Y).media,a(Z).track=Y;let X=a(Y).renditionSet;X.add(Z);let J=X.size-1;if(!(J in A9.prototype))Object.defineProperty(A9.prototype,J,{get(){return j9(this)[J]}});queueMicrotask(()=>{if(!Y.selected)return;Q.dispatchEvent(new m6("addrendition",{rendition:Z}))})}function iG(Y){let Z=a(Y).media.videoRenditions,Q=a(Y).track;a(Q).renditionSet.delete(Y),queueMicrotask(()=>{if(!a(Y).track.selected)return;Z.dispatchEvent(new m6("removerendition",{rendition:Y}))})}function rG(Y){let Z=a(Y).media.videoRenditions;if(!Z||a(Z).changeRequested)return;a(Z).changeRequested=!0,queueMicrotask(()=>{if(delete a(Z).changeRequested,!a(Y).track.selected)return;Z.dispatchEvent(new Event("change"))})}function j9(Y){return[...a(Y).media.videoTracks].filter((Q)=>Q.selected).flatMap((Q)=>[...a(Q).renditionSet])}class A9 extends EventTarget{#Y;#X;#Q;[Symbol.iterator](){return j9(this).values()}get length(){return j9(this).length}getRenditionById(Y){return j9(this).find((Z)=>`${Z.id}`===`${Y}`)??null}get selectedIndex(){return j9(this).findIndex((Y)=>Y.selected)}set selectedIndex(Y){for(let[Z,Q]of j9(this).entries())Q.selected=Z===Y}get onaddrendition(){return this.#Y}set onaddrendition(Y){if(this.#Y)this.removeEventListener("addrendition",this.#Y),this.#Y=void 0;if(typeof Y=="function")this.#Y=Y,this.addEventListener("addrendition",Y)}get onremoverendition(){return this.#X}set onremoverendition(Y){if(this.#X)this.removeEventListener("removerendition",this.#X),this.#X=void 0;if(typeof Y=="function")this.#X=Y,this.addEventListener("removerendition",Y)}get onchange(){return this.#Q}set onchange(Y){if(this.#Q)this.removeEventListener("change",this.#Q),this.#Q=void 0;if(typeof Y=="function")this.#Q=Y,this.addEventListener("change",Y)}}class PQ{src;id;width;height;bitrate;frameRate;codec;#Y=!1;get selected(){return this.#Y}set selected(Y){if(this.#Y===Y)return;this.#Y=Y,rG(this)}}class aY{id;kind;label="";language="";sourceBuffer;#Y=!1;addRendition(Y,Z,Q,X,J,W){let q=new PQ;return q.src=Y,q.width=Z,q.height=Q,q.frameRate=W,q.bitrate=J,q.codec=X,sG(this,q),q}removeRendition(Y){iG(Y)}get selected(){return this.#Y}set selected(Y){if(this.#Y===Y)return;if(this.#Y=Y,Y!==!0)return;nG(this)}}function aG(Y,Z){let Q=a(Y).media.audioRenditions;a(Z).media=a(Y).media,a(Z).track=Y;let X=a(Y).renditionSet;X.add(Z);let J=X.size-1;if(!(J in w9.prototype))Object.defineProperty(w9.prototype,J,{get(){return D9(this)[J]}});queueMicrotask(()=>{if(!Y.enabled)return;Q.dispatchEvent(new m6("addrendition",{rendition:Z}))})}function tG(Y){let Z=a(Y).media.audioRenditions,Q=a(Y).track;a(Q).renditionSet.delete(Y),queueMicrotask(()=>{if(!a(Y).track.enabled)return;Z.dispatchEvent(new m6("removerendition",{rendition:Y}))})}function eG(Y){let Z=a(Y).media.audioRenditions;if(!Z||a(Z).changeRequested)return;a(Z).changeRequested=!0,queueMicrotask(()=>{if(delete a(Z).changeRequested,!a(Y).track.enabled)return;Z.dispatchEvent(new Event("change"))})}function D9(Y){return[...a(Y).media.audioTracks].filter((Q)=>Q.enabled).flatMap((Q)=>[...a(Q).renditionSet])}class w9 extends EventTarget{#Y;#X;#Q;[Symbol.iterator](){return D9(this).values()}get length(){return D9(this).length}getRenditionById(Y){return D9(this).find((Z)=>`${Z.id}`===`${Y}`)??null}get selectedIndex(){return D9(this).findIndex((Y)=>Y.selected)}set selectedIndex(Y){for(let[Z,Q]of D9(this).entries())Q.selected=Z===Y}get onaddrendition(){return this.#Y}set onaddrendition(Y){if(this.#Y)this.removeEventListener("addrendition",this.#Y),this.#Y=void 0;if(typeof Y=="function")this.#Y=Y,this.addEventListener("addrendition",Y)}get onremoverendition(){return this.#X}set onremoverendition(Y){if(this.#X)this.removeEventListener("removerendition",this.#X),this.#X=void 0;if(typeof Y=="function")this.#X=Y,this.addEventListener("removerendition",Y)}get onchange(){return this.#Q}set onchange(Y){if(this.#Q)this.removeEventListener("change",this.#Q),this.#Q=void 0;if(typeof Y=="function")this.#Q=Y,this.addEventListener("change",Y)}}class CQ{src;id;bitrate;codec;#Y=!1;get selected(){return this.#Y}set selected(Y){if(this.#Y===Y)return;this.#Y=Y,eG(this)}}function MQ(Y,Z){let Q=Y.audioTracks;if(a(Z).media=Y,!a(Z).renditionSet)a(Z).renditionSet=new Set;let X=a(Q).trackSet;X.add(Z);let J=X.size-1;if(!(J in P9.prototype))Object.defineProperty(P9.prototype,J,{get(){return[...a(this).trackSet][J]}});queueMicrotask(()=>{Q.dispatchEvent(new u6("addtrack",{track:Z}))})}function xQ(Y){let Z=a(Y).media?.audioTracks;if(!Z)return;a(Z).trackSet.delete(Y),queueMicrotask(()=>{Z.dispatchEvent(new u6("removetrack",{track:Y}))})}function YV(Y){let Z=a(Y).media.audioTracks;if(!Z||a(Z).changeRequested)return;a(Z).changeRequested=!0,queueMicrotask(()=>{delete a(Z).changeRequested,Z.dispatchEvent(new Event("change"))})}class P9 extends EventTarget{#Y;#X;#Q;constructor(){super();a(this).trackSet=new Set}get#J(){return a(this).trackSet}[Symbol.iterator](){return this.#J.values()}get length(){return this.#J.size}getTrackById(Y){return[...this.#J].find((Z)=>Z.id===Y)??null}get onaddtrack(){return this.#Y}set onaddtrack(Y){if(this.#Y)this.removeEventListener("addtrack",this.#Y),this.#Y=void 0;if(typeof Y=="function")this.#Y=Y,this.addEventListener("addtrack",Y)}get onremovetrack(){return this.#X}set onremovetrack(Y){if(this.#X)this.removeEventListener("removetrack",this.#X),this.#X=void 0;if(typeof Y=="function")this.#X=Y,this.addEventListener("removetrack",Y)}get onchange(){return this.#Q}set onchange(Y){if(this.#Q)this.removeEventListener("change",this.#Q),this.#Q=void 0;if(typeof Y=="function")this.#Q=Y,this.addEventListener("change",Y)}}class tY{id;kind;label="";language="";sourceBuffer;#Y=!1;addRendition(Y,Z,Q){let X=new CQ;return X.src=Y,X.codec=Z,X.bitrate=Q,aG(this,X),X}removeRendition(Y){tG(Y)}get enabled(){return this.#Y}set enabled(Y){if(this.#Y===Y)return;this.#Y=Y,YV(this)}}var ZV=IQ(globalThis.HTMLMediaElement,"video"),QV=IQ(globalThis.HTMLMediaElement,"audio");function XV(Y){if(!Y?.prototype)return Y;let Z=IQ(Y,"video");if(!Z||`${Z}`.includes("[native code]"))Object.defineProperty(Y.prototype,"videoTracks",{get(){return FD(this)}});let Q=IQ(Y,"audio");if(!Q||`${Q}`.includes("[native code]"))Object.defineProperty(Y.prototype,"audioTracks",{get(){return RD(this)}});if(!("addVideoTrack"in Y.prototype))Y.prototype.addVideoTrack=function(W,q="",z=""){let H=new aY;return H.kind=W,H.label=q,H.language=z,DQ(this,H),H};if(!("removeVideoTrack"in Y.prototype))Y.prototype.removeVideoTrack=wQ;if(!("addAudioTrack"in Y.prototype))Y.prototype.addAudioTrack=function(W,q="",z=""){let H=new tY;return H.kind=W,H.label=q,H.language=z,MQ(this,H),H};if(!("removeAudioTrack"in Y.prototype))Y.prototype.removeAudioTrack=xQ;if(!("videoRenditions"in Y.prototype))Object.defineProperty(Y.prototype,"videoRenditions",{get(){return X(this)}});let X=(W)=>{let q=a(W).videoRenditions;if(!q)q=new A9,a(q).media=W,a(W).videoRenditions=q;return q};if(!("audioRenditions"in Y.prototype))Object.defineProperty(Y.prototype,"audioRenditions",{get(){return J(this)}});let J=(W)=>{let q=a(W).audioRenditions;if(!q)q=new w9,a(q).media=W,a(W).audioRenditions=q;return q};return Y}function IQ(Y,Z){if(Y?.prototype)return Object.getOwnPropertyDescriptor(Y.prototype,`${Z}Tracks`)?.get}function FD(Y){let Z=a(Y).videoTracks;if(!Z){if(Z=new O9,a(Y).videoTracks=Z,ZV){let Q=ZV.call(Y.nativeEl??Y);for(let X of Q)DQ(Y,X);Q.addEventListener("change",()=>{Z.dispatchEvent(new Event("change"))}),Q.addEventListener("addtrack",(X)=>{if([...Z].some((J)=>J instanceof aY)){for(let J of Q)wQ(J);return}DQ(Y,X.track)}),Q.addEventListener("removetrack",(X)=>{wQ(X.track)})}}return Z}function RD(Y){let Z=a(Y).audioTracks;if(!Z){if(Z=new P9,a(Y).audioTracks=Z,QV){let Q=QV.call(Y.nativeEl??Y);for(let X of Q)MQ(Y,X);Q.addEventListener("change",()=>{Z.dispatchEvent(new Event("change"))}),Q.addEventListener("addtrack",(X)=>{if([...Z].some((J)=>J instanceof tY)){for(let J of Q)xQ(J);return}MQ(Y,X.track)}),Q.addEventListener("removetrack",(X)=>{xQ(X.track)})}}return Z}var WV=(Y)=>{throw TypeError(Y)},qV=(Y,Z,Q)=>Z.has(Y)||WV("Cannot "+Q),HV=(Y,Z,Q)=>(qV(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)),zV=(Y,Z,Q)=>Z.has(Y)?WV("Cannot add the same private member more than once"):Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q),EV=(Y,Z,Q,X)=>(qV(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q),hQ=class{addEventListener(){}removeEventListener(){}dispatchEvent(Y){return!0}};if(typeof DocumentFragment>"u"){class Y extends hQ{}globalThis.DocumentFragment=Y}var F4=class extends hQ{},BD=class extends hQ{},ND={get(Y){},define(Y,Z,Q){},getName(Y){return null},upgrade(Y){},whenDefined(Y){return Promise.resolve(F4)}},SQ,$D=class{constructor(Y,Z={}){zV(this,SQ),EV(this,SQ,Z==null?void 0:Z.detail)}get detail(){return HV(this,SQ)}initCustomEvent(){}};SQ=new WeakMap;function LD(Y,Z){return new F4}var KV={document:{createElement:LD},DocumentFragment,customElements:ND,CustomEvent:$D,EventTarget:hQ,HTMLElement:F4,HTMLVideoElement:BD},GV=typeof window>"u"||typeof globalThis.customElements>"u",U4=GV?KV:globalThis,RI=GV?KV.document:globalThis.document,TQ,JV=class extends lG(XV(gG)){constructor(){super(...arguments);zV(this,TQ)}get autoplay(){let Y=this.getAttribute("autoplay");return Y===null?!1:Y===""?!0:Y}set autoplay(Y){let Z=this.autoplay;Y!==Z&&(Y?this.setAttribute("autoplay",typeof Y=="string"?Y:""):this.removeAttribute("autoplay"))}get muxCastCustomData(){return{mux:{playbackId:this.playbackId,minResolution:this.minResolution,maxResolution:this.maxResolution,renditionOrder:this.renditionOrder,customDomain:this.customDomain,tokens:{drm:this.drmToken},envKey:this.envKey,metadata:this.metadata,disableCookies:this.disableCookies,disableTracking:this.disableTracking,beaconCollectionDomain:this.beaconCollectionDomain,startTime:this.startTime,preferCmcd:this.preferCmcd}}}get castCustomData(){var Y;return(Y=HV(this,TQ))!=null?Y:this.muxCastCustomData}set castCustomData(Y){EV(this,TQ,Y)}};TQ=new WeakMap;U4.customElements.get("mux-video")||(U4.customElements.define("mux-video",JV),U4.MuxVideoElement=JV);var b={MEDIA_PLAY_REQUEST:"mediaplayrequest",MEDIA_PAUSE_REQUEST:"mediapauserequest",MEDIA_MUTE_REQUEST:"mediamuterequest",MEDIA_UNMUTE_REQUEST:"mediaunmuterequest",MEDIA_LOOP_REQUEST:"medialooprequest",MEDIA_VOLUME_REQUEST:"mediavolumerequest",MEDIA_SEEK_REQUEST:"mediaseekrequest",MEDIA_AIRPLAY_REQUEST:"mediaairplayrequest",MEDIA_ENTER_FULLSCREEN_REQUEST:"mediaenterfullscreenrequest",MEDIA_EXIT_FULLSCREEN_REQUEST:"mediaexitfullscreenrequest",MEDIA_PREVIEW_REQUEST:"mediapreviewrequest",MEDIA_ENTER_PIP_REQUEST:"mediaenterpiprequest",MEDIA_EXIT_PIP_REQUEST:"mediaexitpiprequest",MEDIA_ENTER_CAST_REQUEST:"mediaentercastrequest",MEDIA_EXIT_CAST_REQUEST:"mediaexitcastrequest",MEDIA_SHOW_TEXT_TRACKS_REQUEST:"mediashowtexttracksrequest",MEDIA_HIDE_TEXT_TRACKS_REQUEST:"mediahidetexttracksrequest",MEDIA_SHOW_SUBTITLES_REQUEST:"mediashowsubtitlesrequest",MEDIA_DISABLE_SUBTITLES_REQUEST:"mediadisablesubtitlesrequest",MEDIA_TOGGLE_SUBTITLES_REQUEST:"mediatogglesubtitlesrequest",MEDIA_PLAYBACK_RATE_REQUEST:"mediaplaybackraterequest",MEDIA_RENDITION_REQUEST:"mediarenditionrequest",MEDIA_AUDIO_TRACK_REQUEST:"mediaaudiotrackrequest",MEDIA_SEEK_TO_LIVE_REQUEST:"mediaseektoliverequest",REGISTER_MEDIA_STATE_RECEIVER:"registermediastatereceiver",UNREGISTER_MEDIA_STATE_RECEIVER:"unregistermediastatereceiver"},R0={MEDIA_CHROME_ATTRIBUTES:"mediachromeattributes",MEDIA_CONTROLLER:"mediacontroller"},R4={MEDIA_AIRPLAY_UNAVAILABLE:"mediaAirplayUnavailable",MEDIA_AUDIO_TRACK_ENABLED:"mediaAudioTrackEnabled",MEDIA_AUDIO_TRACK_LIST:"mediaAudioTrackList",MEDIA_AUDIO_TRACK_UNAVAILABLE:"mediaAudioTrackUnavailable",MEDIA_BUFFERED:"mediaBuffered",MEDIA_CAST_UNAVAILABLE:"mediaCastUnavailable",MEDIA_CHAPTERS_CUES:"mediaChaptersCues",MEDIA_CURRENT_TIME:"mediaCurrentTime",MEDIA_DURATION:"mediaDuration",MEDIA_ENDED:"mediaEnded",MEDIA_ERROR:"mediaError",MEDIA_ERROR_CODE:"mediaErrorCode",MEDIA_ERROR_MESSAGE:"mediaErrorMessage",MEDIA_FULLSCREEN_UNAVAILABLE:"mediaFullscreenUnavailable",MEDIA_HAS_PLAYED:"mediaHasPlayed",MEDIA_HEIGHT:"mediaHeight",MEDIA_IS_AIRPLAYING:"mediaIsAirplaying",MEDIA_IS_CASTING:"mediaIsCasting",MEDIA_IS_FULLSCREEN:"mediaIsFullscreen",MEDIA_IS_PIP:"mediaIsPip",MEDIA_LOADING:"mediaLoading",MEDIA_MUTED:"mediaMuted",MEDIA_LOOP:"mediaLoop",MEDIA_PAUSED:"mediaPaused",MEDIA_PIP_UNAVAILABLE:"mediaPipUnavailable",MEDIA_PLAYBACK_RATE:"mediaPlaybackRate",MEDIA_PREVIEW_CHAPTER:"mediaPreviewChapter",MEDIA_PREVIEW_COORDS:"mediaPreviewCoords",MEDIA_PREVIEW_IMAGE:"mediaPreviewImage",MEDIA_PREVIEW_TIME:"mediaPreviewTime",MEDIA_RENDITION_LIST:"mediaRenditionList",MEDIA_RENDITION_SELECTED:"mediaRenditionSelected",MEDIA_RENDITION_UNAVAILABLE:"mediaRenditionUnavailable",MEDIA_SEEKABLE:"mediaSeekable",MEDIA_STREAM_TYPE:"mediaStreamType",MEDIA_SUBTITLES_LIST:"mediaSubtitlesList",MEDIA_SUBTITLES_SHOWING:"mediaSubtitlesShowing",MEDIA_TARGET_LIVE_WINDOW:"mediaTargetLiveWindow",MEDIA_TIME_IS_LIVE:"mediaTimeIsLive",MEDIA_VOLUME:"mediaVolume",MEDIA_VOLUME_LEVEL:"mediaVolumeLevel",MEDIA_VOLUME_UNAVAILABLE:"mediaVolumeUnavailable",MEDIA_LANG:"mediaLang",MEDIA_WIDTH:"mediaWidth"},VV=Object.entries(R4),A=VV.reduce((Y,[Z,Q])=>{return Y[Z]=Q.toLowerCase(),Y},{}),OD={USER_INACTIVE_CHANGE:"userinactivechange",BREAKPOINTS_CHANGE:"breakpointchange",BREAKPOINTS_COMPUTED:"breakpointscomputed"},W8=VV.reduce((Y,[Z,Q])=>{return Y[Z]=Q.toLowerCase(),Y},{...OD}),CI=Object.entries(W8).reduce((Y,[Z,Q])=>{let X=A[Z];if(X)Y[Q]=X;return Y},{userinactivechange:"userinactive"}),UV=Object.entries(A).reduce((Y,[Z,Q])=>{let X=W8[Z];if(X)Y[Q]=X;return Y},{userinactive:"userinactivechange"}),P1={SUBTITLES:"subtitles",CAPTIONS:"captions",DESCRIPTIONS:"descriptions",CHAPTERS:"chapters",METADATA:"metadata"},o6={DISABLED:"disabled",HIDDEN:"hidden",SHOWING:"showing"};var fQ={MOUSE:"mouse",PEN:"pen",TOUCH:"touch"},g1={UNAVAILABLE:"unavailable",UNSUPPORTED:"unsupported"},q8={LIVE:"live",ON_DEMAND:"on-demand",UNKNOWN:"unknown"};var FV={INLINE:"inline",FULLSCREEN:"fullscreen",PICTURE_IN_PICTURE:"picture-in-picture"};function RV(Y){return Y==null?void 0:Y.map(AD).join(" ")}function BV(Y){return Y==null?void 0:Y.split(/\s+/).map(DD)}function AD(Y){if(Y){let{id:Z,width:Q,height:X}=Y;return[Z,Q,X].filter((J)=>J!=null).join(":")}}function DD(Y){if(Y){let[Z,Q,X]=Y.split(":");return{id:Z,width:+Q,height:+X}}}function NV(Y){return Y==null?void 0:Y.map(wD).join(" ")}function $V(Y){return Y==null?void 0:Y.split(/\s+/).map(PD)}function wD(Y){if(Y){let{id:Z,kind:Q,language:X,label:J}=Y;return[Z,Q,X,J].filter((W)=>W!=null).join(":")}}function PD(Y){if(Y){let[Z,Q,X,J]=Y.split(":");return{id:Z,kind:Q,language:X,label:J}}}function LV(Y){return Y.replace(/[-_]([a-z])/g,(Z,Q)=>Q.toUpperCase())}function C9(Y){return typeof Y==="number"&&!Number.isNaN(Y)&&Number.isFinite(Y)}function yQ(Y){if(typeof Y!="string")return!1;return!isNaN(Y)&&!isNaN(parseFloat(Y))}var kQ=(Y)=>new Promise((Z)=>setTimeout(Z,Y));var OV=[{singular:"hour",plural:"hours"},{singular:"minute",plural:"minutes"},{singular:"second",plural:"seconds"}],CD=(Y,Z)=>{let Q=Y===1?OV[Z].singular:OV[Z].plural;return`${Y} ${Q}`},A7=(Y)=>{if(!C9(Y))return"";let Z=Math.abs(Y),Q=Z!==Y,X=new Date(0,0,0,0,0,Z,0);return`${[X.getHours(),X.getMinutes(),X.getSeconds()].map((z,H)=>z&&CD(z,H)).filter((z)=>z).join(", ")}${Q?" remaining":""}`};function O8(Y,Z){let Q=!1;if(Y<0)Q=!0,Y=0-Y;Y=Y<0?0:Y;let X=Math.floor(Y%60),J=Math.floor(Y/60%60),W=Math.floor(Y/3600),q=Math.floor(Z/60%60),z=Math.floor(Z/3600);if(isNaN(Y)||Y===1/0)W=J=X="0";return W=W>0||z>0?W+":":"",J=((W||q>=10)&&J<10?"0"+J:J)+":",X=X<10?"0"+X:X,(Q?"-":"")+W+J+X}var II=Object.freeze({length:0,start(Y){let Z=Y>>>0;if(Z>=this.length)throw new DOMException(`Failed to execute 'start' on 'TimeRanges': The index provided (${Z}) is greater than or equal to the maximum bound (${this.length}).`);return 0},end(Y){let Z=Y>>>0;if(Z>=this.length)throw new DOMException(`Failed to execute 'end' on 'TimeRanges': The index provided (${Z}) is greater than or equal to the maximum bound (${this.length}).`);return 0}});var jV={"Start airplay":"Start airplay","Stop airplay":"Stop airplay",Audio:"Audio",Captions:"Captions","Enable captions":"Enable captions","Disable captions":"Disable captions","Start casting":"Start casting","Stop casting":"Stop casting","Enter fullscreen mode":"Enter fullscreen mode","Exit fullscreen mode":"Exit fullscreen mode",Mute:"Mute",Unmute:"Unmute",Loop:"Loop","Enter picture in picture mode":"Enter picture in picture mode","Exit picture in picture mode":"Exit picture in picture mode",Play:"Play",Pause:"Pause","Playback rate":"Playback rate","Playback rate {playbackRate}":"Playback rate {playbackRate}",Quality:"Quality","Seek backward":"Seek backward","Seek forward":"Seek forward",Settings:"Settings",Auto:"Auto","audio player":"audio player","video player":"video player",volume:"volume",seek:"seek","closed captions":"closed captions","current playback rate":"current playback rate","playback time":"playback time","media loading":"media loading",settings:"settings","audio tracks":"audio tracks",quality:"quality",play:"play",pause:"pause",mute:"mute",unmute:"unmute","chapter: {chapterName}":"chapter: {chapterName}",live:"live",Off:"Off","start airplay":"start airplay","stop airplay":"stop airplay","start casting":"start casting","stop casting":"stop casting","enter fullscreen mode":"enter fullscreen mode","exit fullscreen mode":"exit fullscreen mode","enter picture in picture mode":"enter picture in picture mode","exit picture in picture mode":"exit picture in picture mode","seek to live":"seek to live","playing live":"playing live","seek back {seekOffset} seconds":"seek back {seekOffset} seconds","seek forward {seekOffset} seconds":"seek forward {seekOffset} seconds","Network Error":"Network Error","Decode Error":"Decode Error","Source Not Supported":"Source Not Supported","Encryption Error":"Encryption Error","A network error caused the media download to fail.":"A network error caused the media download to fail.","A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.":"A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format.","An unsupported error occurred. The server or network failed, or your browser does not support this format.":"An unsupported error occurred. The server or network failed, or your browser does not support this format.","The media is encrypted and there are no keys to decrypt it.":"The media is encrypted and there are no keys to decrypt it."};var AV,B4={en:jV},N4=((AV=globalThis.navigator)==null?void 0:AV.language)||"en",DV=(Y)=>{N4=Y};var xD=(Y)=>{var Z,Q,X;let[J]=N4.split("-");return((Z=B4[N4])==null?void 0:Z[Y])||((Q=B4[J])==null?void 0:Q[Y])||((X=B4.en)==null?void 0:X[Y])||Y},v=(Y,Z={})=>xD(Y).replace(/\{(\w+)\}/g,(Q,X)=>(X in Z)?String(Z[X]):`{${X}}`);class L4{addEventListener(){}removeEventListener(){}dispatchEvent(){return!0}}class O4 extends L4{}class $4 extends O4{constructor(){super(...arguments);this.role=null}}class wV{observe(){}unobserve(){}disconnect(){}}var PV={createElement:function(){return new eY.HTMLElement},createElementNS:function(){return new eY.HTMLElement},addEventListener(){},removeEventListener(){},dispatchEvent(Y){return!1}},eY={ResizeObserver:wV,document:PV,Node:O4,Element:$4,HTMLElement:class extends $4{constructor(){super(...arguments);this.innerHTML=""}get content(){return new eY.DocumentFragment}},DocumentFragment:class extends L4{},customElements:{get:function(){},define:function(){},whenDefined:function(){}},localStorage:{getItem(Y){return null},setItem(Y,Z){},removeItem(Y){}},CustomEvent:function(){},getComputedStyle:function(){},navigator:{languages:[],get userAgent(){return""}},matchMedia(Y){return{matches:!1,media:Y}},DOMParser:class{parseFromString(Z,Q){return{body:{textContent:Z}}}}},CV="global"in globalThis&&(globalThis==null?void 0:globalThis.global)===globalThis||typeof window>"u"||typeof window.customElements>"u",MV=Object.keys(eY).every((Y)=>(Y in globalThis)),P=CV&&!MV?eY:globalThis,f0=CV&&!MV?PV:globalThis.document;var xV=new WeakMap,j4=(Y)=>{let Z=xV.get(Y);if(!Z)xV.set(Y,Z=new Set);return Z},IV=new P.ResizeObserver((Y)=>{for(let Z of Y)for(let Q of j4(Z.target))Q(Z)});function L6(Y,Z){j4(Y).add(Z),IV.observe(Y)}function O6(Y,Z){let Q=j4(Y);if(Q.delete(Z),!Q.size)IV.unobserve(Y)}function u0(Y){let Z={};for(let Q of Y)Z[Q.name]=Q.value;return Z}function p0(Y){var Z;return(Z=gQ(Y))!=null?Z:c8(Y,"media-controller")}function gQ(Y){var Z;let{MEDIA_CONTROLLER:Q}=R0,X=Y.getAttribute(Q);if(X)return(Z=D7(Y))==null?void 0:Z.getElementById(X)}var bQ=(Y,Z,Q=".value")=>{let X=Y.querySelector(Q);if(!X)return;X.textContent=Z},ID=(Y,Z)=>{let Q=`slot[name="${Z}"]`,X=Y.shadowRoot.querySelector(Q);if(!X)return[];return X.children},_Q=(Y,Z)=>ID(Y,Z)[0],S1=(Y,Z)=>{if(!Y||!Z)return!1;if(Y==null?void 0:Y.contains(Z))return!0;return S1(Y,Z.getRootNode().host)},c8=(Y,Z)=>{if(!Y)return null;let Q=Y.closest(Z);if(Q)return Q;return c8(Y.getRootNode().host,Z)};function YZ(Y=document){var Z;let Q=Y==null?void 0:Y.activeElement;if(!Q)return null;return(Z=YZ(Q.shadowRoot))!=null?Z:Q}function D7(Y){var Z;let Q=(Z=Y==null?void 0:Y.getRootNode)==null?void 0:Z.call(Y);if(Q instanceof ShadowRoot||Q instanceof Document)return Q;return null}function vQ(Y,{depth:Z=3,checkOpacity:Q=!0,checkVisibilityCSS:X=!0}={}){if(Y.checkVisibility)return Y.checkVisibility({checkOpacity:Q,checkVisibilityCSS:X});let J=Y;while(J&&Z>0){let W=getComputedStyle(J);if(Q&&W.opacity==="0"||X&&W.visibility==="hidden"||W.display==="none")return!1;J=J.parentElement,Z--}return!0}function SV(Y,Z,Q,X){let J=X.x-Q.x,W=X.y-Q.y,q=J*J+W*W;if(q===0)return 0;let z=((Y-Q.x)*J+(Z-Q.y)*W)/q;return Math.max(0,Math.min(1,z))}function c0(Y,Z){let Q=SD(Y,(X)=>X===Z);if(Q)return Q;return ZZ(Y,Z)}function SD(Y,Z){var Q,X;let J;for(J of(Q=Y.querySelectorAll("style:not([media])"))!=null?Q:[]){let W;try{W=(X=J.sheet)==null?void 0:X.cssRules}catch{continue}for(let q of W!=null?W:[])if(Z(q.selectorText))return q}}function ZZ(Y,Z){var Q,X;let J=(Q=Y.querySelectorAll("style:not([media])"))!=null?Q:[],W=J==null?void 0:J[J.length-1];if(!(W==null?void 0:W.sheet))return console.warn("Media Chrome: No style sheet found on style tag of",Y),{style:{setProperty:()=>{},removeProperty:()=>"",getPropertyValue:()=>""}};return W==null||W.sheet.insertRule(`${Z}{}`,W.sheet.cssRules.length),(X=W.sheet.cssRules)==null?void 0:X[W.sheet.cssRules.length-1]}function B0(Y,Z,Q=Number.NaN){let X=Y.getAttribute(Z);return X!=null?+X:Q}function D0(Y,Z,Q){let X=+Q;if(Q==null||Number.isNaN(X)){if(Y.hasAttribute(Z))Y.removeAttribute(Z);return}if(B0(Y,Z,void 0)===X)return;Y.setAttribute(Z,`${X}`)}function W0(Y,Z){return Y.hasAttribute(Z)}function q0(Y,Z,Q){if(Q==null){if(Y.hasAttribute(Z))Y.removeAttribute(Z);return}if(W0(Y,Z)==Q)return;Y.toggleAttribute(Z,Q)}function K0(Y,Z,Q=null){var X;return(X=Y.getAttribute(Z))!=null?X:Q}function G0(Y,Z,Q){if(Q==null){if(Y.hasAttribute(Z))Y.removeAttribute(Z);return}let X=`${Q}`;if(K0(Y,Z,void 0)===X)return;Y.setAttribute(Z,X)}var TV=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},d6=(Y,Z,Q)=>{return TV(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},TD=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},pQ=(Y,Z,Q,X)=>{return TV(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},b1;function hD(Y){return` `}class QZ extends P.HTMLElement{constructor(){super();if(TD(this,b1,void 0),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Y=u0(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(Y)}}static get observedAttributes(){return[R0.MEDIA_CONTROLLER,A.MEDIA_PAUSED]}attributeChangedCallback(Y,Z,Q){var X,J,W,q,z;if(Y===R0.MEDIA_CONTROLLER){if(Z)(J=(X=d6(this,b1))==null?void 0:X.unassociateElement)==null||J.call(X,this),pQ(this,b1,null);if(Q&&this.isConnected)pQ(this,b1,(W=this.getRootNode())==null?void 0:W.getElementById(Q)),(z=(q=d6(this,b1))==null?void 0:q.associateElement)==null||z.call(q,this)}}connectedCallback(){var Y,Z,Q,X;if(this.tabIndex=-1,this.setAttribute("aria-hidden","true"),pQ(this,b1,fD(this)),this.getAttribute(R0.MEDIA_CONTROLLER))(Z=(Y=d6(this,b1))==null?void 0:Y.associateElement)==null||Z.call(Y,this);(Q=d6(this,b1))==null||Q.addEventListener("pointerdown",this),(X=d6(this,b1))==null||X.addEventListener("click",this)}disconnectedCallback(){var Y,Z,Q,X;if(this.getAttribute(R0.MEDIA_CONTROLLER))(Z=(Y=d6(this,b1))==null?void 0:Y.unassociateElement)==null||Z.call(Y,this);(Q=d6(this,b1))==null||Q.removeEventListener("pointerdown",this),(X=d6(this,b1))==null||X.removeEventListener("click",this),pQ(this,b1,null)}handleEvent(Y){var Z;let Q=(Z=Y.composedPath())==null?void 0:Z[0];if(!["video","media-controller"].includes(Q==null?void 0:Q.localName))return;if(Y.type==="pointerdown")this._pointerType=Y.pointerType;else if(Y.type==="click"){let{clientX:J,clientY:W}=Y,{left:q,top:z,width:H,height:E}=this.getBoundingClientRect(),K=J-q,G=W-z;if(K<0||G<0||K>H||G>E||H===0&&E===0)return;let U=this._pointerType||"mouse";if(this._pointerType=void 0,U===fQ.TOUCH){this.handleTap(Y);return}else if(U===fQ.MOUSE||U===fQ.PEN){this.handleMouseClick(Y);return}}}get mediaPaused(){return W0(this,A.MEDIA_PAUSED)}set mediaPaused(Y){q0(this,A.MEDIA_PAUSED,Y)}handleTap(Y){}handleMouseClick(Y){let Z=this.mediaPaused?b.MEDIA_PLAY_REQUEST:b.MEDIA_PAUSE_REQUEST;this.dispatchEvent(new P.CustomEvent(Z,{composed:!0,bubbles:!0}))}}b1=new WeakMap;QZ.shadowRootOptions={mode:"open"};QZ.getTemplateHTML=hD;function fD(Y){var Z;let Q=Y.getAttribute(R0.MEDIA_CONTROLLER);if(Q)return(Z=Y.getRootNode())==null?void 0:Z.getElementById(Q);return c8(Y,"media-controller")}if(!P.customElements.get("media-gesture-receiver"))P.customElements.define("media-gesture-receiver",QZ);var cQ=QZ;var P4=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},i1=(Y,Z,Q)=>{return P4(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},s1=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},w7=(Y,Z,Q,X)=>{return P4(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},H8=(Y,Z,Q)=>{return P4(Y,Z,"access private method"),Q},oQ,M9,JZ,x9,uQ,A4,hV,XZ,mQ,D4,fV,w4,yV,WZ,dQ,lQ,C4,I9,qZ,J0={AUDIO:"audio",AUTOHIDE:"autohide",BREAKPOINTS:"breakpoints",GESTURES_DISABLED:"gesturesdisabled",KEYBOARD_CONTROL:"keyboardcontrol",NO_AUTOHIDE:"noautohide",USER_INACTIVE:"userinactive",AUTOHIDE_OVER_CONTROLS:"autohideovercontrols"};function yD(Y){return` `}var kD=Object.values(A),gD="sm:384 md:576 lg:768 xl:960";function bD(Y){kV(Y.target,Y.contentRect.width)}function kV(Y,Z){var Q;if(!Y.isConnected)return;let X=(Q=Y.getAttribute(J0.BREAKPOINTS))!=null?Q:gD,J=_D(X),W=vD(J,Z),q=!1;if(Object.keys(J).forEach((z)=>{if(W.includes(z)){if(!Y.hasAttribute(`breakpoint${z}`))Y.setAttribute(`breakpoint${z}`,""),q=!0;return}if(Y.hasAttribute(`breakpoint${z}`))Y.removeAttribute(`breakpoint${z}`),q=!0}),q){let z=new CustomEvent(W8.BREAKPOINTS_CHANGE,{detail:W});Y.dispatchEvent(z)}if(!Y.breakpointsComputed)Y.breakpointsComputed=!0,Y.dispatchEvent(new CustomEvent(W8.BREAKPOINTS_COMPUTED,{bubbles:!0,composed:!0}))}function _D(Y){let Z=Y.split(/\s+/);return Object.fromEntries(Z.map((Q)=>Q.split(":")))}function vD(Y,Z){return Object.keys(Y).filter((Q)=>{return Z>=parseInt(Y[Q])})}class S9 extends P.HTMLElement{constructor(){super();if(s1(this,A4),s1(this,D4),s1(this,w4),s1(this,WZ),s1(this,lQ),s1(this,I9),s1(this,oQ,0),s1(this,M9,null),s1(this,JZ,null),s1(this,x9,void 0),this.breakpointsComputed=!1,s1(this,uQ,new MutationObserver(H8(this,A4,hV).bind(this))),s1(this,XZ,!1),s1(this,mQ,(Z)=>{if(i1(this,XZ))return;setTimeout(()=>{bD(Z),w7(this,XZ,!1)},0),w7(this,XZ,!0)}),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Z=u0(this.attributes),Q=this.constructor.getTemplateHTML(Z);this.shadowRoot.setHTMLUnsafe?this.shadowRoot.setHTMLUnsafe(Q):this.shadowRoot.innerHTML=Q}let Y=this.querySelector(":scope > slot[slot=media]");if(Y)Y.addEventListener("slotchange",()=>{if(!Y.assignedElements({flatten:!0}).length){if(i1(this,M9))this.mediaUnsetCallback(i1(this,M9));return}this.handleMediaUpdated(this.media)})}static get observedAttributes(){return[J0.AUTOHIDE,J0.GESTURES_DISABLED].concat(kD).filter((Y)=>![A.MEDIA_RENDITION_LIST,A.MEDIA_AUDIO_TRACK_LIST,A.MEDIA_CHAPTERS_CUES,A.MEDIA_WIDTH,A.MEDIA_HEIGHT,A.MEDIA_ERROR,A.MEDIA_ERROR_MESSAGE].includes(Y))}attributeChangedCallback(Y,Z,Q){if(Y.toLowerCase()==J0.AUTOHIDE)this.autohide=Q}get media(){let Y=this.querySelector(":scope > [slot=media]");if((Y==null?void 0:Y.nodeName)=="SLOT")Y=Y.assignedElements({flatten:!0})[0];return Y}async handleMediaUpdated(Y){if(!Y)return;if(w7(this,M9,Y),Y.localName.includes("-"))await P.customElements.whenDefined(Y.localName);this.mediaSetCallback(Y)}connectedCallback(){var Y;i1(this,uQ).observe(this,{childList:!0,subtree:!0}),L6(this,i1(this,mQ));let Q=this.getAttribute(J0.AUDIO)!=null?v("audio player"):v("video player");this.setAttribute("role","region"),this.setAttribute("aria-label",Q),this.handleMediaUpdated(this.media),this.setAttribute(J0.USER_INACTIVE,""),kV(this,this.getBoundingClientRect().width),this.addEventListener("pointerdown",this),this.addEventListener("pointermove",this),this.addEventListener("pointerup",this),this.addEventListener("mouseleave",this),this.addEventListener("keyup",this),(Y=P.window)==null||Y.addEventListener("mouseup",this)}disconnectedCallback(){var Y;if(i1(this,uQ).disconnect(),O6(this,i1(this,mQ)),this.media)this.mediaUnsetCallback(this.media);(Y=P.window)==null||Y.removeEventListener("mouseup",this)}mediaSetCallback(Y){}mediaUnsetCallback(Y){w7(this,M9,null)}handleEvent(Y){switch(Y.type){case"pointerdown":w7(this,oQ,Y.timeStamp);break;case"pointermove":H8(this,D4,fV).call(this,Y);break;case"pointerup":H8(this,w4,yV).call(this,Y);break;case"mouseleave":H8(this,WZ,dQ).call(this);break;case"mouseup":this.removeAttribute(J0.KEYBOARD_CONTROL);break;case"keyup":H8(this,I9,qZ).call(this),this.setAttribute(J0.KEYBOARD_CONTROL,"");break}}set autohide(Y){let Z=Number(Y);w7(this,x9,isNaN(Z)?0:Z)}get autohide(){return(i1(this,x9)===void 0?2:i1(this,x9)).toString()}get breakpoints(){return K0(this,J0.BREAKPOINTS)}set breakpoints(Y){G0(this,J0.BREAKPOINTS,Y)}get audio(){return W0(this,J0.AUDIO)}set audio(Y){q0(this,J0.AUDIO,Y)}get gesturesDisabled(){return W0(this,J0.GESTURES_DISABLED)}set gesturesDisabled(Y){q0(this,J0.GESTURES_DISABLED,Y)}get keyboardControl(){return W0(this,J0.KEYBOARD_CONTROL)}set keyboardControl(Y){q0(this,J0.KEYBOARD_CONTROL,Y)}get noAutohide(){return W0(this,J0.NO_AUTOHIDE)}set noAutohide(Y){q0(this,J0.NO_AUTOHIDE,Y)}get autohideOverControls(){return W0(this,J0.AUTOHIDE_OVER_CONTROLS)}set autohideOverControls(Y){q0(this,J0.AUTOHIDE_OVER_CONTROLS,Y)}get userInteractive(){return W0(this,J0.USER_INACTIVE)}set userInteractive(Y){q0(this,J0.USER_INACTIVE,Y)}}oQ=new WeakMap;M9=new WeakMap;JZ=new WeakMap;x9=new WeakMap;uQ=new WeakMap;A4=new WeakSet;hV=function(Y){let Z=this.media;for(let Q of Y){if(Q.type!=="childList")continue;let X=Q.removedNodes;for(let J of X){if(J.slot!="media"||Q.target!=this)continue;let W=Q.previousSibling&&Q.previousSibling.previousElementSibling;if(!W||!Z)this.mediaUnsetCallback(J);else{let q=W.slot!=="media";while((W=W.previousSibling)!==null)if(W.slot=="media")q=!1;if(q)this.mediaUnsetCallback(J)}}if(Z){for(let J of Q.addedNodes)if(J===Z)this.handleMediaUpdated(Z)}}};XZ=new WeakMap;mQ=new WeakMap;D4=new WeakSet;fV=function(Y){if(Y.pointerType!=="mouse"){if(Y.timeStamp-i1(this,oQ)<250)return}H8(this,lQ,C4).call(this),clearTimeout(i1(this,JZ));let Z=this.hasAttribute(J0.AUTOHIDE_OVER_CONTROLS);if([this,this.media].includes(Y.target)||Z)H8(this,I9,qZ).call(this)};w4=new WeakSet;yV=function(Y){if(Y.pointerType==="touch"){let Z=!this.hasAttribute(J0.USER_INACTIVE);if([this,this.media].includes(Y.target)&&Z)H8(this,WZ,dQ).call(this);else H8(this,I9,qZ).call(this)}else if(Y.composedPath().some((Z)=>["media-play-button","media-fullscreen-button"].includes(Z==null?void 0:Z.localName)))H8(this,I9,qZ).call(this)};WZ=new WeakSet;dQ=function(){if(i1(this,x9)<0)return;if(this.hasAttribute(J0.USER_INACTIVE))return;this.setAttribute(J0.USER_INACTIVE,"");let Y=new P.CustomEvent(W8.USER_INACTIVE_CHANGE,{composed:!0,bubbles:!0,detail:!0});this.dispatchEvent(Y)};lQ=new WeakSet;C4=function(){if(!this.hasAttribute(J0.USER_INACTIVE))return;this.removeAttribute(J0.USER_INACTIVE);let Y=new P.CustomEvent(W8.USER_INACTIVE_CHANGE,{composed:!0,bubbles:!0,detail:!1});this.dispatchEvent(Y)};I9=new WeakSet;qZ=function(){H8(this,lQ,C4).call(this),clearTimeout(i1(this,JZ));let Y=parseInt(this.autohide);if(Y<0)return;w7(this,JZ,setTimeout(()=>{H8(this,WZ,dQ).call(this)},Y*1000))};S9.shadowRootOptions={mode:"open"};S9.getTemplateHTML=yD;if(!P.customElements.get("media-container"))P.customElements.define("media-container",S9);var gV=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},L1=(Y,Z,Q)=>{return gV(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},HZ=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},nQ=(Y,Z,Q,X)=>{return gV(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},T9,h9,sQ,P7,j6,l6;class C7{constructor(Y,Z,{defaultValue:Q}={defaultValue:void 0}){HZ(this,j6),HZ(this,T9,void 0),HZ(this,h9,void 0),HZ(this,sQ,void 0),HZ(this,P7,new Set),nQ(this,T9,Y),nQ(this,h9,Z),nQ(this,sQ,new Set(Q))}[Symbol.iterator](){return L1(this,j6,l6).values()}get length(){return L1(this,j6,l6).size}get value(){var Y;return(Y=[...L1(this,j6,l6)].join(" "))!=null?Y:""}set value(Y){var Z;if(Y===this.value)return;nQ(this,P7,new Set),this.add(...(Z=Y==null?void 0:Y.split(" "))!=null?Z:[])}toString(){return this.value}item(Y){return[...L1(this,j6,l6)][Y]}values(){return L1(this,j6,l6).values()}forEach(Y,Z){L1(this,j6,l6).forEach(Y,Z)}add(...Y){var Z,Q;if(Y.forEach((X)=>L1(this,P7).add(X)),this.value===""&&!((Z=L1(this,T9))==null?void 0:Z.hasAttribute(`${L1(this,h9)}`)))return;(Q=L1(this,T9))==null||Q.setAttribute(`${L1(this,h9)}`,`${this.value}`)}remove(...Y){var Z;Y.forEach((Q)=>L1(this,P7).delete(Q)),(Z=L1(this,T9))==null||Z.setAttribute(`${L1(this,h9)}`,`${this.value}`)}contains(Y){return L1(this,j6,l6).has(Y)}toggle(Y,Z){if(typeof Z<"u")if(Z)return this.add(Y),!0;else return this.remove(Y),!1;if(this.contains(Y))return this.remove(Y),!1;return this.add(Y),!0}replace(Y,Z){return this.remove(Y),this.add(Z),Y===Z}}T9=new WeakMap;h9=new WeakMap;sQ=new WeakMap;P7=new WeakMap;j6=new WeakSet;l6=function(){return L1(this,P7).size?L1(this,P7):L1(this,sQ)};var pD=(Y="")=>Y.split(/\s+/),bV=(Y="")=>{let[Z,Q,X]=Y.split(":"),J=X?decodeURIComponent(X):void 0;return{kind:Z==="cc"?P1.CAPTIONS:P1.SUBTITLES,language:Q,label:J}},M7=(Y="",Z={})=>{return pD(Y).map((Q)=>{let X=bV(Q);return{...Z,...X}})},M4=(Y)=>{if(!Y)return[];if(Array.isArray(Y))return Y.map((Z)=>{if(typeof Z==="string")return bV(Z);return Z});if(typeof Y==="string")return M7(Y);return[Y]},iQ=({kind:Y,label:Z,language:Q}={kind:"subtitles"})=>{if(!Z)return Q;return`${Y==="captions"?"cc":"sb"}:${Q}:${encodeURIComponent(Z)}`},A6=(Y=[])=>{return Array.prototype.map.call(Y,iQ).join(" ")},cD=(Y,Z)=>(Q)=>Q[Y]===Z,_V=(Y)=>{let Z=Object.entries(Y).map(([Q,X])=>{return cD(Q,X)});return(Q)=>Z.every((X)=>X(Q))},x7=(Y,Z=[],Q=[])=>{let X=M4(Q).map(_V),J=(W)=>{return X.some((q)=>q(W))};Array.from(Z).filter(J).forEach((W)=>{W.mode=Y})},I7=(Y,Z=()=>!0)=>{if(!(Y==null?void 0:Y.textTracks))return[];let Q=typeof Z==="function"?Z:_V(Z);return Array.from(Y.textTracks).filter(Q)},rQ=(Y)=>{var Z;return!!((Z=Y.mediaSubtitlesShowing)==null?void 0:Z.length)||Y.hasAttribute(A.MEDIA_SUBTITLES_SHOWING)};var pV=(Y)=>{var Z;let{media:Q,fullscreenElement:X}=Y;try{let J=X&&"requestFullscreen"in X?"requestFullscreen":X&&("webkitRequestFullScreen"in X)?"webkitRequestFullScreen":void 0;if(J){let W=(Z=X[J])==null?void 0:Z.call(X);if(W instanceof Promise)return W.catch(()=>{})}else if(Q==null?void 0:Q.webkitEnterFullscreen)Q.webkitEnterFullscreen();else if(Q==null?void 0:Q.requestFullscreen)Q.requestFullscreen()}catch(J){console.error(J)}},vV="exitFullscreen"in f0?"exitFullscreen":("webkitExitFullscreen"in f0)?"webkitExitFullscreen":("webkitCancelFullScreen"in f0)?"webkitCancelFullScreen":void 0,cV=(Y)=>{var Z;let{documentElement:Q}=Y;if(vV){let X=(Z=Q==null?void 0:Q[vV])==null?void 0:Z.call(Q);if(X instanceof Promise)return X.catch(()=>{})}},zZ="fullscreenElement"in f0?"fullscreenElement":("webkitFullscreenElement"in f0)?"webkitFullscreenElement":void 0,uD=(Y)=>{let{documentElement:Z,media:Q}=Y,X=Z==null?void 0:Z[zZ];if(!X&&"webkitDisplayingFullscreen"in Q&&"webkitPresentationMode"in Q&&Q.webkitDisplayingFullscreen&&Q.webkitPresentationMode===FV.FULLSCREEN)return Q;return X},uV=(Y)=>{var Z;let{media:Q,documentElement:X,fullscreenElement:J=Q}=Y;if(!Q||!X)return!1;let W=uD(Y);if(!W)return!1;if(W===J||W===Q)return!0;if(W.localName.includes("-")){let q=W.shadowRoot;if(!(zZ in q))return S1(W,J);while(q==null?void 0:q[zZ]){if(q[zZ]===J)return!0;q=(Z=q[zZ])==null?void 0:Z.shadowRoot}}return!1},mD="fullscreenEnabled"in f0?"fullscreenEnabled":("webkitFullscreenEnabled"in f0)?"webkitFullscreenEnabled":void 0,mV=(Y)=>{let{documentElement:Z,media:Q}=Y;return!!(Z==null?void 0:Z[mD])||Q&&"webkitSupportsFullscreen"in Q};var aQ,x4=()=>{var Y,Z;if(aQ)return aQ;return aQ=(Z=(Y=f0)==null?void 0:Y.createElement)==null?void 0:Z.call(Y,"video"),aQ},oV=async(Y=x4())=>{if(!Y)return!1;let Z=Y.volume;Y.volume=Z/2+0.1;let Q=new AbortController,X=await Promise.race([oD(Y,Q.signal),dD(Y,Z)]);return Q.abort(),X},oD=(Y,Z)=>{return new Promise((Q)=>{Y.addEventListener("volumechange",()=>Q(!0),{signal:Z})})},dD=async(Y,Z)=>{for(let Q=0;Q<10;Q++){if(Y.volume===Z)return!1;await kQ(10)}return Y.volume!==Z},lD=/.*Version\/.*Safari\/.*/.test(P.navigator.userAgent),I4=(Y=x4())=>{if(P.matchMedia("(display-mode: standalone)").matches&&lD)return!1;return typeof(Y==null?void 0:Y.requestPictureInPicture)==="function"},S4=(Y=x4())=>{return mV({documentElement:f0,media:Y})},dV=S4(),lV=I4(),nV=!!P.WebKitPlaybackTargetAvailabilityEvent,sV=!!P.chrome;var f9=(Y)=>{return I7(Y.media,(Z)=>{return[P1.SUBTITLES,P1.CAPTIONS].includes(Z.kind)}).sort((Z,Q)=>Z.kind>=Q.kind?1:-1)},T4=(Y)=>{return I7(Y.media,(Z)=>{return Z.mode===o6.SHOWING&&[P1.SUBTITLES,P1.CAPTIONS].includes(Z.kind)})},tQ=(Y,Z)=>{let Q=f9(Y),X=T4(Y),J=!!X.length;if(!Q.length)return;if(Z===!1||J&&Z!==!0)x7(o6.DISABLED,Q,X);else if(Z===!0||!J&&Z!==!1){let W=Q[0],{options:q}=Y;if(!(q==null?void 0:q.noSubtitlesLangPref)){let K=globalThis.localStorage.getItem("media-chrome-pref-subtitles-lang"),G=K?[K,...globalThis.navigator.languages]:globalThis.navigator.languages,U=Q.filter((V)=>{return G.some((F)=>V.language.toLowerCase().startsWith(F.split("-")[0]))}).sort((V,F)=>{let R=G.findIndex(($)=>V.language.toLowerCase().startsWith($.split("-")[0])),B=G.findIndex(($)=>F.language.toLowerCase().startsWith($.split("-")[0]));return R-B});if(U[0])W=U[0]}let{language:z,label:H,kind:E}=W;x7(o6.DISABLED,Q,X),x7(o6.SHOWING,Q,[{language:z,label:H,kind:E}])}},eQ=(Y,Z)=>{if(Y===Z)return!0;if(Y==null||Z==null)return!1;if(typeof Y!==typeof Z)return!1;if(typeof Y==="number"&&Number.isNaN(Y)&&Number.isNaN(Z))return!0;if(typeof Y!=="object")return!1;if(Array.isArray(Y))return nD(Y,Z);return Object.entries(Y).every(([Q,X])=>(Q in Z)&&eQ(X,Z[Q]))},nD=(Y,Z)=>{let Q=Array.isArray(Y),X=Array.isArray(Z);if(Q!==X)return!1;if(!(Q||X))return!0;if(Y.length!==Z.length)return!1;return Y.every((J,W)=>eQ(J,Z[W]))};var sD=Object.values(q8),YX,iD=oV().then((Y)=>{return YX=Y,YX}),iV=async(...Y)=>{await Promise.all(Y.filter((Z)=>Z).map(async(Z)=>{if(!(("localName"in Z)&&Z instanceof P.HTMLElement))return;let Q=Z.localName;if(!Q.includes("-"))return;let X=P.customElements.get(Q);if(X&&Z instanceof X)return;await P.customElements.whenDefined(Q),P.customElements.upgrade(Z)}))},rD=new P.DOMParser,aD=(Y)=>Y?rD.parseFromString(Y,"text/html").body.textContent||Y:Y,y9={mediaError:{get(Y,Z){let{media:Q}=Y;if((Z==null?void 0:Z.type)==="playing")return;return Q==null?void 0:Q.error},mediaEvents:["emptied","error","playing"]},mediaErrorCode:{get(Y,Z){var Q;let{media:X}=Y;if((Z==null?void 0:Z.type)==="playing")return;return(Q=X==null?void 0:X.error)==null?void 0:Q.code},mediaEvents:["emptied","error","playing"]},mediaErrorMessage:{get(Y,Z){var Q,X;let{media:J}=Y;if((Z==null?void 0:Z.type)==="playing")return;return(X=(Q=J==null?void 0:J.error)==null?void 0:Q.message)!=null?X:""},mediaEvents:["emptied","error","playing"]},mediaWidth:{get(Y){var Z;let{media:Q}=Y;return(Z=Q==null?void 0:Q.videoWidth)!=null?Z:0},mediaEvents:["resize"]},mediaHeight:{get(Y){var Z;let{media:Q}=Y;return(Z=Q==null?void 0:Q.videoHeight)!=null?Z:0},mediaEvents:["resize"]},mediaPaused:{get(Y){var Z;let{media:Q}=Y;return(Z=Q==null?void 0:Q.paused)!=null?Z:!0},set(Y,Z){var Q;let{media:X}=Z;if(!X)return;if(Y)X.pause();else(Q=X.play())==null||Q.catch(()=>{})},mediaEvents:["play","playing","pause","emptied"]},mediaHasPlayed:{get(Y,Z){let{media:Q}=Y;if(!Q)return!1;if(!Z)return!Q.paused;return Z.type==="playing"},mediaEvents:["playing","emptied"]},mediaEnded:{get(Y){var Z;let{media:Q}=Y;return(Z=Q==null?void 0:Q.ended)!=null?Z:!1},mediaEvents:["seeked","ended","emptied"]},mediaPlaybackRate:{get(Y){var Z;let{media:Q}=Y;return(Z=Q==null?void 0:Q.playbackRate)!=null?Z:1},set(Y,Z){let{media:Q}=Z;if(!Q)return;if(!Number.isFinite(+Y))return;Q.playbackRate=+Y},mediaEvents:["ratechange","loadstart"]},mediaMuted:{get(Y){var Z;let{media:Q}=Y;return(Z=Q==null?void 0:Q.muted)!=null?Z:!1},set(Y,Z){let{media:Q,options:{noMutedPref:X}={}}=Z;if(!Q)return;Q.muted=Y;try{let J=P.localStorage.getItem("media-chrome-pref-muted")!==null,W=Q.hasAttribute("muted");if(X){if(J)P.localStorage.removeItem("media-chrome-pref-muted");return}if(W&&!J)return;P.localStorage.setItem("media-chrome-pref-muted",Y?"true":"false")}catch(J){console.debug("Error setting muted pref",J)}},mediaEvents:["volumechange"],stateOwnersUpdateHandlers:[(Y,Z)=>{let{options:{noMutedPref:Q}}=Z,{media:X}=Z;if(!X||X.muted||Q)return;try{let J=P.localStorage.getItem("media-chrome-pref-muted")==="true";y9.mediaMuted.set(J,Z),Y(J)}catch(J){console.debug("Error getting muted pref",J)}}]},mediaLoop:{get(Y){let{media:Z}=Y;return Z==null?void 0:Z.loop},set(Y,Z){let{media:Q}=Z;if(!Q)return;Q.loop=Y},mediaEvents:["medialooprequest"]},mediaVolume:{get(Y){var Z;let{media:Q}=Y;return(Z=Q==null?void 0:Q.volume)!=null?Z:1},set(Y,Z){let{media:Q,options:{noVolumePref:X}={}}=Z;if(!Q)return;try{if(Y==null)P.localStorage.removeItem("media-chrome-pref-volume");else if(!Q.hasAttribute("muted")&&!X)P.localStorage.setItem("media-chrome-pref-volume",Y.toString())}catch(J){console.debug("Error setting volume pref",J)}if(!Number.isFinite(+Y))return;Q.volume=+Y},mediaEvents:["volumechange"],stateOwnersUpdateHandlers:[(Y,Z)=>{let{options:{noVolumePref:Q}}=Z;if(Q)return;try{let{media:X}=Z;if(!X)return;let J=P.localStorage.getItem("media-chrome-pref-volume");if(J==null)return;y9.mediaVolume.set(+J,Z),Y(+J)}catch(X){console.debug("Error getting volume pref",X)}}]},mediaVolumeLevel:{get(Y){let{media:Z}=Y;if(typeof(Z==null?void 0:Z.volume)>"u")return"high";if(Z.muted||Z.volume===0)return"off";if(Z.volume<0.5)return"low";if(Z.volume<0.75)return"medium";return"high"},mediaEvents:["volumechange"]},mediaCurrentTime:{get(Y){var Z;let{media:Q}=Y;return(Z=Q==null?void 0:Q.currentTime)!=null?Z:0},set(Y,Z){let{media:Q}=Z;if(!Q||!C9(Y))return;Q.currentTime=Y},mediaEvents:["timeupdate","loadedmetadata"]},mediaDuration:{get(Y){let{media:Z,options:{defaultDuration:Q}={}}=Y;if(Q&&(!Z||!Z.duration||Number.isNaN(Z.duration)||!Number.isFinite(Z.duration)))return Q;return Number.isFinite(Z==null?void 0:Z.duration)?Z.duration:Number.NaN},mediaEvents:["durationchange","loadedmetadata","emptied"]},mediaLoading:{get(Y){let{media:Z}=Y;return(Z==null?void 0:Z.readyState)<3},mediaEvents:["waiting","playing","emptied"]},mediaSeekable:{get(Y){var Z;let{media:Q}=Y;if(!((Z=Q==null?void 0:Q.seekable)==null?void 0:Z.length))return;let X=Q.seekable.start(0),J=Q.seekable.end(Q.seekable.length-1);if(!X&&!J)return;return[Number(X.toFixed(3)),Number(J.toFixed(3))]},mediaEvents:["loadedmetadata","emptied","progress","seekablechange"]},mediaBuffered:{get(Y){var Z;let{media:Q}=Y,X=(Z=Q==null?void 0:Q.buffered)!=null?Z:[];return Array.from(X).map((J,W)=>[Number(X.start(W).toFixed(3)),Number(X.end(W).toFixed(3))])},mediaEvents:["progress","emptied"]},mediaStreamType:{get(Y){let{media:Z,options:{defaultStreamType:Q}={}}=Y,X=[q8.LIVE,q8.ON_DEMAND].includes(Q)?Q:void 0;if(!Z)return X;let{streamType:J}=Z;if(sD.includes(J)){if(J===q8.UNKNOWN)return X;return J}let W=Z.duration;if(W===1/0)return q8.LIVE;else if(Number.isFinite(W))return q8.ON_DEMAND;return X},mediaEvents:["emptied","durationchange","loadedmetadata","streamtypechange"]},mediaTargetLiveWindow:{get(Y){let{media:Z}=Y;if(!Z)return Number.NaN;let{targetLiveWindow:Q}=Z,X=y9.mediaStreamType.get(Y);if((Q==null||Number.isNaN(Q))&&X===q8.LIVE)return 0;return Q},mediaEvents:["emptied","durationchange","loadedmetadata","streamtypechange","targetlivewindowchange"]},mediaTimeIsLive:{get(Y){let{media:Z,options:{liveEdgeOffset:Q=10}={}}=Y;if(!Z)return!1;if(typeof Z.liveEdgeStart==="number"){if(Number.isNaN(Z.liveEdgeStart))return!1;return Z.currentTime>=Z.liveEdgeStart}if(y9.mediaStreamType.get(Y)!==q8.LIVE)return!1;let J=Z.seekable;if(!J)return!0;if(!J.length)return!1;let W=J.end(J.length-1)-Q;return Z.currentTime>=W},mediaEvents:["playing","timeupdate","progress","waiting","emptied"]},mediaSubtitlesList:{get(Y){return f9(Y).map(({kind:Z,label:Q,language:X})=>({kind:Z,label:Q,language:X}))},mediaEvents:["loadstart"],textTracksEvents:["addtrack","removetrack"]},mediaSubtitlesShowing:{get(Y){return T4(Y).map(({kind:Z,label:Q,language:X})=>({kind:Z,label:Q,language:X}))},mediaEvents:["loadstart"],textTracksEvents:["addtrack","removetrack","change"],stateOwnersUpdateHandlers:[(Y,Z)=>{var Q,X;let{media:J,options:W}=Z;if(!J)return;let q=(z)=>{var H;if(!W.defaultSubtitles)return;if(z&&![P1.CAPTIONS,P1.SUBTITLES].includes((H=z==null?void 0:z.track)==null?void 0:H.kind))return;tQ(Z,!0)};return J.addEventListener("loadstart",q),(Q=J.textTracks)==null||Q.addEventListener("addtrack",q),(X=J.textTracks)==null||X.addEventListener("removetrack",q),()=>{var z,H;J.removeEventListener("loadstart",q),(z=J.textTracks)==null||z.removeEventListener("addtrack",q),(H=J.textTracks)==null||H.removeEventListener("removetrack",q)}}]},mediaChaptersCues:{get(Y){var Z;let{media:Q}=Y;if(!Q)return[];let[X]=I7(Q,{kind:P1.CHAPTERS});return Array.from((Z=X==null?void 0:X.cues)!=null?Z:[]).map(({text:J,startTime:W,endTime:q})=>({text:aD(J),startTime:W,endTime:q}))},mediaEvents:["loadstart","loadedmetadata"],textTracksEvents:["addtrack","removetrack","change"],stateOwnersUpdateHandlers:[(Y,Z)=>{var Q;let{media:X}=Z;if(!X)return;let J=X.querySelector('track[kind="chapters"][default][src]'),W=(Q=X.shadowRoot)==null?void 0:Q.querySelector(':is(video,audio) > track[kind="chapters"][default][src]');return J==null||J.addEventListener("load",Y),W==null||W.addEventListener("load",Y),()=>{J==null||J.removeEventListener("load",Y),W==null||W.removeEventListener("load",Y)}}]},mediaIsPip:{get(Y){var Z,Q;let{media:X,documentElement:J}=Y;if(!X||!J)return!1;if(!J.pictureInPictureElement)return!1;if(J.pictureInPictureElement===X)return!0;if(J.pictureInPictureElement instanceof HTMLMediaElement){if(!((Z=X.localName)==null?void 0:Z.includes("-")))return!1;return S1(X,J.pictureInPictureElement)}if(J.pictureInPictureElement.localName.includes("-")){let W=J.pictureInPictureElement.shadowRoot;while(W==null?void 0:W.pictureInPictureElement){if(W.pictureInPictureElement===X)return!0;W=(Q=W.pictureInPictureElement)==null?void 0:Q.shadowRoot}}return!1},set(Y,Z){let{media:Q}=Z;if(!Q)return;if(Y){if(!f0.pictureInPictureEnabled){console.warn("MediaChrome: Picture-in-picture is not enabled");return}if(!Q.requestPictureInPicture){console.warn("MediaChrome: The current media does not support picture-in-picture");return}let X=()=>{console.warn("MediaChrome: The media is not ready for picture-in-picture. It must have a readyState > 0.")};Q.requestPictureInPicture().catch((J)=>{if(J.code===11){if(!Q.src){console.warn("MediaChrome: The media is not ready for picture-in-picture. It must have a src set.");return}if(Q.readyState===0&&Q.preload==="none"){let W=()=>{Q.removeEventListener("loadedmetadata",q),Q.preload="none"},q=()=>{Q.requestPictureInPicture().catch(X),W()};Q.addEventListener("loadedmetadata",q),Q.preload="metadata",setTimeout(()=>{if(Q.readyState===0)X();W()},1000)}else throw J}else throw J})}else if(f0.pictureInPictureElement)f0.exitPictureInPicture()},mediaEvents:["enterpictureinpicture","leavepictureinpicture"]},mediaRenditionList:{get(Y){var Z;let{media:Q}=Y;return[...(Z=Q==null?void 0:Q.videoRenditions)!=null?Z:[]].map((X)=>({...X}))},mediaEvents:["emptied","loadstart"],videoRenditionsEvents:["addrendition","removerendition"]},mediaRenditionSelected:{get(Y){var Z,Q,X;let{media:J}=Y;return(X=(Q=J==null?void 0:J.videoRenditions)==null?void 0:Q[(Z=J.videoRenditions)==null?void 0:Z.selectedIndex])==null?void 0:X.id},set(Y,Z){let{media:Q}=Z;if(!(Q==null?void 0:Q.videoRenditions)){console.warn("MediaController: Rendition selection not supported by this media.");return}let X=Y,J=Array.prototype.findIndex.call(Q.videoRenditions,(W)=>W.id==X);if(Q.videoRenditions.selectedIndex!=J)Q.videoRenditions.selectedIndex=J},mediaEvents:["emptied"],videoRenditionsEvents:["addrendition","removerendition","change"]},mediaAudioTrackList:{get(Y){var Z;let{media:Q}=Y;return[...(Z=Q==null?void 0:Q.audioTracks)!=null?Z:[]]},mediaEvents:["emptied","loadstart"],audioTracksEvents:["addtrack","removetrack"]},mediaAudioTrackEnabled:{get(Y){var Z,Q;let{media:X}=Y;return(Q=[...(Z=X==null?void 0:X.audioTracks)!=null?Z:[]].find((J)=>J.enabled))==null?void 0:Q.id},set(Y,Z){let{media:Q}=Z;if(!(Q==null?void 0:Q.audioTracks)){console.warn("MediaChrome: Audio track selection not supported by this media.");return}let X=Y;for(let J of Q.audioTracks)J.enabled=X==J.id},mediaEvents:["emptied"],audioTracksEvents:["addtrack","removetrack","change"]},mediaIsFullscreen:{get(Y){return uV(Y)},set(Y,Z,Q){var X;if(!Y)cV(Z);else if(pV(Z),Q.detail)(X=Z.media)==null||X.focus()},rootEvents:["fullscreenchange","webkitfullscreenchange"],mediaEvents:["webkitbeginfullscreen","webkitendfullscreen","webkitpresentationmodechanged"]},mediaIsCasting:{get(Y){var Z;let{media:Q}=Y;if(!(Q==null?void 0:Q.remote)||((Z=Q.remote)==null?void 0:Z.state)==="disconnected")return!1;return!!Q.remote.state},set(Y,Z){var Q,X;let{media:J}=Z;if(!J)return;if(Y&&((Q=J.remote)==null?void 0:Q.state)!=="disconnected")return;if(!Y&&((X=J.remote)==null?void 0:X.state)!=="connected")return;if(typeof J.remote.prompt!=="function"){console.warn("MediaChrome: Casting is not supported in this environment");return}J.remote.prompt().catch(()=>{})},remoteEvents:["connect","connecting","disconnect"]},mediaIsAirplaying:{get(){return!1},set(Y,Z){let{media:Q}=Z;if(!Q)return;if(!(Q.webkitShowPlaybackTargetPicker&&P.WebKitPlaybackTargetAvailabilityEvent)){console.error("MediaChrome: received a request to select AirPlay but AirPlay is not supported in this environment");return}Q.webkitShowPlaybackTargetPicker()},mediaEvents:["webkitcurrentplaybacktargetiswirelesschanged"]},mediaFullscreenUnavailable:{get(Y){let{media:Z}=Y;if(!dV||!S4(Z))return g1.UNSUPPORTED;return}},mediaPipUnavailable:{get(Y){let{media:Z}=Y;if(!lV||!I4(Z))return g1.UNSUPPORTED;else if(Z==null?void 0:Z.disablePictureInPicture)return g1.UNAVAILABLE;return}},mediaVolumeUnavailable:{get(Y){let{media:Z}=Y;if(YX===!1||(Z==null?void 0:Z.volume)==null)return g1.UNSUPPORTED;return},stateOwnersUpdateHandlers:[(Y)=>{if(YX==null)iD.then((Z)=>Y(Z?void 0:g1.UNSUPPORTED))}]},mediaCastUnavailable:{get(Y,{availability:Z="not-available"}={}){var Q;let{media:X}=Y;if(!sV||!((Q=X==null?void 0:X.remote)==null?void 0:Q.state))return g1.UNSUPPORTED;if(Z==null||Z==="available")return;return g1.UNAVAILABLE},stateOwnersUpdateHandlers:[(Y,Z)=>{var Q;let{media:X}=Z;if(!X)return;if(!(X.disableRemotePlayback||X.hasAttribute("disableremoteplayback")))(Q=X==null?void 0:X.remote)==null||Q.watchAvailability((W)=>{Y({availability:W?"available":"not-available"})}).catch((W)=>{if(W.name==="NotSupportedError")Y({availability:null});else Y({availability:"not-available"})});return()=>{var W;(W=X==null?void 0:X.remote)==null||W.cancelWatchAvailability().catch(()=>{})}}]},mediaAirplayUnavailable:{get(Y,Z){if(!nV)return g1.UNSUPPORTED;if((Z==null?void 0:Z.availability)==="not-available")return g1.UNAVAILABLE;return},mediaEvents:["webkitplaybacktargetavailabilitychanged"],stateOwnersUpdateHandlers:[(Y,Z)=>{var Q;let{media:X}=Z;if(!X)return;if(!(X.disableRemotePlayback||X.hasAttribute("disableremoteplayback")))(Q=X==null?void 0:X.remote)==null||Q.watchAvailability((W)=>{Y({availability:W?"available":"not-available"})}).catch((W)=>{if(W.name==="NotSupportedError")Y({availability:null});else Y({availability:"not-available"})});return()=>{var W;(W=X==null?void 0:X.remote)==null||W.cancelWatchAvailability().catch(()=>{})}}]},mediaRenditionUnavailable:{get(Y){var Z;let{media:Q}=Y;if(!(Q==null?void 0:Q.videoRenditions))return g1.UNSUPPORTED;if(!((Z=Q.videoRenditions)==null?void 0:Z.length))return g1.UNAVAILABLE;return},mediaEvents:["emptied","loadstart"],videoRenditionsEvents:["addrendition","removerendition"]},mediaAudioTrackUnavailable:{get(Y){var Z,Q;let{media:X}=Y;if(!(X==null?void 0:X.audioTracks))return g1.UNSUPPORTED;if(((Q=(Z=X.audioTracks)==null?void 0:Z.length)!=null?Q:0)<=1)return g1.UNAVAILABLE;return},mediaEvents:["emptied","loadstart"],audioTracksEvents:["addtrack","removetrack"]},mediaLang:{get(Y){let{options:{mediaLang:Z}={}}=Y;return Z!=null?Z:"en"}}};var rV={[b.MEDIA_PREVIEW_REQUEST](Y,Z,{detail:Q}){var X,J,W;let{media:q}=Z,z=Q!=null?Q:void 0,H=void 0,E=void 0;if(q&&z!=null){let[V]=I7(q,{kind:P1.METADATA,label:"thumbnails"}),F=Array.prototype.find.call((X=V==null?void 0:V.cues)!=null?X:[],(R,B,$)=>{if(B===0)return R.endTime>z;if(B===$.length-1)return R.startTime<=z;return R.startTime<=z&&R.endTime>z});if(F){let R=!/'^(?:[a-z]+:)?\/\//i.test(F.text)?(J=q==null?void 0:q.querySelector('track[label="thumbnails"]'))==null?void 0:J.src:void 0,B=new URL(F.text,R);E=new URLSearchParams(B.hash).get("#xywh").split(",").map((L)=>+L),H=B.href}}let K=Y.mediaDuration.get(Z),U=(W=Y.mediaChaptersCues.get(Z).find((V,F,R)=>{if(F===R.length-1&&K===V.endTime)return V.startTime<=z&&V.endTime>=z;return V.startTime<=z&&V.endTime>z}))==null?void 0:W.text;if(Q!=null&&U==null)U="";return{mediaPreviewTime:z,mediaPreviewImage:H,mediaPreviewCoords:E,mediaPreviewChapter:U}},[b.MEDIA_PAUSE_REQUEST](Y,Z){Y.mediaPaused.set(!0,Z)},[b.MEDIA_PLAY_REQUEST](Y,Z){var Q,X,J,W;let q="mediaPaused",z=!1,H=Y.mediaStreamType.get(Z)===q8.LIVE,E=!((Q=Z.options)==null?void 0:Q.noAutoSeekToLive),K=Y.mediaTargetLiveWindow.get(Z)>0;if(H&&E&&!K){let G=(X=Y.mediaSeekable.get(Z))==null?void 0:X[1];if(G){let U=(W=(J=Z.options)==null?void 0:J.seekToLiveOffset)!=null?W:0,V=G-U;Y.mediaCurrentTime.set(V,Z)}}Y.mediaPaused.set(!1,Z)},[b.MEDIA_PLAYBACK_RATE_REQUEST](Y,Z,{detail:Q}){let J=Q;Y.mediaPlaybackRate.set(J,Z)},[b.MEDIA_MUTE_REQUEST](Y,Z){Y.mediaMuted.set(!0,Z)},[b.MEDIA_UNMUTE_REQUEST](Y,Z){if(!Y.mediaVolume.get(Z))Y.mediaVolume.set(0.25,Z);Y.mediaMuted.set(!1,Z)},[b.MEDIA_LOOP_REQUEST](Y,Z,{detail:Q}){let J=!!Q;return Y.mediaLoop.set(J,Z),{mediaLoop:J}},[b.MEDIA_VOLUME_REQUEST](Y,Z,{detail:Q}){let J=Q;if(J&&Y.mediaMuted.get(Z))Y.mediaMuted.set(!1,Z);Y.mediaVolume.set(J,Z)},[b.MEDIA_SEEK_REQUEST](Y,Z,{detail:Q}){let J=Q;Y.mediaCurrentTime.set(J,Z)},[b.MEDIA_SEEK_TO_LIVE_REQUEST](Y,Z){var Q,X,J;let W="mediaCurrentTime",q=(Q=Y.mediaSeekable.get(Z))==null?void 0:Q[1];if(Number.isNaN(Number(q)))return;let z=(J=(X=Z.options)==null?void 0:X.seekToLiveOffset)!=null?J:0,H=q-z;Y.mediaCurrentTime.set(H,Z)},[b.MEDIA_SHOW_SUBTITLES_REQUEST](Y,Z,{detail:Q}){var X;let{options:J}=Z,W=f9(Z),q=M4(Q),z=(X=q[0])==null?void 0:X.language;if(z&&!J.noSubtitlesLangPref)P.localStorage.setItem("media-chrome-pref-subtitles-lang",z);x7(o6.SHOWING,W,q)},[b.MEDIA_DISABLE_SUBTITLES_REQUEST](Y,Z,{detail:Q}){let X=f9(Z),J=Q!=null?Q:[];x7(o6.DISABLED,X,J)},[b.MEDIA_TOGGLE_SUBTITLES_REQUEST](Y,Z,{detail:Q}){tQ(Z,Q)},[b.MEDIA_RENDITION_REQUEST](Y,Z,{detail:Q}){let J=Q;Y.mediaRenditionSelected.set(J,Z)},[b.MEDIA_AUDIO_TRACK_REQUEST](Y,Z,{detail:Q}){let J=Q;Y.mediaAudioTrackEnabled.set(J,Z)},[b.MEDIA_ENTER_PIP_REQUEST](Y,Z){if(Y.mediaIsFullscreen.get(Z))Y.mediaIsFullscreen.set(!1,Z);Y.mediaIsPip.set(!0,Z)},[b.MEDIA_EXIT_PIP_REQUEST](Y,Z){Y.mediaIsPip.set(!1,Z)},[b.MEDIA_ENTER_FULLSCREEN_REQUEST](Y,Z,Q){if(Y.mediaIsPip.get(Z))Y.mediaIsPip.set(!1,Z);Y.mediaIsFullscreen.set(!0,Z,Q)},[b.MEDIA_EXIT_FULLSCREEN_REQUEST](Y,Z){Y.mediaIsFullscreen.set(!1,Z)},[b.MEDIA_ENTER_CAST_REQUEST](Y,Z){if(Y.mediaIsFullscreen.get(Z))Y.mediaIsFullscreen.set(!1,Z);Y.mediaIsCasting.set(!0,Z)},[b.MEDIA_EXIT_CAST_REQUEST](Y,Z){Y.mediaIsCasting.set(!1,Z)},[b.MEDIA_AIRPLAY_REQUEST](Y,Z){Y.mediaIsAirplaying.set(!0,Z)}};var aV=({media:Y,fullscreenElement:Z,documentElement:Q,stateMediator:X=y9,requestMap:J=rV,options:W={},monitorStateOwnersOnlyWithSubscriptions:q=!0})=>{let z=[],H={options:{...W}},E=Object.freeze({mediaPreviewTime:void 0,mediaPreviewImage:void 0,mediaPreviewCoords:void 0,mediaPreviewChapter:void 0}),K=(R)=>{if(R==null)return;if(eQ(R,E))return;E=Object.freeze({...E,...R}),z.forEach((B)=>B(E))},G=()=>{let R=Object.entries(X).reduce((B,[$,{get:L}])=>{return B[$]=L(H),B},{});K(R)},U={},V=void 0,F=async(R,B)=>{var $,L,O,j,w,D,M,C,I,x,f,_,o,n,g,l;let c=!!V;if(V={...H,...V!=null?V:{},...R},c)return;await iV(...Object.values(R));let s=z.length>0&&B===0&&q,Q0=H.media!==V.media,p=(($=H.media)==null?void 0:$.textTracks)!==((L=V.media)==null?void 0:L.textTracks),d=((O=H.media)==null?void 0:O.videoRenditions)!==((j=V.media)==null?void 0:j.videoRenditions),e=((w=H.media)==null?void 0:w.audioTracks)!==((D=V.media)==null?void 0:D.audioTracks),F0=((M=H.media)==null?void 0:M.remote)!==((C=V.media)==null?void 0:C.remote),U0=H.documentElement!==V.documentElement,N0=!!H.media&&(Q0||s),o0=!!((I=H.media)==null?void 0:I.textTracks)&&(p||s),s0=!!((x=H.media)==null?void 0:x.videoRenditions)&&(d||s),M1=!!((f=H.media)==null?void 0:f.audioTracks)&&(e||s),p1=!!((_=H.media)==null?void 0:_.remote)&&(F0||s),M8=!!H.documentElement&&(U0||s),OY=N0||o0||s0||M1||p1||M8,x8=z.length===0&&B===1&&q,e7=!!V.media&&(Q0||x8),qW=!!((o=V.media)==null?void 0:o.textTracks)&&(p||x8),w0=!!((n=V.media)==null?void 0:n.videoRenditions)&&(d||x8),H1=!!((g=V.media)==null?void 0:g.audioTracks)&&(e||x8),x1=!!((l=V.media)==null?void 0:l.remote)&&(F0||x8),I8=!!V.documentElement&&(U0||x8),T1=e7||qW||w0||H1||x1||I8;if(!(OY||T1)){Object.entries(V).forEach(([j0,S6])=>{H[j0]=S6}),G(),V=void 0;return}Object.entries(X).forEach(([j0,{get:S6,mediaEvents:Y9=[],textTracksEvents:Y2=[],videoRenditionsEvents:K7=[],audioTracksEvents:Z2=[],remoteEvents:HW=[],rootEvents:Q2=[],stateOwnersUpdateHandlers:X2=[]}])=>{if(!U[j0])U[j0]={};let z1=(m0)=>{let Y1=S6(H,m0);K({[j0]:Y1})},F1;F1=U[j0].mediaEvents,Y9.forEach((m0)=>{if(F1&&N0)H.media.removeEventListener(m0,F1),U[j0].mediaEvents=void 0;if(e7)V.media.addEventListener(m0,z1),U[j0].mediaEvents=z1}),F1=U[j0].textTracksEvents,Y2.forEach((m0)=>{var Y1,U8;if(F1&&o0)(Y1=H.media.textTracks)==null||Y1.removeEventListener(m0,F1),U[j0].textTracksEvents=void 0;if(qW)(U8=V.media.textTracks)==null||U8.addEventListener(m0,z1),U[j0].textTracksEvents=z1}),F1=U[j0].videoRenditionsEvents,K7.forEach((m0)=>{var Y1,U8;if(F1&&s0)(Y1=H.media.videoRenditions)==null||Y1.removeEventListener(m0,F1),U[j0].videoRenditionsEvents=void 0;if(w0)(U8=V.media.videoRenditions)==null||U8.addEventListener(m0,z1),U[j0].videoRenditionsEvents=z1}),F1=U[j0].audioTracksEvents,Z2.forEach((m0)=>{var Y1,U8;if(F1&&M1)(Y1=H.media.audioTracks)==null||Y1.removeEventListener(m0,F1),U[j0].audioTracksEvents=void 0;if(H1)(U8=V.media.audioTracks)==null||U8.addEventListener(m0,z1),U[j0].audioTracksEvents=z1}),F1=U[j0].remoteEvents,HW.forEach((m0)=>{var Y1,U8;if(F1&&p1)(Y1=H.media.remote)==null||Y1.removeEventListener(m0,F1),U[j0].remoteEvents=void 0;if(x1)(U8=V.media.remote)==null||U8.addEventListener(m0,z1),U[j0].remoteEvents=z1}),F1=U[j0].rootEvents,Q2.forEach((m0)=>{if(F1&&M8)H.documentElement.removeEventListener(m0,F1),U[j0].rootEvents=void 0;if(I8)V.documentElement.addEventListener(m0,z1),U[j0].rootEvents=z1});let J2=U[j0].stateOwnersUpdateHandlers;if(J2&&OY)(Array.isArray(J2)?J2:[J2]).forEach((Y1)=>{if(typeof Y1==="function")Y1()});if(T1){let m0=X2.map((Y1)=>Y1(z1,V)).filter((Y1)=>typeof Y1==="function");U[j0].stateOwnersUpdateHandlers=m0.length===1?m0[0]:m0}else if(OY)U[j0].stateOwnersUpdateHandlers=void 0}),Object.entries(V).forEach(([j0,S6])=>{H[j0]=S6}),G(),V=void 0};return F({media:Y,fullscreenElement:Z,documentElement:Q,options:W}),{dispatch(R){let{type:B,detail:$}=R;if(J[B]&&E.mediaErrorCode==null){K(J[B](X,H,R));return}if(B==="mediaelementchangerequest")F({media:$});else if(B==="fullscreenelementchangerequest")F({fullscreenElement:$});else if(B==="documentelementchangerequest")F({documentElement:$});else if(B==="optionschangerequest")Object.entries($!=null?$:{}).forEach(([L,O])=>{H.options[L]=O}),G()},getState(){return E},subscribe(R){return F({},z.length+1),z.push(R),R(E),()=>{let B=z.indexOf(R);if(B>=0)F({},z.length-1),z.splice(B,1)}}}};var g4=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},H0=(Y,Z,Q)=>{return g4(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},z8=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},u8=(Y,Z,Q,X)=>{return g4(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},o8=(Y,Z,Q)=>{return g4(Y,Z,"access private method"),Q},n6,EZ,P0,T7,KZ,m8,ZX,GZ,QX,h4,h7,k9,XX,f4,y4,JU,WU=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Enter"," ","f","m","k","c","l","j",">","<","p"],tV=10,eV=0.025,YU=0.25,tD=0.25,eD=2,m={DEFAULT_SUBTITLES:"defaultsubtitles",DEFAULT_STREAM_TYPE:"defaultstreamtype",DEFAULT_DURATION:"defaultduration",FULLSCREEN_ELEMENT:"fullscreenelement",HOTKEYS:"hotkeys",KEYBOARD_BACKWARD_SEEK_OFFSET:"keyboardbackwardseekoffset",KEYBOARD_FORWARD_SEEK_OFFSET:"keyboardforwardseekoffset",KEYBOARD_DOWN_VOLUME_STEP:"keyboarddownvolumestep",KEYBOARD_UP_VOLUME_STEP:"keyboardupvolumestep",KEYS_USED:"keysused",LANG:"lang",LOOP:"loop",LIVE_EDGE_OFFSET:"liveedgeoffset",NO_AUTO_SEEK_TO_LIVE:"noautoseektolive",NO_DEFAULT_STORE:"nodefaultstore",NO_HOTKEYS:"nohotkeys",NO_MUTED_PREF:"nomutedpref",NO_SUBTITLES_LANG_PREF:"nosubtitleslangpref",NO_VOLUME_PREF:"novolumepref",SEEK_TO_LIVE_OFFSET:"seektoliveoffset"};class b4 extends S9{constructor(){super();z8(this,QX),z8(this,h7),z8(this,XX),z8(this,y4),this.mediaStateReceivers=[],this.associatedElementSubscriptions=new Map,z8(this,n6,new C7(this,m.HOTKEYS)),z8(this,EZ,void 0),z8(this,P0,void 0),z8(this,T7,null),z8(this,KZ,void 0),z8(this,m8,void 0),z8(this,ZX,(Z)=>{var Q;(Q=H0(this,P0))==null||Q.dispatch(Z)}),z8(this,GZ,void 0),this.associateElement(this);let Y={};u8(this,KZ,(Z)=>{Object.entries(Z).forEach(([Q,X])=>{if(Q in Y&&Y[Q]===X)return;this.propagateMediaState(Q,X);let J=Q.toLowerCase(),W=new P.CustomEvent(UV[J],{composed:!0,detail:X});this.dispatchEvent(W)}),Y=Z}),this.hasAttribute(m.NO_HOTKEYS)?this.disableHotkeys():this.enableHotkeys()}static get observedAttributes(){return super.observedAttributes.concat(m.NO_HOTKEYS,m.HOTKEYS,m.DEFAULT_STREAM_TYPE,m.DEFAULT_SUBTITLES,m.DEFAULT_DURATION,m.NO_MUTED_PREF,m.NO_VOLUME_PREF,m.LANG,m.LOOP)}get mediaStore(){return H0(this,P0)}set mediaStore(Y){var Z,Q;if(H0(this,P0))(Z=H0(this,m8))==null||Z.call(this),u8(this,m8,void 0);if(u8(this,P0,Y),!H0(this,P0)&&!this.hasAttribute(m.NO_DEFAULT_STORE)){o8(this,QX,h4).call(this);return}u8(this,m8,(Q=H0(this,P0))==null?void 0:Q.subscribe(H0(this,KZ)))}get fullscreenElement(){var Y;return(Y=H0(this,EZ))!=null?Y:this}set fullscreenElement(Y){var Z;if(this.hasAttribute(m.FULLSCREEN_ELEMENT))this.removeAttribute(m.FULLSCREEN_ELEMENT);u8(this,EZ,Y),(Z=H0(this,P0))==null||Z.dispatch({type:"fullscreenelementchangerequest",detail:this.fullscreenElement})}get defaultSubtitles(){return W0(this,m.DEFAULT_SUBTITLES)}set defaultSubtitles(Y){q0(this,m.DEFAULT_SUBTITLES,Y)}get defaultStreamType(){return K0(this,m.DEFAULT_STREAM_TYPE)}set defaultStreamType(Y){G0(this,m.DEFAULT_STREAM_TYPE,Y)}get defaultDuration(){return B0(this,m.DEFAULT_DURATION)}set defaultDuration(Y){D0(this,m.DEFAULT_DURATION,Y)}get noHotkeys(){return W0(this,m.NO_HOTKEYS)}set noHotkeys(Y){q0(this,m.NO_HOTKEYS,Y)}get keysUsed(){return K0(this,m.KEYS_USED)}set keysUsed(Y){G0(this,m.KEYS_USED,Y)}get liveEdgeOffset(){return B0(this,m.LIVE_EDGE_OFFSET)}set liveEdgeOffset(Y){D0(this,m.LIVE_EDGE_OFFSET,Y)}get noAutoSeekToLive(){return W0(this,m.NO_AUTO_SEEK_TO_LIVE)}set noAutoSeekToLive(Y){q0(this,m.NO_AUTO_SEEK_TO_LIVE,Y)}get noVolumePref(){return W0(this,m.NO_VOLUME_PREF)}set noVolumePref(Y){q0(this,m.NO_VOLUME_PREF,Y)}get noMutedPref(){return W0(this,m.NO_MUTED_PREF)}set noMutedPref(Y){q0(this,m.NO_MUTED_PREF,Y)}get noSubtitlesLangPref(){return W0(this,m.NO_SUBTITLES_LANG_PREF)}set noSubtitlesLangPref(Y){q0(this,m.NO_SUBTITLES_LANG_PREF,Y)}get noDefaultStore(){return W0(this,m.NO_DEFAULT_STORE)}set noDefaultStore(Y){q0(this,m.NO_DEFAULT_STORE,Y)}attributeChangedCallback(Y,Z,Q){var X,J,W,q,z,H,E,K,G,U,V,F;if(super.attributeChangedCallback(Y,Z,Q),Y===m.NO_HOTKEYS){if(Q!==Z&&Q===""){if(this.hasAttribute(m.HOTKEYS))console.warn("Media Chrome: Both `hotkeys` and `nohotkeys` have been set. All hotkeys will be disabled.");this.disableHotkeys()}else if(Q!==Z&&Q===null)this.enableHotkeys()}else if(Y===m.HOTKEYS)H0(this,n6).value=Q;else if(Y===m.DEFAULT_SUBTITLES&&Q!==Z)(X=H0(this,P0))==null||X.dispatch({type:"optionschangerequest",detail:{defaultSubtitles:this.hasAttribute(m.DEFAULT_SUBTITLES)}});else if(Y===m.DEFAULT_STREAM_TYPE)(W=H0(this,P0))==null||W.dispatch({type:"optionschangerequest",detail:{defaultStreamType:(J=this.getAttribute(m.DEFAULT_STREAM_TYPE))!=null?J:void 0}});else if(Y===m.LIVE_EDGE_OFFSET)(q=H0(this,P0))==null||q.dispatch({type:"optionschangerequest",detail:{liveEdgeOffset:this.hasAttribute(m.LIVE_EDGE_OFFSET)?+this.getAttribute(m.LIVE_EDGE_OFFSET):void 0,seekToLiveOffset:!this.hasAttribute(m.SEEK_TO_LIVE_OFFSET)?+this.getAttribute(m.LIVE_EDGE_OFFSET):void 0}});else if(Y===m.SEEK_TO_LIVE_OFFSET)(z=H0(this,P0))==null||z.dispatch({type:"optionschangerequest",detail:{seekToLiveOffset:this.hasAttribute(m.SEEK_TO_LIVE_OFFSET)?+this.getAttribute(m.SEEK_TO_LIVE_OFFSET):void 0}});else if(Y===m.NO_AUTO_SEEK_TO_LIVE)(H=H0(this,P0))==null||H.dispatch({type:"optionschangerequest",detail:{noAutoSeekToLive:this.hasAttribute(m.NO_AUTO_SEEK_TO_LIVE)}});else if(Y===m.FULLSCREEN_ELEMENT){let R=Q?(E=this.getRootNode())==null?void 0:E.getElementById(Q):void 0;u8(this,EZ,R),(K=H0(this,P0))==null||K.dispatch({type:"fullscreenelementchangerequest",detail:this.fullscreenElement})}else if(Y===m.LANG&&Q!==Z)DV(Q),(G=H0(this,P0))==null||G.dispatch({type:"optionschangerequest",detail:{mediaLang:Q}});else if(Y===m.LOOP&&Q!==Z)(U=H0(this,P0))==null||U.dispatch({type:b.MEDIA_LOOP_REQUEST,detail:Q!=null});else if(Y===m.NO_VOLUME_PREF&&Q!==Z)(V=H0(this,P0))==null||V.dispatch({type:"optionschangerequest",detail:{noVolumePref:this.hasAttribute(m.NO_VOLUME_PREF)}});else if(Y===m.NO_MUTED_PREF&&Q!==Z)(F=H0(this,P0))==null||F.dispatch({type:"optionschangerequest",detail:{noMutedPref:this.hasAttribute(m.NO_MUTED_PREF)}})}connectedCallback(){var Y,Z;if(!H0(this,P0)&&!this.hasAttribute(m.NO_DEFAULT_STORE))o8(this,QX,h4).call(this);if((Y=H0(this,P0))==null||Y.dispatch({type:"documentelementchangerequest",detail:f0}),super.connectedCallback(),H0(this,P0)&&!H0(this,m8))u8(this,m8,(Z=H0(this,P0))==null?void 0:Z.subscribe(H0(this,KZ)));if(H0(this,GZ)!==void 0&&H0(this,P0)&&this.media)setTimeout(()=>{var Q,X,J;if((X=(Q=this.media)==null?void 0:Q.textTracks)==null?void 0:X.length)(J=H0(this,P0))==null||J.dispatch({type:b.MEDIA_TOGGLE_SUBTITLES_REQUEST,detail:H0(this,GZ)})},0);this.hasAttribute(m.NO_HOTKEYS)?this.disableHotkeys():this.enableHotkeys()}disconnectedCallback(){var Y,Z,Q,X,J;if((Y=super.disconnectedCallback)==null||Y.call(this),H0(this,P0)){let W=H0(this,P0).getState();u8(this,GZ,!!((Z=W.mediaSubtitlesShowing)==null?void 0:Z.length)),(Q=H0(this,P0))==null||Q.dispatch({type:"documentelementchangerequest",detail:void 0}),(X=H0(this,P0))==null||X.dispatch({type:b.MEDIA_TOGGLE_SUBTITLES_REQUEST,detail:!1})}if(H0(this,m8))(J=H0(this,m8))==null||J.call(this),u8(this,m8,void 0)}mediaSetCallback(Y){var Z;if(super.mediaSetCallback(Y),(Z=H0(this,P0))==null||Z.dispatch({type:"mediaelementchangerequest",detail:Y}),!Y.hasAttribute("tabindex"))Y.tabIndex=-1}mediaUnsetCallback(Y){var Z;super.mediaUnsetCallback(Y),(Z=H0(this,P0))==null||Z.dispatch({type:"mediaelementchangerequest",detail:void 0})}propagateMediaState(Y,Z){XU(this.mediaStateReceivers,Y,Z)}associateElement(Y){if(!Y)return;let{associatedElementSubscriptions:Z}=this;if(Z.has(Y))return;let Q=this.registerMediaStateReceiver.bind(this),X=this.unregisterMediaStateReceiver.bind(this),J=Ww(Y,Q,X);Object.values(b).forEach((W)=>{Y.addEventListener(W,H0(this,ZX))}),Z.set(Y,J)}unassociateElement(Y){if(!Y)return;let{associatedElementSubscriptions:Z}=this;if(!Z.has(Y))return;Z.get(Y)(),Z.delete(Y),Object.values(b).forEach((X)=>{Y.removeEventListener(X,H0(this,ZX))})}registerMediaStateReceiver(Y){if(!Y)return;let Z=this.mediaStateReceivers;if(Z.indexOf(Y)>-1)return;if(Z.push(Y),H0(this,P0))Object.entries(H0(this,P0).getState()).forEach(([X,J])=>{XU([Y],X,J)})}unregisterMediaStateReceiver(Y){let Z=this.mediaStateReceivers,Q=Z.indexOf(Y);if(Q<0)return;Z.splice(Q,1)}enableHotkeys(){this.addEventListener("keydown",o8(this,XX,f4))}disableHotkeys(){this.removeEventListener("keydown",o8(this,XX,f4)),this.removeEventListener("keyup",o8(this,h7,k9))}get hotkeys(){return K0(this,m.HOTKEYS)}set hotkeys(Y){G0(this,m.HOTKEYS,Y)}keyboardShortcutHandler(Y){var Z,Q,X,J,W,q,z,H,E;let K=Y.target;if(((X=(Q=(Z=K.getAttribute(m.KEYS_USED))==null?void 0:Z.split(" "))!=null?Q:K==null?void 0:K.keysUsed)!=null?X:[]).map((B)=>B==="Space"?" ":B).filter(Boolean).includes(Y.key))return;let U,V,F;if(H0(this,n6).contains(`no${Y.key.toLowerCase()}`))return;if(Y.key===" "&&H0(this,n6).contains("nospace"))return;if(Y.shiftKey&&(Y.key==="/"||Y.key==="?")&&H0(this,n6).contains("noshift+/"))return;switch(Y.key){case" ":case"k":U=H0(this,P0).getState().mediaPaused?b.MEDIA_PLAY_REQUEST:b.MEDIA_PAUSE_REQUEST,this.dispatchEvent(new P.CustomEvent(U,{composed:!0,bubbles:!0}));break;case"m":U=this.mediaStore.getState().mediaVolumeLevel==="off"?b.MEDIA_UNMUTE_REQUEST:b.MEDIA_MUTE_REQUEST,this.dispatchEvent(new P.CustomEvent(U,{composed:!0,bubbles:!0}));break;case"f":U=this.mediaStore.getState().mediaIsFullscreen?b.MEDIA_EXIT_FULLSCREEN_REQUEST:b.MEDIA_ENTER_FULLSCREEN_REQUEST,this.dispatchEvent(new P.CustomEvent(U,{composed:!0,bubbles:!0}));break;case"c":this.dispatchEvent(new P.CustomEvent(b.MEDIA_TOGGLE_SUBTITLES_REQUEST,{composed:!0,bubbles:!0}));break;case"ArrowLeft":case"j":{let B=this.hasAttribute(m.KEYBOARD_BACKWARD_SEEK_OFFSET)?+this.getAttribute(m.KEYBOARD_BACKWARD_SEEK_OFFSET):tV;V=Math.max(((J=this.mediaStore.getState().mediaCurrentTime)!=null?J:0)-B,0),F=new P.CustomEvent(b.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:V}),this.dispatchEvent(F);break}case"ArrowRight":case"l":{let B=this.hasAttribute(m.KEYBOARD_FORWARD_SEEK_OFFSET)?+this.getAttribute(m.KEYBOARD_FORWARD_SEEK_OFFSET):tV;V=Math.max(((W=this.mediaStore.getState().mediaCurrentTime)!=null?W:0)+B,0),F=new P.CustomEvent(b.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:V}),this.dispatchEvent(F);break}case"ArrowUp":{let B=this.hasAttribute(m.KEYBOARD_UP_VOLUME_STEP)?+this.getAttribute(m.KEYBOARD_UP_VOLUME_STEP):eV;V=Math.min(((q=this.mediaStore.getState().mediaVolume)!=null?q:1)+B,1),F=new P.CustomEvent(b.MEDIA_VOLUME_REQUEST,{composed:!0,bubbles:!0,detail:V}),this.dispatchEvent(F);break}case"ArrowDown":{let B=this.hasAttribute(m.KEYBOARD_DOWN_VOLUME_STEP)?+this.getAttribute(m.KEYBOARD_DOWN_VOLUME_STEP):eV;V=Math.max(((z=this.mediaStore.getState().mediaVolume)!=null?z:1)-B,0),F=new P.CustomEvent(b.MEDIA_VOLUME_REQUEST,{composed:!0,bubbles:!0,detail:V}),this.dispatchEvent(F);break}case"<":{let B=(H=this.mediaStore.getState().mediaPlaybackRate)!=null?H:1;V=Math.max(B-YU,tD).toFixed(2),F=new P.CustomEvent(b.MEDIA_PLAYBACK_RATE_REQUEST,{composed:!0,bubbles:!0,detail:V}),this.dispatchEvent(F);break}case">":{let B=(E=this.mediaStore.getState().mediaPlaybackRate)!=null?E:1;V=Math.min(B+YU,eD).toFixed(2),F=new P.CustomEvent(b.MEDIA_PLAYBACK_RATE_REQUEST,{composed:!0,bubbles:!0,detail:V}),this.dispatchEvent(F);break}case"/":case"?":{if(Y.shiftKey)o8(this,y4,JU).call(this);break}case"p":{U=this.mediaStore.getState().mediaIsPip?b.MEDIA_EXIT_PIP_REQUEST:b.MEDIA_ENTER_PIP_REQUEST,F=new P.CustomEvent(U,{composed:!0,bubbles:!0}),this.dispatchEvent(F);break}default:break}}}n6=new WeakMap;EZ=new WeakMap;P0=new WeakMap;T7=new WeakMap;KZ=new WeakMap;m8=new WeakMap;ZX=new WeakMap;GZ=new WeakMap;QX=new WeakSet;h4=function(){var Y;this.mediaStore=aV({media:this.media,fullscreenElement:this.fullscreenElement,options:{defaultSubtitles:this.hasAttribute(m.DEFAULT_SUBTITLES),defaultDuration:this.hasAttribute(m.DEFAULT_DURATION)?+this.getAttribute(m.DEFAULT_DURATION):void 0,defaultStreamType:(Y=this.getAttribute(m.DEFAULT_STREAM_TYPE))!=null?Y:void 0,liveEdgeOffset:this.hasAttribute(m.LIVE_EDGE_OFFSET)?+this.getAttribute(m.LIVE_EDGE_OFFSET):void 0,seekToLiveOffset:this.hasAttribute(m.SEEK_TO_LIVE_OFFSET)?+this.getAttribute(m.SEEK_TO_LIVE_OFFSET):this.hasAttribute(m.LIVE_EDGE_OFFSET)?+this.getAttribute(m.LIVE_EDGE_OFFSET):void 0,noAutoSeekToLive:this.hasAttribute(m.NO_AUTO_SEEK_TO_LIVE),noVolumePref:this.hasAttribute(m.NO_VOLUME_PREF),noMutedPref:this.hasAttribute(m.NO_MUTED_PREF),noSubtitlesLangPref:this.hasAttribute(m.NO_SUBTITLES_LANG_PREF)}})};h7=new WeakSet;k9=function(Y){let{key:Z,shiftKey:Q}=Y;if(!(Q&&(Z==="/"||Z==="?")||WU.includes(Z))){this.removeEventListener("keyup",o8(this,h7,k9));return}this.keyboardShortcutHandler(Y)};XX=new WeakSet;f4=function(Y){var Z;let{metaKey:Q,altKey:X,key:J,shiftKey:W}=Y,q=W&&(J==="/"||J==="?");if(q&&((Z=H0(this,T7))==null?void 0:Z.open)){this.removeEventListener("keyup",o8(this,h7,k9));return}if(Q||X||!q&&!WU.includes(J)){this.removeEventListener("keyup",o8(this,h7,k9));return}let z=Y.target,H=z instanceof HTMLElement&&(z.tagName.toLowerCase()==="media-volume-range"||z.tagName.toLowerCase()==="media-time-range");if([" ","ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(J)&&!(H0(this,n6).contains(`no${J.toLowerCase()}`)||J===" "&&H0(this,n6).contains("nospace"))&&!H)Y.preventDefault();this.addEventListener("keyup",o8(this,h7,k9),{once:!0})};y4=new WeakSet;JU=function(){if(!H0(this,T7))u8(this,T7,f0.createElement("media-keyboard-shortcuts-dialog")),this.appendChild(H0(this,T7));H0(this,T7).open=!0};var Yw=Object.values(A),Zw=Object.values(R4),qU=(Y)=>{var Z,Q,X,J;let{observedAttributes:W}=Y.constructor;if(!W&&((Z=Y.nodeName)==null?void 0:Z.includes("-")))P.customElements.upgrade(Y),{observedAttributes:W}=Y.constructor;let q=(J=(X=(Q=Y==null?void 0:Y.getAttribute)==null?void 0:Q.call(Y,R0.MEDIA_CHROME_ATTRIBUTES))==null?void 0:X.split)==null?void 0:J.call(X,/\s+/);if(!Array.isArray(W||q))return[];return(W||q).filter((z)=>Yw.includes(z))},Qw=(Y)=>{var Z,Q;if(((Z=Y.nodeName)==null?void 0:Z.includes("-"))&&!!P.customElements.get((Q=Y.nodeName)==null?void 0:Q.toLowerCase())&&!(Y instanceof P.customElements.get(Y.nodeName.toLowerCase())))P.customElements.upgrade(Y);return Zw.some((X)=>(X in Y))},k4=(Y)=>{return Qw(Y)||!!qU(Y).length},ZU=(Y)=>{var Z;return(Z=Y==null?void 0:Y.join)==null?void 0:Z.call(Y,":")},QU={[A.MEDIA_SUBTITLES_LIST]:A6,[A.MEDIA_SUBTITLES_SHOWING]:A6,[A.MEDIA_SEEKABLE]:ZU,[A.MEDIA_BUFFERED]:(Y)=>Y==null?void 0:Y.map(ZU).join(" "),[A.MEDIA_PREVIEW_COORDS]:(Y)=>Y==null?void 0:Y.join(" "),[A.MEDIA_RENDITION_LIST]:RV,[A.MEDIA_AUDIO_TRACK_LIST]:NV},Xw=async(Y,Z,Q)=>{var X,J;if(!Y.isConnected)await kQ(0);if(typeof Q==="boolean"||Q==null)return q0(Y,Z,Q);if(typeof Q==="number")return D0(Y,Z,Q);if(typeof Q==="string")return G0(Y,Z,Q);if(Array.isArray(Q)&&!Q.length)return Y.removeAttribute(Z);let W=(J=(X=QU[Z])==null?void 0:X.call(QU,Q))!=null?J:Q;return Y.setAttribute(Z,W)},Jw=(Y)=>{var Z;return!!((Z=Y.closest)==null?void 0:Z.call(Y,'*[slot="media"]'))},S7=(Y,Z)=>{if(Jw(Y))return;let Q=(J,W)=>{var q,z;if(k4(J))W(J);let{children:H=[]}=J!=null?J:{},E=(z=(q=J==null?void 0:J.shadowRoot)==null?void 0:q.children)!=null?z:[];[...H,...E].forEach((G)=>S7(G,W))},X=Y==null?void 0:Y.nodeName.toLowerCase();if(X.includes("-")&&!k4(Y)){P.customElements.whenDefined(X).then(()=>{Q(Y,Z)});return}Q(Y,Z)},XU=(Y,Z,Q)=>{Y.forEach((X)=>{if(Z in X){X[Z]=Q;return}let J=qU(X),W=Z.toLowerCase();if(!J.includes(W))return;Xw(X,W,Q)})},Ww=(Y,Z,Q)=>{S7(Y,Z);let X=(K)=>{var G;let U=(G=K==null?void 0:K.composedPath()[0])!=null?G:K.target;Z(U)},J=(K)=>{var G;let U=(G=K==null?void 0:K.composedPath()[0])!=null?G:K.target;Q(U)};Y.addEventListener(b.REGISTER_MEDIA_STATE_RECEIVER,X),Y.addEventListener(b.UNREGISTER_MEDIA_STATE_RECEIVER,J);let W=(K)=>{K.forEach((G)=>{let{addedNodes:U=[],removedNodes:V=[],type:F,target:R,attributeName:B}=G;if(F==="childList")Array.prototype.forEach.call(U,($)=>S7($,Z)),Array.prototype.forEach.call(V,($)=>S7($,Q));else if(F==="attributes"&&B===R0.MEDIA_CHROME_ATTRIBUTES)if(k4(R))Z(R);else Q(R)})},q=[],z=(K)=>{let G=K.target;if(G.name==="media")return;q.forEach((U)=>S7(U,Q)),q=[...G.assignedElements({flatten:!0})],q.forEach((U)=>S7(U,Z))};Y.addEventListener("slotchange",z);let H=new MutationObserver(W);return H.observe(Y,{childList:!0,attributes:!0,subtree:!0}),()=>{S7(Y,Q),Y.removeEventListener("slotchange",z),H.disconnect(),Y.removeEventListener(b.REGISTER_MEDIA_STATE_RECEIVER,X),Y.removeEventListener(b.UNREGISTER_MEDIA_STATE_RECEIVER,J)}};if(!P.customElements.get("media-controller"))P.customElements.define("media-controller",b4);var _4=b4;var g9={PLACEMENT:"placement",BOUNDS:"bounds"};function qw(Y){return`
`}class VZ extends P.HTMLElement{constructor(){super();if(this.updateXOffset=()=>{var Y;if(!vQ(this,{checkOpacity:!1,checkVisibilityCSS:!1}))return;let Z=this.placement;if(Z==="left"||Z==="right"){this.style.removeProperty("--media-tooltip-offset-x");return}let Q=getComputedStyle(this),X=(Y=c8(this,"#"+this.bounds))!=null?Y:p0(this);if(!X)return;let{x:J,width:W}=X.getBoundingClientRect(),{x:q,width:z}=this.getBoundingClientRect(),H=q+z,E=J+W,K=Q.getPropertyValue("--media-tooltip-offset-x"),G=K?parseFloat(K.replace("px","")):0,U=Q.getPropertyValue("--media-tooltip-container-margin"),V=U?parseFloat(U.replace("px","")):0,F=q-J+G-V,R=H-E+G+V;if(F<0){this.style.setProperty("--media-tooltip-offset-x",`${F}px`);return}if(R>0){this.style.setProperty("--media-tooltip-offset-x",`${R}px`);return}this.style.removeProperty("--media-tooltip-offset-x")},!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Y=u0(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(Y)}if(this.arrowEl=this.shadowRoot.querySelector("#arrow"),Object.prototype.hasOwnProperty.call(this,"placement")){let Y=this.placement;delete this.placement,this.placement=Y}}static get observedAttributes(){return[g9.PLACEMENT,g9.BOUNDS]}get placement(){return K0(this,g9.PLACEMENT)}set placement(Y){G0(this,g9.PLACEMENT,Y)}get bounds(){return K0(this,g9.BOUNDS)}set bounds(Y){G0(this,g9.BOUNDS,Y)}}VZ.shadowRootOptions={mode:"open"};VZ.getTemplateHTML=qw;if(!P.customElements.get("media-tooltip"))P.customElements.define("media-tooltip",VZ);var JX=VZ;var p4=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},J1=(Y,Z,Q)=>{return p4(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},b9=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},WX=(Y,Z,Q,X)=>{return p4(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},Hw=(Y,Z,Q)=>{return p4(Y,Z,"access private method"),Q},d8,v9,i6,_9,qX,v4,HU,s6={TOOLTIP_PLACEMENT:"tooltipplacement",DISABLED:"disabled",NO_TOOLTIP:"notooltip"};function zw(Y,Z={}){return` ${this.getSlotTemplateHTML(Y,Z)} `}function Ew(Y,Z){return` `}function Kw(){return""}class M0 extends P.HTMLElement{constructor(){super();if(b9(this,v4),b9(this,d8,void 0),this.preventClick=!1,this.tooltipEl=null,b9(this,v9,(Y)=>{if(!this.preventClick)this.handleClick(Y);setTimeout(J1(this,i6),0)}),b9(this,i6,()=>{var Y,Z;(Z=(Y=this.tooltipEl)==null?void 0:Y.updateXOffset)==null||Z.call(Y)}),b9(this,_9,(Y)=>{let{key:Z}=Y;if(!this.keysUsed.includes(Z)){this.removeEventListener("keyup",J1(this,_9));return}if(!this.preventClick)this.handleClick(Y)}),b9(this,qX,(Y)=>{let{metaKey:Z,altKey:Q,key:X}=Y;if(Z||Q||!this.keysUsed.includes(X)){this.removeEventListener("keyup",J1(this,_9));return}this.addEventListener("keyup",J1(this,_9),{once:!0})}),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Y=u0(this.attributes),Z=this.constructor.getTemplateHTML(Y);this.shadowRoot.setHTMLUnsafe?this.shadowRoot.setHTMLUnsafe(Z):this.shadowRoot.innerHTML=Z}this.tooltipEl=this.shadowRoot.querySelector("media-tooltip")}static get observedAttributes(){return["disabled",s6.TOOLTIP_PLACEMENT,R0.MEDIA_CONTROLLER,A.MEDIA_LANG]}enable(){this.addEventListener("click",J1(this,v9)),this.addEventListener("keydown",J1(this,qX)),this.tabIndex=0}disable(){this.removeEventListener("click",J1(this,v9)),this.removeEventListener("keydown",J1(this,qX)),this.removeEventListener("keyup",J1(this,_9)),this.tabIndex=-1}attributeChangedCallback(Y,Z,Q){var X,J,W,q,z;if(Y===R0.MEDIA_CONTROLLER){if(Z)(J=(X=J1(this,d8))==null?void 0:X.unassociateElement)==null||J.call(X,this),WX(this,d8,null);if(Q&&this.isConnected)WX(this,d8,(W=this.getRootNode())==null?void 0:W.getElementById(Q)),(z=(q=J1(this,d8))==null?void 0:q.associateElement)==null||z.call(q,this)}else if(Y==="disabled"&&Q!==Z)if(Q==null)this.enable();else this.disable();else if(Y===s6.TOOLTIP_PLACEMENT&&this.tooltipEl&&Q!==Z)this.tooltipEl.placement=Q;else if(Y===A.MEDIA_LANG)this.shadowRoot.querySelector('slot[name="tooltip-content"]').innerHTML=this.constructor.getTooltipContentHTML();J1(this,i6).call(this)}connectedCallback(){var Y,Z,Q;let{style:X}=c0(this.shadowRoot,":host");if(X.setProperty("display",`var(--media-control-display, var(--${this.localName}-display, inline-flex))`),!this.hasAttribute("disabled"))this.enable();else this.disable();this.setAttribute("role","button");let J=this.getAttribute(R0.MEDIA_CONTROLLER);if(J)WX(this,d8,(Y=this.getRootNode())==null?void 0:Y.getElementById(J)),(Q=(Z=J1(this,d8))==null?void 0:Z.associateElement)==null||Q.call(Z,this);P.customElements.whenDefined("media-tooltip").then(()=>Hw(this,v4,HU).call(this))}disconnectedCallback(){var Y,Z;this.disable(),(Z=(Y=J1(this,d8))==null?void 0:Y.unassociateElement)==null||Z.call(Y,this),WX(this,d8,null),this.removeEventListener("mouseenter",J1(this,i6)),this.removeEventListener("focus",J1(this,i6)),this.removeEventListener("click",J1(this,v9))}get keysUsed(){return["Enter"," "]}get tooltipPlacement(){return K0(this,s6.TOOLTIP_PLACEMENT)}set tooltipPlacement(Y){G0(this,s6.TOOLTIP_PLACEMENT,Y)}get mediaController(){return K0(this,R0.MEDIA_CONTROLLER)}set mediaController(Y){G0(this,R0.MEDIA_CONTROLLER,Y)}get disabled(){return W0(this,s6.DISABLED)}set disabled(Y){q0(this,s6.DISABLED,Y)}get noTooltip(){return W0(this,s6.NO_TOOLTIP)}set noTooltip(Y){q0(this,s6.NO_TOOLTIP,Y)}handleClick(Y){}}d8=new WeakMap;v9=new WeakMap;i6=new WeakMap;_9=new WeakMap;qX=new WeakMap;v4=new WeakSet;HU=function(){this.addEventListener("mouseenter",J1(this,i6)),this.addEventListener("focus",J1(this,i6)),this.addEventListener("click",J1(this,v9));let Y=this.tooltipPlacement;if(Y&&this.tooltipEl)this.tooltipEl.placement=Y};M0.shadowRootOptions={mode:"open"};M0.getTemplateHTML=zw;M0.getSlotTemplateHTML=Ew;M0.getTooltipContentHTML=Kw;if(!P.customElements.get("media-chrome-button"))P.customElements.define("media-chrome-button",M0);var zU=` `;function Gw(Y){return` ${zU} ${zU} `}function Vw(){return` ${v("start airplay")} ${v("stop airplay")} `}var EU=(Y)=>{let Z=Y.mediaIsAirplaying?v("stop airplay"):v("start airplay");Y.setAttribute("aria-label",Z)};class HX extends M0{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_IS_AIRPLAYING,A.MEDIA_AIRPLAY_UNAVAILABLE]}connectedCallback(){super.connectedCallback(),EU(this)}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_IS_AIRPLAYING)EU(this)}get mediaIsAirplaying(){return W0(this,A.MEDIA_IS_AIRPLAYING)}set mediaIsAirplaying(Y){q0(this,A.MEDIA_IS_AIRPLAYING,Y)}get mediaAirplayUnavailable(){return K0(this,A.MEDIA_AIRPLAY_UNAVAILABLE)}set mediaAirplayUnavailable(Y){G0(this,A.MEDIA_AIRPLAY_UNAVAILABLE,Y)}handleClick(){let Y=new P.CustomEvent(b.MEDIA_AIRPLAY_REQUEST,{composed:!0,bubbles:!0});this.dispatchEvent(Y)}}HX.getSlotTemplateHTML=Gw;HX.getTooltipContentHTML=Vw;if(!P.customElements.get("media-airplay-button"))P.customElements.define("media-airplay-button",HX);var Uw=``,Fw=``;function Rw(Y){return` ${Uw} ${Fw} `}function Bw(){return` ${v("Enable captions")} ${v("Disable captions")} `}var KU=(Y)=>{Y.setAttribute("aria-checked",rQ(Y).toString())};class zX extends M0{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_SUBTITLES_LIST,A.MEDIA_SUBTITLES_SHOWING]}connectedCallback(){super.connectedCallback(),this.setAttribute("role","switch"),this.setAttribute("aria-label",v("closed captions")),KU(this)}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_SUBTITLES_SHOWING)KU(this)}get mediaSubtitlesList(){return GU(this,A.MEDIA_SUBTITLES_LIST)}set mediaSubtitlesList(Y){VU(this,A.MEDIA_SUBTITLES_LIST,Y)}get mediaSubtitlesShowing(){return GU(this,A.MEDIA_SUBTITLES_SHOWING)}set mediaSubtitlesShowing(Y){VU(this,A.MEDIA_SUBTITLES_SHOWING,Y)}handleClick(){this.dispatchEvent(new P.CustomEvent(b.MEDIA_TOGGLE_SUBTITLES_REQUEST,{composed:!0,bubbles:!0}))}}zX.getSlotTemplateHTML=Rw;zX.getTooltipContentHTML=Bw;var GU=(Y,Z)=>{let Q=Y.getAttribute(Z);return Q?M7(Q):[]},VU=(Y,Z,Q)=>{if(!(Q==null?void 0:Q.length)){Y.removeAttribute(Z);return}let X=A6(Q);if(Y.getAttribute(Z)===X)return;Y.setAttribute(Z,X)};if(!P.customElements.get("media-captions-button"))P.customElements.define("media-captions-button",zX);var Nw='',$w='';function Lw(Y){return` ${Nw} ${$w} `}function Ow(){return` ${v("Start casting")} ${v("Stop casting")} `}var UU=(Y)=>{let Z=Y.mediaIsCasting?v("stop casting"):v("start casting");Y.setAttribute("aria-label",Z)};class EX extends M0{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_IS_CASTING,A.MEDIA_CAST_UNAVAILABLE]}connectedCallback(){super.connectedCallback(),UU(this)}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_IS_CASTING)UU(this)}get mediaIsCasting(){return W0(this,A.MEDIA_IS_CASTING)}set mediaIsCasting(Y){q0(this,A.MEDIA_IS_CASTING,Y)}get mediaCastUnavailable(){return K0(this,A.MEDIA_CAST_UNAVAILABLE)}set mediaCastUnavailable(Y){G0(this,A.MEDIA_CAST_UNAVAILABLE,Y)}handleClick(){let Y=this.mediaIsCasting?b.MEDIA_EXIT_CAST_REQUEST:b.MEDIA_ENTER_CAST_REQUEST;this.dispatchEvent(new P.CustomEvent(Y,{composed:!0,bubbles:!0}))}}EX.getSlotTemplateHTML=Lw;EX.getTooltipContentHTML=Ow;if(!P.customElements.get("media-cast-button"))P.customElements.define("media-cast-button",EX);var n4=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},y7=(Y,Z,Q)=>{return n4(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},D6=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},s4=(Y,Z,Q,X)=>{return n4(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},f7=(Y,Z,Q)=>{return n4(Y,Z,"access private method"),Q},GX,FZ,k7,KX,c4,u4,FU,m4,RU,o4,BU,d4,NU,l4,$U;function jw(Y){return` ${this.getSlotTemplateHTML(Y)} `}function Aw(Y){return` `}var UZ={OPEN:"open",ANCHOR:"anchor"};class w6 extends P.HTMLElement{constructor(){super();D6(this,KX),D6(this,u4),D6(this,m4),D6(this,o4),D6(this,d4),D6(this,l4),D6(this,GX,!1),D6(this,FZ,null),D6(this,k7,null),this.addEventListener("invoke",this),this.addEventListener("focusout",this),this.addEventListener("keydown",this)}static get observedAttributes(){return[UZ.OPEN,UZ.ANCHOR]}get open(){return W0(this,UZ.OPEN)}set open(Y){q0(this,UZ.OPEN,Y)}handleEvent(Y){switch(Y.type){case"invoke":f7(this,o4,BU).call(this,Y);break;case"focusout":f7(this,d4,NU).call(this,Y);break;case"keydown":f7(this,l4,$U).call(this,Y);break}}connectedCallback(){if(f7(this,KX,c4).call(this),!this.role)this.role="dialog"}attributeChangedCallback(Y,Z,Q){if(f7(this,KX,c4).call(this),Y===UZ.OPEN&&Q!==Z)if(this.open)f7(this,u4,FU).call(this);else f7(this,m4,RU).call(this)}focus(){s4(this,FZ,YZ());let Y=!this.dispatchEvent(new Event("focus",{composed:!0,cancelable:!0})),Z=!this.dispatchEvent(new Event("focusin",{composed:!0,bubbles:!0,cancelable:!0}));if(Y||Z)return;let Q=this.querySelector('[autofocus], [tabindex]:not([tabindex="-1"]), [role="menu"]');Q==null||Q.focus()}get keysUsed(){return["Escape","Tab"]}}GX=new WeakMap;FZ=new WeakMap;k7=new WeakMap;KX=new WeakSet;c4=function(){if(y7(this,GX))return;if(s4(this,GX,!0),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Y=u0(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(Y),queueMicrotask(()=>{let{style:Z}=c0(this.shadowRoot,":host");Z.setProperty("transition","display .15s, visibility .15s, opacity .15s ease-in, transform .15s ease-in")})}};u4=new WeakSet;FU=function(){var Y;(Y=y7(this,k7))==null||Y.setAttribute("aria-expanded","true"),this.dispatchEvent(new Event("open",{composed:!0,bubbles:!0})),this.addEventListener("transitionend",()=>this.focus(),{once:!0})};m4=new WeakSet;RU=function(){var Y;(Y=y7(this,k7))==null||Y.setAttribute("aria-expanded","false"),this.dispatchEvent(new Event("close",{composed:!0,bubbles:!0}))};o4=new WeakSet;BU=function(Y){if(s4(this,k7,Y.relatedTarget),!S1(this,Y.relatedTarget))this.open=!this.open};d4=new WeakSet;NU=function(Y){var Z;if(!S1(this,Y.relatedTarget)){if((Z=y7(this,FZ))==null||Z.focus(),y7(this,k7)&&y7(this,k7)!==Y.relatedTarget&&this.open)this.open=!1}};l4=new WeakSet;$U=function(Y){var Z,Q,X,J,W;let{key:q,ctrlKey:z,altKey:H,metaKey:E}=Y;if(z||H||E)return;if(!this.keysUsed.includes(q))return;if(Y.preventDefault(),Y.stopPropagation(),q==="Tab"){if(Y.shiftKey)(Q=(Z=this.previousElementSibling)==null?void 0:Z.focus)==null||Q.call(Z);else(J=(X=this.nextElementSibling)==null?void 0:X.focus)==null||J.call(X);this.blur()}else if(q==="Escape")(W=y7(this,FZ))==null||W.focus(),this.open=!1};w6.shadowRootOptions={mode:"open"};w6.getTemplateHTML=jw;w6.getSlotTemplateHTML=Aw;if(!P.customElements.get("media-chrome-dialog"))P.customElements.define("media-chrome-dialog",w6);var ZH=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},n0=(Y,Z,Q)=>{return ZH(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},D1=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},r6=(Y,Z,Q,X)=>{return ZH(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},j8=(Y,Z,Q)=>{return ZH(Y,Z,"access private method"),Q},l8,jX,VX,UX,A8,LX,FX,RX,BX,QH,LU,NX,i4,$X,r4,OX,XH,a4,OU,t4,jU,e4,AU,YH,DU;function Dw(Y){return`
${this.getContainerTemplateHTML(Y)}
`}function ww(Y){return""}class P6 extends P.HTMLElement{constructor(){super();if(D1(this,QH),D1(this,NX),D1(this,$X),D1(this,OX),D1(this,a4),D1(this,t4),D1(this,e4),D1(this,YH),D1(this,l8,void 0),D1(this,jX,void 0),D1(this,VX,void 0),D1(this,UX,void 0),D1(this,A8,{}),D1(this,LX,[]),D1(this,FX,()=>{if(this.range.matches(":focus-visible")){let{style:Y}=c0(this.shadowRoot,":host");Y.setProperty("--_focus-visible-box-shadow","var(--_focus-box-shadow)")}}),D1(this,RX,()=>{let{style:Y}=c0(this.shadowRoot,":host");Y.removeProperty("--_focus-visible-box-shadow")}),D1(this,BX,()=>{let Y=this.shadowRoot.querySelector("#segments-clipping");if(Y)Y.parentNode.append(Y)}),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Y=u0(this.attributes),Z=this.constructor.getTemplateHTML(Y);this.shadowRoot.setHTMLUnsafe?this.shadowRoot.setHTMLUnsafe(Z):this.shadowRoot.innerHTML=Z}this.container=this.shadowRoot.querySelector("#container"),r6(this,VX,this.shadowRoot.querySelector("#startpoint")),r6(this,UX,this.shadowRoot.querySelector("#endpoint")),this.range=this.shadowRoot.querySelector("#range"),this.appearance=this.shadowRoot.querySelector("#appearance")}static get observedAttributes(){return["disabled","aria-disabled",R0.MEDIA_CONTROLLER]}attributeChangedCallback(Y,Z,Q){var X,J,W,q,z;if(Y===R0.MEDIA_CONTROLLER){if(Z)(J=(X=n0(this,l8))==null?void 0:X.unassociateElement)==null||J.call(X,this),r6(this,l8,null);if(Q&&this.isConnected)r6(this,l8,(W=this.getRootNode())==null?void 0:W.getElementById(Q)),(z=(q=n0(this,l8))==null?void 0:q.associateElement)==null||z.call(q,this)}else if(Y==="disabled"||Y==="aria-disabled"&&Z!==Q)if(Q==null)this.range.removeAttribute(Y),j8(this,NX,i4).call(this);else this.range.setAttribute(Y,Q),j8(this,$X,r4).call(this)}connectedCallback(){var Y,Z,Q;let{style:X}=c0(this.shadowRoot,":host");X.setProperty("display",`var(--media-control-display, var(--${this.localName}-display, inline-flex))`),n0(this,A8).pointer=c0(this.shadowRoot,"#pointer"),n0(this,A8).progress=c0(this.shadowRoot,"#progress"),n0(this,A8).thumb=c0(this.shadowRoot,'#thumb, ::slotted([slot="thumb"])'),n0(this,A8).activeSegment=c0(this.shadowRoot,"#segments-clipping rect:nth-child(0)");let J=this.getAttribute(R0.MEDIA_CONTROLLER);if(J)r6(this,l8,(Y=this.getRootNode())==null?void 0:Y.getElementById(J)),(Q=(Z=n0(this,l8))==null?void 0:Z.associateElement)==null||Q.call(Z,this);this.updateBar(),this.shadowRoot.addEventListener("focusin",n0(this,FX)),this.shadowRoot.addEventListener("focusout",n0(this,RX)),j8(this,NX,i4).call(this),L6(this.container,n0(this,BX))}disconnectedCallback(){var Y,Z;j8(this,$X,r4).call(this),(Z=(Y=n0(this,l8))==null?void 0:Y.unassociateElement)==null||Z.call(Y,this),r6(this,l8,null),this.shadowRoot.removeEventListener("focusin",n0(this,FX)),this.shadowRoot.removeEventListener("focusout",n0(this,RX)),O6(this.container,n0(this,BX))}updatePointerBar(Y){var Z;(Z=n0(this,A8).pointer)==null||Z.style.setProperty("width",`${this.getPointerRatio(Y)*100}%`)}updateBar(){var Y,Z;let Q=this.range.valueAsNumber*100;(Y=n0(this,A8).progress)==null||Y.style.setProperty("width",`${Q}%`),(Z=n0(this,A8).thumb)==null||Z.style.setProperty("left",`${Q}%`)}updateSegments(Y){let Z=this.shadowRoot.querySelector("#segments-clipping");if(Z.textContent="",this.container.classList.toggle("segments",!!(Y==null?void 0:Y.length)),!(Y==null?void 0:Y.length))return;let Q=[...new Set([+this.range.min,...Y.flatMap((J)=>[J.start,J.end]),+this.range.max])];r6(this,LX,[...Q]);let X=Q.pop();for(let[J,W]of Q.entries()){let[q,z]=[J===0,J===Q.length-1],H=q?"calc(var(--segments-gap) / -1)":`${W*100}%`,K=`calc(${((z?X:Q[J+1])-W)*100}%${q||z?"":" - var(--segments-gap)"})`,G=f0.createElementNS("http://www.w3.org/2000/svg","rect"),U=ZZ(this.shadowRoot,`#segments-clipping rect:nth-child(${J+1})`);U.style.setProperty("x",H),U.style.setProperty("width",K),Z.append(G)}}getPointerRatio(Y){return SV(Y.clientX,Y.clientY,n0(this,VX).getBoundingClientRect(),n0(this,UX).getBoundingClientRect())}get dragging(){return this.hasAttribute("dragging")}handleEvent(Y){switch(Y.type){case"pointermove":j8(this,YH,DU).call(this,Y);break;case"input":this.updateBar();break;case"pointerenter":j8(this,a4,OU).call(this,Y);break;case"pointerdown":j8(this,OX,XH).call(this,Y);break;case"pointerup":j8(this,t4,jU).call(this);break;case"pointerleave":j8(this,e4,AU).call(this);break}}get keysUsed(){return["ArrowUp","ArrowRight","ArrowDown","ArrowLeft"]}}l8=new WeakMap;jX=new WeakMap;VX=new WeakMap;UX=new WeakMap;A8=new WeakMap;LX=new WeakMap;FX=new WeakMap;RX=new WeakMap;BX=new WeakMap;QH=new WeakSet;LU=function(Y){let Z=n0(this,A8).activeSegment;if(!Z)return;let Q=this.getPointerRatio(Y),J=`#segments-clipping rect:nth-child(${n0(this,LX).findIndex((W,q,z)=>{let H=z[q+1];return H!=null&&Q>=W&&Q<=H})+1})`;if(Z.selectorText!=J||!Z.style.transform)Z.selectorText=J,Z.style.setProperty("transform","var(--media-range-segment-hover-transform, scaleY(2))")};NX=new WeakSet;i4=function(){if(this.hasAttribute("disabled"))return;this.addEventListener("input",this),this.addEventListener("pointerdown",this),this.addEventListener("pointerenter",this)};$X=new WeakSet;r4=function(){var Y,Z;this.removeEventListener("input",this),this.removeEventListener("pointerdown",this),this.removeEventListener("pointerenter",this),(Y=P.window)==null||Y.removeEventListener("pointerup",this),(Z=P.window)==null||Z.removeEventListener("pointermove",this)};OX=new WeakSet;XH=function(Y){var Z;r6(this,jX,Y.composedPath().includes(this.range)),(Z=P.window)==null||Z.addEventListener("pointerup",this)};a4=new WeakSet;OU=function(Y){var Z;if(Y.pointerType!=="mouse")j8(this,OX,XH).call(this,Y);this.addEventListener("pointerleave",this),(Z=P.window)==null||Z.addEventListener("pointermove",this)};t4=new WeakSet;jU=function(){var Y;(Y=P.window)==null||Y.removeEventListener("pointerup",this),this.toggleAttribute("dragging",!1),this.range.disabled=this.hasAttribute("disabled")};e4=new WeakSet;AU=function(){var Y,Z;this.removeEventListener("pointerleave",this),(Y=P.window)==null||Y.removeEventListener("pointermove",this),this.toggleAttribute("dragging",!1),this.range.disabled=this.hasAttribute("disabled"),(Z=n0(this,A8).activeSegment)==null||Z.style.removeProperty("transform")};YH=new WeakSet;DU=function(Y){if(Y.pointerType==="pen"&&Y.buttons===0)return;if(this.toggleAttribute("dragging",Y.buttons===1||Y.pointerType!=="mouse"),this.updatePointerBar(Y),j8(this,QH,LU).call(this,Y),this.dragging&&(Y.pointerType!=="mouse"||!n0(this,jX)))this.range.disabled=!0,this.range.valueAsNumber=this.getPointerRatio(Y),this.range.dispatchEvent(new Event("input",{bubbles:!0,composed:!0}))};P6.shadowRootOptions={mode:"open"};P6.getTemplateHTML=Dw;P6.getContainerTemplateHTML=ww;if(!P.customElements.get("media-chrome-range"))P.customElements.define("media-chrome-range",P6);var wU=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},AX=(Y,Z,Q)=>{return wU(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},Pw=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},DX=(Y,Z,Q,X)=>{return wU(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},n8;function Cw(Y){return` `}class wX extends P.HTMLElement{constructor(){super();if(Pw(this,n8,void 0),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Y=u0(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(Y)}}static get observedAttributes(){return[R0.MEDIA_CONTROLLER]}attributeChangedCallback(Y,Z,Q){var X,J,W,q,z;if(Y===R0.MEDIA_CONTROLLER){if(Z)(J=(X=AX(this,n8))==null?void 0:X.unassociateElement)==null||J.call(X,this),DX(this,n8,null);if(Q&&this.isConnected)DX(this,n8,(W=this.getRootNode())==null?void 0:W.getElementById(Q)),(z=(q=AX(this,n8))==null?void 0:q.associateElement)==null||z.call(q,this)}}connectedCallback(){var Y,Z,Q;let X=this.getAttribute(R0.MEDIA_CONTROLLER);if(X)DX(this,n8,(Y=this.getRootNode())==null?void 0:Y.getElementById(X)),(Q=(Z=AX(this,n8))==null?void 0:Z.associateElement)==null||Q.call(Z,this)}disconnectedCallback(){var Y,Z;(Z=(Y=AX(this,n8))==null?void 0:Y.unassociateElement)==null||Z.call(Y,this),DX(this,n8,null)}}n8=new WeakMap;wX.shadowRootOptions={mode:"open"};wX.getTemplateHTML=Cw;if(!P.customElements.get("media-control-bar"))P.customElements.define("media-control-bar",wX);var PU=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},PX=(Y,Z,Q)=>{return PU(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},Mw=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},CX=(Y,Z,Q,X)=>{return PU(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},s8;function xw(Y,Z={}){return` ${this.getSlotTemplateHTML(Y,Z)} `}function Iw(Y,Z){return` `}class r1 extends P.HTMLElement{constructor(){super();if(Mw(this,s8,void 0),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Y=u0(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(Y)}}static get observedAttributes(){return[R0.MEDIA_CONTROLLER]}attributeChangedCallback(Y,Z,Q){var X,J,W,q,z;if(Y===R0.MEDIA_CONTROLLER){if(Z)(J=(X=PX(this,s8))==null?void 0:X.unassociateElement)==null||J.call(X,this),CX(this,s8,null);if(Q&&this.isConnected)CX(this,s8,(W=this.getRootNode())==null?void 0:W.getElementById(Q)),(z=(q=PX(this,s8))==null?void 0:q.associateElement)==null||z.call(q,this)}}connectedCallback(){var Y,Z,Q;let{style:X}=c0(this.shadowRoot,":host");X.setProperty("display",`var(--media-control-display, var(--${this.localName}-display, inline-flex))`);let J=this.getAttribute(R0.MEDIA_CONTROLLER);if(J)CX(this,s8,(Y=this.getRootNode())==null?void 0:Y.getElementById(J)),(Q=(Z=PX(this,s8))==null?void 0:Z.associateElement)==null||Q.call(Z,this)}disconnectedCallback(){var Y,Z;(Z=(Y=PX(this,s8))==null?void 0:Y.unassociateElement)==null||Z.call(Y,this),CX(this,s8,null)}}s8=new WeakMap;r1.shadowRootOptions={mode:"open"};r1.getTemplateHTML=xw;r1.getSlotTemplateHTML=Iw;if(!P.customElements.get("media-text-display"))P.customElements.define("media-text-display",r1);var MU=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},CU=(Y,Z,Q)=>{return MU(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},Sw=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},Tw=(Y,Z,Q,X)=>{return MU(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},RZ;function hw(Y,Z){return` ${O8(Z.mediaDuration)} `}class JH extends r1{constructor(){var Y;super();Sw(this,RZ,void 0),Tw(this,RZ,this.shadowRoot.querySelector("slot")),CU(this,RZ).textContent=O8((Y=this.mediaDuration)!=null?Y:0)}static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_DURATION]}attributeChangedCallback(Y,Z,Q){if(Y===A.MEDIA_DURATION)CU(this,RZ).textContent=O8(+Q);super.attributeChangedCallback(Y,Z,Q)}get mediaDuration(){return B0(this,A.MEDIA_DURATION)}set mediaDuration(Y){D0(this,A.MEDIA_DURATION,Y)}}RZ=new WeakMap;JH.getSlotTemplateHTML=hw;if(!P.customElements.get("media-duration-display"))P.customElements.define("media-duration-display",JH);var fw={2:v("Network Error"),3:v("Decode Error"),4:v("Source Not Supported"),5:v("Encryption Error")},yw={2:v("A network error caused the media download to fail."),3:v("A media error caused playback to be aborted. The media could be corrupt or your browser does not support this format."),4:v("An unsupported error occurred. The server or network failed, or your browser does not support this format."),5:v("The media is encrypted and there are no keys to decrypt it.")},WH=(Y)=>{var Z,Q;if(Y.code===1)return null;return{title:(Z=fw[Y.code])!=null?Z:`Error ${Y.code}`,message:(Q=yw[Y.code])!=null?Q:Y.message}};var IU=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},kw=(Y,Z,Q)=>{return IU(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},gw=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},bw=(Y,Z,Q,X)=>{return IU(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},MX;function _w(Y){return` ${SU({code:+Y.mediaerrorcode,message:Y.mediaerrormessage})} `}function vw(Y){return Y.code&&WH(Y)!==null}function SU(Y){var Z;let{title:Q,message:X}=(Z=WH(Y))!=null?Z:{},J="";if(Q)J+=`

${Q}

`;if(X)J+=`

${X}

`;return J}var xU=[A.MEDIA_ERROR_CODE,A.MEDIA_ERROR_MESSAGE];class BZ extends w6{constructor(){super(...arguments);gw(this,MX,null)}static get observedAttributes(){return[...super.observedAttributes,...xU]}formatErrorMessage(Y){return this.constructor.formatErrorMessage(Y)}attributeChangedCallback(Y,Z,Q){var X;if(super.attributeChangedCallback(Y,Z,Q),!xU.includes(Y))return;let J=(X=this.mediaError)!=null?X:{code:this.mediaErrorCode,message:this.mediaErrorMessage};if(this.open=vw(J),this.open)this.shadowRoot.querySelector("slot").name=`error-${this.mediaErrorCode}`,this.shadowRoot.querySelector("#content").innerHTML=this.formatErrorMessage(J)}get mediaError(){return kw(this,MX)}set mediaError(Y){bw(this,MX,Y)}get mediaErrorCode(){return B0(this,"mediaerrorcode")}set mediaErrorCode(Y){D0(this,"mediaerrorcode",Y)}get mediaErrorMessage(){return K0(this,"mediaerrormessage")}set mediaErrorMessage(Y){G0(this,"mediaerrormessage",Y)}}MX=new WeakMap;BZ.getSlotTemplateHTML=_w;BZ.formatErrorMessage=SU;if(!P.customElements.get("media-error-dialog"))P.customElements.define("media-error-dialog",BZ);var xX=BZ;var pw=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},a6=(Y,Z,Q)=>{return pw(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},TU=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},p9,c9;function cw(Y){return` ${uw()} `}function uw(){return`

Keyboard Shortcuts

${[{keys:["Space","k"],description:"Toggle Playback"},{keys:["m"],description:"Toggle mute"},{keys:["f"],description:"Toggle fullscreen"},{keys:["c"],description:"Toggle captions or subtitles, if available"},{keys:["p"],description:"Toggle Picture in Picture"},{keys:["←","j"],description:"Seek back 10s"},{keys:["→","l"],description:"Seek forward 10s"},{keys:["↑"],description:"Turn volume up"},{keys:["↓"],description:"Turn volume down"},{keys:["< (SHIFT+,)"],description:"Decrease playback rate"},{keys:["> (SHIFT+.)"],description:"Increase playback rate"}].map(({keys:Q,description:X})=>{return` `}).join("")}
${Q.map((W,q)=>q>0?`or${W}`:`${W}`).join("")}
${X}
`}class qH extends w6{constructor(){super(...arguments);TU(this,p9,(Y)=>{var Z;if(!this.open)return;let Q=(Z=this.shadowRoot)==null?void 0:Z.querySelector("#content");if(!Q)return;let X=Y.composedPath(),J=X[0]===this||X.includes(this),W=X.includes(Q);if(J&&!W)this.open=!1}),TU(this,c9,(Y)=>{if(!this.open)return;let Z=Y.shiftKey&&(Y.key==="/"||Y.key==="?");if((Y.key==="Escape"||Z)&&!Y.ctrlKey&&!Y.altKey&&!Y.metaKey)this.open=!1,Y.preventDefault(),Y.stopPropagation()})}connectedCallback(){if(super.connectedCallback(),this.open)this.addEventListener("click",a6(this,p9)),document.addEventListener("keydown",a6(this,c9))}disconnectedCallback(){this.removeEventListener("click",a6(this,p9)),document.removeEventListener("keydown",a6(this,c9))}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y==="open")if(this.open)this.addEventListener("click",a6(this,p9)),document.addEventListener("keydown",a6(this,c9));else this.removeEventListener("click",a6(this,p9)),document.removeEventListener("keydown",a6(this,c9))}}p9=new WeakMap;c9=new WeakMap;qH.getSlotTemplateHTML=cw;if(!P.customElements.get("media-keyboard-shortcuts-dialog"))P.customElements.define("media-keyboard-shortcuts-dialog",qH);var fU=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},mw=(Y,Z,Q)=>{return fU(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},ow=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},dw=(Y,Z,Q,X)=>{return fU(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},IX,lw=``,nw=``;function sw(Y){return` ${lw} ${nw} `}function iw(){return` ${v("Enter fullscreen mode")} ${v("Exit fullscreen mode")} `}var hU=(Y)=>{let Z=Y.mediaIsFullscreen?v("exit fullscreen mode"):v("enter fullscreen mode");Y.setAttribute("aria-label",Z)};class SX extends M0{constructor(){super(...arguments);ow(this,IX,null)}static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_IS_FULLSCREEN,A.MEDIA_FULLSCREEN_UNAVAILABLE]}connectedCallback(){super.connectedCallback(),hU(this)}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_IS_FULLSCREEN)hU(this)}get mediaFullscreenUnavailable(){return K0(this,A.MEDIA_FULLSCREEN_UNAVAILABLE)}set mediaFullscreenUnavailable(Y){G0(this,A.MEDIA_FULLSCREEN_UNAVAILABLE,Y)}get mediaIsFullscreen(){return W0(this,A.MEDIA_IS_FULLSCREEN)}set mediaIsFullscreen(Y){q0(this,A.MEDIA_IS_FULLSCREEN,Y)}handleClick(Y){dw(this,IX,Y);let Z=mw(this,IX)instanceof PointerEvent,Q=this.mediaIsFullscreen?new P.CustomEvent(b.MEDIA_EXIT_FULLSCREEN_REQUEST,{composed:!0,bubbles:!0}):new P.CustomEvent(b.MEDIA_ENTER_FULLSCREEN_REQUEST,{composed:!0,bubbles:!0,detail:Z});this.dispatchEvent(Q)}}IX=new WeakMap;SX.getSlotTemplateHTML=sw;SX.getTooltipContentHTML=iw;if(!P.customElements.get("media-fullscreen-button"))P.customElements.define("media-fullscreen-button",SX);var{MEDIA_TIME_IS_LIVE:TX,MEDIA_PAUSED:NZ}=A,{MEDIA_SEEK_TO_LIVE_REQUEST:rw,MEDIA_PLAY_REQUEST:aw}=b,tw='';function ew(Y){return` ${tw}  ${v("live")} `}var yU=(Y)=>{var Z;let Q=Y.mediaPaused||!Y.mediaTimeIsLive,X=Q?v("seek to live"):v("playing live");Y.setAttribute("aria-label",X);let J=(Z=Y.shadowRoot)==null?void 0:Z.querySelector('slot[name="text"]');if(J)J.textContent=v("live");Q?Y.removeAttribute("aria-disabled"):Y.setAttribute("aria-disabled","true")};class HH extends M0{static get observedAttributes(){return[...super.observedAttributes,TX,NZ]}connectedCallback(){super.connectedCallback(),yU(this)}attributeChangedCallback(Y,Z,Q){super.attributeChangedCallback(Y,Z,Q),yU(this)}get mediaPaused(){return W0(this,A.MEDIA_PAUSED)}set mediaPaused(Y){q0(this,A.MEDIA_PAUSED,Y)}get mediaTimeIsLive(){return W0(this,A.MEDIA_TIME_IS_LIVE)}set mediaTimeIsLive(Y){q0(this,A.MEDIA_TIME_IS_LIVE,Y)}handleClick(){if(!this.mediaPaused&&this.mediaTimeIsLive)return;if(this.dispatchEvent(new P.CustomEvent(rw,{composed:!0,bubbles:!0})),this.hasAttribute(NZ))this.dispatchEvent(new P.CustomEvent(aw,{composed:!0,bubbles:!0}))}}HH.getSlotTemplateHTML=ew;if(!P.customElements.get("media-live-button"))P.customElements.define("media-live-button",HH);var gU=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},$Z=(Y,Z,Q)=>{return gU(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},kU=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},LZ=(Y,Z,Q,X)=>{return gU(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},i8,fX,hX={LOADING_DELAY:"loadingdelay",NO_AUTOHIDE:"noautohide"},bU=500,YP=` `;function ZP(Y){return` ${YP}
${v("media loading")}
`}class yX extends P.HTMLElement{constructor(){super();if(kU(this,i8,void 0),kU(this,fX,bU),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Y=u0(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(Y)}}static get observedAttributes(){return[R0.MEDIA_CONTROLLER,A.MEDIA_PAUSED,A.MEDIA_LOADING,hX.LOADING_DELAY]}attributeChangedCallback(Y,Z,Q){var X,J,W,q,z;if(Y===hX.LOADING_DELAY&&Z!==Q)this.loadingDelay=Number(Q);else if(Y===R0.MEDIA_CONTROLLER){if(Z)(J=(X=$Z(this,i8))==null?void 0:X.unassociateElement)==null||J.call(X,this),LZ(this,i8,null);if(Q&&this.isConnected)LZ(this,i8,(W=this.getRootNode())==null?void 0:W.getElementById(Q)),(z=(q=$Z(this,i8))==null?void 0:q.associateElement)==null||z.call(q,this)}}connectedCallback(){var Y,Z,Q;let X=this.getAttribute(R0.MEDIA_CONTROLLER);if(X)LZ(this,i8,(Y=this.getRootNode())==null?void 0:Y.getElementById(X)),(Q=(Z=$Z(this,i8))==null?void 0:Z.associateElement)==null||Q.call(Z,this)}disconnectedCallback(){var Y,Z;(Z=(Y=$Z(this,i8))==null?void 0:Y.unassociateElement)==null||Z.call(Y,this),LZ(this,i8,null)}get loadingDelay(){return $Z(this,fX)}set loadingDelay(Y){LZ(this,fX,Y);let{style:Z}=c0(this.shadowRoot,":host");Z.setProperty("--_loading-indicator-delay",`var(--media-loading-indicator-transition-delay, ${Y}ms)`)}get mediaPaused(){return W0(this,A.MEDIA_PAUSED)}set mediaPaused(Y){q0(this,A.MEDIA_PAUSED,Y)}get mediaLoading(){return W0(this,A.MEDIA_LOADING)}set mediaLoading(Y){q0(this,A.MEDIA_LOADING,Y)}get mediaController(){return K0(this,R0.MEDIA_CONTROLLER)}set mediaController(Y){G0(this,R0.MEDIA_CONTROLLER,Y)}get noAutohide(){return W0(this,hX.NO_AUTOHIDE)}set noAutohide(Y){q0(this,hX.NO_AUTOHIDE,Y)}}i8=new WeakMap;fX=new WeakMap;yX.shadowRootOptions={mode:"open"};yX.getTemplateHTML=ZP;if(!P.customElements.get("media-loading-indicator"))P.customElements.define("media-loading-indicator",yX);var QP=``,_U=``,XP=``;function JP(Y){return` ${QP} ${_U} ${_U} ${XP} `}function WP(){return` ${v("Mute")} ${v("Unmute")} `}var vU=(Y)=>{let Q=Y.mediaVolumeLevel==="off"?v("unmute"):v("mute");Y.setAttribute("aria-label",Q)};class kX extends M0{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_VOLUME_LEVEL]}connectedCallback(){super.connectedCallback(),vU(this)}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_VOLUME_LEVEL)vU(this)}get mediaVolumeLevel(){return K0(this,A.MEDIA_VOLUME_LEVEL)}set mediaVolumeLevel(Y){G0(this,A.MEDIA_VOLUME_LEVEL,Y)}handleClick(){let Y=this.mediaVolumeLevel==="off"?b.MEDIA_UNMUTE_REQUEST:b.MEDIA_MUTE_REQUEST;this.dispatchEvent(new P.CustomEvent(Y,{composed:!0,bubbles:!0}))}}kX.getSlotTemplateHTML=JP;kX.getTooltipContentHTML=WP;if(!P.customElements.get("media-mute-button"))P.customElements.define("media-mute-button",kX);var pU=``;function qP(Y){return` ${pU} ${pU} `}function HP(){return` ${v("Enter picture in picture mode")} ${v("Exit picture in picture mode")} `}var cU=(Y)=>{let Z=Y.mediaIsPip?v("exit picture in picture mode"):v("enter picture in picture mode");Y.setAttribute("aria-label",Z)};class gX extends M0{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_IS_PIP,A.MEDIA_PIP_UNAVAILABLE]}connectedCallback(){super.connectedCallback(),cU(this)}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_IS_PIP)cU(this)}get mediaPipUnavailable(){return K0(this,A.MEDIA_PIP_UNAVAILABLE)}set mediaPipUnavailable(Y){G0(this,A.MEDIA_PIP_UNAVAILABLE,Y)}get mediaIsPip(){return W0(this,A.MEDIA_IS_PIP)}set mediaIsPip(Y){q0(this,A.MEDIA_IS_PIP,Y)}handleClick(){let Y=this.mediaIsPip?b.MEDIA_EXIT_PIP_REQUEST:b.MEDIA_ENTER_PIP_REQUEST;this.dispatchEvent(new P.CustomEvent(Y,{composed:!0,bubbles:!0}))}}gX.getSlotTemplateHTML=qP;gX.getTooltipContentHTML=HP;if(!P.customElements.get("media-pip-button"))P.customElements.define("media-pip-button",gX);var zP=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},u9=(Y,Z,Q)=>{return zP(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},EP=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},t6,zH={RATES:"rates"},EH=[1,1.2,1.5,1.7,2],g7=1;function KP(Y){return` ${Y.mediaplaybackrate||g7}x `}function GP(){return v("Playback rate")}class bX extends M0{constructor(){var Y;super();EP(this,t6,new C7(this,zH.RATES,{defaultValue:EH})),this.container=this.shadowRoot.querySelector('slot[name="icon"]'),this.container.innerHTML=`${(Y=this.mediaPlaybackRate)!=null?Y:g7}x`}static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_PLAYBACK_RATE,zH.RATES]}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===zH.RATES)u9(this,t6).value=Q;if(Y===A.MEDIA_PLAYBACK_RATE){let X=Q?+Q:Number.NaN,J=!Number.isNaN(X)?X:g7;this.container.innerHTML=`${J}x`,this.setAttribute("aria-label",v("Playback rate {playbackRate}",{playbackRate:J}))}}get rates(){return u9(this,t6)}set rates(Y){if(!Y)u9(this,t6).value="";else if(Array.isArray(Y))u9(this,t6).value=Y.join(" ");else if(typeof Y==="string")u9(this,t6).value=Y}get mediaPlaybackRate(){return B0(this,A.MEDIA_PLAYBACK_RATE,g7)}set mediaPlaybackRate(Y){D0(this,A.MEDIA_PLAYBACK_RATE,Y)}handleClick(){var Y,Z;let Q=Array.from(u9(this,t6).values(),(W)=>+W).sort((W,q)=>W-q),X=(Z=(Y=Q.find((W)=>W>this.mediaPlaybackRate))!=null?Y:Q[0])!=null?Z:g7,J=new P.CustomEvent(b.MEDIA_PLAYBACK_RATE_REQUEST,{composed:!0,bubbles:!0,detail:X});this.dispatchEvent(J)}}t6=new WeakMap;bX.getSlotTemplateHTML=KP;bX.getTooltipContentHTML=GP;if(!P.customElements.get("media-playback-rate-button"))P.customElements.define("media-playback-rate-button",bX);var VP=``,UP=``;function FP(Y){return` ${VP} ${UP} `}function RP(){return` ${v("Play")} ${v("Pause")} `}var uU=(Y)=>{let Z=Y.mediaPaused?v("play"):v("pause");Y.setAttribute("aria-label",Z)};class _X extends M0{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_PAUSED,A.MEDIA_ENDED]}connectedCallback(){super.connectedCallback(),uU(this)}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_PAUSED||Y===A.MEDIA_LANG)uU(this)}get mediaPaused(){return W0(this,A.MEDIA_PAUSED)}set mediaPaused(Y){q0(this,A.MEDIA_PAUSED,Y)}handleClick(){let Y=this.mediaPaused?b.MEDIA_PLAY_REQUEST:b.MEDIA_PAUSE_REQUEST;this.dispatchEvent(new P.CustomEvent(Y,{composed:!0,bubbles:!0}))}}_X.getSlotTemplateHTML=FP;_X.getTooltipContentHTML=RP;if(!P.customElements.get("media-play-button"))P.customElements.define("media-play-button",_X);var r8={PLACEHOLDER_SRC:"placeholdersrc",SRC:"src"};function BP(Y){return` `}var NP=(Y)=>{Y.style.removeProperty("background-image")},$P=(Y,Z)=>{Y.style["background-image"]=`url('${Z}')`};class vX extends P.HTMLElement{static get observedAttributes(){return[r8.PLACEHOLDER_SRC,r8.SRC]}constructor(){super();if(!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Y=u0(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(Y)}this.image=this.shadowRoot.querySelector("#image")}attributeChangedCallback(Y,Z,Q){if(Y===r8.SRC)if(Q==null)this.image.removeAttribute(r8.SRC);else this.image.setAttribute(r8.SRC,Q);if(Y===r8.PLACEHOLDER_SRC)if(Q==null)NP(this.image);else $P(this.image,Q)}get placeholderSrc(){return K0(this,r8.PLACEHOLDER_SRC)}set placeholderSrc(Y){G0(this,r8.SRC,Y)}get src(){return K0(this,r8.SRC)}set src(Y){G0(this,r8.SRC,Y)}}vX.shadowRootOptions={mode:"open"};vX.getTemplateHTML=BP;if(!P.customElements.get("media-poster-image"))P.customElements.define("media-poster-image",vX);var mU=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},LP=(Y,Z,Q)=>{return mU(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},OP=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},jP=(Y,Z,Q,X)=>{return mU(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},pX;class oU extends r1{constructor(){super();OP(this,pX,void 0),jP(this,pX,this.shadowRoot.querySelector("slot"))}static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_PREVIEW_CHAPTER,A.MEDIA_LANG]}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_PREVIEW_CHAPTER||Y===A.MEDIA_LANG){if(Q!==Z&&Q!=null)if(LP(this,pX).textContent=Q,Q!==""){let X=v("chapter: {chapterName}",{chapterName:Q});this.setAttribute("aria-valuetext",X)}else this.removeAttribute("aria-valuetext")}}get mediaPreviewChapter(){return K0(this,A.MEDIA_PREVIEW_CHAPTER)}set mediaPreviewChapter(Y){G0(this,A.MEDIA_PREVIEW_CHAPTER,Y)}}pX=new WeakMap;if(!P.customElements.get("media-preview-chapter-display"))P.customElements.define("media-preview-chapter-display",oU);var dU=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},cX=(Y,Z,Q)=>{return dU(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},AP=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},uX=(Y,Z,Q,X)=>{return dU(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},a8;function DP(Y){return` `}class OZ extends P.HTMLElement{constructor(){super();if(AP(this,a8,void 0),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Y=u0(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(Y)}}static get observedAttributes(){return[R0.MEDIA_CONTROLLER,A.MEDIA_PREVIEW_IMAGE,A.MEDIA_PREVIEW_COORDS]}connectedCallback(){var Y,Z,Q;let X=this.getAttribute(R0.MEDIA_CONTROLLER);if(X)uX(this,a8,(Y=this.getRootNode())==null?void 0:Y.getElementById(X)),(Q=(Z=cX(this,a8))==null?void 0:Z.associateElement)==null||Q.call(Z,this)}disconnectedCallback(){var Y,Z;(Z=(Y=cX(this,a8))==null?void 0:Y.unassociateElement)==null||Z.call(Y,this),uX(this,a8,null)}attributeChangedCallback(Y,Z,Q){var X,J,W,q,z;if([A.MEDIA_PREVIEW_IMAGE,A.MEDIA_PREVIEW_COORDS].includes(Y))this.update();if(Y===R0.MEDIA_CONTROLLER){if(Z)(J=(X=cX(this,a8))==null?void 0:X.unassociateElement)==null||J.call(X,this),uX(this,a8,null);if(Q&&this.isConnected)uX(this,a8,(W=this.getRootNode())==null?void 0:W.getElementById(Q)),(z=(q=cX(this,a8))==null?void 0:q.associateElement)==null||z.call(q,this)}}get mediaPreviewImage(){return K0(this,A.MEDIA_PREVIEW_IMAGE)}set mediaPreviewImage(Y){G0(this,A.MEDIA_PREVIEW_IMAGE,Y)}get mediaPreviewCoords(){let Y=this.getAttribute(A.MEDIA_PREVIEW_COORDS);if(!Y)return;return Y.split(/\s+/).map((Z)=>+Z)}set mediaPreviewCoords(Y){if(!Y){this.removeAttribute(A.MEDIA_PREVIEW_COORDS);return}this.setAttribute(A.MEDIA_PREVIEW_COORDS,Y.join(" "))}update(){let Y=this.mediaPreviewCoords,Z=this.mediaPreviewImage;if(!(Y&&Z))return;let[Q,X,J,W]=Y,q=Z.split("#")[0],z=getComputedStyle(this),{maxWidth:H,maxHeight:E,minWidth:K,minHeight:G}=z,U=Math.min(parseInt(H)/J,parseInt(E)/W),V=Math.max(parseInt(K)/J,parseInt(G)/W),F=U<1,R=F?U:V>1?V:1,{style:B}=c0(this.shadowRoot,":host"),$=c0(this.shadowRoot,"img").style,L=this.shadowRoot.querySelector("img"),O=F?"min":"max";B.setProperty(`${O}-width`,"initial","important"),B.setProperty(`${O}-height`,"initial","important"),B.width=`${J*R}px`,B.height=`${W*R}px`;let j=()=>{$.width=`${this.imgWidth*R}px`,$.height=`${this.imgHeight*R}px`,$.display="block"};if(L.src!==q)L.onload=()=>{this.imgWidth=L.naturalWidth,this.imgHeight=L.naturalHeight,j()},L.src=q,j();j(),$.transform=`translate(-${Q*R}px, -${X*R}px)`}}a8=new WeakMap;OZ.shadowRootOptions={mode:"open"};OZ.getTemplateHTML=DP;if(!P.customElements.get("media-preview-thumbnail"))P.customElements.define("media-preview-thumbnail",OZ);var mX=OZ;var nU=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},lU=(Y,Z,Q)=>{return nU(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},wP=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},PP=(Y,Z,Q,X)=>{return nU(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},jZ;class sU extends r1{constructor(){super();wP(this,jZ,void 0),PP(this,jZ,this.shadowRoot.querySelector("slot")),lU(this,jZ).textContent=O8(0)}static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_PREVIEW_TIME]}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_PREVIEW_TIME&&Q!=null)lU(this,jZ).textContent=O8(parseFloat(Q))}get mediaPreviewTime(){return B0(this,A.MEDIA_PREVIEW_TIME)}set mediaPreviewTime(Y){D0(this,A.MEDIA_PREVIEW_TIME,Y)}}jZ=new WeakMap;if(!P.customElements.get("media-preview-time-display"))P.customElements.define("media-preview-time-display",sU);var m9={SEEK_OFFSET:"seekoffset"},KH=30,CP=(Y)=>` `;function MP(Y,Z){return` ${CP(Z.seekOffset)} `}function xP(){return v("Seek backward")}var IP=0;class oX extends M0{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_CURRENT_TIME,m9.SEEK_OFFSET]}connectedCallback(){super.connectedCallback(),this.seekOffset=B0(this,m9.SEEK_OFFSET,KH)}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===m9.SEEK_OFFSET)this.seekOffset=B0(this,m9.SEEK_OFFSET,KH)}get seekOffset(){return B0(this,m9.SEEK_OFFSET,KH)}set seekOffset(Y){D0(this,m9.SEEK_OFFSET,Y),this.setAttribute("aria-label",v("seek back {seekOffset} seconds",{seekOffset:this.seekOffset})),bQ(_Q(this,"icon"),this.seekOffset)}get mediaCurrentTime(){return B0(this,A.MEDIA_CURRENT_TIME,IP)}set mediaCurrentTime(Y){D0(this,A.MEDIA_CURRENT_TIME,Y)}handleClick(){let Y=Math.max(this.mediaCurrentTime-this.seekOffset,0),Z=new P.CustomEvent(b.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:Y});this.dispatchEvent(Z)}}oX.getSlotTemplateHTML=MP;oX.getTooltipContentHTML=xP;if(!P.customElements.get("media-seek-backward-button"))P.customElements.define("media-seek-backward-button",oX);var o9={SEEK_OFFSET:"seekoffset"},GH=30,SP=(Y)=>` `;function TP(Y,Z){return` ${SP(Z.seekOffset)} `}function hP(){return v("Seek forward")}var fP=0;class dX extends M0{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_CURRENT_TIME,o9.SEEK_OFFSET]}connectedCallback(){super.connectedCallback(),this.seekOffset=B0(this,o9.SEEK_OFFSET,GH)}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===o9.SEEK_OFFSET)this.seekOffset=B0(this,o9.SEEK_OFFSET,GH)}get seekOffset(){return B0(this,o9.SEEK_OFFSET,GH)}set seekOffset(Y){D0(this,o9.SEEK_OFFSET,Y),this.setAttribute("aria-label",v("seek forward {seekOffset} seconds",{seekOffset:this.seekOffset})),bQ(_Q(this,"icon"),this.seekOffset)}get mediaCurrentTime(){return B0(this,A.MEDIA_CURRENT_TIME,fP)}set mediaCurrentTime(Y){D0(this,A.MEDIA_CURRENT_TIME,Y)}handleClick(){let Y=this.mediaCurrentTime+this.seekOffset,Z=new P.CustomEvent(b.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:Y});this.dispatchEvent(Z)}}dX.getSlotTemplateHTML=TP;dX.getTooltipContentHTML=hP;if(!P.customElements.get("media-seek-forward-button"))P.customElements.define("media-seek-forward-button",dX);var aU=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},VH=(Y,Z,Q)=>{return aU(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},yP=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},kP=(Y,Z,Q,X)=>{return aU(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},d9,b7={REMAINING:"remaining",SHOW_DURATION:"showduration",NO_TOGGLE:"notoggle"},iU=[...Object.values(b7),A.MEDIA_CURRENT_TIME,A.MEDIA_DURATION,A.MEDIA_SEEKABLE],rU=["Enter"," "],gP=" / ",UH=(Y,{timesSep:Z=gP}={})=>{var Q,X;let J=(Q=Y.mediaCurrentTime)!=null?Q:0,[,W]=(X=Y.mediaSeekable)!=null?X:[],q=0;if(Number.isFinite(Y.mediaDuration))q=Y.mediaDuration;else if(Number.isFinite(W))q=W;let z=Y.remaining?O8(0-(q-J)):O8(J);if(!Y.showDuration)return z;return`${z}${Z}${O8(q)}`},bP="video not loaded, unknown time.",_P=(Y)=>{var Z;let Q=Y.mediaCurrentTime,[,X]=(Z=Y.mediaSeekable)!=null?Z:[],J=null;if(Number.isFinite(Y.mediaDuration))J=Y.mediaDuration;else if(Number.isFinite(X))J=X;if(Q==null||J===null){Y.setAttribute("aria-valuetext",bP);return}let W=Y.remaining?A7(0-(J-Q)):A7(Q);if(!Y.showDuration){Y.setAttribute("aria-valuetext",W);return}let q=A7(J),z=`${W} of ${q}`;Y.setAttribute("aria-valuetext",z)};function vP(Y,Z){return` ${UH(Z)} `}class FH extends r1{constructor(){super();yP(this,d9,void 0),kP(this,d9,this.shadowRoot.querySelector("slot")),VH(this,d9).innerHTML=`${UH(this)}`}static get observedAttributes(){return[...super.observedAttributes,...iU,"disabled"]}connectedCallback(){let{style:Y}=c0(this.shadowRoot,":host(:hover:not([notoggle]))");if(Y.setProperty("cursor","var(--media-cursor, pointer)"),Y.setProperty("background","var(--media-control-hover-background, rgba(50 50 70 / .7))"),!this.hasAttribute("disabled"))this.enable();this.setAttribute("role","progressbar"),this.setAttribute("aria-label",v("playback time"));let Z=(Q)=>{let{key:X}=Q;if(!rU.includes(X)){this.removeEventListener("keyup",Z);return}this.toggleTimeDisplay()};this.addEventListener("keydown",(Q)=>{let{metaKey:X,altKey:J,key:W}=Q;if(X||J||!rU.includes(W)){this.removeEventListener("keyup",Z);return}this.addEventListener("keyup",Z)}),this.addEventListener("click",this.toggleTimeDisplay),super.connectedCallback()}toggleTimeDisplay(){if(this.noToggle)return;if(this.hasAttribute("remaining"))this.removeAttribute("remaining");else this.setAttribute("remaining","")}disconnectedCallback(){this.disable(),super.disconnectedCallback()}attributeChangedCallback(Y,Z,Q){if(iU.includes(Y))this.update();else if(Y==="disabled"&&Q!==Z)if(Q==null)this.enable();else this.disable();super.attributeChangedCallback(Y,Z,Q)}enable(){this.tabIndex=0}disable(){this.tabIndex=-1}get remaining(){return W0(this,b7.REMAINING)}set remaining(Y){q0(this,b7.REMAINING,Y)}get showDuration(){return W0(this,b7.SHOW_DURATION)}set showDuration(Y){q0(this,b7.SHOW_DURATION,Y)}get noToggle(){return W0(this,b7.NO_TOGGLE)}set noToggle(Y){q0(this,b7.NO_TOGGLE,Y)}get mediaDuration(){return B0(this,A.MEDIA_DURATION)}set mediaDuration(Y){D0(this,A.MEDIA_DURATION,Y)}get mediaCurrentTime(){return B0(this,A.MEDIA_CURRENT_TIME)}set mediaCurrentTime(Y){D0(this,A.MEDIA_CURRENT_TIME,Y)}get mediaSeekable(){let Y=this.getAttribute(A.MEDIA_SEEKABLE);if(!Y)return;return Y.split(":").map((Z)=>+Z)}set mediaSeekable(Y){if(Y==null){this.removeAttribute(A.MEDIA_SEEKABLE);return}this.setAttribute(A.MEDIA_SEEKABLE,Y.join(":"))}update(){let Y=UH(this);if(_P(this),Y!==VH(this,d9).innerHTML)VH(this,d9).innerHTML=Y}}d9=new WeakMap;FH.getSlotTemplateHTML=vP;if(!P.customElements.get("media-time-display"))P.customElements.define("media-time-display",FH);var tU=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},O1=(Y,Z,Q)=>{return tU(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},t8=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},a1=(Y,Z,Q,X)=>{return tU(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},pP=(Y,Z,Q,X)=>({set _(J){a1(Y,Z,J,Q)},get _(){return O1(Y,Z,X)}}),l9,lX,n9,AZ,nX,sX,iX,s9,_7,rX;class RH{constructor(Y,Z,Q){t8(this,l9,void 0),t8(this,lX,void 0),t8(this,n9,void 0),t8(this,AZ,void 0),t8(this,nX,void 0),t8(this,sX,void 0),t8(this,iX,void 0),t8(this,s9,void 0),t8(this,_7,0),t8(this,rX,(X=performance.now())=>{a1(this,_7,requestAnimationFrame(O1(this,rX))),a1(this,AZ,performance.now()-O1(this,n9));let J=1000/this.fps;if(O1(this,AZ)>J){a1(this,n9,X-O1(this,AZ)%J);let W=1000/((X-O1(this,lX))/++pP(this,nX)._),q=(X-O1(this,sX))/1000/this.duration,z=O1(this,iX)+q*this.playbackRate;if(z-O1(this,l9).valueAsNumber>0)a1(this,s9,this.playbackRate/this.duration/W);else a1(this,s9,0.995*O1(this,s9)),z=O1(this,l9).valueAsNumber+O1(this,s9);this.callback(z)}}),a1(this,l9,Y),this.callback=Z,this.fps=Q}start(){if(O1(this,_7)!==0)return;a1(this,n9,performance.now()),a1(this,lX,O1(this,n9)),a1(this,nX,0),O1(this,rX).call(this)}stop(){if(O1(this,_7)===0)return;cancelAnimationFrame(O1(this,_7)),a1(this,_7,0)}update({start:Y,duration:Z,playbackRate:Q}){let X=Y-O1(this,l9).valueAsNumber,J=Math.abs(Z-this.duration);if(X>0||X<-0.03||J>=0.5)this.callback(Y);a1(this,iX,Y),a1(this,sX,performance.now()),this.duration=Z,this.playbackRate=Q}}l9=new WeakMap;lX=new WeakMap;n9=new WeakMap;AZ=new WeakMap;nX=new WeakMap;sX=new WeakMap;iX=new WeakMap;s9=new WeakMap;_7=new WeakMap;rX=new WeakMap;var LH=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},e0=(Y,Z,Q)=>{return LH(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},U1=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},E8=(Y,Z,Q,X)=>{return LH(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},C1=(Y,Z,Q)=>{return LH(Y,Z,"access private method"),Q},i9,v7,eX,wZ,YJ,tX,PZ,CZ,r9,a9,t9,DZ,OH,eU,BH,ZJ,jH,QJ,AH,XJ,DH,NH,YF,MZ,JJ,$H,ZF,cP="video not loaded, unknown time.",uP=(Y)=>{let Z=Y.range,Q=A7(+QF(Y)),X=A7(+Y.mediaSeekableEnd),J=!(Q&&X)?cP:`${Q} of ${X}`;Z.setAttribute("aria-valuetext",J)};function mP(Y){return`
`}var aX=(Y,Z=Y.mediaCurrentTime)=>{let Q=Number.isFinite(Y.mediaSeekableStart)?Y.mediaSeekableStart:0,X=Number.isFinite(Y.mediaDuration)?Y.mediaDuration:Y.mediaSeekableEnd;if(Number.isNaN(X))return 0;let J=(Z-Q)/(X-Q);return Math.max(0,Math.min(J,1))},QF=(Y,Z=Y.range.valueAsNumber)=>{let Q=Number.isFinite(Y.mediaSeekableStart)?Y.mediaSeekableStart:0,X=Number.isFinite(Y.mediaDuration)?Y.mediaDuration:Y.mediaSeekableEnd;if(Number.isNaN(X))return 0;return Z*(X-Q)+Q};class WJ extends P6{constructor(){super();U1(this,t9),U1(this,OH),U1(this,ZJ),U1(this,QJ),U1(this,XJ),U1(this,NH),U1(this,MZ),U1(this,$H),U1(this,i9,void 0),U1(this,v7,void 0),U1(this,eX,void 0),U1(this,wZ,void 0),U1(this,YJ,void 0),U1(this,tX,void 0),U1(this,PZ,void 0),U1(this,CZ,void 0),U1(this,r9,void 0),U1(this,a9,void 0),U1(this,BH,(Q)=>{if(this.dragging)return;if(C9(Q))this.range.valueAsNumber=Q;if(!e0(this,a9))this.updateBar()}),this.shadowRoot.querySelector("#track").insertAdjacentHTML("afterbegin",'
'),E8(this,eX,this.shadowRoot.querySelectorAll('[part~="box"]')),E8(this,YJ,this.shadowRoot.querySelector('[part~="preview-box"]')),E8(this,tX,this.shadowRoot.querySelector('[part~="current-box"]'));let Z=getComputedStyle(this);E8(this,PZ,parseInt(Z.getPropertyValue("--media-box-padding-left"))),E8(this,CZ,parseInt(Z.getPropertyValue("--media-box-padding-right"))),E8(this,v7,new RH(this.range,e0(this,BH),60))}static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_PAUSED,A.MEDIA_DURATION,A.MEDIA_SEEKABLE,A.MEDIA_CURRENT_TIME,A.MEDIA_PREVIEW_IMAGE,A.MEDIA_PREVIEW_TIME,A.MEDIA_PREVIEW_CHAPTER,A.MEDIA_BUFFERED,A.MEDIA_PLAYBACK_RATE,A.MEDIA_LOADING,A.MEDIA_ENDED]}connectedCallback(){var Y;super.connectedCallback(),this.range.setAttribute("aria-label",v("seek")),C1(this,t9,DZ).call(this),E8(this,i9,this.getRootNode()),(Y=e0(this,i9))==null||Y.addEventListener("transitionstart",this)}disconnectedCallback(){var Y;super.disconnectedCallback(),C1(this,t9,DZ).call(this),(Y=e0(this,i9))==null||Y.removeEventListener("transitionstart",this),E8(this,i9,null)}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Z==Q)return;if(Y===A.MEDIA_CURRENT_TIME||Y===A.MEDIA_PAUSED||Y===A.MEDIA_ENDED||Y===A.MEDIA_LOADING||Y===A.MEDIA_DURATION||Y===A.MEDIA_SEEKABLE)e0(this,v7).update({start:aX(this),duration:this.mediaSeekableEnd-this.mediaSeekableStart,playbackRate:this.mediaPlaybackRate}),C1(this,t9,DZ).call(this),uP(this);else if(Y===A.MEDIA_BUFFERED)this.updateBufferedBar();if(Y===A.MEDIA_DURATION||Y===A.MEDIA_SEEKABLE)this.mediaChaptersCues=e0(this,r9),this.updateBar()}get mediaChaptersCues(){return e0(this,r9)}set mediaChaptersCues(Y){var Z;E8(this,r9,Y),this.updateSegments((Z=e0(this,r9))==null?void 0:Z.map((Q)=>({start:aX(this,Q.startTime),end:aX(this,Q.endTime)})))}get mediaPaused(){return W0(this,A.MEDIA_PAUSED)}set mediaPaused(Y){q0(this,A.MEDIA_PAUSED,Y)}get mediaLoading(){return W0(this,A.MEDIA_LOADING)}set mediaLoading(Y){q0(this,A.MEDIA_LOADING,Y)}get mediaDuration(){return B0(this,A.MEDIA_DURATION)}set mediaDuration(Y){D0(this,A.MEDIA_DURATION,Y)}get mediaCurrentTime(){return B0(this,A.MEDIA_CURRENT_TIME)}set mediaCurrentTime(Y){D0(this,A.MEDIA_CURRENT_TIME,Y)}get mediaPlaybackRate(){return B0(this,A.MEDIA_PLAYBACK_RATE,1)}set mediaPlaybackRate(Y){D0(this,A.MEDIA_PLAYBACK_RATE,Y)}get mediaBuffered(){let Y=this.getAttribute(A.MEDIA_BUFFERED);if(!Y)return[];return Y.split(" ").map((Z)=>Z.split(":").map((Q)=>+Q))}set mediaBuffered(Y){if(!Y){this.removeAttribute(A.MEDIA_BUFFERED);return}let Z=Y.map((Q)=>Q.join(":")).join(" ");this.setAttribute(A.MEDIA_BUFFERED,Z)}get mediaSeekable(){let Y=this.getAttribute(A.MEDIA_SEEKABLE);if(!Y)return;return Y.split(":").map((Z)=>+Z)}set mediaSeekable(Y){if(Y==null){this.removeAttribute(A.MEDIA_SEEKABLE);return}this.setAttribute(A.MEDIA_SEEKABLE,Y.join(":"))}get mediaSeekableEnd(){var Y;let[,Z=this.mediaDuration]=(Y=this.mediaSeekable)!=null?Y:[];return Z}get mediaSeekableStart(){var Y;let[Z=0]=(Y=this.mediaSeekable)!=null?Y:[];return Z}get mediaPreviewImage(){return K0(this,A.MEDIA_PREVIEW_IMAGE)}set mediaPreviewImage(Y){G0(this,A.MEDIA_PREVIEW_IMAGE,Y)}get mediaPreviewTime(){return B0(this,A.MEDIA_PREVIEW_TIME)}set mediaPreviewTime(Y){D0(this,A.MEDIA_PREVIEW_TIME,Y)}get mediaEnded(){return W0(this,A.MEDIA_ENDED)}set mediaEnded(Y){q0(this,A.MEDIA_ENDED,Y)}updateBar(){super.updateBar(),this.updateBufferedBar(),this.updateCurrentBox()}updateBufferedBar(){var Y;let Z=this.mediaBuffered;if(!Z.length)return;let Q;if(!this.mediaEnded){let J=this.mediaCurrentTime,[,W=this.mediaSeekableStart]=(Y=Z.find(([q,z])=>q<=J&&J<=z))!=null?Y:[];Q=aX(this,W)}else Q=1;let{style:X}=c0(this.shadowRoot,"#buffered");X.setProperty("width",`${Q*100}%`)}updateCurrentBox(){if(!this.shadowRoot.querySelector('slot[name="current"]').assignedElements().length)return;let Z=c0(this.shadowRoot,"#current-rail"),Q=c0(this.shadowRoot,'[part~="current-box"]'),X=C1(this,ZJ,jH).call(this,e0(this,tX)),J=C1(this,QJ,AH).call(this,X,this.range.valueAsNumber),W=C1(this,XJ,DH).call(this,X,this.range.valueAsNumber);Z.style.transform=`translateX(${J})`,Z.style.setProperty("--_range-width",`${X.range.width}`),Q.style.setProperty("--_box-shift",`${W}`),Q.style.setProperty("--_box-width",`${X.box.width}px`),Q.style.setProperty("visibility","initial")}handleEvent(Y){switch(super.handleEvent(Y),Y.type){case"input":C1(this,$H,ZF).call(this);break;case"pointermove":C1(this,NH,YF).call(this,Y);break;case"pointerup":if(e0(this,a9))E8(this,a9,!1);break;case"pointerdown":E8(this,a9,!0);break;case"pointerleave":C1(this,MZ,JJ).call(this,null);break;case"transitionstart":if(S1(Y.target,this))setTimeout(()=>C1(this,t9,DZ).call(this),0);break}}}i9=new WeakMap;v7=new WeakMap;eX=new WeakMap;wZ=new WeakMap;YJ=new WeakMap;tX=new WeakMap;PZ=new WeakMap;CZ=new WeakMap;r9=new WeakMap;a9=new WeakMap;t9=new WeakSet;DZ=function(){if(C1(this,OH,eU).call(this))e0(this,v7).start();else e0(this,v7).stop()};OH=new WeakSet;eU=function(){return this.isConnected&&!this.mediaPaused&&!this.mediaLoading&&!this.mediaEnded&&this.mediaSeekableEnd>0&&vQ(this)};BH=new WeakMap;ZJ=new WeakSet;jH=function(Y){var Z;let X=((Z=this.getAttribute("bounds")?c8(this,`#${this.getAttribute("bounds")}`):this.parentElement)!=null?Z:this).getBoundingClientRect(),J=this.range.getBoundingClientRect(),W=Y.offsetWidth,q=-(J.left-X.left-W/2),z=X.right-J.left-W/2;return{box:{width:W,min:q,max:z},bounds:X,range:J}};QJ=new WeakSet;AH=function(Y,Z){let Q=`${Z*100}%`,{width:X,min:J,max:W}=Y.box;if(!X)return Q;if(!Number.isNaN(J))Q=`max(${`calc(1 / var(--_range-width) * 100 * ${J}% + var(--media-box-padding-left))`}, ${Q})`;if(!Number.isNaN(W)){let z=`calc(1 / var(--_range-width) * 100 * ${W}% - var(--media-box-padding-right))`;Q=`min(${Q}, ${z})`}return Q};XJ=new WeakSet;DH=function(Y,Z){let{width:Q,min:X,max:J}=Y.box,W=Z*Y.range.width;if(WJ-e0(this,CZ)){let q=Y.bounds.right-Y.range.right-e0(this,CZ);return`${W+Q/2-q-Y.range.width}px`}return 0};NH=new WeakSet;YF=function(Y){let Z=[...e0(this,eX)].some((K)=>Y.composedPath().includes(K));if(!this.dragging&&(Z||!Y.composedPath().includes(this))){C1(this,MZ,JJ).call(this,null);return}let Q=this.mediaSeekableEnd;if(!Q)return;let X=c0(this.shadowRoot,"#preview-rail"),J=c0(this.shadowRoot,'[part~="preview-box"]'),W=C1(this,ZJ,jH).call(this,e0(this,YJ)),q=(Y.clientX-W.range.left)/W.range.width;q=Math.max(0,Math.min(1,q));let z=C1(this,QJ,AH).call(this,W,q),H=C1(this,XJ,DH).call(this,W,q);X.style.transform=`translateX(${z})`,X.style.setProperty("--_range-width",`${W.range.width}`),J.style.setProperty("--_box-shift",`${H}`),J.style.setProperty("--_box-width",`${W.box.width}px`);let E=Math.round(e0(this,wZ))-Math.round(q*Q);if(Math.abs(E)<1&&q>0.01&&q<0.99)return;E8(this,wZ,q*Q),C1(this,MZ,JJ).call(this,e0(this,wZ))};MZ=new WeakSet;JJ=function(Y){this.dispatchEvent(new P.CustomEvent(b.MEDIA_PREVIEW_REQUEST,{composed:!0,bubbles:!0,detail:Y}))};$H=new WeakSet;ZF=function(){e0(this,v7).stop();let Y=QF(this);this.dispatchEvent(new P.CustomEvent(b.MEDIA_SEEK_REQUEST,{composed:!0,bubbles:!0,detail:Y}))};WJ.shadowRootOptions={mode:"open"};WJ.getContainerTemplateHTML=mP;if(!P.customElements.get("media-time-range"))P.customElements.define("media-time-range",WJ);var oP=1,dP=(Y)=>{if(Y.mediaMuted)return 0;return Y.mediaVolume},lP=(Y)=>`${Math.round(Y*100)}%`;class XF extends P6{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_VOLUME,A.MEDIA_MUTED,A.MEDIA_VOLUME_UNAVAILABLE]}constructor(){super();this.range.addEventListener("input",()=>{let Y=this.range.value,Z=new P.CustomEvent(b.MEDIA_VOLUME_REQUEST,{composed:!0,bubbles:!0,detail:Y});this.dispatchEvent(Z)})}connectedCallback(){super.connectedCallback(),this.range.setAttribute("aria-label",v("volume"))}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_VOLUME||Y===A.MEDIA_MUTED)this.range.valueAsNumber=dP(this),this.range.setAttribute("aria-valuetext",lP(this.range.valueAsNumber)),this.updateBar()}get mediaVolume(){return B0(this,A.MEDIA_VOLUME,oP)}set mediaVolume(Y){D0(this,A.MEDIA_VOLUME,Y)}get mediaMuted(){return W0(this,A.MEDIA_MUTED)}set mediaMuted(Y){q0(this,A.MEDIA_MUTED,Y)}get mediaVolumeUnavailable(){return K0(this,A.MEDIA_VOLUME_UNAVAILABLE)}set mediaVolumeUnavailable(Y){G0(this,A.MEDIA_VOLUME_UNAVAILABLE,Y)}}if(!P.customElements.get("media-volume-range"))P.customElements.define("media-volume-range",XF);function nP(Y){return`
`}function sP(){return v("Loop")}class qJ extends M0{constructor(){super(...arguments);this.container=null}static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_LOOP]}connectedCallback(){var Y;if(super.connectedCallback(),this.container=((Y=this.shadowRoot)==null?void 0:Y.querySelector("#icon"))||null,this.container)this.container.textContent=v("Loop")}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_LOOP&&this.container)this.setAttribute("aria-checked",this.mediaLoop?"true":"false")}get mediaLoop(){return W0(this,A.MEDIA_LOOP)}set mediaLoop(Y){q0(this,A.MEDIA_LOOP,Y)}handleClick(){let Y=!this.mediaLoop,Z=new P.CustomEvent(b.MEDIA_LOOP_REQUEST,{composed:!0,bubbles:!0,detail:Y});this.dispatchEvent(Z)}}qJ.getSlotTemplateHTML=nP;qJ.getTooltipContentHTML=sP;if(!P.customElements.get("media-loop-button"))P.customElements.define("media-loop-button",qJ);var zF=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},L0=(Y,Z,Q)=>{return zF(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},e8=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},C6=(Y,Z,Q,X)=>{return zF(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},e9,HJ,p7,xZ,e6,Y7,Z7,c7,YY,zJ,D8,JF=1,WF=0,iP=1,rP={processCallback(Y,Z,Q){if(!Q)return;for(let[X,J]of Z)if(X in Q){let W=Q[X];if(typeof W==="boolean"&&J instanceof _1&&typeof J.element[J.attributeName]==="boolean")J.booleanValue=W;else if(typeof W==="function"&&J instanceof _1)J.element[J.attributeName]=W;else J.value=W}}};class Q7 extends P.DocumentFragment{constructor(Y,Z,Q=rP){var X;super();e8(this,e9,void 0),e8(this,HJ,void 0),this.append(Y.content.cloneNode(!0)),C6(this,e9,EF(this)),C6(this,HJ,Q),(X=Q.createCallback)==null||X.call(Q,this,L0(this,e9),Z),Q.processCallback(this,L0(this,e9),Z)}update(Y){L0(this,HJ).processCallback(this,L0(this,e9),Y)}}e9=new WeakMap;HJ=new WeakMap;var EF=(Y,Z=[])=>{let Q,X;for(let J of Y.attributes||[])if(J.value.includes("{{")){let W=new GF;for([Q,X]of HF(J.value))if(!Q)W.append(X);else{let q=new _1(Y,J.name,J.namespaceURI);W.append(q),Z.push([X,q])}J.value=W.toString()}for(let J of Y.childNodes)if(J.nodeType===JF&&!(J instanceof HTMLTemplateElement))EF(J,Z);else{let W=J.data;if(J.nodeType===JF||W.includes("{{")){let q=[];if(W)for([Q,X]of HF(W))if(!Q)q.push(new Text(X));else{let z=new X7(Y);q.push(z),Z.push([X,z])}else if(J instanceof HTMLTemplateElement){let z=new EJ(Y,J);q.push(z),Z.push([z.expression,z])}J.replaceWith(...q.flatMap((z)=>z.replacementNodes||[z]))}}return Z},qF={},HF=(Y)=>{let Z="",Q=0,X=qF[Y],J=0,W;if(X)return X;else X=[];for(;W=Y[J];J++)if(W==="{"&&Y[J+1]==="{"&&Y[J-1]!=="\\"&&Y[J+2]&&++Q==1){if(Z)X.push([WF,Z]);Z="",J++}else if(W==="}"&&Y[J+1]==="}"&&Y[J-1]!=="\\"&&!--Q)X.push([iP,Z.trim()]),Z="",J++;else Z+=W||"";if(Z)X.push([WF,(Q>0?"{{":"")+Z]);return qF[Y]=X},aP=11;class wH{get value(){return""}set value(Y){}toString(){return this.value}}var KF=new WeakMap;class GF{constructor(){e8(this,p7,[])}[Symbol.iterator](){return L0(this,p7).values()}get length(){return L0(this,p7).length}item(Y){return L0(this,p7)[Y]}append(...Y){for(let Z of Y){if(Z instanceof _1)KF.set(Z,this);L0(this,p7).push(Z)}}toString(){return L0(this,p7).join("")}}p7=new WeakMap;class _1 extends wH{constructor(Y,Z,Q){super();e8(this,c7),e8(this,xZ,""),e8(this,e6,void 0),e8(this,Y7,void 0),e8(this,Z7,void 0),C6(this,e6,Y),C6(this,Y7,Z),C6(this,Z7,Q)}get attributeName(){return L0(this,Y7)}get attributeNamespace(){return L0(this,Z7)}get element(){return L0(this,e6)}get value(){return L0(this,xZ)}set value(Y){if(L0(this,xZ)===Y)return;if(C6(this,xZ,Y),!L0(this,c7,YY)||L0(this,c7,YY).length===1)if(Y==null)L0(this,e6).removeAttributeNS(L0(this,Z7),L0(this,Y7));else L0(this,e6).setAttributeNS(L0(this,Z7),L0(this,Y7),Y);else L0(this,e6).setAttributeNS(L0(this,Z7),L0(this,Y7),L0(this,c7,YY).toString())}get booleanValue(){return L0(this,e6).hasAttributeNS(L0(this,Z7),L0(this,Y7))}set booleanValue(Y){if(!L0(this,c7,YY)||L0(this,c7,YY).length===1)this.value=Y?"":null;else throw new DOMException("Value is not fully templatized")}}xZ=new WeakMap;e6=new WeakMap;Y7=new WeakMap;Z7=new WeakMap;c7=new WeakSet;YY=function(){return KF.get(this)};class X7 extends wH{constructor(Y,Z){super();e8(this,zJ,void 0),e8(this,D8,void 0),C6(this,zJ,Y),C6(this,D8,Z?[...Z]:[new Text])}get replacementNodes(){return L0(this,D8)}get parentNode(){return L0(this,zJ)}get nextSibling(){return L0(this,D8)[L0(this,D8).length-1].nextSibling}get previousSibling(){return L0(this,D8)[0].previousSibling}get value(){return L0(this,D8).map((Y)=>Y.textContent).join("")}set value(Y){this.replace(Y)}replace(...Y){let Z=Y.flat().flatMap((Q)=>Q==null?[new Text]:Q.forEach?[...Q]:Q.nodeType===aP?[...Q.childNodes]:Q.nodeType?[Q]:[new Text(Q)]);if(!Z.length)Z.push(new Text);C6(this,D8,tP(L0(this,D8)[0].parentNode,L0(this,D8),Z,this.nextSibling))}}zJ=new WeakMap;D8=new WeakMap;class EJ extends X7{constructor(Y,Z){let Q=Z.getAttribute("directive")||Z.getAttribute("type"),X=Z.getAttribute("expression")||Z.getAttribute(Q)||"";if(X.startsWith("{{"))X=X.trim().slice(2,-2).trim();super(Y);this.expression=X,this.template=Z,this.directive=Q}}function tP(Y,Z,Q,X=null){let J=0,W,q,z,H=Q.length,E=Z.length;while(JString(Y)};class CH{constructor(Y){this.template=Y,this.state=void 0}}var u7=new WeakMap,m7=new WeakMap,PH={partial:(Y,Z)=>{Z[Y.expression]=new CH(Y.template)},if:(Y,Z)=>{var Q;if(FF(Y.expression,Z))if(u7.get(Y)!==Y.template){u7.set(Y,Y.template);let X=new Q7(Y.template,Z,GJ);Y.replace(X),m7.set(Y,X)}else(Q=m7.get(Y))==null||Q.update(Z);else Y.replace(""),u7.delete(Y),m7.delete(Y)}},eP=Object.keys(PH),GJ={processCallback(Y,Z,Q){var X,J;if(!Q)return;for(let[W,q]of Z){if(q instanceof EJ){if(!q.directive){let H=eP.find((E)=>q.template.hasAttribute(E));if(H)q.directive=H,q.expression=q.template.getAttribute(H)}(X=PH[q.directive])==null||X.call(PH,q,Q);continue}let z=FF(W,Q);if(z instanceof CH){if(u7.get(q)!==z.template)u7.set(q,z.template),z=new Q7(z.template,z.state,GJ),q.value=z,m7.set(q,z);else(J=m7.get(q))==null||J.update(z.state);continue}if(z){if(q instanceof _1){if(q.attributeName.startsWith("aria-"))z=String(z)}if(q instanceof _1)if(typeof z==="boolean")q.booleanValue=z;else if(typeof z==="function")q.element[q.attributeName]=z;else q.value=z;else q.value=z,u7.delete(q),m7.delete(q)}else if(q instanceof _1)q.value=void 0;else q.value=void 0,u7.delete(q),m7.delete(q)}}},UF={"!":(Y)=>!Y,"!!":(Y)=>!!Y,"==":(Y,Z)=>Y==Z,"!=":(Y,Z)=>Y!=Z,">":(Y,Z)=>Y>Z,">=":(Y,Z)=>Y>=Z,"<":(Y,Z)=>YY<=Z,"??":(Y,Z)=>Y!=null?Y:Z,"|":(Y,Z)=>{var Q;return(Q=VF[Z])==null?void 0:Q.call(VF,Y)}};function YC(Y){return ZC(Y,{boolean:/true|false/,number:/-?\d+\.?\d*/,string:/(["'])((?:\\.|[^\\])*?)\1/,operator:/[!=><][=!]?|\?\?|\|/,ws:/\s+/,param:/[$a-z_][$\w]*/i}).filter(({type:Z})=>Z!=="ws")}function FF(Y,Z={}){var Q,X,J,W,q,z,H;let E=YC(Y);if(E.length===0||E.some(({type:K})=>!K))return IZ(Y);if(((Q=E[0])==null?void 0:Q.token)===">"){let K=Z[(X=E[1])==null?void 0:X.token];if(!K)return IZ(Y);let G={...Z};K.state=G;let U=E.slice(2);for(let V=0;V{if(!Z.has(Y))throw TypeError("Cannot "+Q)},IH=(Y,Z,Q)=>{return hH(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},TZ=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},o7=(Y,Z,Q,X)=>{return hH(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},MH=(Y,Z,Q)=>{return hH(Y,Z,"access private method"),Q},ZY,VJ,QY,SH,RF,UJ,TH,xH={mediatargetlivewindow:"targetlivewindow",mediastreamtype:"streamtype"},BF=f0.createElement("template");BF.innerHTML=` `;class XY extends P.HTMLElement{constructor(){super();if(TZ(this,SH),TZ(this,UJ),TZ(this,ZY,void 0),TZ(this,VJ,void 0),TZ(this,QY,void 0),this.shadowRoot)this.renderRoot=this.shadowRoot;else this.renderRoot=this.attachShadow({mode:"open"}),this.createRenderer();let Y=new MutationObserver((Z)=>{var Q;if(this.mediaController&&!((Q=this.mediaController)==null?void 0:Q.breakpointsComputed))return;if(Z.some((X)=>{let J=X.target;if(J===this)return!0;if(J.localName!=="media-controller")return!1;if(xH[X.attributeName])return!0;if(X.attributeName.startsWith("breakpoint"))return!0;return!1}))this.render()});Y.observe(this,{attributes:!0}),Y.observe(this.renderRoot,{attributes:!0,subtree:!0}),this.addEventListener(W8.BREAKPOINTS_COMPUTED,this.render),MH(this,SH,RF).call(this,"template")}get mediaController(){return this.renderRoot.querySelector("media-controller")}get template(){var Y;return(Y=IH(this,ZY))!=null?Y:this.constructor.template}set template(Y){if(Y===null){this.removeAttribute("template");return}if(typeof Y==="string")this.setAttribute("template",Y);else if(Y instanceof HTMLTemplateElement)o7(this,ZY,Y),o7(this,QY,null),this.createRenderer()}get props(){var Y,Z,Q;let X=[...Array.from((Z=(Y=this.mediaController)==null?void 0:Y.attributes)!=null?Z:[]).filter(({name:W})=>{return xH[W]||W.startsWith("breakpoint")}),...Array.from(this.attributes)],J={};for(let W of X){let q=(Q=xH[W.name])!=null?Q:LV(W.name),{value:z}=W;if(z!=null){if(yQ(z))z=parseFloat(z);J[q]=z===""?!0:z}else J[q]=!1}return J}attributeChangedCallback(Y,Z,Q){if(Y==="template"&&Z!=Q)MH(this,UJ,TH).call(this)}connectedCallback(){MH(this,UJ,TH).call(this)}createRenderer(){if(this.template instanceof HTMLTemplateElement&&this.template!==IH(this,VJ))o7(this,VJ,this.template),this.renderer=new Q7(this.template,this.props,this.constructor.processor),this.renderRoot.textContent="",this.renderRoot.append(BF.content.cloneNode(!0),this.renderer)}render(){var Y;(Y=this.renderer)==null||Y.update(this.props)}}ZY=new WeakMap;VJ=new WeakMap;QY=new WeakMap;SH=new WeakSet;RF=function(Y){if(Object.prototype.hasOwnProperty.call(this,Y)){let Z=this[Y];delete this[Y],this[Y]=Z}};UJ=new WeakSet;TH=function(){var Y;let Z=this.getAttribute("template");if(!Z||Z===IH(this,QY))return;let Q=this.getRootNode(),X=(Y=Q==null?void 0:Q.getElementById)==null?void 0:Y.call(Q,Z);if(X){o7(this,QY,Z),o7(this,ZY,X),this.createRenderer();return}if(QC(Z))o7(this,QY,Z),XC(Z).then((J)=>{let W=f0.createElement("template");W.innerHTML=J,o7(this,ZY,W),this.createRenderer()}).catch(console.error)};XY.observedAttributes=["template"];XY.processor=GJ;function QC(Y){if(!/^(\/|\.\/|https?:\/\/)/.test(Y))return!1;let Z=/^https?:\/\//.test(Y)?void 0:location.origin;try{new URL(Y,Z)}catch(Q){return!1}return!0}async function XC(Y){let Z=await fetch(Y);if(Z.status!==200)throw Error(`Failed to load resource: the server responded with a status of ${Z.status}`);return Z.text()}if(!P.customElements.get("media-theme"))P.customElements.define("media-theme",XY);function NF({anchor:Y,floating:Z,placement:Q}){let X=JC({anchor:Y,floating:Z}),{x:J,y:W}=qC(X,Q);return{x:J,y:W}}function JC({anchor:Y,floating:Z}){return{anchor:WC(Y,Z.offsetParent),floating:{x:0,y:0,width:Z.offsetWidth,height:Z.offsetHeight}}}function WC(Y,Z){var Q;let X=Y.getBoundingClientRect(),J=(Q=Z==null?void 0:Z.getBoundingClientRect())!=null?Q:{x:0,y:0};return{x:X.x-J.x,y:X.y-J.y,width:X.width,height:X.height}}function qC({anchor:Y,floating:Z},Q){let X=HC(Q)==="x"?"y":"x",J=X==="y"?"height":"width",W=$F(Q),q=Y.x+Y.width/2-Z.width/2,z=Y.y+Y.height/2-Z.height/2,H=Y[J]/2-Z[J]/2,E;switch(W){case"top":E={x:q,y:Y.y-Z.height};break;case"bottom":E={x:q,y:Y.y+Y.height};break;case"right":E={x:Y.x+Y.width,y:z};break;case"left":E={x:Y.x-Z.width,y:z};break;default:E={x:Y.x,y:Y.y}}switch(Q.split("-")[1]){case"start":E[X]-=H;break;case"end":E[X]+=H;break}return E}function $F(Y){return Y.split("-")[0]}function HC(Y){return["top","bottom"].includes($F(Y))?"y":"x"}class d7 extends Event{constructor({action:Y="auto",relatedTarget:Z,...Q}){super("invoke",Q);this.action=Y,this.relatedTarget=Z}}class fH extends Event{constructor({newState:Y,oldState:Z,...Q}){super("toggle",Q);this.newState=Y,this.oldState=Z}}var dH=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},x0=(Y,Z,Q)=>{return dH(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},y0=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},Y6=(Y,Z,Q,X)=>{return dH(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},k0=(Y,Z,Q)=>{return dH(Y,Z,"access private method"),Q},Z6,n7,J7,FJ,RJ,s7,yZ,yH,LF,$J,lH,LJ,BJ,kH,gH,OF,bH,jF,_H,AF,JY,WY,qY,kZ,OJ,nH,vH,DF,sH,wF,pH,PF,iH,CF,cH,MF,uH,xF,hZ,jJ,mH,IF,fZ,AJ,NJ,oH;function Q6({type:Y,text:Z,value:Q,checked:X}){let J=f0.createElement("media-chrome-menu-item");if(J.type=Y!=null?Y:"",J.part.add("menu-item"),Y)J.part.add(Y);J.value=Q,J.checked=X;let W=f0.createElement("span");return W.textContent=Z,J.append(W),J}function w8(Y,Z){let Q=Y.querySelector(`:scope > [slot="${Z}"]`);if((Q==null?void 0:Q.nodeName)=="SLOT")Q=Q.assignedElements({flatten:!0})[0];if(Q)return Q=Q.cloneNode(!0),Q;let X=Y.shadowRoot.querySelector(`[name="${Z}"] > svg`);if(X)return X.cloneNode(!0);return""}function zC(Y){return`
`}var l7={STYLE:"style",HIDDEN:"hidden",DISABLED:"disabled",ANCHOR:"anchor"};class W1 extends P.HTMLElement{constructor(){super();if(y0(this,yH),y0(this,$J),y0(this,BJ),y0(this,gH),y0(this,bH),y0(this,_H),y0(this,qY),y0(this,OJ),y0(this,vH),y0(this,sH),y0(this,pH),y0(this,iH),y0(this,cH),y0(this,uH),y0(this,hZ),y0(this,mH),y0(this,fZ),y0(this,NJ),y0(this,Z6,null),y0(this,n7,null),y0(this,J7,null),y0(this,FJ,new Set),y0(this,RJ,void 0),y0(this,s7,!1),y0(this,yZ,null),y0(this,LJ,()=>{let Y=x0(this,FJ),Z=new Set(this.items);for(let Q of Y)if(!Z.has(Q))this.dispatchEvent(new CustomEvent("removemenuitem",{detail:Q}));for(let Q of Z)if(!Y.has(Q))this.dispatchEvent(new CustomEvent("addmenuitem",{detail:Q}));Y6(this,FJ,Z)}),y0(this,JY,()=>{k0(this,qY,kZ).call(this),k0(this,OJ,nH).call(this,!1)}),y0(this,WY,()=>{k0(this,qY,kZ).call(this)}),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Y=u0(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(Y)}this.container=this.shadowRoot.querySelector("#container"),this.defaultSlot=this.shadowRoot.querySelector("slot:not([name])"),this.shadowRoot.addEventListener("slotchange",this),Y6(this,RJ,new MutationObserver(x0(this,LJ))),x0(this,RJ).observe(this.defaultSlot,{childList:!0})}static get observedAttributes(){return[l7.DISABLED,l7.HIDDEN,l7.STYLE,l7.ANCHOR,R0.MEDIA_CONTROLLER]}static formatMenuItemText(Y,Z){return Y}enable(){this.addEventListener("click",this),this.addEventListener("focusout",this),this.addEventListener("keydown",this),this.addEventListener("invoke",this),this.addEventListener("toggle",this)}disable(){this.removeEventListener("click",this),this.removeEventListener("focusout",this),this.removeEventListener("keyup",this),this.removeEventListener("invoke",this),this.removeEventListener("toggle",this)}handleEvent(Y){switch(Y.type){case"slotchange":k0(this,yH,LF).call(this,Y);break;case"invoke":k0(this,gH,OF).call(this,Y);break;case"click":k0(this,vH,DF).call(this,Y);break;case"toggle":k0(this,pH,PF).call(this,Y);break;case"focusout":k0(this,cH,MF).call(this,Y);break;case"keydown":k0(this,uH,xF).call(this,Y);break}}connectedCallback(){var Y,Z;if(Y6(this,yZ,ZZ(this.shadowRoot,":host")),k0(this,BJ,kH).call(this),!this.hasAttribute("disabled"))this.enable();if(!this.role)this.role="menu";if(Y6(this,Z6,gQ(this)),(Z=(Y=x0(this,Z6))==null?void 0:Y.associateElement)==null||Z.call(Y,this),!this.hidden)L6(gZ(this),x0(this,JY)),L6(this,x0(this,WY));k0(this,$J,lH).call(this)}disconnectedCallback(){var Y,Z;O6(gZ(this),x0(this,JY)),O6(this,x0(this,WY)),this.disable(),(Z=(Y=x0(this,Z6))==null?void 0:Y.unassociateElement)==null||Z.call(Y,this),Y6(this,Z6,null)}attributeChangedCallback(Y,Z,Q){var X,J,W,q;if(Y===l7.HIDDEN&&Q!==Z){if(!x0(this,s7))Y6(this,s7,!0);if(this.hidden)k0(this,_H,AF).call(this);else k0(this,bH,jF).call(this);this.dispatchEvent(new fH({oldState:this.hidden?"open":"closed",newState:this.hidden?"closed":"open",bubbles:!0}))}else if(Y===R0.MEDIA_CONTROLLER){if(Z)(J=(X=x0(this,Z6))==null?void 0:X.unassociateElement)==null||J.call(X,this),Y6(this,Z6,null);if(Q&&this.isConnected)Y6(this,Z6,gQ(this)),(q=(W=x0(this,Z6))==null?void 0:W.associateElement)==null||q.call(W,this)}else if(Y===l7.DISABLED&&Q!==Z)if(Q==null)this.enable();else this.disable();else if(Y===l7.STYLE&&Q!==Z)k0(this,BJ,kH).call(this)}formatMenuItemText(Y,Z){return this.constructor.formatMenuItemText(Y,Z)}get anchor(){return this.getAttribute("anchor")}set anchor(Y){this.setAttribute("anchor",`${Y}`)}get anchorElement(){var Y;if(this.anchor)return(Y=D7(this))==null?void 0:Y.querySelector(`#${this.anchor}`);return null}get items(){return this.defaultSlot.assignedElements({flatten:!0}).filter(EC)}get radioGroupItems(){return this.items.filter((Y)=>Y.role==="menuitemradio")}get checkedItems(){return this.items.filter((Y)=>Y.checked)}get value(){var Y,Z;return(Z=(Y=this.checkedItems[0])==null?void 0:Y.value)!=null?Z:""}set value(Y){let Z=this.items.find((Q)=>Q.value===Y);if(!Z)return;k0(this,NJ,oH).call(this,Z)}focus(){if(Y6(this,n7,YZ()),this.items.length){k0(this,fZ,AJ).call(this,this.items[0]),this.items[0].focus();return}let Y=this.querySelector('[autofocus], [tabindex]:not([tabindex="-1"]), [role="menu"]');Y==null||Y.focus()}handleSelect(Y){var Z;let Q=k0(this,hZ,jJ).call(this,Y);if(!Q)return;if(k0(this,NJ,oH).call(this,Q,Q.type==="checkbox"),x0(this,J7)&&!this.hidden)(Z=x0(this,n7))==null||Z.focus(),this.hidden=!0}get keysUsed(){return["Enter","Escape","Tab"," ","ArrowDown","ArrowUp","Home","End"]}handleMove(Y){var Z,Q;let{key:X}=Y,J=this.items,W=(Q=(Z=k0(this,hZ,jJ).call(this,Y))!=null?Z:k0(this,mH,IF).call(this))!=null?Q:J[0],q=J.indexOf(W),z=Math.max(0,q);if(X==="ArrowDown")z++;else if(X==="ArrowUp")z--;else if(Y.key==="Home")z=0;else if(Y.key==="End")z=J.length-1;if(z<0)z=J.length-1;if(z>J.length-1)z=0;k0(this,fZ,AJ).call(this,J[z]),J[z].focus()}}Z6=new WeakMap;n7=new WeakMap;J7=new WeakMap;FJ=new WeakMap;RJ=new WeakMap;s7=new WeakMap;yZ=new WeakMap;yH=new WeakSet;LF=function(Y){let Z=Y.target;for(let Q of Z.assignedNodes({flatten:!0}))if(Q.nodeType===3&&Q.textContent.trim()==="")Q.remove();if(["header","title"].includes(Z.name))k0(this,$J,lH).call(this);if(!Z.name)x0(this,LJ).call(this)};$J=new WeakSet;lH=function(){let Y=this.shadowRoot.querySelector('slot[name="header"]'),Z=this.shadowRoot.querySelector('slot[name="title"]');Y.hidden=Z.assignedNodes().length===0&&Y.assignedNodes().length===0};LJ=new WeakMap;BJ=new WeakSet;kH=function(){var Y;let Z=this.shadowRoot.querySelector("#layout-row"),Q=(Y=getComputedStyle(this).getPropertyValue("--media-menu-layout"))==null?void 0:Y.trim();Z.setAttribute("media",Q==="row"?"":"width:0")};gH=new WeakSet;OF=function(Y){if(Y6(this,J7,Y.relatedTarget),!S1(this,Y.relatedTarget))this.hidden=!this.hidden};bH=new WeakSet;jF=function(){var Y;(Y=x0(this,J7))==null||Y.setAttribute("aria-expanded","true"),this.addEventListener("transitionend",()=>this.focus(),{once:!0}),L6(gZ(this),x0(this,JY)),L6(this,x0(this,WY))};_H=new WeakSet;AF=function(){var Y;(Y=x0(this,J7))==null||Y.setAttribute("aria-expanded","false"),O6(gZ(this),x0(this,JY)),O6(this,x0(this,WY))};JY=new WeakMap;WY=new WeakMap;qY=new WeakSet;kZ=function(Y){if(this.hasAttribute("mediacontroller")&&!this.anchor)return;if(this.hidden||!this.anchorElement)return;let{x:Z,y:Q}=NF({anchor:this.anchorElement,floating:this,placement:"top-start"});Y!=null||(Y=this.offsetWidth);let J=gZ(this).getBoundingClientRect(),W=J.width-Z-Y,q=J.height-Q-this.offsetHeight,{style:z}=x0(this,yZ);z.setProperty("position","absolute"),z.setProperty("right",`${Math.max(0,W)}px`),z.setProperty("--_menu-bottom",`${q}px`);let H=getComputedStyle(this),K=z.getPropertyValue("--_menu-bottom")===H.bottom?q:parseFloat(H.bottom),G=J.height-K-parseFloat(H.marginBottom);this.style.setProperty("--_menu-max-height",`${G}px`)};OJ=new WeakSet;nH=function(Y){let Z=this.querySelector('[role="menuitem"][aria-haspopup][aria-expanded="true"]'),Q=Z==null?void 0:Z.querySelector('[role="menu"]'),{style:X}=x0(this,yZ);if(!Y)X.setProperty("--media-menu-transition-in","none");if(Q){let J=Q.offsetHeight,W=Math.max(Q.offsetWidth,Z.offsetWidth);this.style.setProperty("min-width",`${W}px`),this.style.setProperty("min-height",`${J}px`),k0(this,qY,kZ).call(this,W)}else this.style.removeProperty("min-width"),this.style.removeProperty("min-height"),k0(this,qY,kZ).call(this);X.removeProperty("--media-menu-transition-in")};vH=new WeakSet;DF=function(Y){var Z;if(Y.stopPropagation(),Y.composedPath().includes(x0(this,sH,wF))){(Z=x0(this,n7))==null||Z.focus(),this.hidden=!0;return}let Q=k0(this,hZ,jJ).call(this,Y);if(!Q||Q.hasAttribute("disabled"))return;k0(this,fZ,AJ).call(this,Q),this.handleSelect(Y)};sH=new WeakSet;wF=function(){var Y;return(Y=this.shadowRoot.querySelector('slot[name="header"]').assignedElements({flatten:!0}))==null?void 0:Y.find((Q)=>Q.matches('button[part~="back"]'))};pH=new WeakSet;PF=function(Y){if(Y.target===this)return;k0(this,iH,CF).call(this);let Z=Array.from(this.querySelectorAll('[role="menuitem"][aria-haspopup]'));for(let Q of Z){if(Q.invokeTargetElement==Y.target)continue;if(Y.newState=="open"&&Q.getAttribute("aria-expanded")=="true"&&!Q.invokeTargetElement.hidden)Q.invokeTargetElement.dispatchEvent(new d7({relatedTarget:Q}))}for(let Q of Z)Q.setAttribute("aria-expanded",`${!Q.submenuElement.hidden}`);k0(this,OJ,nH).call(this,!0)};iH=new WeakSet;CF=function(){let Z=this.querySelector('[role="menuitem"] > [role="menu"]:not([hidden])');this.container.classList.toggle("has-expanded",!!Z)};cH=new WeakSet;MF=function(Y){var Z;if(!S1(this,Y.relatedTarget)){if(x0(this,s7))(Z=x0(this,n7))==null||Z.focus();if(x0(this,J7)&&x0(this,J7)!==Y.relatedTarget&&!this.hidden)this.hidden=!0}};uH=new WeakSet;xF=function(Y){var Z,Q,X,J,W;let{key:q,ctrlKey:z,altKey:H,metaKey:E}=Y;if(z||H||E)return;if(!this.keysUsed.includes(q))return;if(Y.preventDefault(),Y.stopPropagation(),q==="Tab"){if(x0(this,s7)){this.hidden=!0;return}if(Y.shiftKey)(Q=(Z=this.previousElementSibling)==null?void 0:Z.focus)==null||Q.call(Z);else(J=(X=this.nextElementSibling)==null?void 0:X.focus)==null||J.call(X);this.blur()}else if(q==="Escape"){if((W=x0(this,n7))==null||W.focus(),x0(this,s7))this.hidden=!0}else if(q==="Enter"||q===" ")this.handleSelect(Y);else this.handleMove(Y)};hZ=new WeakSet;jJ=function(Y){return Y.composedPath().find((Z)=>{return["menuitemradio","menuitemcheckbox"].includes(Z.role)})};mH=new WeakSet;IF=function(){return this.items.find((Y)=>Y.tabIndex===0)};fZ=new WeakSet;AJ=function(Y){for(let Z of this.items)Z.tabIndex=Z===Y?0:-1};NJ=new WeakSet;oH=function(Y,Z){let Q=[...this.checkedItems];if(Y.type==="radio")this.radioGroupItems.forEach((X)=>X.checked=!1);if(Z)Y.checked=!Y.checked;else Y.checked=!0;if(this.checkedItems.some((X,J)=>X!=Q[J]))this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))};W1.shadowRootOptions={mode:"open"};W1.getTemplateHTML=zC;function EC(Y){return["menuitem","menuitemradio","menuitemcheckbox"].includes(Y==null?void 0:Y.role)}function gZ(Y){var Z;return(Z=Y.getAttribute("bounds")?c8(Y,`#${Y.getAttribute("bounds")}`):p0(Y)||Y.parentElement)!=null?Z:Y}if(!P.customElements.get("media-chrome-menu"))P.customElements.define("media-chrome-menu",W1);var Zz=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},X6=(Y,Z,Q)=>{return Zz(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},M6=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},rH=(Y,Z,Q,X)=>{return Zz(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},P8=(Y,Z,Q)=>{return Zz(Y,Z,"access private method"),Q},DJ,_Z,aH,SF,PJ,Qz,Xz,TF,J6,HY,vZ,tH,hF,wJ,eH;function KC(Y){return` ${this.getSuffixSlotInnerHTML(Y)} `}function GC(Y){return""}var K8={TYPE:"type",VALUE:"value",CHECKED:"checked",DISABLED:"disabled"};class G8 extends P.HTMLElement{constructor(){super();if(M6(this,aH),M6(this,PJ),M6(this,Xz),M6(this,HY),M6(this,tH),M6(this,wJ),M6(this,DJ,!1),M6(this,_Z,void 0),M6(this,J6,()=>{var Y,Z;if(this.submenuElement.items)this.setAttribute("submenusize",`${this.submenuElement.items.length}`);let Q=this.shadowRoot.querySelector('slot[name="description"]'),X=(Y=this.submenuElement.checkedItems)==null?void 0:Y[0],J=(Z=X==null?void 0:X.dataset.description)!=null?Z:X==null?void 0:X.text,W=f0.createElement("span");W.textContent=J!=null?J:"",Q.replaceChildren(W)}),!this.shadowRoot){this.attachShadow(this.constructor.shadowRootOptions);let Y=u0(this.attributes);this.shadowRoot.innerHTML=this.constructor.getTemplateHTML(Y)}this.shadowRoot.addEventListener("slotchange",this)}static get observedAttributes(){return[K8.TYPE,K8.DISABLED,K8.CHECKED,K8.VALUE]}enable(){if(!this.hasAttribute("tabindex"))this.setAttribute("tabindex","-1");if(bZ(this)&&!this.hasAttribute("aria-checked"))this.setAttribute("aria-checked","false");this.addEventListener("click",this),this.addEventListener("keydown",this)}disable(){this.removeAttribute("tabindex"),this.removeEventListener("click",this),this.removeEventListener("keydown",this),this.removeEventListener("keyup",this)}handleEvent(Y){switch(Y.type){case"slotchange":P8(this,aH,SF).call(this,Y);break;case"click":this.handleClick(Y);break;case"keydown":P8(this,tH,hF).call(this,Y);break;case"keyup":P8(this,HY,vZ).call(this,Y);break}}attributeChangedCallback(Y,Z,Q){if(Y===K8.CHECKED&&bZ(this)&&!X6(this,DJ))this.setAttribute("aria-checked",Q!=null?"true":"false");else if(Y===K8.TYPE&&Q!==Z)this.role="menuitem"+Q;else if(Y===K8.DISABLED&&Q!==Z)if(Q==null)this.enable();else this.disable()}connectedCallback(){if(!this.hasAttribute(K8.DISABLED))this.enable();if(this.role="menuitem"+this.type,rH(this,_Z,Yz(this,this.parentNode)),P8(this,wJ,eH).call(this),this.submenuElement)P8(this,PJ,Qz).call(this)}disconnectedCallback(){this.disable(),P8(this,wJ,eH).call(this),rH(this,_Z,null)}get invokeTarget(){return this.getAttribute("invoketarget")}set invokeTarget(Y){this.setAttribute("invoketarget",`${Y}`)}get invokeTargetElement(){var Y;if(this.invokeTarget)return(Y=D7(this))==null?void 0:Y.querySelector(`#${this.invokeTarget}`);return this.submenuElement}get submenuElement(){return this.shadowRoot.querySelector('slot[name="submenu"]').assignedElements({flatten:!0})[0]}get type(){var Y;return(Y=this.getAttribute(K8.TYPE))!=null?Y:""}set type(Y){this.setAttribute(K8.TYPE,`${Y}`)}get value(){var Y;return(Y=this.getAttribute(K8.VALUE))!=null?Y:this.text}set value(Y){this.setAttribute(K8.VALUE,Y)}get text(){var Y;return((Y=this.textContent)!=null?Y:"").trim()}get checked(){if(!bZ(this))return;return this.getAttribute("aria-checked")==="true"}set checked(Y){if(!bZ(this))return;if(rH(this,DJ,!0),this.setAttribute("aria-checked",Y?"true":"false"),Y)this.part.add("checked");else this.part.remove("checked")}handleClick(Y){if(bZ(this))return;if(this.invokeTargetElement&&S1(this,Y.target))this.invokeTargetElement.dispatchEvent(new d7({relatedTarget:this}))}get keysUsed(){return["Enter"," "]}}DJ=new WeakMap;_Z=new WeakMap;aH=new WeakSet;SF=function(Y){let Z=Y.target;if(!(Z==null?void 0:Z.name)){for(let X of Z.assignedNodes({flatten:!0}))if(X instanceof Text&&X.textContent.trim()==="")X.remove()}if(Z.name==="submenu")if(this.submenuElement)P8(this,PJ,Qz).call(this);else P8(this,Xz,TF).call(this)};PJ=new WeakSet;Qz=async function(){this.setAttribute("aria-haspopup","menu"),this.setAttribute("aria-expanded",`${!this.submenuElement.hidden}`),this.submenuElement.addEventListener("change",X6(this,J6)),this.submenuElement.addEventListener("addmenuitem",X6(this,J6)),this.submenuElement.addEventListener("removemenuitem",X6(this,J6)),X6(this,J6).call(this)};Xz=new WeakSet;TF=function(){this.removeAttribute("aria-haspopup"),this.removeAttribute("aria-expanded"),this.submenuElement.removeEventListener("change",X6(this,J6)),this.submenuElement.removeEventListener("addmenuitem",X6(this,J6)),this.submenuElement.removeEventListener("removemenuitem",X6(this,J6)),X6(this,J6).call(this)};J6=new WeakMap;HY=new WeakSet;vZ=function(Y){let{key:Z}=Y;if(!this.keysUsed.includes(Z)){this.removeEventListener("keyup",P8(this,HY,vZ));return}this.handleClick(Y)};tH=new WeakSet;hF=function(Y){let{metaKey:Z,altKey:Q,key:X}=Y;if(Z||Q||!this.keysUsed.includes(X)){this.removeEventListener("keyup",P8(this,HY,vZ));return}this.addEventListener("keyup",P8(this,HY,vZ),{once:!0})};wJ=new WeakSet;eH=function(){var Y;let Z=(Y=X6(this,_Z))==null?void 0:Y.radioGroupItems;if(!Z)return;let Q=Z.filter((X)=>X.getAttribute("aria-checked")==="true").pop();if(!Q)Q=Z[0];for(let X of Z)X.setAttribute("aria-checked","false");Q==null||Q.setAttribute("aria-checked","true")};G8.shadowRootOptions={mode:"open"};G8.getTemplateHTML=KC;G8.getSuffixSlotInnerHTML=GC;function bZ(Y){return Y.type==="radio"||Y.type==="checkbox"}function Yz(Y,Z){if(!Y)return null;let{host:Q}=Y.getRootNode();if(!Z&&Q)return Yz(Y,Q);if(Z==null?void 0:Z.items)return Z;return Yz(Z,Z==null?void 0:Z.parentNode)}if(!P.customElements.get("media-chrome-menu-item"))P.customElements.define("media-chrome-menu-item",G8);function VC(Y){return` ${W1.getTemplateHTML(Y)} `}class CJ extends W1{get anchorElement(){if(this.anchor!=="auto")return super.anchorElement;return p0(this).querySelector("media-settings-menu-button")}}CJ.getTemplateHTML=VC;if(!P.customElements.get("media-settings-menu"))P.customElements.define("media-settings-menu",CJ);function UC(Y){return` ${G8.getTemplateHTML.call(this,Y)} `}function FC(Y){return` `}class zY extends G8{}zY.shadowRootOptions={mode:"open"};zY.getTemplateHTML=UC;zY.getSuffixSlotInnerHTML=FC;if(!P.customElements.get("media-settings-menu-item"))P.customElements.define("media-settings-menu-item",zY);class t1 extends M0{connectedCallback(){if(super.connectedCallback(),this.invokeTargetElement)this.setAttribute("aria-haspopup","menu")}get invokeTarget(){return this.getAttribute("invoketarget")}set invokeTarget(Y){this.setAttribute("invoketarget",`${Y}`)}get invokeTargetElement(){var Y;if(this.invokeTarget)return(Y=D7(this))==null?void 0:Y.querySelector(`#${this.invokeTarget}`);return null}handleClick(){var Y;(Y=this.invokeTargetElement)==null||Y.dispatchEvent(new d7({relatedTarget:this}))}}if(!P.customElements.get("media-chrome-menu-button"))P.customElements.define("media-chrome-menu-button",t1);function RC(){return` `}function BC(){return v("Settings")}class pZ extends t1{static get observedAttributes(){return[...super.observedAttributes,"target"]}connectedCallback(){super.connectedCallback(),this.setAttribute("aria-label",v("settings"))}get invokeTargetElement(){if(this.invokeTarget!=null)return super.invokeTargetElement;return p0(this).querySelector("media-settings-menu")}}pZ.getSlotTemplateHTML=RC;pZ.getTooltipContentHTML=BC;if(!P.customElements.get("media-settings-menu-button"))P.customElements.define("media-settings-menu-button",pZ);var Hz=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},fF=(Y,Z,Q)=>{return Hz(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},MJ=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},Jz=(Y,Z,Q,X)=>{return Hz(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},xJ=(Y,Z,Q)=>{return Hz(Y,Z,"access private method"),Q},cZ,TJ,IJ,Wz,SJ,qz;class zz extends W1{constructor(){super(...arguments);MJ(this,IJ),MJ(this,SJ),MJ(this,cZ,[]),MJ(this,TJ,void 0)}static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_AUDIO_TRACK_LIST,A.MEDIA_AUDIO_TRACK_ENABLED,A.MEDIA_AUDIO_TRACK_UNAVAILABLE]}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_AUDIO_TRACK_ENABLED&&Z!==Q)this.value=Q;else if(Y===A.MEDIA_AUDIO_TRACK_LIST&&Z!==Q)Jz(this,cZ,$V(Q!=null?Q:"")),xJ(this,IJ,Wz).call(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("change",xJ(this,SJ,qz))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",xJ(this,SJ,qz))}get anchorElement(){var Y;if(this.anchor!=="auto")return super.anchorElement;return(Y=p0(this))==null?void 0:Y.querySelector("media-audio-track-menu-button")}get mediaAudioTrackList(){return fF(this,cZ)}set mediaAudioTrackList(Y){Jz(this,cZ,Y),xJ(this,IJ,Wz).call(this)}get mediaAudioTrackEnabled(){var Y;return(Y=K0(this,A.MEDIA_AUDIO_TRACK_ENABLED))!=null?Y:""}set mediaAudioTrackEnabled(Y){G0(this,A.MEDIA_AUDIO_TRACK_ENABLED,Y)}}cZ=new WeakMap;TJ=new WeakMap;IJ=new WeakSet;Wz=function(){if(fF(this,TJ)===JSON.stringify(this.mediaAudioTrackList))return;Jz(this,TJ,JSON.stringify(this.mediaAudioTrackList));let Y=this.mediaAudioTrackList;this.defaultSlot.textContent="",Y.sort((Z,Q)=>Z.id.localeCompare(Q.id,void 0,{numeric:!0}));for(let Z of Y){let Q=this.formatMenuItemText(Z.label,Z),X=Q6({type:"radio",text:Q,value:`${Z.id}`,checked:Z.enabled});X.prepend(w8(this,"checked-indicator")),this.defaultSlot.append(X)}};SJ=new WeakSet;qz=function(){if(this.value==null)return;let Y=new P.CustomEvent(b.MEDIA_AUDIO_TRACK_REQUEST,{composed:!0,bubbles:!0,detail:this.value});this.dispatchEvent(Y)};if(!P.customElements.get("media-audio-track-menu"))P.customElements.define("media-audio-track-menu",zz);var NC=``;function $C(){return` ${NC} `}function LC(){return v("Audio")}var yF=(Y)=>{let Z=v("Audio");Y.setAttribute("aria-label",Z)};class uZ extends t1{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_AUDIO_TRACK_ENABLED,A.MEDIA_AUDIO_TRACK_UNAVAILABLE]}connectedCallback(){super.connectedCallback(),yF(this)}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_LANG)yF(this)}get invokeTargetElement(){var Y;if(this.invokeTarget!=null)return super.invokeTargetElement;return(Y=p0(this))==null?void 0:Y.querySelector("media-audio-track-menu")}get mediaAudioTrackEnabled(){var Y;return(Y=K0(this,A.MEDIA_AUDIO_TRACK_ENABLED))!=null?Y:""}set mediaAudioTrackEnabled(Y){G0(this,A.MEDIA_AUDIO_TRACK_ENABLED,Y)}}uZ.getSlotTemplateHTML=$C;uZ.getTooltipContentHTML=LC;if(!P.customElements.get("media-audio-track-menu-button"))P.customElements.define("media-audio-track-menu-button",uZ);var Vz=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},OC=(Y,Z,Q)=>{return Vz(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},Ez=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},jC=(Y,Z,Q,X)=>{return Vz(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},hJ=(Y,Z,Q)=>{return Vz(Y,Z,"access private method"),Q},kJ,fJ,Kz,yJ,Gz,AC=` `;function DC(Y){return` ${W1.getTemplateHTML(Y)} `}class gJ extends W1{constructor(){super(...arguments);Ez(this,fJ),Ez(this,yJ),Ez(this,kJ,void 0)}static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_SUBTITLES_LIST,A.MEDIA_SUBTITLES_SHOWING]}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_SUBTITLES_LIST&&Z!==Q)hJ(this,fJ,Kz).call(this);else if(Y===A.MEDIA_SUBTITLES_SHOWING&&Z!==Q)this.value=Q||"",hJ(this,fJ,Kz).call(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("change",hJ(this,yJ,Gz))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",hJ(this,yJ,Gz))}get anchorElement(){if(this.anchor!=="auto")return super.anchorElement;return p0(this).querySelector("media-captions-menu-button")}get mediaSubtitlesList(){return kF(this,A.MEDIA_SUBTITLES_LIST)}set mediaSubtitlesList(Y){gF(this,A.MEDIA_SUBTITLES_LIST,Y)}get mediaSubtitlesShowing(){return kF(this,A.MEDIA_SUBTITLES_SHOWING)}set mediaSubtitlesShowing(Y){gF(this,A.MEDIA_SUBTITLES_SHOWING,Y)}}kJ=new WeakMap;fJ=new WeakSet;Kz=function(){var Y;let Z=OC(this,kJ)!==JSON.stringify(this.mediaSubtitlesList),Q=this.value!==this.getAttribute(A.MEDIA_SUBTITLES_SHOWING);if(!Z&&!Q)return;jC(this,kJ,JSON.stringify(this.mediaSubtitlesList)),this.defaultSlot.textContent="";let X=!this.value,J=Q6({type:"radio",text:this.formatMenuItemText(v("Off")),value:"off",checked:X});J.prepend(w8(this,"checked-indicator")),this.defaultSlot.append(J);let W=this.mediaSubtitlesList;for(let q of W){let z=Q6({type:"radio",text:this.formatMenuItemText(q.label,q),value:iQ(q),checked:this.value==iQ(q)});if(z.prepend(w8(this,"checked-indicator")),((Y=q.kind)!=null?Y:"subs")==="captions")z.append(w8(this,"captions-indicator"));this.defaultSlot.append(z)}};yJ=new WeakSet;Gz=function(){let Y=this.mediaSubtitlesShowing,Z=this.getAttribute(A.MEDIA_SUBTITLES_SHOWING),Q=this.value!==Z;if((Y==null?void 0:Y.length)&&Q)this.dispatchEvent(new P.CustomEvent(b.MEDIA_DISABLE_SUBTITLES_REQUEST,{composed:!0,bubbles:!0,detail:Y}));if(!this.value||!Q)return;let X=new P.CustomEvent(b.MEDIA_SHOW_SUBTITLES_REQUEST,{composed:!0,bubbles:!0,detail:this.value});this.dispatchEvent(X)};gJ.getTemplateHTML=DC;var kF=(Y,Z)=>{let Q=Y.getAttribute(Z);return Q?M7(Q):[]},gF=(Y,Z,Q)=>{if(!(Q==null?void 0:Q.length)){Y.removeAttribute(Z);return}let X=A6(Q);if(Y.getAttribute(Z)===X)return;Y.setAttribute(Z,X)};if(!P.customElements.get("media-captions-menu"))P.customElements.define("media-captions-menu",gJ);var wC=``,PC=``;function CC(){return` ${wC} ${PC} `}function MC(){return v("Captions")}var bF=(Y)=>{Y.setAttribute("data-captions-enabled",rQ(Y).toString())},_F=(Y)=>{Y.setAttribute("aria-label",v("closed captions"))};class mZ extends t1{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_SUBTITLES_LIST,A.MEDIA_SUBTITLES_SHOWING,A.MEDIA_LANG]}connectedCallback(){super.connectedCallback(),_F(this),bF(this)}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_SUBTITLES_SHOWING)bF(this);else if(Y===A.MEDIA_LANG)_F(this)}get invokeTargetElement(){var Y;if(this.invokeTarget!=null)return super.invokeTargetElement;return(Y=p0(this))==null?void 0:Y.querySelector("media-captions-menu")}get mediaSubtitlesList(){return vF(this,A.MEDIA_SUBTITLES_LIST)}set mediaSubtitlesList(Y){pF(this,A.MEDIA_SUBTITLES_LIST,Y)}get mediaSubtitlesShowing(){return vF(this,A.MEDIA_SUBTITLES_SHOWING)}set mediaSubtitlesShowing(Y){pF(this,A.MEDIA_SUBTITLES_SHOWING,Y)}}mZ.getSlotTemplateHTML=CC;mZ.getTooltipContentHTML=MC;var vF=(Y,Z)=>{let Q=Y.getAttribute(Z);return Q?M7(Q):[]},pF=(Y,Z,Q)=>{if(!(Q==null?void 0:Q.length)){Y.removeAttribute(Z);return}let X=A6(Q);if(Y.getAttribute(Z)===X)return;Y.setAttribute(Z,X)};if(!P.customElements.get("media-captions-menu-button"))P.customElements.define("media-captions-menu-button",mZ);var cF=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},KY=(Y,Z,Q)=>{return cF(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},Uz=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},EY=(Y,Z,Q)=>{return cF(Y,Z,"access private method"),Q},W7,GY,oZ,bJ,Rz,Fz={RATES:"rates"};class Bz extends W1{constructor(){super();Uz(this,GY),Uz(this,bJ),Uz(this,W7,new C7(this,Fz.RATES,{defaultValue:EH})),EY(this,GY,oZ).call(this)}static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_PLAYBACK_RATE,Fz.RATES]}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_PLAYBACK_RATE&&Z!=Q)this.value=Q,EY(this,GY,oZ).call(this);else if(Y===Fz.RATES&&Z!=Q)KY(this,W7).value=Q,EY(this,GY,oZ).call(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("change",EY(this,bJ,Rz))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",EY(this,bJ,Rz))}get anchorElement(){if(this.anchor!=="auto")return super.anchorElement;return p0(this).querySelector("media-playback-rate-menu-button")}get rates(){return KY(this,W7)}set rates(Y){if(!Y)KY(this,W7).value="";else if(Array.isArray(Y))KY(this,W7).value=Y.join(" ");else if(typeof Y==="string")KY(this,W7).value=Y;EY(this,GY,oZ).call(this)}get mediaPlaybackRate(){return B0(this,A.MEDIA_PLAYBACK_RATE,g7)}set mediaPlaybackRate(Y){D0(this,A.MEDIA_PLAYBACK_RATE,Y)}}W7=new WeakMap;GY=new WeakSet;oZ=function(){this.defaultSlot.textContent="";let Y=this.mediaPlaybackRate,Z=new Set(Array.from(KY(this,W7)).map((X)=>Number(X)));if(Y>0&&!Z.has(Y))Z.add(Y);let Q=Array.from(Z).sort((X,J)=>X-J);for(let X of Q){let J=Q6({type:"radio",text:this.formatMenuItemText(`${X}x`,X),value:X.toString(),checked:Y===X});J.prepend(w8(this,"checked-indicator")),this.defaultSlot.append(J)}};bJ=new WeakSet;Rz=function(){if(!this.value)return;let Y=new P.CustomEvent(b.MEDIA_PLAYBACK_RATE_REQUEST,{composed:!0,bubbles:!0,detail:this.value});this.dispatchEvent(Y)};if(!P.customElements.get("media-playback-rate-menu"))P.customElements.define("media-playback-rate-menu",Bz);var _J=1;function xC(Y){return` ${Y.mediaplaybackrate||_J}x `}function IC(){return v("Playback rate")}class dZ extends t1{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_PLAYBACK_RATE]}constructor(){var Y;super();this.container=this.shadowRoot.querySelector('slot[name="icon"]'),this.container.innerHTML=`${(Y=this.mediaPlaybackRate)!=null?Y:_J}x`}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_PLAYBACK_RATE){let X=Q?+Q:Number.NaN,J=!Number.isNaN(X)?X:_J;this.container.innerHTML=`${J}x`,this.setAttribute("aria-label",v("Playback rate {playbackRate}",{playbackRate:J}))}}get invokeTargetElement(){if(this.invokeTarget!=null)return super.invokeTargetElement;return p0(this).querySelector("media-playback-rate-menu")}get mediaPlaybackRate(){return B0(this,A.MEDIA_PLAYBACK_RATE,_J)}set mediaPlaybackRate(Y){D0(this,A.MEDIA_PLAYBACK_RATE,Y)}}dZ.getSlotTemplateHTML=xC;dZ.getTooltipContentHTML=IC;if(!P.customElements.get("media-playback-rate-menu-button"))P.customElements.define("media-playback-rate-menu-button",dZ);var $z=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},lZ=(Y,Z,Q)=>{return $z(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},vJ=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},uF=(Y,Z,Q,X)=>{return $z(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},VY=(Y,Z,Q)=>{return $z(Y,Z,"access private method"),Q},nZ,FY,UY,sZ,pJ,Nz;class Lz extends W1{constructor(){super(...arguments);vJ(this,UY),vJ(this,pJ),vJ(this,nZ,[]),vJ(this,FY,{})}static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_RENDITION_LIST,A.MEDIA_RENDITION_SELECTED,A.MEDIA_RENDITION_UNAVAILABLE,A.MEDIA_HEIGHT]}static formatMenuItemText(Y,Z){return super.formatMenuItemText(Y,Z)}static formatRendition(Y,{showBitrate:Z=!1}={}){let Q=`${Math.min(Y.width,Y.height)}p`;if(Z&&Y.bitrate){let X=Y.bitrate/1e6,J=`${X.toFixed(X<1?1:0)} Mbps`;return`${Q} (${J})`}return this.formatMenuItemText(Q,Y)}static compareRendition(Y,Z){var Q,X;return Z.height===Y.height?((Q=Z.bitrate)!=null?Q:0)-((X=Y.bitrate)!=null?X:0):Z.height-Y.height}attributeChangedCallback(Y,Z,Q){if(super.attributeChangedCallback(Y,Z,Q),Y===A.MEDIA_RENDITION_SELECTED&&Z!==Q)this.value=Q!=null?Q:"auto",VY(this,UY,sZ).call(this);else if(Y===A.MEDIA_RENDITION_LIST&&Z!==Q)uF(this,nZ,BV(Q)),VY(this,UY,sZ).call(this);else if(Y===A.MEDIA_HEIGHT&&Z!==Q)VY(this,UY,sZ).call(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("change",VY(this,pJ,Nz))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",VY(this,pJ,Nz))}get anchorElement(){if(this.anchor!=="auto")return super.anchorElement;return p0(this).querySelector("media-rendition-menu-button")}get mediaRenditionList(){return lZ(this,nZ)}set mediaRenditionList(Y){uF(this,nZ,Y),VY(this,UY,sZ).call(this)}get mediaRenditionSelected(){return K0(this,A.MEDIA_RENDITION_SELECTED)}set mediaRenditionSelected(Y){G0(this,A.MEDIA_RENDITION_SELECTED,Y)}get mediaHeight(){return B0(this,A.MEDIA_HEIGHT)}set mediaHeight(Y){D0(this,A.MEDIA_HEIGHT,Y)}compareRendition(Y,Z){return this.constructor.compareRendition(Y,Z)}formatMenuItemText(Y,Z){return this.constructor.formatMenuItemText(Y,Z)}formatRendition(Y,Z){return this.constructor.formatRendition(Y,Z)}showRenditionBitrate(Y){return this.mediaRenditionList.some((Z)=>Z!==Y&&Z.height===Y.height&&Z.bitrate!==Y.bitrate)}}nZ=new WeakMap;FY=new WeakMap;UY=new WeakSet;sZ=function(){if(lZ(this,FY).mediaRenditionList===JSON.stringify(this.mediaRenditionList)&&lZ(this,FY).mediaHeight===this.mediaHeight)return;lZ(this,FY).mediaRenditionList=JSON.stringify(this.mediaRenditionList),lZ(this,FY).mediaHeight=this.mediaHeight;let Y=this.mediaRenditionList.sort(this.compareRendition.bind(this)),Z=Y.find((q)=>q.id===this.mediaRenditionSelected);for(let q of Y)q.selected=q===Z;this.defaultSlot.textContent="";let Q=!this.mediaRenditionSelected;for(let q of Y){let z=this.formatRendition(q,{showBitrate:this.showRenditionBitrate(q)}),H=Q6({type:"radio",text:z,value:`${q.id}`,checked:q.selected&&!Q});H.prepend(w8(this,"checked-indicator")),this.defaultSlot.append(H)}let X=Z&&this.showRenditionBitrate(Z),J=Q?Z?this.formatMenuItemText(`${v("Auto")} • ${this.formatRendition(Z,{showBitrate:X})}`,Z):this.formatMenuItemText(`${v("Auto")} (${this.mediaHeight}p)`):this.formatMenuItemText(v("Auto")),W=Q6({type:"radio",text:J,value:"auto",checked:Q});W.dataset.description=J,W.prepend(w8(this,"checked-indicator")),this.defaultSlot.append(W)};pJ=new WeakSet;Nz=function(){if(this.value==null)return;let Y=new P.CustomEvent(b.MEDIA_RENDITION_REQUEST,{composed:!0,bubbles:!0,detail:this.value});this.dispatchEvent(Y)};if(!P.customElements.get("media-rendition-menu"))P.customElements.define("media-rendition-menu",Lz);var SC=``;function TC(){return` ${SC} `}function hC(){return v("Quality")}class iZ extends t1{static get observedAttributes(){return[...super.observedAttributes,A.MEDIA_RENDITION_SELECTED,A.MEDIA_RENDITION_UNAVAILABLE,A.MEDIA_HEIGHT]}connectedCallback(){super.connectedCallback(),this.setAttribute("aria-label",v("quality"))}get invokeTargetElement(){if(this.invokeTarget!=null)return super.invokeTargetElement;return p0(this).querySelector("media-rendition-menu")}get mediaRenditionSelected(){return K0(this,A.MEDIA_RENDITION_SELECTED)}set mediaRenditionSelected(Y){G0(this,A.MEDIA_RENDITION_SELECTED,Y)}get mediaHeight(){return B0(this,A.MEDIA_HEIGHT)}set mediaHeight(Y){D0(this,A.MEDIA_HEIGHT,Y)}}iZ.getSlotTemplateHTML=TC;iZ.getTooltipContentHTML=hC;if(!P.customElements.get("media-rendition-menu-button"))P.customElements.define("media-rendition-menu-button",iZ);var Az=(Y,Z,Q)=>{if(!Z.has(Y))throw TypeError("Cannot "+Q)},q6=(Y,Z,Q)=>{return Az(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)},W6=(Y,Z,Q)=>{if(Z.has(Y))throw TypeError("Cannot add the same private member more than once");Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q)},mF=(Y,Z,Q,X)=>{return Az(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q},V8=(Y,Z,Q)=>{return Az(Y,Z,"access private method"),Q},BY,rZ,lJ,i7,RY,Dz,oF,cJ,Oz,uJ,jz,dF,oJ,dJ,mJ;function fC(Y){return` ${W1.getTemplateHTML(Y)} `}class nJ extends W1{constructor(){super();W6(this,rZ),W6(this,i7),W6(this,Dz),W6(this,cJ),W6(this,jz),W6(this,BY,!1),W6(this,uJ,(Y)=>{let Z=Y.target,Q=(Z==null?void 0:Z.nodeName)==="VIDEO",X=V8(this,cJ,Oz).call(this,Z);if(Q||X)if(!q6(this,BY))V8(this,jz,dF).call(this,Y);else V8(this,i7,RY).call(this)}),W6(this,oJ,(Y)=>{let Z=Y.target,Q=this.contains(Z),X=Y.button===2,J=(Z==null?void 0:Z.nodeName)==="VIDEO",W=V8(this,cJ,Oz).call(this,Z);if(Q)return;if(X&&(J||W))return;V8(this,i7,RY).call(this)}),W6(this,dJ,(Y)=>{if(Y.key==="Escape")V8(this,i7,RY).call(this)}),W6(this,mJ,(Y)=>{var Z,Q;let X=Y.target;if((Z=X.matches)==null?void 0:Z.call(X,'button[invoke="copy"]')){let J=(Q=X.closest("media-context-menu-item"))==null?void 0:Q.querySelector('input[slot="copy"]');J&&navigator.clipboard.writeText(J.value)}V8(this,i7,RY).call(this)}),this.setAttribute("noautohide",""),V8(this,rZ,lJ).call(this)}connectedCallback(){super.connectedCallback(),p0(this).addEventListener("contextmenu",q6(this,uJ)),this.addEventListener("click",q6(this,mJ))}disconnectedCallback(){super.disconnectedCallback(),p0(this).removeEventListener("contextmenu",q6(this,uJ)),this.removeEventListener("click",q6(this,mJ)),document.removeEventListener("mousedown",q6(this,oJ)),document.removeEventListener("keydown",q6(this,dJ))}}BY=new WeakMap;rZ=new WeakSet;lJ=function(){this.hidden=!q6(this,BY)};i7=new WeakSet;RY=function(){mF(this,BY,!1),V8(this,rZ,lJ).call(this)};Dz=new WeakSet;oF=function(){document.querySelectorAll("media-context-menu").forEach((Z)=>{var Q;if(Z!==this)V8(Q=Z,i7,RY).call(Q)})};cJ=new WeakSet;Oz=function(Y){if(!Y)return!1;if(Y.hasAttribute("slot")&&Y.getAttribute("slot")==="media")return!0;if(Y.nodeName.includes("-")&&Y.tagName.includes("-"))return Y.hasAttribute("src")||Y.hasAttribute("poster")||Y.hasAttribute("preload")||Y.hasAttribute("playsinline");return!1};uJ=new WeakMap;jz=new WeakSet;dF=function(Y){Y.preventDefault(),V8(this,Dz,oF).call(this),mF(this,BY,!0),this.style.position="fixed",this.style.left=`${Y.clientX}px`,this.style.top=`${Y.clientY}px`,V8(this,rZ,lJ).call(this),document.addEventListener("mousedown",q6(this,oJ),{once:!0}),document.addEventListener("keydown",q6(this,dJ),{once:!0})};oJ=new WeakMap;dJ=new WeakMap;mJ=new WeakMap;nJ.getTemplateHTML=fC;if(!P.customElements.get("media-context-menu"))P.customElements.define("media-context-menu",nJ);function yC(Y){return` ${G8.getTemplateHTML.call(this,Y)} `}class aZ extends G8{}aZ.shadowRootOptions={mode:"open"};aZ.getTemplateHTML=yC;if(!P.customElements.get("media-context-menu-item"))P.customElements.define("media-context-menu-item",aZ);var HR=(Y)=>{throw TypeError(Y)},Iz=(Y,Z,Q)=>Z.has(Y)||HR("Cannot "+Q),T0=(Y,Z,Q)=>(Iz(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)),C8=(Y,Z,Q)=>Z.has(Y)?HR("Cannot add the same private member more than once"):Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q),z6=(Y,Z,Q,X)=>(Iz(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q),q1=(Y,Z,Q)=>(Iz(Y,Z,"access private method"),Q),ZW=class{addEventListener(){}removeEventListener(){}dispatchEvent(Y){return!0}};if(typeof DocumentFragment>"u"){class Y extends ZW{}globalThis.DocumentFragment=Y}var Sz=class extends ZW{},kC=class extends ZW{},gC={get(Y){},define(Y,Z,Q){},getName(Y){return null},upgrade(Y){},whenDefined(Y){return Promise.resolve(Sz)}},sJ,bC=class{constructor(Y,Z={}){C8(this,sJ),z6(this,sJ,Z==null?void 0:Z.detail)}get detail(){return T0(this,sJ)}initCustomEvent(){}};sJ=new WeakMap;function _C(Y,Z){return new Sz}var zR={document:{createElement:_C},DocumentFragment,customElements:gC,CustomEvent:bC,EventTarget:ZW,HTMLElement:Sz,HTMLVideoElement:kC},ER=typeof window>"u"||typeof globalThis.customElements>"u",H6=ER?zR:globalThis,YW=ER?zR.document:globalThis.document;function vC(Y){let Z="";return Object.entries(Y).forEach(([Q,X])=>{X!=null&&(Z+=`${Pz(Q)}: ${X}; `)}),Z?Z.trim():void 0}function Pz(Y){return Y.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function KR(Y){return Y.replace(/[-_]([a-z])/g,(Z,Q)=>Q.toUpperCase())}function e1(Y){if(Y==null)return;let Z=+Y;return Number.isNaN(Z)?void 0:Z}function GR(Y){let Z=pC(Y).toString();return Z?"?"+Z:""}function pC(Y){let Z={};for(let Q in Y)Y[Q]!=null&&(Z[Q]=Y[Q]);return new URLSearchParams(Z)}var VR=(Y,Z)=>!Y||!Z?!1:Y.contains(Z)?!0:VR(Y,Z.getRootNode().host),UR="mux.com",cC=()=>{try{return"3.11.4"}catch{}return"UNKNOWN"},uC=cC(),FR=()=>uC,mC=(Y,{token:Z,customDomain:Q=UR,thumbnailTime:X,programTime:J}={})=>{var W;let q=Z==null?X:void 0,{aud:z}=(W=p6(Z))!=null?W:{};if(!(Z&&z!=="t"))return`https://image.${Q}/${Y}/thumbnail.webp${GR({token:Z,time:q,program_time:J})}`},oC=(Y,{token:Z,customDomain:Q=UR,programStartTime:X,programEndTime:J}={})=>{var W;let{aud:q}=(W=p6(Z))!=null?W:{};if(!(Z&&q!=="s"))return`https://image.${Q}/${Y}/storyboard.vtt${GR({token:Z,format:"webp",program_start_time:X,program_end_time:J})}`},Tz=(Y)=>{if(Y){if([C0.LIVE,C0.ON_DEMAND].includes(Y))return Y;if(Y!=null&&Y.includes("live"))return C0.LIVE}},dC={crossorigin:"crossOrigin",playsinline:"playsInline"};function lC(Y){var Z;return(Z=dC[Y])!=null?Z:KR(Y)}var NY,$Y,v1,nC=class{constructor(Y,Z){C8(this,NY),C8(this,$Y),C8(this,v1,[]),z6(this,NY,Y),z6(this,$Y,Z)}[Symbol.iterator](){return T0(this,v1).values()}get length(){return T0(this,v1).length}get value(){var Y;return(Y=T0(this,v1).join(" "))!=null?Y:""}set value(Y){var Z;Y!==this.value&&(z6(this,v1,[]),this.add(...(Z=Y==null?void 0:Y.split(" "))!=null?Z:[]))}toString(){return this.value}item(Y){return T0(this,v1)[Y]}values(){return T0(this,v1).values()}keys(){return T0(this,v1).keys()}forEach(Y){T0(this,v1).forEach(Y)}add(...Y){var Z,Q;Y.forEach((X)=>{this.contains(X)||T0(this,v1).push(X)}),!(this.value===""&&!((Z=T0(this,NY))!=null&&Z.hasAttribute(`${T0(this,$Y)}`)))&&((Q=T0(this,NY))==null||Q.setAttribute(`${T0(this,$Y)}`,`${this.value}`))}remove(...Y){var Z;Y.forEach((Q)=>{T0(this,v1).splice(T0(this,v1).indexOf(Q),1)}),(Z=T0(this,NY))==null||Z.setAttribute(`${T0(this,$Y)}`,`${this.value}`)}contains(Y){return T0(this,v1).includes(Y)}toggle(Y,Z){return typeof Z<"u"?Z?(this.add(Y),!0):(this.remove(Y),!1):this.contains(Y)?(this.remove(Y),!1):(this.add(Y),!0)}replace(Y,Z){this.remove(Y),this.add(Z)}};NY=new WeakMap,$Y=new WeakMap,v1=new WeakMap;var RR=`[mux-player ${FR()}]`;function I6(...Y){console.warn(RR,...Y)}function Y8(...Y){console.error(RR,...Y)}function BR(Y){var Z;let Q=(Z=Y.message)!=null?Z:"";Y.context&&(Q+=` ${Y.context}`),Y.file&&(Q+=` ${Z0("Read more: ")} https://github.com/muxinc/elements/blob/main/errors/${Y.file}`),I6(Q)}var w1={AUTOPLAY:"autoplay",CROSSORIGIN:"crossorigin",LOOP:"loop",MUTED:"muted",PLAYSINLINE:"playsinline",PRELOAD:"preload"},H7={VOLUME:"volume",PLAYBACKRATE:"playbackrate",MUTED:"muted"},Bb={...w1,...H7},lF=Object.freeze({length:0,start(Y){let Z=Y>>>0;if(Z>=this.length)throw new DOMException(`Failed to execute 'start' on 'TimeRanges': The index provided (${Z}) is greater than or equal to the maximum bound (${this.length}).`);return 0},end(Y){let Z=Y>>>0;if(Z>=this.length)throw new DOMException(`Failed to execute 'end' on 'TimeRanges': The index provided (${Z}) is greater than or equal to the maximum bound (${this.length}).`);return 0}}),sC=Object.values(w1).filter((Y)=>w1.PLAYSINLINE!==Y),iC=Object.values(H7),rC=[...sC,...iC],aC=class extends H6.HTMLElement{static get observedAttributes(){return rC}constructor(){super()}attributeChangedCallback(Y,Z,Q){var X,J;switch(Y){case H7.MUTED:{this.media&&(this.media.muted=Q!=null,this.media.defaultMuted=Q!=null);return}case H7.VOLUME:{let W=(X=e1(Q))!=null?X:1;this.media&&(this.media.volume=W);return}case H7.PLAYBACKRATE:{let W=(J=e1(Q))!=null?J:1;this.media&&(this.media.playbackRate=W,this.media.defaultPlaybackRate=W);return}}}play(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.play())!=null?Z:Promise.reject()}pause(){var Y;(Y=this.media)==null||Y.pause()}load(){var Y;(Y=this.media)==null||Y.load()}get media(){var Y;return(Y=this.shadowRoot)==null?void 0:Y.querySelector("mux-video")}get audioTracks(){return this.media.audioTracks}get videoTracks(){return this.media.videoTracks}get audioRenditions(){return this.media.audioRenditions}get videoRenditions(){return this.media.videoRenditions}get paused(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.paused)!=null?Z:!0}get duration(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.duration)!=null?Z:NaN}get ended(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.ended)!=null?Z:!1}get buffered(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.buffered)!=null?Z:lF}get seekable(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.seekable)!=null?Z:lF}get readyState(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.readyState)!=null?Z:0}get videoWidth(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.videoWidth)!=null?Z:0}get videoHeight(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.videoHeight)!=null?Z:0}get currentSrc(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.currentSrc)!=null?Z:""}get currentTime(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.currentTime)!=null?Z:0}set currentTime(Y){this.media&&(this.media.currentTime=Number(Y))}get volume(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.volume)!=null?Z:1}set volume(Y){this.media&&(this.media.volume=Number(Y))}get playbackRate(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.playbackRate)!=null?Z:1}set playbackRate(Y){this.media&&(this.media.playbackRate=Number(Y))}get defaultPlaybackRate(){var Y;return(Y=e1(this.getAttribute(H7.PLAYBACKRATE)))!=null?Y:1}set defaultPlaybackRate(Y){Y!=null?this.setAttribute(H7.PLAYBACKRATE,`${Y}`):this.removeAttribute(H7.PLAYBACKRATE)}get crossOrigin(){return tZ(this,w1.CROSSORIGIN)}set crossOrigin(Y){this.setAttribute(w1.CROSSORIGIN,`${Y}`)}get autoplay(){return tZ(this,w1.AUTOPLAY)!=null}set autoplay(Y){Y?this.setAttribute(w1.AUTOPLAY,typeof Y=="string"?Y:""):this.removeAttribute(w1.AUTOPLAY)}get loop(){return tZ(this,w1.LOOP)!=null}set loop(Y){Y?this.setAttribute(w1.LOOP,""):this.removeAttribute(w1.LOOP)}get muted(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.muted)!=null?Z:!1}set muted(Y){this.media&&(this.media.muted=!!Y)}get defaultMuted(){return tZ(this,w1.MUTED)!=null}set defaultMuted(Y){Y?this.setAttribute(w1.MUTED,""):this.removeAttribute(w1.MUTED)}get playsInline(){return tZ(this,w1.PLAYSINLINE)!=null}set playsInline(Y){Y8("playsInline is set to true by default and is not currently supported as a setter.")}get preload(){return this.media?this.media.preload:this.getAttribute("preload")}set preload(Y){["","none","metadata","auto"].includes(Y)?this.setAttribute(w1.PRELOAD,Y):this.removeAttribute(w1.PRELOAD)}};function tZ(Y,Z){return Y.media?Y.media.getAttribute(Z):Y.getAttribute(Z)}var nF=aC,tC=`:host { --media-control-display: var(--controls); --media-loading-indicator-display: var(--loading-indicator); --media-dialog-display: var(--dialog); --media-play-button-display: var(--play-button); --media-live-button-display: var(--live-button); --media-seek-backward-button-display: var(--seek-backward-button); --media-seek-forward-button-display: var(--seek-forward-button); --media-mute-button-display: var(--mute-button); --media-captions-button-display: var(--captions-button); --media-captions-menu-button-display: var(--captions-menu-button, var(--media-captions-button-display)); --media-rendition-menu-button-display: var(--rendition-menu-button); --media-audio-track-menu-button-display: var(--audio-track-menu-button); --media-airplay-button-display: var(--airplay-button); --media-pip-button-display: var(--pip-button); --media-fullscreen-button-display: var(--fullscreen-button); --media-cast-button-display: var(--cast-button, var(--_cast-button-drm-display)); --media-playback-rate-button-display: var(--playback-rate-button); --media-playback-rate-menu-button-display: var(--playback-rate-menu-button); --media-volume-range-display: var(--volume-range); --media-time-range-display: var(--time-range); --media-time-display-display: var(--time-display); --media-duration-display-display: var(--duration-display); --media-title-display-display: var(--title-display); display: inline-block; line-height: 0; width: 100%; } a { color: #fff; font-size: 0.9em; text-decoration: underline; } media-theme { display: inline-block; line-height: 0; width: 100%; height: 100%; direction: ltr; } media-poster-image { display: inline-block; line-height: 0; width: 100%; height: 100%; } media-poster-image:not([src]):not([placeholdersrc]) { display: none; } ::part(top), [part~='top'] { --media-control-display: var(--controls, var(--top-controls)); --media-play-button-display: var(--play-button, var(--top-play-button)); --media-live-button-display: var(--live-button, var(--top-live-button)); --media-seek-backward-button-display: var(--seek-backward-button, var(--top-seek-backward-button)); --media-seek-forward-button-display: var(--seek-forward-button, var(--top-seek-forward-button)); --media-mute-button-display: var(--mute-button, var(--top-mute-button)); --media-captions-button-display: var(--captions-button, var(--top-captions-button)); --media-captions-menu-button-display: var( --captions-menu-button, var(--media-captions-button-display, var(--top-captions-menu-button)) ); --media-rendition-menu-button-display: var(--rendition-menu-button, var(--top-rendition-menu-button)); --media-audio-track-menu-button-display: var(--audio-track-menu-button, var(--top-audio-track-menu-button)); --media-airplay-button-display: var(--airplay-button, var(--top-airplay-button)); --media-pip-button-display: var(--pip-button, var(--top-pip-button)); --media-fullscreen-button-display: var(--fullscreen-button, var(--top-fullscreen-button)); --media-cast-button-display: var(--cast-button, var(--top-cast-button, var(--_cast-button-drm-display))); --media-playback-rate-button-display: var(--playback-rate-button, var(--top-playback-rate-button)); --media-playback-rate-menu-button-display: var( --captions-menu-button, var(--media-playback-rate-button-display, var(--top-playback-rate-menu-button)) ); --media-volume-range-display: var(--volume-range, var(--top-volume-range)); --media-time-range-display: var(--time-range, var(--top-time-range)); --media-time-display-display: var(--time-display, var(--top-time-display)); --media-duration-display-display: var(--duration-display, var(--top-duration-display)); --media-title-display-display: var(--title-display, var(--top-title-display)); } ::part(center), [part~='center'] { --media-control-display: var(--controls, var(--center-controls)); --media-play-button-display: var(--play-button, var(--center-play-button)); --media-live-button-display: var(--live-button, var(--center-live-button)); --media-seek-backward-button-display: var(--seek-backward-button, var(--center-seek-backward-button)); --media-seek-forward-button-display: var(--seek-forward-button, var(--center-seek-forward-button)); --media-mute-button-display: var(--mute-button, var(--center-mute-button)); --media-captions-button-display: var(--captions-button, var(--center-captions-button)); --media-captions-menu-button-display: var( --captions-menu-button, var(--media-captions-button-display, var(--center-captions-menu-button)) ); --media-rendition-menu-button-display: var(--rendition-menu-button, var(--center-rendition-menu-button)); --media-audio-track-menu-button-display: var(--audio-track-menu-button, var(--center-audio-track-menu-button)); --media-airplay-button-display: var(--airplay-button, var(--center-airplay-button)); --media-pip-button-display: var(--pip-button, var(--center-pip-button)); --media-fullscreen-button-display: var(--fullscreen-button, var(--center-fullscreen-button)); --media-cast-button-display: var(--cast-button, var(--center-cast-button, var(--_cast-button-drm-display))); --media-playback-rate-button-display: var(--playback-rate-button, var(--center-playback-rate-button)); --media-playback-rate-menu-button-display: var( --playback-rate-menu-button, var(--media-playback-rate-button-display, var(--center-playback-rate-menu-button)) ); --media-volume-range-display: var(--volume-range, var(--center-volume-range)); --media-time-range-display: var(--time-range, var(--center-time-range)); --media-time-display-display: var(--time-display, var(--center-time-display)); --media-duration-display-display: var(--duration-display, var(--center-duration-display)); } ::part(bottom), [part~='bottom'] { --media-control-display: var(--controls, var(--bottom-controls)); --media-play-button-display: var(--play-button, var(--bottom-play-button)); --media-live-button-display: var(--live-button, var(--bottom-live-button)); --media-seek-backward-button-display: var(--seek-backward-button, var(--bottom-seek-backward-button)); --media-seek-forward-button-display: var(--seek-forward-button, var(--bottom-seek-forward-button)); --media-mute-button-display: var(--mute-button, var(--bottom-mute-button)); --media-captions-button-display: var(--captions-button, var(--bottom-captions-button)); --media-captions-menu-button-display: var( --captions-menu-button, var(--media-captions-button-display, var(--bottom-captions-menu-button)) ); --media-rendition-menu-button-display: var(--rendition-menu-button, var(--bottom-rendition-menu-button)); --media-audio-track-menu-button-display: var(--audio-track-menu-button, var(--bottom-audio-track-menu-button)); --media-airplay-button-display: var(--airplay-button, var(--bottom-airplay-button)); --media-pip-button-display: var(--pip-button, var(--bottom-pip-button)); --media-fullscreen-button-display: var(--fullscreen-button, var(--bottom-fullscreen-button)); --media-cast-button-display: var(--cast-button, var(--bottom-cast-button, var(--_cast-button-drm-display))); --media-playback-rate-button-display: var(--playback-rate-button, var(--bottom-playback-rate-button)); --media-playback-rate-menu-button-display: var( --playback-rate-menu-button, var(--media-playback-rate-button-display, var(--bottom-playback-rate-menu-button)) ); --media-volume-range-display: var(--volume-range, var(--bottom-volume-range)); --media-time-range-display: var(--time-range, var(--bottom-time-range)); --media-time-display-display: var(--time-display, var(--bottom-time-display)); --media-duration-display-display: var(--duration-display, var(--bottom-duration-display)); --media-title-display-display: var(--title-display, var(--bottom-title-display)); } :host([no-tooltips]) { --media-tooltip-display: none; } `,eZ=new WeakMap,eC=class Y{constructor(Z,Q){this.element=Z,this.type=Q,this.element.addEventListener(this.type,this);let X=eZ.get(this.element);X&&X.set(this.type,this)}set(Z){if(typeof Z=="function")this.handleEvent=Z.bind(this.element);else if(typeof Z=="object"&&typeof Z.handleEvent=="function")this.handleEvent=Z.handleEvent.bind(Z);else{this.element.removeEventListener(this.type,this);let Q=eZ.get(this.element);Q&&Q.delete(this.type)}}static for(Z){eZ.has(Z.element)||eZ.set(Z.element,new Map);let Q=Z.attributeName.slice(2),X=eZ.get(Z.element);return X&&X.has(Q)?X.get(Q):new Y(Z.element,Q)}};function YM(Y,Z){return Y instanceof _1&&Y.attributeName.startsWith("on")?(eC.for(Y).set(Z),Y.element.removeAttributeNS(Y.attributeNamespace,Y.attributeName),!0):!1}function ZM(Y,Z){return Z instanceof NR&&Y instanceof X7?(Z.renderInto(Y),!0):!1}function QM(Y,Z){return Z instanceof DocumentFragment&&Y instanceof X7?(Z.childNodes.length&&Y.replace(...Z.childNodes),!0):!1}function XM(Y,Z){if(Y instanceof _1){let Q=Y.attributeNamespace,X=Y.element.getAttributeNS(Q,Y.attributeName);return String(Z)!==X&&(Y.value=String(Z)),!0}return Y.value=String(Z),!0}function JM(Y,Z){if(Y instanceof _1&&Z instanceof Element){let Q=Y.element;return Q[Y.attributeName]!==Z&&(Y.element.removeAttributeNS(Y.attributeNamespace,Y.attributeName),Q[Y.attributeName]=Z),!0}return!1}function WM(Y,Z){if(typeof Z=="boolean"&&Y instanceof _1){let Q=Y.attributeNamespace,X=Y.element.hasAttributeNS(Q,Y.attributeName);return Z!==X&&(Y.booleanValue=Z),!0}return!1}function qM(Y,Z){return Z===!1&&Y instanceof X7?(Y.replace(""),!0):!1}function HM(Y,Z){JM(Y,Z)||WM(Y,Z)||YM(Y,Z)||qM(Y,Z)||ZM(Y,Z)||QM(Y,Z)||XM(Y,Z)}var wz=new Map,sF=new WeakMap,iF=new WeakMap,NR=class{constructor(Y,Z,Q){this.strings=Y,this.values=Z,this.processor=Q,this.stringsKey=this.strings.join("\x01")}get template(){if(wz.has(this.stringsKey))return wz.get(this.stringsKey);{let Y=YW.createElement("template"),Z=this.strings.length-1;return Y.innerHTML=this.strings.reduce((Q,X,J)=>Q+X+(J{let{tokens:Z}=Y;return Z.drm?":host(:not([cast-receiver])) { --_cast-button-drm-display: none; }":""},GM=(Y)=>iJ` ${RM(Y)} `,VM=(Y)=>{let Z=Y.hotKeys?`${Y.hotKeys}`:"";return Tz(Y.streamType)==="live"&&(Z+=" noarrowleft noarrowright"),Z},UM={TOP:"top",CENTER:"center",BOTTOM:"bottom",LAYER:"layer",MEDIA_LAYER:"media-layer",POSTER_LAYER:"poster-layer",VERTICAL_LAYER:"vertical-layer",CENTERED_LAYER:"centered-layer",GESTURE_LAYER:"gesture-layer",CONTROLLER_LAYER:"controller",BUTTON:"button",RANGE:"range",THUMB:"thumb",DISPLAY:"display",CONTROL_BAR:"control-bar",MENU_BUTTON:"menu-button",MENU:"menu",MENU_ITEM:"menu-item",OPTION:"option",POSTER:"poster",LIVE:"live",PLAY:"play",PRE_PLAY:"pre-play",SEEK_BACKWARD:"seek-backward",SEEK_FORWARD:"seek-forward",MUTE:"mute",CAPTIONS:"captions",AIRPLAY:"airplay",PIP:"pip",FULLSCREEN:"fullscreen",CAST:"cast",PLAYBACK_RATE:"playback-rate",VOLUME:"volume",TIME:"time",TITLE:"title",AUDIO_TRACK:"audio-track",RENDITION:"rendition"},FM=Object.values(UM).join(", "),RM=(Y)=>{var Z,Q,X,J,W,q,z,H,E,K,G,U,V,F,R,B,$,L,O,j,w,D,M,C,I,x,f,_,o,n,g,l,c,s,Q0,p,d,e,F0;return iJ` ${Y.storyboard?iJ``:iJ``} `},$R=(Y)=>Y.charAt(0).toUpperCase()+Y.slice(1),BM=(Y,Z=!1)=>{var Q,X;if(Y.muxCode){let J=$R((Q=Y.errorCategory)!=null?Q:"video"),W=cY((X=Y.errorCategory)!=null?X:v0.VIDEO);if(Y.muxCode===X0.NETWORK_OFFLINE)return Z0("Your device appears to be offline",Z);if(Y.muxCode===X0.NETWORK_TOKEN_EXPIRED)return Z0("{category} URL has expired",Z).format({category:J});if([X0.NETWORK_TOKEN_SUB_MISMATCH,X0.NETWORK_TOKEN_AUD_MISMATCH,X0.NETWORK_TOKEN_AUD_MISSING,X0.NETWORK_TOKEN_MALFORMED].includes(Y.muxCode))return Z0("{category} URL is formatted incorrectly",Z).format({category:J});if(Y.muxCode===X0.NETWORK_TOKEN_MISSING)return Z0("Invalid {categoryName} URL",Z).format({categoryName:W});if(Y.muxCode===X0.NETWORK_NOT_FOUND)return Z0("{category} does not exist",Z).format({category:J});if(Y.muxCode===X0.NETWORK_NOT_READY){let q=Y.streamType==="live"?"Live stream":"Video";return Z0("{mediaType} is not currently available",Z).format({mediaType:q})}}if(Y.code){if(Y.code===i.MEDIA_ERR_NETWORK)return Z0("Network Error",Z);if(Y.code===i.MEDIA_ERR_DECODE)return Z0("Media Error",Z);if(Y.code===i.MEDIA_ERR_SRC_NOT_SUPPORTED)return Z0("Source Not Supported",Z)}return Z0("Error",Z)},NM=(Y,Z=!1)=>{var Q,X;if(Y.muxCode){let J=$R((Q=Y.errorCategory)!=null?Q:"video"),W=cY((X=Y.errorCategory)!=null?X:v0.VIDEO);return Y.muxCode===X0.NETWORK_OFFLINE?Z0("Check your internet connection and try reloading this video.",Z):Y.muxCode===X0.NETWORK_TOKEN_EXPIRED?Z0("The video’s secured {tokenNamePrefix}-token has expired.",Z).format({tokenNamePrefix:W}):Y.muxCode===X0.NETWORK_TOKEN_SUB_MISMATCH?Z0("The video’s playback ID does not match the one encoded in the {tokenNamePrefix}-token.",Z).format({tokenNamePrefix:W}):Y.muxCode===X0.NETWORK_TOKEN_MALFORMED?Z0("{category} URL is formatted incorrectly",Z).format({category:J}):[X0.NETWORK_TOKEN_AUD_MISMATCH,X0.NETWORK_TOKEN_AUD_MISSING].includes(Y.muxCode)?Z0("The {tokenNamePrefix}-token is formatted with incorrect information.",Z).format({tokenNamePrefix:W}):[X0.NETWORK_TOKEN_MISSING,X0.NETWORK_INVALID_URL].includes(Y.muxCode)?Z0("The video URL or {tokenNamePrefix}-token are formatted with incorrect or incomplete information.",Z).format({tokenNamePrefix:W}):Y.muxCode===X0.NETWORK_NOT_FOUND?"":Y.message}return Y.code&&(Y.code===i.MEDIA_ERR_NETWORK||Y.code===i.MEDIA_ERR_DECODE||(Y.code,i.MEDIA_ERR_SRC_NOT_SUPPORTED)),Y.message},$M=(Y,Z=!1)=>{let Q=BM(Y,Z).toString(),X=NM(Y,Z).toString();return{title:Q,message:X}},LM=(Y)=>{if(Y.muxCode){if(Y.muxCode===X0.NETWORK_TOKEN_EXPIRED)return"403-expired-token.md";if(Y.muxCode===X0.NETWORK_TOKEN_MALFORMED)return"403-malformatted-token.md";if([X0.NETWORK_TOKEN_AUD_MISMATCH,X0.NETWORK_TOKEN_AUD_MISSING].includes(Y.muxCode))return"403-incorrect-aud-value.md";if(Y.muxCode===X0.NETWORK_TOKEN_SUB_MISMATCH)return"403-playback-id-mismatch.md";if(Y.muxCode===X0.NETWORK_TOKEN_MISSING)return"missing-signed-tokens.md";if(Y.muxCode===X0.NETWORK_NOT_FOUND)return"404-not-found.md";if(Y.muxCode===X0.NETWORK_NOT_READY)return"412-not-playable.md"}if(Y.code){if(Y.code===i.MEDIA_ERR_NETWORK)return"";if(Y.code===i.MEDIA_ERR_DECODE)return"media-decode-error.md";if(Y.code===i.MEDIA_ERR_SRC_NOT_SUPPORTED)return"media-src-not-supported.md"}return""},rF=(Y,Z)=>{let Q=LM(Y);return{message:Y.message,context:Y.context,file:Q}},OM=` `,Cz=YW.createElement("template");"innerHTML"in Cz&&(Cz.innerHTML=OM);var aF,tF,LR=class extends XY{};LR.template=(tF=(aF=Cz.content)==null?void 0:aF.children)==null?void 0:tF[0];H6.customElements.get("media-theme-gerwig")||H6.customElements.define("media-theme-gerwig",LR);var jM="gerwig",x6={SRC:"src",POSTER:"poster"},k={STYLE:"style",DEFAULT_HIDDEN_CAPTIONS:"default-hidden-captions",PRIMARY_COLOR:"primary-color",SECONDARY_COLOR:"secondary-color",ACCENT_COLOR:"accent-color",FORWARD_SEEK_OFFSET:"forward-seek-offset",BACKWARD_SEEK_OFFSET:"backward-seek-offset",PLAYBACK_TOKEN:"playback-token",THUMBNAIL_TOKEN:"thumbnail-token",STORYBOARD_TOKEN:"storyboard-token",FULLSCREEN_ELEMENT:"fullscreen-element",DRM_TOKEN:"drm-token",STORYBOARD_SRC:"storyboard-src",THUMBNAIL_TIME:"thumbnail-time",AUDIO:"audio",NOHOTKEYS:"nohotkeys",HOTKEYS:"hotkeys",PLAYBACK_RATES:"playbackrates",DEFAULT_SHOW_REMAINING_TIME:"default-show-remaining-time",DEFAULT_DURATION:"default-duration",TITLE:"title",VIDEO_TITLE:"video-title",PLACEHOLDER:"placeholder",THEME:"theme",DEFAULT_STREAM_TYPE:"default-stream-type",TARGET_LIVE_WINDOW:"target-live-window",EXTRA_SOURCE_PARAMS:"extra-source-params",NO_VOLUME_PREF:"no-volume-pref",NO_MUTED_PREF:"no-muted-pref",CAST_RECEIVER:"cast-receiver",NO_TOOLTIPS:"no-tooltips",PROUDLY_DISPLAY_MUX_BADGE:"proudly-display-mux-badge",DISABLE_PSEUDO_ENDED:"disable-pseudo-ended"},Mz=["audio","backwardseekoffset","defaultduration","defaultshowremainingtime","defaultsubtitles","noautoseektolive","disabled","exportparts","forwardseekoffset","hideduration","hotkeys","nohotkeys","playbackrates","defaultstreamtype","streamtype","style","targetlivewindow","template","title","videotitle","novolumepref","nomutedpref","proudlydisplaymuxbadge"];function AM(Y,Z){var Q,X,J;return{src:!Y.playbackId&&Y.src,playbackId:Y.playbackId,hasSrc:!!Y.playbackId||!!Y.src||!!Y.currentSrc,poster:Y.poster,storyboard:((Q=Y.media)==null?void 0:Q.currentSrc)&&Y.storyboard,storyboardSrc:Y.getAttribute(k.STORYBOARD_SRC),fullscreenElement:Y.getAttribute(k.FULLSCREEN_ELEMENT),placeholder:Y.getAttribute("placeholder"),themeTemplate:wM(Y),thumbnailTime:!Y.tokens.thumbnail&&Y.thumbnailTime,autoplay:Y.autoplay,crossOrigin:Y.crossOrigin,loop:Y.loop,noHotKeys:Y.hasAttribute(k.NOHOTKEYS),hotKeys:Y.getAttribute(k.HOTKEYS),muted:Y.muted,paused:Y.paused,preload:Y.preload,envKey:Y.envKey,preferCmcd:Y.preferCmcd,debug:Y.debug,disableTracking:Y.disableTracking,disableCookies:Y.disableCookies,tokens:Y.tokens,beaconCollectionDomain:Y.beaconCollectionDomain,maxResolution:Y.maxResolution,minResolution:Y.minResolution,maxAutoResolution:Y.maxAutoResolution,programStartTime:Y.programStartTime,programEndTime:Y.programEndTime,assetStartTime:Y.assetStartTime,assetEndTime:Y.assetEndTime,renditionOrder:Y.renditionOrder,metadata:Y.metadata,playerInitTime:Y.playerInitTime,playerSoftwareName:Y.playerSoftwareName,playerSoftwareVersion:Y.playerSoftwareVersion,startTime:Y.startTime,preferPlayback:Y.preferPlayback,audio:Y.audio,defaultStreamType:Y.defaultStreamType,targetLiveWindow:Y.getAttribute(S.TARGET_LIVE_WINDOW),streamType:Tz(Y.getAttribute(S.STREAM_TYPE)),primaryColor:Y.getAttribute(k.PRIMARY_COLOR),secondaryColor:Y.getAttribute(k.SECONDARY_COLOR),accentColor:Y.getAttribute(k.ACCENT_COLOR),forwardSeekOffset:Y.forwardSeekOffset,backwardSeekOffset:Y.backwardSeekOffset,defaultHiddenCaptions:Y.defaultHiddenCaptions,defaultDuration:Y.defaultDuration,defaultShowRemainingTime:Y.defaultShowRemainingTime,hideDuration:PM(Y),playbackRates:Y.getAttribute(k.PLAYBACK_RATES),customDomain:(X=Y.getAttribute(S.CUSTOM_DOMAIN))!=null?X:void 0,title:Y.getAttribute(k.TITLE),videoTitle:(J=Y.getAttribute(k.VIDEO_TITLE))!=null?J:Y.getAttribute(k.TITLE),novolumepref:Y.hasAttribute(k.NO_VOLUME_PREF),nomutedpref:Y.hasAttribute(k.NO_MUTED_PREF),proudlyDisplayMuxBadge:Y.hasAttribute(k.PROUDLY_DISPLAY_MUX_BADGE),castReceiver:Y.castReceiver,disablePseudoEnded:Y.hasAttribute(k.DISABLE_PSEUDO_ENDED),capRenditionToPlayerSize:Y.capRenditionToPlayerSize,...Z,extraSourceParams:Y.extraSourceParams}}var DM=xX.formatErrorMessage;xX.formatErrorMessage=(Y)=>{var Z,Q;if(Y instanceof i){let X=$M(Y,!1);return` ${X!=null&&X.title?`

${X.title}

`:""} ${X!=null&&X.message||X!=null&&X.linkUrl?`

${X==null?void 0:X.message} ${X!=null&&X.linkUrl?`${(Q=X.linkText)!=null?Q:X.linkUrl}`:""}

`:""} `}return DM(Y)};function wM(Y){var Z,Q;let X=Y.theme;if(X){let J=(Q=(Z=Y.getRootNode())==null?void 0:Z.getElementById)==null?void 0:Q.call(Z,X);if(J&&J instanceof HTMLTemplateElement)return J;X.startsWith("media-theme-")||(X=`media-theme-${X}`);let W=H6.customElements.get(X);if(W!=null&&W.template)return W.template}}function PM(Y){var Z;let Q=(Z=Y.mediaController)==null?void 0:Z.querySelector("media-time-display");return Q&&getComputedStyle(Q).getPropertyValue("--media-duration-display-display").trim()==="none"}function eF(Y){let Z=Y.videoTitle?{video_title:Y.videoTitle}:{};return Y.getAttributeNames().filter((Q)=>Q.startsWith("metadata-")).reduce((Q,X)=>{let J=Y.getAttribute(X);return J!==null&&(Q[X.replace(/^metadata-/,"").replace(/-/g,"_")]=J),Q},Z)}var CM=Object.values(S),MM=Object.values(x6),xM=Object.values(k),YR=FR(),ZR="mux-player",QR={isDialogOpen:!1},IM={redundant_streams:!0},rJ,aJ,tJ,a7,eJ,LY,a0,q7,OR,xz,t7,XR,JR,WR,qR,SM=class extends nF{constructor(){super();C8(this,a0),C8(this,rJ),C8(this,aJ,!1),C8(this,tJ,{}),C8(this,a7,!0),C8(this,eJ,new nC(this,"hotkeys")),C8(this,LY,{...QR,onCloseErrorDialog:(Y)=>{var Z;((Z=Y.composedPath()[0])==null?void 0:Z.localName)==="media-error-dialog"&&q1(this,a0,xz).call(this,{isDialogOpen:!1})},onFocusInErrorDialog:(Y)=>{var Z;if(((Z=Y.composedPath()[0])==null?void 0:Z.localName)!=="media-error-dialog")return;VR(this,YW.activeElement)||Y.preventDefault()}}),z6(this,rJ,EQ()),this.attachShadow({mode:"open"}),q1(this,a0,OR).call(this),this.isConnected&&q1(this,a0,q7).call(this)}static get NAME(){return ZR}static get VERSION(){return YR}static get observedAttributes(){var Y;return[...(Y=nF.observedAttributes)!=null?Y:[],...MM,...CM,...xM]}get mediaTheme(){var Y;return(Y=this.shadowRoot)==null?void 0:Y.querySelector("media-theme")}get mediaController(){var Y,Z;return(Z=(Y=this.mediaTheme)==null?void 0:Y.shadowRoot)==null?void 0:Z.querySelector("media-controller")}connectedCallback(){let Y=this.media;Y&&(Y.metadata=eF(this))}attributeChangedCallback(Y,Z,Q){switch(q1(this,a0,q7).call(this),super.attributeChangedCallback(Y,Z,Q),Y){case k.HOTKEYS:T0(this,eJ).value=Q;break;case k.THUMBNAIL_TIME:{Q!=null&&this.tokens.thumbnail&&I6(Z0("Use of thumbnail-time with thumbnail-token is currently unsupported. Ignore thumbnail-time.").toString());break}case k.THUMBNAIL_TOKEN:{if(Q){let X=p6(Q);if(X){let{aud:J}=X,W=N9.THUMBNAIL;J!==W&&I6(Z0("The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.").format({aud:J,expectedAud:W,tokenNamePrefix:"thumbnail"}))}}break}case k.STORYBOARD_TOKEN:{if(Q){let X=p6(Q);if(X){let{aud:J}=X,W=N9.STORYBOARD;J!==W&&I6(Z0("The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.").format({aud:J,expectedAud:W,tokenNamePrefix:"storyboard"}))}}break}case k.DRM_TOKEN:{if(Q){let X=p6(Q);if(X){let{aud:J}=X,W=N9.DRM;J!==W&&I6(Z0("The {tokenNamePrefix}-token has an incorrect aud value: {aud}. aud value should be {expectedAud}.").format({aud:J,expectedAud:W,tokenNamePrefix:"drm"}))}}break}case S.PLAYBACK_ID:{Q!=null&&Q.includes("?token")&&Y8(Z0("The specificed playback ID {playbackId} contains a token which must be provided via the playback-token attribute.").format({playbackId:Q}));break}case S.STREAM_TYPE:{Q&&![C0.LIVE,C0.ON_DEMAND,C0.UNKNOWN].includes(Q)?["ll-live","live:dvr","ll-live:dvr"].includes(this.streamType)?this.targetLiveWindow=Q.includes("dvr")?Number.POSITIVE_INFINITY:0:BR({file:"invalid-stream-type.md",message:Z0("Invalid stream-type value supplied: `{streamType}`. Please provide stream-type as either: `on-demand` or `live`").format({streamType:this.streamType})}):Q===C0.LIVE?this.getAttribute(k.TARGET_LIVE_WINDOW)==null&&(this.targetLiveWindow=0):this.targetLiveWindow=Number.NaN;break}case k.FULLSCREEN_ELEMENT:{if(Q!=null||Q!==Z){let X=YW.getElementById(Q),J=X==null?void 0:X.querySelector("mux-player");this.mediaController&&X&&J&&(this.mediaController.fullscreenElement=X)}break}case S.CAP_RENDITION_TO_PLAYER_SIZE:{(Q==null||Q!==Z)&&(this.capRenditionToPlayerSize=Q!=null?!0:void 0);break}}[S.PLAYBACK_ID,x6.SRC,k.PLAYBACK_TOKEN].includes(Y)&&Z!==Q&&z6(this,LY,{...T0(this,LY),...QR}),q1(this,a0,t7).call(this,{[lC(Y)]:Q})}async requestFullscreen(Y){var Z;if(!(!this.mediaController||this.mediaController.hasAttribute(A.MEDIA_IS_FULLSCREEN)))return(Z=this.mediaController)==null||Z.dispatchEvent(new H6.CustomEvent(b.MEDIA_ENTER_FULLSCREEN_REQUEST,{composed:!0,bubbles:!0})),new Promise((Q,X)=>{var J;(J=this.mediaController)==null||J.addEventListener(W8.MEDIA_IS_FULLSCREEN,()=>Q(),{once:!0})})}async exitFullscreen(){var Y;if(!(!this.mediaController||!this.mediaController.hasAttribute(A.MEDIA_IS_FULLSCREEN)))return(Y=this.mediaController)==null||Y.dispatchEvent(new H6.CustomEvent(b.MEDIA_EXIT_FULLSCREEN_REQUEST,{composed:!0,bubbles:!0})),new Promise((Z,Q)=>{var X;(X=this.mediaController)==null||X.addEventListener(W8.MEDIA_IS_FULLSCREEN,()=>Z(),{once:!0})})}get preferCmcd(){var Y;return(Y=this.getAttribute(S.PREFER_CMCD))!=null?Y:void 0}set preferCmcd(Y){Y!==this.preferCmcd&&(Y?$9.includes(Y)?this.setAttribute(S.PREFER_CMCD,Y):I6(`Invalid value for preferCmcd. Must be one of ${$9.join()}`):this.removeAttribute(S.PREFER_CMCD))}get hasPlayed(){var Y,Z;return(Z=(Y=this.mediaController)==null?void 0:Y.hasAttribute(A.MEDIA_HAS_PLAYED))!=null?Z:!1}get inLiveWindow(){var Y;return(Y=this.mediaController)==null?void 0:Y.hasAttribute(A.MEDIA_TIME_IS_LIVE)}get _hls(){var Y;return(Y=this.media)==null?void 0:Y._hls}get mux(){var Y;return(Y=this.media)==null?void 0:Y.mux}get theme(){var Y;return(Y=this.getAttribute(k.THEME))!=null?Y:jM}set theme(Y){this.setAttribute(k.THEME,`${Y}`)}get themeProps(){let Y=this.mediaTheme;if(!Y)return;let Z={};for(let Q of Y.getAttributeNames()){if(Mz.includes(Q))continue;let X=Y.getAttribute(Q);Z[KR(Q)]=X===""?!0:X}return Z}set themeProps(Y){var Z,Q;q1(this,a0,q7).call(this);let X={...this.themeProps,...Y};for(let J in X){if(Mz.includes(J))continue;let W=Y==null?void 0:Y[J];typeof W=="boolean"||W==null?(Z=this.mediaTheme)==null||Z.toggleAttribute(Pz(J),!!W):(Q=this.mediaTheme)==null||Q.setAttribute(Pz(J),W)}}get playbackId(){var Y;return(Y=this.getAttribute(S.PLAYBACK_ID))!=null?Y:void 0}set playbackId(Y){Y?this.setAttribute(S.PLAYBACK_ID,Y):this.removeAttribute(S.PLAYBACK_ID)}get src(){var Y,Z;return this.playbackId?(Y=r7(this,x6.SRC))!=null?Y:void 0:(Z=this.getAttribute(x6.SRC))!=null?Z:void 0}set src(Y){Y?this.setAttribute(x6.SRC,Y):this.removeAttribute(x6.SRC)}get poster(){var Y;let Z=this.getAttribute(x6.POSTER);if(Z!=null)return Z;let{tokens:Q}=this;if(Q.playback&&!Q.thumbnail){I6("Missing expected thumbnail token. No poster image will be shown");return}if(this.playbackId&&!this.audio)return mC(this.playbackId,{customDomain:this.customDomain,thumbnailTime:(Y=this.thumbnailTime)!=null?Y:this.startTime,programTime:this.programStartTime,token:Q.thumbnail})}set poster(Y){Y||Y===""?this.setAttribute(x6.POSTER,Y):this.removeAttribute(x6.POSTER)}get storyboardSrc(){var Y;return(Y=this.getAttribute(k.STORYBOARD_SRC))!=null?Y:void 0}set storyboardSrc(Y){Y?this.setAttribute(k.STORYBOARD_SRC,Y):this.removeAttribute(k.STORYBOARD_SRC)}get storyboard(){let{tokens:Y}=this;if(this.storyboardSrc&&!Y.storyboard)return this.storyboardSrc;if(!(this.audio||!this.playbackId||!this.streamType||[C0.LIVE,C0.UNKNOWN].includes(this.streamType)||Y.playback&&!Y.storyboard))return oC(this.playbackId,{customDomain:this.customDomain,token:Y.storyboard,programStartTime:this.programStartTime,programEndTime:this.programEndTime})}get audio(){return this.hasAttribute(k.AUDIO)}set audio(Y){if(!Y){this.removeAttribute(k.AUDIO);return}this.setAttribute(k.AUDIO,"")}get hotkeys(){return T0(this,eJ)}get nohotkeys(){return this.hasAttribute(k.NOHOTKEYS)}set nohotkeys(Y){if(!Y){this.removeAttribute(k.NOHOTKEYS);return}this.setAttribute(k.NOHOTKEYS,"")}get thumbnailTime(){return e1(this.getAttribute(k.THUMBNAIL_TIME))}set thumbnailTime(Y){this.setAttribute(k.THUMBNAIL_TIME,`${Y}`)}get videoTitle(){var Y,Z;return(Z=(Y=this.getAttribute(k.VIDEO_TITLE))!=null?Y:this.getAttribute(k.TITLE))!=null?Z:""}set videoTitle(Y){Y!==this.videoTitle&&(Y?this.setAttribute(k.VIDEO_TITLE,Y):this.removeAttribute(k.VIDEO_TITLE))}get placeholder(){var Y;return(Y=r7(this,k.PLACEHOLDER))!=null?Y:""}set placeholder(Y){this.setAttribute(k.PLACEHOLDER,`${Y}`)}get primaryColor(){var Y,Z;let Q=this.getAttribute(k.PRIMARY_COLOR);if(Q!=null||this.mediaTheme&&(Q=(Z=(Y=H6.getComputedStyle(this.mediaTheme))==null?void 0:Y.getPropertyValue("--_primary-color"))==null?void 0:Z.trim(),Q))return Q}set primaryColor(Y){this.setAttribute(k.PRIMARY_COLOR,`${Y}`)}get secondaryColor(){var Y,Z;let Q=this.getAttribute(k.SECONDARY_COLOR);if(Q!=null||this.mediaTheme&&(Q=(Z=(Y=H6.getComputedStyle(this.mediaTheme))==null?void 0:Y.getPropertyValue("--_secondary-color"))==null?void 0:Z.trim(),Q))return Q}set secondaryColor(Y){this.setAttribute(k.SECONDARY_COLOR,`${Y}`)}get accentColor(){var Y,Z;let Q=this.getAttribute(k.ACCENT_COLOR);if(Q!=null||this.mediaTheme&&(Q=(Z=(Y=H6.getComputedStyle(this.mediaTheme))==null?void 0:Y.getPropertyValue("--_accent-color"))==null?void 0:Z.trim(),Q))return Q}set accentColor(Y){this.setAttribute(k.ACCENT_COLOR,`${Y}`)}get defaultShowRemainingTime(){return this.hasAttribute(k.DEFAULT_SHOW_REMAINING_TIME)}set defaultShowRemainingTime(Y){Y?this.setAttribute(k.DEFAULT_SHOW_REMAINING_TIME,""):this.removeAttribute(k.DEFAULT_SHOW_REMAINING_TIME)}get playbackRates(){if(this.hasAttribute(k.PLAYBACK_RATES))return this.getAttribute(k.PLAYBACK_RATES).trim().split(/\s*,?\s+/).map((Y)=>Number(Y)).filter((Y)=>!Number.isNaN(Y)).sort((Y,Z)=>Y-Z)}set playbackRates(Y){if(!Y){this.removeAttribute(k.PLAYBACK_RATES);return}this.setAttribute(k.PLAYBACK_RATES,Y.join(" "))}get forwardSeekOffset(){var Y;return(Y=e1(this.getAttribute(k.FORWARD_SEEK_OFFSET)))!=null?Y:10}set forwardSeekOffset(Y){this.setAttribute(k.FORWARD_SEEK_OFFSET,`${Y}`)}get backwardSeekOffset(){var Y;return(Y=e1(this.getAttribute(k.BACKWARD_SEEK_OFFSET)))!=null?Y:10}set backwardSeekOffset(Y){this.setAttribute(k.BACKWARD_SEEK_OFFSET,`${Y}`)}get defaultHiddenCaptions(){return this.hasAttribute(k.DEFAULT_HIDDEN_CAPTIONS)}set defaultHiddenCaptions(Y){Y?this.setAttribute(k.DEFAULT_HIDDEN_CAPTIONS,""):this.removeAttribute(k.DEFAULT_HIDDEN_CAPTIONS)}get defaultDuration(){return e1(this.getAttribute(k.DEFAULT_DURATION))}set defaultDuration(Y){Y==null?this.removeAttribute(k.DEFAULT_DURATION):this.setAttribute(k.DEFAULT_DURATION,`${Y}`)}get playerInitTime(){return this.hasAttribute(S.PLAYER_INIT_TIME)?e1(this.getAttribute(S.PLAYER_INIT_TIME)):T0(this,rJ)}set playerInitTime(Y){Y!=this.playerInitTime&&(Y==null?this.removeAttribute(S.PLAYER_INIT_TIME):this.setAttribute(S.PLAYER_INIT_TIME,`${+Y}`))}get playerSoftwareName(){var Y;return(Y=this.getAttribute(S.PLAYER_SOFTWARE_NAME))!=null?Y:ZR}get playerSoftwareVersion(){var Y;return(Y=this.getAttribute(S.PLAYER_SOFTWARE_VERSION))!=null?Y:YR}get beaconCollectionDomain(){var Y;return(Y=this.getAttribute(S.BEACON_COLLECTION_DOMAIN))!=null?Y:void 0}set beaconCollectionDomain(Y){Y!==this.beaconCollectionDomain&&(Y?this.setAttribute(S.BEACON_COLLECTION_DOMAIN,Y):this.removeAttribute(S.BEACON_COLLECTION_DOMAIN))}get maxResolution(){var Y;return(Y=this.getAttribute(S.MAX_RESOLUTION))!=null?Y:void 0}set maxResolution(Y){Y!==this.maxResolution&&(Y?this.setAttribute(S.MAX_RESOLUTION,Y):this.removeAttribute(S.MAX_RESOLUTION))}get minResolution(){var Y;return(Y=this.getAttribute(S.MIN_RESOLUTION))!=null?Y:void 0}set minResolution(Y){Y!==this.minResolution&&(Y?this.setAttribute(S.MIN_RESOLUTION,Y):this.removeAttribute(S.MIN_RESOLUTION))}get maxAutoResolution(){var Y;return(Y=this.getAttribute(S.MAX_AUTO_RESOLUTION))!=null?Y:void 0}set maxAutoResolution(Y){Y==null?this.removeAttribute(S.MAX_AUTO_RESOLUTION):this.setAttribute(S.MAX_AUTO_RESOLUTION,Y)}get renditionOrder(){var Y;return(Y=this.getAttribute(S.RENDITION_ORDER))!=null?Y:void 0}set renditionOrder(Y){Y!==this.renditionOrder&&(Y?this.setAttribute(S.RENDITION_ORDER,Y):this.removeAttribute(S.RENDITION_ORDER))}get programStartTime(){return e1(this.getAttribute(S.PROGRAM_START_TIME))}set programStartTime(Y){Y==null?this.removeAttribute(S.PROGRAM_START_TIME):this.setAttribute(S.PROGRAM_START_TIME,`${Y}`)}get programEndTime(){return e1(this.getAttribute(S.PROGRAM_END_TIME))}set programEndTime(Y){Y==null?this.removeAttribute(S.PROGRAM_END_TIME):this.setAttribute(S.PROGRAM_END_TIME,`${Y}`)}get assetStartTime(){return e1(this.getAttribute(S.ASSET_START_TIME))}set assetStartTime(Y){Y==null?this.removeAttribute(S.ASSET_START_TIME):this.setAttribute(S.ASSET_START_TIME,`${Y}`)}get assetEndTime(){return e1(this.getAttribute(S.ASSET_END_TIME))}set assetEndTime(Y){Y==null?this.removeAttribute(S.ASSET_END_TIME):this.setAttribute(S.ASSET_END_TIME,`${Y}`)}get extraSourceParams(){return this.hasAttribute(k.EXTRA_SOURCE_PARAMS)?[...new URLSearchParams(this.getAttribute(k.EXTRA_SOURCE_PARAMS)).entries()].reduce((Y,[Z,Q])=>(Y[Z]=Q,Y),{}):IM}set extraSourceParams(Y){Y==null?this.removeAttribute(k.EXTRA_SOURCE_PARAMS):this.setAttribute(k.EXTRA_SOURCE_PARAMS,new URLSearchParams(Y).toString())}get customDomain(){var Y;return(Y=this.getAttribute(S.CUSTOM_DOMAIN))!=null?Y:void 0}set customDomain(Y){Y!==this.customDomain&&(Y?this.setAttribute(S.CUSTOM_DOMAIN,Y):this.removeAttribute(S.CUSTOM_DOMAIN))}get envKey(){var Y;return(Y=r7(this,S.ENV_KEY))!=null?Y:void 0}set envKey(Y){this.setAttribute(S.ENV_KEY,`${Y}`)}get noVolumePref(){return this.hasAttribute(k.NO_VOLUME_PREF)}set noVolumePref(Y){Y?this.setAttribute(k.NO_VOLUME_PREF,""):this.removeAttribute(k.NO_VOLUME_PREF)}get noMutedPref(){return this.hasAttribute(k.NO_MUTED_PREF)}set noMutedPref(Y){Y?this.setAttribute(k.NO_MUTED_PREF,""):this.removeAttribute(k.NO_MUTED_PREF)}get debug(){return r7(this,S.DEBUG)!=null}set debug(Y){Y?this.setAttribute(S.DEBUG,""):this.removeAttribute(S.DEBUG)}get disableTracking(){return r7(this,S.DISABLE_TRACKING)!=null}set disableTracking(Y){this.toggleAttribute(S.DISABLE_TRACKING,!!Y)}get disableCookies(){return r7(this,S.DISABLE_COOKIES)!=null}set disableCookies(Y){Y?this.setAttribute(S.DISABLE_COOKIES,""):this.removeAttribute(S.DISABLE_COOKIES)}get streamType(){var Y,Z,Q;return(Q=(Z=this.getAttribute(S.STREAM_TYPE))!=null?Z:(Y=this.media)==null?void 0:Y.streamType)!=null?Q:C0.UNKNOWN}set streamType(Y){this.setAttribute(S.STREAM_TYPE,`${Y}`)}get defaultStreamType(){var Y,Z,Q;return(Q=(Z=this.getAttribute(k.DEFAULT_STREAM_TYPE))!=null?Z:(Y=this.mediaController)==null?void 0:Y.getAttribute(k.DEFAULT_STREAM_TYPE))!=null?Q:C0.ON_DEMAND}set defaultStreamType(Y){Y?this.setAttribute(k.DEFAULT_STREAM_TYPE,Y):this.removeAttribute(k.DEFAULT_STREAM_TYPE)}get targetLiveWindow(){var Y,Z;return this.hasAttribute(k.TARGET_LIVE_WINDOW)?+this.getAttribute(k.TARGET_LIVE_WINDOW):(Z=(Y=this.media)==null?void 0:Y.targetLiveWindow)!=null?Z:Number.NaN}set targetLiveWindow(Y){Y==this.targetLiveWindow||Number.isNaN(Y)&&Number.isNaN(this.targetLiveWindow)||(Y==null?this.removeAttribute(k.TARGET_LIVE_WINDOW):this.setAttribute(k.TARGET_LIVE_WINDOW,`${+Y}`))}get liveEdgeStart(){var Y;return(Y=this.media)==null?void 0:Y.liveEdgeStart}get startTime(){return e1(r7(this,S.START_TIME))}set startTime(Y){this.setAttribute(S.START_TIME,`${Y}`)}get preferPlayback(){let Y=this.getAttribute(S.PREFER_PLAYBACK);if(Y===X8.MSE||Y===X8.NATIVE)return Y}set preferPlayback(Y){Y!==this.preferPlayback&&(Y===X8.MSE||Y===X8.NATIVE?this.setAttribute(S.PREFER_PLAYBACK,Y):this.removeAttribute(S.PREFER_PLAYBACK))}get metadata(){var Y;return(Y=this.media)==null?void 0:Y.metadata}set metadata(Y){if(q1(this,a0,q7).call(this),!this.media){Y8("underlying media element missing when trying to set metadata. metadata will not be set.");return}this.media.metadata={...eF(this),...Y}}get _hlsConfig(){var Y;return(Y=this.media)==null?void 0:Y._hlsConfig}set _hlsConfig(Y){if(q1(this,a0,q7).call(this),!this.media){Y8("underlying media element missing when trying to set _hlsConfig. _hlsConfig will not be set.");return}this.media._hlsConfig=Y}async addCuePoints(Y){var Z;if(q1(this,a0,q7).call(this),!this.media){Y8("underlying media element missing when trying to addCuePoints. cuePoints will not be added.");return}return(Z=this.media)==null?void 0:Z.addCuePoints(Y)}get activeCuePoint(){var Y;return(Y=this.media)==null?void 0:Y.activeCuePoint}get cuePoints(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.cuePoints)!=null?Z:[]}addChapters(Y){var Z;if(q1(this,a0,q7).call(this),!this.media){Y8("underlying media element missing when trying to addChapters. chapters will not be added.");return}return(Z=this.media)==null?void 0:Z.addChapters(Y)}get activeChapter(){var Y;return(Y=this.media)==null?void 0:Y.activeChapter}get chapters(){var Y,Z;return(Z=(Y=this.media)==null?void 0:Y.chapters)!=null?Z:[]}getStartDate(){var Y;return(Y=this.media)==null?void 0:Y.getStartDate()}get currentPdt(){var Y;return(Y=this.media)==null?void 0:Y.currentPdt}get tokens(){let Y=this.getAttribute(k.PLAYBACK_TOKEN),Z=this.getAttribute(k.DRM_TOKEN),Q=this.getAttribute(k.THUMBNAIL_TOKEN),X=this.getAttribute(k.STORYBOARD_TOKEN);return{...T0(this,tJ),...Y!=null?{playback:Y}:{},...Z!=null?{drm:Z}:{},...Q!=null?{thumbnail:Q}:{},...X!=null?{storyboard:X}:{}}}set tokens(Y){z6(this,tJ,Y!=null?Y:{})}get playbackToken(){var Y;return(Y=this.getAttribute(k.PLAYBACK_TOKEN))!=null?Y:void 0}set playbackToken(Y){this.setAttribute(k.PLAYBACK_TOKEN,`${Y}`)}get drmToken(){var Y;return(Y=this.getAttribute(k.DRM_TOKEN))!=null?Y:void 0}set drmToken(Y){this.setAttribute(k.DRM_TOKEN,`${Y}`)}get thumbnailToken(){var Y;return(Y=this.getAttribute(k.THUMBNAIL_TOKEN))!=null?Y:void 0}set thumbnailToken(Y){this.setAttribute(k.THUMBNAIL_TOKEN,`${Y}`)}get storyboardToken(){var Y;return(Y=this.getAttribute(k.STORYBOARD_TOKEN))!=null?Y:void 0}set storyboardToken(Y){this.setAttribute(k.STORYBOARD_TOKEN,`${Y}`)}addTextTrack(Y,Z,Q,X){var J;let W=(J=this.media)==null?void 0:J.nativeEl;if(W)return zQ(W,Y,Z,Q,X)}removeTextTrack(Y){var Z;let Q=(Z=this.media)==null?void 0:Z.nativeEl;if(Q)return zG(Q,Y)}get textTracks(){var Y;return(Y=this.media)==null?void 0:Y.textTracks}get castReceiver(){var Y;return(Y=this.getAttribute(k.CAST_RECEIVER))!=null?Y:void 0}set castReceiver(Y){Y!==this.castReceiver&&(Y?this.setAttribute(k.CAST_RECEIVER,Y):this.removeAttribute(k.CAST_RECEIVER))}get castCustomData(){var Y;return(Y=this.media)==null?void 0:Y.castCustomData}set castCustomData(Y){if(!this.media){Y8("underlying media element missing when trying to set castCustomData. castCustomData will not be set.");return}this.media.castCustomData=Y}get noTooltips(){return this.hasAttribute(k.NO_TOOLTIPS)}set noTooltips(Y){if(!Y){this.removeAttribute(k.NO_TOOLTIPS);return}this.setAttribute(k.NO_TOOLTIPS,"")}get proudlyDisplayMuxBadge(){return this.hasAttribute(k.PROUDLY_DISPLAY_MUX_BADGE)}set proudlyDisplayMuxBadge(Y){Y?this.setAttribute(k.PROUDLY_DISPLAY_MUX_BADGE,""):this.removeAttribute(k.PROUDLY_DISPLAY_MUX_BADGE)}get capRenditionToPlayerSize(){var Y;return(Y=this.media)==null?void 0:Y.capRenditionToPlayerSize}set capRenditionToPlayerSize(Y){if(!this.media){Y8("underlying media element missing when trying to set capRenditionToPlayerSize");return}this.media.capRenditionToPlayerSize=Y}};rJ=new WeakMap,aJ=new WeakMap,tJ=new WeakMap,a7=new WeakMap,eJ=new WeakMap,LY=new WeakMap,a0=new WeakSet,q7=function(){var Y,Z,Q,X;if(!T0(this,aJ)){z6(this,aJ,!0),q1(this,a0,t7).call(this);try{if(customElements.upgrade(this.mediaTheme),!(this.mediaTheme instanceof H6.HTMLElement))throw""}catch{Y8(" failed to upgrade!")}try{customElements.upgrade(this.media)}catch{Y8("underlying media element failed to upgrade!")}try{if(customElements.upgrade(this.mediaController),!(this.mediaController instanceof _4))throw""}catch{Y8(" failed to upgrade!")}q1(this,a0,XR).call(this),q1(this,a0,JR).call(this),q1(this,a0,WR).call(this),z6(this,a7,(Z=(Y=this.mediaController)==null?void 0:Y.hasAttribute(J0.USER_INACTIVE))!=null?Z:!0),q1(this,a0,qR).call(this),(Q=this.media)==null||Q.addEventListener("streamtypechange",()=>q1(this,a0,t7).call(this)),(X=this.media)==null||X.addEventListener("loadstart",()=>q1(this,a0,t7).call(this))}},OR=function(){var Y,Z;try{(Y=window==null?void 0:window.CSS)==null||Y.registerProperty({name:"--media-primary-color",syntax:"",inherits:!0}),(Z=window==null?void 0:window.CSS)==null||Z.registerProperty({name:"--media-secondary-color",syntax:"",inherits:!0})}catch{}},xz=function(Y){Object.assign(T0(this,LY),Y),q1(this,a0,t7).call(this)},t7=function(Y={}){EM(GM(AM(this,{...T0(this,LY),...Y})),this.shadowRoot)},XR=function(){let Y=(Z)=>{var Q,X;if(!(Z!=null&&Z.startsWith("theme-")))return;let J=Z.replace(/^theme-/,"");if(Mz.includes(J))return;let W=this.getAttribute(Z);W!=null?(Q=this.mediaTheme)==null||Q.setAttribute(J,W):(X=this.mediaTheme)==null||X.removeAttribute(J)};new MutationObserver((Z)=>{for(let{attributeName:Q}of Z)Y(Q)}).observe(this,{attributes:!0}),this.getAttributeNames().forEach(Y)},JR=function(){let Y=(Z)=>{var Q;let X=(Q=this.media)==null?void 0:Q.error;if(!(X instanceof i)){let{message:W,code:q}=X!=null?X:{};X=new i(W,q)}if(!(X!=null&&X.fatal)){I6(X),X.data&&I6(`${X.name} data:`,X.data);return}let J=rF(X,!1);J.message&&BR(J),Y8(X),X.data&&Y8(`${X.name} data:`,X.data),q1(this,a0,xz).call(this,{isDialogOpen:!0})};this.addEventListener("error",Y),this.media&&(this.media.errorTranslator=(Z={})=>{var Q,X,J;if(!(((Q=this.media)==null?void 0:Q.error)instanceof i))return Z;let W=rF((X=this.media)==null?void 0:X.error,!1);return{player_error_code:(J=this.media)==null?void 0:J.error.code,player_error_message:W.message?String(W.message):Z.player_error_message,player_error_context:W.context?String(W.context):Z.player_error_context}})},WR=function(){var Y,Z,Q,X;let J=()=>q1(this,a0,t7).call(this);(Z=(Y=this.media)==null?void 0:Y.textTracks)==null||Z.addEventListener("addtrack",J),(X=(Q=this.media)==null?void 0:Q.textTracks)==null||X.addEventListener("removetrack",J)},qR=function(){var Y,Z;if(!/Firefox/i.test(navigator.userAgent))return;let Q,X=new WeakMap,J=()=>this.streamType===C0.LIVE&&!this.secondaryColor&&this.offsetWidth>=800,W=(H,E,K=!1)=>{if(J())return;Array.from(H&&H.activeCues||[]).forEach((G)=>{if(!(!G.snapToLines||G.line<-5||G.line>=0&&G.line<10))if(!E||this.paused){let U=G.text.split(` `).length,V=-3;this.streamType===C0.LIVE&&(V=-2);let F=V-U;if(G.line===F&&!K)return;X.has(G)||X.set(G,G.line),G.line=F}else setTimeout(()=>{G.line=X.get(G)||"auto"},500)})},q=()=>{var H,E;W(Q,(E=(H=this.mediaController)==null?void 0:H.hasAttribute(J0.USER_INACTIVE))!=null?E:!1)},z=()=>{var H,E;let K=Array.from(((E=(H=this.mediaController)==null?void 0:H.media)==null?void 0:E.textTracks)||[]).filter((G)=>["subtitles","captions"].includes(G.kind)&&G.mode==="showing")[0];K!==Q&&(Q==null||Q.removeEventListener("cuechange",q)),Q=K,Q==null||Q.addEventListener("cuechange",q),W(Q,T0(this,a7))};z(),(Y=this.textTracks)==null||Y.addEventListener("change",z),(Z=this.textTracks)==null||Z.addEventListener("addtrack",z),this.addEventListener("userinactivechange",()=>{var H,E;let K=(E=(H=this.mediaController)==null?void 0:H.hasAttribute(J0.USER_INACTIVE))!=null?E:!0;T0(this,a7)!==K&&(z6(this,a7,K),W(Q,T0(this,a7)))})};function r7(Y,Z){return Y.media?Y.media.getAttribute(Z):Y.getAttribute(Z)}var hz=SM;var jR=(Y)=>{throw TypeError(Y)},AR=(Y,Z,Q)=>Z.has(Y)||jR("Cannot "+Q),TM=(Y,Z,Q)=>(AR(Y,Z,"read from private field"),Q?Q.call(Y):Z.get(Y)),hM=(Y,Z,Q)=>Z.has(Y)?jR("Cannot add the same private member more than once"):Z instanceof WeakSet?Z.add(Y):Z.set(Y,Q),fM=(Y,Z,Q,X)=>(AR(Y,Z,"write to private field"),X?X.call(Y,Q):Z.set(Y,Q),Q),XW=class{addEventListener(){}removeEventListener(){}dispatchEvent(Y){return!0}};if(typeof DocumentFragment>"u"){class Y extends XW{}globalThis.DocumentFragment=Y}var yz=class extends XW{},yM=class extends XW{},kM={get(Y){},define(Y,Z,Q){},getName(Y){return null},upgrade(Y){},whenDefined(Y){return Promise.resolve(yz)}},QW,gM=class{constructor(Y,Z={}){hM(this,QW),fM(this,QW,Z==null?void 0:Z.detail)}get detail(){return TM(this,QW)}initCustomEvent(){}};QW=new WeakMap;function bM(Y,Z){return new yz}var DR={document:{createElement:bM},DocumentFragment,customElements:kM,CustomEvent:gM,EventTarget:XW,HTMLElement:yz,HTMLVideoElement:yM},wR=typeof window>"u"||typeof globalThis.customElements>"u",fz=wR?DR:globalThis,fb=wR?DR.document:globalThis.document;fz.customElements.get("mux-player")||(fz.customElements.define("mux-player",hz),fz.MuxPlayerElement=hz);var z7=()=>window.matchMedia("(prefers-reduced-motion: reduce)").matches;function _M(){document.querySelectorAll("[data-gsap-animate-chars='true'], [data-gsap-fade-in-container='true']").forEach((Y)=>{Y.style.visibility="visible"}),document.querySelectorAll("[data-gsap-highlight='true']").forEach((Y)=>{let Z=Y.getAttribute("data-gsap-highlight-color")||"#b6e0cd";Y.style.setProperty("--gsap-highlight",Z),Y.style.setProperty("--hl","1")})}function vM(){let Y={duration:1,y:50,autoAlpha:0,stagger:0.02,ease:"power2.out"};document.querySelectorAll("[data-gsap-animate-chars='true']").forEach((Z)=>{let X=SplitText.create(Z,{type:"chars,words",autoSplit:!0,reduceWhiteSpace:!1,wordsClass:"word",charsClass:"char"}).chars;if(!X.length)return;let J=gsap.timeline({paused:!0});J.from(X,{duration:Y.duration,y:Y.y,autoAlpha:Y.autoAlpha,stagger:Y.stagger,ease:Y.ease},0),ScrollTrigger.create({trigger:Z,start:Z.dataset.gsapStart||"top 65%",once:!0,onEnter:()=>J.play()}),gsap.set(Z,{visibility:"visible"})})}function pM(){let Y=gsap.utils.toArray("[data-gsap-highlight='true']");if(!Y.length)return;Y.forEach((J)=>{let W=J.getAttribute("data-gsap-highlight-color")||"#b6e0cd";J.style.setProperty("--gsap-highlight",W),gsap.set(J,{"--hl":0})});let Z=Y[0];if(!Z)return;let Q=Z.dataset.gsapStart||"top 65%",X=Number(Z.dataset.gsapDuration||1);gsap.timeline({scrollTrigger:{trigger:Z,start:Q,once:!0}}).to(Y,{"--hl":1,duration:X,ease:"power2.out",stagger:0.25})}function cM(){let Y=gsap.utils.toArray("[data-gsap-fade-in-container='true']");if(!Y.length)return;Y.forEach((Z)=>{let Q=Array.from(Z.children).filter((W)=>W instanceof HTMLElement);if(!Q.length)return;gsap.set(Q,{y:40,autoAlpha:0});let X=Z.dataset.gsapStart||"top 85%",J=Number(Z.dataset.gsapDuration||0.6);gsap.timeline({scrollTrigger:{trigger:Z,start:X,once:!0}}).to(Q,{y:0,autoAlpha:1,duration:J,ease:"power2.out",stagger:0.2}),gsap.set(Z,{visibility:"visible"})})}function uM(){let Y=(Z,Q)=>{return gsap.to(Z,{yPercent:Q,ease:"none",scrollTrigger:{trigger:Z,start:"top bottom",end:"bottom top",scrub:!0}})};ScrollTrigger.matchMedia({"(min-width: 769px)":()=>{document.querySelectorAll("[data-gsap-parallax='true']").forEach((Z)=>{let Q=parseFloat(Z.dataset.parallaxSpeed||"15")||15;Y(Z,-Q)})},"(max-width: 768px)":()=>{document.querySelectorAll("[data-gsap-parallax='true']").forEach((Z)=>{Y(Z,-10)})}})}function mM(){document.querySelectorAll("[data-gsap-svg-draw='true']").forEach((Y)=>{let Z=Y.querySelector("path");if(!Z)return;let Q=Y.dataset.gsapStart||"top 90%",X=Number(Y.dataset.gsapDuration||1);gsap.fromTo(Z,{drawSVG:"100% 100%"},{drawSVG:"0% 100%",duration:X,ease:"power1.inOut",scrollTrigger:{trigger:Y,start:Q,toggleActions:"play none none reverse"}})})}function kz(){if(z7()){_M();return}vM(),pM(),cM(),uM(),mM()}var oM=60,dM=(Y)=>typeof Y==="number"?Y:parseFloat(Y)||0,lM=(Y)=>{let Z=window.devicePixelRatio||1;return Math.round(Y*Z)/Z},nM=()=>new Promise((Y)=>requestAnimationFrame(()=>Y()));function sM(Y){if(z7())return;let Z=Y.querySelector(".marquee_track");if(!Z||Z.getAttribute("data-marquee-initialized")==="true")return;Z.setAttribute("data-marquee-initialized","true");let Q=Y.dataset.staticMarquee==="true",X=getComputedStyle(Z),J=X.gap&&X.gap!=="normal"?X.gap:"24px";Z.style.gap="0px";let W=document.createElement("div");W.className="marquee_group",W.style.display="inline-flex",W.style.alignItems="center",W.style.flexShrink="0",W.style.gap=J,W.style.paddingRight=J;while(Z.firstChild)W.appendChild(Z.firstChild);Z.appendChild(W);let q=null,z=0,H=async()=>{cancelAnimationFrame(z),z=requestAnimationFrame(async()=>{await nM();let E=Y.getBoundingClientRect().width;q?.kill(),q=null,gsap.set(Z,{x:0}),Z.querySelectorAll(".marquee_group").forEach((F,R)=>{if(R>0)F.remove()});let K=lM(W.getBoundingClientRect().width);if(!K||K<1)return;let G=K;while(G{return`${-((-dM(F)%K+K)%K)}px`}}})})};if(H(),window.addEventListener("resize",H,{passive:!0}),document.fonts?.ready)document.fonts.ready.then(H).catch(()=>{return})}function gz(){document.querySelectorAll(".marquee").forEach((Y)=>sM(Y))}function bz(Y){let Z=Y.getAttribute("aria-controls");return Z?document.getElementById(Z):null}function PR(Y){let Z=bz(Y);Y.setAttribute("aria-expanded","false"),Z?.setAttribute("aria-hidden","true")}function iM(Y){let Z=bz(Y);Y.setAttribute("aria-expanded","true"),Z?.setAttribute("aria-hidden","false")}function _z(){document.querySelectorAll(".accordion").forEach((Y)=>{let Z=Array.from(Y.querySelectorAll(".accordion_button")),Q=(X)=>{let J=X.getAttribute("aria-expanded")==="true";Z.forEach((W)=>W!==X&&PR(W)),J?PR(X):iM(X)};Z.forEach((X)=>{X.addEventListener("click",()=>Q(X)),X.addEventListener("keydown",(J)=>{let W=Z.indexOf(X);switch(J.key){case"Enter":case" ":J.preventDefault(),Q(X);break;case"ArrowDown":J.preventDefault(),Z[(W+1)%Z.length]?.focus();break;case"ArrowUp":J.preventDefault(),Z[(W-1+Z.length)%Z.length]?.focus();break;case"Home":J.preventDefault(),Z[0]?.focus();break;case"End":J.preventDefault(),Z[Z.length-1]?.focus();break;default:break}})}),Z.forEach((X)=>{let J=bz(X),W=X.getAttribute("aria-expanded")==="true";J?.setAttribute("aria-hidden",String(!W))})})}function CR(Y){let Z=Y.closest("[role='tablist']");if(!Z)return;Array.from(Z.querySelectorAll("[role='tab']")).forEach((W)=>{W.setAttribute("aria-selected","false"),W.setAttribute("tabindex","-1")}),Y.setAttribute("aria-selected","true"),Y.setAttribute("tabindex","0");let X=Y.getAttribute("aria-controls");if(!X)return;let J=document.getElementById(X);if(!J)return;J.parentElement?.querySelectorAll("[role='tabpanel']").forEach((W)=>{W.setAttribute("aria-hidden","true")}),J.setAttribute("aria-hidden","false")}function IR(Y){let Z=Y.closest("[role='tablist']");if(!Z)return[];return Array.from(Z.querySelectorAll("[role='tab']")).filter((Q)=>!Q.hasAttribute("disabled")&&Q.getAttribute("aria-disabled")!=="true")}function MR(Y,Z){let Q=IR(Y),X=Q.indexOf(Y);if(X===-1||Q.length===0)return;Q[(X+Z+Q.length)%Q.length]?.focus()}function xR(Y,Z){let Q=IR(Y);if(!Q.length)return;(Z==="first"?Q[0]:Q[Q.length-1])?.focus()}function vz(){document.querySelectorAll("[role='tab']").forEach((Y)=>{Y.setAttribute("tabindex",Y.getAttribute("aria-selected")==="true"?"0":"-1"),Y.addEventListener("click",()=>{CR(Y)}),Y.addEventListener("keydown",(Z)=>{let Q=Z.key;if(Q==="ArrowRight"){Z.preventDefault(),MR(Y,1);return}if(Q==="ArrowLeft"){Z.preventDefault(),MR(Y,-1);return}if(Q==="Home"){Z.preventDefault(),xR(Y,"first");return}if(Q==="End"){Z.preventDefault(),xR(Y,"last");return}if(Q==="Enter"||Q===" ")Z.preventDefault(),CR(Y)})})}var JW=(Y,Z,Q)=>Math.min(Q,Math.max(Z,Y)),WW=(Y)=>{let Z=getComputedStyle(Y),Q=parseFloat(Z.paddingLeft)||0,X=parseFloat(Z.paddingRight)||0;return Math.max(0,Y.clientWidth-Q-X)},rM=(Y,Z)=>{let Q=z7(),X=Y?.querySelector(".scrollbar_track"),J=Y?.querySelector(".scrollbar_thumb"),W=Y?Array.from(Y.querySelectorAll(".scrollbar_arrow")):[];if(!Z||!Y||!X||!J)return;let q=!1,z=0,H=0,E=()=>Math.max(0,Z.scrollWidth-Z.clientWidth),K=(w)=>{let D=WW(X),M=J.getBoundingClientRect().width,C=Math.max(0,D-M);J.style.transform=`translate3d(${JW(w,0,1)*C}px, 0, 0)`},G=()=>{let w=WW(X),D=Z.clientWidth/Z.scrollWidth,M=Math.min(w,Math.max(24,w*D));J.style.width=`${M}px`},U=()=>{let w=E(),D=w===0?0:Z.scrollLeft/w;K(D)},V=(w)=>{let D=JW(w,0,E());if(Q){Z.scrollLeft=D;return}gsap.to(Z,{scrollLeft:D,duration:0.25,ease:"power2.out"})},F=(w)=>{if(E()===0)return;V(Z.scrollLeft+w)},R=(w)=>{let D=WW(X),M=J.getBoundingClientRect().width,C=Math.max(0,D-M),I=X.getBoundingClientRect(),x=parseFloat(getComputedStyle(X).paddingLeft)||0,f=JW(w-I.left-x,0,C);return C===0?0:f/C},B=()=>{G(),U()};if(B(),requestAnimationFrame(B),window.addEventListener("load",B),Z.addEventListener("scroll",U,{passive:!0}),window.addEventListener("resize",B),J.style.touchAction="none",J.addEventListener("pointerdown",(w)=>{q=!0,z=w.clientX;let D=E();H=D===0?0:Z.scrollLeft/D,w.currentTarget&&w.currentTarget.setPointerCapture(w.pointerId),w.preventDefault(),w.stopPropagation()}),J.addEventListener("pointermove",(w)=>{if(!q)return;let D=WW(X),M=J.getBoundingClientRect().width,C=Math.max(0,D-M);if(C===0)return;let I=(w.clientX-z)/C,x=JW(H+I,0,1);Z.scrollLeft=x*E()}),J.addEventListener("pointerup",()=>{q=!1}),J.addEventListener("pointercancel",()=>{q=!1}),X.addEventListener("pointerdown",(w)=>{let D=w.target;if(D?.closest(".scrollbar_thumb")||D?.closest(".scrollbar_arrow"))return;let M=R(w.clientX);V(M*E())}),!W.length)return;let $=()=>Math.max(60,Math.round(Z.clientWidth*0.25)),L=50,O=null,j=()=>{if(O!==null)window.clearInterval(O),O=null};W.forEach((w)=>{let D=Number(w.dataset.dir||0)||(w.classList.contains("is-right")?1:-1),M=()=>F(D*$());w.addEventListener("click",(C)=>{C.preventDefault(),C.stopPropagation(),M()}),w.addEventListener("pointerdown",(C)=>{C.preventDefault(),C.stopPropagation(),j(),M(),O=window.setInterval(M,L)}),w.addEventListener("pointerup",j),w.addEventListener("pointercancel",j),w.addEventListener("pointerleave",j)})};function pz(){document.querySelectorAll("[data-scrollbar-for]").forEach((Y)=>{let Z=Y.dataset.scrollbarFor;if(!Z)return;let Q=document.querySelector(Z);if(!Q)return;rM(Y,Q)})}var aM=(Y)=>{if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",Y,{once:!0});return}Y()};aM(async()=>{if(!z7())kz(),gz();_z(),vz(),pz()});})();