@flowplayer/spins 0.5.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,43 +1,42 @@
1
- var nm=Object.create;var{getPrototypeOf:rm,defineProperty:cc,getOwnPropertyNames:sm}=Object;var am=Object.prototype.hasOwnProperty;var Ne=(r,l,d)=>{d=r!=null?nm(rm(r)):{};let v=l||!r||!r.__esModule?cc(d,"default",{value:r,enumerable:!0}):d;for(let E of sm(r))if(!am.call(v,E))cc(v,E,{get:()=>r[E],enumerable:!0});return v};var De=(r,l)=>()=>(l||r((l={exports:{}}).exports,l),l.exports);var uc=(r,l)=>{for(var d in l)cc(r,d,{get:l[d],enumerable:!0,configurable:!0,set:(v)=>l[d]=()=>v})};var Td=De((My,bd)=>{var R0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function Sc(r){this.message=r}Sc.prototype=Error();Sc.prototype.name="InvalidCharacterError";function k0(r){var l=String(r).replace(/=+$/,"");if(l.length%4==1)throw new Sc("'atob' failed: The string to be decoded is not correctly encoded.");for(var d=0,v,E,A=0,R="";E=l.charAt(A++);~E&&(v=d%4?v*64+E:E,d++%4)?R+=String.fromCharCode(255&v>>(-2*d&6)):0)E=R0.indexOf(E);return R}bd.exports=typeof window<"u"&&window.atob&&window.atob.bind(window)||k0});var Ld=De((Ny,Ad)=>{var _d=Td();function D0(r){return decodeURIComponent(_d(r).replace(/(.)/g,function(l,d){var v=d.charCodeAt(0).toString(16).toUpperCase();if(v.length<2)v="0"+v;return"%"+v}))}Ad.exports=function(r){var l=r.replace(/-/g,"+").replace(/_/g,"/");switch(l.length%4){case 0:break;case 2:l+="==";break;case 3:l+="=";break;default:throw"Illegal base64url string!"}try{return D0(l)}catch(d){return _d(l)}}});var wd=De((Fy,bc)=>{var C0=Ld();function Ma(r){this.message=r}Ma.prototype=Error();Ma.prototype.name="InvalidTokenError";bc.exports=function(r,l){if(typeof r!=="string")throw new Ma("Invalid token specified");l=l||{};var d=l.header===!0?0:1;try{return JSON.parse(C0(r.split(".")[d]))}catch(v){throw new Ma("Invalid token specified: "+v.message)}};bc.exports.InvalidTokenError=Ma});var _r=De((Dd)=>{Object.defineProperty(Dd,"__esModule",{value:!0});var I0="mount",O0="retry",M0="error",N0="contextmenu",F0="click",P0="dblclick",x0="keyup",U0="keydown",B0="load",$0="mouseenter",G0="mouseleave",H0="mouseup",K0="mousedown",V0="mousemove",W0="touchstart",Y0="touchmove",j0="touchend",z0="touchcancel",q0="resize",X0="scroll",J0="fullscreenenter",Q0="fullscreenexit",Z0="fullscreenchange",tg="loadedmetadata",eg="loadeddata",ig="progress",ng="timeupdate",rg="loadstart",sg="volumechange",ag="pause",og="playing",lg="play",cg="waiting",ug="canplay",dg="ended",hg="seeked",fg="seeking",mg="durationchange",gg="viewenter",pg="viewleave",vg="src",Eg="reap",yg="qualities",Sg="qualitychange",bg="videoTracks",Tg="quality:set",_g="tracks:video:select",Ag="recommendationsready",Lg="landscape",wg="portrait",Rg="dvr",kg="live",Dg="recover",Cg="seek:queued",Ig="seek:cancel",Og="plugin:registered",Mg="remotesession:started",Ng="remotesession:ended",Fg="intersectionchange",Pg="webkitneedkey",xg="renderplugin",Ug="audioonlysource",Bg="error:fatal",$g="config",Gg="state",Hg="beforeplay",Kg="beforepause",Vg="content:loadstart",Wg="cuepoints",Yg="cuepointstart",jg="cuepointend",zg="flowplayer:error";Dd.AUDIO_ONLY_SOURCE=Ug;Dd.BEFORE_PAUSE=Kg;Dd.BEFORE_PLAY=Hg;Dd.CAN_PLAY=ug;Dd.CLICK=F0;Dd.CONFIG=$g;Dd.CONTENT_REAL_LOAD_START=Vg;Dd.CONTEXT_MENU=N0;Dd.CUEPOINTS=Wg;Dd.CUEPOINT_END=jg;Dd.CUEPOINT_START=Yg;Dd.DATA=eg;Dd.DBL_CLICK=P0;Dd.DURATION_CHANGE=mg;Dd.DVR=Rg;Dd.ENDED=dg;Dd.ERROR=M0;Dd.FULLSCREEN_CHANGE=Z0;Dd.FULLSCREEN_ENTER=J0;Dd.FULLSCREEN_EXIT=Q0;Dd.INTERSECTIONCHANGE=Fg;Dd.KEYDOWN=U0;Dd.KEYUP=x0;Dd.LANDSCAPE=Lg;Dd.LIVE=kg;Dd.LOAD=B0;Dd.LOAD_START=rg;Dd.METADATA=tg;Dd.MOUNT=I0;Dd.MOUSE_DOWN=K0;Dd.MOUSE_ENTER=$0;Dd.MOUSE_LEAVE=G0;Dd.MOUSE_MOVE=V0;Dd.MOUSE_UP=H0;Dd.NON_RECOVERABLE_ERROR=Bg;Dd.PAUSE=ag;Dd.PLAY=lg;Dd.PLAYING=og;Dd.PLUGIN_REGISTERED=Og;Dd.PORTRAIT=wg;Dd.PROGRESS=ig;Dd.QUALITIES=yg;Dd.QUALITY_CHANGE=Sg;Dd.REAP=Eg;Dd.RECOMMENDATIONS_READY=Ag;Dd.RECOVER=Dg;Dd.REMOTE_SESSION_ENDED=Ng;Dd.REMOTE_SESSION_STARTED=Mg;Dd.RENDER_PLUGIN=xg;Dd.RESIZE=q0;Dd.RETRY=O0;Dd.SCROLL=X0;Dd.SEEKED=hg;Dd.SEEKING=fg;Dd.SEEK_CANCEL=Ig;Dd.SEEK_QUEUED=Cg;Dd.SET_QUALITY=Tg;Dd.SOURCE=vg;Dd.STANDARD_ERROR=zg;Dd.STATE=Gg;Dd.TIME_UPDATE=ng;Dd.TOUCH_CANCEL=z0;Dd.TOUCH_END=j0;Dd.TOUCH_MOVE=Y0;Dd.TOUCH_START=W0;Dd.VIDEO_TRACKS=bg;Dd.VIDEO_TRACK_SELECT=_g;Dd.VIEW_ENTER=gg;Dd.VIEW_LEAVE=pg;Dd.VOLUME_CHANGE=sg;Dd.WAITING=cg;Dd.WEBKIT_NEEDKEY=Pg});var Od=De(($o,Go)=>{(function(r,l){typeof $o=="object"&&typeof Go<"u"?Go.exports=l():typeof define=="function"&&define.amd?define(l):(r=typeof globalThis<"u"?globalThis:r||self).flowplayer=l()})($o,function(){let r=[],l=[];function d(){let f=typeof document<"u"&&typeof window<"u",g=f?navigator.userAgent:"",p=/iP(hone|od)/i.test(g)&&!/iPad/.test(g)&&!/IEMobile/i.test(g),k=/Android/.test(g)&&!/Firefox/.test(g),M=/^((?!chrome|android).)*safari/i.test(g),$=/chrome|crios/i.test(g)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(g),H=/firefox|fxios/i.test(g)&&!/seamonkey/i.test(g),U=/edg/i.test(g),j=/opr|opera/i.test(g),tt=/SamsungBrowser/.test(g),Tt=tt&&/SMART-TV/.test(g);return{controls:!p,video:function(Dt){return f&&document.createElement("video").canPlayType(Dt)},lang:f&&window.navigator.language,android:k,iphone:p,safari:M,edge:U,opera:j,chrome:$,firefox:H,ios:f&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,samsung:tt,samsung_tv:tt&&Tt,touch:"ontouchstart"in window,tizen:"tizen"in window,webOS:"webos"in window}}let v="click",E="dblclick",A="mouseleave",R="mousemove",T="touchmove",L="fullscreenenter",O="fullscreenexit",X="loadedmetadata",b="loadeddata",G="progress",N="loadstart",K="pause",nt="playing",Et="waiting",q="canplay",C="ended",B="seeked",P="seeking",Y="reap",Q="landscape",ct="portrait",st="config",ot="content:loadstart";var St=Object.freeze({__proto__:null,MOUNT:"mount",RETRY:"retry",ERROR:"error",CONTEXT_MENU:"contextmenu",CLICK:v,DBL_CLICK:E,KEYUP:"keyup",KEYDOWN:"keydown",LOAD:"load",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:A,MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_MOVE:R,TOUCH_START:"touchstart",TOUCH_MOVE:T,TOUCH_END:"touchend",TOUCH_CANCEL:"touchcancel",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_ENTER:L,FULLSCREEN_EXIT:O,FULLSCREEN_CHANGE:"fullscreenchange",METADATA:X,DATA:b,PROGRESS:G,TIME_UPDATE:"timeupdate",LOAD_START:N,VOLUME_CHANGE:"volumechange",PAUSE:K,PLAYING:nt,PLAY:"play",WAITING:Et,CAN_PLAY:q,ENDED:C,SEEKED:B,SEEKING:P,DURATION_CHANGE:"durationchange",VIEW_ENTER:"viewenter",VIEW_LEAVE:"viewleave",SOURCE:"src",REAP:Y,QUALITIES:"qualities",QUALITY_CHANGE:"qualitychange",VIDEO_TRACKS:"videoTracks",SET_QUALITY:"quality:set",VIDEO_TRACK_SELECT:"tracks:video:select",RECOMMENDATIONS_READY:"recommendationsready",LANDSCAPE:Q,PORTRAIT:ct,DVR:"dvr",LIVE:"live",RECOVER:"recover",SEEK_QUEUED:"seek:queued",SEEK_CANCEL:"seek:cancel",PLUGIN_REGISTERED:"plugin:registered",REMOTE_SESSION_STARTED:"remotesession:started",REMOTE_SESSION_ENDED:"remotesession:ended",INTERSECTIONCHANGE:"intersectionchange",WEBKIT_NEEDKEY:"webkitneedkey",RENDER_PLUGIN:"renderplugin",AUDIO_ONLY_SOURCE:"audioonlysource",NON_RECOVERABLE_ERROR:"error:fatal",CONFIG:st,STATE:"state",BEFORE_PLAY:"beforeplay",BEFORE_PAUSE:"beforepause",CONTENT_REAL_LOAD_START:ot,CUEPOINTS:"cuepoints",CUEPOINT_START:"cuepointstart",CUEPOINT_END:"cuepointend",STANDARD_ERROR:"flowplayer:error"});let Ft="flowplayer-ui",$t="flowplayer-logo",zt="flowplayer-control",rt="flowplayer-live-status",ut="flowplayer-elapsed-time",bt="flowplayer-timeline-bar",Bt="flowplayer-volume-bar",Vt="flowplayer-header",ce="flowplayer-middle",jt="flowplayer-middle-zone",V="flowplayer-wait",et="flowplayer-play-icon",pt="flowplayer-pause-icon",gt="flowplayer-rewind-icon",Lt="flowplayer-volume-icon";var ve=Object.freeze({__proto__:null,SUBTITLES_MENU:"flowplayer-subtitles-menu",SHARE_MENU:"flowplayer-share-menu",SPEED_MENU:"flowplayer-speed-menu",QUALITY_MENU:"flowplayer-quality-menu",AUDIO_MENU:"flowplayer-audio-menu",VIDEO_MENU:"flowplayer-video-menu",UI:Ft,LOGO:$t,CONTROL:zt,CONTROL_BUTTONS:"flowplayer-control-buttons",LIVE_STATUS:rt,ELAPSED:ut,TIMELINE:bt,CHAPTERS_TIMELINE:"flowplayer-chapters-timeline-bar",CONTROL_DURATION:"flowplayer-control-duration",VOLUME_CONTROL:"flowplayer-volume-control",VOLUME_BAR:Bt,HEADER:Vt,HEADER_LEFT_ZONE:"flowplayer-header-left-zone",HEADER_RIGHT_ZONE:"flowplayer-header-right-zone",HEADER_DURATION:"flowplayer-header-duration",MIDDLE:ce,MIDDLE_ZONE:jt,WAIT:V,MIDDLE_BUTTONS:"flowplayer-middle-buttons",MIDDLE_LEFT_ZONE:"flowplayer-middle-left-zone",MIDDLE_RIGHT_ZONE:"flowplayer-middle-right-zone",ENDSCREEN_INTERSTITIAL:"flowplayer-endscreen-interstitial",ENDSCREEN_UP_NEXT:"flowplayer-endscreen-up-next",ENDSCREEN_GRID:"flowplayer-endscreen-grid",PLAYLIST_INTERSTITIAL:"flowplayer-playlist-interstitial",AIRPLAY_ICON:"flowplayer-airplay-icon",CHROMECAST_ICON:"flowplayer-chromecast-icon",SMALL_PLAY_ICON:"flowplayer-small-play-icon",SMALL_PAUSE_ICON:"flowplayer-small-pause-icon",PLAY_ICON:et,PAUSE_ICON:pt,FULLSCREEN_ENTER_ICON:"flowplayer-fullscreen-enter-icon",FULLSCREEN_EXIT_ICON:"flowplayer-fullscreen-exit-icon",SKIP_NEXT_ICON:"flowplayer-skip-next-icon",SKIP_PREVIOUS_ICON:"flowplayer-skip-previous-icon",FAST_FORWARD_ICON:"flowplayer-fast-forward-icon",REWIND_ICON:gt,SHARE_ICON:"flowplayer-share-icon",SUBTITLES_MENU_ICON:"flowplayer-subs-menu-icon",MENU_BACK_ICON:"flowplayer-menu-back",VOLUME_ICON:Lt,MUTE_ICON:"flowplayer-mute-icon",UNMUTE_ICON:"flowplayer-unmute-icon",CLOSE_ICON:"flowplayer-close-icon",FACEBOOK_ICON:"flowplayer-facebook-icon",TWITTER_ICON:"flowplayer-twitter-icon",LINK_ICON:"flowplayer-link-icon",EMBED_ICON:"flowplayer-embed-icon",LIVE_COUNTDOWN:"flowplayer-live-countdown",PLAYLIST_CONTROLS:"flowplayer-playlist-controls",THUMBNAILS_CAROUSEL:"flowplayer-thumbnails-carousel",ERROR_COMPONENT:"flowplayer-error",TV_MENU:"flowplayer-tv-menu",CUE_COMPONENT:"flowplayer-cue",SSAI_UI:"flowplayer-ssai-ui",SSAI_CONTROLS:"flowplayer-ssai-controls",SSAI_TIMELINE:"flowplayer-ssai-timeline",SSAI_INDICATOR:"flowplayer-ssai-indicator"});let ue="is-playing",Je="is-paused",Pe="is-loaded",ke="is-loading",re="is-starting",Ke="is-seeking",Qe="is-ended",ui="is-live",Ve="is-waiting",Di="is-live-seeked",We="no-timeline",Pt="will-play",Nt="will-pause",At="is-touched",Xt="is-hovered",se="is-in-viewport",di="is-source-processing";var ln=Object.freeze({__proto__:null,PLAYING:ue,FULLSCREEN:"is-fullscreen",PAUSED:Je,MUTED:"is-muted",LOADED:Pe,LOADING:ke,STARTING:re,SEEKING:Ke,GRABBING:"is-grabbing",DISABLED:"is-disabled",SMALL:"is-small",TINY:"is-tiny",RTL:"is-rtl",TV:"is-tv",ENDED:Qe,LIVE:ui,ERRORED:"is-error",WAITING:Ve,AUTOPLAY:"is-autoplay",SEAMLESS:"is-seamless",TOGGLING:"is-toggling",LIVE_SEEKED:Di,NO_DVR:We,HAS_POSTER:"has-poster",WILL_PLAY:Pt,WILL_PAUSE:Nt,MENU_OPENED:"has-menu-opened",TOUCHED:At,HOVERED:Xt,TOUCH_DEVICE:"is-touch-device",WILL_SEEK:"will-seek",SEEKABLE:"is-seekable",IN_VIEWPORT:se,NO_CONTROLS:"no-controls",DESTROYED:"is-destroyed",IS_SOURCE_PROCESSING:di});function Ci(f){this.message=f}Ci.prototype=Error(),Ci.prototype.name="InvalidCharacterError";var xe=typeof window<"u"&&window.atob&&window.atob.bind(window)||function(f){var g=String(f).replace(/=+$/,"");if(g.length%4==1)throw new Ci("'atob' failed: The string to be decoded is not correctly encoded.");for(var p,k,M=0,$=0,H="";k=g.charAt($++);~k&&(p=M%4?64*p+k:k,M++%4)?H+=String.fromCharCode(255&p>>(-2*M&6)):0)k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(k);return H},cn=function(f){var g=f.replace(/-/g,"+").replace(/_/g,"/");switch(g.length%4){case 0:break;case 2:g+="==";break;case 3:g+="=";break;default:throw"Illegal base64url string!"}try{return function(p){return decodeURIComponent(xe(p).replace(/(.)/g,function(k,M){var $=M.charCodeAt(0).toString(16).toUpperCase();return $.length<2&&($="0"+$),"%"+$}))}(g)}catch(p){return xe(g)}};function Ze(f){this.message=f}Ze.prototype=Error(),Ze.prototype.name="InvalidTokenError";var ri=function(f,g){if(typeof f!="string")throw new Ze("Invalid token specified");var p=(g=g||{}).header===!0?0:1;try{return JSON.parse(cn(f.split(".")[p]))}catch(k){throw new Ze("Invalid token specified: "+k.message)}};ri.InvalidTokenError=Ze;let qn=new Map,yi=(f,g)=>new(((p,k)=>{let M=p.get(k);if(!M)throw Error(`no flowplayer component with the name ${k} exists`);let $=window.customElements.get(k);if(!$)throw Error(`no default flowplayer component with the name ${k} exists`);let H=window.customElements.get(M);return typeof H!="function"?$:H})(f._customElements,g))(f),oe=(f,g,p)=>{window.customElements.get(g)||window.customElements.define(g,p),f.customElements.get(g)||f.customElements.set(g,g)};var ye,Ii;(function(f){f[f.LOW=1]="LOW",f[f.MEDIUM=2]="MEDIUM",f[f.HIGH=4]="HIGH"})(ye||(ye={})),function(f){f[f.OFF=0]="OFF",f[f.ON=1]="ON",f[f.AUDIO_REQUIRED=2]="AUDIO_REQUIRED"}(Ii||(Ii={}));let xt={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},Rr=Object.fromEntries(Object.entries(xt).map(([f,g])=>[g,f])),Ka=(f)=>{return f.autoplay&&Ii.AUDIO_REQUIRED&((g=f.autoplay)===!0?Ii.ON:g===!1?Ii.OFF:g);var g};function Fs(f,g,p){let k=typeof p=="boolean";if(typeof p!="boolean"&&(p=!!f.hasState(Nt)||f.paused),function($,H,U){let j=$.poll(H?"beforeplay":"beforepause",{forced:U});return j&&j.defaultPrevented}(f,p,k))return Promise.resolve();if(!p)return f.hasState(Pt)?(f.setState(Nt,!0),f.setState(Pt,!1),Promise.resolve()):Promise.resolve(f.pause());if(f.reaper==0)return Promise.resolve();let M=f.reaper.get("__pending_play");return f.paused||M?M?(M.src!==Va(f.original_src)&&Wt(f),M):(function($){return($.networkState==0||$.readyState==0)&&$.currentSrc==Va($.original_src)}(f)&&Wt(f),function($){let H=$.hasState("is-autoplay"),U=H&&Ka($.opts);return U&&($.muted&&$.toggleMute(!1),$.volume==0&&($.volume=1)),H&&$.setState("is-autoplay",!1),$.play().then(()=>{$.hasState(Nt)&&$.togglePlay(!1)}).catch((j)=>{if(console.warn(H?U?`[flowplayer/play] autoplay audio required
1
+ var um=Object.create;var{getPrototypeOf:dm,defineProperty:mc,getOwnPropertyNames:hm}=Object;var fm=Object.prototype.hasOwnProperty;var Ne=(n,o,d)=>{d=n!=null?um(dm(n)):{};let v=o||!n||!n.__esModule?mc(d,"default",{value:n,enumerable:!0}):d;for(let E of hm(n))if(!fm.call(v,E))mc(v,E,{get:()=>n[E],enumerable:!0});return v};var Ce=(n,o)=>()=>(o||n((o={exports:{}}).exports,o),o.exports);var rd=(n,o)=>{for(var d in o)mc(n,d,{get:o[d],enumerable:!0,configurable:!0,set:(v)=>o[d]=()=>v})};var Tn=Ce((Ld)=>{Object.defineProperty(Ld,"__esModule",{value:!0});var Ng="mount",Pg="retry",xg="error",Fg="contextmenu",Ug="click",Bg="dblclick",$g="keyup",Gg="keydown",Hg="load",Vg="mouseenter",Kg="mouseleave",Wg="mouseup",Yg="mousedown",jg="mousemove",zg="touchstart",qg="touchmove",Xg="touchend",Jg="touchcancel",Qg="resize",Zg="scroll",t0="fullscreenenter",e0="fullscreenexit",i0="fullscreenchange",r0="loadedmetadata",n0="loadeddata",s0="progress",a0="timeupdate",o0="loadstart",l0="volumechange",c0="pause",u0="playing",d0="play",h0="waiting",f0="canplay",m0="ended",g0="seeked",p0="seeking",v0="durationchange",E0="viewenter",y0="viewleave",S0="src",b0="reap",T0="qualities",_0="qualitychange",A0="videoTracks",L0="quality:set",w0="tracks:video:select",R0="recommendationsready",k0="landscape",C0="portrait",D0="dvr",I0="live",O0="recover",M0="seek:queued",N0="seek:cancel",P0="plugin:registered",x0="remotesession:started",F0="remotesession:ended",U0="intersectionchange",B0="webkitneedkey",$0="renderplugin",G0="audioonlysource",H0="error:fatal",V0="config",K0="state",W0="beforeplay",Y0="beforepause",j0="content:loadstart",z0="cuepoints",q0="cuepointstart",X0="cuepointend",J0="flowplayer:error";Ld.AUDIO_ONLY_SOURCE=G0;Ld.BEFORE_PAUSE=Y0;Ld.BEFORE_PLAY=W0;Ld.CAN_PLAY=f0;Ld.CLICK=Ug;Ld.CONFIG=V0;Ld.CONTENT_REAL_LOAD_START=j0;Ld.CONTEXT_MENU=Fg;Ld.CUEPOINTS=z0;Ld.CUEPOINT_END=X0;Ld.CUEPOINT_START=q0;Ld.DATA=n0;Ld.DBL_CLICK=Bg;Ld.DURATION_CHANGE=v0;Ld.DVR=D0;Ld.ENDED=m0;Ld.ERROR=xg;Ld.FULLSCREEN_CHANGE=i0;Ld.FULLSCREEN_ENTER=t0;Ld.FULLSCREEN_EXIT=e0;Ld.INTERSECTIONCHANGE=U0;Ld.KEYDOWN=Gg;Ld.KEYUP=$g;Ld.LANDSCAPE=k0;Ld.LIVE=I0;Ld.LOAD=Hg;Ld.LOAD_START=o0;Ld.METADATA=r0;Ld.MOUNT=Ng;Ld.MOUSE_DOWN=Yg;Ld.MOUSE_ENTER=Vg;Ld.MOUSE_LEAVE=Kg;Ld.MOUSE_MOVE=jg;Ld.MOUSE_UP=Wg;Ld.NON_RECOVERABLE_ERROR=H0;Ld.PAUSE=c0;Ld.PLAY=d0;Ld.PLAYING=u0;Ld.PLUGIN_REGISTERED=P0;Ld.PORTRAIT=C0;Ld.PROGRESS=s0;Ld.QUALITIES=T0;Ld.QUALITY_CHANGE=_0;Ld.REAP=b0;Ld.RECOMMENDATIONS_READY=R0;Ld.RECOVER=O0;Ld.REMOTE_SESSION_ENDED=F0;Ld.REMOTE_SESSION_STARTED=x0;Ld.RENDER_PLUGIN=$0;Ld.RESIZE=Qg;Ld.RETRY=Pg;Ld.SCROLL=Zg;Ld.SEEKED=g0;Ld.SEEKING=p0;Ld.SEEK_CANCEL=N0;Ld.SEEK_QUEUED=M0;Ld.SET_QUALITY=L0;Ld.SOURCE=S0;Ld.STANDARD_ERROR=J0;Ld.STATE=K0;Ld.TIME_UPDATE=a0;Ld.TOUCH_CANCEL=Jg;Ld.TOUCH_END=Xg;Ld.TOUCH_MOVE=qg;Ld.TOUCH_START=zg;Ld.VIDEO_TRACKS=A0;Ld.VIDEO_TRACK_SELECT=w0;Ld.VIEW_ENTER=E0;Ld.VIEW_LEAVE=y0;Ld.VOLUME_CHANGE=l0;Ld.WAITING=h0;Ld.WEBKIT_NEEDKEY=B0});var Rd=Ce((Uy,wd)=>{var pv="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function _c(n){this.message=n}_c.prototype=Error();_c.prototype.name="InvalidCharacterError";function vv(n){var o=String(n).replace(/=+$/,"");if(o.length%4==1)throw new _c("'atob' failed: The string to be decoded is not correctly encoded.");for(var d=0,v,E,A=0,R="";E=o.charAt(A++);~E&&(v=d%4?v*64+E:E,d++%4)?R+=String.fromCharCode(255&v>>(-2*d&6)):0)E=pv.indexOf(E);return R}wd.exports=typeof window<"u"&&window.atob&&window.atob.bind(window)||vv});var Dd=Ce((By,Cd)=>{var kd=Rd();function Ev(n){return decodeURIComponent(kd(n).replace(/(.)/g,function(o,d){var v=d.charCodeAt(0).toString(16).toUpperCase();if(v.length<2)v="0"+v;return"%"+v}))}Cd.exports=function(n){var o=n.replace(/-/g,"+").replace(/_/g,"/");switch(o.length%4){case 0:break;case 2:o+="==";break;case 3:o+="=";break;default:throw"Illegal base64url string!"}try{return Ev(o)}catch(d){return kd(o)}}});var Id=Ce(($y,Ac)=>{var yv=Dd();function Ma(n){this.message=n}Ma.prototype=Error();Ma.prototype.name="InvalidTokenError";Ac.exports=function(n,o){if(typeof n!=="string")throw new Ma("Invalid token specified");o=o||{};var d=o.header===!0?0:1;try{return JSON.parse(yv(n.split(".")[d]))}catch(v){throw new Ma("Invalid token specified: "+v.message)}};Ac.exports.InvalidTokenError=Ma});var Xd=Ce((tl,el)=>{(function(n,o){typeof tl=="object"&&typeof el<"u"?el.exports=o():typeof define=="function"&&define.amd?define(o):(n=typeof globalThis<"u"?globalThis:n||self).flowplayer=o()})(tl,function(){let n=[],o=[];function d(){let f=typeof document<"u"&&typeof window<"u",g=f?navigator.userAgent:"",p=/iP(hone|od)/i.test(g)&&!/iPad/.test(g)&&!/IEMobile/i.test(g),k=/Android/.test(g)&&!/Firefox/.test(g),O=/^((?!chrome|android).)*safari/i.test(g),$=/chrome|crios/i.test(g)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(g),G=/firefox|fxios/i.test(g)&&!/seamonkey/i.test(g),U=/edg/i.test(g),j=/opr|opera/i.test(g),Z=/SamsungBrowser/.test(g),Tt=Z&&/SMART-TV/.test(g);return{controls:!p,video:function(Ct){return f&&document.createElement("video").canPlayType(Ct)},lang:f&&window.navigator.language,android:k,iphone:p,safari:O,edge:U,opera:j,chrome:$,firefox:G,ios:f&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,samsung:Z,samsung_tv:Z&&Tt,touch:"ontouchstart"in window,tizen:"tizen"in window,webOS:"webos"in window}}let v="click",E="dblclick",A="mouseleave",R="mousemove",T="touchmove",L="fullscreenenter",M="fullscreenexit",tt="loadedmetadata",b="loadeddata",H="progress",N="loadstart",K="pause",st="playing",Et="waiting",q="canplay",D="ended",B="seeked",x="seeking",Y="reap",J="landscape",ct="portrait",nt="config",ot="content:loadstart";var St=Object.freeze({__proto__:null,MOUNT:"mount",RETRY:"retry",ERROR:"error",CONTEXT_MENU:"contextmenu",CLICK:v,DBL_CLICK:E,KEYUP:"keyup",KEYDOWN:"keydown",LOAD:"load",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:A,MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_MOVE:R,TOUCH_START:"touchstart",TOUCH_MOVE:T,TOUCH_END:"touchend",TOUCH_CANCEL:"touchcancel",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_ENTER:L,FULLSCREEN_EXIT:M,FULLSCREEN_CHANGE:"fullscreenchange",METADATA:tt,DATA:b,PROGRESS:H,TIME_UPDATE:"timeupdate",LOAD_START:N,VOLUME_CHANGE:"volumechange",PAUSE:K,PLAYING:st,PLAY:"play",WAITING:Et,CAN_PLAY:q,ENDED:D,SEEKED:B,SEEKING:x,DURATION_CHANGE:"durationchange",VIEW_ENTER:"viewenter",VIEW_LEAVE:"viewleave",SOURCE:"src",REAP:Y,QUALITIES:"qualities",QUALITY_CHANGE:"qualitychange",VIDEO_TRACKS:"videoTracks",SET_QUALITY:"quality:set",VIDEO_TRACK_SELECT:"tracks:video:select",RECOMMENDATIONS_READY:"recommendationsready",LANDSCAPE:J,PORTRAIT:ct,DVR:"dvr",LIVE:"live",RECOVER:"recover",SEEK_QUEUED:"seek:queued",SEEK_CANCEL:"seek:cancel",PLUGIN_REGISTERED:"plugin:registered",REMOTE_SESSION_STARTED:"remotesession:started",REMOTE_SESSION_ENDED:"remotesession:ended",INTERSECTIONCHANGE:"intersectionchange",WEBKIT_NEEDKEY:"webkitneedkey",RENDER_PLUGIN:"renderplugin",AUDIO_ONLY_SOURCE:"audioonlysource",NON_RECOVERABLE_ERROR:"error:fatal",CONFIG:nt,STATE:"state",BEFORE_PLAY:"beforeplay",BEFORE_PAUSE:"beforepause",CONTENT_REAL_LOAD_START:ot,CUEPOINTS:"cuepoints",CUEPOINT_START:"cuepointstart",CUEPOINT_END:"cuepointend",STANDARD_ERROR:"flowplayer:error"});let Pt="flowplayer-ui",$t="flowplayer-logo",zt="flowplayer-control",rt="flowplayer-live-status",ut="flowplayer-elapsed-time",bt="flowplayer-timeline-bar",Bt="flowplayer-volume-bar",Kt="flowplayer-header",ce="flowplayer-middle",jt="flowplayer-middle-zone",V="flowplayer-wait",et="flowplayer-play-icon",pt="flowplayer-pause-icon",gt="flowplayer-rewind-icon",Lt="flowplayer-volume-icon";var ve=Object.freeze({__proto__:null,SUBTITLES_MENU:"flowplayer-subtitles-menu",SHARE_MENU:"flowplayer-share-menu",SPEED_MENU:"flowplayer-speed-menu",QUALITY_MENU:"flowplayer-quality-menu",AUDIO_MENU:"flowplayer-audio-menu",VIDEO_MENU:"flowplayer-video-menu",UI:Pt,LOGO:$t,CONTROL:zt,CONTROL_BUTTONS:"flowplayer-control-buttons",LIVE_STATUS:rt,ELAPSED:ut,TIMELINE:bt,CHAPTERS_TIMELINE:"flowplayer-chapters-timeline-bar",CONTROL_DURATION:"flowplayer-control-duration",VOLUME_CONTROL:"flowplayer-volume-control",VOLUME_BAR:Bt,HEADER:Kt,HEADER_LEFT_ZONE:"flowplayer-header-left-zone",HEADER_RIGHT_ZONE:"flowplayer-header-right-zone",HEADER_DURATION:"flowplayer-header-duration",MIDDLE:ce,MIDDLE_ZONE:jt,WAIT:V,MIDDLE_BUTTONS:"flowplayer-middle-buttons",MIDDLE_LEFT_ZONE:"flowplayer-middle-left-zone",MIDDLE_RIGHT_ZONE:"flowplayer-middle-right-zone",ENDSCREEN_INTERSTITIAL:"flowplayer-endscreen-interstitial",ENDSCREEN_UP_NEXT:"flowplayer-endscreen-up-next",ENDSCREEN_GRID:"flowplayer-endscreen-grid",PLAYLIST_INTERSTITIAL:"flowplayer-playlist-interstitial",AIRPLAY_ICON:"flowplayer-airplay-icon",CHROMECAST_ICON:"flowplayer-chromecast-icon",SMALL_PLAY_ICON:"flowplayer-small-play-icon",SMALL_PAUSE_ICON:"flowplayer-small-pause-icon",PLAY_ICON:et,PAUSE_ICON:pt,FULLSCREEN_ENTER_ICON:"flowplayer-fullscreen-enter-icon",FULLSCREEN_EXIT_ICON:"flowplayer-fullscreen-exit-icon",SKIP_NEXT_ICON:"flowplayer-skip-next-icon",SKIP_PREVIOUS_ICON:"flowplayer-skip-previous-icon",FAST_FORWARD_ICON:"flowplayer-fast-forward-icon",REWIND_ICON:gt,SHARE_ICON:"flowplayer-share-icon",SUBTITLES_MENU_ICON:"flowplayer-subs-menu-icon",MENU_BACK_ICON:"flowplayer-menu-back",VOLUME_ICON:Lt,MUTE_ICON:"flowplayer-mute-icon",UNMUTE_ICON:"flowplayer-unmute-icon",CLOSE_ICON:"flowplayer-close-icon",FACEBOOK_ICON:"flowplayer-facebook-icon",TWITTER_ICON:"flowplayer-twitter-icon",LINK_ICON:"flowplayer-link-icon",EMBED_ICON:"flowplayer-embed-icon",LIVE_COUNTDOWN:"flowplayer-live-countdown",PLAYLIST_CONTROLS:"flowplayer-playlist-controls",THUMBNAILS_CAROUSEL:"flowplayer-thumbnails-carousel",ERROR_COMPONENT:"flowplayer-error",TV_MENU:"flowplayer-tv-menu",CUE_COMPONENT:"flowplayer-cue",SSAI_UI:"flowplayer-ssai-ui",SSAI_CONTROLS:"flowplayer-ssai-controls",SSAI_TIMELINE:"flowplayer-ssai-timeline",SSAI_INDICATOR:"flowplayer-ssai-indicator"});let ue="is-playing",Je="is-paused",xe="is-loaded",ke="is-loading",ne="is-starting",Ve="is-seeking",Qe="is-ended",ui="is-live",Ke="is-waiting",Di="is-live-seeked",We="no-timeline",xt="will-play",Nt="will-pause",At="is-touched",Xt="is-hovered",se="is-in-viewport",di="is-source-processing";var or=Object.freeze({__proto__:null,PLAYING:ue,FULLSCREEN:"is-fullscreen",PAUSED:Je,MUTED:"is-muted",LOADED:xe,LOADING:ke,STARTING:ne,SEEKING:Ve,GRABBING:"is-grabbing",DISABLED:"is-disabled",SMALL:"is-small",TINY:"is-tiny",RTL:"is-rtl",TV:"is-tv",ENDED:Qe,LIVE:ui,ERRORED:"is-error",WAITING:Ke,AUTOPLAY:"is-autoplay",SEAMLESS:"is-seamless",TOGGLING:"is-toggling",LIVE_SEEKED:Di,NO_DVR:We,HAS_POSTER:"has-poster",WILL_PLAY:xt,WILL_PAUSE:Nt,MENU_OPENED:"has-menu-opened",TOUCHED:At,HOVERED:Xt,TOUCH_DEVICE:"is-touch-device",WILL_SEEK:"will-seek",SEEKABLE:"is-seekable",IN_VIEWPORT:se,NO_CONTROLS:"no-controls",DESTROYED:"is-destroyed",IS_SOURCE_PROCESSING:di});function Ii(f){this.message=f}Ii.prototype=Error(),Ii.prototype.name="InvalidCharacterError";var Fe=typeof window<"u"&&window.atob&&window.atob.bind(window)||function(f){var g=String(f).replace(/=+$/,"");if(g.length%4==1)throw new Ii("'atob' failed: The string to be decoded is not correctly encoded.");for(var p,k,O=0,$=0,G="";k=g.charAt($++);~k&&(p=O%4?64*p+k:k,O++%4)?G+=String.fromCharCode(255&p>>(-2*O&6)):0)k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(k);return G},lr=function(f){var g=f.replace(/-/g,"+").replace(/_/g,"/");switch(g.length%4){case 0:break;case 2:g+="==";break;case 3:g+="=";break;default:throw"Illegal base64url string!"}try{return function(p){return decodeURIComponent(Fe(p).replace(/(.)/g,function(k,O){var $=O.charCodeAt(0).toString(16).toUpperCase();return $.length<2&&($="0"+$),"%"+$}))}(g)}catch(p){return Fe(g)}};function Ze(f){this.message=f}Ze.prototype=Error(),Ze.prototype.name="InvalidTokenError";var ni=function(f,g){if(typeof f!="string")throw new Ze("Invalid token specified");var p=(g=g||{}).header===!0?0:1;try{return JSON.parse(lr(f.split(".")[p]))}catch(k){throw new Ze("Invalid token specified: "+k.message)}};ni.InvalidTokenError=Ze;let zr=new Map,yi=(f,g)=>new(((p,k)=>{let O=p.get(k);if(!O)throw Error(`no flowplayer component with the name ${k} exists`);let $=window.customElements.get(k);if(!$)throw Error(`no default flowplayer component with the name ${k} exists`);let G=window.customElements.get(O);return typeof G!="function"?$:G})(f._customElements,g))(f),oe=(f,g,p)=>{window.customElements.get(g)||window.customElements.define(g,p),f.customElements.get(g)||f.customElements.set(g,g)};var ye,Oi;(function(f){f[f.LOW=1]="LOW",f[f.MEDIUM=2]="MEDIUM",f[f.HIGH=4]="HIGH"})(ye||(ye={})),function(f){f[f.OFF=0]="OFF",f[f.ON=1]="ON",f[f.AUDIO_REQUIRED=2]="AUDIO_REQUIRED"}(Oi||(Oi={}));let Ft={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},Rn=Object.fromEntries(Object.entries(Ft).map(([f,g])=>[g,f])),Ka=(f)=>{return f.autoplay&&Oi.AUDIO_REQUIRED&((g=f.autoplay)===!0?Oi.ON:g===!1?Oi.OFF:g);var g};function Ps(f,g,p){let k=typeof p=="boolean";if(typeof p!="boolean"&&(p=!!f.hasState(Nt)||f.paused),function($,G,U){let j=$.poll(G?"beforeplay":"beforepause",{forced:U});return j&&j.defaultPrevented}(f,p,k))return Promise.resolve();if(!p)return f.hasState(xt)?(f.setState(Nt,!0),f.setState(xt,!1),Promise.resolve()):Promise.resolve(f.pause());if(f.reaper==0)return Promise.resolve();let O=f.reaper.get("__pending_play");return f.paused||O?O?(O.src!==Wa(f.original_src)&&Wt(f),O):(function($){return($.networkState==0||$.readyState==0)&&$.currentSrc==Wa($.original_src)}(f)&&Wt(f),function($){let G=$.hasState("is-autoplay"),U=G&&Ka($.opts);return U&&($.muted&&$.toggleMute(!1),$.volume==0&&($.volume=1)),G&&$.setState("is-autoplay",!1),$.play().then(()=>{$.hasState(Nt)&&$.togglePlay(!1)}).catch((j)=>{if(console.warn(G?U?`[flowplayer/play] autoplay audio required
2
2
  %s`:`[flowplayer/play] attempting muted autoplay
3
3
  %s`:"",j.message,`
4
- instance:`,$),H&&!U)return $.muted=!0,$.play()})}(f)):(f.setState(Nt,!1),!f.hasState(ue)&&f.setState(Pt,!0),Promise.resolve())}function Wt(f){f.opts.is_native&&(f.hasState(Pe)||(f.hasState(ke)||f.emit(ot),f.setState(ke,!0),f.load()))}function Va(f){let g=document.createElement("a");return g.href=f,g.href}function Ps(f,g){var p={};for(var k in f)Object.prototype.hasOwnProperty.call(f,k)&&g.indexOf(k)<0&&(p[k]=f[k]);if(f!=null&&typeof Object.getOwnPropertySymbols=="function"){var M=0;for(k=Object.getOwnPropertySymbols(f);M<k.length;M++)g.indexOf(k[M])<0&&Object.prototype.propertyIsEnumerable.call(f,k[M])&&(p[k[M]]=f[k[M]])}return p}function wl(f){let g=document.createElement("a");g.href=f;let p=g.pathname&&g.pathname.split(".");return p.length>1&&p[p.length-1]}function xs(f){switch(f){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return f}}let Xn=(f)=>{var{src:g}=f,p=Ps(f,["src"]);return[Object.assign({src:g,type:g?xs("video/"+wl(g)):""},p)]};function hi(f){return Xn({src:f})}function Us(f){var{src:g,type:p}=f,k=Ps(f,["src","type"]);return g&&p?[Object.assign({src:g,type:p},k)]:p&&!g?[Object.assign({type:p},k)]:Xn(Object.assign({src:g},k))}var Oi;function si(f,g,p,k={safari:!1}){let M=function($){return typeof $=="string"?hi($):Array.isArray($)||typeof $!="object"?$.reduce(function(H,U){return typeof U=="string"&&(U=hi(U)),typeof U!="object"||Array.isArray(U)||(U=Us(U)),H.concat(U)},[]):Us($)}(p);return function($){[Ke,Nt,Pt,ue,Je,ke,Pe,Di].forEach((H)=>$.setState(H,!1)),$.setState(re,!0)}(f),Array(...Array(M.length)).map(($,H)=>H).some(($)=>{let H=M[$];if(Oi.Ok==function(U,j,tt){U.emit("src",tt),j.playback_token&&typeof tt.src=="string"&&tt.src.startsWith("https://")&&(tt.src=function(Dt,Ht){let ae=new URL(Dt);return ae.pathname=`/pt:${Ht}${ae.pathname}`,ae.toString()}(tt.src,j.playback_token)),typeof tt.src=="string"&&(U.original_src=tt.src);let Tt=function(Dt,Ht,ae){return Dt.plugins.filter((ge)=>{return(te=ge)&&"wants"in te;var te}).find((ge)=>ge.wants(ae.src||"",ae,Ht))}(U,j,tt);return U.setOpts({is_native:!Tt}),Tt?(Tt.onload(j,U.root,U,tt),Oi.Ok):Oi.Err}(f,g,H)||Oi.Ok==function(U,j,tt,Tt={safari:!1}){var Dt;if(/^audio\//.test(tt.type||"")&&U.emit("audioonlysource"),j.start_time&&(tt.src=tt.src+"#t="+j.start_time),U.canPlayType(tt.type||"")=="")return Oi.Err;if(tt.drm&&(!tt.drm["com.apple.fps.1_0"]||!Tt.safari))return Oi.Err;return typeof tt.src=="string"&&(U.preload=(Dt=j.preload)!==null&&Dt!==void 0?Dt:"auto",U.src=tt.src),Oi.Ok}(f,g,H,k))return!0;$==M.length-1&&typeof H.src=="string"&&(f.src=H.src)}),f}(function(f){f[f.Err=0]="Err",f[f.Ok=1]="Ok"})(Oi||(Oi={}));let Wa=[Y,P,"src","seek:cancel"];var Rn;function Ya(f,g,p){return isNaN(f.duration)||isNaN(f.currentTime)?{}:(g.offset+=p,g.offset==0?kr(f,g):(g.timer&&clearTimeout(g.timer),g.timer=setTimeout(function(){f.reaper!=0&&(f.currentTime=function(k,M,$=0){return Math.max(Math.min(M,k),$)}(f.currentTime+g.offset,f.duration),g.timer=0,kr(f,g))},1000),function(k,M){k.setState("will-seek",!0),k.setState(Rn.BACKWARD,M.offset<0),k.setState(Rn.FORWARD,M.offset>0)}(f,g),f.emit("seek:queued",g),g))}function kr(f,g){g.timer&&clearTimeout(g.timer),g.timer=g.offset=0,function(p){p.setState(Rn.FORWARD,!1),p.setState(Rn.BACKWARD,!1),p.setState("will-seek",!1)}(f)}function ja(){if(typeof document>"u")return!1;let f=document.documentElement;return f&&f.getAttribute("dir")=="rtl"}function ti(...f){let g=document.createElement("div");return f.length==0||g.classList.add(...f),g}function fi(f,g,p){let k=function(M){return Array.isArray(M)?M.slice(0):M.split(".")}(g);for(;k.length;){if(f==null)return p;let M=k.shift();if(typeof M!="string")return p;f=f[M]}return f==null?p:f}function Jn(f){let g=typeof f=="number"?f:parseInt(f,10);return(g>9?"":"0")+g}function Mi(f){if(isNaN(f)||f>=Number.MAX_SAFE_INTEGER)return"";let g=f<0?"-":"";f=Math.round(Math.abs(f));let p=Math.floor(f/3600),k=Math.floor(f/60);return f-=60*k,p>=1?(k-=60*p,g+p+":"+Jn(k)+":"+Jn(f)):g+Jn(k)+":"+Jn(f)}(function(f){f.FORWARD="forward",f.BACKWARD="backward"})(Rn||(Rn={}));let Ye=navigator.languages||[navigator.language];function Bs(f,g,p){let k={};return p=g.lang||p,f[p]&&(k[p]=f[p]),function(){try{return Ye.reduce((M,$)=>~$.indexOf("-")?M.concat($,$.split("-")[0]):M.concat($),[])}catch(M){return[]}}().forEach(function(M){f[M]&&!k[M]&&(k[M]=f[M])}),Object.values(k)}let za=[1e7]+"-1000-4000-8000-100000000000",zi=()=>typeof crypto>"u"?"":za.replace(/[018]/g,(f)=>(f^crypto.getRandomValues(new Uint8Array(1))[0]&15>>f/4).toString(16)),Ni="";(function(){let f=!1;try{let g=Object.defineProperty({},"passive",{get:function(){f=!0}});window.addEventListener("testPassive",null,g),window.removeEventListener("testPassive",null,g)}catch(g){}})();let Dr=["touchstart","touchmove"];function Cr(f,g){let p=new CustomEvent(f,{detail:g,cancelable:!0});return g&&Object.defineProperty(p,"data",{get:()=>g}),p}function mi(f,g,p){let k=Cr(g,p);return f.dispatchEvent(k),f}function kn(f,g,p){let k=Cr(g,p);return f.dispatchEvent(k),k}function Ee(f,g,p,k){Array.isArray(g)?g.forEach((M)=>Qn(f,M,p,k)):Qn(f,g,p,k)}function Qn(f,g,p,k){if(M=g,!~Dr.indexOf(M))return f.addEventListener(g,p,k),f;var M;let $=Object.assign(k||{},{passive:!0});return f.addEventListener(g,p,$),f}function un(f,g,p,k){return Ee(f,g,p,Object.assign(k||{},{once:!0}))}class qa{constructor(f,g){this.implementation=f,g&&g.keys().forEach((p)=>{typeof g.implementation[p]=="string"&&this.implementation.setItem(p,g.implementation[p])})}keys(){var f;let g=[];for(var p=0;p<this.implementation.length;p++)((f=this.implementation.key(p))===null||f===void 0?void 0:f.startsWith("flowplayer/"))&&g.push(this.implementation.key(p));return g}removeItem(f){try{this.implementation.removeItem("flowplayer/"+f)}catch(g){}}getItem(f){try{return this.implementation.getItem("flowplayer/"+f)}catch(g){return null}}setItem(f,g){try{this.implementation.setItem("flowplayer/"+f,g)}catch(p){}}clear(){try{this.keys().forEach((f)=>this.implementation.removeItem(f))}catch(f){}}get length(){try{return this.keys().length}catch(f){return 0}}key(f){try{return this.implementation.key(f)}catch(g){return null}}}class Zn{constructor(){this.pairs=[]}get length(){return this.pairs.length}clear(){this.pairs=[]}getItem(f){var g;return((g=this.pairs.find((p)=>p[0]===f))===null||g===void 0?void 0:g[1])||null}key(f){return this.pairs[f][0]||null}removeItem(f){this.pairs=this.pairs.filter((g)=>g[0]!==f)}setItem(f,g){this.removeItem(f),this.pairs.push([f,g])}}let Xa={preload:"auto",rtl:!1,controls:!0},Ja=["muted","preload"];function Qa(f,g,p){let k;p.live_state={dvr_window:void 0,get dvr(){return k},set dvr(U){k=U;let j=!(!f.live||U);p.hasState(We)!=j&&p.setState(We,j)}},p._storage=new qa(["localStorage","sessionStorage"].map((U)=>{try{let j=window[U];return j.getItem(""),j}catch(j){return console.debug(`Access to window.${U} denied, trying next option`),null}}).find((U)=>!!U)||new Zn),p.toJSON=function(){return{duration:p.duration,volume:p.volume,currentTime:p.currentTime,states:p.root.className}},p.setSrc=function(U){return si(p,f,U,d())},p.playerState=p.playerState||{},p.setState=function(U,j){if(p.playerState[U]===!!j)return p;let tt=Object.assign({},p.playerState,{[U]:j});return p.playerState=tt,mi(p,"state",p.playerState),p},p.createComponents=function(...U){return Array.from({length:U.length}).map((j,tt)=>yi(this,U[tt]))},p.hasState=function(U){return!!p.playerState[U]},p.transitionState=function(U,j,tt){!p.hasState(U)&&p.hasState(j)||(tt=0),tt&&p.setState("is-toggling",!0),p.setState(j,!1),p.setState(U,!0),tt&&setTimeout(function(){p.setState("is-toggling",!1)},tt)},p.emit=(U,j)=>(mi(p,U,j),p),p.on=(U,j)=>(Ee(p,U,j),p),p.once=(U,j)=>(un(p,U,j),p),p.off=(U,j)=>{var tt,Tt;return tt=U,Tt=j,p.removeEventListener(tt,Tt),p},p.poll=(U,j)=>kn(p,U,j),p.togglePlay=function(U){return p.hasState("is-error")?Promise.reject():Fs(p,0,U)},p.toggleMute=function(U){U=U==null?!p.muted:!!U,p.muted=U,p.muted||p.volume||(p.volume=1),mi(p,"volumechange")},p.toggleDisable=function(U){U=U==null?!p.disabled:!!U,p.setState("is-disabled",U),p.disabled=U},p.destroy=function(){p.pause();let U=l.indexOf(p);~U&&l.splice(U,1),setTimeout(function(){p.setSrc([]),p.reaper&&p.reaper.clear(),mi(p,Y),p.setState("is-destroyed",!0)},0)},p.setAttrs=function(U){return Ja.forEach((j)=>{if(!(j in U))return;let tt=U[j];tt?p.setAttribute(j,tt.toString()):p.removeAttribute(j)}),p},p.opt=function(U,j){return j=j===void 0?fi(Xa,U):j,fi(f,U,j)},p.i18n=function(U,j){if(!p.reaper)return"";let tt=p.reaper.get("translations");return tt?function Tt(Dt,Ht,ae,ge){return(ge=ge||0)>=Dt.length?ae:fi(Dt[ge],Ht,Tt(Dt,Ht,ae,ge+1))}(tt,U,j||""):j||""},p.setOpts=function(U){Object.assign(f,U),f.live&&!p.hasState(ui)&&(p.setState(We,!0),mi(p,"live")),"disabled"in U&&U.disabled!==void 0&&p.toggleDisable(U.disabled),"muted"in U&&U.muted!==void 0&&p.toggleMute(U.muted),"dvr"in f&&(p.live_state.dvr=p.opt("dvr")),p.setState("is-rtl",p.opt("rtl",function(j){if(!j)return ja();let tt=j.getAttribute("dir");return tt?tt=="rtl":ja()}(g))),p.setState(ui,!!f.live),p.setState("has-poster",typeof f.poster=="string"&&f.poster.length>0),p.setState("is-seekable",!!f.seekable),p.setState("no-controls",f.controls==0),g.style.backgroundImage=p.hasState("has-poster")?"url('"+f.poster+"')":"",mi(p,st,f)},p.renderPlugin=function(U){kn(p,"renderplugin",U).defaultPrevented||p.root.appendChild(U)};let M={offset:0,timer:0};var $,H;H=M,($=p).on(Wa,function(){kr($,H)}),p.enqueueSeek=function(U){if(p.opts.seekable!=0&&!(p.opts.disabled==1&&U>0))return Ya(p,M,U)},p.deviceId=function(){return function(U){if(Ni)return Ni;try{let j=U.getItem("flowplayer/uuid");if(j)return j;let tt=zi();return U.setItem("flowplayer/uuid",tt),tt}catch(j){return Ni=zi()}}(p._storage)}}function Rl(f,g){let p=g.querySelector("video"),k=p||(f._video_element_callback?f._video_element_callback(f):document.createElement("video"));return k.classList.add("fp-engine"),k.playsInline=!0,p||g.append(k),k}var $s=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{};function Za(){return typeof window<"u"?window:$s!==void 0?$s:{}}let gi=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function Ir(f,g){return!!~gi.indexOf(f)||f.indexOf(g)===f.length-g.length}Ir.check_whitelist=function(f){return!!~gi.indexOf(f)};let Or="production";function Si(f,g){let p={valid_jwt:!1,raw:"",data:{acl:0},exp:0},k={c:"{}",exp:0};g=g||{};try{k=ri(f),p.valid_jwt=!0}catch(M){}return p.raw=f,p.data=JSON.parse(k.c),p.exp=k.exp,g.require_valid_token&&Si.validate(p),p}function to(f){try{return Si.validate(f),{success:!0,message:""}}catch(g){return{success:!1,message:g.message}}}var Mr;function ai(f){return{grant:f,is_granted:(g)=>(f&g)===g}}function Gs({root:f,video:g,data:p}){g&&g.destroy(),console.error(Error(p.details||p.reason)),f.innerHTML="",f.classList.remove("flowplayer"),f.classList.add("flowplayer-fatal"),f.style.removeProperty("background-image");let k=document.createElement("h2");k.textContent="Playback Error";let M=document.createElement("p");M.textContent="Are you the site owner?";let $=document.createElement("a");$.classList.add("troubleshoot"),$.target="_blank",$.href="https://docs.flowplayer.com/troubleshooting/player#"+p.reason,$.textContent="Troubleshoot?";let H=document.createElement("img");H.src="https://flowplayer.com/user/pages/images/logo-white.png",f.append(k,M,$,H)}function qi(f){return(g)=>{setTimeout(function(){if(!g.defaultPrevented&&!g.prevented)return f(g)},0)}}Si.validate=function(f){if(typeof f=="string"&&(f=Si(f)),!f||!f.raw){if(Ir.check_whitelist(window.location.hostname)||Or.toString()==="dev")return!0;throw Error("No token provided in configuration")}if(!f.valid_jwt)throw Error("Invalid token provided");let g=window.location.hostname,p=Ir.bind(null,g);if(Or.toString()!=="dev"&&f.data.domain&&f.data.domain.length&&!f.data.domain.some(p))throw Error("Domain not allowed");if(Or.toString()!=="dev"&&1000*f.exp-Date.now()<0)throw Error("Expired token");return!0},Si.id=function(f){if(f)return typeof f=="string"&&(f=Si(f)),f.data.id},function(f){f[f.ADS=2]="ADS",f[f.ANALYTICS=4]="ANALYTICS",f[f.NO_METERING=8]="NO_METERING",f[f.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",f[f.WOWZA_VIDEO=32]="WOWZA_VIDEO"}(Mr||(Mr={})),ai.of=ai,ai.from_token=function(f){let g=Si(f,{require_valid_token:!0});return ai.of(g.data.acl)},ai.permissions=Mr;function Fi(f,g){if(!f.parentElement)return;let p=f.clientWidth/f.parentElement.clientWidth*100/2;f.style.left=g-p+"%",f.style.display="block"}function ei(f,g){if(isNaN(f.duration))return;let p=f.buffered;p.length&&(g.style.width=Math.min(p.end(p.length-1)/f.duration*100,100)+"%")}function pi(f,g){f.style.width="0",g.style.display="none"}function ie(f,g){let p=f.seekable;if(typeof f.opts!="object"||p.length==0)return{head:0,tail:0};let k=Hs(f),M=g||f.live_state.dvr_window;return{head:k,tail:typeof M!="number"||k-M<0?p.start(0):k-M}}function Ue(f){return f.opt("live",!1)||f.duration>=Number.MAX_SAFE_INTEGER}function bi(f){return isFinite(f.duration)?f.duration:f.seekable.length==0?0:ie(f).head}function Hs(f){var g;let p=f.seekable;return p.length?f.hasState("is-chromecast-playing")||!((g=f.hls)===null||g===void 0?void 0:g.liveSyncPosition)?p.end(p.length-1):f.hls.liveSyncPosition:0}function Nr(f,g,p){if(!g.seekable||g.seekable.length==0)return;Fi(p,f);let k=ie(g),M=(100-Math.max(0,Math.min(f,100)))/100*(k.head-k.tail);p.innerText="-"+Mi(M)}function eo(f){f.currentTime=ie(f).tail}function Ks(f){try{f.dvr_offset=0,f.currentTime=Hs(f)}catch(g){console.warn("failed to seek to now: %j",g)}}function io(f,g){f/=100,g.currentTime=function(p,k){if(k>1||k<0)return console.warn("cannot calculate a percent outside of range(0..1)"),0;let M=ie(p);return M.tail+k*(M.head-M.tail)}(g,f)}function dn(f,g){f.style.width="0",g.style.display="none"}function Fr(f,g){let p=g.clientWidth;g.classList.toggle("is-small",p<600),g.classList.toggle("is-tiny",p<400)}function Pr(f,g,p){let k=!0;g.classList.add("flowplayer"),Fr(0,g),Ee(p,N,()=>{if(!p.hasState(ke)&&!p.hasState(Pe)&&f.is_native&&f.preload!=="none")return f.preload==="metadata"?(p.setState(ke,!0),p.emit(ot)):void Wt(p)}),Ee(p,X,()=>{f.is_native&&f.preload==="metadata"&&p.paused&&p.emit(q)}),Ee(p,[N,"resize"],function(){Fr(0,g)}),Ee(p,"state",function(){Object.entries(p.playerState).forEach(function([M,$]){g.classList.toggle(M,$)})}),Ee(p,"timeupdate",function(){p.setState(Ve,!p.hasState("is-casting")&&!p.hasState(re)&&p.readyState<3)}),Ee(p,C,function(M){let $=p.original_src;qi(()=>{if($===p.original_src){if(p.setState(Qe,!0),un(p,"timeupdate",function(){p.setState(Qe,!1),$===p.original_src&&p.setState(re,!f.loop&&!!f.rewind&&p.paused)}),f.loop)return p.togglePlay(!0);f.rewind&&(p.currentTime=0)}})(M)}),Ee(p,[P,B],function(M){p.setState(Ke,M.type==P)}),Ee(p,"remotesession:ended",function(M){setTimeout(()=>{M.defaultPrevented||(p.currentTime=M.detail.currentTime)},0)}),Ee(p,C,function(){p.setState(ue,!1),k=!0}),Ee(p,G,()=>{if(!p.opts.live||!p.opts.is_native)return;let M=p.seekable;M.length!=0&&p.emit("dvr/window",M.end(M.length-1)-M.start(0))}),Ee(p,b,function(){p.setState(Pe,!0),p.setState(ke,!1)}),Ee(p,"play",()=>{p.setState(Pt,!0)}),Ee(p,[Et,q,N],function(M){if(!p.hasState(Ke)&&(M.type!=q||f.autoplay||p.setState(Ve,!1),M.type!=N||p.opt("preload")!="none"||f.autoplay)){if(M.type==N&&f.autoplay)return un(p,nt,function(){p.setState(Ve,!1)});M.type!=Et||p.hasState(Pe)||p.setState(ke,!0),p.setState(Qe,!1),p.setState(Ve,M.type==Et)}}),Ee(p,[nt,K],function(M){setTimeout(()=>{let Tt=new CustomEvent("flowplayer/"+M.type,{detail:p});document.dispatchEvent(Tt)},0);let $=M.type==nt,H=p.currentTime==p.duration,U=$&&k&&f.autoplay||p.hasState(Ve);if($&&(p.started=!0,k=!1),p.setState(Ve,!1).setState(Pt,!1),!$&&p.setState(Nt,!1),H)return;let j=$?ue:Je,tt=$?Je:ue;p.transitionState(j,tt,U?0:300),!p.hasState(re)||p.root.classList.contains("ad-hide-first-frame")||p.root.classList.contains("preroll-ios")||function(Tt,Dt){if(!Tt.hasState(ui)||![void 0,0,-1].includes(Dt)||!Tt.seekable.length||Tt.hasState("has-casted"))return Tt.setState(re,!1);Tt.once(B,()=>Tt.setState(re,!1)),Dt===0?eo(Tt):Ks(Tt)}(p,f.start_time)})}let tr=[0].concat(Array.from({length:100}).map((f,g)=>(g+1)/100));function kl(f,g,p){if(!window.IntersectionObserver)return;let k={should_resume:!!f.autoplay,locked:!1};Ee(p,"play",function(){k.locked||(k.should_resume=!0)});let M=()=>{if(!f.autoplay)return;if(p.hasState(se)&&k.should_resume)return p.togglePlay(!0);let U=p.currentSrc;f.autopause||p.hasState(se)||!k.should_resume||un(p,"viewenter",()=>{f.autoplay&&k.should_resume&&U===p.currentSrc&&p.togglePlay(!0)})},$=()=>{if(!f.autoplay)return;if(!f.is_native)return;if(f.preload==="auto")return;if(p.hasState(se))return Wt(p);let U=p.currentSrc;un(p,"viewenter",()=>{U!==p.currentSrc||p.readyState>1||!p.paused||Wt(p)})};Ee(p,"src",function(){k.should_resume=!!f.autoplay,p.off(N,$),p.once(N,$),p.off(q,M),p.once(q,M)}),Ee(p,K,function(){k.locked||(k.should_resume=!1)});let H=new IntersectionObserver((U)=>{U.forEach((j)=>{setTimeout(()=>{let tt=j.intersectionRatio,Tt=p.hasState(se);if(p.setState(se,tt>=0.2),p.emit("intersectionchange",{ratio:tt}),Tt===p.hasState(se))return;let Dt=p.hasState(se)?"viewenter":"viewleave";p.emit(Dt)},0)})},{threshold:tr});H.observe(g),p.on(Y,()=>H.disconnect()),Ee(p,"viewenter",function(){!k.should_resume||!f.autopause||Dn()||p.opts.autoplay&&!p.readyState||p.togglePlay(!0)}),Ee(p,"viewleave",function(){if(!f.autopause||Dn())return;let U=!p.paused;k.locked=!0,p.pause(),setTimeout(function(){k.should_resume=U,k.locked=!1},0)})}function Dn(){return l.find((f)=>f.hasState("is-casting"))}function Vs(f,g){if(!window.ResizeObserver)return;let p=new ResizeObserver((k)=>{let M=k[k.length-1];g.emit("resize",M)});p.observe(f),g.on(Y,()=>p.disconnect())}function Ws(f){if(typeof f=="number"&&!isNaN(f))return Number(f);if(typeof f=="string"){let g=f.split(":");return Number(g[1])/Number(g[0])}return f}function xr(f,g,p){let k=!!f.ratio,M=document.createElement("div");M.classList.add("fp-ratio"),g.append(M);let $=Ws(f.ratio||0.5625);M.style.paddingTop=100*$+"%";let H=[b,X];p.on(H,function(){if(k)return;let U=p.videoHeight&&p.videoWidth&&p.videoHeight/p.videoWidth;U&&p.setOpts({ratio:U})}),p.on(st,function(){let U=p.videoHeight&&p.videoWidth&&p.videoHeight/p.videoWidth,j=Ws((f==null?void 0:f.ratio)||U||0.5625);$!==j&&($=j,M.style.paddingTop=100*j+"%")})}class er{constructor(){this.cleanUp=this.cleanUp.bind(this),this.render=this.render.bind(this),this.wireUp=this.wireUp.bind(this)}init(f,g,p){this.root=g,this.player=p,this.wireUp()}wireUp(){var f,g;this.cleanUp(),(f=this.player)===null||f===void 0||f.once(nt,this.render),(g=this.player)===null||g===void 0||g.once(C,this.wireUp)}cleanUp(){var f,g,p,k;(g=(f=this._logo)===null||f===void 0?void 0:f.parentElement)===null||g===void 0||g.removeChild(this._logo),(p=this.player)===null||p===void 0||p.off(nt,this.render),(k=this.player)===null||k===void 0||k.off(C,this.wireUp)}render(){var f,g,p;(g=(f=this._logo)===null||f===void 0?void 0:f.parentElement)===null||g===void 0||g.removeChild(this._logo);let k=((p=this.root)===null||p===void 0?void 0:p.querySelector(".fp-ui"))||this.root;if(!k)return;let M=this._logo=document.createElement("a");M.href="https://explorer.flowplayer.com",M.target="_blank",Object.entries(no).forEach(([$,H])=>{M.style.setProperty($,H,"important")}),k.appendChild(M)}}er.pluginName="explorer-plan";let no={display:"block",opacity:"1",visibility:"visible",width:"33%","padding-top":"9%",position:"absolute","z-index":"9999",bottom:"25%",left:"10%","background-size":"cover","background-image":"url(https://static.flowplayer.com/explorer/explorer.svg)"},Ys="flowplayer/"+nt;function js(f){let g=(p)=>{p.detail!==f&&f.opt("multiplay")===!1&&f.togglePlay(!1)};f.on(Y,()=>document.removeEventListener(Ys,g)),document.addEventListener(Ys,g)}function Ur(f,g){let p=[];f.addEventListener("contextmenu",(k)=>{let M=k.timeStamp;for(p.push(M);p.length>3;)p.shift();p.length>=3&&p.every(($)=>$-M<3000)&&(console.debug("flowplayer/debug rendering info"),function($,H){var U;(function(Dt){let Ht=Dt.querySelector(".debug-info");Ht==null||Ht.remove()})($);let j=document.createElement("div");j.classList.add("debug-info");let tt=zs("flowplayer.version","3.29.0");j.append(tt);let Tt=(U=H==null?void 0:H.hls)===null||U===void 0?void 0:U.constructor;if(Tt&&Tt.version){let Dt=zs("hls.version",Tt.version);j.append(Dt)}$.appendChild(j)}(f,g))})}let zs=(f,g)=>{let p=document.createElement("div");p.classList.add("row",f);let k=document.createElement("span");k.classList.add("attr"),k.textContent=f;let M=document.createElement("span");return M.textContent=g,M.classList.add("value"),p.append(k,M),p};function ro(f,g){let p=function(){try{return localStorage.getItem("flowplayer/debug")}catch(M){return""}}(),k=(M,...$)=>{try{let H=(g==null?void 0:g.debug)||p;H&&f.match(H)&&console.log(`flowplayer/${f} -- ${M}`,...$)}catch(H){console.warn(H)}};return k.log=k,k}let Dl="without_recovery",qs="off";class Ti extends Error{static getErrorKey(f){return f in Rr?Rr[f]:Rr["00-00"]}constructor(f,g,p={}){super(f),this.message=f,this.flowplayerErrorCode=g,this.config=p,this.id=zi(),this.isFatal=!!p.isFatal,this.errorKey=Ti.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}let hn=ro("core/retry");function so(f,g){let p={pending:void 0,count:0};f.on("flowplayer:error",(k)=>{var M,$,H,U,j;let tt=(M=k.detail)===null||M===void 0?void 0:M.error;tt.config.isRetry=!!p.count,p.pending===void 0&&((H=($=tt.config)===null||$===void 0?void 0:$.retryOpts)===null||H===void 0?void 0:H.retry)!==qs&&(g.retry||((j=(U=tt.config)===null||U===void 0?void 0:U.retryOpts)===null||j===void 0?void 0:j.retry))&&(++p.count,p.pending=function(Tt,Dt,Ht){var ae,ge;return setTimeout(()=>{var te;Tt.hasState("is-destroyed")||(Dt.pending=void 0,((te=Ht.config.retryOpts)===null||te===void 0?void 0:te.retry)!==Dl&&Tt.emit("recover"),Tt.emit("retry",{error:Ht}),hn("%s try",Dt.count))},(ge=(ae=Ht.config.retryOpts)===null||ae===void 0?void 0:ae.retryTimeout)!==null&&ge!==void 0?ge:3000*Dt.count)}(f,p,tt))}),f.on(nt,()=>{p.count=0}),f.on(["src","recover"],(k)=>{k.type==="src"&&(p.count=0),clearTimeout(p.pending),p.pending=void 0}),f.on("retry",qi(()=>{f.load()}))}let fn="rebuffer",ir="rebuffer:ended",Br="insights:ttff",$r="insights:time_to_first_frag_loaded",nr="insights:watched_interval";var ao=Object.freeze({__proto__:null,RECORD:"health:record",REBUFFER:fn,REBUFFER_ENDED:ir,DISPLAY:"display",TIME_TO_FIRST_FRAME:Br,TIME_TO_FIRST_FRAGMENT_LOADED:$r,WATCHED_INTERVAL:nr});let oo=[ot,"error","src"];function Xs(f){try{return!!new URL(f)}catch(g){return!1}}let Gr=navigator;function lo(f){var g,p;let k=(g=f.hls)===null||g===void 0?void 0:g.bandwidthEstimate;return k?0.000001*k:((p=Gr.connection)===null||p===void 0?void 0:p.downlink)||-1}function Js(f,g){return async function(p,k){try{await fetch(p,{body:k,method:"POST",mode:"no-cors"})}catch(M){}}(f,JSON.stringify({events:g}))}let co=(f)=>{switch(f){case!0:return Ii.ON;case!1:return Ii.OFF;default:return f}};function Cn(){try{let f=window.location!==window.parent.location?document.referrer:document.location.href;return typeof f=="string"&&f.slice(0,200)}catch(f){return!1}}let rr=[],In="https://ihi.flowplayer.com/v1/health/events";function mn(f){if(f.suspended)return;let g=rr.slice(0);rr.length=0,g.length!=0&&(f.logger.log(`:dispatch events={${g.length}}`),Js(function(){try{return typeof window>"u"?In:window.__FLOWPLAYER_INSIGHTS_URL?window.__FLOWPLAYER_INSIGHTS_URL:In}catch(p){return In}}(),g))}async function je(f,g,p){let k=await Pi();rr.push(Object.assign(g,k)),f.logger.log(":enqueue",g.event,g),rr.length<10&&!p||mn(f)}let Qs=()=>{var f,g;try{let p=window;return(g=(f=p==null?void 0:p.google)===null||f===void 0?void 0:f.ima)===null||g===void 0?void 0:g.VERSION}catch(p){return}},Pi=async()=>({client_time:Date.now()}),sr=(f,g)=>Object.assign(f,{detail:g}),Ce=(f,{event:g,media_session_id:p,session_id:k,play_range_id:M})=>({event:g,media_session_id:p,session_id:k,play_range_id:M,device_id:f.deviceId(),version:"3.29.0",commit:"ba3e93d888af5a53636ba363126fa480ae120a54",ima_sdk_version:Qs(),preload:f.opt("preload"),autoplay:co(f.opt("autoplay")),live:f.opt("live"),dvr:!!f.live_state.dvr,source:f.original_src,downlink_mbs:lo(f),page_url:Cn(),player_id:f.opt("metadata.player_id"),media_id:f.opt("metadata.media_id")||f.opt("metadata.stream_target_id"),site_id:f.opt("metadata.site_id"),category_id:f.opt("metadata.category_id"),sitegroup_id:f.opt("metadata.sitegroup_id"),token:f.token,plugins:f.plugins.map(($)=>$.constructor.name).sort(($,H)=>$.localeCompare(H)),current_time:f.currentTime,external_media_id:f.opt("external_media_id")}),gn=(f)=>({bitrate:f==null?void 0:f.bitrate,resolution:f==null?void 0:f.attrs.RESOLUTION,frame_rate:f==null?void 0:f.attrs["FRAME-RATE"]});function Zs(f,g,p,k){let M=Ce(g,f.eventInfo(p)),{before:$,after:H}=k;je(f,((U,j,tt)=>Object.assign(U,{state:{before:j,after:tt}}))(M,gn($),gn(H)))}let ta=(f,g)=>{let p=null;return(...k)=>{p!==null&&(clearTimeout(p),p=null),p=setTimeout(()=>g(...k),f)}};var Ae;(function(f){f[f.Starting=0]="Starting",f[f.ConfigFinalized=1]="ConfigFinalized",f[f.TimerStartedWithAutoplay=2]="TimerStartedWithAutoplay",f[f.TimerStartedWithUserGesture=3]="TimerStartedWithUserGesture",f[f.MetricReported=4]="MetricReported"})(Ae||(Ae={}));let pn=[v,"touchend"];class ea{constructor(f=Ae.Starting,g=!1){this.state=f,this.loadedAd=g}reset(){this.state=Ae.Starting,this.loadedAd=!1,this.start=void 0,this.end=void 0,this.adDetails=void 0}adInfo(){let{ad_tag_id:f,vast_ad_id:g}=this.adDetails||{};return{ad_tag_id:f,vast_ad_id:g}}toJSON(){return Object.assign({ad_was_requested:this.loadedAd,ms_to_first_frame:Math.round(this.end&&this.start?this.end-this.start:-1)},this.adInfo())}startTimer(f){this.state==Ae.ConfigFinalized&&(this.state=f,this.start=performance.now())}hasStarted(){return[Ae.TimerStartedWithAutoplay,Ae.TimerStartedWithUserGesture].includes(this.state)}stopTimer(f){this.hasStarted()&&(this.end||(this.end=performance.now()),this.state=Ae.MetricReported,f())}}function Hr(f){return Math.round(1000*f)/1000}class ia{constructor(f){this.tickInterval=f,this.ewma=0,this.startTime=Date.now()}decay(){let f=Date.now()-this.startTime;return Math.pow(2,-f/(4*this.tickInterval))}update(f){let g=this.decay();return this.ewma=g*this.ewma+(1-g)*f,this.ewma}toJSON(){return this.ewma}}let Cl={skipUnreliableSegments:!0};class Xi{constructor(f){this.player=f,this.marchingInterval=void 0,this.lastWatchedPoint=void 0,this.watchedSum=0,this.lastReportedSum=0,this.ewmaTickWatched=new ia(Xi.AccuracyMilliseconds)}reset(){this.onNotWatching(),this.watchedSum=0,this.lastReportedSum=0,this.lastWatchedPoint=void 0}onNotWatching(){this.marchingInterval&&(this.updateWatched(),this.marchingInterval=clearInterval(this.marchingInterval))}onWatching(){this.marchingInterval||(this.lastWatchedPoint=this.createWatchedPoint(),this.marchingInterval=setInterval(()=>{this.updateWatched()},Xi.AccuracyMilliseconds))}createWatchedPoint(){return{currentTime:this.player.currentTime,paused:this.player.paused}}updateWatched(){let f=this.createWatchedPoint();this.lastWatchedPoint&&this.calculateTimeWatched(this.lastWatchedPoint,f),this.lastWatchedPoint=f}calculateTimeWatched(f,g){var p,k;let M=g.currentTime-f.currentTime,$=this.ewmaTickWatched.update(M);if(!(M<0)&&!(((k=(p=this.player.opts)===null||p===void 0?void 0:p.health)===null||k===void 0?void 0:k.skipUnreliableSegments)!==!1&&1000*M>1.3*Xi.AccuracyMilliseconds)&&(this.watchedSum+=M,this.watchedSum!=this.lastReportedSum&&(this.watchedSum>this.lastReportedSum+Xi.ReportingIntervalSeconds||this.player.ended))){let H=Hr($),U={total_watched_seconds:Hr(this.watchedSum),tick_watched_seconds:H,batch_watched_seconds:Hr(this.watchedSum-this.lastReportedSum)};this.lastReportedSum=this.watchedSum,this.player.emit(nr,U)}}}Xi.ReportingIntervalSeconds=5,Xi.AccuracyMilliseconds=160;let Il=zi();class Be{constructor(f,g){let p;this.session_id=Il,this.suspended=!1,this.logger=ro("health",g.opts),this.media_session_id=zi(),this.play_range_id=zi(),this.analyticsLoop=setInterval(()=>mn(this),2000),g.on(Y,()=>clearInterval(this.analyticsLoop)),g.on(nt,()=>{p!==this.media_session_id&&(p=this.media_session_id,this.first_playing_event_timestamp=Date.now()),this.play_range_id=zi()});let k=Date.now()-1000;g.on("timeupdate",($)=>{if(p!==this.media_session_id)return;let H=Date.now();if(H<k)return;k=Date.now()+5000;let U=Ce(g,this.eventInfo($.type)),j=sr(U,{duration:(tt=g.duration,Number.isFinite(tt)?tt:tt===1/0?-1:void 0)});var tt;this.first_playing_event_timestamp&&(Object.assign(j,{ms_since_first_playing:H-this.first_playing_event_timestamp}),this.first_playing_event_timestamp=void 0),je(this,j)});let M=this;if(g.health={get media_session_id(){return M.media_session_id},set media_session_id($){M.media_session_id=$},get session_id(){return M.session_id},set session_id($){M.session_id=$},toggle($){$?M.resume():M.suspend()}},!Be._UNLOAD_SUBSCRIBED){Be._UNLOAD_SUBSCRIBED=!0;let $=(H)=>f.instances.forEach((U)=>U.emit(H.type));document.addEventListener("visibilitychange",(H)=>{document.visibilityState=="hidden"&&$(H)}),window.addEventListener("pagehide",$)}}eventInfo(f){return{event:f,media_session_id:this.media_session_id,session_id:this.session_id,play_range_id:this.play_range_id}}suspend(){this.suspended=!0,clearInterval(this.analyticsLoop)}resume(){this.suspended=!1,this.analyticsLoop=setInterval(()=>mn(this),2000)}init(f,g,p){if(Cn().toString().startsWith("data:"))return this.suspend();(function(k){let M=null,$=()=>{M=null};k.on(Et,function(H){k.seeking||k.networkState===k.NETWORK_LOADING&&(k.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||k.emit(fn))}),k.on(fn,(H)=>{M=H}),k.on(q,(H)=>{if(M){let U=H.timeStamp-M.timeStamp;if($(),U<31)return;if(U>300000)return;k.emit(ir,{rebuffer_duration:U/1000})}}),oo.forEach((H)=>k.on(H,$))})(p),function(k){let M;[q,ot].forEach(($)=>{k.on($,(H)=>{let U=Date.now();switch(H.type){case ot:return M=U;case q:if(M)return k.emit($r,{ms_since_loading_started:U-M}),M=null}})})}(p),function(k){if(window.performance===void 0)return;let M=new ea;k.on("src",()=>{if(!k.opt("metadata.media_id"))return M.reset();M.reset(),M.state=Ae.ConfigFinalized}),k.on(ot,()=>{(k.root.classList.contains("ad-hide-first-frame")||k.opt("autoplay"))&&M.startTimer(Ae.TimerStartedWithAutoplay)}),pn.forEach(($)=>{k.on($,()=>{k.opt("autoplay")||M.startTimer(Ae.TimerStartedWithUserGesture)})}),k.on("ad-requested",()=>{M.loadedAd=!0}),k.on("timeupdate",()=>{if(!(k.readyState<HTMLMediaElement.HAVE_CURRENT_DATA)){if(k.root.classList.contains("ad-hide-first-frame"))return!M.end&&(M.end=performance.now());switch(M.state){case Ae.TimerStartedWithAutoplay:case Ae.TimerStartedWithUserGesture:return M.stopTimer(()=>k.emit(Br,M.toJSON()))}}}),k.on("ad-started",($)=>{switch(M.end=void 0,M.adDetails=$.detail,M.state){case Ae.TimerStartedWithAutoplay:case Ae.TimerStartedWithUserGesture:return M.stopTimer(()=>k.emit(Br,M.toJSON()))}})}(p),function(k){let M=new Xi(k);k.on(ot,()=>M.reset()),k.on(nt,()=>M.onWatching()),k.on(ir,()=>!k.paused&&M.onWatching()),k.on(fn,()=>M.onNotWatching()),k.on(K,()=>M.onNotWatching()),k.on(P,()=>M.onNotWatching()),k.on(C,()=>M.updateWatched()),k.on("visibilitychange",()=>M.updateWatched())}(p),p.on("display",(k)=>{je(this,Ce(p,this.eventInfo(k.type)),!0)}),p.on("health:record",({detail:k})=>{let M=Ce(p,this.eventInfo(k.event));Object.assign(M,k.detail||{}),je(this,M)}),[N,X,b,G,Et,fn].forEach((k)=>{p.on(k,(M)=>{je(this,Ce(p,this.eventInfo(M.type)))})}),[ir,Br,$r,nr].forEach((k)=>{p.on(k,(M)=>{let $=Ce(p,this.eventInfo(M.type));je(this,Object.assign($,M.detail))})}),[nt,K,P,B,C,L,O,q,ot].forEach((k)=>{p.on(k,(M)=>{je(this,Ce(p,this.eventInfo(M.type)))})}),p.on("volumechange",ta(800,(k)=>{let M=Ce(p,this.eventInfo(k.type));je(this,sr(M,{volume:parseFloat(p.volume.toFixed(2)),muted:p.muted}))})),p.on("resize",ta(800,(k)=>{let M=Ce(p,this.eventInfo(k.type));je(this,sr(M,{height:g.clientHeight,width:g.clientWidth}))})),p.on("hls/failover",(k)=>{let M=Ce(p,this.eventInfo(k.type)),$=k.detail,{reason:H,from:U}=$;je(this,sr(M,{reason:H,from:U}))}),p.on("qualitychange",({type:k,detail:M})=>{switch(M.plugin){case"hls":return Zs(this,p,k,M)}}),p.on("flowplayer:error",(k)=>{let M=Ce(p,this.eventInfo(k.type)),$=k.detail.error;if(!$)return je(this,M,!0);return je(this,sr(M,$.toJSON()),!0)}),p.on("src",(k)=>{var M;let $=(M=k.detail)===null||M===void 0?void 0:M.src;if(typeof $!="string")return;if(!Xs(p.original_src))return;if(!Xs($))return;if($==p.original_src)return;this.media_session_id=zi(),je(this,Ce(p,this.eventInfo(k.type))),mn(this),p.setOpts({health:Object.assign(Object.assign({},p.opts.health),Cl)})}),p.on("visibilitychange",(k)=>{je(this,Ce(p,this.eventInfo(k.type))),mn(this)})}}function _i(f,g){return function(p){return p.extensions.reduce((k,M)=>k.find(($)=>$.pluginName===M.pluginName)?(console.warn("flowplayer: duplicate plugin %s detected, plugin names should be unique",M.name),k):(k.push(M),k),[])}(f).map((p)=>new p(f,g))}function On(f){f.on("error",qi((g)=>{let p=g instanceof MediaError?g:f.error;p&&f.emit("flowplayer:error",{error:Mn(p,{resource:f.original_src})})}))}function Mn(f,g={}){var p,k,M,$,H,U;switch(f.code){case MediaError.MEDIA_ERR_ABORTED:return new Ti((p=f.message)!==null&&p!==void 0?p:"The playback was aborted, typically by the user.",xt.PlaybackInternalAborted,Object.assign({isFatal:!1,retryOpts:{retry:qs}},g));case MediaError.MEDIA_ERR_NETWORK:return new Ti((k=f.message)!==null&&k!==void 0?k:"A network error prevented media from being downloaded.",xt.NetworkHttpRequestFailed,Object.assign({isFatal:!0},g));case MediaError.MEDIA_ERR_DECODE:return new Ti((M=f.message)!==null&&M!==void 0?M:"An error occurred while decoding the media.",xt.PlaybackVideoDecodeError,Object.assign({isFatal:!0},g));case MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED:return new Ti(($=f.message)!==null&&$!==void 0?$:"The media could not be loaded because the format is not supported.",xt.MediaUnsupportedVideoFormat,Object.assign({isFatal:!0},g));case 5:return new Ti((H=f.message)!==null&&H!==void 0?H:"Encrypted content could not be played due to missing keys or unsupported protection scheme.",xt.ContentProtectionKeySystemNoKeys,Object.assign({isFatal:!0},g));default:return new Ti((U=f.message)!==null&&U!==void 0?U:"An unknown playback error occurred.",xt.PlaybackUnknown,Object.assign({isFatal:!0},g))}}Be.pluginName="health",Be.events=ao,Be._UNLOAD_SUBSCRIBED=!1;let uo=function(){let f=Za(),g=f.flowplayer?f.flowplayer:{extensions:[]};return Array.isArray(g.extensions)||(g.extensions=[]),g}();function ze(f,g){if(typeof f=="function")return r.push(...[...arguments].filter((j)=>typeof j=="function")),ze;typeof g=="string"&&(g={src:g}),g||(g={}),g.token||typeof window.__FLOWPLAYER_TOKEN!="string"||(g.token=window.__FLOWPLAYER_TOKEN);let p=typeof f=="string"?document.querySelector(f):f;if(!p)return console.error(Error("Flowplayer: '"+f.toString()+"' not found"));let k=p.querySelector("video.fp-engine");if(k)return k;let M=to(g.token);if(!M.success)return Gs({root:p,data:{reason:"token",details:M.message}});let $=new Map,H=Rl(g,p);H.reaper=$,H._customElements=qn,Object.defineProperty(H,"token",{value:typeof g.token=="string"?Si.id(g.token):"",writable:!1}),H.addEventListener(Y,()=>{$.clear(),H.reaper=0,delete H.root}),H.root=p,g.token&&ai.from_token(g.token).is_granted(ai.permissions.DEVELOPER_PLAN)&&r.push(er),!~l.indexOf(H)&&l.push(H),Qa(g,p,H),H.setAttrs(g),H.plugins=_i(ze,H),Pr(g,p,H),kl(g,p,H),Vs(p,H),xr(g,p,H),js(H),Ur(p,H),so(H,g),On(H),H.plugins.forEach((j)=>{try{j.init(g,p,H)}catch(tt){console.log("Error(plugin/%s)",j.constructor.name,tt)}}),H.setOpts(g),H.opts=g,g.src&&H.setSrc(g.src);let U=H.readyState;return U>0&&H.currentSrc&&H.emit(X),U>2&&H.currentSrc&&H.emit(q),H.emit("mount"),H.on("error:fatal",function(j){Gs({root:p,video:H,data:j.data||{}})}),setTimeout(mi,0,document,"flowplayer:player:created",H),H}Object.assign(ze,uo),function(f){Array.isArray(f.extensions)&&f.extensions.forEach((g)=>r.push(g)),f.customElements=qn,f.defaultElements=ve,f.version="3.29.0",f.commit="ba3e93d888af5a53636ba363126fa480ae120a54",f.instances=l,f.extensions=r,f.support=d,f.events=St,f.states=ln,f.errors=xt,f.jwt=ri,f.autoplay=Ii,f.quality=ye}(ze),typeof document=="object"&&setTimeout(mi,0,document,"flowplayer:umd",ze),ze.extensions.unshift.apply(ze.extensions,[Be]);let ar=(...f)=>f.reduce((g,p)=>Object.assign(Object.assign({},g),p),{}),vn=(f,g)=>{let p=f.lastIndexOf(g);return~p&&f.splice(p,1),f};class de{static of(){return new de}static is_empty(f){return f.pending.length==0}static is_high_water(f){return f.open.length==de.MAX_OPEN_REQUESTS}static maybe_spawn_req(f){if(de.is_empty(f))return f;if(de.is_high_water(f))return f;try{let g=de.lpop(f);g&&de.request(f,g)}catch(g){}}static increment_failures(f){return f.stats.failures++,f.stats.failures>de.MAX_FAILURE_COUNT&&(f.stats.ttl=Date.now()+de.REQUEST_TTL_MS),f}static handle_error(f,g){de.rm(f,g),de.increment_failures(f)}static request(f,[g,p,k]){if(Date.now()<f.stats.ttl)return;let M=new XMLHttpRequest;f.open.push(M),M.timeout=de.REQUEST_TIMEOUT_MS,M.ontimeout=function(){de.handle_error(f,M)},M.onerror=function($){de.handle_error(f,M)},M.onreadystatechange=function(){M.readyState==XMLHttpRequest.DONE&&de.rm(f,M),Math.floor(M.status/100)},M.onload=function(){de.rm(f,M),f.stats.failures&&f.stats.failures--},M.open(p,g),M.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{M.send(JSON.stringify(k))}catch($){}}static rpush(f,...g){return g.forEach((p)=>{f.pending.length>=de.MAX_PENDING||(f.pending.push(p),de.maybe_spawn_req(f))}),f}static lpop(f){return f.pending.shift()}static rm(f,g){return vn(f.open,g),f}constructor(){this.pending=[],this.open=[],this.stats={failures:0,ttl:0}}}de.MAX_OPEN_REQUESTS=3,de.MAX_PENDING=5,de.REQUEST_TIMEOUT_MS=4000,de.REQUEST_TTL_MS=5000,de.MAX_FAILURE_COUNT=3;var na=de.of();let Kr=/:([a-zA-Z_]+)/g;class $e{static prepare(f,g){let p=document.createEvent("Event");return p.initEvent(f,!1,!0),p.ns=f,p.data=g,p}static of(f){return new $e(f)}constructor(f){this.emitter=f}info(f){this.emitter.dispatchEvent($e.prepare($e.NAMESPACE.INFO,f))}error(f){this.emitter.dispatchEvent($e.prepare($e.NAMESPACE.ERROR,f))}warn(f){this.emitter.dispatchEvent($e.prepare($e.NAMESPACE.WARN,f))}}var ra;$e.NAMESPACE={INFO:"tracker:info",ERROR:"tracker:err",WARN:"tracker:warn"},function(f){f.POST="POST",f.PUT="PUT",f.GET="GET"}(ra||(ra={}));class Jt{static of(f,g){return new Jt(f,g)}static ensure_required_keys(f,g){return f.required_keys.filter((p)=>!(p in g))}static pluck_valid_keys(f,g){return((p,...k)=>Object.keys(p).filter((M)=>~k.indexOf(M)).reduce((M,$)=>ar(M,{[$]:p[$]}),{}))(g,...f.valid_keys)}static merge_metadata(f,g={}){return f.metadata=Jt.pluck_valid_keys(f,ar(f.metadata,g)),f}static assert_emitter_api(f){if(typeof(f||{}).addEventListener!="function")throw Error("Tracker() received an emitter that does not implement the addEventListener method");if(typeof(f||{}).removeEventListener!="function")throw Error("Tracker() received an emitter that does not implement the removeEventListener method")}static create_listener(f,g,p){var k;f.listeners.push([g,p]),(k=f.emitter)===null||k===void 0||k.addEventListener(g,p)}constructor(f,g={}){let p=this;if(this.emitter=f,this.url=g.url,this.log=$e.of(this.emitter),this.verb=g.verb,this.metadata=ar({},g.metadata||{}),this.rq=g.rq||na,this.events=g.events||[],this.required_keys=g.required_keys||[],this.optional_keys=g.optional_keys||[],this.listeners=[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Jt.assert_emitter_api(this.emitter),Jt.verb[this.verb]===void 0)throw Error(`invalid HTTP verb[${this.verb}] passed`);if(typeof this.url!="string")throw Error(`invalid API url[${this.url}] passed`);Jt.TRACKERS.push(this),p.events.forEach((k)=>{Jt.create_listener(this,k,(M={})=>{let $=ar(p.metadata,{event_type:k},M.data||M),H=function(tt,Tt){return tt.replace(Kr,(Dt)=>{let Ht=Dt.slice(1,Dt.length);return Ht in Tt?Tt[Ht].toString():Dt})}(p.url,$),U=Jt.pluck_valid_keys(p,$),j=Jt.ensure_required_keys(p,U);if(j.length)return p.log.error(`Tracker.validate_metadata() failed for
4
+ instance:`,$),G&&!U)return $.muted=!0,$.play()})}(f)):(f.setState(Nt,!1),!f.hasState(ue)&&f.setState(xt,!0),Promise.resolve())}function Wt(f){f.opts.is_native&&(f.hasState(xe)||(f.hasState(ke)||f.emit(ot),f.setState(ke,!0),f.load()))}function Wa(f){let g=document.createElement("a");return g.href=f,g.href}function xs(f,g){var p={};for(var k in f)Object.prototype.hasOwnProperty.call(f,k)&&g.indexOf(k)<0&&(p[k]=f[k]);if(f!=null&&typeof Object.getOwnPropertySymbols=="function"){var O=0;for(k=Object.getOwnPropertySymbols(f);O<k.length;O++)g.indexOf(k[O])<0&&Object.prototype.propertyIsEnumerable.call(f,k[O])&&(p[k[O]]=f[k[O]])}return p}function Il(f){let g=document.createElement("a");g.href=f;let p=g.pathname&&g.pathname.split(".");return p.length>1&&p[p.length-1]}function Fs(f){switch(f){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return f}}let qr=(f)=>{var{src:g}=f,p=xs(f,["src"]);return[Object.assign({src:g,type:g?Fs("video/"+Il(g)):""},p)]};function hi(f){return qr({src:f})}function Us(f){var{src:g,type:p}=f,k=xs(f,["src","type"]);return g&&p?[Object.assign({src:g,type:p},k)]:p&&!g?[Object.assign({type:p},k)]:qr(Object.assign({src:g},k))}var Mi;function si(f,g,p,k={safari:!1}){let O=function($){return typeof $=="string"?hi($):Array.isArray($)||typeof $!="object"?$.reduce(function(G,U){return typeof U=="string"&&(U=hi(U)),typeof U!="object"||Array.isArray(U)||(U=Us(U)),G.concat(U)},[]):Us($)}(p);return function($){[Ve,Nt,xt,ue,Je,ke,xe,Di].forEach((G)=>$.setState(G,!1)),$.setState(ne,!0)}(f),Array(...Array(O.length)).map(($,G)=>G).some(($)=>{let G=O[$];if(Mi.Ok==function(U,j,Z){U.emit("src",Z),j.playback_token&&typeof Z.src=="string"&&Z.src.startsWith("https://")&&(Z.src=function(Ct,Ht){let ae=new URL(Ct);return ae.pathname=`/pt:${Ht}${ae.pathname}`,ae.toString()}(Z.src,j.playback_token)),typeof Z.src=="string"&&(U.original_src=Z.src);let Tt=function(Ct,Ht,ae){return Ct.plugins.filter((ge)=>{return(te=ge)&&"wants"in te;var te}).find((ge)=>ge.wants(ae.src||"",ae,Ht))}(U,j,Z);return U.setOpts({is_native:!Tt}),Tt?(Tt.onload(j,U.root,U,Z),Mi.Ok):Mi.Err}(f,g,G)||Mi.Ok==function(U,j,Z,Tt={safari:!1}){var Ct;if(/^audio\//.test(Z.type||"")&&U.emit("audioonlysource"),j.start_time&&(Z.src=Z.src+"#t="+j.start_time),U.canPlayType(Z.type||"")=="")return Mi.Err;if(Z.drm&&(!Z.drm["com.apple.fps.1_0"]||!Tt.safari))return Mi.Err;return typeof Z.src=="string"&&(U.preload=(Ct=j.preload)!==null&&Ct!==void 0?Ct:"auto",U.src=Z.src),Mi.Ok}(f,g,G,k))return!0;$==O.length-1&&typeof G.src=="string"&&(f.src=G.src)}),f}(function(f){f[f.Err=0]="Err",f[f.Ok=1]="Ok"})(Mi||(Mi={}));let Ya=[Y,x,"src","seek:cancel"];var wr;function ja(f,g,p){return isNaN(f.duration)||isNaN(f.currentTime)?{}:(g.offset+=p,g.offset==0?kn(f,g):(g.timer&&clearTimeout(g.timer),g.timer=setTimeout(function(){f.reaper!=0&&(f.currentTime=function(k,O,$=0){return Math.max(Math.min(O,k),$)}(f.currentTime+g.offset,f.duration),g.timer=0,kn(f,g))},1000),function(k,O){k.setState("will-seek",!0),k.setState(wr.BACKWARD,O.offset<0),k.setState(wr.FORWARD,O.offset>0)}(f,g),f.emit("seek:queued",g),g))}function kn(f,g){g.timer&&clearTimeout(g.timer),g.timer=g.offset=0,function(p){p.setState(wr.FORWARD,!1),p.setState(wr.BACKWARD,!1),p.setState("will-seek",!1)}(f)}function za(){if(typeof document>"u")return!1;let f=document.documentElement;return f&&f.getAttribute("dir")=="rtl"}function ti(...f){let g=document.createElement("div");return f.length==0||g.classList.add(...f),g}function fi(f,g,p){let k=function(O){return Array.isArray(O)?O.slice(0):O.split(".")}(g);for(;k.length;){if(f==null)return p;let O=k.shift();if(typeof O!="string")return p;f=f[O]}return f==null?p:f}function Xr(f){let g=typeof f=="number"?f:parseInt(f,10);return(g>9?"":"0")+g}function Ni(f){if(isNaN(f)||f>=Number.MAX_SAFE_INTEGER)return"";let g=f<0?"-":"";f=Math.round(Math.abs(f));let p=Math.floor(f/3600),k=Math.floor(f/60);return f-=60*k,p>=1?(k-=60*p,g+p+":"+Xr(k)+":"+Xr(f)):g+Xr(k)+":"+Xr(f)}(function(f){f.FORWARD="forward",f.BACKWARD="backward"})(wr||(wr={}));let Ye=navigator.languages||[navigator.language];function Bs(f,g,p){let k={};return p=g.lang||p,f[p]&&(k[p]=f[p]),function(){try{return Ye.reduce((O,$)=>~$.indexOf("-")?O.concat($,$.split("-")[0]):O.concat($),[])}catch(O){return[]}}().forEach(function(O){f[O]&&!k[O]&&(k[O]=f[O])}),Object.values(k)}let qa=[1e7]+"-1000-4000-8000-100000000000",zi=()=>typeof crypto>"u"?"":qa.replace(/[018]/g,(f)=>(f^crypto.getRandomValues(new Uint8Array(1))[0]&15>>f/4).toString(16)),Pi="";(function(){let f=!1;try{let g=Object.defineProperty({},"passive",{get:function(){f=!0}});window.addEventListener("testPassive",null,g),window.removeEventListener("testPassive",null,g)}catch(g){}})();let Cn=["touchstart","touchmove"];function Dn(f,g){let p=new CustomEvent(f,{detail:g,cancelable:!0});return g&&Object.defineProperty(p,"data",{get:()=>g}),p}function mi(f,g,p){let k=Dn(g,p);return f.dispatchEvent(k),f}function Rr(f,g,p){let k=Dn(g,p);return f.dispatchEvent(k),k}function Ee(f,g,p,k){Array.isArray(g)?g.forEach((O)=>Jr(f,O,p,k)):Jr(f,g,p,k)}function Jr(f,g,p,k){if(O=g,!~Cn.indexOf(O))return f.addEventListener(g,p,k),f;var O;let $=Object.assign(k||{},{passive:!0});return f.addEventListener(g,p,$),f}function cr(f,g,p,k){return Ee(f,g,p,Object.assign(k||{},{once:!0}))}class Xa{constructor(f,g){this.implementation=f,g&&g.keys().forEach((p)=>{typeof g.implementation[p]=="string"&&this.implementation.setItem(p,g.implementation[p])})}keys(){var f;let g=[];for(var p=0;p<this.implementation.length;p++)((f=this.implementation.key(p))===null||f===void 0?void 0:f.startsWith("flowplayer/"))&&g.push(this.implementation.key(p));return g}removeItem(f){try{this.implementation.removeItem("flowplayer/"+f)}catch(g){}}getItem(f){try{return this.implementation.getItem("flowplayer/"+f)}catch(g){return null}}setItem(f,g){try{this.implementation.setItem("flowplayer/"+f,g)}catch(p){}}clear(){try{this.keys().forEach((f)=>this.implementation.removeItem(f))}catch(f){}}get length(){try{return this.keys().length}catch(f){return 0}}key(f){try{return this.implementation.key(f)}catch(g){return null}}}class Qr{constructor(){this.pairs=[]}get length(){return this.pairs.length}clear(){this.pairs=[]}getItem(f){var g;return((g=this.pairs.find((p)=>p[0]===f))===null||g===void 0?void 0:g[1])||null}key(f){return this.pairs[f][0]||null}removeItem(f){this.pairs=this.pairs.filter((g)=>g[0]!==f)}setItem(f,g){this.removeItem(f),this.pairs.push([f,g])}}let Ja={preload:"auto",rtl:!1,controls:!0},Qa=["muted","preload"];function Za(f,g,p){let k;p.live_state={dvr_window:void 0,get dvr(){return k},set dvr(U){k=U;let j=!(!f.live||U);p.hasState(We)!=j&&p.setState(We,j)}},p._storage=new Xa(["localStorage","sessionStorage"].map((U)=>{try{let j=window[U];return j.getItem(""),j}catch(j){return console.debug(`Access to window.${U} denied, trying next option`),null}}).find((U)=>!!U)||new Qr),p.toJSON=function(){return{duration:p.duration,volume:p.volume,currentTime:p.currentTime,states:p.root.className}},p.setSrc=function(U){return si(p,f,U,d())},p.playerState=p.playerState||{},p.setState=function(U,j){if(p.playerState[U]===!!j)return p;let Z=Object.assign({},p.playerState,{[U]:j});return p.playerState=Z,mi(p,"state",p.playerState),p},p.createComponents=function(...U){return Array.from({length:U.length}).map((j,Z)=>yi(this,U[Z]))},p.hasState=function(U){return!!p.playerState[U]},p.transitionState=function(U,j,Z){!p.hasState(U)&&p.hasState(j)||(Z=0),Z&&p.setState("is-toggling",!0),p.setState(j,!1),p.setState(U,!0),Z&&setTimeout(function(){p.setState("is-toggling",!1)},Z)},p.emit=(U,j)=>(mi(p,U,j),p),p.on=(U,j)=>(Ee(p,U,j),p),p.once=(U,j)=>(cr(p,U,j),p),p.off=(U,j)=>{var Z,Tt;return Z=U,Tt=j,p.removeEventListener(Z,Tt),p},p.poll=(U,j)=>Rr(p,U,j),p.togglePlay=function(U){return p.hasState("is-error")?Promise.reject():Ps(p,0,U)},p.toggleMute=function(U){U=U==null?!p.muted:!!U,p.muted=U,p.muted||p.volume||(p.volume=1),mi(p,"volumechange")},p.toggleDisable=function(U){U=U==null?!p.disabled:!!U,p.setState("is-disabled",U),p.disabled=U},p.destroy=function(){p.pause();let U=o.indexOf(p);~U&&o.splice(U,1),setTimeout(function(){p.setSrc([]),p.reaper&&p.reaper.clear(),mi(p,Y),p.setState("is-destroyed",!0)},0)},p.setAttrs=function(U){return Qa.forEach((j)=>{if(!(j in U))return;let Z=U[j];Z?p.setAttribute(j,Z.toString()):p.removeAttribute(j)}),p},p.opt=function(U,j){return j=j===void 0?fi(Ja,U):j,fi(f,U,j)},p.i18n=function(U,j){if(!p.reaper)return"";let Z=p.reaper.get("translations");return Z?function Tt(Ct,Ht,ae,ge){return(ge=ge||0)>=Ct.length?ae:fi(Ct[ge],Ht,Tt(Ct,Ht,ae,ge+1))}(Z,U,j||""):j||""},p.setOpts=function(U){Object.assign(f,U),f.live&&!p.hasState(ui)&&(p.setState(We,!0),mi(p,"live")),"disabled"in U&&U.disabled!==void 0&&p.toggleDisable(U.disabled),"muted"in U&&U.muted!==void 0&&p.toggleMute(U.muted),"dvr"in f&&(p.live_state.dvr=p.opt("dvr")),p.setState("is-rtl",p.opt("rtl",function(j){if(!j)return za();let Z=j.getAttribute("dir");return Z?Z=="rtl":za()}(g))),p.setState(ui,!!f.live),p.setState("has-poster",typeof f.poster=="string"&&f.poster.length>0),p.setState("is-seekable",!!f.seekable),p.setState("no-controls",f.controls==0),g.style.backgroundImage=p.hasState("has-poster")?"url('"+f.poster+"')":"",mi(p,nt,f)},p.renderPlugin=function(U){Rr(p,"renderplugin",U).defaultPrevented||p.root.appendChild(U)};let O={offset:0,timer:0};var $,G;G=O,($=p).on(Ya,function(){kn($,G)}),p.enqueueSeek=function(U){if(p.opts.seekable!=0&&!(p.opts.disabled==1&&U>0))return ja(p,O,U)},p.deviceId=function(){return function(U){if(Pi)return Pi;try{let j=U.getItem("flowplayer/uuid");if(j)return j;let Z=zi();return U.setItem("flowplayer/uuid",Z),Z}catch(j){return Pi=zi()}}(p._storage)}}function Ol(f,g){let p=g.querySelector("video"),k=p||(f._video_element_callback?f._video_element_callback(f):document.createElement("video"));return k.classList.add("fp-engine"),k.playsInline=!0,p||g.append(k),k}var $s=typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{};function to(){return typeof window<"u"?window:$s!==void 0?$s:{}}let gi=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function In(f,g){return!!~gi.indexOf(f)||f.indexOf(g)===f.length-g.length}In.check_whitelist=function(f){return!!~gi.indexOf(f)};let On="production";function Si(f,g){let p={valid_jwt:!1,raw:"",data:{acl:0},exp:0},k={c:"{}",exp:0};g=g||{};try{k=ni(f),p.valid_jwt=!0}catch(O){}return p.raw=f,p.data=JSON.parse(k.c),p.exp=k.exp,g.require_valid_token&&Si.validate(p),p}function eo(f){try{return Si.validate(f),{success:!0,message:""}}catch(g){return{success:!1,message:g.message}}}var Mn;function ai(f){return{grant:f,is_granted:(g)=>(f&g)===g}}function Gs({root:f,video:g,data:p}){g&&g.destroy(),console.error(Error(p.details||p.reason)),f.innerHTML="",f.classList.remove("flowplayer"),f.classList.add("flowplayer-fatal"),f.style.removeProperty("background-image");let k=document.createElement("h2");k.textContent="Playback Error";let O=document.createElement("p");O.textContent="Are you the site owner?";let $=document.createElement("a");$.classList.add("troubleshoot"),$.target="_blank",$.href="https://docs.flowplayer.com/troubleshooting/player#"+p.reason,$.textContent="Troubleshoot?";let G=document.createElement("img");G.src="https://flowplayer.com/user/pages/images/logo-white.png",f.append(k,O,$,G)}function qi(f){return(g)=>{setTimeout(function(){if(!g.defaultPrevented&&!g.prevented)return f(g)},0)}}Si.validate=function(f){if(typeof f=="string"&&(f=Si(f)),!f||!f.raw){if(In.check_whitelist(window.location.hostname)||On.toString()==="dev")return!0;throw Error("No token provided in configuration")}if(!f.valid_jwt)throw Error("Invalid token provided");let g=window.location.hostname,p=In.bind(null,g);if(On.toString()!=="dev"&&f.data.domain&&f.data.domain.length&&!f.data.domain.some(p))throw Error("Domain not allowed");if(On.toString()!=="dev"&&1000*f.exp-Date.now()<0)throw Error("Expired token");return!0},Si.id=function(f){if(f)return typeof f=="string"&&(f=Si(f)),f.data.id},function(f){f[f.ADS=2]="ADS",f[f.ANALYTICS=4]="ANALYTICS",f[f.NO_METERING=8]="NO_METERING",f[f.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",f[f.WOWZA_VIDEO=32]="WOWZA_VIDEO"}(Mn||(Mn={})),ai.of=ai,ai.from_token=function(f){let g=Si(f,{require_valid_token:!0});return ai.of(g.data.acl)},ai.permissions=Mn;function xi(f,g){if(!f.parentElement)return;let p=f.clientWidth/f.parentElement.clientWidth*100/2;f.style.left=g-p+"%",f.style.display="block"}function ei(f,g){if(isNaN(f.duration))return;let p=f.buffered;p.length&&(g.style.width=Math.min(p.end(p.length-1)/f.duration*100,100)+"%")}function pi(f,g){f.style.width="0",g.style.display="none"}function ie(f,g){let p=f.seekable;if(typeof f.opts!="object"||p.length==0)return{head:0,tail:0};let k=Hs(f),O=g||f.live_state.dvr_window;return{head:k,tail:typeof O!="number"||k-O<0?p.start(0):k-O}}function Ue(f){return f.opt("live",!1)||f.duration>=Number.MAX_SAFE_INTEGER}function bi(f){return isFinite(f.duration)?f.duration:f.seekable.length==0?0:ie(f).head}function Hs(f){var g;let p=f.seekable;return p.length?f.hasState("is-chromecast-playing")||!((g=f.hls)===null||g===void 0?void 0:g.liveSyncPosition)?p.end(p.length-1):f.hls.liveSyncPosition:0}function Nn(f,g,p){if(!g.seekable||g.seekable.length==0)return;xi(p,f);let k=ie(g),O=(100-Math.max(0,Math.min(f,100)))/100*(k.head-k.tail);p.innerText="-"+Ni(O)}function io(f){f.currentTime=ie(f).tail}function Vs(f){try{f.dvr_offset=0,f.currentTime=Hs(f)}catch(g){console.warn("failed to seek to now: %j",g)}}function ro(f,g){f/=100,g.currentTime=function(p,k){if(k>1||k<0)return console.warn("cannot calculate a percent outside of range(0..1)"),0;let O=ie(p);return O.tail+k*(O.head-O.tail)}(g,f)}function ur(f,g){f.style.width="0",g.style.display="none"}function Pn(f,g){let p=g.clientWidth;g.classList.toggle("is-small",p<600),g.classList.toggle("is-tiny",p<400)}function xn(f,g,p){let k=!0;g.classList.add("flowplayer"),Pn(0,g),Ee(p,N,()=>{if(!p.hasState(ke)&&!p.hasState(xe)&&f.is_native&&f.preload!=="none")return f.preload==="metadata"?(p.setState(ke,!0),p.emit(ot)):void Wt(p)}),Ee(p,tt,()=>{f.is_native&&f.preload==="metadata"&&p.paused&&p.emit(q)}),Ee(p,[N,"resize"],function(){Pn(0,g)}),Ee(p,"state",function(){Object.entries(p.playerState).forEach(function([O,$]){g.classList.toggle(O,$)})}),Ee(p,"timeupdate",function(){p.setState(Ke,!p.hasState("is-casting")&&!p.hasState(ne)&&p.readyState<3)}),Ee(p,D,function(O){let $=p.original_src;qi(()=>{if($===p.original_src){if(p.setState(Qe,!0),cr(p,"timeupdate",function(){p.setState(Qe,!1),$===p.original_src&&p.setState(ne,!f.loop&&!!f.rewind&&p.paused)}),f.loop)return p.togglePlay(!0);f.rewind&&(p.currentTime=0)}})(O)}),Ee(p,[x,B],function(O){p.setState(Ve,O.type==x)}),Ee(p,"remotesession:ended",function(O){setTimeout(()=>{O.defaultPrevented||(p.currentTime=O.detail.currentTime)},0)}),Ee(p,D,function(){p.setState(ue,!1),k=!0}),Ee(p,H,()=>{if(!p.opts.live||!p.opts.is_native)return;let O=p.seekable;O.length!=0&&p.emit("dvr/window",O.end(O.length-1)-O.start(0))}),Ee(p,b,function(){p.setState(xe,!0),p.setState(ke,!1)}),Ee(p,"play",()=>{p.setState(xt,!0)}),Ee(p,[Et,q,N],function(O){if(!p.hasState(Ve)&&(O.type!=q||f.autoplay||p.setState(Ke,!1),O.type!=N||p.opt("preload")!="none"||f.autoplay)){if(O.type==N&&f.autoplay)return cr(p,st,function(){p.setState(Ke,!1)});O.type!=Et||p.hasState(xe)||p.setState(ke,!0),p.setState(Qe,!1),p.setState(Ke,O.type==Et)}}),Ee(p,[st,K],function(O){setTimeout(()=>{let Tt=new CustomEvent("flowplayer/"+O.type,{detail:p});document.dispatchEvent(Tt)},0);let $=O.type==st,G=p.currentTime==p.duration,U=$&&k&&f.autoplay||p.hasState(Ke);if($&&(p.started=!0,k=!1),p.setState(Ke,!1).setState(xt,!1),!$&&p.setState(Nt,!1),G)return;let j=$?ue:Je,Z=$?Je:ue;p.transitionState(j,Z,U?0:300),!p.hasState(ne)||p.root.classList.contains("ad-hide-first-frame")||p.root.classList.contains("preroll-ios")||function(Tt,Ct){if(!Tt.hasState(ui)||![void 0,0,-1].includes(Ct)||!Tt.seekable.length||Tt.hasState("has-casted"))return Tt.setState(ne,!1);Tt.once(B,()=>Tt.setState(ne,!1)),Ct===0?io(Tt):Vs(Tt)}(p,f.start_time)})}let Zr=[0].concat(Array.from({length:100}).map((f,g)=>(g+1)/100));function Ml(f,g,p){if(!window.IntersectionObserver)return;let k={should_resume:!!f.autoplay,locked:!1};Ee(p,"play",function(){k.locked||(k.should_resume=!0)});let O=()=>{if(!f.autoplay)return;if(p.hasState(se)&&k.should_resume)return p.togglePlay(!0);let U=p.currentSrc;f.autopause||p.hasState(se)||!k.should_resume||cr(p,"viewenter",()=>{f.autoplay&&k.should_resume&&U===p.currentSrc&&p.togglePlay(!0)})},$=()=>{if(!f.autoplay)return;if(!f.is_native)return;if(f.preload==="auto")return;if(p.hasState(se))return Wt(p);let U=p.currentSrc;cr(p,"viewenter",()=>{U!==p.currentSrc||p.readyState>1||!p.paused||Wt(p)})};Ee(p,"src",function(){k.should_resume=!!f.autoplay,p.off(N,$),p.once(N,$),p.off(q,O),p.once(q,O)}),Ee(p,K,function(){k.locked||(k.should_resume=!1)});let G=new IntersectionObserver((U)=>{U.forEach((j)=>{setTimeout(()=>{let Z=j.intersectionRatio,Tt=p.hasState(se);if(p.setState(se,Z>=0.2),p.emit("intersectionchange",{ratio:Z}),Tt===p.hasState(se))return;let Ct=p.hasState(se)?"viewenter":"viewleave";p.emit(Ct)},0)})},{threshold:Zr});G.observe(g),p.on(Y,()=>G.disconnect()),Ee(p,"viewenter",function(){!k.should_resume||!f.autopause||kr()||p.opts.autoplay&&!p.readyState||p.togglePlay(!0)}),Ee(p,"viewleave",function(){if(!f.autopause||kr())return;let U=!p.paused;k.locked=!0,p.pause(),setTimeout(function(){k.should_resume=U,k.locked=!1},0)})}function kr(){return o.find((f)=>f.hasState("is-casting"))}function Ks(f,g){if(!window.ResizeObserver)return;let p=new ResizeObserver((k)=>{let O=k[k.length-1];g.emit("resize",O)});p.observe(f),g.on(Y,()=>p.disconnect())}function Ws(f){if(typeof f=="number"&&!isNaN(f))return Number(f);if(typeof f=="string"){let g=f.split(":");return Number(g[1])/Number(g[0])}return f}function Fn(f,g,p){let k=!!f.ratio,O=document.createElement("div");O.classList.add("fp-ratio"),g.append(O);let $=Ws(f.ratio||0.5625);O.style.paddingTop=100*$+"%";let G=[b,tt];p.on(G,function(){if(k)return;let U=p.videoHeight&&p.videoWidth&&p.videoHeight/p.videoWidth;U&&p.setOpts({ratio:U})}),p.on(nt,function(){let U=p.videoHeight&&p.videoWidth&&p.videoHeight/p.videoWidth,j=Ws((f==null?void 0:f.ratio)||U||0.5625);$!==j&&($=j,O.style.paddingTop=100*j+"%")})}class tn{constructor(){this.cleanUp=this.cleanUp.bind(this),this.render=this.render.bind(this),this.wireUp=this.wireUp.bind(this)}init(f,g,p){this.root=g,this.player=p,this.wireUp()}wireUp(){var f,g;this.cleanUp(),(f=this.player)===null||f===void 0||f.once(st,this.render),(g=this.player)===null||g===void 0||g.once(D,this.wireUp)}cleanUp(){var f,g,p,k;(g=(f=this._logo)===null||f===void 0?void 0:f.parentElement)===null||g===void 0||g.removeChild(this._logo),(p=this.player)===null||p===void 0||p.off(st,this.render),(k=this.player)===null||k===void 0||k.off(D,this.wireUp)}render(){var f,g,p;(g=(f=this._logo)===null||f===void 0?void 0:f.parentElement)===null||g===void 0||g.removeChild(this._logo);let k=((p=this.root)===null||p===void 0?void 0:p.querySelector(".fp-ui"))||this.root;if(!k)return;let O=this._logo=document.createElement("a");O.href="https://explorer.flowplayer.com",O.target="_blank",Object.entries(no).forEach(([$,G])=>{O.style.setProperty($,G,"important")}),k.appendChild(O)}}tn.pluginName="explorer-plan";let no={display:"block",opacity:"1",visibility:"visible",width:"33%","padding-top":"9%",position:"absolute","z-index":"9999",bottom:"25%",left:"10%","background-size":"cover","background-image":"url(https://static.flowplayer.com/explorer/explorer.svg)"},Ys="flowplayer/"+st;function js(f){let g=(p)=>{p.detail!==f&&f.opt("multiplay")===!1&&f.togglePlay(!1)};f.on(Y,()=>document.removeEventListener(Ys,g)),document.addEventListener(Ys,g)}function Un(f,g){let p=[];f.addEventListener("contextmenu",(k)=>{let O=k.timeStamp;for(p.push(O);p.length>3;)p.shift();p.length>=3&&p.every(($)=>$-O<3000)&&(console.debug("flowplayer/debug rendering info"),function($,G){var U;(function(Ct){let Ht=Ct.querySelector(".debug-info");Ht==null||Ht.remove()})($);let j=document.createElement("div");j.classList.add("debug-info");let Z=zs("flowplayer.version","3.29.0");j.append(Z);let Tt=(U=G==null?void 0:G.hls)===null||U===void 0?void 0:U.constructor;if(Tt&&Tt.version){let Ct=zs("hls.version",Tt.version);j.append(Ct)}$.appendChild(j)}(f,g))})}let zs=(f,g)=>{let p=document.createElement("div");p.classList.add("row",f);let k=document.createElement("span");k.classList.add("attr"),k.textContent=f;let O=document.createElement("span");return O.textContent=g,O.classList.add("value"),p.append(k,O),p};function so(f,g){let p=function(){try{return localStorage.getItem("flowplayer/debug")}catch(O){return""}}(),k=(O,...$)=>{try{let G=(g==null?void 0:g.debug)||p;G&&f.match(G)&&console.log(`flowplayer/${f} -- ${O}`,...$)}catch(G){console.warn(G)}};return k.log=k,k}let Nl="without_recovery",qs="off";class Ti extends Error{static getErrorKey(f){return f in Rn?Rn[f]:Rn["00-00"]}constructor(f,g,p={}){super(f),this.message=f,this.flowplayerErrorCode=g,this.config=p,this.id=zi(),this.isFatal=!!p.isFatal,this.errorKey=Ti.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}let dr=so("core/retry");function ao(f,g){let p={pending:void 0,count:0};f.on("flowplayer:error",(k)=>{var O,$,G,U,j;let Z=(O=k.detail)===null||O===void 0?void 0:O.error;Z.config.isRetry=!!p.count,p.pending===void 0&&((G=($=Z.config)===null||$===void 0?void 0:$.retryOpts)===null||G===void 0?void 0:G.retry)!==qs&&(g.retry||((j=(U=Z.config)===null||U===void 0?void 0:U.retryOpts)===null||j===void 0?void 0:j.retry))&&(++p.count,p.pending=function(Tt,Ct,Ht){var ae,ge;return setTimeout(()=>{var te;Tt.hasState("is-destroyed")||(Ct.pending=void 0,((te=Ht.config.retryOpts)===null||te===void 0?void 0:te.retry)!==Nl&&Tt.emit("recover"),Tt.emit("retry",{error:Ht}),dr("%s try",Ct.count))},(ge=(ae=Ht.config.retryOpts)===null||ae===void 0?void 0:ae.retryTimeout)!==null&&ge!==void 0?ge:3000*Ct.count)}(f,p,Z))}),f.on(st,()=>{p.count=0}),f.on(["src","recover"],(k)=>{k.type==="src"&&(p.count=0),clearTimeout(p.pending),p.pending=void 0}),f.on("retry",qi(()=>{f.load()}))}let hr="rebuffer",en="rebuffer:ended",Bn="insights:ttff",$n="insights:time_to_first_frag_loaded",rn="insights:watched_interval";var oo=Object.freeze({__proto__:null,RECORD:"health:record",REBUFFER:hr,REBUFFER_ENDED:en,DISPLAY:"display",TIME_TO_FIRST_FRAME:Bn,TIME_TO_FIRST_FRAGMENT_LOADED:$n,WATCHED_INTERVAL:rn});let lo=[ot,"error","src"];function Xs(f){try{return!!new URL(f)}catch(g){return!1}}let Gn=navigator;function co(f){var g,p;let k=(g=f.hls)===null||g===void 0?void 0:g.bandwidthEstimate;return k?0.000001*k:((p=Gn.connection)===null||p===void 0?void 0:p.downlink)||-1}function Js(f,g){return async function(p,k){try{await fetch(p,{body:k,method:"POST",mode:"no-cors"})}catch(O){}}(f,JSON.stringify({events:g}))}let uo=(f)=>{switch(f){case!0:return Oi.ON;case!1:return Oi.OFF;default:return f}};function Cr(){try{let f=window.location!==window.parent.location?document.referrer:document.location.href;return typeof f=="string"&&f.slice(0,200)}catch(f){return!1}}let nn=[],Dr="https://ihi.flowplayer.com/v1/health/events";function fr(f){if(f.suspended)return;let g=nn.slice(0);nn.length=0,g.length!=0&&(f.logger.log(`:dispatch events={${g.length}}`),Js(function(){try{return typeof window>"u"?Dr:window.__FLOWPLAYER_INSIGHTS_URL?window.__FLOWPLAYER_INSIGHTS_URL:Dr}catch(p){return Dr}}(),g))}async function je(f,g,p){let k=await Fi();nn.push(Object.assign(g,k)),f.logger.log(":enqueue",g.event,g),nn.length<10&&!p||fr(f)}let Qs=()=>{var f,g;try{let p=window;return(g=(f=p==null?void 0:p.google)===null||f===void 0?void 0:f.ima)===null||g===void 0?void 0:g.VERSION}catch(p){return}},Fi=async()=>({client_time:Date.now()}),sn=(f,g)=>Object.assign(f,{detail:g}),De=(f,{event:g,media_session_id:p,session_id:k,play_range_id:O})=>({event:g,media_session_id:p,session_id:k,play_range_id:O,device_id:f.deviceId(),version:"3.29.0",commit:"ba3e93d888af5a53636ba363126fa480ae120a54",ima_sdk_version:Qs(),preload:f.opt("preload"),autoplay:uo(f.opt("autoplay")),live:f.opt("live"),dvr:!!f.live_state.dvr,source:f.original_src,downlink_mbs:co(f),page_url:Cr(),player_id:f.opt("metadata.player_id"),media_id:f.opt("metadata.media_id")||f.opt("metadata.stream_target_id"),site_id:f.opt("metadata.site_id"),category_id:f.opt("metadata.category_id"),sitegroup_id:f.opt("metadata.sitegroup_id"),token:f.token,plugins:f.plugins.map(($)=>$.constructor.name).sort(($,G)=>$.localeCompare(G)),current_time:f.currentTime,external_media_id:f.opt("external_media_id")}),mr=(f)=>({bitrate:f==null?void 0:f.bitrate,resolution:f==null?void 0:f.attrs.RESOLUTION,frame_rate:f==null?void 0:f.attrs["FRAME-RATE"]});function Zs(f,g,p,k){let O=De(g,f.eventInfo(p)),{before:$,after:G}=k;je(f,((U,j,Z)=>Object.assign(U,{state:{before:j,after:Z}}))(O,mr($),mr(G)))}let ta=(f,g)=>{let p=null;return(...k)=>{p!==null&&(clearTimeout(p),p=null),p=setTimeout(()=>g(...k),f)}};var Ae;(function(f){f[f.Starting=0]="Starting",f[f.ConfigFinalized=1]="ConfigFinalized",f[f.TimerStartedWithAutoplay=2]="TimerStartedWithAutoplay",f[f.TimerStartedWithUserGesture=3]="TimerStartedWithUserGesture",f[f.MetricReported=4]="MetricReported"})(Ae||(Ae={}));let gr=[v,"touchend"];class ea{constructor(f=Ae.Starting,g=!1){this.state=f,this.loadedAd=g}reset(){this.state=Ae.Starting,this.loadedAd=!1,this.start=void 0,this.end=void 0,this.adDetails=void 0}adInfo(){let{ad_tag_id:f,vast_ad_id:g}=this.adDetails||{};return{ad_tag_id:f,vast_ad_id:g}}toJSON(){return Object.assign({ad_was_requested:this.loadedAd,ms_to_first_frame:Math.round(this.end&&this.start?this.end-this.start:-1)},this.adInfo())}startTimer(f){this.state==Ae.ConfigFinalized&&(this.state=f,this.start=performance.now())}hasStarted(){return[Ae.TimerStartedWithAutoplay,Ae.TimerStartedWithUserGesture].includes(this.state)}stopTimer(f){this.hasStarted()&&(this.end||(this.end=performance.now()),this.state=Ae.MetricReported,f())}}function Hn(f){return Math.round(1000*f)/1000}class ia{constructor(f){this.tickInterval=f,this.ewma=0,this.startTime=Date.now()}decay(){let f=Date.now()-this.startTime;return Math.pow(2,-f/(4*this.tickInterval))}update(f){let g=this.decay();return this.ewma=g*this.ewma+(1-g)*f,this.ewma}toJSON(){return this.ewma}}let Pl={skipUnreliableSegments:!0};class Xi{constructor(f){this.player=f,this.marchingInterval=void 0,this.lastWatchedPoint=void 0,this.watchedSum=0,this.lastReportedSum=0,this.ewmaTickWatched=new ia(Xi.AccuracyMilliseconds)}reset(){this.onNotWatching(),this.watchedSum=0,this.lastReportedSum=0,this.lastWatchedPoint=void 0}onNotWatching(){this.marchingInterval&&(this.updateWatched(),this.marchingInterval=clearInterval(this.marchingInterval))}onWatching(){this.marchingInterval||(this.lastWatchedPoint=this.createWatchedPoint(),this.marchingInterval=setInterval(()=>{this.updateWatched()},Xi.AccuracyMilliseconds))}createWatchedPoint(){return{currentTime:this.player.currentTime,paused:this.player.paused}}updateWatched(){let f=this.createWatchedPoint();this.lastWatchedPoint&&this.calculateTimeWatched(this.lastWatchedPoint,f),this.lastWatchedPoint=f}calculateTimeWatched(f,g){var p,k;let O=g.currentTime-f.currentTime,$=this.ewmaTickWatched.update(O);if(!(O<0)&&!(((k=(p=this.player.opts)===null||p===void 0?void 0:p.health)===null||k===void 0?void 0:k.skipUnreliableSegments)!==!1&&1000*O>1.3*Xi.AccuracyMilliseconds)&&(this.watchedSum+=O,this.watchedSum!=this.lastReportedSum&&(this.watchedSum>this.lastReportedSum+Xi.ReportingIntervalSeconds||this.player.ended))){let G=Hn($),U={total_watched_seconds:Hn(this.watchedSum),tick_watched_seconds:G,batch_watched_seconds:Hn(this.watchedSum-this.lastReportedSum)};this.lastReportedSum=this.watchedSum,this.player.emit(rn,U)}}}Xi.ReportingIntervalSeconds=5,Xi.AccuracyMilliseconds=160;let xl=zi();class Be{constructor(f,g){let p;this.session_id=xl,this.suspended=!1,this.logger=so("health",g.opts),this.media_session_id=zi(),this.play_range_id=zi(),this.analyticsLoop=setInterval(()=>fr(this),2000),g.on(Y,()=>clearInterval(this.analyticsLoop)),g.on(st,()=>{p!==this.media_session_id&&(p=this.media_session_id,this.first_playing_event_timestamp=Date.now()),this.play_range_id=zi()});let k=Date.now()-1000;g.on("timeupdate",($)=>{if(p!==this.media_session_id)return;let G=Date.now();if(G<k)return;k=Date.now()+5000;let U=De(g,this.eventInfo($.type)),j=sn(U,{duration:(Z=g.duration,Number.isFinite(Z)?Z:Z===1/0?-1:void 0)});var Z;this.first_playing_event_timestamp&&(Object.assign(j,{ms_since_first_playing:G-this.first_playing_event_timestamp}),this.first_playing_event_timestamp=void 0),je(this,j)});let O=this;if(g.health={get media_session_id(){return O.media_session_id},set media_session_id($){O.media_session_id=$},get session_id(){return O.session_id},set session_id($){O.session_id=$},toggle($){$?O.resume():O.suspend()}},!Be._UNLOAD_SUBSCRIBED){Be._UNLOAD_SUBSCRIBED=!0;let $=(G)=>f.instances.forEach((U)=>U.emit(G.type));document.addEventListener("visibilitychange",(G)=>{document.visibilityState=="hidden"&&$(G)}),window.addEventListener("pagehide",$)}}eventInfo(f){return{event:f,media_session_id:this.media_session_id,session_id:this.session_id,play_range_id:this.play_range_id}}suspend(){this.suspended=!0,clearInterval(this.analyticsLoop)}resume(){this.suspended=!1,this.analyticsLoop=setInterval(()=>fr(this),2000)}init(f,g,p){if(Cr().toString().startsWith("data:"))return this.suspend();(function(k){let O=null,$=()=>{O=null};k.on(Et,function(G){k.seeking||k.networkState===k.NETWORK_LOADING&&(k.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||k.emit(hr))}),k.on(hr,(G)=>{O=G}),k.on(q,(G)=>{if(O){let U=G.timeStamp-O.timeStamp;if($(),U<31)return;if(U>300000)return;k.emit(en,{rebuffer_duration:U/1000})}}),lo.forEach((G)=>k.on(G,$))})(p),function(k){let O;[q,ot].forEach(($)=>{k.on($,(G)=>{let U=Date.now();switch(G.type){case ot:return O=U;case q:if(O)return k.emit($n,{ms_since_loading_started:U-O}),O=null}})})}(p),function(k){if(window.performance===void 0)return;let O=new ea;k.on("src",()=>{if(!k.opt("metadata.media_id"))return O.reset();O.reset(),O.state=Ae.ConfigFinalized}),k.on(ot,()=>{(k.root.classList.contains("ad-hide-first-frame")||k.opt("autoplay"))&&O.startTimer(Ae.TimerStartedWithAutoplay)}),gr.forEach(($)=>{k.on($,()=>{k.opt("autoplay")||O.startTimer(Ae.TimerStartedWithUserGesture)})}),k.on("ad-requested",()=>{O.loadedAd=!0}),k.on("timeupdate",()=>{if(!(k.readyState<HTMLMediaElement.HAVE_CURRENT_DATA)){if(k.root.classList.contains("ad-hide-first-frame"))return!O.end&&(O.end=performance.now());switch(O.state){case Ae.TimerStartedWithAutoplay:case Ae.TimerStartedWithUserGesture:return O.stopTimer(()=>k.emit(Bn,O.toJSON()))}}}),k.on("ad-started",($)=>{switch(O.end=void 0,O.adDetails=$.detail,O.state){case Ae.TimerStartedWithAutoplay:case Ae.TimerStartedWithUserGesture:return O.stopTimer(()=>k.emit(Bn,O.toJSON()))}})}(p),function(k){let O=new Xi(k);k.on(ot,()=>O.reset()),k.on(st,()=>O.onWatching()),k.on(en,()=>!k.paused&&O.onWatching()),k.on(hr,()=>O.onNotWatching()),k.on(K,()=>O.onNotWatching()),k.on(x,()=>O.onNotWatching()),k.on(D,()=>O.updateWatched()),k.on("visibilitychange",()=>O.updateWatched())}(p),p.on("display",(k)=>{je(this,De(p,this.eventInfo(k.type)),!0)}),p.on("health:record",({detail:k})=>{let O=De(p,this.eventInfo(k.event));Object.assign(O,k.detail||{}),je(this,O)}),[N,tt,b,H,Et,hr].forEach((k)=>{p.on(k,(O)=>{je(this,De(p,this.eventInfo(O.type)))})}),[en,Bn,$n,rn].forEach((k)=>{p.on(k,(O)=>{let $=De(p,this.eventInfo(O.type));je(this,Object.assign($,O.detail))})}),[st,K,x,B,D,L,M,q,ot].forEach((k)=>{p.on(k,(O)=>{je(this,De(p,this.eventInfo(O.type)))})}),p.on("volumechange",ta(800,(k)=>{let O=De(p,this.eventInfo(k.type));je(this,sn(O,{volume:parseFloat(p.volume.toFixed(2)),muted:p.muted}))})),p.on("resize",ta(800,(k)=>{let O=De(p,this.eventInfo(k.type));je(this,sn(O,{height:g.clientHeight,width:g.clientWidth}))})),p.on("hls/failover",(k)=>{let O=De(p,this.eventInfo(k.type)),$=k.detail,{reason:G,from:U}=$;je(this,sn(O,{reason:G,from:U}))}),p.on("qualitychange",({type:k,detail:O})=>{switch(O.plugin){case"hls":return Zs(this,p,k,O)}}),p.on("flowplayer:error",(k)=>{let O=De(p,this.eventInfo(k.type)),$=k.detail.error;if(!$)return je(this,O,!0);return je(this,sn(O,$.toJSON()),!0)}),p.on("src",(k)=>{var O;let $=(O=k.detail)===null||O===void 0?void 0:O.src;if(typeof $!="string")return;if(!Xs(p.original_src))return;if(!Xs($))return;if($==p.original_src)return;this.media_session_id=zi(),je(this,De(p,this.eventInfo(k.type))),fr(this),p.setOpts({health:Object.assign(Object.assign({},p.opts.health),Pl)})}),p.on("visibilitychange",(k)=>{je(this,De(p,this.eventInfo(k.type))),fr(this)})}}function _i(f,g){return function(p){return p.extensions.reduce((k,O)=>k.find(($)=>$.pluginName===O.pluginName)?(console.warn("flowplayer: duplicate plugin %s detected, plugin names should be unique",O.name),k):(k.push(O),k),[])}(f).map((p)=>new p(f,g))}function Ir(f){f.on("error",qi((g)=>{let p=g instanceof MediaError?g:f.error;p&&f.emit("flowplayer:error",{error:Or(p,{resource:f.original_src})})}))}function Or(f,g={}){var p,k,O,$,G,U;switch(f.code){case MediaError.MEDIA_ERR_ABORTED:return new Ti((p=f.message)!==null&&p!==void 0?p:"The playback was aborted, typically by the user.",Ft.PlaybackInternalAborted,Object.assign({isFatal:!1,retryOpts:{retry:qs}},g));case MediaError.MEDIA_ERR_NETWORK:return new Ti((k=f.message)!==null&&k!==void 0?k:"A network error prevented media from being downloaded.",Ft.NetworkHttpRequestFailed,Object.assign({isFatal:!0},g));case MediaError.MEDIA_ERR_DECODE:return new Ti((O=f.message)!==null&&O!==void 0?O:"An error occurred while decoding the media.",Ft.PlaybackVideoDecodeError,Object.assign({isFatal:!0},g));case MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED:return new Ti(($=f.message)!==null&&$!==void 0?$:"The media could not be loaded because the format is not supported.",Ft.MediaUnsupportedVideoFormat,Object.assign({isFatal:!0},g));case 5:return new Ti((G=f.message)!==null&&G!==void 0?G:"Encrypted content could not be played due to missing keys or unsupported protection scheme.",Ft.ContentProtectionKeySystemNoKeys,Object.assign({isFatal:!0},g));default:return new Ti((U=f.message)!==null&&U!==void 0?U:"An unknown playback error occurred.",Ft.PlaybackUnknown,Object.assign({isFatal:!0},g))}}Be.pluginName="health",Be.events=oo,Be._UNLOAD_SUBSCRIBED=!1;let ho=function(){let f=to(),g=f.flowplayer?f.flowplayer:{extensions:[]};return Array.isArray(g.extensions)||(g.extensions=[]),g}();function ze(f,g){if(typeof f=="function")return n.push(...[...arguments].filter((j)=>typeof j=="function")),ze;typeof g=="string"&&(g={src:g}),g||(g={}),g.token||typeof window.__FLOWPLAYER_TOKEN!="string"||(g.token=window.__FLOWPLAYER_TOKEN);let p=typeof f=="string"?document.querySelector(f):f;if(!p)return console.error(Error("Flowplayer: '"+f.toString()+"' not found"));let k=p.querySelector("video.fp-engine");if(k)return k;let O=eo(g.token);if(!O.success)return Gs({root:p,data:{reason:"token",details:O.message}});let $=new Map,G=Ol(g,p);G.reaper=$,G._customElements=zr,Object.defineProperty(G,"token",{value:typeof g.token=="string"?Si.id(g.token):"",writable:!1}),G.addEventListener(Y,()=>{$.clear(),G.reaper=0,delete G.root}),G.root=p,g.token&&ai.from_token(g.token).is_granted(ai.permissions.DEVELOPER_PLAN)&&n.push(tn),!~o.indexOf(G)&&o.push(G),Za(g,p,G),G.setAttrs(g),G.plugins=_i(ze,G),xn(g,p,G),Ml(g,p,G),Ks(p,G),Fn(g,p,G),js(G),Un(p,G),ao(G,g),Ir(G),G.plugins.forEach((j)=>{try{j.init(g,p,G)}catch(Z){console.log("Error(plugin/%s)",j.constructor.name,Z)}}),G.setOpts(g),G.opts=g,g.src&&G.setSrc(g.src);let U=G.readyState;return U>0&&G.currentSrc&&G.emit(tt),U>2&&G.currentSrc&&G.emit(q),G.emit("mount"),G.on("error:fatal",function(j){Gs({root:p,video:G,data:j.data||{}})}),setTimeout(mi,0,document,"flowplayer:player:created",G),G}Object.assign(ze,ho),function(f){Array.isArray(f.extensions)&&f.extensions.forEach((g)=>n.push(g)),f.customElements=zr,f.defaultElements=ve,f.version="3.29.0",f.commit="ba3e93d888af5a53636ba363126fa480ae120a54",f.instances=o,f.extensions=n,f.support=d,f.events=St,f.states=or,f.errors=Ft,f.jwt=ni,f.autoplay=Oi,f.quality=ye}(ze),typeof document=="object"&&setTimeout(mi,0,document,"flowplayer:umd",ze),ze.extensions.unshift.apply(ze.extensions,[Be]);let an=(...f)=>f.reduce((g,p)=>Object.assign(Object.assign({},g),p),{}),pr=(f,g)=>{let p=f.lastIndexOf(g);return~p&&f.splice(p,1),f};class de{static of(){return new de}static is_empty(f){return f.pending.length==0}static is_high_water(f){return f.open.length==de.MAX_OPEN_REQUESTS}static maybe_spawn_req(f){if(de.is_empty(f))return f;if(de.is_high_water(f))return f;try{let g=de.lpop(f);g&&de.request(f,g)}catch(g){}}static increment_failures(f){return f.stats.failures++,f.stats.failures>de.MAX_FAILURE_COUNT&&(f.stats.ttl=Date.now()+de.REQUEST_TTL_MS),f}static handle_error(f,g){de.rm(f,g),de.increment_failures(f)}static request(f,[g,p,k]){if(Date.now()<f.stats.ttl)return;let O=new XMLHttpRequest;f.open.push(O),O.timeout=de.REQUEST_TIMEOUT_MS,O.ontimeout=function(){de.handle_error(f,O)},O.onerror=function($){de.handle_error(f,O)},O.onreadystatechange=function(){O.readyState==XMLHttpRequest.DONE&&de.rm(f,O),Math.floor(O.status/100)},O.onload=function(){de.rm(f,O),f.stats.failures&&f.stats.failures--},O.open(p,g),O.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{O.send(JSON.stringify(k))}catch($){}}static rpush(f,...g){return g.forEach((p)=>{f.pending.length>=de.MAX_PENDING||(f.pending.push(p),de.maybe_spawn_req(f))}),f}static lpop(f){return f.pending.shift()}static rm(f,g){return pr(f.open,g),f}constructor(){this.pending=[],this.open=[],this.stats={failures:0,ttl:0}}}de.MAX_OPEN_REQUESTS=3,de.MAX_PENDING=5,de.REQUEST_TIMEOUT_MS=4000,de.REQUEST_TTL_MS=5000,de.MAX_FAILURE_COUNT=3;var ra=de.of();let Vn=/:([a-zA-Z_]+)/g;class $e{static prepare(f,g){let p=document.createEvent("Event");return p.initEvent(f,!1,!0),p.ns=f,p.data=g,p}static of(f){return new $e(f)}constructor(f){this.emitter=f}info(f){this.emitter.dispatchEvent($e.prepare($e.NAMESPACE.INFO,f))}error(f){this.emitter.dispatchEvent($e.prepare($e.NAMESPACE.ERROR,f))}warn(f){this.emitter.dispatchEvent($e.prepare($e.NAMESPACE.WARN,f))}}var na;$e.NAMESPACE={INFO:"tracker:info",ERROR:"tracker:err",WARN:"tracker:warn"},function(f){f.POST="POST",f.PUT="PUT",f.GET="GET"}(na||(na={}));class Jt{static of(f,g){return new Jt(f,g)}static ensure_required_keys(f,g){return f.required_keys.filter((p)=>!(p in g))}static pluck_valid_keys(f,g){return((p,...k)=>Object.keys(p).filter((O)=>~k.indexOf(O)).reduce((O,$)=>an(O,{[$]:p[$]}),{}))(g,...f.valid_keys)}static merge_metadata(f,g={}){return f.metadata=Jt.pluck_valid_keys(f,an(f.metadata,g)),f}static assert_emitter_api(f){if(typeof(f||{}).addEventListener!="function")throw Error("Tracker() received an emitter that does not implement the addEventListener method");if(typeof(f||{}).removeEventListener!="function")throw Error("Tracker() received an emitter that does not implement the removeEventListener method")}static create_listener(f,g,p){var k;f.listeners.push([g,p]),(k=f.emitter)===null||k===void 0||k.addEventListener(g,p)}constructor(f,g={}){let p=this;if(this.emitter=f,this.url=g.url,this.log=$e.of(this.emitter),this.verb=g.verb,this.metadata=an({},g.metadata||{}),this.rq=g.rq||ra,this.events=g.events||[],this.required_keys=g.required_keys||[],this.optional_keys=g.optional_keys||[],this.listeners=[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Jt.assert_emitter_api(this.emitter),Jt.verb[this.verb]===void 0)throw Error(`invalid HTTP verb[${this.verb}] passed`);if(typeof this.url!="string")throw Error(`invalid API url[${this.url}] passed`);Jt.TRACKERS.push(this),p.events.forEach((k)=>{Jt.create_listener(this,k,(O={})=>{let $=an(p.metadata,{event_type:k},O.data||O),G=function(Z,Tt){return Z.replace(Vn,(Ct)=>{let Ht=Ct.slice(1,Ct.length);return Ht in Tt?Tt[Ht].toString():Ct})}(p.url,$),U=Jt.pluck_valid_keys(p,$),j=Jt.ensure_required_keys(p,U);if(j.length)return p.log.error(`Tracker.validate_metadata() failed for
5
5
  Event[${k}]
6
6
  missing keys: ${j}
7
7
  payload:
8
- ${JSON.stringify(U,null,2)}`);this.rq&&de.rpush(this.rq,[H,this.verb,U])})})}destroy(){this.listeners.forEach(([f,g])=>{var p;return(p=this.emitter)===null||p===void 0?void 0:p.removeEventListener(f,g)}),delete this.rq,delete this.emitter,vn(Jt.TRACKERS,this)}put(f={}){return Jt.merge_metadata(this,f),this}}Jt.TRACKERS=[],Jt.QUEUE=na,Jt.verb=ra;var Nn="ping",or="display",Vr="view";let ho=["sitegroup_id","session_id","media_id","site_id","player_id","video_type"],Ol=["created","position"],Wr=["player_version","created","source","category","category_id","autoplay","muted","customer_user_id"];function sa(f,g){return f.duration/1===f.duration&&Object.assign(g,function(p){let k=p/100;return{segment_duration:k,breakpoints:Array(...Array(100)).map(function(M,$){return Math.floor($*k*1000)/1000})}}(f.duration))}function fo(f,g,p){if(!g.segment_duration&&!sa(f,g))return;let k=function(M,$,H){let U=$.last_idx,j=H?99:aa(M,$);return $.last_idx=j,j<=U?[]:$.breakpoints.slice(U,j==99?100:j).map(function(tt){return $.breakpoints.indexOf(tt)})}(f,g,p);k.length!=0&&f.emit(Nn,{position:k})}function aa(f,g){return Math.min(Math.floor(f.currentTime/g.segment_duration),99)}var oa;let Ai="vod",mo="live",go=[or,Nn,Vr];function Yr(f,g,p){switch(g==null?void 0:g.kind){case"live":return function(k,M){let $=Date.now();$-M.last_tracked_ts<60000||(M.last_tracked_ts=$,++M.ticks,k.emit(Nn,{position:60*M.ticks}))}(f,g);case"vod":return fo(f,g,typeof p=="boolean"&&p)}}function lr(f){let g=f.ads;return g!==void 0&&(g.schedule!==void 0&&(typeof g.hasPreroll=="function"&&(g.currentRequests?g.currentRequests:!!g.adPlaying||!(!g.hasPreroll()||g.nextIndex!=0))))}let Ml=((oa=class{init(g,p,k){if(!ai.from_token(g.token||"").is_granted(ai.permissions.ANALYTICS))return;if(k.hasState("consent-no-tracking"))return;if(k.analytics)return;let M=k.analytics={ticker:void 0,last_media_id:"",ended:!1},$={locked:void 0,ttl:6000,task:()=>{Yr(k,M.ticker)}},H={session_id:k.deviceId(),autoplay:k.autoplay,muted:k.muted,player_id:g.player_id,customer_user_id:g.customer_user_id,player_version:"3.29.0"},U=Jt.of(k,{verb:Jt.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:go,required_keys:ho,optional_keys:Wr.concat(Ol).slice(0),metadata:H});k.on(Y,function(){U&&U.destroy()}),k.on(st,function(tt){if(!U)return;let Tt=fi(tt,"data.metadata",{});if(!Tt.media_id&&Tt.stream_target_id&&(Tt.media_id=Tt.stream_target_id),!Tt.media_id)return;let Dt=fi(U,"metadata.media_id");if(Dt&&Tt.media_id==Dt)return;let Ht=fi(g,"analytics",{});U.put(Tt),U.put(Ht);let ae=fi(g,"metadata.live_start_time",g.live)?mo:Ai;U.put({video_type:ae,source:g.source||Cn()||""}),M.ticker=g.live?{ticks:0,last_tracked_ts:Date.now(),kind:"live"}:{last_idx:0,segment_duration:0,breakpoints:[],kind:"vod"},M.ended=!1,k.emit(or)});let j=0;k.on(nt,function(){if(!U)return;if(j||function(Tt,Dt){return Tt.metadata.media_id&&Tt.metadata.media_id==Dt.last_media_id}(U,M))return;U.put({muted:k.muted});let tt=lr(k);if(tt)return j=Promise.resolve(tt).then(function(){M.last_media_id=U.metadata.media_id,k.emit(Vr),j=0}).catch(function(){j=0});M.last_media_id=U.metadata.media_id,k.emit(Vr)}),k.on("timeupdate",function(){var tt;U&&(j||lr(k)||M.ended||(!g.live&&k.currentTime+0.25>=k.duration&&Yr(k,M.ticker,!0),(tt=$).locked||(tt.locked=setTimeout(function(){return tt.task(),function(Tt){return Tt.locked=void 0,Tt}(tt)},tt.ttl))))}),k.on(B,function(){U&&M.ticker&&M.ticker.kind=="vod"&&function(tt,Tt){sa(tt,Tt),Tt.last_idx=aa(tt,Tt)}(k,M.ticker)}),k.on(C,function(){U&&function(tt,Tt){Tt.ended||(Tt.ended=!0,Yr(tt,Tt.ticker))}(k,M)})}}).pluginName="analytics",oa),oi=function(f,g){if(typeof $o=="object"&&typeof Go<"u")return g;if(document.currentScript===null)return g;"flowplayer"in f||(f.flowplayer={extensions:[]});let p=f.flowplayer;return typeof p=="function"?(p(g),g):(Array.isArray(p.extensions)||(p.extensions=[]),~p.extensions.indexOf(g)||p.extensions.push(g),g)}(Za(),Ml);typeof window<"u"&&typeof window.matchMedia=="function"&&[Q,ct].forEach(function(f){window.matchMedia("(orientation: "+f+")").addListener(function(g){l.length&&l.forEach(function(p){g.matches&&p.emit(f)})})});let Zt=[N,"recover"];function la(f,g){let p=yi(g,"flowplayer-error");f.append(p),g.on("flowplayer:error",(k)=>{if(!document.body.contains(f))return;let M=k.detail.error;M.config.showErrorUI!==!1&&(M.isFatal||M.config.showErrorUI)&&(g.setState("is-error",!0),console.warn(M),mi(p,"flowplayer:error",{error:M}),mi(p,"error",{error:M}))}),Zt.forEach((k)=>g.on(k,()=>{(function(M){if(!M.hasState("is-error"))return;M.setState(Ve,!0),M.setState("is-error",!1)})(g)}))}var Fn=Object.freeze({__proto__:null,NO_FULLSCREEN:1,NO_VOLUME_CONTROL:2,NO_MUTE:4,LOGO_ON_RIGHT:8,USE_DRAG_HANDLE:16,USE_PLAY_2:32,USE_PLAY_3:64,USE_THIN_CONTROLBAR:128,NO_TITLE:256,NO_DESCRIPTION:512,NO_CONTROLS:1024,NO_DURATION:2048,NO_HEADER:4096,AUDIO_ONLY:8192,NO_TOUCH_ZONES:16384,LOGO_ON_BOTTOM:32768});function Pn(f,g,p){let k=()=>document.fullscreenElement,M="fullscreenchange";if(!Element.prototype.requestFullscreen){let H=Element.prototype,U=document;H.webkitRequestFullScreen&&(H.requestFullscreen=H.webkitRequestFullScreen,U.fullscreenEnabled=!0),U.webkitCancelFullScreen&&(document.exitFullscreen=U.webkitCancelFullScreen),M="webkit"+M,k=()=>U.webkitCurrentFullScreenElement}let $=()=>p.getFullsceenTarget?p.getFullsceenTarget():g;p.toggleFullScreen=function(H,U){if(p.ios_fullscreen_disabled)return;if(typeof H!="boolean"&&(H=!p.hasState("is-fullscreen")),xn(p)&&(H?function(tt,Tt){tt.getAttribute("playsinline")&&tt.removeAttribute("playsinline"),tt.getAttribute("webkit-playsinline")&&tt.removeAttribute("webkit-playsinline"),Tt||tt.webkitEnterFullScreen()}(p,U):function(tt,Tt){tt.getAttribute("playsinline")||tt.setAttribute("playsinline",""),tt.getAttribute("webkit-playsinline")||tt.setAttribute("webkit-playsinline",""),Tt||tt.webkitExitFullScreen(),tt.togglePlay(!1),tt.hasState(At)||tt.setState(At,!0)}(p,U)),!document.fullscreenEnabled)return;let j=$();if(H)return j.requestFullscreen();k()===j&&document.exitFullscreen()},xn(p)&&(p.ios_fullscreen_disabled=!0,p.once("beforeplay",function(){p.ios_fullscreen_disabled=!1}),p.on(["webkitendfullscreen","webkitbeginfullscreen"],(H)=>{let U=H.type==="webkitbeginfullscreen";p.setState("is-fullscreen",U).emit(U?L:O).toggleFullScreen(U,!0)})),setTimeout(()=>{let H=$();H.addEventListener(M,function(){let U=k(),j=U===H||U==p;p.emit(j?L:O),p.setState("is-fullscreen",j)})},0),f.doubleclick!==!1&&g.addEventListener(E,function(H){var U;H.target&&((U=H.target)===null||U===void 0?void 0:U.classList.contains("fp-ui"))&&p.toggleFullScreen()})}function xn(f){return!document.fullscreenEnabled&&typeof f.webkitEnterFullScreen=="function"&&typeof f.webkitExitFullScreen=="function"}function xi(f,g,p){if(!p.reaper)return;let k=document.createDocumentFragment(),M=yi(p,Ft),$=yi(p,$t);g.append($),k.append(M),p.reaper.set("ui",M),~g.className.indexOf("use-play-")||g.classList.add("use-play-1"),function(j,tt,Tt){let Dt=ti("fp-footer");tt.append(Dt),Tt.on(st,function(Ht){var ae,ge;let te=(ae=Ht.data)===null||ae===void 0?void 0:ae.description,Ge=(ge=Ht.data)===null||ge===void 0?void 0:ge.title;if(Dt.innerHTML="",typeof Ge=="string"){let ii=ti("fp-title");ii.innerText=Ge,Dt.append(ii)}if(typeof te=="string"){let ii=te.split(" "),Bn=ti("fp-desc");for(Bn.innerText=ii.join(" "),Dt.append(Bn);ii.length>1&&Bn.scrollHeight>Bn.offsetHeight;)ii.pop(),Bn.innerText=ii.join(" ")+"..."}})}(0,g,p),la(M,p),g.appendChild(k);let H=null;[R,T,A].forEach((j)=>{g.addEventListener(j,function(tt){if(!p.hasState("is-touch-device")||tt.type===T){if(clearTimeout(H),tt.type===A)return p.setState(Xt,!1);p.setState(Xt,!0),H=setTimeout(function(){p.setState("is-hovered",!1)},2000)}})}),Pn(f,g,p),p.on("volumechange",function(){let j=p.volume==0||p.muted;p.muted=j,p.setState("is-muted",j),p._storage.setItem("mute",j.toString())}),p._storage.getItem("mute")=="true"&&(p.muted=!0,p.setState("is-muted",p.muted));let U=p._storage.getItem("volume");U&&!isNaN(Number(U))&&(p.volume=Number(U)),p.emit("volumechange"),p.on("dvr/window",(j)=>{f.live&&(p.live_state.dvr=p.seekable.length>0&&function(tt,Tt,Dt){if(Tt==0)return!0;let Ht=ie(tt,Dt);return Ht.head-Ht.tail>=Tt}(p,f.seconds_to_dvr||60,j.detail),p.live_state.dvr_window=j.detail)}),p.on("live",()=>{let j=setInterval(()=>{if(p.opts.live&&!p.hasState("is-error")&&p.reaper!=0||clearInterval(j),p.seekable.length==0)return;let tt=function(Tt){let Dt=Tt.currentTime,Ht=ie(Tt);return{progress:Math.min(100,Math.max(0,(Dt-Ht.tail)/(Ht.head-Ht.tail)*100)),is_live:Dt-Ht.head>=-10}}(p);p.hasState(Di)==tt.is_live&&p.setState(Di,!tt.is_live),p.live_state.dvr&&p.emit("dvr",tt.progress)},200)}),p.on(X,function(){p.setOpts({live:Ue(p)})}),p.on("durationchange",function(j){let tt=Ue(p),Tt=tt?bi(p):j.data||p.duration;isNaN(Tt)||p.setOpts({live:tt,duration:Tt})}),p.on(["playlist/advance","src"],(j)=>{if(p.setState("is-autoplay",!!f.autoplay),p.root.classList.contains("is-livecountdown"))return cr(p,f);(p.currentSrc||p.srcObject)&&(j.type==="src"&&["is-playlist",di].some((tt)=>p.root.classList.contains(tt))||cr(p,f))}),p.on(st,function(j){var tt,Tt;f.seekable=((tt=j==null?void 0:j.data)===null||tt===void 0?void 0:tt.seekable)===void 0||j.data.seekable;let Dt=(Tt=j.data)===null||Tt===void 0?void 0:Tt.ui;if(typeof Dt!="number")return;let Ht=g.classList;Ht.toggle("use-play-1",!(32&Dt||64&Dt)),Ht.toggle("use-play-2",(32&Dt)>0),Ht.toggle("use-play-3",(64&Dt)>0),Ht.toggle("use-thin-controlbar",(128&Dt)>0),Ht.toggle("no-title",(256&Dt)>0),Ht.toggle("no-description",(512&Dt)>0),Ht.toggle("logo-on-right",(8&Dt)>0),Ht.toggle("logo-on-bottom",(32768&Dt)>0),Ht.toggle("use-drag-handle",(16&Dt)>0),Ht.toggle("no-controls",(1024&Dt)>0),Ht.toggle("no-duration",(2048&Dt)>0),Ht.toggle("no-header",(4096&Dt)>0),Ht.toggle("no-mute",(4&Dt)>0),Ht.toggle("no-volume",(2&Dt)>0),Ht.toggle("no-fullscreen",(1&Dt)>0),Ht.toggle("no-touch-zones",(16384&Dt)>0)})}function cr(f,g){delete g.live_start_time,f.setOpts({live:!1}),f.live_state.dvr=void 0,f.live_state.dvr_window=void 0,delete g.live,delete g.poster,delete g.duration,delete g.title,delete g.description,"metadata"in g&&delete g.metadata}function ur(f,g,p){if(ai.from_token(f.token||"").is_granted(ai.permissions.NO_METERING))return;Si.id(f.token||"")&&p.once(nt,async()=>await async function k(M,$){let H=Si.id($||"");if(M.once("src",()=>{M.once(nt,()=>k(M,$))}),(await fetch("https://pmi.flowplayer.com/in",{method:"POST",body:JSON.stringify({token_id:H,factor:1,rnd:Math.random().toString(36).substring(2)})})).status==401)return M.emit("error:fatal",{reason:"token",details:"The token online validation failed"})}(p,f.token||""))}var Un={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertisement"},audio:{button_txt:"Audio",menu_title:"Audio"},core:{exit_fullscreen:"Exit fullscreen",fullscreen:"Fullscreen",mute:"Mute",pause:"Pause",play:"Play",unmute:"Unmute",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Up next"},qsel:{menu_title:"Quality"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"The text is now on your clipboard",embed:"Embed",link:"Link",menu_title:"Share"},speed:{menu_title:"Speed"}};class Li{init(f,g,p){p.reaper&&p.reaper.set("translations",Bs(Li,f,"en"))}}Li.pluginName="i18n",Li.en=Un;class fe extends HTMLElement{constructor(f){super(),this.player=f}}class dr extends fe{constructor(f){super(f),this.classList.add("fp-logo");let g={logo:""};f.on(st,(p)=>{var k;let M=g.logo,$=((k=p==null?void 0:p.data)===null||k===void 0?void 0:k.logo)||"";M!=$&&(g.logo=$,this.set_logo($,p.detail.logo_alt_text,p.detail.logo_href))})}set_logo(f,g,p){this.innerHTML="";let k=document.createElement("img");if(!f)return;if(k.src=f,g&&(k.alt=g),!p)return this.append(k);let M=document.createElement("a");M.href=p,M.append(k),this.append(M)}}class jr extends fe{constructor(f){super(f),this.classList.add("fp-duration"),f.on(st,(g)=>{var p;let k=((p=g==null?void 0:g.data)===null||p===void 0?void 0:p.duration)||NaN;this.innerText=isFinite(k)?Mi(k):""})}}let wi={name:"fp-fullscreen",translation_key:"core.fullscreen"},zr={name:"fp-fullscreen-exit",translation_key:"core.exit_fullscreen"},Nl={name:"fp-play",translation_key:"core.play"},po={name:"fp-pause",translation_key:"core.pause"},vo={translation_key:"core.mute",name:"fp-volume-mute-unmute"},ca={translation_key:"core.play",name:"fp-small-play"},qr={translation_key:"core.pause",name:"fp-small-pause"},Fl={name:"fp-fast-forward"},Eo={name:"fp-rewind"};class vi extends fe{constructor(f,g){super(f),this.classList.add("fp-icon",g.name),g.title&&this.setAttribute("title",g.title),g.title&&this.setAttribute("aria-label",g.title),g.translation_key&&this.setAttribute("aria-label",f.i18n(g.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}function En(){}document.addEventListener(v,function(f){this.active_menu&&!f.composedPath().includes(this.active_menu)&&(Array.from(document.querySelectorAll(".fp-engine")).forEach((g)=>{var p;let k=g.root.querySelector("details[open].fp-menu-container");k&&(k.open=!1,(p=k.querySelector("summary"))===null||p===void 0||p.removeAttribute("aria-expanded"),g.root.classList.toggle("has-menu-opened",!1))}),this.active_menu=void 0)});let yn={passive:!0};var be;function yo(f,g){let p=0,k=-1,M=-1,$=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5),H=f.classList;f.id=$,H.remove(be.GRABBING),H.remove(be.TOUCHING);let U=g.onseek||En,j=g.onstart||En,tt=g.onend||En,Tt=g.onmouse||En,Dt=g.ontouch||En,Ht=g.ontouchend||En;function ae(te){(function(){let ii=f.getBoundingClientRect();p=ii.left,k=ii.width})();let Ge=(function(ii){return typeof window.TouchEvent=="function"&&ii instanceof TouchEvent}(te)?te.changedTouches[0].pageX:te.pageX)-p;return Ge>k&&(Ge=k),Ge<0&&(Ge=0),Ge/k*100}function ge(te){let Ge=ae(te);Ge!=M&&(U(f,Ge),M=Ge)}return f.addEventListener("touchstart",function(te){So(f,te)&&(H.add(be.TOUCHING),bo(f.parentElement)&&(H.add(be.GRABBING),Dt(f,ae(te)),j(f,ae(te)),ge(te)))},yn),f.addEventListener(T,function(te){ge(te),Tt(f,ae(te))},yn),f.addEventListener("touchend",function(te){setTimeout(function(){H.remove(be.TOUCHING)},500),So(f,te)&&(H.remove(be.GRABBING),Ht(f,ae(te)),tt(f,ae(te)),k=0)},yn),f.addEventListener("touchcancel",function(){H.remove(be.GRABBING,be.TOUCHING),k=0},yn),f.addEventListener("mousedown",function(te){H.contains(be.TOUCHING)||(document.addEventListener(R,ge),H.add(be.GRABBING),j(f,ae(te)),te.preventDefault(),ge(te))}),f.addEventListener(R,function(te){H.contains(be.TOUCHING)||Tt(f,ae(te))}),document.addEventListener("mouseup",function(te){H.contains(be.TOUCHING)||(document.removeEventListener(R,ge),H.contains(be.GRABBING)&&(H.remove(be.GRABBING),tt(f,ae(te)),k=0))}),f}function So(f,g){let p=g.target;return!!p&&(p&&!p.closest(f.id)||!bo(f.parentElement)||!f.classList.contains(be.TOUCHING))}function bo(f){if(!f)return!1;let g=window.getComputedStyle(f);return g.width!=="0"&&g.height!=="0"&&g.opacity!=="0"&&g.display!=="none"&&g.visibility!=="hidden"}(function(f){f.GRABBING="has-grab",f.TOUCHING="has-touch"})(be||(be={}));class ua extends fe{constructor(f){super(f),this.className="fp-volume";let g=f.root.classList,p=g.contains("is-tiny")?6:g.contains("is-small")?8:10,k=Array.from({length:p}).map(()=>{let M=document.createElement("i");return M.className="fp-tick",M});this.append(...k),yo(this,{onseek:(M,$)=>{$>0&&(f.muted=!1,f._storage.removeItem("mute")),f._storage.setItem("volume",(f.volume=$/100).toString()),this.adjustVolumeSlider(f.volume)}}),this.setAttribute("tabindex","0"),this.setAttribute("role","slider"),this.setAttribute("aria-valuemin","0"),this.setAttribute("aria-valuemax","1"),this.setAttribute("aria-label",f.i18n("core.volume","volume")),f.on("volumechange",()=>{let M=f.volume==0||f.muted;M&&this.adjustVolumeSlider(0);let $=f.opt("ui");this.classList.contains(be.GRABBING)||M&&typeof $=="number"&&(4&$)>0||this.adjustVolumeSlider(f.volume)})}adjustVolumeSlider(f){this.setAttribute("aria-valuenow",f.toString()),this.setAttribute("aria-valuetext",Math.round(100*f)+"%");let g=Array.from(this.querySelectorAll(".fp-tick")),p=Math.round(f*g.length);g.forEach((k,M)=>{k.classList.toggle("fp-color",M<p)})}}class da extends fe{constructor(f){let g;super(f),this.bufferEle=ti("fp-buffer"),this.progress=ti("fp-progress","fp-color"),this.tooltipEle=ti("fp-timestamp"),this.proposedSeekBar=ti("fp-hover"),this.dragger=ti("fp-dragger","fp-color"),this.classList.add("fp-timeline","fp-bar"),this.tooltipEle.style.display="none",this.setAttribute("role","slider"),this.setAttribute("tabindex","0"),this.setAttribute("aria-label",f.i18n("core.timeline_aria_label","Seek slider")),this.setAttribute("aria-valuenow","0"),this.progress.append(this.dragger),this.append(this.bufferEle,this.progress,this.proposedSeekBar,this.tooltipEle);let p=requestAnimationFrame,k=void 0,M=()=>{var H;f.reaper==0||g.live||(H=f,this.progress.style.width=H.currentTime/H.duration*100+"%",k=void 0,f.paused||this.classList.contains(be.GRABBING)||k||(k=setTimeout(M,200)))},$=()=>!!this.player.opt("seekable",!0)&&!isNaN(this.player.duration);yo(this,{onseek:(H,U)=>{if($())switch(!!g.live){case!0:Nr(U,f,this.tooltipEle);break;case!1:(function(j,tt,Tt){let Dt=tt.duration*(j/100);if(tt.disabled&&Dt>tt.currentTime)return!1;Tt.style.width=j+"%",tt.currentTime=Dt})(U,f,this.progress),Fi(this.tooltipEle,U)}},onstart:()=>{$()&&(f.emit("timeline/gesture/start"),!f.hasState("is-casting")&&f.setState(Ke,!0),g.live||function(H){H.style.display="block"}(this.tooltipEle))},onend:function(H,U){p(M),g.seekable!=0&&g.live&&io(U,f)},ontouchend:()=>{g.live?dn(this.proposedSeekBar,this.tooltipEle):pi(this.proposedSeekBar,this.tooltipEle),setTimeout(()=>f.emit("timeline/gesture/end"),0)},onmouse:(H,U)=>{if($()&&(f.emit("timeline/gesture/move",{percent:U}),!this.classList.contains(be.GRABBING)))switch(!!g.live){case!0:(function(j,tt){tt.style.width=j+"%"})(U,this.proposedSeekBar),Nr(U,f,this.tooltipEle);break;case!1:(function(j,tt){tt.style.width=j+"%"})(U,this.proposedSeekBar),function(j,tt,Tt){isNaN(j)||isNaN(tt.duration)||(Fi(Tt,j),Tt.textContent=Mi(j/100*tt.duration))}(U,f,this.tooltipEle)}}}),f.on(st,function(H){H.data&&(g=H.data)}),f.on(nt,()=>p(M)),f.on(G,()=>{f.reaper==0||g.live||ei(f,this.bufferEle)}),f.on("dvr",(H)=>{this.progress.style.width=H.detail+"%"}),f.on("timeupdate",()=>{f.reaper!=0&&(p(M),this.setAttribute("aria-valuenow",f.currentTime+""),this.setAttribute("aria-valuetext",Math.round(f.currentTime)+" "+f.i18n("core.seconds","Seconds")),g.live||ei(f,this.bufferEle))}),f.on(X,()=>{f.reaper!=0&&(g.live||ei(f,this.bufferEle))}),f.on("durationchange",(H)=>{if(f.reaper==0)return;let U=Ue(f)?bi(f):H.data||f.duration;isNaN(U)||(this.setAttribute("aria-valuemax",U+""),this.setAttribute("aria-valuemin","0"))}),this.addEventListener(A,()=>{f.emit("timeline/gesture/end"),g.live?dn(this.proposedSeekBar,this.tooltipEle):pi(this.proposedSeekBar,this.tooltipEle)})}}class Xr extends fe{constructor(f){super(f),this.classList.add("fp-live-status");let g=ti("fp-live-text"),p=ti("fp-live-indicator","fp-color");g.textContent="live",this.setAttribute("tabindex","0"),this.setAttribute("role","button"),this.append(p,g),this.addEventListener(v,function(){Ks(f)})}}class ha extends fe{constructor(f){let g;super(f),this.classList.add("fp-duration"),this.setAttribute("aria-hidden","true"),f.on(st,(p)=>{if(f.reaper==0||!p.data)return;g=p.data;let k=Ue(f)?NaN:p.data.duration||0;if(isNaN(k)||k>=Number.MAX_SAFE_INTEGER)return this.style.display="none";this.style.display="inline-block",this.innerText=Mi(k)}),f.on(X,()=>{var p,k;f.reaper==0||g.live||(k=this,(p=f).duration&&(k.innerText=Mi(p.duration)))})}}class fa extends fe{constructor(f){let g;super(f),this.classList.add("fp-elapsed"),this.innerText=Mi(0),this.setAttribute("aria-hidden","true"),f.on(st,(p)=>{p.data&&(g=p.data)}),f.on("timeupdate",()=>{var p;f.reaper!=0&&(g.live?(p=f,this.innerText=Mi(p.currentTime)):function(k,M){M.innerText=Mi(k.currentTime)}(f,this))})}}class To extends fe{constructor(f){super(f),this.classList.add("fp-btns","fp-small-switch");let g=yi(f,"flowplayer-small-pause-icon"),p=yi(f,"flowplayer-small-play-icon");g.addEventListener("click",function(){f.togglePlay(),setTimeout(function(){p.focus&&p.focus()},100)}),p.addEventListener("click",function(){f.togglePlay(),setTimeout(function(){g.focus&&g.focus()},100)}),this.append(g,p)}}class Jr extends fe{constructor(f,g){super(f),this.classList.add(g);let p=this.classList.contains("fp-left-zone")?-1:1,k=document.createElement("span"),M=yi(f,this.classList.contains("fp-left-zone")?gt:"flowplayer-fast-forward-icon");M.removeAttribute("tabindex"),k.classList.add("fp-zone-seconds"),this.append(k,M),f.on(B,()=>{k.innerText=""}),f.on("seek:queued",($)=>{let H=$.data;if(!H)return;if(typeof H.offset!="number")return;let U=H.offset;if(U==0)return this.reset_zone();U>0&&this.classList.contains("fp-right-zone")||U<0&&!this.classList.contains("fp-right-zone")?this.render_zone_state(U):this.reset_zone()}),f.on("seek:cancel",()=>{this.reset_zone()}),this.reset_zone(),this.addEventListener("touchend",function($){isNaN(f.duration)||isNaN(f.currentTime)||16384&f.opt("ui")||f.hasState(We)||!f.hasState("will-seek")&&!f.hasState(At)||f.enqueueSeek(5*p)&&($.stopPropagation(),$.preventDefault())})}reset_zone(){let f=this.querySelector(".fp-zone-seconds");f&&(f.innerText="")}render_zone_state(f){let g=this.querySelector(".fp-zone-seconds");g&&(g.innerText=Math.abs(f)+"")}}class ma extends fe{constructor(f){super(f),this.className="fp-error",this.message=document.createElement("p"),this.message.className="error-message",this.errorId=document.createElement("p"),this.errorId.className="error-id",this.errorKey=document.createElement("p"),this.errorKey.className="error-key",this.append(this.errorKey,this.message,this.errorId),this.addEventListener("flowplayer:error",(g)=>{if(f.opts.live&&f.currentTime==0&&g.detail.error.flowplayerErrorCode==xt.PlaybackManifestLoadError)return void(this.message.textContent="stream offline");let p=g.detail.error;this.message.textContent=p.message,this.errorKey.textContent=p.errorKey,console.warn("flowplayer encountered an %s error while loading %s id:%s",p.errorKey,p.config.resource,p.id)})}}class Qr extends fe{constructor(f,g,...p){super(f),this.className=g;let k=f.createComponents(...p);this.append(...k),g!=="fp-left"&&k.forEach((M)=>{M.addEventListener(v,()=>f.toggleFullScreen())})}}class Zr extends fe{constructor(f){super(f),this.classList.add("fp-wait"),Array(...Array(4)).map((g,p)=>p).forEach(()=>{this.append(document.createElement("b"))})}}class ga extends fe{constructor(f){super(f),this.classList.add("fp-middle-zone");let g=f.createComponents(V,"flowplayer-middle-buttons");this.append(...g)}}class pa extends fe{constructor(f){super(f),this.classList.add("fp-switch"),[et,pt].forEach((g)=>{let p=yi(f,g);p.removeAttribute("tabindex"),this.append(p)})}}class Ui extends fe{constructor(f){super(f),this.classList.add("fp-volume-control");let g=yi(f,Lt);this.append(g),!d().ios&&this.append(yi(f,Bt)),g instanceof vi&&g.addEventListener(v,function(){f.toggleMute()})}}class ts extends fe{constructor(f){super(f),this.classList.add("fp-header"),this.append(...f.createComponents("flowplayer-header-left-zone","flowplayer-header-right-zone")),f.reaper&&f.reaper.set("header",this)}}class _o extends fe{constructor(f){super(f),this.classList.add("fp-controls","fp-togglable"),this.append(...f.createComponents("flowplayer-control-buttons",rt,ut,bt,"flowplayer-control-duration","flowplayer-volume-control"))}}class va extends vi{constructor(f,g){super(f,g),this.setAttribute("role","button")}}class es extends fe{constructor(f){super(f),this.classList.add("fp-middle"),this.append(...f.createComponents("flowplayer-middle-left-zone",jt,"flowplayer-middle-right-zone")),this.setAttribute("tabindex","0"),f.reaper&&f.reaper.set("middle",this),this.handleClick(f),this.handleTouch(f),f.once("beforeplay",()=>{this.removeAttribute("tabindex"),this.removeAttribute("role"),this.removeAttribute("aria-label")})}handleClick(f){[v,E].forEach((g)=>this.addEventListener(g,function(p){if(!(p.defaultPrevented||f.root.classList.contains("is-endscreen")||g===E&&f.root.classList.contains("no-fullscreen")))return p.preventDefault(),f.emit(p.type),!1})),f.on(v,function(g){setTimeout(function(){g.defaultPrevented||f.togglePlay()},0)}),f.on(E,function(g){setTimeout(function(){g.defaultPrevented||f.toggleFullScreen()},0)})}handleTouch(f){let g=!1;this.addEventListener("touchend",function(p){p.cancelable&&!f.hasState("is-endscreen")&&(p.preventDefault(),f.emit(p.type,{source:p}))}),f.on("touchend",function(p){setTimeout(function(){if(p.defaultPrevented)return;if(f.ended)return f.togglePlay(!0);let k=f.hasState(re);g&&clearTimeout(g),(k||f.hasState(At))&&(f.hasState(At)&&(f.setState(At,!1),f.setState(Xt,!1)),f.togglePlay(),k)||(f.setState(At,!0),f.paused||(g=setTimeout(function(){g=!1,f.setState(At,!1),f.setState(Xt,!1)},2000)))},0)})}}class Sn extends fe{constructor(f){super(f),this.classList.add("fp-ui"),this.append(...f.createComponents(Vt,ce,zt))}}class hr{constructor(f){oe(f,Ft,Sn),oe(f,"flowplayer-error",ma),oe(f,zt,_o),oe(f,rt,Xr),oe(f,"flowplayer-control-duration",ha),oe(f,bt,da),oe(f,ut,fa),oe(f,Bt,ua),oe(f,"flowplayer-volume-control",Ui),oe(f,"flowplayer-control-buttons",To),oe(f,Vt,ts),oe(f,$t,dr),oe(f,"flowplayer-header-duration",jr),oe(f,"flowplayer-header-left-zone",class extends Qr{constructor(g){super(g,"fp-left","flowplayer-header-duration")}}),oe(f,"flowplayer-header-right-zone",class extends Qr{constructor(g){super(g,"fp-right fp-togglable","flowplayer-fullscreen-enter-icon","flowplayer-fullscreen-exit-icon")}}),oe(f,ce,es),oe(f,jt,ga),oe(f,V,Zr),oe(f,"flowplayer-middle-buttons",pa),oe(f,"flowplayer-middle-right-zone",class extends Jr{constructor(g){super(g,"fp-right-zone")}}),oe(f,"flowplayer-middle-left-zone",class extends Jr{constructor(g){super(g,"fp-left-zone")}}),oe(f,"flowplayer-small-play-icon",class extends vi{constructor(g){super(g,ca),this.setAttribute("role","button")}}),oe(f,"flowplayer-small-pause-icon",class extends vi{constructor(g){super(g,qr),this.setAttribute("role","button")}}),oe(f,et,class extends vi{constructor(g){super(g,Nl),this.setAttribute("role","button")}}),oe(f,pt,class extends vi{constructor(g){super(g,po),this.setAttribute("role","button")}}),oe(f,"flowplayer-fullscreen-enter-icon",class extends va{constructor(g){super(g,wi)}}),oe(f,"flowplayer-fullscreen-exit-icon",class extends va{constructor(g){super(g,zr)}}),oe(f,"flowplayer-fast-forward-icon",class extends vi{constructor(g){super(g,Fl)}}),oe(f,gt,class extends vi{constructor(g){super(g,Eo)}}),oe(f,Lt,class extends vi{constructor(g){super(g,vo),this.classList.add("fp-volumebtn"),this.setAttribute("role","switch"),g.on("volumechange",()=>{let p=g.volume==0||g.muted;this.setAttribute("aria-label",g.i18n("core.muted","Muted")),this.setAttribute("aria-checked",p?"true":"false")})}})}init(f,g,p){var k;ur(f,0,p),xi(f,g,p),k=p,typeof window<"u"&&"ontouchstart"in window&&k.setState("is-touch-device",!0),k.setState("is-accessibility",!1)}}return hr.pluginName="default",ze.extensions.unshift.apply(ze.extensions,[Li,oi,hr]),Object.assign(ze,{ui:Fn,i18n:Li})})});var Md=De((Ho,Ko)=>{(function(r,l){typeof Ho=="object"&&typeof Ko<"u"?Ko.exports=l():typeof define=="function"&&define.amd?define(l):((r=typeof globalThis<"u"?globalThis:r||self).flowplayer=r.flowplayer||{},r.flowplayer.asel=l())})(Ho,function(){var d=Object.freeze({__proto__:null,SET:"audio:set",SWITCH:"audio:update",TRACKS:"audio:tracks"});function v(C,B,P){let Y=function(Q){return Array.isArray(Q)?Q.slice(0):Q.split(".")}(B);for(;Y.length;){if(C==null)return P;let Q=Y.shift();if(typeof Q!="string")return P;C=C[Q]}return C==null?P:C}let E=navigator.languages||[navigator.language];function A(C,B){C.emit("audio:set",B),B.autoselect&&C._storage.setItem("@flowplayer/audio/track",B.lang)}function R(C){return C.toLowerCase()}function T(C,B,P){B=B.slice(0);let Y={},Q=C.getItem("@flowplayer/audio/track"),ct=function(){try{return E.reduce((ot,St)=>~St.indexOf("-")?ot.concat(St,St.split("-")[0]):ot.concat(St),[])}catch(ot){return[]}}().map(R),st=-1;if(typeof P=="number")return P;for(typeof P=="string"&&(P=P.toLowerCase(),~ct.indexOf(P)&&ct.splice(ct.indexOf(P),1),ct.unshift(R(P))),Array.isArray(P)&&(ct=P.map(R));B.length;){++st;let ot=B.shift();if(ot==null?void 0:ot.autoselect){if(Q==ot.lang)return console.debug("restoring lang from previous session: ",Q),st;if(ot.default&&(Y.fallback=[st,ot]),ot.lang&&~ct.indexOf(ot.lang.toLowerCase())){let St=ct.indexOf(ot.lang);if(St<v(Y,"by_lang.2",1/0)&&(Y.by_lang=[st,ot,St]),St===0)break}}}return v(Y,"by_lang.0",v(Y,"fallback.0",void 0))}let L=(C,B)=>new(((P,Y)=>{let Q=P.get(Y);if(!Q)throw Error(`no flowplayer component with the name ${Y} exists`);let ct=window.customElements.get(Y);if(!ct)throw Error(`no default flowplayer component with the name ${Y} exists`);let st=window.customElements.get(Q);return typeof st!="function"?ct:st})(C._customElements,B))(C);class O extends HTMLElement{constructor(C){super(),this.player=C}}let X="fp-on",b="fp-invis";class G extends O{constructor(C){super(C),this.player=C,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=K(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(B)=>{if(B.defaultPrevented)return;B.preventDefault();let P=this.menuContainer.open;P||(N(),document.active_menu=this.menuContainer),this.menuContainer.open=!P,C.root.classList.toggle("has-menu-opened",!P),this.summaryEle.setAttribute("aria-expanded",P?"false":"true")}),this.addEventListener("focusin",(B)=>{let P=B.target;P instanceof HTMLLIElement&&P.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(B)=>{let P=B.target;P instanceof HTMLLIElement&&P.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(C){if(this.className=C.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=C.id||K()),this.summaryEle.setAttribute("aria-label",C.menuTitle||"Menu"),C.summaryTitle&&(this.summaryEle.textContent=C.summaryTitle),C.summaryIcon){let B=L(this.player,C.summaryIcon);B.setAttribute("tabindex",""),this.summaryEle.append(B)}C.menuTitle&&(this.menuTitle.textContent=C.menuTitle),this.menu.classList.toggle("fp-icons",!!C.icons),this.addEventListener(C.options_event,(B)=>{this.render(B.data)}),C.item_selected_event&&this.addEventListener(C.item_selected_event,(B)=>{B.data!==void 0&&this.select_item(B.data.selected_index)})}render(C){this.olEle&&(this.olEle.innerHTML="",C&&C.forEach(this.menuOption,this),this.toggle_visibility(!(C==null?void 0:C.length)))}menuOption(C,B){let P=document.createElement("li");P.setAttribute("role","menuitem"),P.setAttribute("aria-selected","false"),P.setAttribute("tabindex","0"),C.icon&&P.append(C.icon);let Y=document.createElement("span");Y.textContent=C.text,P.append(Y),P.addEventListener("click",()=>{this.select_item(B),typeof C.onclick=="function"&&C.onclick()}),this.olEle.appendChild(P),C.selected&&this.select_item(B)}select_item(C){this.options.forEach((B,P)=>{B.classList.toggle(X,P===C)})}unselect_item(){this.options.forEach((C)=>{C.classList.remove(X)})}toggle_visibility(C){this.classList.toggle(b,C),this.menu.style.setProperty("display",C?"none":"flex")}}function N(){Array.from(document.querySelectorAll(".fp-engine")).forEach((C)=>{var B;let P=C.root.querySelector("details[open].fp-menu-container");P&&(P.open=!1,(B=P.querySelector("summary"))===null||B===void 0||B.removeAttribute("aria-expanded"),C.root.classList.toggle("has-menu-opened",!1))})}function K(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function nt(C,B,P){let Y=function(Q,ct){let st=new CustomEvent(Q,{detail:ct,cancelable:!0});return ct&&Object.defineProperty(st,"data",{get:()=>ct}),st}(B,P);return C.dispatchEvent(Y),C}document.addEventListener("click",function(C){this.active_menu&&!C.composedPath().includes(this.active_menu)&&(N(),this.active_menu=void 0)}),function(){let C=!1;try{let B=Object.defineProperty({},"passive",{get:function(){C=!0}});window.addEventListener("testPassive",null,B),window.removeEventListener("testPassive",null,B)}catch(B){}}();var Et;let q=((Et=class{constructor(B){((P,Y,Q)=>{window.customElements.get(Y)||window.customElements.define(Y,Q),P.customElements.get(Y)||P.customElements.set(Y,Y)})(B,"flowplayer-audio-menu",G)}init(B,P,Y){if(B.asel===!1)return;let Q=[],ct=L(Y,"flowplayer-audio-menu");ct instanceof G&&ct.setMenuAttrs({summaryTitle:Y.i18n("audio.button_txt"),menuTitle:Y.i18n("audio.menu_title"),class:"fp-asel",options_event:Et.events.TRACKS,item_selected_event:Et.events.SWITCH});let st=function(ot){let St={tracks:[],events:d};return Object.assign(St,{set:function(Ft){if(!(typeof Ft!="number"||Ft<0||Ft>St.tracks.length-1))return ot.emit("audio:set",St.tracks[Ft]),St},get:function(Ft){if(typeof Ft=="number")return St.tracks[Ft]}}),St}(Y);Y.asel=st,Y.on("mount",function(){var ot;(ot=function(St,Ft){let $t=St._customElements.get(Ft);return $t&&St.root.querySelector($t)||void 0}(Y,Y.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||ot===void 0||ot.append(ct)}),Y.on("src",()=>{st.tracks=[],st.active_track=void 0,nt(ct,Et.events.TRACKS,[])}),Y.on("audio:tracks",function(ot){if(!Array.isArray(ot.data)||ot.data.length===Q.length&&ot.data.every(($t,zt)=>$t===Q[zt]))return;Q=ot.data,st.tracks=Q.slice();let St=v(B,"asel.sort");typeof St=="function"&&st.tracks.sort(St),nt(ct,Et.events.TRACKS,Array.from({length:st.tracks.length}).map(($t,zt)=>{let rt=st.tracks[zt];return{text:rt.name||rt.label||rt.lang,onclick:A.bind(0,Y,rt)}})),st.active_track=st.tracks.find(($t)=>$t.enabled),st.active_track&&nt(ct,Et.events.SWITCH,{selected_index:st.tracks.indexOf(st.active_track)});let Ft=T(Y._storage,st.tracks,v(B,"asel.default_lang",!1));return ct instanceof G&&ct.toggle_visibility(ot.data.length<2),Ft!==void 0?st.set(Ft):void 0}),Y.on("audio:update",function(ot){var St;(St=Y.asel)===null||St===void 0||St.tracks.find((Ft,$t)=>{var zt,rt;Ft!==ot.detail&&Ft.id!==((rt=(zt=ot.detail)===null||zt===void 0?void 0:zt.id)!==null&&rt!==void 0?rt:-1)||(Y.asel.active_track=Ft,nt(ct,Et.events.SWITCH,{selected_index:$t}))})}),Y.audioTracks&&(Y.audioTracks.addEventListener("addtrack",function(){Y.hls||Y.emit("audio:tracks",Array.from(Y.audioTracks))}),Y.on("audio:set",function(ot){if(Y.hls)return;let St=ot.detail;st.active_track=St,St&&Array.from(Y.audioTracks).forEach((Ft)=>{Ft.enabled=St.id===Ft.id,Ft.enabled&&nt(ct,Et.events.SWITCH,{selected_index:st.tracks.indexOf(St)})})}))}}).pluginName="asel",Et.events=d,Et);return function(C,B){if(typeof Ho=="object"&&typeof Ko<"u")return B;if(document.currentScript===null)return B;"flowplayer"in C||(C.flowplayer={extensions:[]});let P=C.flowplayer;return typeof P=="function"?(P(B),B):(Array.isArray(P.extensions)||(P.extensions=[]),~P.extensions.indexOf(B)||P.extensions.push(B),B)}(window,q)})});var Nd=De((Vo,Wo)=>{(function(r,l){typeof Vo=="object"&&typeof Wo<"u"?Wo.exports=l():typeof define=="function"&&define.amd?define(l):((r=typeof globalThis<"u"?globalThis:r||self).flowplayer=r.flowplayer||{},r.flowplayer.consent=l())})(Vo,function(){class r{constructor(A,R){this.implementation=A,R&&R.keys().forEach((T)=>{typeof R.implementation[T]=="string"&&this.implementation.setItem(T,R.implementation[T])})}keys(){var A;let R=[];for(var T=0;T<this.implementation.length;T++)((A=this.implementation.key(T))===null||A===void 0?void 0:A.startsWith("flowplayer/"))&&R.push(this.implementation.key(T));return R}removeItem(A){try{this.implementation.removeItem("flowplayer/"+A)}catch(R){}}getItem(A){try{return this.implementation.getItem("flowplayer/"+A)}catch(R){return null}}setItem(A,R){try{this.implementation.setItem("flowplayer/"+A,R)}catch(T){}}clear(){try{this.keys().forEach((A)=>this.implementation.removeItem(A))}catch(A){}}get length(){try{return this.keys().length}catch(A){return 0}}key(A){try{return this.implementation.key(A)}catch(R){return null}}}var l,d,v;(function(A){A[A.ALL=1]="ALL",A[A.NONE=2]="NONE"})(l||(l={})),function(A){A[A.ALL=8]="ALL",A[A.NONE=16]="NONE"}(d||(d={}));let E=((v=class{constructor(R,T){let L=T._storage.getItem("consent"),O=this.current_value=L&&!isNaN(Number(L))?Number(T._storage.getItem("consent")):l.NONE|d.NONE;this.player=T,this.adapt(Object.assign({consent:O},T.opts))}init(R,T,L){this.adapt(R),L.on("config",(X)=>{this.adapt(X.detail)});let O=(X)=>{L.setOpts({consent:X.detail})};document.addEventListener("flowplayer/consent",O),L.on("reap",()=>document.removeEventListener("flowplayer/consent",O))}adapt(R){let T=R.consent===void 0?this.current_value:R.consent;d.ALL&T?this.setStorage(d.ALL):d.NONE&T&&this.setStorage(d.NONE),l.ALL&T?this.setTracking(l.ALL):l.NONE&T&&this.setTracking(l.NONE),this.player._storage.setItem("consent",T.toString())}setStorage(R){try{let T=this.player._storage;switch(this.player.setState("consent-no-storage",R===d.NONE),R){case d.ALL:this.player._storage=new r(localStorage,this.player._storage);break;case d.NONE:this.player._storage=new r(sessionStorage,T),T.clear()}}catch(T){console.debug(T)}}setTracking(R){var T,L;switch(this.player.setState("consent-no-tracking",R===l.NONE),R){case l.ALL:(T=this.player.health)===null||T===void 0||T.toggle(!0);break;case l.NONE:(L=this.player.health)===null||L===void 0||L.toggle(!1)}}}).pluginName="consent",v.tracking=l,v.storage=d,v);return function(A,R){if(typeof Vo=="object"&&typeof Wo<"u")return R;if(document.currentScript===null)return R;"flowplayer"in A||(A.flowplayer={extensions:[]});let T=A.flowplayer;return typeof T=="function"?(T(R),R):(Array.isArray(T.extensions)||(T.extensions=[]),~T.extensions.indexOf(R)||T.extensions.push(R),R)}(window,E)})});var Fd=De((Yo,jo)=>{(function(r,l){typeof Yo=="object"&&typeof jo<"u"?jo.exports=l():typeof define=="function"&&define.amd?define(l):((r=typeof globalThis<"u"?globalThis:r||self).flowplayer=r.flowplayer||{},r.flowplayer.hls=l())})(Yo,function(){function r(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var l={exports:{}};(function(t,e){var i,n,s,a,o;i=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,n=/^(?=([^\/?#]*))\1([^]*)$/,s=/(?:\/|^)\.(?=\/)/g,a=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,o={buildAbsoluteURL:function(c,u,h){if(h=h||{},c=c.trim(),!(u=u.trim())){if(!h.alwaysNormalize)return c;var m=o.parseURL(c);if(!m)throw Error("Error trying to parse base URL.");return m.path=o.normalizePath(m.path),o.buildURLFromParts(m)}var y=o.parseURL(u);if(!y)throw Error("Error trying to parse relative URL.");if(y.scheme)return h.alwaysNormalize?(y.path=o.normalizePath(y.path),o.buildURLFromParts(y)):u;var S=o.parseURL(c);if(!S)throw Error("Error trying to parse base URL.");if(!S.netLoc&&S.path&&S.path[0]!=="/"){var _=n.exec(S.path);S.netLoc=_[1],S.path=_[2]}S.netLoc&&!S.path&&(S.path="/");var w={scheme:S.scheme,netLoc:y.netLoc,path:null,params:y.params,query:y.query,fragment:y.fragment};if(!y.netLoc&&(w.netLoc=S.netLoc,y.path[0]!=="/"))if(y.path){var I=S.path,D=I.substring(0,I.lastIndexOf("/")+1)+y.path;w.path=o.normalizePath(D)}else w.path=S.path,y.params||(w.params=S.params,y.query||(w.query=S.query));return w.path===null&&(w.path=h.alwaysNormalize?o.normalizePath(y.path):y.path),o.buildURLFromParts(w)},parseURL:function(c){var u=i.exec(c);return u?{scheme:u[1]||"",netLoc:u[2]||"",path:u[3]||"",params:u[4]||"",query:u[5]||"",fragment:u[6]||""}:null},normalizePath:function(c){for(c=c.split("").reverse().join("").replace(s,"");c.length!==(c=c.replace(a,"")).length;);return c.split("").reverse().join("")},buildURLFromParts:function(c){return c.scheme+c.netLoc+c.path+c.params+c.query+c.fragment}},t.exports=o})(l);var d=l.exports;function v(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(s){return Object.getOwnPropertyDescriptor(t,s).enumerable})),i.push.apply(i,n)}return i}function E(t){for(var e=1;e<arguments.length;e++){var i=arguments[e]!=null?arguments[e]:{};e%2?v(Object(i),!0).forEach(function(n){R(t,n,i[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):v(Object(i)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(i,n))})}return t}function A(t){var e=function(i,n){if(typeof i!="object"||!i)return i;var s=i[Symbol.toPrimitive];if(s!==void 0){var a=s.call(i,n||"default");if(typeof a!="object")return a;throw TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(i)}(t,"string");return typeof e=="symbol"?e:String(e)}function R(t,e,i){return(e=A(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function T(){return(T=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}let L=Number.isFinite||function(t){return typeof t=="number"&&isFinite(t)},O=Number.isSafeInteger||function(t){return typeof t=="number"&&Math.abs(t)<=X},X=Number.MAX_SAFE_INTEGER||9007199254740991,b=function(t){return t.MEDIA_ATTACHING="hlsMediaAttaching",t.MEDIA_ATTACHED="hlsMediaAttached",t.MEDIA_DETACHING="hlsMediaDetaching",t.MEDIA_DETACHED="hlsMediaDetached",t.BUFFER_RESET="hlsBufferReset",t.BUFFER_CODECS="hlsBufferCodecs",t.BUFFER_CREATED="hlsBufferCreated",t.BUFFER_APPENDING="hlsBufferAppending",t.BUFFER_APPENDED="hlsBufferAppended",t.BUFFER_EOS="hlsBufferEos",t.BUFFER_FLUSHING="hlsBufferFlushing",t.BUFFER_FLUSHED="hlsBufferFlushed",t.MANIFEST_LOADING="hlsManifestLoading",t.MANIFEST_LOADED="hlsManifestLoaded",t.MANIFEST_PARSED="hlsManifestParsed",t.LEVEL_SWITCHING="hlsLevelSwitching",t.LEVEL_SWITCHED="hlsLevelSwitched",t.LEVEL_LOADING="hlsLevelLoading",t.LEVEL_LOADED="hlsLevelLoaded",t.LEVEL_UPDATED="hlsLevelUpdated",t.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",t.LEVELS_UPDATED="hlsLevelsUpdated",t.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",t.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",t.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",t.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",t.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",t.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",t.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",t.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",t.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",t.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",t.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",t.CUES_PARSED="hlsCuesParsed",t.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",t.INIT_PTS_FOUND="hlsInitPtsFound",t.FRAG_LOADING="hlsFragLoading",t.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",t.FRAG_LOADED="hlsFragLoaded",t.FRAG_DECRYPTED="hlsFragDecrypted",t.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",t.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",t.FRAG_PARSING_METADATA="hlsFragParsingMetadata",t.FRAG_PARSED="hlsFragParsed",t.FRAG_BUFFERED="hlsFragBuffered",t.FRAG_CHANGED="hlsFragChanged",t.FPS_DROP="hlsFpsDrop",t.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",t.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",t.ERROR="hlsError",t.DESTROYING="hlsDestroying",t.KEY_LOADING="hlsKeyLoading",t.KEY_LOADED="hlsKeyLoaded",t.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",t.BACK_BUFFER_REACHED="hlsBackBufferReached",t.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",t}({}),G=function(t){return t.NETWORK_ERROR="networkError",t.MEDIA_ERROR="mediaError",t.KEY_SYSTEM_ERROR="keySystemError",t.MUX_ERROR="muxError",t.OTHER_ERROR="otherError",t}({}),N=function(t){return t.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",t.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",t.KEY_SYSTEM_NO_SESSION="keySystemNoSession",t.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",t.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",t.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",t.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",t.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",t.MANIFEST_LOAD_ERROR="manifestLoadError",t.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",t.MANIFEST_PARSING_ERROR="manifestParsingError",t.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",t.LEVEL_EMPTY_ERROR="levelEmptyError",t.LEVEL_LOAD_ERROR="levelLoadError",t.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",t.LEVEL_PARSING_ERROR="levelParsingError",t.LEVEL_SWITCH_ERROR="levelSwitchError",t.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",t.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",t.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",t.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",t.FRAG_LOAD_ERROR="fragLoadError",t.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",t.FRAG_DECRYPT_ERROR="fragDecryptError",t.FRAG_PARSING_ERROR="fragParsingError",t.FRAG_GAP="fragGap",t.REMUX_ALLOC_ERROR="remuxAllocError",t.KEY_LOAD_ERROR="keyLoadError",t.KEY_LOAD_TIMEOUT="keyLoadTimeOut",t.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",t.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",t.BUFFER_APPEND_ERROR="bufferAppendError",t.BUFFER_APPENDING_ERROR="bufferAppendingError",t.BUFFER_STALLED_ERROR="bufferStalledError",t.BUFFER_FULL_ERROR="bufferFullError",t.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",t.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",t.INTERNAL_EXCEPTION="internalException",t.INTERNAL_ABORTED="aborted",t.UNKNOWN="unknown",t}({}),K=function(){},nt={trace:K,debug:K,log:K,warn:K,info:K,error:K},Et=nt;function q(t,...e){e.forEach(function(i){Et[i]=t[i]?t[i].bind(t):function(n){let s=self.console[n];return s?s.bind(self.console,`[${n}] >`):K}(i)})}let C=Et,B=/^(\d+)x(\d+)$/,P=/(.+?)=(".*?"|.*?)(?:,|$)/g;class Y{constructor(t){typeof t=="string"&&(t=Y.parseAttrList(t)),T(this,t)}get clientAttrs(){return Object.keys(this).filter((t)=>t.substring(0,2)==="X-")}decimalInteger(t){let e=parseInt(this[t],10);return e>Number.MAX_SAFE_INTEGER?1/0:e}hexadecimalInteger(t){if(this[t]){let e=(this[t]||"0x").slice(2);e=(1&e.length?"0":"")+e;let i=new Uint8Array(e.length/2);for(let n=0;n<e.length/2;n++)i[n]=parseInt(e.slice(2*n,2*n+2),16);return i}return null}hexadecimalIntegerAsNumber(t){let e=parseInt(this[t],16);return e>Number.MAX_SAFE_INTEGER?1/0:e}decimalFloatingPoint(t){return parseFloat(this[t])}optionalFloat(t,e){let i=this[t];return i?parseFloat(i):e}enumeratedString(t){return this[t]}bool(t){return this[t]==="YES"}decimalResolution(t){let e=B.exec(this[t]);if(e!==null)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}}static parseAttrList(t){let e,i={};for(P.lastIndex=0;(e=P.exec(t))!==null;){let n=e[2];n.indexOf('"')===0&&n.lastIndexOf('"')===n.length-1&&(n=n.slice(1,-1)),i[e[1].trim()]=n}return i}}function Q(t){return t==="SCTE35-OUT"||t==="SCTE35-IN"}class ct{constructor(t,e){if(this.attr=void 0,this._startDate=void 0,this._endDate=void 0,this._badValueForSameId=void 0,e){let i=e.attr;for(let n in i)if(Object.prototype.hasOwnProperty.call(t,n)&&t[n]!==i[n]){C.warn(`DATERANGE tag attribute: "${n}" does not match for tags with ID: "${t.ID}"`),this._badValueForSameId=n;break}t=T(new Y({}),i,t)}if(this.attr=t,this._startDate=new Date(t["START-DATE"]),"END-DATE"in this.attr){let i=new Date(this.attr["END-DATE"]);L(i.getTime())&&(this._endDate=i)}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get startDate(){return this._startDate}get endDate(){if(this._endDate)return this._endDate;let t=this.duration;return t!==null?new Date(this._startDate.getTime()+1000*t):null}get duration(){if("DURATION"in this.attr){let t=this.attr.decimalFloatingPoint("DURATION");if(L(t))return t}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1000;return null}get plannedDuration(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isValid(){return!!this.id&&!this._badValueForSameId&&L(this.startDate.getTime())&&(this.duration===null||this.duration>=0)&&(!this.endOnNext||!!this.class)}}class st{constructor(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}}var ot="audio",St="video",Ft="audiovideo";class $t{constructor(t){this._byteRange=null,this._url=null,this.baseurl=void 0,this.relurl=void 0,this.elementaryStreams={[ot]:null,[St]:null,[Ft]:null},this.baseurl=t}setByteRange(t,e){let i=t.split("@",2),n;n=i.length===1?(e==null?void 0:e.byteRangeEndOffset)||0:parseInt(i[1]),this._byteRange=[n,parseInt(i[0])+n]}get byteRange(){return this._byteRange?this._byteRange:[]}get byteRangeStartOffset(){return this.byteRange[0]}get byteRangeEndOffset(){return this.byteRange[1]}get url(){return!this._url&&this.baseurl&&this.relurl&&(this._url=d.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""}set url(t){this._url=t}}class zt extends $t{constructor(t,e){super(e),this._decryptdata=null,this.rawProgramDateTime=null,this.programDateTime=null,this.tagList=[],this.duration=0,this.sn=0,this.levelkeys=void 0,this.type=void 0,this.loader=null,this.keyLoader=null,this.level=-1,this.cc=0,this.startPTS=void 0,this.endPTS=void 0,this.startDTS=void 0,this.endDTS=void 0,this.start=0,this.deltaPTS=void 0,this.maxStartPTS=void 0,this.minEndPTS=void 0,this.stats=new st,this.data=void 0,this.bitrateTest=!1,this.title=null,this.initSegment=null,this.endList=void 0,this.gap=void 0,this.urlId=0,this.type=t}get decryptdata(){let{levelkeys:t}=this;if(!t&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkeys&&!this.levelkeys.NONE){let e=this.levelkeys.identity;if(e)this._decryptdata=e.getDecryptData(this.sn);else{let i=Object.keys(this.levelkeys);if(i.length===1)return this._decryptdata=this.levelkeys[i[0]].getDecryptData(this.sn)}}return this._decryptdata}get end(){return this.start+this.duration}get endProgramDateTime(){if(this.programDateTime===null)return null;if(!L(this.programDateTime))return null;let t=L(this.duration)?this.duration:0;return this.programDateTime+1000*t}get encrypted(){var t;if((t=this._decryptdata)!=null&&t.encrypted)return!0;if(this.levelkeys){let e=Object.keys(this.levelkeys),i=e.length;if(i>1||i===1&&this.levelkeys[e[0]].encrypted)return!0}return!1}setKeyFormat(t){if(this.levelkeys){let e=this.levelkeys[t];e&&!this._decryptdata&&(this._decryptdata=e.getDecryptData(this.sn))}}abortRequests(){var t,e;(t=this.loader)==null||t.abort(),(e=this.keyLoader)==null||e.abort()}setElementaryStreamInfo(t,e,i,n,s,a=!1){let{elementaryStreams:o}=this,c=o[t];c?(c.startPTS=Math.min(c.startPTS,e),c.endPTS=Math.max(c.endPTS,i),c.startDTS=Math.min(c.startDTS,n),c.endDTS=Math.max(c.endDTS,s)):o[t]={startPTS:e,endPTS:i,startDTS:n,endDTS:s,partial:a}}clearElementaryStreamInfo(){let{elementaryStreams:t}=this;t[ot]=null,t[St]=null,t[Ft]=null}}class rt extends $t{constructor(t,e,i,n,s){super(i),this.fragOffset=0,this.duration=0,this.gap=!1,this.independent=!1,this.relurl=void 0,this.fragment=void 0,this.index=void 0,this.stats=new st,this.duration=t.decimalFloatingPoint("DURATION"),this.gap=t.bool("GAP"),this.independent=t.bool("INDEPENDENT"),this.relurl=t.enumeratedString("URI"),this.fragment=e,this.index=n;let a=t.enumeratedString("BYTERANGE");a&&this.setByteRange(a,s),s&&(this.fragOffset=s.fragOffset+s.duration)}get start(){return this.fragment.start+this.fragOffset}get end(){return this.start+this.duration}get loaded(){let{elementaryStreams:t}=this;return!!(t.audio||t.video||t.audiovideo)}}class ut{constructor(t){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.live=!0,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.availabilityDelay=void 0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=t}reloaded(t){if(!t)return this.advanced=!0,void(this.updated=!0);let e=this.lastPartSn-t.lastPartSn,i=this.lastPartIndex-t.lastPartIndex;this.updated=this.endSN!==t.endSN||!!i||!!e||!this.live,this.advanced=this.endSN>t.endSN||e>0||e===0&&i>0,this.updated||this.advanced?this.misses=Math.floor(0.6*t.misses):this.misses=t.misses+1,this.availabilityDelay=t.availabilityDelay}get hasProgramDateTime(){return!!this.fragments.length&&L(this.fragments[this.fragments.length-1].programDateTime)}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||10}get drift(){let t=this.driftEndTime-this.driftStartTime;if(t>0)return 1000*(this.driftEnd-this.driftStart)/t;return 1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){var t;return(t=this.fragments)!=null&&t.length?this.fragments[this.fragments.length-1].end:0}get age(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1000:0}get lastPartIndex(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].index:-1}get lastPartSn(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}}function bt(t){return Uint8Array.from(atob(t),(e)=>e.charCodeAt(0))}function Bt(t){let e=t.split(":"),i=null;if(e[0]==="data"&&e.length===2){let n=e[1].split(";"),s=n[n.length-1].split(",");if(s.length===2){let a=s[0]==="base64",o=s[1];a?(n.splice(-1,1),i=bt(o)):i=function(c){let u=Vt(c).subarray(0,16),h=new Uint8Array(16);return h.set(u,16-u.length),h}(o)}}return i}function Vt(t){return Uint8Array.from(unescape(encodeURIComponent(t)),(e)=>e.charCodeAt(0))}let ce=typeof self<"u"?self:void 0;var jt={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},V="org.w3.clearkey",et="com.apple.streamingkeydelivery",pt="com.microsoft.playready",gt="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";function Lt(t){switch(t){case et:return jt.FAIRPLAY;case pt:return jt.PLAYREADY;case gt:return jt.WIDEVINE;case V:return jt.CLEARKEY}}var ve="edef8ba979d64acea3c827dcd51d21ed";function ue(t){switch(t){case jt.FAIRPLAY:return et;case jt.PLAYREADY:return pt;case jt.WIDEVINE:return gt;case jt.CLEARKEY:return V}}function Je(t){let{drmSystems:e,widevineLicenseUrl:i}=t,n=e?[jt.FAIRPLAY,jt.WIDEVINE,jt.PLAYREADY,jt.CLEARKEY].filter((s)=>!!e[s]):[];return!n[jt.WIDEVINE]&&i&&n.push(jt.WIDEVINE),n}let Pe=ce!=null&&(ke=ce.navigator)!=null&&ke.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;var ke;function re(t,e,i){return Uint8Array.prototype.slice?t.slice(e,i):new Uint8Array(Array.prototype.slice.call(t,e,i))}let Ke=(t,e)=>e+10<=t.length&&t[e]===73&&t[e+1]===68&&t[e+2]===51&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128,Qe=(t,e)=>e+10<=t.length&&t[e]===51&&t[e+1]===68&&t[e+2]===73&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128,ui=(t,e)=>{let i=e,n=0;for(;Ke(t,e);)n+=10,n+=Ve(t,e+6),Qe(t,e+10)&&(n+=10),e+=n;if(n>0)return t.subarray(i,i+n)},Ve=(t,e)=>{let i=0;return i=(127&t[e])<<21,i|=(127&t[e+1])<<14,i|=(127&t[e+2])<<7,i|=127&t[e+3],i},Di=(t,e)=>Ke(t,e)&&Ve(t,e+6)+10<=t.length-e,We=(t)=>{let e=At(t);for(let i=0;i<e.length;i++){let n=e[i];if(Pt(n))return Ci(n)}},Pt=(t)=>t&&t.key==="PRIV"&&t.info==="com.apple.streaming.transportStreamTimestamp",Nt=(t)=>{let e=String.fromCharCode(t[0],t[1],t[2],t[3]),i=Ve(t,4);return{type:e,size:i,data:t.subarray(10,10+i)}},At=(t)=>{let e=0,i=[];for(;Ke(t,e);){let n=Ve(t,e+6);e+=10;let s=e+n;for(;e+8<s;){let a=Nt(t.subarray(e)),o=Xt(a);o&&i.push(o),e+=a.size+10}Qe(t,e)&&(e+=10)}return i},Xt=(t)=>t.type==="PRIV"?se(t):t.type[0]==="W"?ln(t):di(t),se=(t)=>{if(t.size<2)return;let e=xe(t.data,!0),i=new Uint8Array(t.data.subarray(e.length+1));return{key:t.type,info:e,data:i.buffer}},di=(t)=>{if(t.size<2)return;if(t.type==="TXXX"){let i=1,n=xe(t.data.subarray(i),!0);i+=n.length+1;let s=xe(t.data.subarray(i));return{key:t.type,info:n,data:s}}let e=xe(t.data.subarray(1));return{key:t.type,data:e}},ln=(t)=>{if(t.type==="WXXX"){if(t.size<2)return;let i=1,n=xe(t.data.subarray(i),!0);i+=n.length+1;let s=xe(t.data.subarray(i));return{key:t.type,info:n,data:s}}let e=xe(t.data);return{key:t.type,data:e}},Ci=(t)=>{if(t.data.byteLength===8){let e=new Uint8Array(t.data),i=1&e[3],n=(e[4]<<23)+(e[5]<<15)+(e[6]<<7)+e[7];return n/=45,i&&(n+=47721858.84),Math.round(n)}},xe=(t,e=!1)=>{let i=Ze();if(i){let h=i.decode(t);if(e){let m=h.indexOf("\x00");return m!==-1?h.substring(0,m):h}return h.replace(/\0/g,"")}let n=t.length,s,a,o,c="",u=0;for(;u<n;){if(s=t[u++],s===0&&e)return c;if(s!==0&&s!==3)switch(s>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:c+=String.fromCharCode(s);break;case 12:case 13:a=t[u++],c+=String.fromCharCode((31&s)<<6|63&a);break;case 14:a=t[u++],o=t[u++],c+=String.fromCharCode((15&s)<<12|(63&a)<<6|(63&o)<<0)}}return c},cn;function Ze(){if(!navigator.userAgent.includes("PlayStation 4"))return cn||self.TextDecoder===void 0||(cn=new self.TextDecoder("utf-8")),cn}let ri=function(t){let e="";for(let i=0;i<t.length;i++){let n=t[i].toString(16);n.length<2&&(n="0"+n),e+=n}return e},qn=Math.pow(2,32)-1,yi=[].push,oe={video:1,audio:2,id3:3,text:4};function ye(t){return String.fromCharCode.apply(null,t)}function Ii(t,e){let i=t[e]<<8|t[e+1];return i<0?65536+i:i}function xt(t,e){let i=Ka(t,e);return i<0?4294967296+i:i}function Rr(t,e){let i=xt(t,e);return i*=Math.pow(2,32),i+=xt(t,e+4),i}function Ka(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function Fs(t,e,i){t[e]=i>>24,t[e+1]=i>>16&255,t[e+2]=i>>8&255,t[e+3]=255&i}function Wt(t,e){let i=[];if(!e.length)return i;let n=t.byteLength;for(let s=0;s<n;){let a=xt(t,s),o=a>1?s+a:n;if(ye(t.subarray(s+4,s+8))===e[0])if(e.length===1)i.push(t.subarray(s+8,o));else{let c=Wt(t.subarray(s+8,o),e.slice(1));c.length&&yi.apply(i,c)}s=o}return i}function Va(t){let e=[],i=t[0],n=8,s=xt(t,n);n+=4;let a=0,o=0;i===0?(a=xt(t,n),o=xt(t,n+4),n+=8):(a=Rr(t,n),o=Rr(t,n+8),n+=16),n+=2;let c=t.length+o,u=Ii(t,n);n+=2;for(let h=0;h<u;h++){let m=n,y=xt(t,m);m+=4;let S=2147483647&y;if((2147483648&y)>>>31===1)return C.warn("SIDX has hierarchical references (not supported)"),null;let _=xt(t,m);m+=4,e.push({referenceSize:S,subsegmentDuration:_,info:{duration:_/s,start:c,end:c+S-1}}),c+=S,m+=4,n=m}return{earliestPresentationTime:a,timescale:s,version:i,referencesCount:u,references:e}}function Ps(t){let e=[],i=Wt(t,["moov","trak"]);for(let n=0;n<i.length;n++){let s=i[n],a=Wt(s,["tkhd"])[0];if(a){let o=a[0],c=xt(a,o===0?12:20),u=Wt(s,["mdia","mdhd"])[0];if(u){o=u[0];let h=xt(u,o===0?12:20),m=Wt(s,["mdia","hdlr"])[0];if(m){let y=ye(m.subarray(8,12)),S={soun:ot,vide:St}[y];if(S){let _=wl(Wt(s,["mdia","minf","stbl","stsd"])[0]);e[c]={timescale:h,type:S},e[S]=E({timescale:h,id:c},_)}}}}}return Wt(t,["moov","mvex","trex"]).forEach((n)=>{let s=xt(n,4),a=e[s];a&&(a.default={duration:xt(n,12),flags:xt(n,20)})}),e}function wl(t){let e=t.subarray(8),i=e.subarray(86),n=ye(e.subarray(4,8)),s=n,a=n==="enca"||n==="encv";if(a){let o=Wt(e,[n])[0];Wt(o.subarray(n==="enca"?28:78),["sinf"]).forEach((c)=>{let u=Wt(c,["schm"])[0];if(u){let h=ye(u.subarray(4,8));if(h==="cbcs"||h==="cenc"){let m=Wt(c,["frma"])[0];m&&(s=ye(m))}}})}switch(s){case"avc1":case"avc2":case"avc3":case"avc4":{let o=Wt(i,["avcC"])[0];s+="."+Xn(o[1])+Xn(o[2])+Xn(o[3]);break}case"mp4a":{let o=Wt(e,[n])[0],c=Wt(o.subarray(28),["esds"])[0];if(c&&c.length>12){let u=4;if(c[u++]!==3)break;u=xs(c,u),u+=2;let h=c[u++];if(128&h&&(u+=2),64&h&&(u+=c[u++]),c[u++]!==4)break;u=xs(c,u);let m=c[u++];if(m!==64)break;if(s+="."+Xn(m),u+=12,c[u++]!==5)break;u=xs(c,u);let y=c[u++],S=(248&y)>>3;S===31&&(S+=1+((7&y)<<3)+((224&c[u])>>5)),s+="."+S}break}case"hvc1":case"hev1":{let o=Wt(i,["hvcC"])[0],c=o[1],u=["","A","B","C"][c>>6],h=31&c,m=xt(o,2),y=(32&c)>>5?"H":"L",S=o[12],_=o.subarray(6,12);s+="."+u+h,s+="."+m.toString(16).toUpperCase(),s+="."+y+S;let w="";for(let I=_.length;I--;){let D=_[I];if(D||w)w="."+D.toString(16).toUpperCase()+w}s+=w;break}case"dvh1":case"dvhe":{let o=Wt(i,["dvcC"])[0],c=o[2]>>1&127,u=o[2]<<5&32|o[3]>>3&31;s+="."+hi(c)+"."+hi(u);break}case"vp09":{let o=Wt(i,["vpcC"])[0],c=o[4],u=o[5],h=o[6]>>4&15;s+="."+hi(c)+"."+hi(u)+"."+hi(h);break}case"av01":{let o=Wt(i,["av1C"])[0],c=o[1]>>>5,u=31&o[1],h=o[2]>>>7?"H":"M",m=(64&o[2])>>6,y=(32&o[2])>>5,S=c===2&&m?y?12:10:m?10:8,_=(16&o[2])>>4,w=(8&o[2])>>3,I=(4&o[2])>>2,D=3&o[2];s+="."+c+"."+hi(u)+h+"."+hi(S)+"."+_+"."+w+I+D+"."+hi(1)+"."+hi(1)+"."+hi(1)+".0";break}}return{codec:s,encrypted:a}}function xs(t,e){let i=e+5;for(;128&t[e++]&&e<i;);return e}function Xn(t){return("0"+t.toString(16).toUpperCase()).slice(-2)}function hi(t){return(t<10?"0":"")+t}function Us(t){let e=Wt(t,["schm"])[0];if(e){let i=ye(e.subarray(4,8));if(i==="cbcs"||i==="cenc")return Wt(t,["schi","tenc"])[0]}return C.error("[eme] missing 'schm' box"),null}function Oi(t){let e=xt(t,0),i=8;1&e&&(i+=4),4&e&&(i+=4);let n=0,s=xt(t,4);for(let a=0;a<s;a++){if(256&e)n+=xt(t,i),i+=4;512&e&&(i+=4),1024&e&&(i+=4),2048&e&&(i+=4)}return n}function si(t,e){let i=new Uint8Array(t.length+e.length);return i.set(t),i.set(e,t.length),i}function Wa(t,e){let i=[],n=e.samples,s=e.timescale,a=e.id,o=!1;return Wt(n,["moof"]).map((c)=>{let u=c.byteOffset-8;Wt(c,["traf"]).map((h)=>{let m=Wt(h,["tfdt"]).map((y)=>{let S=y[0],_=xt(y,4);return S===1&&(_*=Math.pow(2,32),_+=xt(y,8)),_/s})[0];return m!==void 0&&(t=m),Wt(h,["tfhd"]).map((y)=>{let S=xt(y,4),_=16777215&xt(y,0),w=0,I=(16&_)!=0,D=0,F=(32&_)!=0,x=8;S===a&&((1&_)!=0&&(x+=8),(2&_)!=0&&(x+=4),(8&_)!=0&&(w=xt(y,x),x+=4),I&&(D=xt(y,x),x+=4),F&&(x+=4),e.type==="video"&&(o=function(W){if(!W)return!1;let z=W.indexOf("."),lt=z<0?W:W.substring(0,z);return lt==="hvc1"||lt==="hev1"||lt==="dvh1"||lt==="dvhe"}(e.codec)),Wt(h,["trun"]).map((W)=>{let z=W[0],lt=16777215&xt(W,0),it=(1&lt)!=0,ft=0,mt=(4&lt)!=0,Z=(256&lt)!=0,J=0,kt=(512&lt)!=0,ht=0,wt=(1024&lt)!=0,It=(2048&lt)!=0,Mt=0,at=xt(W,4),vt=8;it&&(ft=xt(W,vt),vt+=4),mt&&(vt+=4);let Ct=ft+u;for(let Ot=0;Ot<at;Ot++){if(Z?(J=xt(W,vt),vt+=4):J=w,kt?(ht=xt(W,vt),vt+=4):ht=D,wt&&(vt+=4),It&&(Mt=z===0?xt(W,vt):Ka(W,vt),vt+=4),e.type===St){let Gt=0;for(;Gt<ht;){let le=xt(n,Ct);if(Ct+=4,Rn(o,n[Ct]))Ya(n.subarray(Ct,Ct+le),o?2:1,t+Mt/s,i);Ct+=le,Gt+=le+4}}t+=J/s}}))})})}),i}function Rn(t,e){if(t){let i=e>>1&63;return i===39||i===40}return(31&e)===6}function Ya(t,e,i,n){let s=kr(t),a=0;a+=e;let o=0,c=0,u=0;for(;a<s.length;){o=0;do{if(a>=s.length)break;u=s[a++],o+=u}while(u===255);c=0;do{if(a>=s.length)break;u=s[a++],c+=u}while(u===255);let h=s.length-a,m=a;if(c<h)a+=c;else if(c>h){C.error(`Malformed SEI payload. ${c} is too small, only ${h} bytes left to parse.`);break}if(o===4){if(s[m++]===181){let y=Ii(s,m);if(m+=2,y===49){let S=xt(s,m);if(m+=4,S===1195456820){let _=s[m++];if(_===3){let w=s[m++],I=31&w,D=64&w,F=D?2+3*I:0,x=new Uint8Array(F);if(D){x[0]=w;for(let W=1;W<F;W++)x[W]=s[m++]}n.push({type:_,payloadType:o,pts:i,bytes:x})}}}}}else if(o===5&&c>16){let y=[];for(let w=0;w<16;w++){let I=s[m++].toString(16);y.push(I.length==1?"0"+I:I),w!==3&&w!==5&&w!==7&&w!==9||y.push("-")}let S=c-16,_=new Uint8Array(S);for(let w=0;w<S;w++)_[w]=s[m++];n.push({payloadType:o,pts:i,uuid:y.join(""),userData:xe(_),userDataBytes:_})}}}function kr(t){let e=t.byteLength,i=[],n=1;for(;n<e-2;)t[n]===0&&t[n+1]===0&&t[n+2]===3?(i.push(n+2),n+=2):n++;if(i.length===0)return t;let s=e-i.length,a=new Uint8Array(s),o=0;for(n=0;n<s;o++,n++)o===i[0]&&(o++,i.shift()),a[n]=t[o];return a}function ja(t,e,i){if(t.byteLength!==16)throw RangeError("Invalid system id");let n,s,a;if(e){n=1,s=new Uint8Array(16*e.length);for(let c=0;c<e.length;c++){let u=e[c];if(u.byteLength!==16)throw RangeError("Invalid key");s.set(u,16*c)}}else n=0,s=new Uint8Array;n>0?(a=new Uint8Array(4),e.length>0&&new DataView(a.buffer).setUint32(0,e.length,!1)):a=new Uint8Array;let o=new Uint8Array(4);return i&&i.byteLength>0&&new DataView(o.buffer).setUint32(0,i.byteLength,!1),function(c,...u){let h=u.length,m=8,y=h;for(;y--;)m+=u[y].byteLength;let S=new Uint8Array(m);for(S[0]=m>>24&255,S[1]=m>>16&255,S[2]=m>>8&255,S[3]=255&m,S.set(c,4),y=0,m=8;y<h;y++)S.set(u[y],m),m+=u[y].byteLength;return S}([112,115,115,104],new Uint8Array([n,0,0,0]),t,a,s,o,i||new Uint8Array)}let ti={};class fi{static clearKeyUriToKeyIdMap(){ti={}}constructor(t,e,i,n=[1],s=null){this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=t,this.uri=e,this.keyFormat=i,this.keyFormatVersions=n,this.iv=s,this.encrypted=!!t&&t!=="NONE",this.isCommonEncryption=this.encrypted&&t!=="AES-128"}isSupported(){if(this.method){if(this.method==="AES-128"||this.method==="NONE")return!0;if(this.keyFormat==="identity")return this.method==="SAMPLE-AES";switch(this.keyFormat){case et:case gt:case pt:case V:return["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)!==-1}}return!1}getDecryptData(t){if(!this.encrypted||!this.uri)return null;if(this.method==="AES-128"&&this.uri&&!this.iv){typeof t!="number"&&(this.method!=="AES-128"||this.iv||C.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),t=0);let i=function(n){let s=new Uint8Array(16);for(let a=12;a<16;a++)s[a]=n>>8*(15-a)&255;return s}(t);return new fi(this.method,this.uri,"identity",this.keyFormatVersions,i)}let e=Bt(this.uri);if(e)switch(this.keyFormat){case gt:this.pssh=e,e.length>=22&&(this.keyId=e.subarray(e.length-22,e.length-6));break;case pt:{let i=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=ja(i,null,e);let n=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),s=String.fromCharCode.apply(null,Array.from(n)),a=s.substring(s.indexOf("<"),s.length),o=new DOMParser().parseFromString(a,"text/xml").getElementsByTagName("KID")[0];if(o){let c=o.childNodes[0]?o.childNodes[0].nodeValue:o.getAttribute("VALUE");if(c){let u=bt(c).subarray(0,16);(function(h){let m=function(y,S,_){let w=y[S];y[S]=y[_],y[_]=w};m(h,0,3),m(h,1,2),m(h,4,5),m(h,6,7)})(u),this.keyId=u}}break}default:{let i=e.subarray(0,16);if(i.length!==16){let n=new Uint8Array(16);n.set(i,16-i.length),i=n}this.keyId=i;break}}if(!this.keyId||this.keyId.byteLength!==16){let i=ti[this.uri];if(!i){let n=Object.keys(ti).length%Number.MAX_SAFE_INTEGER;i=new Uint8Array(16),new DataView(i.buffer,12,4).setUint32(0,n),ti[this.uri]=i}this.keyId=i}return this}}let Jn=/\{\$([a-zA-Z0-9-_]+)\}/g;function Mi(t){return Jn.test(t)}function Ye(t,e,i){if(t.variableList!==null||t.hasVariableRefs)for(let n=i.length;n--;){let s=i[n],a=e[s];a&&(e[s]=Bs(t,a))}}function Bs(t,e){if(t.variableList!==null||t.hasVariableRefs){let i=t.variableList;return e.replace(Jn,(n)=>{let s=n.substring(2,n.length-1),a=i==null?void 0:i[s];return a===void 0?(t.playlistParsingError||(t.playlistParsingError=Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${s}"`)),n):a})}return e}function za(t,e,i){let n,s,a=t.variableList;if(a||(t.variableList=a={}),"QUERYPARAM"in e){n=e.QUERYPARAM;try{let o=new self.URL(i).searchParams;if(!o.has(n))throw Error(`"${n}" does not match any query parameter in URI: "${i}"`);s=o.get(n)}catch(o){t.playlistParsingError||(t.playlistParsingError=Error("EXT-X-DEFINE QUERYPARAM: "+o.message))}}else n=e.NAME,s=e.VALUE;n in a?t.playlistParsingError||(t.playlistParsingError=Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${n}"`)):a[n]=s||""}function zi(t,e,i){let n=e.IMPORT;if(i&&n in i){let s=t.variableList;s||(t.variableList=s={}),s[n]=i[n]}else t.playlistParsingError||(t.playlistParsingError=Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${n}"`))}function Ni(t=!0){if(typeof self>"u")return;return(t||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}let Dr={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,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 Cr(t,e,i=!0){return!t.split(",").some((n)=>!mi(n,e,i))}function mi(t,e,i=!0){var n;let s=Ni(i);return(n=s==null?void 0:s.isTypeSupported(kn(t,e)))!=null&&n}function kn(t,e){return`${e}/mp4;codecs="${t}"`}function Ee(t){if(t){let e=t.substring(0,4);return Dr.video[e]}return 2}function Qn(t){return t.split(",").reduce((e,i)=>{let n=Dr.video[i];return n?(2*n+e)/(e?3:2):(Dr.audio[i]+e)/(e?2:1)},0)}let un={},qa=/flac|opus/i;function Zn(t,e=!0){return t.replace(qa,(i)=>function(n,s=!0){if(un[n])return un[n];let a={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"]}[n];for(let o=0;o<a.length;o++)if(mi(a[o],"audio",s))return un[n]=a[o],a[o];return n}(i.toLowerCase(),e))}function Xa(t,e){return t&&t!=="mp4a"?t:e?e.split(",")[0]:e}let Ja=/#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,Qa=/#EXT-X-MEDIA:(.*)/g,Rl=/^#EXT(?:INF|-X-TARGETDURATION):/m,$s=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[\S ]*)/.source,/#EXT-X-BYTERANGE:*(.+)/.source,/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/#.*/.source].join("|"),"g"),Za=new RegExp([/#(EXTM3U)/.source,/#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|"));class gi{static findGroup(t,e){for(let i=0;i<t.length;i++){let n=t[i];if(n.id===e)return n}}static resolve(t,e){return d.buildAbsoluteURL(e,t,{alwaysNormalize:!0})}static isMediaPlaylist(t){return Rl.test(t)}static parseMasterPlaylist(t,e){let i={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:Mi(t)},n=[],s;for(Ja.lastIndex=0;(s=Ja.exec(t))!=null;)if(s[1]){var a;let c=new Y(s[1]);Ye(i,c,["CODECS","SUPPLEMENTAL-CODECS","ALLOWED-CPC","PATHWAY-ID","STABLE-VARIANT-ID","AUDIO","VIDEO","SUBTITLES","CLOSED-CAPTIONS","NAME"]);let u=Bs(i,s[2]),h={attrs:c,bitrate:c.decimalInteger("BANDWIDTH")||c.decimalInteger("AVERAGE-BANDWIDTH"),name:c.NAME,url:gi.resolve(u,e)},m=c.decimalResolution("RESOLUTION");m&&(h.width=m.width,h.height=m.height),Si(c.CODECS,h),(a=h.unknownCodecs)!=null&&a.length||n.push(h),i.levels.push(h)}else if(s[3]){let c=s[3],u=s[4];switch(c){case"SESSION-DATA":{let h=new Y(u);Ye(i,h,["DATA-ID","LANGUAGE","VALUE","URI"]);let m=h["DATA-ID"];m&&(i.sessionData===null&&(i.sessionData={}),i.sessionData[m]=h);break}case"SESSION-KEY":{let h=Ir(u,e,i);h.encrypted&&h.isSupported()?(i.sessionKeys===null&&(i.sessionKeys=[]),i.sessionKeys.push(h)):C.warn(`[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "${u}"`);break}case"DEFINE":{let h=new Y(u);Ye(i,h,["NAME","VALUE","QUERYPARAM"]),za(i,h,e)}break;case"CONTENT-STEERING":{let h=new Y(u);Ye(i,h,["SERVER-URI","PATHWAY-ID"]),i.contentSteering={uri:gi.resolve(h["SERVER-URI"],e),pathwayId:h["PATHWAY-ID"]||"."};break}case"START":i.startTimeOffset=Or(u)}}let o=n.length>0&&n.length<i.levels.length;return i.levels=o?n:i.levels,i.levels.length===0&&(i.playlistParsingError=Error("no levels found in manifest")),i}static parseMasterPlaylistMedia(t,e,i){let n,s={},a=i.levels,o={AUDIO:a.map((u)=>({id:u.attrs.AUDIO,audioCodec:u.audioCodec})),SUBTITLES:a.map((u)=>({id:u.attrs.SUBTITLES,textCodec:u.textCodec})),"CLOSED-CAPTIONS":[]},c=0;for(Qa.lastIndex=0;(n=Qa.exec(t))!==null;){let u=new Y(n[1]),h=u.TYPE;if(h){let m=o[h],y=s[h]||[];s[h]=y,Ye(i,u,["URI","GROUP-ID","LANGUAGE","ASSOC-LANGUAGE","STABLE-RENDITION-ID","NAME","INSTREAM-ID","CHARACTERISTICS","CHANNELS"]);let S=u.LANGUAGE,_=u["ASSOC-LANGUAGE"],w=u.CHANNELS,I=u.CHARACTERISTICS,D=u["INSTREAM-ID"],F={attrs:u,bitrate:0,id:c++,groupId:u["GROUP-ID"]||"",name:u.NAME||S||"",type:h,default:u.bool("DEFAULT"),autoselect:u.bool("AUTOSELECT"),forced:u.bool("FORCED"),lang:S,url:u.URI?gi.resolve(u.URI,e):""};if(_&&(F.assocLang=_),w&&(F.channels=w),I&&(F.characteristics=I),D&&(F.instreamId=D),m!=null&&m.length){let x=gi.findGroup(m,F.groupId)||m[0];to(F,x,"audioCodec"),to(F,x,"textCodec")}y.push(F)}}return s}static parseLevelPlaylist(t,e,i,n,s,a){let o=new ut(e),c=o.fragments,u,h,m,y=null,S=0,_=0,w=0,I=0,D=null,F=new zt(n,e),x=-1,W=!1,z=null;for($s.lastIndex=0,o.m3u8=t,o.hasVariableRefs=Mi(t);(u=$s.exec(t))!==null;){W&&(W=!1,F=new zt(n,e),F.start=w,F.sn=S,F.cc=I,F.level=i,y&&(F.initSegment=y,F.rawProgramDateTime=y.rawProgramDateTime,y.rawProgramDateTime=null,z&&(F.setByteRange(z),z=null)));let mt=u[1];if(mt){F.duration=parseFloat(mt);let Z=(" "+u[2]).slice(1);F.title=Z||null,F.tagList.push(Z?["INF",mt,Z]:["INF",mt])}else if(u[3]){if(L(F.duration)){F.start=w,m&&Gs(F,m,o),F.sn=S,F.level=i,F.cc=I,c.push(F);let Z=(" "+u[3]).slice(1);F.relurl=Bs(o,Z),Mr(F,D),D=F,w+=F.duration,S++,_=0,W=!0}}else if(u[4]){let Z=(" "+u[4]).slice(1);D?F.setByteRange(Z,D):F.setByteRange(Z)}else if(u[5])F.rawProgramDateTime=(" "+u[5]).slice(1),F.tagList.push(["PROGRAM-DATE-TIME",F.rawProgramDateTime]),x===-1&&(x=c.length);else{if(u=u[0].match(Za),!u){C.warn("No matches on slow regex match for level playlist!");continue}for(h=1;h<u.length&&u[h]===void 0;h++);let Z=(" "+u[h]).slice(1),J=(" "+u[h+1]).slice(1),kt=u[h+2]?(" "+u[h+2]).slice(1):"";switch(Z){case"PLAYLIST-TYPE":o.type=J.toUpperCase();break;case"MEDIA-SEQUENCE":S=o.startSN=parseInt(J);break;case"SKIP":{let ht=new Y(J);Ye(o,ht,["RECENTLY-REMOVED-DATERANGES"]);let wt=ht.decimalInteger("SKIPPED-SEGMENTS");if(L(wt)){o.skippedSegments=wt;for(let Mt=wt;Mt--;)c.unshift(null);S+=wt}let It=ht.enumeratedString("RECENTLY-REMOVED-DATERANGES");It&&(o.recentlyRemovedDateranges=It.split("\t"));break}case"TARGETDURATION":o.targetduration=Math.max(parseInt(J),1);break;case"VERSION":o.version=parseInt(J);break;case"INDEPENDENT-SEGMENTS":case"EXTM3U":break;case"ENDLIST":o.live=!1;break;case"#":(J||kt)&&F.tagList.push(kt?[J,kt]:[J]);break;case"DISCONTINUITY":I++,F.tagList.push(["DIS"]);break;case"GAP":F.gap=!0,F.tagList.push([Z]);break;case"BITRATE":F.tagList.push([Z,J]);break;case"DATERANGE":{let ht=new Y(J);Ye(o,ht,["ID","CLASS","START-DATE","END-DATE","SCTE35-CMD","SCTE35-OUT","SCTE35-IN"]),Ye(o,ht,ht.clientAttrs);let wt=new ct(ht,o.dateRanges[ht.ID]);wt.isValid||o.skippedSegments?o.dateRanges[wt.id]=wt:C.warn(`Ignoring invalid DATERANGE tag: "${J}"`),F.tagList.push(["EXT-X-DATERANGE",J]);break}case"DEFINE":{let ht=new Y(J);Ye(o,ht,["NAME","VALUE","IMPORT","QUERYPARAM"]),"IMPORT"in ht?zi(o,ht,a):za(o,ht,e)}break;case"DISCONTINUITY-SEQUENCE":I=parseInt(J);break;case"KEY":{let ht=Ir(J,e,o);if(ht.isSupported()){if(ht.method==="NONE"){m=void 0;break}m||(m={}),m[ht.keyFormat]&&(m=T({},m)),m[ht.keyFormat]=ht}else C.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${J}"`);break}case"START":o.startTimeOffset=Or(J);break;case"MAP":{let ht=new Y(J);if(Ye(o,ht,["BYTERANGE","URI"]),F.duration){let wt=new zt(n,e);ai(wt,ht,i,m),y=wt,F.initSegment=y,y.rawProgramDateTime&&!F.rawProgramDateTime&&(F.rawProgramDateTime=y.rawProgramDateTime)}else{let wt=F.byteRangeEndOffset;if(wt){let It=F.byteRangeStartOffset;z=`${wt-It}@${It}`}else z=null;ai(F,ht,i,m),y=F,W=!0}break}case"SERVER-CONTROL":{let ht=new Y(J);o.canBlockReload=ht.bool("CAN-BLOCK-RELOAD"),o.canSkipUntil=ht.optionalFloat("CAN-SKIP-UNTIL",0),o.canSkipDateRanges=o.canSkipUntil>0&&ht.bool("CAN-SKIP-DATERANGES"),o.partHoldBack=ht.optionalFloat("PART-HOLD-BACK",0),o.holdBack=ht.optionalFloat("HOLD-BACK",0);break}case"PART-INF":{let ht=new Y(J);o.partTarget=ht.decimalFloatingPoint("PART-TARGET");break}case"PART":{let ht=o.partList;ht||(ht=o.partList=[]);let wt=_>0?ht[ht.length-1]:void 0,It=_++,Mt=new Y(J);Ye(o,Mt,["BYTERANGE","URI"]);let at=new rt(Mt,F,e,It,wt);ht.push(at),F.duration+=at.duration;break}case"PRELOAD-HINT":{let ht=new Y(J);Ye(o,ht,["URI"]),o.preloadHint=ht;break}case"RENDITION-REPORT":{let ht=new Y(J);Ye(o,ht,["URI"]),o.renditionReports=o.renditionReports||[],o.renditionReports.push(ht);break}default:C.warn("line parsed but not handled: "+u)}}}D&&!D.relurl?(c.pop(),w-=D.duration,o.partList&&(o.fragmentHint=D)):o.partList&&(Mr(F,D),F.cc=I,o.fragmentHint=F,m&&Gs(F,m,o));let lt=c.length,it=c[0],ft=c[lt-1];if(w+=o.skippedSegments*o.targetduration,w>0&&lt&&ft){o.averagetargetduration=w/lt;let mt=ft.sn;o.endSN=mt!=="initSegment"?mt:0,o.live||(ft.endList=!0),it&&(o.startCC=it.cc)}else o.endSN=0,o.startCC=0;return o.fragmentHint&&(w+=o.fragmentHint.duration),o.totalduration=w,o.endCC=I,x>0&&function(mt,Z){let J=mt[Z];for(let kt=Z;kt--;){let ht=mt[kt];if(!ht)return;ht.programDateTime=J.programDateTime-1000*ht.duration,J=ht}}(c,x),o}}function Ir(t,e,i){var n,s;let a=new Y(t);Ye(i,a,["KEYFORMAT","KEYFORMATVERSIONS","URI","IV","URI"]);let o=(n=a.METHOD)!=null?n:"",c=a.URI,u=a.hexadecimalInteger("IV"),h=a.KEYFORMATVERSIONS,m=(s=a.KEYFORMAT)!=null?s:"identity";c&&a.IV&&!u&&C.error("Invalid IV: "+a.IV);let y=c?gi.resolve(c,e):"",S=(h||"1").split("/").map(Number).filter(Number.isFinite);return new fi(o,y,m,S,u)}function Or(t){let e=new Y(t).decimalFloatingPoint("TIME-OFFSET");return L(e)?e:null}function Si(t,e){let i=(t||"").split(/[ ,]+/).filter((n)=>n);["video","audio","text"].forEach((n)=>{let s=i.filter((a)=>function(o,c){let u=Dr[c];return!!u&&!!u[o.slice(0,4)]}(a,n));s.length&&(e[n+"Codec"]=s.join(","),i=i.filter((a)=>s.indexOf(a)===-1))}),e.unknownCodecs=i}function to(t,e,i){let n=e[i];n&&(t[i]=n)}function Mr(t,e){t.rawProgramDateTime?t.programDateTime=Date.parse(t.rawProgramDateTime):e!=null&&e.programDateTime&&(t.programDateTime=e.endProgramDateTime),L(t.programDateTime)||(t.programDateTime=null,t.rawProgramDateTime=null)}function ai(t,e,i,n){t.relurl=e.URI,e.BYTERANGE&&t.setByteRange(e.BYTERANGE),t.level=i,t.sn="initSegment",n&&(t.levelkeys=n),t.initSegment=null}function Gs(t,e,i){t.levelkeys=e;let{encryptedFragments:n}=i;n.length&&n[n.length-1].levelkeys===e||!Object.keys(e).some((s)=>e[s].isCommonEncryption)||n.push(t)}var qi="manifest",Fi="level",ei="audioTrack",pi="subtitleTrack",ie="main",Ue="audio",bi="subtitle";function Hs(t){let{type:e}=t;switch(e){case ei:return Ue;case pi:return bi;default:return ie}}function Nr(t,e){let i=t.url;return i!==void 0&&i.indexOf("data:")!==0||(i=e.url),i}class eo{constructor(t){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.hls=t,this.registerListeners()}startLoad(t){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){let{hls:t}=this;t.on(b.MANIFEST_LOADING,this.onManifestLoading,this),t.on(b.LEVEL_LOADING,this.onLevelLoading,this),t.on(b.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.on(b.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}unregisterListeners(){let{hls:t}=this;t.off(b.MANIFEST_LOADING,this.onManifestLoading,this),t.off(b.LEVEL_LOADING,this.onLevelLoading,this),t.off(b.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.off(b.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}createInternalLoader(t){let e=this.hls.config,i=e.pLoader,n=e.loader,s=new(i||n)(e);return this.loaders[t.type]=s,s}getInternalLoader(t){return this.loaders[t.type]}resetInternalLoader(t){this.loaders[t]&&delete this.loaders[t]}destroyInternalLoaders(){for(let t in this.loaders){let e=this.loaders[t];e&&e.destroy(),this.resetInternalLoader(t)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(t,e){let{url:i}=e;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:qi,url:i,deliveryDirectives:null})}onLevelLoading(t,e){let{id:i,level:n,pathwayId:s,url:a,deliveryDirectives:o}=e;this.load({id:i,level:n,pathwayId:s,responseType:"text",type:Fi,url:a,deliveryDirectives:o})}onAudioTrackLoading(t,e){let{id:i,groupId:n,url:s,deliveryDirectives:a}=e;this.load({id:i,groupId:n,level:null,responseType:"text",type:ei,url:s,deliveryDirectives:a})}onSubtitleTrackLoading(t,e){let{id:i,groupId:n,url:s,deliveryDirectives:a}=e;this.load({id:i,groupId:n,level:null,responseType:"text",type:pi,url:s,deliveryDirectives:a})}load(t){var e;let i=this.hls.config,n,s=this.getInternalLoader(t);if(s){let u=s.context;if(u&&u.url===t.url&&u.level===t.level)return void C.trace("[playlist-loader]: playlist request ongoing");C.log("[playlist-loader]: aborting previous loader for type: "+t.type),s.abort()}if(n=t.type===qi?i.manifestLoadPolicy.default:T({},i.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),s=this.createInternalLoader(t),L((e=t.deliveryDirectives)==null?void 0:e.part)){let u;if(t.type===Fi&&t.level!==null?u=this.hls.levels[t.level].details:t.type===ei&&t.id!==null?u=this.hls.audioTracks[t.id].details:t.type===pi&&t.id!==null&&(u=this.hls.subtitleTracks[t.id].details),u){let{partTarget:h,targetduration:m}=u;if(h&&m){let y=1000*Math.max(3*h,0.8*m);n=T({},n,{maxTimeToFirstByteMs:Math.min(y,n.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(y,n.maxTimeToFirstByteMs)})}}}let a=n.errorRetry||n.timeoutRetry||{},o={loadPolicy:n,timeout:n.maxLoadTimeMs,maxRetry:a.maxNumRetry||0,retryDelay:a.retryDelayMs||0,maxRetryDelay:a.maxRetryDelayMs||0},c={onSuccess:(u,h,m,y)=>{let S=this.getInternalLoader(m);this.resetInternalLoader(m.type);let _=u.data;_.indexOf("#EXTM3U")===0?(h.parsing.start=performance.now(),gi.isMediaPlaylist(_)?this.handleTrackOrLevelPlaylist(u,h,m,y||null,S):this.handleMasterPlaylist(u,h,m,y)):this.handleManifestParsingError(u,m,Error("no EXTM3U delimiter"),y||null,h)},onError:(u,h,m,y)=>{this.handleNetworkError(h,m,!1,u,y)},onTimeout:(u,h,m)=>{this.handleNetworkError(h,m,!0,void 0,u)}};s.load(t,o,c)}handleMasterPlaylist(t,e,i,n){let s=this.hls,a=t.data,o=Nr(t,i),c=gi.parseMasterPlaylist(a,o);if(c.playlistParsingError)return void this.handleManifestParsingError(t,i,c.playlistParsingError,n,e);let{contentSteering:u,levels:h,sessionData:m,sessionKeys:y,startTimeOffset:S,variableList:_}=c;this.variableList=_;let{AUDIO:w=[],SUBTITLES:I,"CLOSED-CAPTIONS":D}=gi.parseMasterPlaylistMedia(a,o,c);if(w.length)w.some((F)=>!F.url)||!h[0].audioCodec||h[0].attrs.AUDIO||(C.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),w.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new Y({}),bitrate:0,url:""}));s.trigger(b.MANIFEST_LOADED,{levels:h,audioTracks:w,subtitles:I,captions:D,contentSteering:u,url:o,stats:e,networkDetails:n,sessionData:m,sessionKeys:y,startTimeOffset:S,variableList:_})}handleTrackOrLevelPlaylist(t,e,i,n,s){let a=this.hls,{id:o,level:c,type:u}=i,h=Nr(t,i),m=L(c)?c:L(o)?o:0,y=Hs(i),S=gi.parseLevelPlaylist(t.data,h,m,y,0,this.variableList);if(u===qi){let _={attrs:new Y({}),bitrate:0,details:S,name:"",url:h};a.trigger(b.MANIFEST_LOADED,{levels:[_],audioTracks:[],url:h,stats:e,networkDetails:n,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}e.parsing.end=performance.now(),i.levelDetails=S,this.handlePlaylistLoaded(S,t,e,i,n,s)}handleManifestParsingError(t,e,i,n,s){this.hls.trigger(b.ERROR,{type:G.NETWORK_ERROR,details:N.MANIFEST_PARSING_ERROR,fatal:e.type===qi,url:t.url,err:i,error:i,reason:i.message,response:t,context:e,networkDetails:n,stats:s})}handleNetworkError(t,e,i=!1,n,s){let a=`A network ${i?"timeout":"error"+(n?" (status "+n.code+")":"")} occurred while loading ${t.type}`;t.type===Fi?a+=`: ${t.level} id: ${t.id}`:t.type!==ei&&t.type!==pi||(a+=` id: ${t.id} group-id: "${t.groupId}"`);let o=Error(a);C.warn("[playlist-loader]: "+a);let c=N.UNKNOWN,u=!1,h=this.getInternalLoader(t);switch(t.type){case qi:c=i?N.MANIFEST_LOAD_TIMEOUT:N.MANIFEST_LOAD_ERROR,u=!0;break;case Fi:c=i?N.LEVEL_LOAD_TIMEOUT:N.LEVEL_LOAD_ERROR,u=!1;break;case ei:c=i?N.AUDIO_TRACK_LOAD_TIMEOUT:N.AUDIO_TRACK_LOAD_ERROR,u=!1;break;case pi:c=i?N.SUBTITLE_TRACK_LOAD_TIMEOUT:N.SUBTITLE_LOAD_ERROR,u=!1}h&&this.resetInternalLoader(t.type);let m={type:G.NETWORK_ERROR,details:c,fatal:u,url:t.url,loader:h,context:t,error:o,networkDetails:e,stats:s};if(n){let y=(e==null?void 0:e.url)||t.url;m.response=E({url:y,data:void 0},n)}this.hls.trigger(b.ERROR,m)}handlePlaylistLoaded(t,e,i,n,s,a){let o=this.hls,{type:c,level:u,id:h,groupId:m,deliveryDirectives:y}=n,S=Nr(e,n),_=Hs(n),w=typeof n.level=="number"&&_===ie?u:void 0;if(!t.fragments.length){let D=Error("No Segments found in Playlist");return void o.trigger(b.ERROR,{type:G.NETWORK_ERROR,details:N.LEVEL_EMPTY_ERROR,fatal:!1,url:S,error:D,reason:D.message,response:e,context:n,level:w,parent:_,networkDetails:s,stats:i})}t.targetduration||(t.playlistParsingError=Error("Missing Target Duration"));let I=t.playlistParsingError;if(I)o.trigger(b.ERROR,{type:G.NETWORK_ERROR,details:N.LEVEL_PARSING_ERROR,fatal:!1,url:S,error:I,reason:I.message,response:e,context:n,level:w,parent:_,networkDetails:s,stats:i});else switch(t.live&&a&&(a.getCacheAge&&(t.ageHeader=a.getCacheAge()||0),a.getCacheAge&&!isNaN(t.ageHeader)||(t.ageHeader=0)),c){case qi:case Fi:o.trigger(b.LEVEL_LOADED,{details:t,level:w||0,id:h||0,stats:i,networkDetails:s,deliveryDirectives:y});break;case ei:o.trigger(b.AUDIO_TRACK_LOADED,{details:t,id:h||0,groupId:m||"",stats:i,networkDetails:s,deliveryDirectives:y});break;case pi:o.trigger(b.SUBTITLE_TRACK_LOADED,{details:t,id:h||0,groupId:m||"",stats:i,networkDetails:s,deliveryDirectives:y})}}}function Ks(t,e){let i;try{i=new Event("addtrack")}catch(n){i=document.createEvent("Event"),i.initEvent("addtrack",!1,!1)}i.track=t,e.dispatchEvent(i)}function io(t,e){let i=t.mode;if(i==="disabled"&&(t.mode="hidden"),t.cues&&!t.cues.getCueById(e.id))try{if(t.addCue(e),!t.cues.getCueById(e.id))throw Error("addCue is failed for: "+e)}catch(n){C.debug("[texttrack-utils]: "+n);try{let s=new self.TextTrackCue(e.startTime,e.endTime,e.text);s.id=e.id,t.addCue(s)}catch(s){C.debug("[texttrack-utils]: Legacy TextTrackCue fallback failed: "+s)}}i==="disabled"&&(t.mode=i)}function dn(t){let e=t.mode;if(e==="disabled"&&(t.mode="hidden"),t.cues)for(let i=t.cues.length;i--;)t.removeCue(t.cues[i]);e==="disabled"&&(t.mode=e)}function Fr(t,e,i,n){let s=t.mode;if(s==="disabled"&&(t.mode="hidden"),t.cues&&t.cues.length>0){let a=function(o,c,u){let h=[],m=function(y,S){if(S<y[0].startTime)return 0;let _=y.length-1;if(S>y[_].endTime)return-1;let w=0,I=_;for(;w<=I;){let D=Math.floor((I+w)/2);if(S<y[D].startTime)I=D-1;else{if(!(S>y[D].startTime&&w<_))return D;w=D+1}}return y[w].startTime-S<S-y[I].startTime?w:I}(o,c);if(m>-1)for(let y=m,S=o.length;y<S;y++){let _=o[y];if(_.startTime>=c&&_.endTime<=u)h.push(_);else if(_.startTime>u)return h}return h}(t.cues,e,i);for(let o=0;o<a.length;o++)n&&!n(a[o])||t.removeCue(a[o])}s==="disabled"&&(t.mode=s)}function Pr(t){let e=[];for(let i=0;i<t.length;i++){let n=t[i];n.kind!=="subtitles"&&n.kind!=="captions"||!n.label||e.push(t[i])}return e}var tr="org.id3",kl="com.apple.quicktime.HLS",Dn="https://aomedia.org/emsg/ID3";function Vs(){if(typeof self<"u")return self.VTTCue||self.TextTrackCue}function Ws(t,e,i,n,s){let a=new t(e,i,"");try{a.value=n,s&&(a.type=s)}catch(o){a=new t(e,i,JSON.stringify(s?E({type:s},n):n))}return a}let xr=(()=>{let t=Vs();try{t&&new t(0,Number.POSITIVE_INFINITY,"")}catch(e){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})();function er(t,e){return t.getTime()/1000-e}class no{constructor(t){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=t,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=null}_registerListeners(){let{hls:t}=this;t.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(b.MANIFEST_LOADING,this.onManifestLoading,this),t.on(b.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),t.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),t.on(b.LEVEL_UPDATED,this.onLevelUpdated,this)}_unregisterListeners(){let{hls:t}=this;t.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(b.MANIFEST_LOADING,this.onManifestLoading,this),t.off(b.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),t.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),t.off(b.LEVEL_UPDATED,this.onLevelUpdated,this)}onMediaAttached(t,e){this.media=e.media}onMediaDetaching(){this.id3Track&&(dn(this.id3Track),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={})}onManifestLoading(){this.dateRangeCuesAppended={}}createTrack(t){let e=this.getID3Track(t.textTracks);return e.mode="hidden",e}getID3Track(t){if(this.media){for(let e=0;e<t.length;e++){let i=t[e];if(i.kind==="metadata"&&i.label==="id3")return Ks(i,this.media),i}return this.media.addTextTrack("metadata","id3")}}onFragParsingMetadata(t,e){if(!this.media)return;let{hls:{config:{enableEmsgMetadataCues:i,enableID3MetadataCues:n}}}=this;if(!i&&!n)return;let{samples:s}=e;this.id3Track||(this.id3Track=this.createTrack(this.media));let a=Vs();if(a)for(let o=0;o<s.length;o++){let c=s[o].type;if(c===Dn&&!i||!n)continue;let u=At(s[o].data);if(u){let h=s[o].pts,m=h+s[o].duration;m>xr&&(m=xr),m-h<=0&&(m=h+0.25);for(let y=0;y<u.length;y++){let S=u[y];if(!Pt(S)){this.updateId3CueEnds(h,c);let _=Ws(a,h,m,S,c);_&&this.id3Track.addCue(_)}}}}}updateId3CueEnds(t,e){var i;let n=(i=this.id3Track)==null?void 0:i.cues;if(n)for(let s=n.length;s--;){let a=n[s];a.type===e&&a.startTime<t&&a.endTime===xr&&(a.endTime=t)}}onBufferFlushing(t,{startOffset:e,endOffset:i,type:n}){let{id3Track:s,hls:a}=this;if(!a)return;let{config:{enableEmsgMetadataCues:o,enableID3MetadataCues:c}}=a;if(s&&(o||c)){let u;u=n==="audio"?(h)=>h.type===tr&&c:n==="video"?(h)=>h.type===Dn&&o:(h)=>h.type===tr&&c||h.type===Dn&&o,Fr(s,e,i,u)}}onLevelUpdated(t,{details:e}){if(!this.media||!e.hasProgramDateTime||!this.hls.config.enableDateRangeMetadataCues)return;let{dateRangeCuesAppended:i,id3Track:n}=this,{dateRanges:s}=e,a=Object.keys(s);if(n){let y=Object.keys(i).filter((S)=>!a.includes(S));for(let S=y.length;S--;){let _=y[S];Object.keys(i[_].cues).forEach((w)=>{n.removeCue(i[_].cues[w])}),delete i[_]}}let o=e.fragments[e.fragments.length-1];if(a.length===0||!L(o==null?void 0:o.programDateTime))return;this.id3Track||(this.id3Track=this.createTrack(this.media));let c=o.programDateTime/1000-o.start,u=Vs();for(let y=0;y<a.length;y++){let S=a[y],_=s[S],w=er(_.startDate,c),I=i[S],D=(I==null?void 0:I.cues)||{},F=(I==null?void 0:I.durationKnown)||!1,x=xr,W=_.endDate;if(W)x=er(W,c),F=!0;else if(_.endOnNext&&!F){let lt=a.reduce((it,ft)=>{if(ft!==_.id){let mt=s[ft];if(mt.class===_.class&&mt.startDate>_.startDate&&(!it||_.startDate<it.startDate))return mt}return it},null);lt&&(x=er(lt.startDate,c),F=!0)}let z=Object.keys(_.attr);for(let lt=0;lt<z.length;lt++){let it=z[lt];if((m=it)==="ID"||m==="CLASS"||m==="START-DATE"||m==="DURATION"||m==="END-DATE"||m==="END-ON-NEXT")continue;let ft=D[it];if(ft)F&&!I.durationKnown&&(ft.endTime=x);else if(u){let mt=_.attr[it];Q(it)&&(h=mt,mt=Uint8Array.from(h.replace(/^0x/,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" ")).buffer);let Z=Ws(u,w,x,{key:it,data:mt},kl);Z&&(Z.id=S,this.id3Track.addCue(Z),D[it]=Z)}}i[S]={cues:D,dateRange:_,durationKnown:F}}var h,m}}class Ys{constructor(t){this.hls=void 0,this.config=void 0,this.media=null,this.levelDetails=null,this.currentTime=0,this.stallCount=0,this._latency=null,this.timeupdateHandler=()=>this.timeupdate(),this.hls=t,this.config=t.config,this.registerListeners()}get latency(){return this._latency||0}get maxLatency(){let{config:t,levelDetails:e}=this;return t.liveMaxLatencyDuration!==void 0?t.liveMaxLatencyDuration:e?t.liveMaxLatencyDurationCount*e.targetduration:0}get targetLatency(){let{levelDetails:t}=this;if(t===null)return null;let{holdBack:e,partHoldBack:i,targetduration:n}=t,{liveSyncDuration:s,liveSyncDurationCount:a,lowLatencyMode:o}=this.config,c=this.hls.userConfig,u=o&&i||e;(c.liveSyncDuration||c.liveSyncDurationCount||u===0)&&(u=s!==void 0?s:a*n);let h=n;return u+Math.min(1*this.stallCount,h)}get liveSyncPosition(){let t=this.estimateLiveEdge(),e=this.targetLatency,i=this.levelDetails;if(t===null||e===null||i===null)return null;let n=i.edge,s=t-e-this.edgeStalled,a=n-i.totalduration,o=n-(this.config.lowLatencyMode&&i.partTarget||i.targetduration);return Math.min(Math.max(a,s),o)}get drift(){let{levelDetails:t}=this;return t===null?1:t.drift}get edgeStalled(){let{levelDetails:t}=this;if(t===null)return 0;let e=3*(this.config.lowLatencyMode&&t.partTarget||t.targetduration);return Math.max(t.age-e,0)}get forwardBufferLength(){let{media:t,levelDetails:e}=this;if(!t||!e)return 0;let i=t.buffered.length;return(i?t.buffered.end(i-1):e.edge)-this.currentTime}destroy(){this.unregisterListeners(),this.onMediaDetaching(),this.levelDetails=null,this.hls=this.timeupdateHandler=null}registerListeners(){this.hls.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.on(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(b.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.on(b.ERROR,this.onError,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.off(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(b.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.off(b.ERROR,this.onError,this)}onMediaAttached(t,e){this.media=e.media,this.media.addEventListener("timeupdate",this.timeupdateHandler)}onMediaDetaching(){this.media&&(this.media.removeEventListener("timeupdate",this.timeupdateHandler),this.media=null)}onManifestLoading(){this.levelDetails=null,this._latency=null,this.stallCount=0}onLevelUpdated(t,{details:e}){this.levelDetails=e,e.advanced&&this.timeupdate(),!e.live&&this.media&&this.media.removeEventListener("timeupdate",this.timeupdateHandler)}onError(t,e){var i;e.details===N.BUFFER_STALLED_ERROR&&(this.stallCount++,(i=this.levelDetails)!=null&&i.live&&C.warn("[playback-rate-controller]: Stall detected, adjusting target latency"))}timeupdate(){let{media:t,levelDetails:e}=this;if(!t||!e)return;this.currentTime=t.currentTime;let i=this.computeLatency();if(i===null)return;this._latency=i;let{lowLatencyMode:n,maxLiveSyncPlaybackRate:s}=this.config;if(!n||s===1||!e.live)return;let a=this.targetLatency;if(a===null)return;let o=i-a;if(o<Math.min(this.maxLatency,a+e.targetduration)&&o>0.05&&this.forwardBufferLength>1){let c=Math.min(2,Math.max(1,s)),u=Math.round(2/(1+Math.exp(-0.75*o-this.edgeStalled))*20)/20;t.playbackRate=Math.min(c,Math.max(1,u))}else t.playbackRate!==1&&t.playbackRate!==0&&(t.playbackRate=1)}estimateLiveEdge(){let{levelDetails:t}=this;return t===null?null:t.edge+t.age}computeLatency(){let t=this.estimateLiveEdge();return t===null?null:t-this.currentTime}}let js=["NONE","TYPE-0","TYPE-1",null],Ur=["SDR","PQ","HLG"];var zs="",ro="YES",Dl="v2";function qs(t){let{canSkipUntil:e,canSkipDateRanges:i,age:n}=t;return e&&n<e/2?i?Dl:ro:zs}class Ti{constructor(t,e,i){this.msn=void 0,this.part=void 0,this.skip=void 0,this.msn=t,this.part=e,this.skip=i}addDirectives(t){let e=new self.URL(t);return this.msn!==void 0&&e.searchParams.set("_HLS_msn",this.msn.toString()),this.part!==void 0&&e.searchParams.set("_HLS_part",this.part.toString()),this.skip&&e.searchParams.set("_HLS_skip",this.skip),e.href}}class hn{constructor(t){this._attrs=void 0,this.audioCodec=void 0,this.bitrate=void 0,this.codecSet=void 0,this.url=void 0,this.frameRate=void 0,this.height=void 0,this.id=void 0,this.name=void 0,this.videoCodec=void 0,this.width=void 0,this.details=void 0,this.fragmentError=0,this.loadError=0,this.loaded=void 0,this.realBitrate=0,this.supportedPromise=void 0,this.supportedResult=void 0,this._avgBitrate=0,this._audioGroups=void 0,this._subtitleGroups=void 0,this._urlId=0,this.url=[t.url],this._attrs=[t.attrs],this.bitrate=t.bitrate,t.details&&(this.details=t.details),this.id=t.id||0,this.name=t.name,this.width=t.width||0,this.height=t.height||0,this.frameRate=t.attrs.optionalFloat("FRAME-RATE",0),this._avgBitrate=t.attrs.decimalInteger("AVERAGE-BANDWIDTH"),this.audioCodec=t.audioCodec,this.videoCodec=t.videoCodec,this.codecSet=[t.videoCodec,t.audioCodec].filter((e)=>!!e).map((e)=>e.substring(0,4)).join(","),this.addGroupId("audio",t.attrs.AUDIO),this.addGroupId("text",t.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(t){return so(this._audioGroups,t)}hasSubtitleGroup(t){return so(this._subtitleGroups,t)}get audioGroups(){return this._audioGroups}get subtitleGroups(){return this._subtitleGroups}addGroupId(t,e){if(e){if(t==="audio"){let i=this._audioGroups;i||(i=this._audioGroups=[]),i.indexOf(e)===-1&&i.push(e)}else if(t==="text"){let i=this._subtitleGroups;i||(i=this._subtitleGroups=[]),i.indexOf(e)===-1&&i.push(e)}}}get urlId(){return 0}set urlId(t){}get audioGroupIds(){return this.audioGroups?[this.audioGroupId]:void 0}get textGroupIds(){return this.subtitleGroups?[this.textGroupId]:void 0}get audioGroupId(){var t;return(t=this.audioGroups)==null?void 0:t[0]}get textGroupId(){var t;return(t=this.subtitleGroups)==null?void 0:t[0]}addFallback(){}}function so(t,e){return!(!e||!t)&&t.indexOf(e)!==-1}function fn(t,e){let i=e.startPTS;if(L(i)){let n,s=0;e.sn>t.sn?(s=i-t.start,n=t):(s=t.start-i,n=e),n.duration!==s&&(n.duration=s)}else if(e.sn>t.sn)t.cc===e.cc&&t.minEndPTS?e.start=t.start+(t.minEndPTS-t.start):e.start=t.start+t.duration;else e.start=Math.max(t.start-e.duration,0)}function ir(t,e,i,n,s,a){n-i<=0&&(C.warn("Fragment should have a positive duration",e),n=i+e.duration,a=s+e.duration);let o=i,c=n,u=e.startPTS,h=e.endPTS;if(L(u)){let I=Math.abs(u-i);L(e.deltaPTS)?e.deltaPTS=Math.max(I,e.deltaPTS):e.deltaPTS=I,o=Math.max(i,u),i=Math.min(i,u),s=Math.min(s,e.startDTS),c=Math.min(n,h),n=Math.max(n,h),a=Math.max(a,e.endDTS)}let m=i-e.start;e.start!==0&&(e.start=i),e.duration=n-e.start,e.startPTS=i,e.maxStartPTS=o,e.startDTS=s,e.endPTS=n,e.minEndPTS=c,e.endDTS=a;let y=e.sn;if(!t||y<t.startSN||y>t.endSN)return 0;let S,_=y-t.startSN,w=t.fragments;for(w[_]=e,S=_;S>0;S--)fn(w[S],w[S-1]);for(S=_;S<w.length-1;S++)fn(w[S],w[S+1]);return t.fragmentHint&&fn(w[w.length-1],t.fragmentHint),t.PTSKnown=t.alignedSliding=!0,m}function Br(t,e){let i=null,n=t.fragments;for(let u=n.length-1;u>=0;u--){let h=n[u].initSegment;if(h){i=h;break}}t.fragmentHint&&delete t.fragmentHint.endPTS;let s,a=0;if(function(u,h,m){let y=h.skippedSegments,S=Math.max(u.startSN,h.startSN)-h.startSN,_=(u.fragmentHint?1:0)+(y?h.endSN:Math.min(u.endSN,h.endSN))-h.startSN,w=h.startSN-u.startSN,I=h.fragmentHint?h.fragments.concat(h.fragmentHint):h.fragments,D=u.fragmentHint?u.fragments.concat(u.fragmentHint):u.fragments;for(let F=S;F<=_;F++){let x=D[w+F],W=I[F];y&&!W&&F<y&&(W=h.fragments[F]=x),x&&W&&m(x,W)}}(t,e,(u,h)=>{u.relurl&&(a=u.cc-h.cc),L(u.startPTS)&&L(u.endPTS)&&(h.start=h.startPTS=u.startPTS,h.startDTS=u.startDTS,h.maxStartPTS=u.maxStartPTS,h.endPTS=u.endPTS,h.endDTS=u.endDTS,h.minEndPTS=u.minEndPTS,h.duration=u.endPTS-u.startPTS,h.duration&&(s=h),e.PTSKnown=e.alignedSliding=!0),h.elementaryStreams=u.elementaryStreams,h.loader=u.loader,h.stats=u.stats,u.initSegment&&(h.initSegment=u.initSegment,i=u.initSegment)}),i)(e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments).forEach((u)=>{var h;!u||u.initSegment&&u.initSegment.relurl!==((h=i)==null?void 0:h.relurl)||(u.initSegment=i)});if(e.skippedSegments)if(e.deltaUpdateFailed=e.fragments.some((u)=>!u),e.deltaUpdateFailed){C.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let u=e.skippedSegments;u--;)e.fragments.shift();e.startSN=e.fragments[0].sn,e.startCC=e.fragments[0].cc}else e.canSkipDateRanges&&(e.dateRanges=function(u,h,m){let y=T({},u);return m&&m.forEach((S)=>{delete y[S]}),Object.keys(h).forEach((S)=>{let _=new ct(h[S].attr,y[S]);_.isValid?y[S]=_:C.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${JSON.stringify(h[S].attr)}"`)}),y}(t.dateRanges,e.dateRanges,e.recentlyRemovedDateranges));let o=e.fragments;if(a){C.warn("discontinuity sliding from playlist, take drift into account");for(let u=0;u<o.length;u++)o[u].cc+=a}e.skippedSegments&&(e.startCC=e.fragments[0].cc),function(u,h,m){if(u&&h){let y=0;for(let S=0,_=u.length;S<=_;S++){let w=u[S],I=h[S+y];w&&I&&w.index===I.index&&w.fragment.sn===I.fragment.sn?m(w,I):y--}}}(t.partList,e.partList,(u,h)=>{h.elementaryStreams=u.elementaryStreams,h.stats=u.stats}),s?ir(e,s,s.startPTS,s.endPTS,s.startDTS,s.endDTS):$r(t,e),o.length&&(e.totalduration=e.edge-o[0].start),e.driftStartTime=t.driftStartTime,e.driftStart=t.driftStart;let c=e.advancedDateTime;if(e.advanced&&c){let u=e.edge;e.driftStart||(e.driftStartTime=c,e.driftStart=u),e.driftEndTime=c,e.driftEnd=u}else e.driftEndTime=t.driftEndTime,e.driftEnd=t.driftEnd,e.advancedDateTime=t.advancedDateTime}function $r(t,e){let i=e.startSN+e.skippedSegments-t.startSN,n=t.fragments;i<0||i>=n.length||nr(e,n[i].start)}function nr(t,e){if(e){let i=t.fragments;for(let n=t.skippedSegments;n<i.length;n++)i[n].start+=e;t.fragmentHint&&(t.fragmentHint.start+=e)}}function ao(t,e,i){var n;return t!=null&&t.details?oo((n=t.details)==null?void 0:n.partList,e,i):null}function oo(t,e,i){if(t)for(let n=t.length;n--;){let s=t[n];if(s.index===i&&s.fragment.sn===e)return s}return null}function Xs(t){t.forEach((e,i)=>{let{details:n}=e;n!=null&&n.fragments&&n.fragments.forEach((s)=>{s.level=i})})}function Gr(t){switch(t.details){case N.FRAG_LOAD_TIMEOUT:case N.KEY_LOAD_TIMEOUT:case N.LEVEL_LOAD_TIMEOUT:case N.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function lo(t,e){let i=Gr(e);return t.default[(i?"timeout":"error")+"Retry"]}function Js(t,e){let i=t.backoff==="linear"?1:Math.pow(2,e);return Math.min(i*t.retryDelayMs,t.maxRetryDelayMs)}function co(t){return E(E({},t),{errorRetry:null,timeoutRetry:null})}function Cn(t,e,i,n){if(!t)return!1;let s=n==null?void 0:n.code,a=e<t.maxNumRetry&&(function(o){return o===0&&navigator.onLine===!1||!!o&&(o<400||o>499)}(s)||!!i);return t.shouldRetry?t.shouldRetry(t,e,i,n,a):a}let rr=function(t,e){let i=0,n=t.length-1,s=null,a=null;for(;i<=n;){s=(i+n)/2|0,a=t[s];let o=e(a);if(o>0)i=s+1;else{if(!(o<0))return a;n=s-1}}return null};function In(t,e,i=0,n=0){let s=null;if(t){s=e[t.sn-e[0].sn+1]||null;let o=t.endDTS-i;o>0&&o<0.0000015&&(i+=0.0000015)}else i===0&&e[0].start===0&&(s=e[0]);if(s&&(!t||t.level===s.level)&&mn(i,n,s)===0)return s;let a=rr(e,mn.bind(null,i,n));return!a||a===t&&s?s:a}function mn(t=0,e=0,i){if(i.start<=t&&i.start+i.duration>t)return 0;let n=Math.min(e,i.duration+(i.deltaPTS?i.deltaPTS:0));return i.start+i.duration-n<=t?1:i.start-n>t&&i.start?-1:0}function je(t,e,i){let n=1000*Math.min(e,i.duration+(i.deltaPTS?i.deltaPTS:0));return(i.endProgramDateTime||0)-n>t}var Qs=0,Pi=2,sr=3,Ce=5,gn=0,Zs=1,ta=2;class Ae{constructor(t,e){this.hls=void 0,this.timer=-1,this.requestScheduled=-1,this.canLoad=!1,this.log=void 0,this.warn=void 0,this.log=C.log.bind(C,e+":"),this.warn=C.warn.bind(C,e+":"),this.hls=t}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){this.timer!==-1&&(self.clearTimeout(this.timer),this.timer=-1)}startLoad(){this.canLoad=!0,this.requestScheduled=-1,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(t,e,i){let n=e==null?void 0:e.renditionReports;if(n){let s=-1;for(let a=0;a<n.length;a++){let o=n[a],c;try{c=new self.URL(o.URI,e.url).href}catch(u){C.warn("Could not construct new URL for Rendition Report: "+u),c=o.URI||""}if(c===t){s=a;break}c===t.substring(0,c.length)&&(s=a)}if(s!==-1){let a=n[s],o=parseInt(a["LAST-MSN"])||(e==null?void 0:e.lastPartSn),c=parseInt(a["LAST-PART"])||(e==null?void 0:e.lastPartIndex);if(this.hls.config.lowLatencyMode){let h=Math.min(e.age-e.partTarget,e.targetduration);c>=0&&h>e.partTarget&&(c+=1)}let u=i&&qs(i);return new Ti(o,c>=0?c:void 0,u)}}}loadPlaylist(t){this.requestScheduled===-1&&(this.requestScheduled=self.performance.now())}shouldLoadPlaylist(t){return this.canLoad&&!!t&&!!t.url&&(!t.details||t.details.live)}shouldReloadPlaylist(t){return this.timer===-1&&this.requestScheduled===-1&&this.shouldLoadPlaylist(t)}playlistLoaded(t,e,i){let{details:n,stats:s}=e,a=self.performance.now(),o=s.loading.first?Math.max(0,a-s.loading.first):0;if(n.advancedDateTime=Date.now()-o,n.live||i!=null&&i.live){if(n.reloaded(i),i&&this.log(`live playlist ${t} ${n.advanced?"REFRESHED "+n.lastPartSn+"-"+n.lastPartIndex:n.updated?"UPDATED":"MISSED"}`),i&&n.fragments.length>0&&Br(i,n),!this.canLoad||!n.live)return;let c,u=void 0,h=void 0;if(n.canBlockReload&&n.endSN&&n.advanced){let w=this.hls.config.lowLatencyMode,I=n.lastPartSn,D=n.endSN,F=n.lastPartIndex,x=I===D,W=w?0:F;F!==-1?(u=x?D+1:I,h=x?W:F+1):u=D+1;let z=n.age,lt=z+n.ageHeader,it=Math.min(lt-n.partTarget,1.5*n.targetduration);if(it>0){if(i&&it>i.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${i.tuneInGoal} to: ${it} with playlist age: ${n.age}`),it=0;else{let ft=Math.floor(it/n.targetduration);if(u+=ft,h!==void 0)h+=Math.round(it%n.targetduration/n.partTarget);this.log(`CDN Tune-in age: ${n.ageHeader}s last advanced ${z.toFixed(2)}s goal: ${it} skip sn ${ft} to part ${h}`)}n.tuneInGoal=it}if(c=this.getDeliveryDirectives(n,e.deliveryDirectives,u,h),w||!x)return void this.loadPlaylist(c)}else(n.canBlockReload||n.canSkipUntil)&&(c=this.getDeliveryDirectives(n,e.deliveryDirectives,u,h));let m=this.hls.mainForwardBufferInfo,y=m?m.end-m.len:0,S=function(w,I=1/0){let D=1000*w.targetduration;if(w.updated){let F=w.fragments;if(F.length&&D*4>I){let W=1000*F[F.length-1].duration;W<D&&(D=W)}}else D/=2;return Math.round(D)}(n,1000*(n.edge-y));n.updated&&a>this.requestScheduled+S&&(this.requestScheduled=s.loading.start),u!==void 0&&n.canBlockReload?this.requestScheduled=s.loading.first+S-(1000*n.partTarget||1000):this.requestScheduled===-1||this.requestScheduled+S<a?this.requestScheduled=a:this.requestScheduled-a<=0&&(this.requestScheduled+=S);let _=this.requestScheduled-a;_=Math.max(0,_),this.log(`reload live playlist ${t} in ${Math.round(_)} ms`),this.timer=self.setTimeout(()=>this.loadPlaylist(c),_)}else this.clearTimer()}getDeliveryDirectives(t,e,i,n){let s=qs(t);return e!=null&&e.skip&&t.deltaUpdateFailed&&(i=e.msn,n=e.part,s=zs),new Ti(i,n,s)}checkRetry(t){let e=t.details,i=Gr(t),n=t.errorAction,{action:s,retryCount:a=0,retryConfig:o}=n||{},c=!!n&&!!o&&(s===Ce||!n.resolved&&s===Pi);if(c){var u;if(this.requestScheduled=-1,a>=o.maxNumRetry)return!1;if(i&&(u=t.context)!=null&&u.deliveryDirectives)this.warn(`Retrying playlist loading ${a+1}/${o.maxNumRetry} after "${e}" without delivery-directives`),this.loadPlaylist();else{let h=Js(o,a);this.timer=self.setTimeout(()=>this.loadPlaylist(),h),this.warn(`Retrying playlist loading ${a+1}/${o.maxNumRetry} after "${e}" in ${h}ms`)}t.levelRetry=!0,n.resolved=!0}return c}}class pn{constructor(t,e=0,i=0){this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=t,this.alpha_=t?Math.exp(Math.log(0.5)/t):0,this.estimate_=e,this.totalWeight_=i}sample(t,e){let i=Math.pow(this.alpha_,t);this.estimate_=e*(1-i)+i*this.estimate_,this.totalWeight_+=t}getTotalWeight(){return this.totalWeight_}getEstimate(){if(this.alpha_){let t=1-Math.pow(this.alpha_,this.totalWeight_);if(t)return this.estimate_/t}return this.estimate_}}class ea{constructor(t,e,i,n=100){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=i,this.minWeight_=0.001,this.minDelayMs_=50,this.slow_=new pn(t),this.fast_=new pn(e),this.defaultTTFB_=n,this.ttfb_=new pn(t)}update(t,e){let{slow_:i,fast_:n,ttfb_:s}=this;i.halfLife!==t&&(this.slow_=new pn(t,i.getEstimate(),i.getTotalWeight())),n.halfLife!==e&&(this.fast_=new pn(e,n.getEstimate(),n.getTotalWeight())),s.halfLife!==t&&(this.ttfb_=new pn(t,s.getEstimate(),s.getTotalWeight()))}sample(t,e){let i=(t=Math.max(t,this.minDelayMs_))/1000,n=8*e/i;this.fast_.sample(i,n),this.slow_.sample(i,n)}sampleTTFB(t){let e=t/1000,i=Math.sqrt(2)*Math.exp(-Math.pow(e,2)/2);this.ttfb_.sample(i,Math.max(t,5))}canEstimate(){return this.fast_.getTotalWeight()>=this.minWeight_}getEstimate(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}getEstimateTTFB(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}destroy(){}}let Hr={supported:!0,configurations:[],decodingInfoResults:[{supported:!0,powerEfficient:!0,smooth:!0}]},ia={};function Cl(t,e,i,n,s,a){let o=t.audioCodec?t.audioGroups:null,c=a==null?void 0:a.audioCodec,u=a==null?void 0:a.channels,h=u?parseInt(u):c?1/0:2,m=null;if(o!=null&&o.length)try{m=o.length===1&&o[0]?e.groups[o[0]].channels:o.reduce((y,S)=>{if(S){let _=e.groups[S];if(!_)throw Error(`Audio track group ${S} not found`);Object.keys(_.channels).forEach((w)=>{y[w]=(y[w]||0)+_.channels[w]})}return y},{2:0})}catch(y){return!0}return t.videoCodec!==void 0&&(t.width>1920&&t.height>1088||t.height>1920&&t.width>1088||t.frameRate>Math.max(n,30)||t.videoRange!=="SDR"&&t.videoRange!==i||t.bitrate>Math.max(s,8000000))||!!m&&L(h)&&Object.keys(m).some((y)=>parseInt(y)>h)}function Xi(t,e,i){let{videoCodec:n,audioCodec:s}=t;if(!n||!s||!i)return Promise.resolve(Hr);let a={width:t.width,height:t.height,bitrate:Math.ceil(Math.max(0.9*t.bitrate,t.averageBitrate)),framerate:t.frameRate||30},o=t.videoRange;o!=="SDR"&&(a.transferFunction=o.toLowerCase());let c=n.split(",").map((u)=>({type:"media-source",video:E(E({},a),{},{contentType:kn(u,"video")})}));return s&&t.audioGroups&&t.audioGroups.forEach((u)=>{var h;u&&((h=e.groups[u])==null||h.tracks.forEach((m)=>{if(m.groupId===u){let y=m.channels||"",S=parseFloat(y);L(S)&&S>2&&c.push.apply(c,s.split(",").map((_)=>({type:"media-source",audio:{contentType:kn(_,"audio"),channels:""+S}})))}}))}),Promise.all(c.map((u)=>{let h=function(m){let{audio:y,video:S}=m,_=S||y;if(_){let w=_.contentType.split('"')[1];if(S)return`r${S.height}x${S.width}f${Math.ceil(S.framerate)}${S.transferFunction||"sd"}_${w}_${Math.ceil(S.bitrate/1e5)}`;if(y)return`c${y.channels}${y.spatialRendering?"s":"n"}_${w}`}return""}(u);return ia[h]||(ia[h]=i.decodingInfo(u))})).then((u)=>({supported:!u.some((h)=>!h.supported),configurations:c,decodingInfoResults:u})).catch((u)=>({supported:!1,configurations:c,decodingInfoResults:[],error:u}))}function Il(t,e){let i=!1,n=[];return t&&(i=t!=="SDR",n=[t]),e&&(n=e.allowedVideoRanges||Ur.slice(0),i=e.preferHDR!==void 0?e.preferHDR:function(){if(typeof matchMedia=="function"){let s=matchMedia("(dynamic-range: high)"),a=matchMedia("bad query");if(s.media!==a.media)return s.matches===!0}return!1}(),n=i?n.filter((s)=>s!=="SDR"):["SDR"]),{preferHDR:i,allowedVideoRanges:n}}function Be(t,e){C.log(`[abr] start candidates with "${t}" ignored because ${e}`)}function _i(t,e,i){if("attrs"in t){let n=e.indexOf(t);if(n!==-1)return n}for(let n=0;n<e.length;n++)if(On(t,e[n],i))return n;return-1}function On(t,e,i){let{groupId:n,name:s,lang:a,assocLang:o,characteristics:c,default:u}=t,h=t.forced;return(n===void 0||e.groupId===n)&&(s===void 0||e.name===s)&&(a===void 0||e.lang===a)&&(a===void 0||e.assocLang===o)&&(u===void 0||e.default===u)&&(h===void 0||e.forced===h)&&(c===void 0||function(m,y=""){let S=m.split(","),_=y.split(",");return S.length===_.length&&!S.some((w)=>_.indexOf(w)===-1)}(c,e.characteristics))&&(i===void 0||i(t,e))}function Mn(t,e){let{audioCodec:i,channels:n}=t;return!(i!==void 0&&(e.audioCodec||"").substring(0,4)!==i.substring(0,4)||n!==void 0&&n!==(e.channels||"2"))}function uo(t,e,i){for(let n=e;n;n--)if(i(t[n]))return n;for(let n=e+1;n<t.length;n++)if(i(t[n]))return n;return-1}var ze="NOT_LOADED",ar="APPENDING",vn="PARTIAL",de="OK";class na{constructor(t){this.activePartLists=Object.create(null),this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=0.2,this.hls=void 0,this.hasGaps=!1,this.hls=t,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(b.BUFFER_APPENDED,this.onBufferAppended,this),t.on(b.FRAG_BUFFERED,this.onFragBuffered,this),t.on(b.FRAG_LOADED,this.onFragLoaded,this)}_unregisterListeners(){let{hls:t}=this;t.off(b.BUFFER_APPENDED,this.onBufferAppended,this),t.off(b.FRAG_BUFFERED,this.onFragBuffered,this),t.off(b.FRAG_LOADED,this.onFragLoaded,this)}destroy(){this._unregisterListeners(),this.fragments=this.activePartLists=this.endListFragments=this.timeRanges=null}getAppendedFrag(t,e){let i=this.activePartLists[e];if(i)for(let n=i.length;n--;){let s=i[n];if(!s)break;let a=s.end;if(s.start<=t&&a!==null&&t<=a)return s}return this.getBufferedFrag(t,e)}getBufferedFrag(t,e){let{fragments:i}=this,n=Object.keys(i);for(let s=n.length;s--;){let a=i[n[s]];if((a==null?void 0:a.body.type)===e&&a.buffered){let o=a.body;if(o.start<=t&&t<=o.end)return o}}return null}detectEvictedFragments(t,e,i,n){this.timeRanges&&(this.timeRanges[t]=e);let s=(n==null?void 0:n.fragment.sn)||-1;Object.keys(this.fragments).forEach((a)=>{let o=this.fragments[a];if(!o)return;if(s>=o.body.sn)return;if(!o.buffered&&!o.loaded)return void(o.body.type===i&&this.removeFragment(o.body));let c=o.range[t];c&&c.time.some((u)=>{let h=!this.isTimeBuffered(u.startPTS,u.endPTS,e);return h&&this.removeFragment(o.body),h})})}detectPartialFragments(t){let e=this.timeRanges,{frag:i,part:n}=t;if(!e||i.sn==="initSegment")return;let s=$e(i),a=this.fragments[s];if(!a||a.buffered&&i.gap)return;let o=!i.relurl;if(Object.keys(e).forEach((c)=>{let u=i.elementaryStreams[c];if(!u)return;let h=e[c],m=o||u.partial===!0;a.range[c]=this.getBufferedTimes(i,n,m,h)}),a.loaded=null,Object.keys(a.range).length)a.buffered=!0,(a.body.endList=i.endList||a.body.endList)&&(this.endListFragments[a.body.type]=a),Kr(a)||this.removeParts(i.sn-1,i.type);else this.removeFragment(a.body)}removeParts(t,e){let i=this.activePartLists[e];i&&(this.activePartLists[e]=i.filter((n)=>n.fragment.sn>=t))}fragBuffered(t,e){let i=$e(t),n=this.fragments[i];!n&&e&&(n=this.fragments[i]={body:t,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},t.gap&&(this.hasGaps=!0)),n&&(n.loaded=null,n.buffered=!0)}getBufferedTimes(t,e,i,n){let s={time:[],partial:i},a=t.start,o=t.end,c=t.minEndPTS||o,u=t.maxStartPTS||a;for(let h=0;h<n.length;h++){let m=n.start(h)-this.bufferPadding,y=n.end(h)+this.bufferPadding;if(u>=m&&c<=y){s.time.push({startPTS:Math.max(a,n.start(h)),endPTS:Math.min(o,n.end(h))});break}if(a<y&&o>m){let S=Math.max(a,n.start(h)),_=Math.min(o,n.end(h));_>S&&(s.partial=!0,s.time.push({startPTS:S,endPTS:_}))}else if(o<=m)break}return s}getPartialFragment(t){let e,i,n,s=null,a=0,{bufferPadding:o,fragments:c}=this;return Object.keys(c).forEach((u)=>{let h=c[u];h&&Kr(h)&&(i=h.body.start-o,n=h.body.end+o,t>=i&&t<=n&&(e=Math.min(t-i,n-t),a<=e&&(s=h.body,a=e)))}),s}isEndListAppended(t){let e=this.endListFragments[t];return e!==void 0&&(e.buffered||Kr(e))}getState(t){let e=$e(t),i=this.fragments[e];return i?i.buffered?Kr(i)?vn:de:ar:ze}isTimeBuffered(t,e,i){let n,s;for(let a=0;a<i.length;a++){if(n=i.start(a)-this.bufferPadding,s=i.end(a)+this.bufferPadding,t>=n&&e<=s)return!0;if(e<=n)return!1}return!1}onFragLoaded(t,e){let{frag:i,part:n}=e;if(i.sn==="initSegment"||i.bitrateTest)return;let s=n?null:e,a=$e(i);this.fragments[a]={body:i,appendedPTS:null,loaded:s,buffered:!1,range:Object.create(null)}}onBufferAppended(t,e){let{frag:i,part:n,timeRanges:s}=e;if(i.sn==="initSegment")return;let a=i.type;if(n){let o=this.activePartLists[a];o||(this.activePartLists[a]=o=[]),o.push(n)}this.timeRanges=s,Object.keys(s).forEach((o)=>{let c=s[o];this.detectEvictedFragments(o,c,a,n)})}onFragBuffered(t,e){this.detectPartialFragments(e)}hasFragment(t){let e=$e(t);return!!this.fragments[e]}hasParts(t){var e;return!((e=this.activePartLists[t])==null||!e.length)}removeFragmentsInRange(t,e,i,n,s){n&&!this.hasGaps||Object.keys(this.fragments).forEach((a)=>{let o=this.fragments[a];if(!o)return;let c=o.body;c.type!==i||n&&!c.gap||c.start<e&&c.end>t&&(o.buffered||s)&&this.removeFragment(c)})}removeFragment(t){let e=$e(t);t.stats.loaded=0,t.clearElementaryStreamInfo();let i=this.activePartLists[t.type];if(i){let n=t.sn;this.activePartLists[t.type]=i.filter((s)=>s.fragment.sn!==n)}delete this.fragments[e],t.endList&&delete this.endListFragments[t.type]}removeAllFragments(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1}}function Kr(t){var e,i,n;return t.buffered&&(t.body.gap||((e=t.range.video)==null?void 0:e.partial)||((i=t.range.audio)==null?void 0:i.partial)||((n=t.range.audiovideo)==null?void 0:n.partial))}function $e(t){return`${t.type}_${t.level}_${t.sn}`}let ra={length:0,start:()=>0,end:()=>0};class Jt{static isBuffered(t,e){try{if(t){let i=Jt.getBuffered(t);for(let n=0;n<i.length;n++)if(e>=i.start(n)&&e<=i.end(n))return!0}}catch(i){}return!1}static bufferInfo(t,e,i){try{if(t){let n=Jt.getBuffered(t),s=[],a;for(a=0;a<n.length;a++)s.push({start:n.start(a),end:n.end(a)});return this.bufferedInfo(s,e,i)}}catch(n){}return{len:0,start:e,end:e,nextStart:void 0}}static bufferedInfo(t,e,i){e=Math.max(0,e),t.sort(function(u,h){return u.start-h.start||h.end-u.end});let n=[];if(i)for(let u=0;u<t.length;u++){let h=n.length;if(h){let m=n[h-1].end;t[u].start-m<i?t[u].end>m&&(n[h-1].end=t[u].end):n.push(t[u])}else n.push(t[u])}else n=t;let s,a=0,o=e,c=e;for(let u=0;u<n.length;u++){let h=n[u].start,m=n[u].end;if(e+i>=h&&e<m)o=h,c=m,a=c-e;else if(e+i<h){s=h;break}}return{len:a,start:o||0,end:c||0,nextStart:s}}static getBuffered(t){try{return t.buffered}catch(e){return C.log("failed to get media.buffered",e),ra}}}class Nn{constructor(t,e,i,n=0,s=-1,a=!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={start:0,executeStart:0,executeEnd:0,end:0},this.buffering={audio:{start:0,executeStart:0,executeEnd:0,end:0},video:{start:0,executeStart:0,executeEnd:0,end:0},audiovideo:{start:0,executeStart:0,executeEnd:0,end:0}},this.level=t,this.sn=e,this.id=i,this.size=n,this.part=s,this.partial=a}}function or(t,e){for(let n=0,s=t.length;n<s;n++){var i;if(((i=t[n])==null?void 0:i.cc)===e)return t[n]}return null}function Vr(t,e){if(t){let i=t.start+e;t.start=t.startPTS=i,t.endPTS=i+t.duration}}function ho(t,e){let i=e.fragments;for(let n=0,s=i.length;n<s;n++)Vr(i[n],t);e.fragmentHint&&Vr(e.fragmentHint,t),e.alignedSliding=!0}function Ol(t,e,i){e&&(function(n,s,a){if(function(o,c,u){return!(!c||!(u.endCC>u.startCC||o&&o.cc<u.startCC))}(n,a,s)){let o=function(c,u){let h=c.fragments,m=u.fragments;if(!m.length||!h.length)return void C.log("No fragments to align");let y=or(h,m[0].cc);if(y&&(!y||y.startPTS))return y;C.log("No frag in previous level to align on")}(a,s);o&&L(o.start)&&(C.log("Adjusting PTS using last level due to CC increase within current level "+s.url),ho(o.start,s))}}(t,i,e),!i.alignedSliding&&e&&Wr(i,e),i.alignedSliding||!e||i.skippedSegments||$r(e,i))}function Wr(t,e){if(!t.hasProgramDateTime||!e.hasProgramDateTime)return;let i=t.fragments,n=e.fragments;if(!i.length||!n.length)return;let s,a,o=Math.min(e.endCC,t.endCC);e.startCC<o&&t.startCC<o&&(s=or(n,o),a=or(i,o)),s&&a||(s=n[Math.floor(n.length/2)],a=or(i,s.cc)||i[Math.floor(i.length/2)]);let c=s.programDateTime,u=a.programDateTime;if(!c||!u)return;ho((u-c)/1000-(a.start-s.start),t)}let sa=Math.pow(2,17);class fo{constructor(t){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=t}destroy(){this.loader&&(this.loader.destroy(),this.loader=null)}abort(){this.loader&&this.loader.abort()}load(t,e){let i=t.url;if(!i)return Promise.reject(new Ai({type:G.NETWORK_ERROR,details:N.FRAG_LOAD_ERROR,fatal:!1,frag:t,error:Error("Fragment does not have a "+(i?"part list":"url")),networkDetails:null}));this.abort();let n=this.config,s=n.fLoader,a=n.loader;return new Promise((o,c)=>{if(this.loader&&this.loader.destroy(),t.gap){if(t.tagList.some((S)=>S[0]==="GAP"))return void c(oa(t));t.gap=!1}let u=this.loader=t.loader=s?new s(n):new a(n),h=aa(t),m=co(n.fragLoadPolicy.default),y={loadPolicy:m,timeout:m.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:t.sn==="initSegment"?1/0:sa};t.stats=u.stats,u.load(h,y,{onSuccess:(S,_,w,I)=>{this.resetLoader(t,u);let D=S.data;w.resetIV&&t.decryptdata&&(t.decryptdata.iv=new Uint8Array(D.slice(0,16)),D=D.slice(16)),o({frag:t,part:null,payload:D,networkDetails:I})},onError:(S,_,w,I)=>{this.resetLoader(t,u),c(new Ai({type:G.NETWORK_ERROR,details:N.FRAG_LOAD_ERROR,fatal:!1,frag:t,response:E({url:i,data:void 0},S),error:Error(`HTTP Error ${S.code} ${S.text}`),networkDetails:w,stats:I}))},onAbort:(S,_,w)=>{this.resetLoader(t,u),c(new Ai({type:G.NETWORK_ERROR,details:N.INTERNAL_ABORTED,fatal:!1,frag:t,error:Error("Aborted"),networkDetails:w,stats:S}))},onTimeout:(S,_,w)=>{this.resetLoader(t,u),c(new Ai({type:G.NETWORK_ERROR,details:N.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t,error:Error(`Timeout after ${y.timeout}ms`),networkDetails:w,stats:S}))},onProgress:(S,_,w,I)=>{e&&e({frag:t,part:null,payload:w,networkDetails:I})}})})}loadPart(t,e,i){this.abort();let n=this.config,s=n.fLoader,a=n.loader;return new Promise((o,c)=>{if(this.loader&&this.loader.destroy(),t.gap||e.gap)return void c(oa(t,e));let u=this.loader=t.loader=s?new s(n):new a(n),h=aa(t,e),m=co(n.fragLoadPolicy.default),y={loadPolicy:m,timeout:m.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:sa};e.stats=u.stats,u.load(h,y,{onSuccess:(S,_,w,I)=>{this.resetLoader(t,u),this.updateStatsFromPart(t,e);let D={frag:t,part:e,payload:S.data,networkDetails:I};i(D),o(D)},onError:(S,_,w,I)=>{this.resetLoader(t,u),c(new Ai({type:G.NETWORK_ERROR,details:N.FRAG_LOAD_ERROR,fatal:!1,frag:t,part:e,response:E({url:h.url,data:void 0},S),error:Error(`HTTP Error ${S.code} ${S.text}`),networkDetails:w,stats:I}))},onAbort:(S,_,w)=>{t.stats.aborted=e.stats.aborted,this.resetLoader(t,u),c(new Ai({type:G.NETWORK_ERROR,details:N.INTERNAL_ABORTED,fatal:!1,frag:t,part:e,error:Error("Aborted"),networkDetails:w,stats:S}))},onTimeout:(S,_,w)=>{this.resetLoader(t,u),c(new Ai({type:G.NETWORK_ERROR,details:N.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t,part:e,error:Error(`Timeout after ${y.timeout}ms`),networkDetails:w,stats:S}))}})})}updateStatsFromPart(t,e){let i=t.stats,n=e.stats,s=n.total;if(i.loaded+=n.loaded,s){let c=Math.round(t.duration/e.duration),u=Math.min(Math.round(i.loaded/s),c),h=(c-u)*Math.round(i.loaded/u);i.total=i.loaded+h}else i.total=Math.max(i.loaded,i.total);let a=i.loading,o=n.loading;a.start?a.first+=o.first-o.start:(a.start=o.start,a.first=o.first),a.end=o.end}resetLoader(t,e){t.loader=null,this.loader===e&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),e.destroy()}}function aa(t,e=null){let i=e||t,n={frag:t,part:e,responseType:"arraybuffer",url:i.url,headers:{},rangeStart:0,rangeEnd:0},s=i.byteRangeStartOffset,a=i.byteRangeEndOffset;if(L(s)&&L(a)){var o;let c=s,u=a;if(t.sn==="initSegment"&&((o=t.decryptdata)==null?void 0:o.method)==="AES-128"){let h=a-s;h%16&&(u=a+(16-h%16)),s!==0&&(n.resetIV=!0,c=s-16)}n.rangeStart=c,n.rangeEnd=u}return n}function oa(t,e){let i=Error(`GAP ${t.gap?"tag":"attribute"} found`),n={type:G.MEDIA_ERROR,details:N.FRAG_GAP,fatal:!1,frag:t,error:i,networkDetails:null};return e&&(n.part=e),(e||t).stats.aborted=!0,new Ai(n)}class Ai extends Error{constructor(t){super(t.error.message),this.data=void 0,this.data=t}}class mo{constructor(t,e){this.subtle=void 0,this.aesIV=void 0,this.subtle=t,this.aesIV=e}decrypt(t,e){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},e,t)}}class go{constructor(t,e){this.subtle=void 0,this.key=void 0,this.subtle=t,this.key=e}expandKey(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])}}class Yr{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_(t){let e=new DataView(t),i=new Uint32Array(4);for(let n=0;n<4;n++)i[n]=e.getUint32(4*n);return i}initTable(){let t=this.sBox,e=this.invSBox,i=this.subMix,n=i[0],s=i[1],a=i[2],o=i[3],c=this.invSubMix,u=c[0],h=c[1],m=c[2],y=c[3],S=new Uint32Array(256),_=0,w=0,I=0;for(I=0;I<256;I++)S[I]=I<128?I<<1:I<<1^283;for(I=0;I<256;I++){let D=w^w<<1^w<<2^w<<3^w<<4;D=D>>>8^255&D^99,t[_]=D,e[D]=_;let F=S[_],x=S[F],W=S[x],z=257*S[D]^16843008*D;n[_]=z<<24|z>>>8,s[_]=z<<16|z>>>16,a[_]=z<<8|z>>>24,o[_]=z,z=16843009*W^65537*x^257*F^16843008*_,u[D]=z<<24|z>>>8,h[D]=z<<16|z>>>16,m[D]=z<<8|z>>>24,y[D]=z,_?(_=F^S[S[S[W^F]]],w^=S[S[w]]):_=w=1}}expandKey(t){let e=this.uint8ArrayToUint32Array_(t),i=!0,n=0;for(;n<e.length&&i;)i=e[n]===this.key[n],n++;if(i)return;this.key=e;let s=this.keySize=e.length;if(s!==4&&s!==6&&s!==8)throw Error("Invalid aes key size="+s);let a=this.ksRows=4*(s+6+1),o,c,u=this.keySchedule=new Uint32Array(a),h=this.invKeySchedule=new Uint32Array(a),m=this.sBox,y=this.rcon,S=this.invSubMix,_=S[0],w=S[1],I=S[2],D=S[3],F,x;for(o=0;o<a;o++)o<s?F=u[o]=e[o]:(x=F,o%s==0?(x=x<<8|x>>>24,x=m[x>>>24]<<24|m[x>>>16&255]<<16|m[x>>>8&255]<<8|m[255&x],x^=y[o/s|0]<<24):s>6&&o%s==4&&(x=m[x>>>24]<<24|m[x>>>16&255]<<16|m[x>>>8&255]<<8|m[255&x]),u[o]=F=(u[o-s]^x)>>>0);for(c=0;c<a;c++)o=a-c,x=3&c?u[o]:u[o-4],h[c]=c<4||o<=4?x:_[m[x>>>24]]^w[m[x>>>16&255]]^I[m[x>>>8&255]]^D[m[255&x]],h[c]=h[c]>>>0}networkToHostOrderSwap(t){return t<<24|(65280&t)<<8|(16711680&t)>>8|t>>>24}decrypt(t,e,i){let n=this.keySize+6,s=this.invKeySchedule,a=this.invSBox,o=this.invSubMix,c=o[0],u=o[1],h=o[2],m=o[3],y=this.uint8ArrayToUint32Array_(i),S=y[0],_=y[1],w=y[2],I=y[3],D=new Int32Array(t),F=new Int32Array(D.length),x,W,z,lt,it,ft,mt,Z,J,kt,ht,wt,It,Mt,at=this.networkToHostOrderSwap;for(;e<D.length;){for(J=at(D[e]),kt=at(D[e+1]),ht=at(D[e+2]),wt=at(D[e+3]),it=J^s[0],ft=wt^s[1],mt=ht^s[2],Z=kt^s[3],It=4,Mt=1;Mt<n;Mt++)x=c[it>>>24]^u[ft>>16&255]^h[mt>>8&255]^m[255&Z]^s[It],W=c[ft>>>24]^u[mt>>16&255]^h[Z>>8&255]^m[255&it]^s[It+1],z=c[mt>>>24]^u[Z>>16&255]^h[it>>8&255]^m[255&ft]^s[It+2],lt=c[Z>>>24]^u[it>>16&255]^h[ft>>8&255]^m[255&mt]^s[It+3],it=x,ft=W,mt=z,Z=lt,It+=4;x=a[it>>>24]<<24^a[ft>>16&255]<<16^a[mt>>8&255]<<8^a[255&Z]^s[It],W=a[ft>>>24]<<24^a[mt>>16&255]<<16^a[Z>>8&255]<<8^a[255&it]^s[It+1],z=a[mt>>>24]<<24^a[Z>>16&255]<<16^a[it>>8&255]<<8^a[255&ft]^s[It+2],lt=a[Z>>>24]<<24^a[it>>16&255]<<16^a[ft>>8&255]<<8^a[255&mt]^s[It+3],F[e]=at(x^S),F[e+1]=at(lt^_),F[e+2]=at(z^w),F[e+3]=at(W^I),S=J,_=kt,w=ht,I=wt,e+=4}return F.buffer}}class lr{constructor(t,{removePKCS7Padding:e=!0}={}){if(this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.useSoftware=t.enableSoftwareAES,this.removePKCS7Padding=e,e)try{let i=self.crypto;i&&(this.subtle=i.subtle||i.webkitSubtle)}catch(i){}this.subtle===null&&(this.useSoftware=!0)}destroy(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null}isSync(){return this.useSoftware}flush(){let{currentResult:t,remainderData:e}=this;if(!t||e)return this.reset(),null;let i=new Uint8Array(t);return this.reset(),this.removePKCS7Padding?function(n){let s=n.byteLength,a=s&&new DataView(n.buffer).getUint8(s-1);return a?re(n,0,s-a):n}(i):i}reset(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)}decrypt(t,e,i){return this.useSoftware?new Promise((n,s)=>{this.softwareDecrypt(new Uint8Array(t),e,i);let a=this.flush();a?n(a.buffer):s(Error("[softwareDecrypt] Failed to decrypt data"))}):this.webCryptoDecrypt(new Uint8Array(t),e,i)}softwareDecrypt(t,e,i){let{currentIV:n,currentResult:s,remainderData:a}=this;this.logOnce("JS AES decrypt"),a&&(t=si(a,t),this.remainderData=null);let o=this.getValidChunk(t);if(!o.length)return null;n&&(i=n);let c=this.softwareDecrypter;c||(c=this.softwareDecrypter=new Yr),c.expandKey(e);let u=s;return this.currentResult=c.decrypt(o.buffer,0,i),this.currentIV=re(o,-16).buffer,u||null}webCryptoDecrypt(t,e,i){let n=this.subtle;return this.key===e&&this.fastAesKey||(this.key=e,this.fastAesKey=new go(n,e)),this.fastAesKey.expandKey().then((s)=>{if(!n)return Promise.reject(Error("web crypto not initialized"));return this.logOnce("WebCrypto AES decrypt"),new mo(n,new Uint8Array(i)).decrypt(t.buffer,s)}).catch((s)=>(C.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${s.name}: ${s.message}`),this.onWebCryptoError(t,e,i)))}onWebCryptoError(t,e,i){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(t,e,i);let n=this.flush();if(n)return n.buffer;throw Error("WebCrypto and softwareDecrypt: failed to decrypt data")}getValidChunk(t){let e=t,i=t.length-t.length%16;return i!==t.length&&(e=re(t,0,i),this.remainderData=re(t,i)),e}logOnce(t){this.logEnabled&&(C.log("[decrypter]: "+t),this.logEnabled=!1)}}let Ml=function(t){let e="",i=t.length;for(let n=0;n<i;n++)e+=`[${t.start(n).toFixed(3)}-${t.end(n).toFixed(3)}]`;return e},oi="STOPPED",Zt="IDLE",la="KEY_LOADING",Fn="FRAG_LOADING",Pn="FRAG_LOADING_WAITING_RETRY",xn="WAITING_TRACK",xi="PARSING",cr="PARSED",ur="ENDED",Un="ERROR",Li="WAITING_INIT_PTS",fe="WAITING_LEVEL";class dr extends class{constructor(){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(e){return!this._tickInterval&&(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}clearInterval(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),this._tickInterval=null,!0)}clearNextTick(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0)}tick(){this._tickCallCount++,this._tickCallCount===1&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}doTick(){}}{constructor(t,e,i,n,s){super(),this.hls=void 0,this.fragPrevious=null,this.fragCurrent=null,this.fragmentTracker=void 0,this.transmuxer=null,this._state=oi,this.playlistType=void 0,this.media=null,this.mediaBuffer=null,this.config=void 0,this.bitrateTest=!1,this.lastCurrentTime=0,this.nextLoadPosition=0,this.startPosition=0,this.startTimeOffset=null,this.loadedmetadata=!1,this.retryDate=0,this.levels=null,this.fragmentLoader=void 0,this.keyLoader=void 0,this.levelLastLoaded=null,this.startFragRequested=!1,this.decrypter=void 0,this.initPTS=[],this.onvseeking=null,this.onvended=null,this.logPrefix="",this.log=void 0,this.warn=void 0,this.playlistType=s,this.logPrefix=n,this.log=C.log.bind(C,n+":"),this.warn=C.warn.bind(C,n+":"),this.hls=t,this.fragmentLoader=new fo(t.config),this.keyLoader=i,this.fragmentTracker=e,this.config=t.config,this.decrypter=new lr(t.config),t.on(b.MANIFEST_LOADED,this.onManifestLoaded,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(t){}stopLoad(){this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);let t=this.fragCurrent;t!=null&&t.loader&&(t.abortRequests(),this.fragmentTracker.removeFragment(t)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=oi}_streamEnded(t,e){if(e.live||t.nextStart||!t.end||!this.media)return!1;let i=e.partList;if(i!=null&&i.length){let s=i[i.length-1];return Jt.isBuffered(this.media,s.start+s.duration/2)}let n=e.fragments[e.fragments.length-1].type;return this.fragmentTracker.isEndListAppended(n)}getLevelDetails(){var t;if(this.levels&&this.levelLastLoaded!==null)return(t=this.levelLastLoaded)==null?void 0:t.details}onMediaAttached(t,e){let i=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),i.addEventListener("seeking",this.onvseeking),i.addEventListener("ended",this.onvended);let n=this.config;this.levels&&n.autoStartLoad&&this.state===oi&&this.startLoad(n.startPosition)}onMediaDetaching(){let t=this.media;t!=null&&t.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),t&&this.onvseeking&&this.onvended&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvended=null),this.keyLoader&&this.keyLoader.detach(),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()}onMediaSeeking(){let{config:t,fragCurrent:e,media:i,mediaBuffer:n,state:s}=this,a=i?i.currentTime:0,o=Jt.bufferInfo(n||i,a,t.maxBufferHole);if(this.log(`media seeking to ${L(a)?a.toFixed(3):a}, state: ${s}`),this.state===ur)this.resetLoadingState();else if(e){let c=t.maxFragLookUpTolerance,u=e.start-c,h=e.start+e.duration+c;if(!o.len||h<o.start||u>o.end){let m=a>h;(a<u||m)&&(m&&e.loader&&(this.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),e.abortRequests(),this.resetLoadingState()),this.fragPrevious=null)}}i&&(this.fragmentTracker.removeFragmentsInRange(a,1/0,this.playlistType,!0),this.lastCurrentTime=a),this.loadedmetadata||o.len||(this.nextLoadPosition=this.startPosition=a),this.tickImmediate()}onMediaEnded(){this.startPosition=this.lastCurrentTime=0}onManifestLoaded(t,e){this.startTimeOffset=e.startTimeOffset,this.initPTS=[]}onHandlerDestroying(){this.hls.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),this.stopLoad(),super.onHandlerDestroying(),this.hls=null}onHandlerDestroyed(){this.state=oi,this.fragmentLoader&&this.fragmentLoader.destroy(),this.keyLoader&&this.keyLoader.destroy(),this.decrypter&&this.decrypter.destroy(),this.hls=this.log=this.warn=this.decrypter=this.keyLoader=this.fragmentLoader=this.fragmentTracker=null,super.onHandlerDestroyed()}loadFragment(t,e,i){this._loadFragForPlayback(t,e,i)}_loadFragForPlayback(t,e,i){this._doFragLoad(t,e,i,(n)=>{if(this.fragContextChanged(t))return this.warn(`Fragment ${t.sn}${n.part?" p: "+n.part.index:""} of level ${t.level} was dropped during download.`),void this.fragmentTracker.removeFragment(t);t.stats.chunkCount++,this._handleFragmentLoadProgress(n)}).then((n)=>{if(!n)return;let s=this.state;this.fragContextChanged(t)?(s===Fn||!this.fragCurrent&&s===xi)&&(this.fragmentTracker.removeFragment(t),this.state=Zt):(("payload"in n)&&(this.log(`Loaded fragment ${t.sn} of level ${t.level}`),this.hls.trigger(b.FRAG_LOADED,n)),this._handleFragmentLoadComplete(n))}).catch((n)=>{this.state!==oi&&this.state!==Un&&(this.warn(n),this.resetFragmentLoading(t))})}clearTrackerIfNeeded(t){var e;let{fragmentTracker:i}=this;if(i.getState(t)===ar){let n=t.type,s=this.getFwdBufferInfo(this.mediaBuffer,n),a=Math.max(t.duration,s?s.len:this.config.maxBufferLength);this.reduceMaxBufferLength(a)&&i.removeFragment(t)}else((e=this.mediaBuffer)==null?void 0:e.buffered.length)===0?i.removeAllFragments():i.hasParts(t.type)&&(i.detectPartialFragments({frag:t,part:null,stats:t.stats,id:t.type}),i.getState(t)===vn&&i.removeFragment(t))}checkLiveUpdate(t){if(t.updated&&!t.live){let e=t.fragments[t.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type})}t.fragments[0]||(t.deltaUpdateFailed=!0)}flushMainBuffer(t,e,i=null){if(!(t-e))return;let n={startOffset:t,endOffset:e,type:i};this.hls.trigger(b.BUFFER_FLUSHING,n)}_loadInitSegment(t,e){this._doFragLoad(t,e).then((i)=>{if(!i||this.fragContextChanged(t)||!this.levels)throw Error("init load aborted");return i}).then((i)=>{let{hls:n}=this,{payload:s}=i,a=t.decryptdata;if(s&&s.byteLength>0&&a!=null&&a.key&&a.iv&&a.method==="AES-128"){let o=self.performance.now();return this.decrypter.decrypt(new Uint8Array(s),a.key.buffer,a.iv.buffer).catch((c)=>{throw n.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.FRAG_DECRYPT_ERROR,fatal:!1,error:c,reason:c.message,frag:t}),c}).then((c)=>{let u=self.performance.now();return n.trigger(b.FRAG_DECRYPTED,{frag:t,payload:c,stats:{tstart:o,tdecrypt:u}}),i.payload=c,this.completeInitSegmentLoad(i)})}return this.completeInitSegmentLoad(i)}).catch((i)=>{this.state!==oi&&this.state!==Un&&(this.warn(i),this.resetFragmentLoading(t))})}completeInitSegmentLoad(t){let{levels:e}=this;if(!e)throw Error("init load aborted, missing levels");let i=t.frag.stats;this.state=Zt,t.frag.data=new Uint8Array(t.payload),i.parsing.start=i.buffering.start=self.performance.now(),i.parsing.end=i.buffering.end=self.performance.now(),this.tick()}fragContextChanged(t){let{fragCurrent:e}=this;return!t||!e||t.sn!==e.sn||t.level!==e.level}fragBufferedComplete(t,e){var i,n,s,a;let o=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log(`Buffered ${t.type} sn: ${t.sn}${e?" part: "+e.index:""} of ${this.playlistType===ie?"level":"track"} ${t.level} (frag:[${((i=t.startPTS)!=null?i:NaN).toFixed(3)}-${((n=t.endPTS)!=null?n:NaN).toFixed(3)}] > buffer:${o?Ml(Jt.getBuffered(o)):"(detached)"})`),t.sn!=="initSegment"){var c;if(t.type!==bi){let h=t.elementaryStreams;if(!Object.keys(h).some((m)=>!!h[m]))return void(this.state=Zt)}let u=(c=this.levels)==null?void 0:c[t.level];u!=null&&u.fragmentError&&(this.log(`Resetting level fragment error count of ${u.fragmentError} on frag buffered`),u.fragmentError=0)}this.state=Zt,o&&(!this.loadedmetadata&&t.type==ie&&o.buffered.length&&((s=this.fragCurrent)==null?void 0:s.sn)===((a=this.fragPrevious)==null?void 0:a.sn)&&(this.loadedmetadata=!0,this.seekToStartPos()),this.tick())}seekToStartPos(){}_handleFragmentLoadComplete(t){let{transmuxer:e}=this;if(!e)return;let{frag:i,part:n,partsLoaded:s}=t,a=!s||s.length===0||s.some((c)=>!c),o=new Nn(i.level,i.sn,i.stats.chunkCount+1,0,n?n.index:-1,!a);e.flush(o)}_handleFragmentLoadProgress(t){}_doFragLoad(t,e,i=null,n){var s;let a=e==null?void 0:e.details;if(!this.levels||!a)throw Error(`frag load aborted, missing level${a?"":" detail"}s`);let o=null;if(!t.encrypted||(s=t.decryptdata)!=null&&s.key?!t.encrypted&&a.encryptedFragments.length&&this.keyLoader.loadClear(t,a.encryptedFragments):(this.log(`Loading key for ${t.sn} of [${a.startSN}-${a.endSN}], ${this.logPrefix==="[stream-controller]"?"level":"track"} ${t.level}`),this.state=la,this.fragCurrent=t,o=this.keyLoader.load(t).then((h)=>{if(!this.fragContextChanged(h.frag))return this.hls.trigger(b.KEY_LOADED,h),this.state===la&&(this.state=Zt),h}),this.hls.trigger(b.KEY_LOADING,{frag:t}),this.fragCurrent===null&&(o=Promise.reject(Error("frag load aborted, context changed in KEY_LOADING")))),i=Math.max(t.start,i||0),this.config.lowLatencyMode&&t.sn!=="initSegment"){let h=a.partList;if(h&&n){i>t.end&&a.fragmentHint&&(t=a.fragmentHint);let m=this.getNextPart(h,t,i);if(m>-1){let y=h[m],S;return this.log(`Loading part sn: ${t.sn} p: ${y.index} cc: ${t.cc} of playlist [${a.startSN}-${a.endSN}] parts [0-${m}-${h.length-1}] ${this.logPrefix==="[stream-controller]"?"level":"track"}: ${t.level}, target: ${parseFloat(i.toFixed(3))}`),this.nextLoadPosition=y.start+y.duration,this.state=Fn,S=o?o.then((_)=>!_||this.fragContextChanged(_.frag)?null:this.doFragPartsLoad(t,y,e,n)).catch((_)=>this.handleFragLoadError(_)):this.doFragPartsLoad(t,y,e,n).catch((_)=>this.handleFragLoadError(_)),this.hls.trigger(b.FRAG_LOADING,{frag:t,part:y,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(Error("frag load aborted, context changed in FRAG_LOADING parts")):S}if(!t.url||this.loadedEndOfParts(h,i))return Promise.resolve(null)}}this.log(`Loading fragment ${t.sn} cc: ${t.cc} ${a?"of ["+a.startSN+"-"+a.endSN+"] ":""}${this.logPrefix==="[stream-controller]"?"level":"track"}: ${t.level}, target: ${parseFloat(i.toFixed(3))}`),L(t.sn)&&!this.bitrateTest&&(this.nextLoadPosition=t.start+t.duration),this.state=Fn;let c=this.config.progressive,u;return u=c&&o?o.then((h)=>!h||this.fragContextChanged(h==null?void 0:h.frag)?null:this.fragmentLoader.load(t,n)).catch((h)=>this.handleFragLoadError(h)):Promise.all([this.fragmentLoader.load(t,c?n:void 0),o]).then(([h])=>(!c&&h&&n&&n(h),h)).catch((h)=>this.handleFragLoadError(h)),this.hls.trigger(b.FRAG_LOADING,{frag:t,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(Error("frag load aborted, context changed in FRAG_LOADING")):u}doFragPartsLoad(t,e,i,n){return new Promise((s,a)=>{var o;let c=[],u=(o=i.details)==null?void 0:o.partList,h=(m)=>{this.fragmentLoader.loadPart(t,m,n).then((y)=>{c[m.index]=y;let S=y.part;this.hls.trigger(b.FRAG_LOADED,y);let _=ao(i,t.sn,m.index+1)||oo(u,t.sn,m.index+1);if(!_)return s({frag:t,part:S,partsLoaded:c});h(_)}).catch(a)};h(e)})}handleFragLoadError(t){if("data"in t){let e=t.data;t.data&&e.details===N.INTERNAL_ABORTED?this.handleFragLoadAborted(e.frag,e.part):this.hls.trigger(b.ERROR,e)}else this.hls.trigger(b.ERROR,{type:G.OTHER_ERROR,details:N.INTERNAL_EXCEPTION,err:t,error:t,fatal:!0});return null}_handleTransmuxerFlush(t){let e=this.getCurrentContext(t);if(!e||this.state!==xi)return void(this.fragCurrent||this.state===oi||this.state===Un||(this.state=Zt));let{frag:i,part:n,level:s}=e,a=self.performance.now();i.stats.parsing.end=a,n&&(n.stats.parsing.end=a),this.updateLevelTiming(i,n,s,t.partial)}getCurrentContext(t){let{levels:e,fragCurrent:i}=this,{level:n,sn:s,part:a}=t;if(e==null||!e[n])return this.warn(`Levels object was unset while buffering fragment ${s} of level ${n}. The current chunk will not be buffered.`),null;let o=e[n],c=a>-1?ao(o,s,a):null,u=c?c.fragment:function(h,m,y){if(h==null||!h.details)return null;let S=h.details,_=S.fragments[m-S.startSN];return _||(_=S.fragmentHint,_&&_.sn===m?_:m<S.startSN&&y&&y.sn===m?y:null)}(o,s,i);return u?(i&&i!==u&&(u.stats=i.stats),{frag:u,part:c,level:o}):null}bufferFragmentData(t,e,i,n,s){var a;if(!t||this.state!==xi)return;let{data1:o,data2:c}=t,u=o;if(o&&c&&(u=si(o,c)),(a=u)==null||!a.length)return;let h={type:t.type,frag:e,part:i,chunkMeta:n,parent:e.type,data:u};if(this.hls.trigger(b.BUFFER_APPENDING,h),t.dropped&&t.independent&&!i){if(s)return;this.flushBufferGap(e)}}flushBufferGap(t){let e=this.media;if(!e)return;if(!Jt.isBuffered(e,e.currentTime))return void this.flushMainBuffer(0,t.start);let i=e.currentTime,n=Jt.bufferInfo(e,i,0),s=t.duration,a=Math.min(2*this.config.maxFragLookUpTolerance,0.25*s),o=Math.max(Math.min(t.start-a,n.end-a),i+a);t.start-o>a&&this.flushMainBuffer(o,t.start)}getFwdBufferInfo(t,e){let i=this.getLoadPosition();return L(i)?this.getFwdBufferInfoAtPos(t,i,e):null}getFwdBufferInfoAtPos(t,e,i){let{config:{maxBufferHole:n}}=this,s=Jt.bufferInfo(t,e,n);if(s.len===0&&s.nextStart!==void 0){let a=this.fragmentTracker.getBufferedFrag(e,i);if(a&&s.nextStart<a.end)return Jt.bufferInfo(t,e,Math.max(s.nextStart,n))}return s}getMaxBufferLength(t){let{config:e}=this,i;return i=t?Math.max(8*e.maxBufferSize/t,e.maxBufferLength):e.maxBufferLength,Math.min(i,e.maxMaxBufferLength)}reduceMaxBufferLength(t){let e=this.config,i=t||e.maxBufferLength;return e.maxMaxBufferLength>=i&&(e.maxMaxBufferLength/=2,this.warn(`Reduce max buffer length to ${e.maxMaxBufferLength}s`),!0)}getAppendedFrag(t,e=ie){let i=this.fragmentTracker.getAppendedFrag(t,ie);return i&&"fragment"in i?i.fragment:i}getNextFragment(t,e){let i=e.fragments,n=i.length;if(!n)return null;let{config:s}=this,a=i[0].start,o;if(e.live){let c=s.initialLiveManifestSize;if(n<c)return this.warn(`Not enough fragments to start playback (have: ${n}, need: ${c})`),null;(!e.PTSKnown&&!this.startFragRequested&&this.startPosition===-1||t<a)&&(o=this.getInitialLiveFragment(e,i),this.startPosition=this.nextLoadPosition=o?this.hls.liveSyncPosition||o.start:t)}else t<=a&&(o=i[0]);if(!o){let c=s.lowLatencyMode?e.partEnd:e.fragmentEnd;o=this.getFragmentAtPosition(t,c,e)}return this.mapToInitFragWhenRequired(o)}isLoopLoading(t,e){let i=this.fragmentTracker.getState(t);return(i===de||i===vn&&!!t.gap)&&this.nextLoadPosition>e}getNextFragmentLoopLoading(t,e,i,n,s){let a=t.gap,o=this.getNextFragment(this.nextLoadPosition,e);if(o===null)return o;if(t=o,a&&t&&!t.gap&&i.nextStart){let c=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,i.nextStart,n);if(c!==null&&i.len+c.len>=s)return this.log(`buffer full after gaps in "${n}" playlist starting at sn: ${t.sn}`),null}return t}mapToInitFragWhenRequired(t){return t==null||!t.initSegment||t!=null&&t.initSegment.data||this.bitrateTest?t:t.initSegment}getNextPart(t,e,i){let n=-1,s=!1,a=!0;for(let o=0,c=t.length;o<c;o++){let u=t[o];if(a=a&&!u.independent,n>-1&&i<u.start)break;let h=u.loaded;h?n=-1:(s||u.independent||a)&&u.fragment===e&&(n=o),s=h}return n}loadedEndOfParts(t,e){let i=t[t.length-1];return i&&e>i.start&&i.loaded}getInitialLiveFragment(t,e){let i=this.fragPrevious,n=null;if(i){if(t.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+i.programDateTime),n=function(s,a,o){if(a===null||!Array.isArray(s)||!s.length||!L(a))return null;if(a<(s[0].programDateTime||0))return null;if(a>=(s[s.length-1].endProgramDateTime||0))return null;o=o||0;for(let c=0;c<s.length;++c){let u=s[c];if(je(a,o,u))return u}return null}(e,i.endProgramDateTime,this.config.maxFragLookUpTolerance)),!n){let s=i.sn+1;if(s>=t.startSN&&s<=t.endSN){let a=e[s-t.startSN];i.cc===a.cc&&(n=a,this.log("Live playlist, switching playlist, load frag with next SN: "+n.sn))}n||(n=function(a,o){return rr(a,(c)=>c.cc<o?1:c.cc>o?-1:0)}(e,i.cc),n&&this.log("Live playlist, switching playlist, load frag with same CC: "+n.sn))}}else{let s=this.hls.liveSyncPosition;s!==null&&(n=this.getFragmentAtPosition(s,this.bitrateTest?t.fragmentEnd:t.edge,t))}return n}getFragmentAtPosition(t,e,i){let{config:n}=this,{fragPrevious:s}=this,{fragments:a,endSN:o}=i,{fragmentHint:c}=i,u=n.maxFragLookUpTolerance,h=i.partList,m=!!(n.lowLatencyMode&&h!=null&&h.length&&c),y;if(m&&c&&!this.bitrateTest&&(a=a.concat(c),o=c.sn),t<e)y=In(s,a,t,t>e-u?0:u);else y=a[a.length-1];if(y){let S=y.sn-i.startSN,_=this.fragmentTracker.getState(y);if((_===de||_===vn&&y.gap)&&(s=y),s&&y.sn===s.sn&&(!m||h[0].fragment.sn>y.sn)){if(s&&y.level===s.level){let w=a[S+1];y=y.sn<o&&this.fragmentTracker.getState(w)!==de?w:null}}}return y}synchronizeToLiveEdge(t){let{config:e,media:i}=this;if(!i)return;let n=this.hls.liveSyncPosition,s=i.currentTime,a=t.fragments[0].start,o=t.edge,c=s>=a-e.maxFragLookUpTolerance&&s<=o;if(n!==null&&i.duration>n&&(s<n||!c)){let u=e.liveMaxLatencyDuration!==void 0?e.liveMaxLatencyDuration:e.liveMaxLatencyDurationCount*t.targetduration;(!c&&i.readyState<4||s<o-u)&&(this.loadedmetadata||(this.nextLoadPosition=n),i.readyState&&(this.warn(`Playback: ${s.toFixed(3)} is located too far from the end of live sliding playlist: ${o}, reset currentTime to : ${n.toFixed(3)}`),i.currentTime=n))}}alignPlaylists(t,e,i){let n=t.fragments.length;if(!n)return this.warn("No fragments in live playlist"),0;let s=t.fragments[0].start,a=!e,o=t.alignedSliding&&L(s);if(a||!o&&!s){let{fragPrevious:c}=this;Ol(c,i,t);let u=t.fragments[0].start;return this.log(`Live playlist sliding: ${u.toFixed(2)} start-sn: ${e?e.startSN:"na"}->${t.startSN} prev-sn: ${c?c.sn:"na"} fragments: ${n}`),u}return s}waitForCdnTuneIn(t){return t.live&&t.canBlockReload&&t.partTarget&&t.tuneInGoal>Math.max(t.partHoldBack,3*t.partTarget)}setStartPosition(t,e){let i=this.startPosition;if(i<e&&(i=-1),i===-1||this.lastCurrentTime===-1){let n=this.startTimeOffset!==null,s=n?this.startTimeOffset:t.startTimeOffset;s!==null&&L(s)?(i=e+s,s<0&&(i+=t.totalduration),i=Math.min(Math.max(e,i),e+t.totalduration),this.log(`Start time offset ${s} found in ${n?"multivariant":"media"} playlist, adjust startPosition to ${i}`),this.startPosition=i):t.live?i=this.hls.liveSyncPosition||e:this.startPosition=i=0,this.lastCurrentTime=i}this.nextLoadPosition=i}getLoadPosition(){let{media:t}=this,e=0;return this.loadedmetadata&&t?e=t.currentTime:this.nextLoadPosition&&(e=this.nextLoadPosition),e}handleFragLoadAborted(t,e){this.transmuxer&&t.sn!=="initSegment"&&t.stats.aborted&&(this.warn(`Fragment ${t.sn}${e?" part "+e.index:""} of level ${t.level} was aborted`),this.resetFragmentLoading(t))}resetFragmentLoading(t){this.fragCurrent&&(this.fragContextChanged(t)||this.state===Pn)||(this.state=Zt)}onFragmentOrKeyLoadError(t,e){if(e.chunkMeta&&!e.frag){let h=this.getCurrentContext(e.chunkMeta);h&&(e.frag=h.frag)}let i=e.frag;if(!i||i.type!==t||!this.levels)return;var n;if(this.fragContextChanged(i))return void this.warn(`Frag load error must match current frag to retry ${i.url} > ${(n=this.fragCurrent)==null?void 0:n.url}`);let s=e.details===N.FRAG_GAP;s&&this.fragmentTracker.fragBuffered(i,!0);let a=e.errorAction,{action:o,retryCount:c=0,retryConfig:u}=a||{};if(a&&o===Ce&&u){this.resetStartWhenNotLoaded(this.levelLastLoaded);let h=Js(u,c);this.warn(`Fragment ${i.sn} of ${t} ${i.level} errored with ${e.details}, retrying loading ${c+1}/${u.maxNumRetry} in ${h}ms`),a.resolved=!0,this.retryDate=self.performance.now()+h,this.state=Pn}else if(u&&a){if(this.resetFragmentErrors(t),!(c<u.maxNumRetry))return void C.warn(`${e.details} reached or exceeded max retry (${c})`);s||o===sr||(a.resolved=!0)}else(a==null?void 0:a.action)===Pi?this.state=fe:this.state=Un;this.tickImmediate()}reduceLengthAndFlushBuffer(t){if(this.state===xi||this.state===cr){let e=t.parent,i=this.getFwdBufferInfo(this.mediaBuffer,e),n=i&&i.len>0.5;n&&this.reduceMaxBufferLength(i.len);let s=!n;return s&&this.warn(`Buffer full error while media.currentTime is not buffered, flush ${e} buffer`),t.frag&&(this.fragmentTracker.removeFragment(t.frag),this.nextLoadPosition=t.frag.start),this.resetLoadingState(),s}return!1}resetFragmentErrors(t){t===Ue&&(this.fragCurrent=null),this.loadedmetadata||(this.startFragRequested=!1),this.state!==oi&&(this.state=Zt)}afterBufferFlushed(t,e,i){if(!t)return;let n=Jt.getBuffered(t);this.fragmentTracker.detectEvictedFragments(e,n,i),this.state===ur&&this.resetLoadingState()}resetLoadingState(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state=Zt}resetStartWhenNotLoaded(t){if(!this.loadedmetadata){this.startFragRequested=!1;let e=t?t.details:null;e!=null&&e.live?(this.startPosition=-1,this.setStartPosition(e,0),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}resetWhenMissingContext(t){this.warn(`The loading context changed while buffering fragment ${t.sn} of level ${t.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState()}removeUnbufferedFrags(t=0){this.fragmentTracker.removeFragmentsInRange(t,1/0,this.playlistType,!1,!0)}updateLevelTiming(t,e,i,n){var s;let a=i.details;if(!a)return void this.warn("level.details undefined");if(!Object.keys(t.elementaryStreams).reduce((o,c)=>{let u=t.elementaryStreams[c];if(u){let h=u.endPTS-u.startPTS;if(h<=0)return this.warn(`Could not parse fragment ${t.sn} ${c} duration reliably (${h})`),o||!1;let m=n?0:ir(a,t,u.startPTS,u.endPTS,u.startDTS,u.endDTS);return this.hls.trigger(b.LEVEL_PTS_UPDATED,{details:a,level:i,drift:m,type:c,frag:t,start:u.startPTS,end:u.endPTS}),!0}return o},!1)&&((s=this.transmuxer)==null?void 0:s.error)===null){let o=Error(`Found no media in fragment ${t.sn} of level ${t.level} resetting transmuxer to fallback to playlist timing`);if(i.fragmentError===0&&(i.fragmentError++,t.gap=!0,this.fragmentTracker.removeFragment(t),this.fragmentTracker.fragBuffered(t,!0)),this.warn(o.message),this.hls.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.FRAG_PARSING_ERROR,fatal:!1,error:o,frag:t,reason:`Found no media in msn ${t.sn} of level "${i.url}"`}),!this.hls)return;this.resetTransmuxer()}this.state=cr,this.hls.trigger(b.FRAG_PARSED,{frag:t,part:e})}resetTransmuxer(){this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null)}recoverWorkerError(t){t.event==="demuxerWorker"&&(this.fragmentTracker.removeAllFragments(),this.resetTransmuxer(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState())}set state(t){let e=this._state;e!==t&&(this._state=t,this.log(`${e}->${t}`))}get state(){return this._state}}class jr{constructor(){this.chunks=[],this.dataLength=0}push(t){this.chunks.push(t),this.dataLength+=t.length}flush(){let{chunks:t,dataLength:e}=this,i;return t.length?(i=t.length===1?t[0]:function(n,s){let a=new Uint8Array(s),o=0;for(let c=0;c<n.length;c++){let u=n[c];a.set(u,o),o+=u.length}return a}(t,e),this.reset(),i):new Uint8Array(0)}reset(){this.chunks.length=0,this.dataLength=0}}function wi(t="",e=90000){return{type:t,id:-1,pid:-1,inputTimeScale:e,sequenceNumber:-1,samples:[],dropped:0}}class zr{constructor(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}resetInitSegment(t,e,i,n){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:90000,sequenceNumber:0,samples:[],dropped:0}}resetTimeStamp(t){this.initPTS=t,this.resetContiguity()}resetContiguity(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0}canParse(t,e){return!1}appendFrame(t,e,i){}demux(t,e){this.cachedData&&(t=si(this.cachedData,t),this.cachedData=null);let i,n=ui(t,0),s=n?n.length:0,a=this._audioTrack,o=this._id3Track,c=n?We(n):void 0,u=t.length;for((this.basePTS===null||this.frameIndex===0&&L(c))&&(this.basePTS=Nl(c,e,this.initPTS),this.lastPTS=this.basePTS),this.lastPTS===null&&(this.lastPTS=this.basePTS),n&&n.length>0&&o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:n,type:tr,duration:Number.POSITIVE_INFINITY});s<u;){if(this.canParse(t,s)){let h=this.appendFrame(a,t,s);h?(this.frameIndex++,this.lastPTS=h.sample.pts,s+=h.length,i=s):s=u}else Di(t,s)?(n=ui(t,s),o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:n,type:tr,duration:Number.POSITIVE_INFINITY}),s+=n.length,i=s):s++;if(s===u&&i!==u){let h=re(t,i);this.cachedData?this.cachedData=si(this.cachedData,h):this.cachedData=h}}return{audioTrack:a,videoTrack:wi(),id3Track:o,textTrack:wi()}}demuxSampleAes(t,e,i){return Promise.reject(Error(`[${this}] This demuxer does not support Sample-AES decryption`))}flush(t){let e=this.cachedData;return e&&(this.cachedData=null,this.demux(e,0)),{audioTrack:this._audioTrack,videoTrack:wi(),id3Track:this._id3Track,textTrack:wi()}}destroy(){}}let Nl=(t,e,i)=>{if(L(t))return 90*t;return 90000*e+(i?90000*i.baseTime/i.timescale:0)};function po(t,e){return t[e]===255&&(246&t[e+1])==240}function vo(t,e){return 1&t[e+1]?7:9}function ca(t,e){return(3&t[e+3])<<11|t[e+4]<<3|(224&t[e+5])>>>5}function qr(t,e){return e+1<t.length&&po(t,e)}function Fl(t,e){if(qr(t,e)){let i=vo(t,e);if(e+i>=t.length)return!1;let n=ca(t,e);if(n<=i)return!1;let s=e+n;return s===t.length||qr(t,s)}return!1}function Eo(t,e,i,n,s){if(!t.samplerate){let a=function(o,c,u,h){let m,y,S,_,w=navigator.userAgent.toLowerCase(),I=h,D=[96000,88200,64000,48000,44100,32000,24000,22050,16000,12000,11025,8000,7350];m=1+((192&c[u+2])>>>6);let F=(60&c[u+2])>>>2;if(!(F>D.length-1))return S=(1&c[u+2])<<2,S|=(192&c[u+3])>>>6,C.log(`manifest codec:${h}, ADTS type:${m}, samplingIndex:${F}`),/firefox/i.test(w)?F>=6?(m=5,_=[,,,,],y=F-3):(m=2,_=[,,],y=F):w.indexOf("android")!==-1?(m=2,_=[,,],y=F):(m=5,_=[,,,,],h&&(h.indexOf("mp4a.40.29")!==-1||h.indexOf("mp4a.40.5")!==-1)||!h&&F>=6?y=F-3:((h&&h.indexOf("mp4a.40.2")!==-1&&(F>=6&&S===1||/vivaldi/i.test(w))||!h&&S===1)&&(m=2,_=[,,]),y=F)),_[0]=m<<3,_[0]|=(14&F)>>1,_[1]|=(1&F)<<7,_[1]|=S<<3,m===5&&(_[1]|=(14&y)>>1,_[2]=(1&y)<<7,_[2]|=8,_[3]=0),{config:_,samplerate:D[F],channelCount:S,codec:"mp4a.40."+m,manifestCodec:I};{let x=Error("invalid ADTS sampling index:"+F);o.emit(b.ERROR,b.ERROR,{type:G.MEDIA_ERROR,details:N.FRAG_PARSING_ERROR,fatal:!0,error:x,reason:x.message})}}(e,i,n,s);if(!a)return;t.config=a.config,t.samplerate=a.samplerate,t.channelCount=a.channelCount,t.codec=a.codec,t.manifestCodec=a.manifestCodec,C.log(`parsed codec:${t.codec}, rate:${a.samplerate}, channels:${a.channelCount}`)}}function vi(t){return 92160000/t}function En(t,e,i,n,s){let a=n+s*vi(t.samplerate),o=function(h,m){let y=vo(h,m);if(m+y<=h.length){let S=ca(h,m)-y;if(S>0)return{headerLength:y,frameLength:S}}}(e,i),c;if(o){let{frameLength:h,headerLength:m}=o,y=m+h,S=Math.max(0,i+y-e.length);S?(c=new Uint8Array(y-m),c.set(e.subarray(i+m,e.length),0)):c=e.subarray(i+m,i+y);let _={unit:c,pts:a};return S||t.samples.push(_),{sample:_,length:y,missing:S}}let u=e.length-i;return c=new Uint8Array(u),c.set(e.subarray(i,e.length),0),{sample:{unit:c,pts:a},length:u,missing:-1}}let yn=null,be=[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],yo=[44100,48000,32000,22050,24000,16000,11025,12000,8000],So=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],bo=[0,1,1,4];function ua(t,e,i,n,s){if(i+24>e.length)return;let a=da(e,i);if(a&&i+a.frameLength<=e.length){let o=n+s*(90000*a.samplesPerFrame/a.sampleRate),c={unit:e.subarray(i,i+a.frameLength),pts:o,dts:o};return t.config=[],t.channelCount=a.channelCount,t.samplerate=a.sampleRate,t.samples.push(c),{sample:c,length:a.frameLength,missing:0}}}function da(t,e){let i=t[e+1]>>3&3,n=t[e+1]>>1&3,s=t[e+2]>>4&15,a=t[e+2]>>2&3;if(i!==1&&s!==0&&s!==15&&a!==3){let o=t[e+2]>>1&1,c=t[e+3]>>6,u=1000*be[14*(i===3?3-n:n===3?3:4)+s-1],h=yo[3*(i===3?0:i===2?1:2)+a],m=c===3?1:2,y=So[i][n],S=bo[n],_=8*y*S,w=Math.floor(y*u/h+o)*S;if(yn===null){let I=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);yn=I?parseInt(I[1]):0}return!!yn&&yn<=87&&n===2&&u>=224000&&c===0&&(t[e+3]=128|t[e+3]),{sampleRate:h,channelCount:m,frameLength:w,samplesPerFrame:_}}}function Xr(t,e){return t[e]===255&&(224&t[e+1])==224&&(6&t[e+1])!=0}function ha(t,e){return e+1<t.length&&Xr(t,e)}function fa(t,e){if(e+1<t.length&&Xr(t,e)){let n=da(t,e),s=4;n!=null&&n.frameLength&&(s=n.frameLength);let a=e+s;return a===t.length||ha(t,a)}return!1}let To=/\/emsg[-/]ID3/i,Jr=(t,e)=>{let i=0,n=5;e+=n;let s=new Uint32Array(1),a=new Uint32Array(1),o=new Uint8Array(1);for(;n>0;){o[0]=t[e];let c=Math.min(n,8),u=8-c;a[0]=4278190080>>>24+u<<u,s[0]=(o[0]&a[0])>>u,i=i?i<<c|s[0]:s[0],e+=1,n-=c}return i};class ma extends zr{constructor(t){super(),this.observer=void 0,this.observer=t}resetInitSegment(t,e,i,n){super.resetInitSegment(t,e,i,n),this._audioTrack={container:"audio/ac-3",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"ac3",samples:[],manifestCodec:e,duration:n,inputTimeScale:90000,dropped:0}}canParse(t,e){return e+64<t.length}appendFrame(t,e,i){let n=Qr(t,e,i,this.basePTS,this.frameIndex);if(n!==-1)return{sample:t.samples[t.samples.length-1],length:n,missing:0}}static probe(t){if(!t)return!1;let e=ui(t,0);if(!e)return!1;let i=e.length;return t[i]===11&&t[i+1]===119&&We(e)!==void 0&&Jr(t,i)<16}}function Qr(t,e,i,n,s){if(i+8>e.length)return-1;if(e[i]!==11||e[i+1]!==119)return-1;let a=e[i+4]>>6;if(a>=3)return-1;let o=[48000,44100,32000][a],c=63&e[i+4],u=2*[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][3*c+a];if(i+u>e.length)return-1;let h=e[i+6]>>5,m=0;h===2?m+=2:(1&h&&h!==1&&(m+=2),4&h&&(m+=2));let y=(e[i+6]<<8|e[i+7])>>12-m&1,S=[2,1,2,3,3,4,4,5][h]+y,_=e[i+5]>>3,w=7&e[i+5],I=new Uint8Array([a<<6|_<<1|w>>2,(3&w)<<6|h<<3|y<<2|c>>4,c<<4&224]),D=n+s*(1536/o*90000),F=e.subarray(i,i+u);return t.config=I,t.channelCount=S,t.samplerate=o,t.samples.push({unit:F,pts:D}),u}class Zr{constructor(t){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=t,this.bytesAvailable=t.byteLength,this.word=0,this.bitsAvailable=0}loadWord(){let t=this.data,e=this.bytesAvailable,i=t.byteLength-e,n=new Uint8Array(4),s=Math.min(4,e);if(s===0)throw Error("no bytes available");n.set(t.subarray(i,i+s)),this.word=new DataView(n.buffer).getUint32(0),this.bitsAvailable=8*s,this.bytesAvailable-=s}skipBits(t){let e;t=Math.min(t,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>t?(this.word<<=t,this.bitsAvailable-=t):(e=(t-=this.bitsAvailable)>>3,t-=e<<3,this.bytesAvailable-=e,this.loadWord(),this.word<<=t,this.bitsAvailable-=t)}readBits(t){let e=Math.min(this.bitsAvailable,t),i=this.word>>>32-e;if(t>32&&C.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=e,this.bitsAvailable>0)this.word<<=e;else{if(!(this.bytesAvailable>0))throw Error("no bits available");this.loadWord()}return e=t-e,e>0&&this.bitsAvailable?i<<e|this.readBits(e):i}skipLZ(){let t;for(t=0;t<this.bitsAvailable;++t)if((this.word&2147483648>>>t)!=0)return this.word<<=t,this.bitsAvailable-=t,t;return this.loadWord(),t+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ())}skipEG(){this.skipBits(1+this.skipLZ())}readUEG(){let t=this.skipLZ();return this.readBits(t+1)-1}readEG(){let t=this.readUEG();return 1&t?1+t>>>1:-1*(t>>>1)}readBoolean(){return this.readBits(1)===1}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}skipScalingList(t){let e,i=8,n=8;for(let s=0;s<t;s++)n!==0&&(e=this.readEG(),n=(i+e+256)%256),i=n===0?i:n}readSPS(){let t,e,i,n=0,s=0,a=0,o=0,c=this.readUByte.bind(this),u=this.readBits.bind(this),h=this.readUEG.bind(this),m=this.readBoolean.bind(this),y=this.skipBits.bind(this),S=this.skipEG.bind(this),_=this.skipUEG.bind(this),w=this.skipScalingList.bind(this);c();let I=c();if(u(5),y(3),c(),_(),I===100||I===110||I===122||I===244||I===44||I===83||I===86||I===118||I===128){let lt=h();if(lt===3&&y(1),_(),_(),y(1),m())for(e=lt!==3?8:12,i=0;i<e;i++)m()&&w(i<6?16:64)}_();let D=h();if(D===0)h();else if(D===1)for(y(1),S(),S(),t=h(),i=0;i<t;i++)S();_(),y(1);let F=h(),x=h(),W=u(1);W===0&&y(1),y(1),m()&&(n=h(),s=h(),a=h(),o=h());let z=[1,1];if(m()&&m())switch(c()){case 1:z=[1,1];break;case 2:z=[12,11];break;case 3:z=[10,11];break;case 4:z=[16,11];break;case 5:z=[40,33];break;case 6:z=[24,11];break;case 7:z=[20,11];break;case 8:z=[32,11];break;case 9:z=[80,33];break;case 10:z=[18,11];break;case 11:z=[15,11];break;case 12:z=[64,33];break;case 13:z=[160,99];break;case 14:z=[4,3];break;case 15:z=[3,2];break;case 16:z=[2,1];break;case 255:z=[c()<<8|c(),c()<<8|c()]}return{width:Math.ceil(16*(F+1)-2*n-2*s),height:(2-W)*(x+1)*16-(W?2:4)*(a+o),pixelRatio:z}}readSliceType(){return this.readUByte(),this.readUEG(),this.readUEG()}}class ga extends class{constructor(){this.VideoSample=null}createVideoSample(e,i,n,s){return{key:e,frame:!1,pts:i,dts:n,units:[],debug:s,length:0}}getLastNalUnit(e){var i;let n,s=this.VideoSample;if(s&&s.units.length!==0||(s=e[e.length-1]),(i=s)!=null&&i.units){let a=s.units;n=a[a.length-1]}return n}pushAccessUnit(e,i){if(e.units.length&&e.frame){if(e.pts===void 0){let n=i.samples,s=n.length;if(!s)return void i.dropped++;{let a=n[s-1];e.pts=a.pts,e.dts=a.dts}}i.samples.push(e)}e.debug.length&&C.log(e.pts+"/"+e.dts+":"+e.debug)}}{parseAVCPES(t,e,i,n,s){let a=this.parseAVCNALu(t,i.data),o,c=this.VideoSample,u=!1;i.data=null,c&&a.length&&!t.audFound&&(this.pushAccessUnit(c,t),c=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts,"")),a.forEach((h)=>{var m;switch(h.type){case 1:{let w=!1;o=!0;let I=h.data;if(u&&I.length>4){let D=new Zr(I).readSliceType();D!==2&&D!==4&&D!==7&&D!==9||(w=!0)}var y;if(w)(y=c)!=null&&y.frame&&!c.key&&(this.pushAccessUnit(c,t),c=this.VideoSample=null);c||(c=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts,"")),c.frame=!0,c.key=w;break}case 5:o=!0,(m=c)!=null&&m.frame&&!c.key&&(this.pushAccessUnit(c,t),c=this.VideoSample=null),c||(c=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts,"")),c.key=!0,c.frame=!0;break;case 6:o=!0,Ya(h.data,1,i.pts,e.samples);break;case 7:{var S,_;o=!0,u=!0;let w=h.data,I=new Zr(w).readSPS();if(!t.sps||t.width!==I.width||t.height!==I.height||((S=t.pixelRatio)==null?void 0:S[0])!==I.pixelRatio[0]||((_=t.pixelRatio)==null?void 0:_[1])!==I.pixelRatio[1]){t.width=I.width,t.height=I.height,t.pixelRatio=I.pixelRatio,t.sps=[w],t.duration=s;let D=w.subarray(1,4),F="avc1.";for(let x=0;x<3;x++){let W=D[x].toString(16);W.length<2&&(W="0"+W),F+=W}t.codec=F}break}case 8:o=!0,t.pps=[h.data];break;case 9:o=!0,t.audFound=!0,c&&this.pushAccessUnit(c,t),c=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts,"");break;case 12:o=!0;break;default:o=!1,c&&(c.debug+="unknown NAL "+h.type+" ")}if(c&&o)c.units.push(h)}),n&&c&&(this.pushAccessUnit(c,t),this.VideoSample=null)}parseAVCNALu(t,e){let i=e.byteLength,n=t.naluState||0,s=n,a=[],o,c,u,h=0,m=-1,y=0;for(n===-1&&(m=0,y=31&e[0],n=0,h=1);h<i;)if(o=e[h++],n)if(n!==1)if(o)if(o===1){if(c=h-n-1,m>=0){let S={data:e.subarray(m,c),type:y};a.push(S)}else{let S=this.getLastNalUnit(t.samples);S&&(s&&h<=4-s&&S.state&&(S.data=S.data.subarray(0,S.data.byteLength-s)),c>0&&(S.data=si(S.data,e.subarray(0,c)),S.state=0))}h<i?(u=31&e[h],m=h,y=u,n=0):n=-1}else n=0;else n=3;else n=o?0:2;else n=o?0:1;if(m>=0&&n>=0){let S={data:e.subarray(m,i),type:y,state:n};a.push(S)}if(a.length===0){let S=this.getLastNalUnit(t.samples);S&&(S.data=si(S.data,e))}return t.naluState=n,a}}class pa{constructor(t,e,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new lr(e,{removePKCS7Padding:!1})}decryptBuffer(t){return this.decrypter.decrypt(t,this.keyData.key.buffer,this.keyData.iv.buffer)}decryptAacSample(t,e,i){let n=t[e].unit;if(n.length<=16)return;let s=n.subarray(16,n.length-n.length%16),a=s.buffer.slice(s.byteOffset,s.byteOffset+s.length);this.decryptBuffer(a).then((o)=>{let c=new Uint8Array(o);n.set(c,16),this.decrypter.isSync()||this.decryptAacSamples(t,e+1,i)})}decryptAacSamples(t,e,i){for(;;e++){if(e>=t.length)return void i();if(!(t[e].unit.length<32)&&(this.decryptAacSample(t,e,i),!this.decrypter.isSync()))return}}getAvcEncryptedData(t){let e=16*Math.floor((t.length-48)/160)+16,i=new Int8Array(e),n=0;for(let s=32;s<t.length-16;s+=160,n+=16)i.set(t.subarray(s,s+16),n);return i}getAvcDecryptedUnit(t,e){let i=new Uint8Array(e),n=0;for(let s=32;s<t.length-16;s+=160,n+=16)t.set(i.subarray(n,n+16),s);return t}decryptAvcSample(t,e,i,n,s){let a=kr(s.data),o=this.getAvcEncryptedData(a);this.decryptBuffer(o.buffer).then((c)=>{s.data=this.getAvcDecryptedUnit(a,c),this.decrypter.isSync()||this.decryptAvcSamples(t,e,i+1,n)})}decryptAvcSamples(t,e,i,n){if(t instanceof Uint8Array)throw Error("Cannot decrypt samples of type Uint8Array");for(;;e++,i=0){if(e>=t.length)return void n();let s=t[e].units;for(;!(i>=s.length);i++){let a=s[i];if(!(a.data.length<=48||a.type!==1&&a.type!==5||(this.decryptAvcSample(t,e,i,n,a),this.decrypter.isSync())))return}}}}class Ui{constructor(t,e,i){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._duration=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=t,this.config=e,this.typeSupported=i,this.videoParser=new ga}static probe(t){let e=Ui.syncOffset(t);return e>0&&C.warn("MPEG2-TS detected but first sync word found @ offset "+e),e!==-1}static syncOffset(t){let e=t.length,i=Math.min(940,e-188)+1,n=0;for(;n<i;){let s=!1,a=-1,o=0;for(let c=n;c<e;c+=188){if(t[c]!==71||e-c!=188&&t[c+188]!==71){if(o)return-1;break}if(o++,a===-1&&(a=c,a!==0&&(i=Math.min(a+18612,t.length-188)+1)),s||(s=ts(t,c)===0),s&&o>1&&(a===0&&o>2||c+188>i))return a}n++}return-1}static createTrack(t,e){return{container:t==="video"||t==="audio"?"video/mp2t":void 0,type:t,id:oe[t],pid:-1,inputTimeScale:90000,sequenceNumber:0,samples:[],dropped:0,duration:t==="audio"?e:void 0}}resetInitSegment(t,e,i,n){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=Ui.createTrack("video"),this._audioTrack=Ui.createTrack("audio",n),this._id3Track=Ui.createTrack("id3"),this._txtTrack=Ui.createTrack("text"),this._audioTrack.segmentCodec="aac",this.aacOverFlow=null,this.remainderData=null,this.audioCodec=e,this.videoCodec=i,this._duration=n}resetTimeStamp(){}resetContiguity(){let{_audioTrack:t,_videoTrack:e,_id3Track:i}=this;t&&(t.pesData=null),e&&(e.pesData=null),i&&(i.pesData=null),this.aacOverFlow=null,this.remainderData=null}demux(t,e,i=!1,n=!1){let s;i||(this.sampleAes=null);let a=this._videoTrack,o=this._audioTrack,c=this._id3Track,u=this._txtTrack,h=a.pid,m=a.pesData,y=o.pid,S=c.pid,_=o.pesData,w=c.pesData,I=null,D=this.pmtParsed,F=this._pmtId,x=t.length;if(this.remainderData&&(x=(t=si(this.remainderData,t)).length,this.remainderData=null),x<188&&!n)return this.remainderData=t,{audioTrack:o,videoTrack:a,id3Track:c,textTrack:u};let W=Math.max(0,Ui.syncOffset(t));x-=(x-W)%188,x<t.byteLength&&!n&&(this.remainderData=new Uint8Array(t.buffer,x,t.buffer.byteLength-x));let z=0;for(let it=W;it<x;it+=188)if(t[it]===71){let ft=!!(64&t[it+1]),mt=ts(t,it),Z;if((48&t[it+3])>>4>1){if(Z=it+5+t[it+4],Z===it+188)continue}else Z=it+4;switch(mt){case h:ft&&(m&&(s=Sn(m))&&this.videoParser.parseAVCPES(a,u,s,!1,this._duration),m={data:[],size:0}),m&&(m.data.push(t.subarray(Z,it+188)),m.size+=it+188-Z);break;case y:if(ft){if(_&&(s=Sn(_)))switch(o.segmentCodec){case"aac":this.parseAACPES(o,s);break;case"mp3":this.parseMPEGPES(o,s);break;case"ac3":this.parseAC3PES(o,s)}_={data:[],size:0}}_&&(_.data.push(t.subarray(Z,it+188)),_.size+=it+188-Z);break;case S:ft&&(w&&(s=Sn(w))&&this.parseID3PES(c,s),w={data:[],size:0}),w&&(w.data.push(t.subarray(Z,it+188)),w.size+=it+188-Z);break;case 0:ft&&(Z+=t[Z]+1),F=this._pmtId=_o(t,Z);break;case F:{ft&&(Z+=t[Z]+1);let J=va(t,Z,this.typeSupported,i);h=J.videoPid,h>0&&(a.pid=h,a.segmentCodec=J.segmentVideoCodec),y=J.audioPid,y>0&&(o.pid=y,o.segmentCodec=J.segmentAudioCodec),S=J.id3Pid,S>0&&(c.pid=S),I===null||D||(C.warn(`MPEG-TS PMT found at ${it} after unknown PID '${I}'. Backtracking to sync byte @${W} to parse all TS packets.`),I=null,it=W-188),D=this.pmtParsed=!0;break}case 17:case 8191:break;default:I=mt}}else z++;if(z>0){let it=Error(`Found ${z} TS packet/s that do not start with 0x47`);this.observer.emit(b.ERROR,b.ERROR,{type:G.MEDIA_ERROR,details:N.FRAG_PARSING_ERROR,fatal:!1,error:it,reason:it.message})}a.pesData=m,o.pesData=_,c.pesData=w;let lt={audioTrack:o,videoTrack:a,id3Track:c,textTrack:u};return n&&this.extractRemainingSamples(lt),lt}flush(){let{remainderData:t}=this,e;return this.remainderData=null,e=t?this.demux(t,-1,!1,!0):{videoTrack:this._videoTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(e),this.sampleAes?this.decrypt(e,this.sampleAes):e}extractRemainingSamples(t){let{audioTrack:e,videoTrack:i,id3Track:n,textTrack:s}=t,a=i.pesData,o=e.pesData,c=n.pesData,u;if(a&&(u=Sn(a))?(this.videoParser.parseAVCPES(i,s,u,!0,this._duration),i.pesData=null):i.pesData=a,o&&(u=Sn(o))){switch(e.segmentCodec){case"aac":this.parseAACPES(e,u);break;case"mp3":this.parseMPEGPES(e,u);break;case"ac3":this.parseAC3PES(e,u)}e.pesData=null}else o!=null&&o.size&&C.log("last AAC PES packet truncated,might overlap between fragments"),e.pesData=o;c&&(u=Sn(c))?(this.parseID3PES(n,u),n.pesData=null):n.pesData=c}demuxSampleAes(t,e,i){let n=this.demux(t,i,!0,!this.config.progressive),s=this.sampleAes=new pa(this.observer,this.config,e);return this.decrypt(n,s)}decrypt(t,e){return new Promise((i)=>{let{audioTrack:n,videoTrack:s}=t;n.samples&&n.segmentCodec==="aac"?e.decryptAacSamples(n.samples,0,()=>{s.samples?e.decryptAvcSamples(s.samples,0,0,()=>{i(t)}):i(t)}):s.samples&&e.decryptAvcSamples(s.samples,0,0,()=>{i(t)})})}destroy(){this._duration=0}parseAACPES(t,e){let i=0,n=this.aacOverFlow,s,a,o,c=e.data;if(n){this.aacOverFlow=null;let m=n.missing,y=n.sample.unit.byteLength;if(m===-1)c=si(n.sample.unit,c);else{let S=y-m;n.sample.unit.set(c.subarray(0,m),S),t.samples.push(n.sample),i=n.missing}}for(s=i,a=c.length;s<a-1&&!qr(c,s);s++);if(s!==i){let m,y=s<a-1;m=y?"AAC PES did not start with ADTS header,offset:"+s:"No ADTS header found in AAC PES";let S=Error(m);if(C.warn("parsing error: "+m),this.observer.emit(b.ERROR,b.ERROR,{type:G.MEDIA_ERROR,details:N.FRAG_PARSING_ERROR,fatal:!1,levelRetry:y,error:S,reason:m}),!y)return}if(Eo(t,this.observer,c,s,this.audioCodec),e.pts!==void 0)o=e.pts;else{if(!n)return void C.warn("[tsdemuxer]: AAC PES unknown PTS");{let m=vi(t.samplerate);o=n.sample.pts+m}}let u,h=0;for(;s<a;){if(u=En(t,c,s,o,h),s+=u.length,u.missing){this.aacOverFlow=u;break}for(h++;s<a-1&&!qr(c,s);s++);}}parseMPEGPES(t,e){let i=e.data,n=i.length,s=0,a=0,o=e.pts;if(o!==void 0)for(;a<n;)if(ha(i,a)){let c=ua(t,i,a,o,s);if(!c)break;a+=c.length,s++}else a++;else C.warn("[tsdemuxer]: MPEG PES unknown PTS")}parseAC3PES(t,e){{let{data:i,pts:n}=e;if(n===void 0)return void C.warn("[tsdemuxer]: AC3 PES unknown PTS");let s=i.length,a,o=0,c=0;for(;c<s&&(a=Qr(t,i,c,n,o++))>0;)c+=a}}parseID3PES(t,e){if(e.pts===void 0)return void C.warn("[tsdemuxer]: ID3 PES unknown PTS");let i=T({},e,{type:this._videoTrack?Dn:tr,duration:Number.POSITIVE_INFINITY});t.samples.push(i)}}function ts(t,e){return((31&t[e+1])<<8)+t[e+2]}function _o(t,e){return(31&t[e+10])<<8|t[e+11]}function va(t,e,i,n){let s={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},a=e+3+((15&t[e+1])<<8|t[e+2])-4;for(e+=12+((15&t[e+10])<<8|t[e+11]);e<a;){let o=ts(t,e),c=(15&t[e+3])<<8|t[e+4];switch(t[e]){case 207:if(!n){es("ADTS AAC");break}case 15:s.audioPid===-1&&(s.audioPid=o);break;case 21:s.id3Pid===-1&&(s.id3Pid=o);break;case 219:if(!n){es("H.264");break}case 27:s.videoPid===-1&&(s.videoPid=o,s.segmentVideoCodec="avc");break;case 3:case 4:i.mpeg||i.mp3?s.audioPid===-1&&(s.audioPid=o,s.segmentAudioCodec="mp3"):C.log("MPEG audio found, not supported in this browser");break;case 193:if(!n){es("AC-3");break}case 129:i.ac3?s.audioPid===-1&&(s.audioPid=o,s.segmentAudioCodec="ac3"):C.log("AC-3 audio found, not supported in this browser");break;case 6:if(s.audioPid===-1&&c>0){let u=e+5,h=c;for(;h>2;){switch(t[u]){case 106:i.ac3!==!0?C.log("AC-3 audio found, not supported in this browser for now"):(s.audioPid=o,s.segmentAudioCodec="ac3")}let m=t[u+1]+2;u+=m,h-=m}}break;case 194:case 135:C.warn("Unsupported EC-3 in M2TS found");break;case 36:C.warn("Unsupported HEVC in M2TS found")}e+=c+5}return s}function es(t){C.log(t+" with AES-128-CBC encryption found in unencrypted stream")}function Sn(t){let e,i,n,s,a,o=0,c=t.data;if(!t||t.size===0)return null;for(;c[0].length<19&&c.length>1;)c[0]=si(c[0],c[1]),c.splice(1,1);if(e=c[0],(e[0]<<16)+(e[1]<<8)+e[2]===1){if(i=(e[4]<<8)+e[5],i&&i>t.size-6)return null;let u=e[7];192&u&&(s=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,64&u?(a=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2,s-a>5400000&&(C.warn(Math.round((s-a)/90000)+"s delta between PTS and DTS, align them"),s=a)):a=s),n=e[8];let h=n+9;if(t.size<=h)return null;t.size-=h;let m=new Uint8Array(t.size);for(let y=0,S=c.length;y<S;y++){e=c[y];let _=e.byteLength;if(h){if(h>_){h-=_;continue}e=e.subarray(h),_-=h,h=0}m.set(e,o),o+=_}return i&&(i-=n+3),{data:m,pts:s,dts:a,len:i}}return null}class hr{static getSilentFrame(t,e){switch(t){case"mp4a.40.2":if(e===1)return new Uint8Array([0,200,0,128,35,128]);if(e===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(e===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(e===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(e===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]);if(e===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(e===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]);if(e===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]);if(e===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])}}}let f=Math.pow(2,32)-1;class g{static init(){let t;for(t in g.types={avc1:[],avcC:[],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:[]},g.types)g.types.hasOwnProperty(t)&&(g.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);let e=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]),i=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]);g.HDLR_TYPES={video:e,audio:i};let n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),s=new Uint8Array([0,0,0,0,0,0,0,0]);g.STTS=g.STSC=g.STCO=s,g.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),g.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),g.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),g.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);let a=new Uint8Array([105,115,111,109]),o=new Uint8Array([97,118,99,49]),c=new Uint8Array([0,0,0,1]);g.FTYP=g.box(g.types.ftyp,a,c,a,o),g.DINF=g.box(g.types.dinf,g.box(g.types.dref,n))}static box(t,...e){let i=8,n=e.length,s=n;for(;n--;)i+=e[n].byteLength;let a=new Uint8Array(i);for(a[0]=i>>24&255,a[1]=i>>16&255,a[2]=i>>8&255,a[3]=255&i,a.set(t,4),n=0,i=8;n<s;n++)a.set(e[n],i),i+=e[n].byteLength;return a}static hdlr(t){return g.box(g.types.hdlr,g.HDLR_TYPES[t])}static mdat(t){return g.box(g.types.mdat,t)}static mdhd(t,e){e*=t;let i=Math.floor(e/(f+1)),n=Math.floor(e%(f+1));return g.box(g.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i,n>>24,n>>16&255,n>>8&255,255&n,85,196,0,0]))}static mdia(t){return g.box(g.types.mdia,g.mdhd(t.timescale,t.duration),g.hdlr(t.type),g.minf(t))}static mfhd(t){return g.box(g.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))}static minf(t){return t.type==="audio"?g.box(g.types.minf,g.box(g.types.smhd,g.SMHD),g.DINF,g.stbl(t)):g.box(g.types.minf,g.box(g.types.vmhd,g.VMHD),g.DINF,g.stbl(t))}static moof(t,e,i){return g.box(g.types.moof,g.mfhd(t),g.traf(i,e))}static moov(t){let e=t.length,i=[];for(;e--;)i[e]=g.trak(t[e]);return g.box.apply(null,[g.types.moov,g.mvhd(t[0].timescale,t[0].duration)].concat(i).concat(g.mvex(t)))}static mvex(t){let e=t.length,i=[];for(;e--;)i[e]=g.trex(t[e]);return g.box.apply(null,[g.types.mvex,...i])}static mvhd(t,e){e*=t;let i=Math.floor(e/(f+1)),n=Math.floor(e%(f+1)),s=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i,n>>24,n>>16&255,n>>8&255,255&n,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 g.box(g.types.mvhd,s)}static sdtp(t){let e=t.samples||[],i=new Uint8Array(4+e.length),n,s;for(n=0;n<e.length;n++)s=e[n].flags,i[n+4]=s.dependsOn<<4|s.isDependedOn<<2|s.hasRedundancy;return g.box(g.types.sdtp,i)}static stbl(t){return g.box(g.types.stbl,g.stsd(t),g.box(g.types.stts,g.STTS),g.box(g.types.stsc,g.STSC),g.box(g.types.stsz,g.STSZ),g.box(g.types.stco,g.STCO))}static avc1(t){let e,i,n,s=[],a=[];for(e=0;e<t.sps.length;e++)i=t.sps[e],n=i.byteLength,s.push(n>>>8&255),s.push(255&n),s=s.concat(Array.prototype.slice.call(i));for(e=0;e<t.pps.length;e++)i=t.pps[e],n=i.byteLength,a.push(n>>>8&255),a.push(255&n),a=a.concat(Array.prototype.slice.call(i));let o=g.box(g.types.avcC,new Uint8Array([1,s[3],s[4],s[5],255,224|t.sps.length].concat(s).concat([t.pps.length]).concat(a))),c=t.width,u=t.height,h=t.pixelRatio[0],m=t.pixelRatio[1];return g.box(g.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,c>>8&255,255&c,u>>8&255,255&u,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]),o,g.box(g.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),g.box(g.types.pasp,new Uint8Array([h>>24,h>>16&255,h>>8&255,255&h,m>>24,m>>16&255,m>>8&255,255&m])))}static esds(t){let e=t.config.length;return new Uint8Array([0,0,0,0,3,23+e,0,1,0,4,15+e,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([e]).concat(t.config).concat([6,1,2]))}static audioStsd(t){let e=t.samplerate;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,e>>8&255,255&e,0,0])}static mp4a(t){return g.box(g.types.mp4a,g.audioStsd(t),g.box(g.types.esds,g.esds(t)))}static mp3(t){return g.box(g.types[".mp3"],g.audioStsd(t))}static ac3(t){return g.box(g.types["ac-3"],g.audioStsd(t),g.box(g.types.dac3,t.config))}static stsd(t){return t.type==="audio"?t.segmentCodec==="mp3"&&t.codec==="mp3"?g.box(g.types.stsd,g.STSD,g.mp3(t)):t.segmentCodec==="ac3"?g.box(g.types.stsd,g.STSD,g.ac3(t)):g.box(g.types.stsd,g.STSD,g.mp4a(t)):g.box(g.types.stsd,g.STSD,g.avc1(t))}static tkhd(t){let e=t.id,i=t.duration*t.timescale,n=t.width,s=t.height,a=Math.floor(i/(f+1)),o=Math.floor(i%(f+1));return g.box(g.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,0,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,o>>24,o>>16&255,o>>8&255,255&o,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,n>>8&255,255&n,0,0,s>>8&255,255&s,0,0]))}static traf(t,e){let i=g.sdtp(t),n=t.id,s=Math.floor(e/(f+1)),a=Math.floor(e%(f+1));return g.box(g.types.traf,g.box(g.types.tfhd,new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n])),g.box(g.types.tfdt,new Uint8Array([1,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,a>>24,a>>16&255,a>>8&255,255&a])),g.trun(t,i.length+16+20+8+16+8+8),i)}static trak(t){return t.duration=t.duration||4294967295,g.box(g.types.trak,g.tkhd(t),g.mdia(t))}static trex(t){let e=t.id;return g.box(g.types.trex,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(t,e){let i=t.samples||[],n=i.length,s=12+16*n,a=new Uint8Array(s),o,c,u,h,m,y;for(e+=8+s,a.set([t.type==="video"?1:0,0,15,1,n>>>24&255,n>>>16&255,n>>>8&255,255&n,e>>>24&255,e>>>16&255,e>>>8&255,255&e],0),o=0;o<n;o++)c=i[o],u=c.duration,h=c.size,m=c.flags,y=c.cts,a.set([u>>>24&255,u>>>16&255,u>>>8&255,255&u,h>>>24&255,h>>>16&255,h>>>8&255,255&h,m.isLeading<<2|m.dependsOn,m.isDependedOn<<6|m.hasRedundancy<<4|m.paddingValue<<1|m.isNonSync,61440&m.degradPrio,15&m.degradPrio,y>>>24&255,y>>>16&255,y>>>8&255,255&y],12+16*o);return g.box(g.types.trun,a)}static initSegment(t){g.types||g.init();let e=g.moov(t);return si(g.FTYP,e)}}g.types=void 0,g.HDLR_TYPES=void 0,g.STTS=void 0,g.STSC=void 0,g.STCO=void 0,g.STSZ=void 0,g.VMHD=void 0,g.SMHD=void 0,g.STSD=void 0,g.FTYP=void 0,g.DINF=void 0;function p(t,e,i=1,n=!1){let s=t*e*i;return n?Math.round(s):s}function k(t,e=!1){return p(t,1000,0.000011111111111111112,e)}let M,$=null,H=null;class U{constructor(t,e,i,n=""){if(this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextAvcDts=null,this.nextAudioPts=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=t,this.config=e,this.typeSupported=i,this.ISGenerated=!1,$===null){let s=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);$=s?parseInt(s[1]):0}if(H===null){let s=navigator.userAgent.match(/Safari\/(\d+)/i);H=s?parseInt(s[1]):0}}destroy(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null}resetTimeStamp(t){C.log("[mp4-remuxer]: initPTS & initDTS reset"),this._initPTS=this._initDTS=t}resetNextTimestamp(){C.log("[mp4-remuxer]: reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){C.log("[mp4-remuxer]: ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0}getVideoStartPts(t){let e=!1,i=t.reduce((n,s)=>{let a=s.pts-n;return a<-4294967296?(e=!0,j(n,s.pts)):a>0?n:s.pts},t[0].pts);return e&&C.debug("PTS rollover detected"),i}remux(t,e,i,n,s,a,o,c){let u,h,m,y,S,_,w=s,I=s,D=t.pid>-1,F=e.pid>-1,x=e.samples.length,W=t.samples.length>0,z=o&&x>0||x>1;if((!D||W)&&(!F||z)||this.ISGenerated||o){if(this.ISGenerated){var lt,it,ft,mt;let ht=this.videoTrackConfig;!ht||e.width===ht.width&&e.height===ht.height&&((lt=e.pixelRatio)==null?void 0:lt[0])===((it=ht.pixelRatio)==null?void 0:it[0])&&((ft=e.pixelRatio)==null?void 0:ft[1])===((mt=ht.pixelRatio)==null?void 0:mt[1])||this.resetInitSegment()}else m=this.generateIS(t,e,s,a);let Z=this.isVideoContiguous,J,kt=-1;if(z&&(kt=function(ht){for(let wt=0;wt<ht.length;wt++)if(ht[wt].key)return wt;return-1}(e.samples),!Z&&this.config.forceKeyFrameOnDiscontinuity))if(_=!0,kt>0){C.warn(`[mp4-remuxer]: Dropped ${kt} out of ${x} video samples due to a missing keyframe`);let ht=this.getVideoStartPts(e.samples);e.samples=e.samples.slice(kt),e.dropped+=kt,I+=(e.samples[0].pts-ht)/e.inputTimeScale,J=I}else kt===-1&&(C.warn(`[mp4-remuxer]: No keyframe found out of ${x} video samples`),_=!1);if(this.ISGenerated){if(W&&z){let ht=this.getVideoStartPts(e.samples),wt=(j(t.samples[0].pts,ht)-ht)/e.inputTimeScale;w+=Math.max(0,wt),I+=Math.max(0,-wt)}if(W){if(t.samplerate||(C.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"),m=this.generateIS(t,e,s,a)),h=this.remuxAudio(t,w,this.isAudioContiguous,a,F||z||c===Ue?I:void 0),z){let ht=h?h.endPTS-h.startPTS:0;e.inputTimeScale||(C.warn("[mp4-remuxer]: regenerate InitSegment as video detected"),m=this.generateIS(t,e,s,a)),u=this.remuxVideo(e,I,Z,ht)}}else z&&(u=this.remuxVideo(e,I,Z,0));u&&(u.firstKeyFrame=kt,u.independent=kt!==-1,u.firstKeyFramePTS=J)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(i.samples.length&&(S=tt(i,s,this._initPTS,this._initDTS)),n.samples.length&&(y=Tt(n,s,this._initPTS))),{audio:h,video:u,initSegment:m,independent:_,text:y,id3:S}}generateIS(t,e,i,n){let s=t.samples,a=e.samples,o=this.typeSupported,c={},u=this._initPTS,h,m,y,S=!u||n,_="audio/mp4";if(S&&(h=m=1/0),t.config&&s.length){switch(t.timescale=t.samplerate,t.segmentCodec){case"mp3":o.mpeg?(_="audio/mpeg",t.codec=""):o.mp3&&(t.codec="mp3");break;case"ac3":t.codec="ac-3"}c.audio={id:"audio",container:_,codec:t.codec,initSegment:t.segmentCodec==="mp3"&&o.mpeg?new Uint8Array(0):g.initSegment([t]),metadata:{channelCount:t.channelCount}},S&&(y=t.inputTimeScale,u&&y===u.timescale?S=!1:h=m=s[0].pts-Math.round(y*i))}if(e.sps&&e.pps&&a.length){if(e.timescale=e.inputTimeScale,c.video={id:"main",container:"video/mp4",codec:e.codec,initSegment:g.initSegment([e]),metadata:{width:e.width,height:e.height}},S)if(y=e.inputTimeScale,u&&y===u.timescale)S=!1;else{let w=this.getVideoStartPts(a),I=Math.round(y*i);m=Math.min(m,j(a[0].dts,w)-I),h=Math.min(h,w-I)}this.videoTrackConfig={width:e.width,height:e.height,pixelRatio:e.pixelRatio}}if(Object.keys(c).length)return this.ISGenerated=!0,S?(this._initPTS={baseTime:h,timescale:y},this._initDTS={baseTime:m,timescale:y}):h=y=void 0,{tracks:c,initPTS:h,timescale:y}}remuxVideo(t,e,i,n){let{inputTimeScale:s,samples:a}=t,o=[],c=a.length,u=this._initPTS,h,m,y=this.nextAvcDts,S=8,_=this.videoSampleDuration,w=Number.POSITIVE_INFINITY,I=Number.NEGATIVE_INFINITY,D=!1;if(!i||y===null){let at=e*s,vt=a[0].pts-j(a[0].dts,a[0].pts);$&&y!==null&&Math.abs(at-vt-y)<15000?i=!0:y=at-vt}let F=u.baseTime*s/u.timescale;for(let at=0;at<c;at++){let vt=a[at];vt.pts=j(vt.pts-F,y),vt.dts=j(vt.dts-F,y),vt.dts<a[at>0?at-1:at].dts&&(D=!0)}D&&a.sort(function(at,vt){let Ct=at.dts-vt.dts,Ot=at.pts-vt.pts;return Ct||Ot}),h=a[0].dts,m=a[a.length-1].dts;let x=m-h,W=x?Math.round(x/(c-1)):_||t.inputTimeScale/30;if(i){let at=h-y,vt=at>W,Ct=at<-1;if((vt||Ct)&&(vt?C.warn(`AVC: ${k(at,!0)} ms (${at}dts) hole between fragments detected at ${e.toFixed(3)}`):C.warn(`AVC: ${k(-at,!0)} ms (${at}dts) overlapping between fragments detected at ${e.toFixed(3)}`),!Ct||y>=a[0].pts||$)){h=y;let Ot=a[0].pts-at;if(vt)a[0].dts=h,a[0].pts=Ot;else for(let Gt=0;Gt<a.length&&!(a[Gt].dts>Ot);Gt++)a[Gt].dts-=at,a[Gt].pts-=at;C.log(`Video: Initial PTS/DTS adjusted: ${k(Ot,!0)}/${k(h,!0)}, delta: ${k(at,!0)} ms`)}}h=Math.max(0,h);let z=0,lt=0,it=h;for(let at=0;at<c;at++){let vt=a[at],Ct=vt.units,Ot=Ct.length,Gt=0;for(let le=0;le<Ot;le++)Gt+=Ct[le].data.length;lt+=Gt,z+=Ot,vt.length=Gt,vt.dts<it?(vt.dts=it,it+=W/4|0||1):it=vt.dts,w=Math.min(vt.pts,w),I=Math.max(vt.pts,I)}m=a[c-1].dts;let ft=lt+4*z+8,mt;try{mt=new Uint8Array(ft)}catch(at){return void this.observer.emit(b.ERROR,b.ERROR,{type:G.MUX_ERROR,details:N.REMUX_ALLOC_ERROR,fatal:!1,error:at,bytes:ft,reason:"fail allocating video mdat "+ft})}let Z=new DataView(mt.buffer);Z.setUint32(0,ft),mt.set(g.types.mdat,4);let J=!1,kt=Number.POSITIVE_INFINITY,ht=Number.POSITIVE_INFINITY,wt=Number.NEGATIVE_INFINITY,It=Number.NEGATIVE_INFINITY;for(let at=0;at<c;at++){let vt=a[at],Ct=vt.units,Ot,Gt=0;for(let me=0,he=Ct.length;me<he;me++){let Ie=Ct[me],ni=Ie.data,pe=Ie.data.byteLength;Z.setUint32(S,pe),S+=4,mt.set(ni,S),S+=pe,Gt+=4+pe}if(at<c-1)_=a[at+1].dts-vt.dts,Ot=a[at+1].pts-vt.pts;else{let me=this.config,he=at>0?vt.dts-a[at-1].dts:W;if(Ot=at>0?vt.pts-a[at-1].pts:W,me.stretchShortVideoTrack&&this.nextAudioPts!==null){let Ie=Math.floor(me.maxBufferHole*s),ni=(n?w+n*s:this.nextAudioPts)-vt.pts;ni>Ie?(_=ni-he,_<0?_=he:J=!0,C.log(`[mp4-remuxer]: It is approximately ${ni/90} ms to the next segment; using duration ${_/90} ms for the last video frame.`)):_=he}else _=he}let le=Math.round(vt.pts-vt.dts);kt=Math.min(kt,_),wt=Math.max(wt,_),ht=Math.min(ht,Ot),It=Math.max(It,Ot),o.push(new Dt(vt.key,_,Gt,le))}if(o.length){if($){if($<70){let at=o[0].flags;at.dependsOn=2,at.isNonSync=0}}else if(H&&It-ht<wt-kt&&W/wt<0.025&&o[0].cts===0){C.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");let at=h;for(let vt=0,Ct=o.length;vt<Ct;vt++){let Ot=at+o[vt].duration,Gt=at+o[vt].cts;if(vt<Ct-1){let le=Ot+o[vt+1].cts;o[vt].duration=le-Gt}else o[vt].duration=vt?o[vt-1].duration:W;o[vt].cts=0,at=Ot}}}_=J||!_?W:_,this.nextAvcDts=y=m+_,this.videoSampleDuration=_,this.isVideoContiguous=!0;let Mt={data1:g.moof(t.sequenceNumber++,h,T({},t,{samples:o})),data2:mt,startPTS:w/s,endPTS:(I+_)/s,startDTS:h/s,endDTS:y/s,type:"video",hasAudio:!1,hasVideo:!0,nb:o.length,dropped:t.dropped};return t.samples=[],t.dropped=0,Mt}getSamplesPerFrame(t){switch(t.segmentCodec){case"mp3":return 1152;case"ac3":return 1536;default:return 1024}}remuxAudio(t,e,i,n,s){let a=t.inputTimeScale,o=a/(t.samplerate?t.samplerate:a),c=this.getSamplesPerFrame(t),u=c*o,h=this._initPTS,m=t.segmentCodec==="mp3"&&this.typeSupported.mpeg,y=[],S=s!==void 0,_=t.samples,w=m?0:8,I=this.nextAudioPts||-1,D=e*a,F=h.baseTime*a/h.timescale;if(this.isAudioContiguous=i=i||_.length&&I>0&&(n&&Math.abs(D-I)<9000||Math.abs(j(_[0].pts-F,D)-I)<20*u),_.forEach(function(wt){wt.pts=j(wt.pts-F,D)}),!i||I<0){if(_=_.filter((wt)=>wt.pts>=0),!_.length)return;I=s===0?0:n&&!S?Math.max(0,D):_[0].pts}if(t.segmentCodec==="aac"){let wt=this.config.maxAudioFramesDrift;for(let It=0,Mt=I;It<_.length;It++){let at=_[It],vt=at.pts,Ct=vt-Mt,Ot=Math.abs(1000*Ct/a);if(Ct<=-wt*u&&S)It===0&&(C.warn(`Audio frame @ ${(vt/a).toFixed(3)}s overlaps nextAudioPts by ${Math.round(1000*Ct/a)} ms.`),this.nextAudioPts=I=Mt=vt);else if(Ct>=wt*u&&Ot<1e4&&S){let Gt=Math.round(Ct/u);Mt=vt-Gt*u,Mt<0&&(Gt--,Mt+=u),It===0&&(this.nextAudioPts=I=Mt),C.warn(`[mp4-remuxer]: Injecting ${Gt} audio frame @ ${(Mt/a).toFixed(3)}s due to ${Math.round(1000*Ct/a)} ms gap.`);for(let le=0;le<Gt;le++){let me=Math.max(Mt,0),he=hr.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);he||(C.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."),he=at.unit.subarray()),_.splice(It,0,{unit:he,pts:me}),Mt+=u,It++}}at.pts=Mt,Mt+=u}}let x,W=null,z=null,lt=0,it=_.length;for(;it--;)lt+=_[it].unit.byteLength;for(let wt=0,It=_.length;wt<It;wt++){let Mt=_[wt],at=Mt.unit,vt=Mt.pts;if(z!==null)y[wt-1].duration=Math.round((vt-z)/o);else{if(i&&t.segmentCodec==="aac"&&(vt=I),W=vt,!(lt>0))return;lt+=w;try{x=new Uint8Array(lt)}catch(Ot){return void this.observer.emit(b.ERROR,b.ERROR,{type:G.MUX_ERROR,details:N.REMUX_ALLOC_ERROR,fatal:!1,error:Ot,bytes:lt,reason:"fail allocating audio mdat "+lt})}if(!m)new DataView(x.buffer).setUint32(0,lt),x.set(g.types.mdat,4)}x.set(at,w);let Ct=at.byteLength;w+=Ct,y.push(new Dt(!0,c,Ct,0)),z=vt}let ft=y.length;if(!ft)return;let mt=y[y.length-1];this.nextAudioPts=I=z+o*mt.duration;let Z=m?new Uint8Array(0):g.moof(t.sequenceNumber++,W/o,T({},t,{samples:y}));t.samples=[];let J=W/a,kt=I/a,ht={data1:Z,data2:x,startPTS:J,endPTS:kt,startDTS:J,endDTS:kt,type:"audio",hasAudio:!0,hasVideo:!1,nb:ft};return this.isAudioContiguous=!0,ht}remuxEmptyAudio(t,e,i,n){let s=t.inputTimeScale,a=s/(t.samplerate?t.samplerate:s),o=this.nextAudioPts,c=this._initDTS,u=90000*c.baseTime/c.timescale,h=(o!==null?o:n.startDTS*s)+u,m=n.endDTS*s+u,y=1024*a,S=Math.ceil((m-h)/y),_=hr.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);if(C.warn("[mp4-remuxer]: remux empty Audio"),!_)return void C.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec");let w=[];for(let I=0;I<S;I++){let D=h+I*y;w.push({unit:_,pts:D,dts:D})}return t.samples=w,this.remuxAudio(t,e,i,!1)}}function j(t,e){let i;if(e===null)return t;for(i=e<t?-8589934592:8589934592;Math.abs(t-e)>4294967296;)t+=i;return t}function tt(t,e,i,n){let s=t.samples.length;if(!s)return;let a=t.inputTimeScale;for(let c=0;c<s;c++){let u=t.samples[c];u.pts=j(u.pts-i.baseTime*a/i.timescale,e*a)/a,u.dts=j(u.dts-n.baseTime*a/n.timescale,e*a)/a}let o=t.samples;return t.samples=[],{samples:o}}function Tt(t,e,i){let n=t.samples.length;if(!n)return;let s=t.inputTimeScale;for(let o=0;o<n;o++){let c=t.samples[o];c.pts=j(c.pts-i.baseTime*s/i.timescale,e*s)/s}t.samples.sort((o,c)=>o.pts-c.pts);let a=t.samples;return t.samples=[],{samples:a}}class Dt{constructor(t,e,i,n){this.size=void 0,this.duration=void 0,this.cts=void 0,this.flags=void 0,this.duration=e,this.size=i,this.cts=n,this.flags={isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:t?2:1,isNonSync:t?0:1}}}function Ht(t,e){let i=t==null?void 0:t.codec;if(i&&i.length>4)return i;if(e===ot){if(i==="ec-3"||i==="ac-3"||i==="alac")return i;if(i==="fLaC"||i==="Opus")return Zn(i,!1);let n="mp4a.40.5";return C.info(`Parsed audio codec "${i}" or audio object type not handled. Using "${n}"`),n}return C.warn(`Unhandled video codec "${i}"`),i==="hvc1"||i==="hev1"?"hvc1.1.6.L120.90":i==="av01"?"av01.0.04M.08":"avc1.42e01e"}try{M=self.performance.now.bind(self.performance)}catch(t){C.debug("Unable to use Performance API on this environment"),M=ce==null?void 0:ce.Date.now}let ae=[{demux:class{constructor(e,i){this.remainderData=null,this.timeOffset=0,this.config=void 0,this.videoTrack=void 0,this.audioTrack=void 0,this.id3Track=void 0,this.txtTrack=void 0,this.config=i}resetTimeStamp(){}resetInitSegment(e,i,n,s){let a=this.videoTrack=wi("video",1),o=this.audioTrack=wi("audio",1),c=this.txtTrack=wi("text",1);if(this.id3Track=wi("id3",1),this.timeOffset=0,e==null||!e.byteLength)return;let u=Ps(e);if(u.video){let{id:h,timescale:m,codec:y}=u.video;a.id=h,a.timescale=c.timescale=m,a.codec=y}if(u.audio){let{id:h,timescale:m,codec:y}=u.audio;o.id=h,o.timescale=m,o.codec=y}c.id=oe.text,a.sampleDuration=0,a.duration=o.duration=s}resetContiguity(){this.remainderData=null}static probe(e){return function(i){let n=i.byteLength;for(let s=0;s<n;){let a=xt(i,s);if(a>8&&i[s+4]===109&&i[s+5]===111&&i[s+6]===111&&i[s+7]===102)return!0;s=a>1?s+a:n}return!1}(e)}demux(e,i){this.timeOffset=i;let n=e,s=this.videoTrack,a=this.txtTrack;if(this.config.progressive){this.remainderData&&(n=si(this.remainderData,e));let c=function(u){let h={valid:null,remainder:null},m=Wt(u,["moof"]);if(m.length<2)return h.remainder=u,h;let y=m[m.length-1];return h.valid=re(u,0,y.byteOffset-8),h.remainder=re(u,y.byteOffset-8),h}(n);this.remainderData=c.remainder,s.samples=c.valid||new Uint8Array}else s.samples=n;let o=this.extractID3Track(s,i);return a.samples=Wa(i,s),{videoTrack:s,audioTrack:this.audioTrack,id3Track:o,textTrack:this.txtTrack}}flush(){let e=this.timeOffset,i=this.videoTrack,n=this.txtTrack;i.samples=this.remainderData||new Uint8Array,this.remainderData=null;let s=this.extractID3Track(i,this.timeOffset);return n.samples=Wa(e,i),{videoTrack:i,audioTrack:wi(),id3Track:s,textTrack:wi()}}extractID3Track(e,i){let n=this.id3Track;if(e.samples.length){let s=Wt(e.samples,["emsg"]);s&&s.forEach((a)=>{let o=function(c){let u=c[0],h="",m="",y=0,S=0,_=0,w=0,I=0,D=0;if(u===0){for(;ye(c.subarray(D,D+1))!=="\x00";)h+=ye(c.subarray(D,D+1)),D+=1;for(h+=ye(c.subarray(D,D+1)),D+=1;ye(c.subarray(D,D+1))!=="\x00";)m+=ye(c.subarray(D,D+1)),D+=1;m+=ye(c.subarray(D,D+1)),D+=1,y=xt(c,12),S=xt(c,16),w=xt(c,20),I=xt(c,24),D=28}else if(u===1){D+=4,y=xt(c,D),D+=4;let F=xt(c,D);D+=4;let x=xt(c,D);for(D+=4,_=4294967296*F+x,O(_)||(_=Number.MAX_SAFE_INTEGER,C.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),w=xt(c,D),D+=4,I=xt(c,D),D+=4;ye(c.subarray(D,D+1))!=="\x00";)h+=ye(c.subarray(D,D+1)),D+=1;for(h+=ye(c.subarray(D,D+1)),D+=1;ye(c.subarray(D,D+1))!=="\x00";)m+=ye(c.subarray(D,D+1)),D+=1;m+=ye(c.subarray(D,D+1)),D+=1}return{schemeIdUri:h,value:m,timeScale:y,presentationTime:_,presentationTimeDelta:S,eventDuration:w,id:I,payload:c.subarray(D,c.byteLength)}}(a);if(To.test(o.schemeIdUri)){let c=L(o.presentationTime)?o.presentationTime/o.timeScale:i+o.presentationTimeDelta/o.timeScale,u=o.eventDuration===4294967295?Number.POSITIVE_INFINITY:o.eventDuration/o.timeScale;u<=0.001&&(u=Number.POSITIVE_INFINITY);let h=o.payload;n.samples.push({data:h,len:h.byteLength,dts:c,pts:c,type:Dn,duration:u})}})}return n}demuxSampleAes(e,i,n){return Promise.reject(Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){}},remux:class{constructor(){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}destroy(){}resetTimeStamp(e){this.initPTS=e,this.lastEndTime=null}resetNextTimestamp(){this.lastEndTime=null}resetInitSegment(e,i,n,s){this.audioCodec=i,this.videoCodec=n,this.generateInitSegment(function(a,o){if(!a||!o)return a;let c=o.keyId;if(c&&o.isCommonEncryption)Wt(a,["moov","trak"]).forEach((u)=>{let h=Wt(u,["mdia","minf","stbl","stsd"])[0].subarray(8),m=Wt(h,["enca"]),y=m.length>0;y||(m=Wt(h,["encv"])),m.forEach((S)=>{Wt(y?S.subarray(28):S.subarray(78),["sinf"]).forEach((_)=>{let w=Us(_);if(w){let I=w.subarray(8,24);I.some((D)=>D!==0)||(C.log(`[eme] Patching keyId in 'enc${y?"a":"v"}>sinf>>tenc' box: ${ri(I)} -> ${ri(c)}`),w.set(c,8))}})})});return a}(e,s)),this.emitInitSegment=!0}generateInitSegment(e){let{audioCodec:i,videoCodec:n}=this;if(e==null||!e.byteLength)return this.initTracks=void 0,void(this.initData=void 0);let s=this.initData=Ps(e);s.audio&&(i=Ht(s.audio,ot)),s.video&&(n=Ht(s.video,St));let a={};s.audio&&s.video?a.audiovideo={container:"video/mp4",codec:i+","+n,initSegment:e,id:"main"}:s.audio?a.audio={container:"audio/mp4",codec:i,initSegment:e,id:"audio"}:s.video?a.video={container:"video/mp4",codec:n,initSegment:e,id:"main"}:C.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."),this.initTracks=a}remux(e,i,n,s,a,o){var c,u;let{initPTS:h,lastEndTime:m}=this,y={audio:void 0,video:void 0,text:s,id3:n,initSegment:void 0};L(m)||(m=this.lastEndTime=a||0);let S=i.samples;if(S==null||!S.length)return y;let _={initPTS:void 0,timescale:1},w=this.initData;if((c=w)!=null&&c.length||(this.generateInitSegment(S),w=this.initData),(u=w)==null||!u.length)return C.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."),y;this.emitInitSegment&&(_.tracks=this.initTracks,this.emitInitSegment=!1);let I=function(mt,Z){let J=0,kt=0,ht=0,wt=Wt(mt,["moof","traf"]);for(let It=0;It<wt.length;It++){let Mt=wt[It],at=Wt(Mt,["tfhd"])[0],vt=Z[xt(at,4)];if(!vt)continue;let Ct=vt.default,Ot=xt(at,0)|(Ct==null?void 0:Ct.flags),Gt=Ct==null?void 0:Ct.duration;8&Ot&&(Gt=xt(at,2&Ot?12:8));let le=vt.timescale||90000,me=Wt(Mt,["trun"]);for(let he=0;he<me.length;he++){if(J=Oi(me[he]),!J&&Gt)J=Gt*xt(me[he],4);vt.type===St?kt+=J/le:vt.type===ot&&(ht+=J/le)}}if(kt===0&&ht===0){let It=1/0,Mt=0,at=0,vt=Wt(mt,["sidx"]);for(let Ct=0;Ct<vt.length;Ct++){let Ot=Va(vt[Ct]);if(Ot!=null&&Ot.references){It=Math.min(It,Ot.earliestPresentationTime/Ot.timescale);let Gt=Ot.references.reduce((le,me)=>le+me.info.duration||0,0);Mt=Math.max(Mt,Gt+Ot.earliestPresentationTime/Ot.timescale),at=Mt-It}}if(at&&L(at))return at}return kt||ht}(S,w),D=function(mt,Z){return Wt(Z,["moof","traf"]).reduce((J,kt)=>{let ht=Wt(kt,["tfdt"])[0],wt=ht[0],It=Wt(kt,["tfhd"]).reduce((Mt,at)=>{let vt=xt(at,4),Ct=mt[vt];if(Ct){let Ot=xt(ht,4);if(wt===1){if(Ot===qn)return C.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"),Mt;Ot*=qn+1,Ot+=xt(ht,8)}let Gt=Ot/(Ct.timescale||90000);if(L(Gt)&&(Mt===null||Gt<Mt))return Gt}return Mt},null);return It!==null&&L(It)&&(J===null||It<J)?It:J},null)}(w,S),F=D===null?a:D;(function(mt,Z,J,kt){if(mt===null)return!0;let ht=Math.max(kt,1),wt=Z-mt.baseTime/mt.timescale;return Math.abs(wt-J)>ht}(h,F,a,I)||_.timescale!==h.timescale&&o)&&(_.initPTS=F-a,h&&h.timescale===1&&C.warn("Adjusting initPTS by "+(_.initPTS-h.baseTime)),this.initPTS=h={baseTime:_.initPTS,timescale:1});let x=e?F-h.baseTime/h.timescale:m,W=x+I;(function(mt,Z,J){Wt(Z,["moof","traf"]).forEach((kt)=>{Wt(kt,["tfhd"]).forEach((ht)=>{let wt=xt(ht,4),It=mt[wt];if(!It)return;let Mt=It.timescale||90000;Wt(kt,["tfdt"]).forEach((at)=>{let vt=at[0],Ct=J*Mt;if(Ct){let Ot=xt(at,4);if(vt===0)Ot-=Ct,Ot=Math.max(Ot,0),Fs(at,4,Ot);else{Ot*=Math.pow(2,32),Ot+=xt(at,8),Ot-=Ct,Ot=Math.max(Ot,0);let Gt=Math.floor(Ot/(qn+1)),le=Math.floor(Ot%(qn+1));Fs(at,4,Gt),Fs(at,8,le)}}})})})})(w,S,h.baseTime/h.timescale),I>0?this.lastEndTime=W:(C.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());let z=!!w.audio,lt=!!w.video,it="";z&&(it+="audio"),lt&&(it+="video");let ft={data1:S,startPTS:x,startDTS:x,endPTS:W,endDTS:W,type:it,hasAudio:z,hasVideo:lt,nb:1,dropped:0};return y.audio=ft.type==="audio"?ft:void 0,y.video=ft.type!=="audio"?ft:void 0,y.initSegment=_,y.id3=tt(n,a,h,h),s.samples.length&&(y.text=Tt(s,a,h)),y}}},{demux:Ui,remux:U},{demux:class extends zr{constructor(e,i){super(),this.observer=void 0,this.config=void 0,this.observer=e,this.config=i}resetInitSegment(e,i,n,s){super.resetInitSegment(e,i,n,s),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:i,duration:s,inputTimeScale:90000,dropped:0}}static probe(e){if(!e)return!1;let i=ui(e,0),n=(i==null?void 0:i.length)||0;if(fa(e,n))return!1;for(let s=e.length;n<s;n++)if(Fl(e,n))return C.log("ADTS sync word found !"),!0;return!1}canParse(e,i){return function(n,s){return function(a,o){return o+5<a.length}(n,s)&&po(n,s)&&ca(n,s)<=n.length-s}(e,i)}appendFrame(e,i,n){Eo(e,this.observer,i,n,e.manifestCodec);let s=En(e,i,n,this.basePTS,this.frameIndex);if(s&&s.missing===0)return s}},remux:U},{demux:class extends zr{resetInitSegment(e,i,n,s){super.resetInitSegment(e,i,n,s),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:i,duration:s,inputTimeScale:90000,dropped:0}}static probe(e){if(!e)return!1;let i=ui(e,0),n=(i==null?void 0:i.length)||0;if(i&&e[n]===11&&e[n+1]===119&&We(i)!==void 0&&Jr(e,n)<=16)return!1;for(let s=e.length;n<s;n++)if(fa(e,n))return C.log("MPEG Audio sync word found !"),!0;return!1}canParse(e,i){return function(n,s){return Xr(n,s)&&4<=n.length-s}(e,i)}appendFrame(e,i,n){if(this.basePTS!==null)return ua(e,i,n,this.basePTS,this.frameIndex)}},remux:U}];ae.splice(2,0,{demux:ma,remux:U});class ge{constructor(t,e,i,n,s){this.async=!1,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.vendor=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=t,this.typeSupported=e,this.config=i,this.vendor=n,this.id=s}configure(t){this.transmuxConfig=t,this.decrypter&&this.decrypter.reset()}push(t,e,i,n){let s=i.transmuxing;s.executeStart=M();let a=new Uint8Array(t),{currentTransmuxState:o,transmuxConfig:c}=this;n&&(this.currentTransmuxState=n);let{contiguous:u,discontinuity:h,trackSwitch:m,accurateTimeOffset:y,timeOffset:S,initSegmentChange:_}=n||o,{audioCodec:w,videoCodec:I,defaultInitPts:D,duration:F,initSegmentData:x}=c,W=function(ft,mt){let Z=null;return ft.byteLength>0&&(mt==null?void 0:mt.key)!=null&&mt.iv!==null&&mt.method!=null&&(Z=mt),Z}(a,e);if(W&&W.method==="AES-128"){let ft=this.getDecrypter();if(!ft.isSync())return this.decryptionPromise=ft.webCryptoDecrypt(a,W.key.buffer,W.iv.buffer).then((mt)=>{let Z=this.push(mt,null,i);return this.decryptionPromise=null,Z}),this.decryptionPromise;{let mt=ft.softwareDecrypt(a,W.key.buffer,W.iv.buffer);if(i.part>-1&&(mt=ft.flush()),!mt)return s.executeEnd=M(),te(i);a=new Uint8Array(mt)}}let z=this.needsProbing(h,m);if(z){let ft=this.configureTransmuxer(a);if(ft)return C.warn("[transmuxer] "+ft.message),this.observer.emit(b.ERROR,b.ERROR,{type:G.MEDIA_ERROR,details:N.FRAG_PARSING_ERROR,fatal:!1,error:ft,reason:ft.message}),s.executeEnd=M(),te(i)}(h||m||_||z)&&this.resetInitSegment(x,w,I,F,e),(h||_||z)&&this.resetInitialTimestamp(D),u||this.resetContiguity();let lt=this.transmux(a,W,S,y,i),it=this.currentTransmuxState;return it.contiguous=!0,it.discontinuity=!1,it.trackSwitch=!1,s.executeEnd=M(),lt}flush(t){let e=t.transmuxing;e.executeStart=M();let{decrypter:i,currentTransmuxState:n,decryptionPromise:s}=this;if(s)return s.then(()=>this.flush(t));let a=[],{timeOffset:o}=n;if(i){let m=i.flush();m&&a.push(this.push(m,null,t))}let{demuxer:c,remuxer:u}=this;if(!c||!u)return e.executeEnd=M(),[te(t)];let h=c.flush(o);return Ge(h)?h.then((m)=>(this.flushRemux(a,m,t),a)):(this.flushRemux(a,h,t),a)}flushRemux(t,e,i){let{audioTrack:n,videoTrack:s,id3Track:a,textTrack:o}=e,{accurateTimeOffset:c,timeOffset:u}=this.currentTransmuxState;C.log(`[transmuxer.ts]: Flushed fragment ${i.sn}${i.part>-1?" p: "+i.part:""} of level ${i.level}`);let h=this.remuxer.remux(n,s,a,o,u,c,!0,this.id);t.push({remuxResult:h,chunkMeta:i}),i.transmuxing.executeEnd=M()}resetInitialTimestamp(t){let{demuxer:e,remuxer:i}=this;e&&i&&(e.resetTimeStamp(t),i.resetTimeStamp(t))}resetContiguity(){let{demuxer:t,remuxer:e}=this;t&&e&&(t.resetContiguity(),e.resetNextTimestamp())}resetInitSegment(t,e,i,n,s){let{demuxer:a,remuxer:o}=this;a&&o&&(a.resetInitSegment(t,e,i,n),o.resetInitSegment(t,e,i,s))}destroy(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)}transmux(t,e,i,n,s){let a;return a=e&&e.method==="SAMPLE-AES"?this.transmuxSampleAes(t,e,i,n,s):this.transmuxUnencrypted(t,i,n,s),a}transmuxUnencrypted(t,e,i,n){let{audioTrack:s,videoTrack:a,id3Track:o,textTrack:c}=this.demuxer.demux(t,e,!1,!this.config.progressive);return{remuxResult:this.remuxer.remux(s,a,o,c,e,i,!1,this.id),chunkMeta:n}}transmuxSampleAes(t,e,i,n,s){return this.demuxer.demuxSampleAes(t,e,i).then((a)=>({remuxResult:this.remuxer.remux(a.audioTrack,a.videoTrack,a.id3Track,a.textTrack,i,n,!1,this.id),chunkMeta:s}))}configureTransmuxer(t){let{config:e,observer:i,typeSupported:n,vendor:s}=this,a;for(let y=0,S=ae.length;y<S;y++){var o;if((o=ae[y].demux)!=null&&o.probe(t)){a=ae[y];break}}if(!a)return Error("Failed to find demuxer by probing fragment data");let c=this.demuxer,u=this.remuxer,h=a.remux,m=a.demux;u&&u instanceof h||(this.remuxer=new h(i,e,n,s)),c&&c instanceof m||(this.demuxer=new m(i,e,n),this.probe=m.probe)}needsProbing(t,e){return!this.demuxer||!this.remuxer||t||e}getDecrypter(){let t=this.decrypter;return t||(t=this.decrypter=new lr(this.config)),t}}let te=(t)=>({remuxResult:{},chunkMeta:t});function Ge(t){return"then"in t&&t.then instanceof Function}class ii{constructor(t,e,i,n,s){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=t,this.videoCodec=e,this.initSegmentData=i,this.duration=n,this.defaultInitPts=s||null}}class Bn{constructor(t,e,i,n,s,a){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=t,this.contiguous=e,this.accurateTimeOffset=i,this.trackSwitch=n,this.timeOffset=s,this.initSegmentChange=a}}var ru={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,i="~";function n(){}function s(u,h,m){this.fn=u,this.context=h,this.once=m||!1}function a(u,h,m,y,S){if(typeof m!="function")throw TypeError("The listener must be a function");var _=new s(m,y||u,S),w=i?i+h:h;return u._events[w]?u._events[w].fn?u._events[w]=[u._events[w],_]:u._events[w].push(_):(u._events[w]=_,u._eventsCount++),u}function o(u,h){--u._eventsCount==0?u._events=new n:delete u._events[h]}function c(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(i=!1)),c.prototype.eventNames=function(){var u,h,m=[];if(this._eventsCount===0)return m;for(h in u=this._events)e.call(u,h)&&m.push(i?h.slice(1):h);return Object.getOwnPropertySymbols?m.concat(Object.getOwnPropertySymbols(u)):m},c.prototype.listeners=function(u){var h=i?i+u:u,m=this._events[h];if(!m)return[];if(m.fn)return[m.fn];for(var y=0,S=m.length,_=Array(S);y<S;y++)_[y]=m[y].fn;return _},c.prototype.listenerCount=function(u){var h=i?i+u:u,m=this._events[h];return m?m.fn?1:m.length:0},c.prototype.emit=function(u,h,m,y,S,_){var w=i?i+u:u;if(!this._events[w])return!1;var I,D,F=this._events[w],x=arguments.length;if(F.fn){switch(F.once&&this.removeListener(u,F.fn,void 0,!0),x){case 1:return F.fn.call(F.context),!0;case 2:return F.fn.call(F.context,h),!0;case 3:return F.fn.call(F.context,h,m),!0;case 4:return F.fn.call(F.context,h,m,y),!0;case 5:return F.fn.call(F.context,h,m,y,S),!0;case 6:return F.fn.call(F.context,h,m,y,S,_),!0}for(D=1,I=Array(x-1);D<x;D++)I[D-1]=arguments[D];F.fn.apply(F.context,I)}else{var W,z=F.length;for(D=0;D<z;D++)switch(F[D].once&&this.removeListener(u,F[D].fn,void 0,!0),x){case 1:F[D].fn.call(F[D].context);break;case 2:F[D].fn.call(F[D].context,h);break;case 3:F[D].fn.call(F[D].context,h,m);break;case 4:F[D].fn.call(F[D].context,h,m,y);break;default:if(!I)for(W=1,I=Array(x-1);W<x;W++)I[W-1]=arguments[W];F[D].fn.apply(F[D].context,I)}}return!0},c.prototype.on=function(u,h,m){return a(this,u,h,m,!1)},c.prototype.once=function(u,h,m){return a(this,u,h,m,!0)},c.prototype.removeListener=function(u,h,m,y){var S=i?i+u:u;if(!this._events[S])return this;if(!h)return o(this,S),this;var _=this._events[S];if(_.fn)_.fn!==h||y&&!_.once||m&&_.context!==m||o(this,S);else{for(var w=0,I=[],D=_.length;w<D;w++)(_[w].fn!==h||y&&!_[w].once||m&&_[w].context!==m)&&I.push(_[w]);I.length?this._events[S]=I.length===1?I[0]:I:o(this,S)}return this},c.prototype.removeAllListeners=function(u){var h;return u?(h=i?i+u:u,this._events[h]&&o(this,h)):(this._events=new n,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=i,c.EventEmitter=c,t.exports=c})(ru);var Pl=r(ru.exports);class xl{constructor(t,e,i,n){this.error=null,this.hls=void 0,this.id=void 0,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.onwmsg=void 0,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0;let s=t.config;this.hls=t,this.id=e,this.useWorker=!!s.enableWorker,this.onTransmuxComplete=i,this.onFlush=n;let a=(h,m)=>{(m=m||{}).frag=this.frag,m.id=this.id,h===b.ERROR&&(this.error=m.error),this.hls.trigger(h,m)};this.observer=new Pl,this.observer.on(b.FRAG_DECRYPTED,a),this.observer.on(b.ERROR,a);let o=Ni(s.preferManagedMediaSource)||{isTypeSupported:()=>!1},c={mpeg:o.isTypeSupported("audio/mpeg"),mp3:o.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:o.isTypeSupported('audio/mp4; codecs="ac-3"')},u=navigator.vendor;if(this.useWorker&&typeof Worker<"u"){if(s.workerPath||typeof __HLS_WORKER_BUNDLE__=="function"){try{s.workerPath?(C.log(`loading Web Worker ${s.workerPath} for "${e}"`),this.workerContext=function(m){let y=new self.URL(m,self.location.href).href;return{worker:new self.Worker(y),scriptURL:y}}(s.workerPath)):(C.log(`injecting Web Worker for "${e}"`),this.workerContext=function(){let m=new self.Blob([`var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`],{type:"text/javascript"}),y=self.URL.createObjectURL(m);return{worker:new self.Worker(y),objectURL:y}}()),this.onwmsg=(m)=>this.onWorkerMessage(m);let{worker:h}=this.workerContext;h.addEventListener("message",this.onwmsg),h.onerror=(m)=>{let y=Error(`${m.message} (${m.filename}:${m.lineno})`);s.enableWorker=!1,C.warn(`Error in "${e}" Web Worker, fallback to inline`),this.hls.trigger(b.ERROR,{type:G.OTHER_ERROR,details:N.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:y})},h.postMessage({cmd:"init",typeSupported:c,vendor:u,id:e,config:JSON.stringify(s)})}catch(h){C.warn(`Error setting up "${e}" Web Worker, fallback to inline`,h),this.resetWorker(),this.error=null,this.transmuxer=new ge(this.observer,c,s,u,e)}return}}this.transmuxer=new ge(this.observer,c,s,u,e)}resetWorker(){if(this.workerContext){let{worker:t,objectURL:e}=this.workerContext;e&&self.URL.revokeObjectURL(e),t.removeEventListener("message",this.onwmsg),t.onerror=null,t.terminate(),this.workerContext=null}}destroy(){if(this.workerContext)this.resetWorker(),this.onwmsg=void 0;else{let e=this.transmuxer;e&&(e.destroy(),this.transmuxer=null)}let t=this.observer;t&&t.removeAllListeners(),this.frag=null,this.observer=null,this.hls=null}push(t,e,i,n,s,a,o,c,u,h){var m,y;u.transmuxing.start=self.performance.now();let{transmuxer:S}=this,_=a?a.start:s.start,w=s.decryptdata,I=this.frag,D=!(I&&s.cc===I.cc),F=!(I&&u.level===I.level),x=I?u.sn-I.sn:-1,W=this.part?u.part-this.part.index:-1,z=x===0&&u.id>1&&u.id===(I==null?void 0:I.stats.chunkCount),lt=!F&&(x===1||x===0&&(W===1||z&&W<=0)),it=self.performance.now();(F||x||s.stats.parsing.start===0)&&(s.stats.parsing.start=it),!a||!W&&lt||(a.stats.parsing.start=it);let ft=!(I&&((m=s.initSegment)==null?void 0:m.url)===((y=I.initSegment)==null?void 0:y.url)),mt=new Bn(D,lt,c,F,_,ft);if(!lt||D||ft){C.log(`[transmuxer-interface, ${s.type}]: Starting new transmux session for sn: ${u.sn} p: ${u.part} level: ${u.level} id: ${u.id}
9
- discontinuity: ${D}
10
- trackSwitch: ${F}
8
+ ${JSON.stringify(U,null,2)}`);this.rq&&de.rpush(this.rq,[G,this.verb,U])})})}destroy(){this.listeners.forEach(([f,g])=>{var p;return(p=this.emitter)===null||p===void 0?void 0:p.removeEventListener(f,g)}),delete this.rq,delete this.emitter,pr(Jt.TRACKERS,this)}put(f={}){return Jt.merge_metadata(this,f),this}}Jt.TRACKERS=[],Jt.QUEUE=ra,Jt.verb=na;var Mr="ping",on="display",Kn="view";let fo=["sitegroup_id","session_id","media_id","site_id","player_id","video_type"],Fl=["created","position"],Wn=["player_version","created","source","category","category_id","autoplay","muted","customer_user_id"];function sa(f,g){return f.duration/1===f.duration&&Object.assign(g,function(p){let k=p/100;return{segment_duration:k,breakpoints:Array(...Array(100)).map(function(O,$){return Math.floor($*k*1000)/1000})}}(f.duration))}function mo(f,g,p){if(!g.segment_duration&&!sa(f,g))return;let k=function(O,$,G){let U=$.last_idx,j=G?99:aa(O,$);return $.last_idx=j,j<=U?[]:$.breakpoints.slice(U,j==99?100:j).map(function(Z){return $.breakpoints.indexOf(Z)})}(f,g,p);k.length!=0&&f.emit(Mr,{position:k})}function aa(f,g){return Math.min(Math.floor(f.currentTime/g.segment_duration),99)}var oa;let Ai="vod",go="live",po=[on,Mr,Kn];function Yn(f,g,p){switch(g==null?void 0:g.kind){case"live":return function(k,O){let $=Date.now();$-O.last_tracked_ts<60000||(O.last_tracked_ts=$,++O.ticks,k.emit(Mr,{position:60*O.ticks}))}(f,g);case"vod":return mo(f,g,typeof p=="boolean"&&p)}}function ln(f){let g=f.ads;return g!==void 0&&(g.schedule!==void 0&&(typeof g.hasPreroll=="function"&&(g.currentRequests?g.currentRequests:!!g.adPlaying||!(!g.hasPreroll()||g.nextIndex!=0))))}let Ul=((oa=class{init(g,p,k){if(!ai.from_token(g.token||"").is_granted(ai.permissions.ANALYTICS))return;if(k.hasState("consent-no-tracking"))return;if(k.analytics)return;let O=k.analytics={ticker:void 0,last_media_id:"",ended:!1},$={locked:void 0,ttl:6000,task:()=>{Yn(k,O.ticker)}},G={session_id:k.deviceId(),autoplay:k.autoplay,muted:k.muted,player_id:g.player_id,customer_user_id:g.customer_user_id,player_version:"3.29.0"},U=Jt.of(k,{verb:Jt.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:po,required_keys:fo,optional_keys:Wn.concat(Fl).slice(0),metadata:G});k.on(Y,function(){U&&U.destroy()}),k.on(nt,function(Z){if(!U)return;let Tt=fi(Z,"data.metadata",{});if(!Tt.media_id&&Tt.stream_target_id&&(Tt.media_id=Tt.stream_target_id),!Tt.media_id)return;let Ct=fi(U,"metadata.media_id");if(Ct&&Tt.media_id==Ct)return;let Ht=fi(g,"analytics",{});U.put(Tt),U.put(Ht);let ae=fi(g,"metadata.live_start_time",g.live)?go:Ai;U.put({video_type:ae,source:g.source||Cr()||""}),O.ticker=g.live?{ticks:0,last_tracked_ts:Date.now(),kind:"live"}:{last_idx:0,segment_duration:0,breakpoints:[],kind:"vod"},O.ended=!1,k.emit(on)});let j=0;k.on(st,function(){if(!U)return;if(j||function(Tt,Ct){return Tt.metadata.media_id&&Tt.metadata.media_id==Ct.last_media_id}(U,O))return;U.put({muted:k.muted});let Z=ln(k);if(Z)return j=Promise.resolve(Z).then(function(){O.last_media_id=U.metadata.media_id,k.emit(Kn),j=0}).catch(function(){j=0});O.last_media_id=U.metadata.media_id,k.emit(Kn)}),k.on("timeupdate",function(){var Z;U&&(j||ln(k)||O.ended||(!g.live&&k.currentTime+0.25>=k.duration&&Yn(k,O.ticker,!0),(Z=$).locked||(Z.locked=setTimeout(function(){return Z.task(),function(Tt){return Tt.locked=void 0,Tt}(Z)},Z.ttl))))}),k.on(B,function(){U&&O.ticker&&O.ticker.kind=="vod"&&function(Z,Tt){sa(Z,Tt),Tt.last_idx=aa(Z,Tt)}(k,O.ticker)}),k.on(D,function(){U&&function(Z,Tt){Tt.ended||(Tt.ended=!0,Yn(Z,Tt.ticker))}(k,O)})}}).pluginName="analytics",oa),oi=function(f,g){if(typeof tl=="object"&&typeof el<"u")return g;if(document.currentScript===null)return g;"flowplayer"in f||(f.flowplayer={extensions:[]});let p=f.flowplayer;return typeof p=="function"?(p(g),g):(Array.isArray(p.extensions)||(p.extensions=[]),~p.extensions.indexOf(g)||p.extensions.push(g),g)}(to(),Ul);typeof window<"u"&&typeof window.matchMedia=="function"&&[J,ct].forEach(function(f){window.matchMedia("(orientation: "+f+")").addListener(function(g){o.length&&o.forEach(function(p){g.matches&&p.emit(f)})})});let Zt=[N,"recover"];function la(f,g){let p=yi(g,"flowplayer-error");f.append(p),g.on("flowplayer:error",(k)=>{if(!document.body.contains(f))return;let O=k.detail.error;O.config.showErrorUI!==!1&&(O.isFatal||O.config.showErrorUI)&&(g.setState("is-error",!0),console.warn(O),mi(p,"flowplayer:error",{error:O}),mi(p,"error",{error:O}))}),Zt.forEach((k)=>g.on(k,()=>{(function(O){if(!O.hasState("is-error"))return;O.setState(Ke,!0),O.setState("is-error",!1)})(g)}))}var Nr=Object.freeze({__proto__:null,NO_FULLSCREEN:1,NO_VOLUME_CONTROL:2,NO_MUTE:4,LOGO_ON_RIGHT:8,USE_DRAG_HANDLE:16,USE_PLAY_2:32,USE_PLAY_3:64,USE_THIN_CONTROLBAR:128,NO_TITLE:256,NO_DESCRIPTION:512,NO_CONTROLS:1024,NO_DURATION:2048,NO_HEADER:4096,AUDIO_ONLY:8192,NO_TOUCH_ZONES:16384,LOGO_ON_BOTTOM:32768});function Pr(f,g,p){let k=()=>document.fullscreenElement,O="fullscreenchange";if(!Element.prototype.requestFullscreen){let G=Element.prototype,U=document;G.webkitRequestFullScreen&&(G.requestFullscreen=G.webkitRequestFullScreen,U.fullscreenEnabled=!0),U.webkitCancelFullScreen&&(document.exitFullscreen=U.webkitCancelFullScreen),O="webkit"+O,k=()=>U.webkitCurrentFullScreenElement}let $=()=>p.getFullsceenTarget?p.getFullsceenTarget():g;p.toggleFullScreen=function(G,U){if(p.ios_fullscreen_disabled)return;if(typeof G!="boolean"&&(G=!p.hasState("is-fullscreen")),xr(p)&&(G?function(Z,Tt){Z.getAttribute("playsinline")&&Z.removeAttribute("playsinline"),Z.getAttribute("webkit-playsinline")&&Z.removeAttribute("webkit-playsinline"),Tt||Z.webkitEnterFullScreen()}(p,U):function(Z,Tt){Z.getAttribute("playsinline")||Z.setAttribute("playsinline",""),Z.getAttribute("webkit-playsinline")||Z.setAttribute("webkit-playsinline",""),Tt||Z.webkitExitFullScreen(),Z.togglePlay(!1),Z.hasState(At)||Z.setState(At,!0)}(p,U)),!document.fullscreenEnabled)return;let j=$();if(G)return j.requestFullscreen();k()===j&&document.exitFullscreen()},xr(p)&&(p.ios_fullscreen_disabled=!0,p.once("beforeplay",function(){p.ios_fullscreen_disabled=!1}),p.on(["webkitendfullscreen","webkitbeginfullscreen"],(G)=>{let U=G.type==="webkitbeginfullscreen";p.setState("is-fullscreen",U).emit(U?L:M).toggleFullScreen(U,!0)})),setTimeout(()=>{let G=$();G.addEventListener(O,function(){let U=k(),j=U===G||U==p;p.emit(j?L:M),p.setState("is-fullscreen",j)})},0),f.doubleclick!==!1&&g.addEventListener(E,function(G){var U;G.target&&((U=G.target)===null||U===void 0?void 0:U.classList.contains("fp-ui"))&&p.toggleFullScreen()})}function xr(f){return!document.fullscreenEnabled&&typeof f.webkitEnterFullScreen=="function"&&typeof f.webkitExitFullScreen=="function"}function Ui(f,g,p){if(!p.reaper)return;let k=document.createDocumentFragment(),O=yi(p,Pt),$=yi(p,$t);g.append($),k.append(O),p.reaper.set("ui",O),~g.className.indexOf("use-play-")||g.classList.add("use-play-1"),function(j,Z,Tt){let Ct=ti("fp-footer");Z.append(Ct),Tt.on(nt,function(Ht){var ae,ge;let te=(ae=Ht.data)===null||ae===void 0?void 0:ae.description,Ge=(ge=Ht.data)===null||ge===void 0?void 0:ge.title;if(Ct.innerHTML="",typeof Ge=="string"){let ii=ti("fp-title");ii.innerText=Ge,Ct.append(ii)}if(typeof te=="string"){let ii=te.split(" "),Ur=ti("fp-desc");for(Ur.innerText=ii.join(" "),Ct.append(Ur);ii.length>1&&Ur.scrollHeight>Ur.offsetHeight;)ii.pop(),Ur.innerText=ii.join(" ")+"..."}})}(0,g,p),la(O,p),g.appendChild(k);let G=null;[R,T,A].forEach((j)=>{g.addEventListener(j,function(Z){if(!p.hasState("is-touch-device")||Z.type===T){if(clearTimeout(G),Z.type===A)return p.setState(Xt,!1);p.setState(Xt,!0),G=setTimeout(function(){p.setState("is-hovered",!1)},2000)}})}),Pr(f,g,p),p.on("volumechange",function(){let j=p.volume==0||p.muted;p.muted=j,p.setState("is-muted",j),p._storage.setItem("mute",j.toString())}),p._storage.getItem("mute")=="true"&&(p.muted=!0,p.setState("is-muted",p.muted));let U=p._storage.getItem("volume");U&&!isNaN(Number(U))&&(p.volume=Number(U)),p.emit("volumechange"),p.on("dvr/window",(j)=>{f.live&&(p.live_state.dvr=p.seekable.length>0&&function(Z,Tt,Ct){if(Tt==0)return!0;let Ht=ie(Z,Ct);return Ht.head-Ht.tail>=Tt}(p,f.seconds_to_dvr||60,j.detail),p.live_state.dvr_window=j.detail)}),p.on("live",()=>{let j=setInterval(()=>{if(p.opts.live&&!p.hasState("is-error")&&p.reaper!=0||clearInterval(j),p.seekable.length==0)return;let Z=function(Tt){let Ct=Tt.currentTime,Ht=ie(Tt);return{progress:Math.min(100,Math.max(0,(Ct-Ht.tail)/(Ht.head-Ht.tail)*100)),is_live:Ct-Ht.head>=-10}}(p);p.hasState(Di)==Z.is_live&&p.setState(Di,!Z.is_live),p.live_state.dvr&&p.emit("dvr",Z.progress)},200)}),p.on(tt,function(){p.setOpts({live:Ue(p)})}),p.on("durationchange",function(j){let Z=Ue(p),Tt=Z?bi(p):j.data||p.duration;isNaN(Tt)||p.setOpts({live:Z,duration:Tt})}),p.on(["playlist/advance","src"],(j)=>{if(p.setState("is-autoplay",!!f.autoplay),p.root.classList.contains("is-livecountdown"))return cn(p,f);(p.currentSrc||p.srcObject)&&(j.type==="src"&&["is-playlist",di].some((Z)=>p.root.classList.contains(Z))||cn(p,f))}),p.on(nt,function(j){var Z,Tt;f.seekable=((Z=j==null?void 0:j.data)===null||Z===void 0?void 0:Z.seekable)===void 0||j.data.seekable;let Ct=(Tt=j.data)===null||Tt===void 0?void 0:Tt.ui;if(typeof Ct!="number")return;let Ht=g.classList;Ht.toggle("use-play-1",!(32&Ct||64&Ct)),Ht.toggle("use-play-2",(32&Ct)>0),Ht.toggle("use-play-3",(64&Ct)>0),Ht.toggle("use-thin-controlbar",(128&Ct)>0),Ht.toggle("no-title",(256&Ct)>0),Ht.toggle("no-description",(512&Ct)>0),Ht.toggle("logo-on-right",(8&Ct)>0),Ht.toggle("logo-on-bottom",(32768&Ct)>0),Ht.toggle("use-drag-handle",(16&Ct)>0),Ht.toggle("no-controls",(1024&Ct)>0),Ht.toggle("no-duration",(2048&Ct)>0),Ht.toggle("no-header",(4096&Ct)>0),Ht.toggle("no-mute",(4&Ct)>0),Ht.toggle("no-volume",(2&Ct)>0),Ht.toggle("no-fullscreen",(1&Ct)>0),Ht.toggle("no-touch-zones",(16384&Ct)>0)})}function cn(f,g){delete g.live_start_time,f.setOpts({live:!1}),f.live_state.dvr=void 0,f.live_state.dvr_window=void 0,delete g.live,delete g.poster,delete g.duration,delete g.title,delete g.description,"metadata"in g&&delete g.metadata}function un(f,g,p){if(ai.from_token(f.token||"").is_granted(ai.permissions.NO_METERING))return;Si.id(f.token||"")&&p.once(st,async()=>await async function k(O,$){let G=Si.id($||"");if(O.once("src",()=>{O.once(st,()=>k(O,$))}),(await fetch("https://pmi.flowplayer.com/in",{method:"POST",body:JSON.stringify({token_id:G,factor:1,rnd:Math.random().toString(36).substring(2)})})).status==401)return O.emit("error:fatal",{reason:"token",details:"The token online validation failed"})}(p,f.token||""))}var Fr={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertisement"},audio:{button_txt:"Audio",menu_title:"Audio"},core:{exit_fullscreen:"Exit fullscreen",fullscreen:"Fullscreen",mute:"Mute",pause:"Pause",play:"Play",unmute:"Unmute",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Up next"},qsel:{menu_title:"Quality"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"The text is now on your clipboard",embed:"Embed",link:"Link",menu_title:"Share"},speed:{menu_title:"Speed"}};class Li{init(f,g,p){p.reaper&&p.reaper.set("translations",Bs(Li,f,"en"))}}Li.pluginName="i18n",Li.en=Fr;class fe extends HTMLElement{constructor(f){super(),this.player=f}}class dn extends fe{constructor(f){super(f),this.classList.add("fp-logo");let g={logo:""};f.on(nt,(p)=>{var k;let O=g.logo,$=((k=p==null?void 0:p.data)===null||k===void 0?void 0:k.logo)||"";O!=$&&(g.logo=$,this.set_logo($,p.detail.logo_alt_text,p.detail.logo_href))})}set_logo(f,g,p){this.innerHTML="";let k=document.createElement("img");if(!f)return;if(k.src=f,g&&(k.alt=g),!p)return this.append(k);let O=document.createElement("a");O.href=p,O.append(k),this.append(O)}}class jn extends fe{constructor(f){super(f),this.classList.add("fp-duration"),f.on(nt,(g)=>{var p;let k=((p=g==null?void 0:g.data)===null||p===void 0?void 0:p.duration)||NaN;this.innerText=isFinite(k)?Ni(k):""})}}let wi={name:"fp-fullscreen",translation_key:"core.fullscreen"},zn={name:"fp-fullscreen-exit",translation_key:"core.exit_fullscreen"},Bl={name:"fp-play",translation_key:"core.play"},vo={name:"fp-pause",translation_key:"core.pause"},Eo={translation_key:"core.mute",name:"fp-volume-mute-unmute"},ca={translation_key:"core.play",name:"fp-small-play"},qn={translation_key:"core.pause",name:"fp-small-pause"},$l={name:"fp-fast-forward"},yo={name:"fp-rewind"};class vi extends fe{constructor(f,g){super(f),this.classList.add("fp-icon",g.name),g.title&&this.setAttribute("title",g.title),g.title&&this.setAttribute("aria-label",g.title),g.translation_key&&this.setAttribute("aria-label",f.i18n(g.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}function vr(){}document.addEventListener(v,function(f){this.active_menu&&!f.composedPath().includes(this.active_menu)&&(Array.from(document.querySelectorAll(".fp-engine")).forEach((g)=>{var p;let k=g.root.querySelector("details[open].fp-menu-container");k&&(k.open=!1,(p=k.querySelector("summary"))===null||p===void 0||p.removeAttribute("aria-expanded"),g.root.classList.toggle("has-menu-opened",!1))}),this.active_menu=void 0)});let Er={passive:!0};var be;function So(f,g){let p=0,k=-1,O=-1,$=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5),G=f.classList;f.id=$,G.remove(be.GRABBING),G.remove(be.TOUCHING);let U=g.onseek||vr,j=g.onstart||vr,Z=g.onend||vr,Tt=g.onmouse||vr,Ct=g.ontouch||vr,Ht=g.ontouchend||vr;function ae(te){(function(){let ii=f.getBoundingClientRect();p=ii.left,k=ii.width})();let Ge=(function(ii){return typeof window.TouchEvent=="function"&&ii instanceof TouchEvent}(te)?te.changedTouches[0].pageX:te.pageX)-p;return Ge>k&&(Ge=k),Ge<0&&(Ge=0),Ge/k*100}function ge(te){let Ge=ae(te);Ge!=O&&(U(f,Ge),O=Ge)}return f.addEventListener("touchstart",function(te){bo(f,te)&&(G.add(be.TOUCHING),To(f.parentElement)&&(G.add(be.GRABBING),Ct(f,ae(te)),j(f,ae(te)),ge(te)))},Er),f.addEventListener(T,function(te){ge(te),Tt(f,ae(te))},Er),f.addEventListener("touchend",function(te){setTimeout(function(){G.remove(be.TOUCHING)},500),bo(f,te)&&(G.remove(be.GRABBING),Ht(f,ae(te)),Z(f,ae(te)),k=0)},Er),f.addEventListener("touchcancel",function(){G.remove(be.GRABBING,be.TOUCHING),k=0},Er),f.addEventListener("mousedown",function(te){G.contains(be.TOUCHING)||(document.addEventListener(R,ge),G.add(be.GRABBING),j(f,ae(te)),te.preventDefault(),ge(te))}),f.addEventListener(R,function(te){G.contains(be.TOUCHING)||Tt(f,ae(te))}),document.addEventListener("mouseup",function(te){G.contains(be.TOUCHING)||(document.removeEventListener(R,ge),G.contains(be.GRABBING)&&(G.remove(be.GRABBING),Z(f,ae(te)),k=0))}),f}function bo(f,g){let p=g.target;return!!p&&(p&&!p.closest(f.id)||!To(f.parentElement)||!f.classList.contains(be.TOUCHING))}function To(f){if(!f)return!1;let g=window.getComputedStyle(f);return g.width!=="0"&&g.height!=="0"&&g.opacity!=="0"&&g.display!=="none"&&g.visibility!=="hidden"}(function(f){f.GRABBING="has-grab",f.TOUCHING="has-touch"})(be||(be={}));class ua extends fe{constructor(f){super(f),this.className="fp-volume";let g=f.root.classList,p=g.contains("is-tiny")?6:g.contains("is-small")?8:10,k=Array.from({length:p}).map(()=>{let O=document.createElement("i");return O.className="fp-tick",O});this.append(...k),So(this,{onseek:(O,$)=>{$>0&&(f.muted=!1,f._storage.removeItem("mute")),f._storage.setItem("volume",(f.volume=$/100).toString()),this.adjustVolumeSlider(f.volume)}}),this.setAttribute("tabindex","0"),this.setAttribute("role","slider"),this.setAttribute("aria-valuemin","0"),this.setAttribute("aria-valuemax","1"),this.setAttribute("aria-label",f.i18n("core.volume","volume")),f.on("volumechange",()=>{let O=f.volume==0||f.muted;O&&this.adjustVolumeSlider(0);let $=f.opt("ui");this.classList.contains(be.GRABBING)||O&&typeof $=="number"&&(4&$)>0||this.adjustVolumeSlider(f.volume)})}adjustVolumeSlider(f){this.setAttribute("aria-valuenow",f.toString()),this.setAttribute("aria-valuetext",Math.round(100*f)+"%");let g=Array.from(this.querySelectorAll(".fp-tick")),p=Math.round(f*g.length);g.forEach((k,O)=>{k.classList.toggle("fp-color",O<p)})}}class da extends fe{constructor(f){let g;super(f),this.bufferEle=ti("fp-buffer"),this.progress=ti("fp-progress","fp-color"),this.tooltipEle=ti("fp-timestamp"),this.proposedSeekBar=ti("fp-hover"),this.dragger=ti("fp-dragger","fp-color"),this.classList.add("fp-timeline","fp-bar"),this.tooltipEle.style.display="none",this.setAttribute("role","slider"),this.setAttribute("tabindex","0"),this.setAttribute("aria-label",f.i18n("core.timeline_aria_label","Seek slider")),this.setAttribute("aria-valuenow","0"),this.progress.append(this.dragger),this.append(this.bufferEle,this.progress,this.proposedSeekBar,this.tooltipEle);let p=requestAnimationFrame,k=void 0,O=()=>{var G;f.reaper==0||g.live||(G=f,this.progress.style.width=G.currentTime/G.duration*100+"%",k=void 0,f.paused||this.classList.contains(be.GRABBING)||k||(k=setTimeout(O,200)))},$=()=>!!this.player.opt("seekable",!0)&&!isNaN(this.player.duration);So(this,{onseek:(G,U)=>{if($())switch(!!g.live){case!0:Nn(U,f,this.tooltipEle);break;case!1:(function(j,Z,Tt){let Ct=Z.duration*(j/100);if(Z.disabled&&Ct>Z.currentTime)return!1;Tt.style.width=j+"%",Z.currentTime=Ct})(U,f,this.progress),xi(this.tooltipEle,U)}},onstart:()=>{$()&&(f.emit("timeline/gesture/start"),!f.hasState("is-casting")&&f.setState(Ve,!0),g.live||function(G){G.style.display="block"}(this.tooltipEle))},onend:function(G,U){p(O),g.seekable!=0&&g.live&&ro(U,f)},ontouchend:()=>{g.live?ur(this.proposedSeekBar,this.tooltipEle):pi(this.proposedSeekBar,this.tooltipEle),setTimeout(()=>f.emit("timeline/gesture/end"),0)},onmouse:(G,U)=>{if($()&&(f.emit("timeline/gesture/move",{percent:U}),!this.classList.contains(be.GRABBING)))switch(!!g.live){case!0:(function(j,Z){Z.style.width=j+"%"})(U,this.proposedSeekBar),Nn(U,f,this.tooltipEle);break;case!1:(function(j,Z){Z.style.width=j+"%"})(U,this.proposedSeekBar),function(j,Z,Tt){isNaN(j)||isNaN(Z.duration)||(xi(Tt,j),Tt.textContent=Ni(j/100*Z.duration))}(U,f,this.tooltipEle)}}}),f.on(nt,function(G){G.data&&(g=G.data)}),f.on(st,()=>p(O)),f.on(H,()=>{f.reaper==0||g.live||ei(f,this.bufferEle)}),f.on("dvr",(G)=>{this.progress.style.width=G.detail+"%"}),f.on("timeupdate",()=>{f.reaper!=0&&(p(O),this.setAttribute("aria-valuenow",f.currentTime+""),this.setAttribute("aria-valuetext",Math.round(f.currentTime)+" "+f.i18n("core.seconds","Seconds")),g.live||ei(f,this.bufferEle))}),f.on(tt,()=>{f.reaper!=0&&(g.live||ei(f,this.bufferEle))}),f.on("durationchange",(G)=>{if(f.reaper==0)return;let U=Ue(f)?bi(f):G.data||f.duration;isNaN(U)||(this.setAttribute("aria-valuemax",U+""),this.setAttribute("aria-valuemin","0"))}),this.addEventListener(A,()=>{f.emit("timeline/gesture/end"),g.live?ur(this.proposedSeekBar,this.tooltipEle):pi(this.proposedSeekBar,this.tooltipEle)})}}class Xn extends fe{constructor(f){super(f),this.classList.add("fp-live-status");let g=ti("fp-live-text"),p=ti("fp-live-indicator","fp-color");g.textContent="live",this.setAttribute("tabindex","0"),this.setAttribute("role","button"),this.append(p,g),this.addEventListener(v,function(){Vs(f)})}}class ha extends fe{constructor(f){let g;super(f),this.classList.add("fp-duration"),this.setAttribute("aria-hidden","true"),f.on(nt,(p)=>{if(f.reaper==0||!p.data)return;g=p.data;let k=Ue(f)?NaN:p.data.duration||0;if(isNaN(k)||k>=Number.MAX_SAFE_INTEGER)return this.style.display="none";this.style.display="inline-block",this.innerText=Ni(k)}),f.on(tt,()=>{var p,k;f.reaper==0||g.live||(k=this,(p=f).duration&&(k.innerText=Ni(p.duration)))})}}class fa extends fe{constructor(f){let g;super(f),this.classList.add("fp-elapsed"),this.innerText=Ni(0),this.setAttribute("aria-hidden","true"),f.on(nt,(p)=>{p.data&&(g=p.data)}),f.on("timeupdate",()=>{var p;f.reaper!=0&&(g.live?(p=f,this.innerText=Ni(p.currentTime)):function(k,O){O.innerText=Ni(k.currentTime)}(f,this))})}}class _o extends fe{constructor(f){super(f),this.classList.add("fp-btns","fp-small-switch");let g=yi(f,"flowplayer-small-pause-icon"),p=yi(f,"flowplayer-small-play-icon");g.addEventListener("click",function(){f.togglePlay(),setTimeout(function(){p.focus&&p.focus()},100)}),p.addEventListener("click",function(){f.togglePlay(),setTimeout(function(){g.focus&&g.focus()},100)}),this.append(g,p)}}class Jn extends fe{constructor(f,g){super(f),this.classList.add(g);let p=this.classList.contains("fp-left-zone")?-1:1,k=document.createElement("span"),O=yi(f,this.classList.contains("fp-left-zone")?gt:"flowplayer-fast-forward-icon");O.removeAttribute("tabindex"),k.classList.add("fp-zone-seconds"),this.append(k,O),f.on(B,()=>{k.innerText=""}),f.on("seek:queued",($)=>{let G=$.data;if(!G)return;if(typeof G.offset!="number")return;let U=G.offset;if(U==0)return this.reset_zone();U>0&&this.classList.contains("fp-right-zone")||U<0&&!this.classList.contains("fp-right-zone")?this.render_zone_state(U):this.reset_zone()}),f.on("seek:cancel",()=>{this.reset_zone()}),this.reset_zone(),this.addEventListener("touchend",function($){isNaN(f.duration)||isNaN(f.currentTime)||16384&f.opt("ui")||f.hasState(We)||!f.hasState("will-seek")&&!f.hasState(At)||f.enqueueSeek(5*p)&&($.stopPropagation(),$.preventDefault())})}reset_zone(){let f=this.querySelector(".fp-zone-seconds");f&&(f.innerText="")}render_zone_state(f){let g=this.querySelector(".fp-zone-seconds");g&&(g.innerText=Math.abs(f)+"")}}class ma extends fe{constructor(f){super(f),this.className="fp-error",this.message=document.createElement("p"),this.message.className="error-message",this.errorId=document.createElement("p"),this.errorId.className="error-id",this.errorKey=document.createElement("p"),this.errorKey.className="error-key",this.append(this.errorKey,this.message,this.errorId),this.addEventListener("flowplayer:error",(g)=>{if(f.opts.live&&f.currentTime==0&&g.detail.error.flowplayerErrorCode==Ft.PlaybackManifestLoadError)return void(this.message.textContent="stream offline");let p=g.detail.error;this.message.textContent=p.message,this.errorKey.textContent=p.errorKey,console.warn("flowplayer encountered an %s error while loading %s id:%s",p.errorKey,p.config.resource,p.id)})}}class Qn extends fe{constructor(f,g,...p){super(f),this.className=g;let k=f.createComponents(...p);this.append(...k),g!=="fp-left"&&k.forEach((O)=>{O.addEventListener(v,()=>f.toggleFullScreen())})}}class Zn extends fe{constructor(f){super(f),this.classList.add("fp-wait"),Array(...Array(4)).map((g,p)=>p).forEach(()=>{this.append(document.createElement("b"))})}}class ga extends fe{constructor(f){super(f),this.classList.add("fp-middle-zone");let g=f.createComponents(V,"flowplayer-middle-buttons");this.append(...g)}}class pa extends fe{constructor(f){super(f),this.classList.add("fp-switch"),[et,pt].forEach((g)=>{let p=yi(f,g);p.removeAttribute("tabindex"),this.append(p)})}}class Bi extends fe{constructor(f){super(f),this.classList.add("fp-volume-control");let g=yi(f,Lt);this.append(g),!d().ios&&this.append(yi(f,Bt)),g instanceof vi&&g.addEventListener(v,function(){f.toggleMute()})}}class ts extends fe{constructor(f){super(f),this.classList.add("fp-header"),this.append(...f.createComponents("flowplayer-header-left-zone","flowplayer-header-right-zone")),f.reaper&&f.reaper.set("header",this)}}class Ao extends fe{constructor(f){super(f),this.classList.add("fp-controls","fp-togglable"),this.append(...f.createComponents("flowplayer-control-buttons",rt,ut,bt,"flowplayer-control-duration","flowplayer-volume-control"))}}class va extends vi{constructor(f,g){super(f,g),this.setAttribute("role","button")}}class es extends fe{constructor(f){super(f),this.classList.add("fp-middle"),this.append(...f.createComponents("flowplayer-middle-left-zone",jt,"flowplayer-middle-right-zone")),this.setAttribute("tabindex","0"),f.reaper&&f.reaper.set("middle",this),this.handleClick(f),this.handleTouch(f),f.once("beforeplay",()=>{this.removeAttribute("tabindex"),this.removeAttribute("role"),this.removeAttribute("aria-label")})}handleClick(f){[v,E].forEach((g)=>this.addEventListener(g,function(p){if(!(p.defaultPrevented||f.root.classList.contains("is-endscreen")||g===E&&f.root.classList.contains("no-fullscreen")))return p.preventDefault(),f.emit(p.type),!1})),f.on(v,function(g){setTimeout(function(){g.defaultPrevented||f.togglePlay()},0)}),f.on(E,function(g){setTimeout(function(){g.defaultPrevented||f.toggleFullScreen()},0)})}handleTouch(f){let g=!1;this.addEventListener("touchend",function(p){p.cancelable&&!f.hasState("is-endscreen")&&(p.preventDefault(),f.emit(p.type,{source:p}))}),f.on("touchend",function(p){setTimeout(function(){if(p.defaultPrevented)return;if(f.ended)return f.togglePlay(!0);let k=f.hasState(ne);g&&clearTimeout(g),(k||f.hasState(At))&&(f.hasState(At)&&(f.setState(At,!1),f.setState(Xt,!1)),f.togglePlay(),k)||(f.setState(At,!0),f.paused||(g=setTimeout(function(){g=!1,f.setState(At,!1),f.setState(Xt,!1)},2000)))},0)})}}class yr extends fe{constructor(f){super(f),this.classList.add("fp-ui"),this.append(...f.createComponents(Kt,ce,zt))}}class hn{constructor(f){oe(f,Pt,yr),oe(f,"flowplayer-error",ma),oe(f,zt,Ao),oe(f,rt,Xn),oe(f,"flowplayer-control-duration",ha),oe(f,bt,da),oe(f,ut,fa),oe(f,Bt,ua),oe(f,"flowplayer-volume-control",Bi),oe(f,"flowplayer-control-buttons",_o),oe(f,Kt,ts),oe(f,$t,dn),oe(f,"flowplayer-header-duration",jn),oe(f,"flowplayer-header-left-zone",class extends Qn{constructor(g){super(g,"fp-left","flowplayer-header-duration")}}),oe(f,"flowplayer-header-right-zone",class extends Qn{constructor(g){super(g,"fp-right fp-togglable","flowplayer-fullscreen-enter-icon","flowplayer-fullscreen-exit-icon")}}),oe(f,ce,es),oe(f,jt,ga),oe(f,V,Zn),oe(f,"flowplayer-middle-buttons",pa),oe(f,"flowplayer-middle-right-zone",class extends Jn{constructor(g){super(g,"fp-right-zone")}}),oe(f,"flowplayer-middle-left-zone",class extends Jn{constructor(g){super(g,"fp-left-zone")}}),oe(f,"flowplayer-small-play-icon",class extends vi{constructor(g){super(g,ca),this.setAttribute("role","button")}}),oe(f,"flowplayer-small-pause-icon",class extends vi{constructor(g){super(g,qn),this.setAttribute("role","button")}}),oe(f,et,class extends vi{constructor(g){super(g,Bl),this.setAttribute("role","button")}}),oe(f,pt,class extends vi{constructor(g){super(g,vo),this.setAttribute("role","button")}}),oe(f,"flowplayer-fullscreen-enter-icon",class extends va{constructor(g){super(g,wi)}}),oe(f,"flowplayer-fullscreen-exit-icon",class extends va{constructor(g){super(g,zn)}}),oe(f,"flowplayer-fast-forward-icon",class extends vi{constructor(g){super(g,$l)}}),oe(f,gt,class extends vi{constructor(g){super(g,yo)}}),oe(f,Lt,class extends vi{constructor(g){super(g,Eo),this.classList.add("fp-volumebtn"),this.setAttribute("role","switch"),g.on("volumechange",()=>{let p=g.volume==0||g.muted;this.setAttribute("aria-label",g.i18n("core.muted","Muted")),this.setAttribute("aria-checked",p?"true":"false")})}})}init(f,g,p){var k;un(f,0,p),Ui(f,g,p),k=p,typeof window<"u"&&"ontouchstart"in window&&k.setState("is-touch-device",!0),k.setState("is-accessibility",!1)}}return hn.pluginName="default",ze.extensions.unshift.apply(ze.extensions,[Li,oi,hn]),Object.assign(ze,{ui:Nr,i18n:Li})})});var Jd=Ce((il,rl)=>{(function(n,o){typeof il=="object"&&typeof rl<"u"?rl.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis<"u"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.asel=o())})(il,function(){var d=Object.freeze({__proto__:null,SET:"audio:set",SWITCH:"audio:update",TRACKS:"audio:tracks"});function v(D,B,x){let Y=function(J){return Array.isArray(J)?J.slice(0):J.split(".")}(B);for(;Y.length;){if(D==null)return x;let J=Y.shift();if(typeof J!="string")return x;D=D[J]}return D==null?x:D}let E=navigator.languages||[navigator.language];function A(D,B){D.emit("audio:set",B),B.autoselect&&D._storage.setItem("@flowplayer/audio/track",B.lang)}function R(D){return D.toLowerCase()}function T(D,B,x){B=B.slice(0);let Y={},J=D.getItem("@flowplayer/audio/track"),ct=function(){try{return E.reduce((ot,St)=>~St.indexOf("-")?ot.concat(St,St.split("-")[0]):ot.concat(St),[])}catch(ot){return[]}}().map(R),nt=-1;if(typeof x=="number")return x;for(typeof x=="string"&&(x=x.toLowerCase(),~ct.indexOf(x)&&ct.splice(ct.indexOf(x),1),ct.unshift(R(x))),Array.isArray(x)&&(ct=x.map(R));B.length;){++nt;let ot=B.shift();if(ot==null?void 0:ot.autoselect){if(J==ot.lang)return console.debug("restoring lang from previous session: ",J),nt;if(ot.default&&(Y.fallback=[nt,ot]),ot.lang&&~ct.indexOf(ot.lang.toLowerCase())){let St=ct.indexOf(ot.lang);if(St<v(Y,"by_lang.2",1/0)&&(Y.by_lang=[nt,ot,St]),St===0)break}}}return v(Y,"by_lang.0",v(Y,"fallback.0",void 0))}let L=(D,B)=>new(((x,Y)=>{let J=x.get(Y);if(!J)throw Error(`no flowplayer component with the name ${Y} exists`);let ct=window.customElements.get(Y);if(!ct)throw Error(`no default flowplayer component with the name ${Y} exists`);let nt=window.customElements.get(J);return typeof nt!="function"?ct:nt})(D._customElements,B))(D);class M extends HTMLElement{constructor(D){super(),this.player=D}}let tt="fp-on",b="fp-invis";class H extends M{constructor(D){super(D),this.player=D,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=K(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(B)=>{if(B.defaultPrevented)return;B.preventDefault();let x=this.menuContainer.open;x||(N(),document.active_menu=this.menuContainer),this.menuContainer.open=!x,D.root.classList.toggle("has-menu-opened",!x),this.summaryEle.setAttribute("aria-expanded",x?"false":"true")}),this.addEventListener("focusin",(B)=>{let x=B.target;x instanceof HTMLLIElement&&x.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(B)=>{let x=B.target;x instanceof HTMLLIElement&&x.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(D){if(this.className=D.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=D.id||K()),this.summaryEle.setAttribute("aria-label",D.menuTitle||"Menu"),D.summaryTitle&&(this.summaryEle.textContent=D.summaryTitle),D.summaryIcon){let B=L(this.player,D.summaryIcon);B.setAttribute("tabindex",""),this.summaryEle.append(B)}D.menuTitle&&(this.menuTitle.textContent=D.menuTitle),this.menu.classList.toggle("fp-icons",!!D.icons),this.addEventListener(D.options_event,(B)=>{this.render(B.data)}),D.item_selected_event&&this.addEventListener(D.item_selected_event,(B)=>{B.data!==void 0&&this.select_item(B.data.selected_index)})}render(D){this.olEle&&(this.olEle.innerHTML="",D&&D.forEach(this.menuOption,this),this.toggle_visibility(!(D==null?void 0:D.length)))}menuOption(D,B){let x=document.createElement("li");x.setAttribute("role","menuitem"),x.setAttribute("aria-selected","false"),x.setAttribute("tabindex","0"),D.icon&&x.append(D.icon);let Y=document.createElement("span");Y.textContent=D.text,x.append(Y),x.addEventListener("click",()=>{this.select_item(B),typeof D.onclick=="function"&&D.onclick()}),this.olEle.appendChild(x),D.selected&&this.select_item(B)}select_item(D){this.options.forEach((B,x)=>{B.classList.toggle(tt,x===D)})}unselect_item(){this.options.forEach((D)=>{D.classList.remove(tt)})}toggle_visibility(D){this.classList.toggle(b,D),this.menu.style.setProperty("display",D?"none":"flex")}}function N(){Array.from(document.querySelectorAll(".fp-engine")).forEach((D)=>{var B;let x=D.root.querySelector("details[open].fp-menu-container");x&&(x.open=!1,(B=x.querySelector("summary"))===null||B===void 0||B.removeAttribute("aria-expanded"),D.root.classList.toggle("has-menu-opened",!1))})}function K(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function st(D,B,x){let Y=function(J,ct){let nt=new CustomEvent(J,{detail:ct,cancelable:!0});return ct&&Object.defineProperty(nt,"data",{get:()=>ct}),nt}(B,x);return D.dispatchEvent(Y),D}document.addEventListener("click",function(D){this.active_menu&&!D.composedPath().includes(this.active_menu)&&(N(),this.active_menu=void 0)}),function(){let D=!1;try{let B=Object.defineProperty({},"passive",{get:function(){D=!0}});window.addEventListener("testPassive",null,B),window.removeEventListener("testPassive",null,B)}catch(B){}}();var Et;let q=((Et=class{constructor(B){((x,Y,J)=>{window.customElements.get(Y)||window.customElements.define(Y,J),x.customElements.get(Y)||x.customElements.set(Y,Y)})(B,"flowplayer-audio-menu",H)}init(B,x,Y){if(B.asel===!1)return;let J=[],ct=L(Y,"flowplayer-audio-menu");ct instanceof H&&ct.setMenuAttrs({summaryTitle:Y.i18n("audio.button_txt"),menuTitle:Y.i18n("audio.menu_title"),class:"fp-asel",options_event:Et.events.TRACKS,item_selected_event:Et.events.SWITCH});let nt=function(ot){let St={tracks:[],events:d};return Object.assign(St,{set:function(Pt){if(!(typeof Pt!="number"||Pt<0||Pt>St.tracks.length-1))return ot.emit("audio:set",St.tracks[Pt]),St},get:function(Pt){if(typeof Pt=="number")return St.tracks[Pt]}}),St}(Y);Y.asel=nt,Y.on("mount",function(){var ot;(ot=function(St,Pt){let $t=St._customElements.get(Pt);return $t&&St.root.querySelector($t)||void 0}(Y,Y.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||ot===void 0||ot.append(ct)}),Y.on("src",()=>{nt.tracks=[],nt.active_track=void 0,st(ct,Et.events.TRACKS,[])}),Y.on("audio:tracks",function(ot){if(!Array.isArray(ot.data)||ot.data.length===J.length&&ot.data.every(($t,zt)=>$t===J[zt]))return;J=ot.data,nt.tracks=J.slice();let St=v(B,"asel.sort");typeof St=="function"&&nt.tracks.sort(St),st(ct,Et.events.TRACKS,Array.from({length:nt.tracks.length}).map(($t,zt)=>{let rt=nt.tracks[zt];return{text:rt.name||rt.label||rt.lang,onclick:A.bind(0,Y,rt)}})),nt.active_track=nt.tracks.find(($t)=>$t.enabled),nt.active_track&&st(ct,Et.events.SWITCH,{selected_index:nt.tracks.indexOf(nt.active_track)});let Pt=T(Y._storage,nt.tracks,v(B,"asel.default_lang",!1));return ct instanceof H&&ct.toggle_visibility(ot.data.length<2),Pt!==void 0?nt.set(Pt):void 0}),Y.on("audio:update",function(ot){var St;(St=Y.asel)===null||St===void 0||St.tracks.find((Pt,$t)=>{var zt,rt;Pt!==ot.detail&&Pt.id!==((rt=(zt=ot.detail)===null||zt===void 0?void 0:zt.id)!==null&&rt!==void 0?rt:-1)||(Y.asel.active_track=Pt,st(ct,Et.events.SWITCH,{selected_index:$t}))})}),Y.audioTracks&&(Y.audioTracks.addEventListener("addtrack",function(){Y.hls||Y.emit("audio:tracks",Array.from(Y.audioTracks))}),Y.on("audio:set",function(ot){if(Y.hls)return;let St=ot.detail;nt.active_track=St,St&&Array.from(Y.audioTracks).forEach((Pt)=>{Pt.enabled=St.id===Pt.id,Pt.enabled&&st(ct,Et.events.SWITCH,{selected_index:nt.tracks.indexOf(St)})})}))}}).pluginName="asel",Et.events=d,Et);return function(D,B){if(typeof il=="object"&&typeof rl<"u")return B;if(document.currentScript===null)return B;"flowplayer"in D||(D.flowplayer={extensions:[]});let x=D.flowplayer;return typeof x=="function"?(x(B),B):(Array.isArray(x.extensions)||(x.extensions=[]),~x.extensions.indexOf(B)||x.extensions.push(B),B)}(window,q)})});var Qd=Ce((nl,sl)=>{(function(n,o){typeof nl=="object"&&typeof sl<"u"?sl.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis<"u"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.consent=o())})(nl,function(){class n{constructor(A,R){this.implementation=A,R&&R.keys().forEach((T)=>{typeof R.implementation[T]=="string"&&this.implementation.setItem(T,R.implementation[T])})}keys(){var A;let R=[];for(var T=0;T<this.implementation.length;T++)((A=this.implementation.key(T))===null||A===void 0?void 0:A.startsWith("flowplayer/"))&&R.push(this.implementation.key(T));return R}removeItem(A){try{this.implementation.removeItem("flowplayer/"+A)}catch(R){}}getItem(A){try{return this.implementation.getItem("flowplayer/"+A)}catch(R){return null}}setItem(A,R){try{this.implementation.setItem("flowplayer/"+A,R)}catch(T){}}clear(){try{this.keys().forEach((A)=>this.implementation.removeItem(A))}catch(A){}}get length(){try{return this.keys().length}catch(A){return 0}}key(A){try{return this.implementation.key(A)}catch(R){return null}}}var o,d,v;(function(A){A[A.ALL=1]="ALL",A[A.NONE=2]="NONE"})(o||(o={})),function(A){A[A.ALL=8]="ALL",A[A.NONE=16]="NONE"}(d||(d={}));let E=((v=class{constructor(R,T){let L=T._storage.getItem("consent"),M=this.current_value=L&&!isNaN(Number(L))?Number(T._storage.getItem("consent")):o.NONE|d.NONE;this.player=T,this.adapt(Object.assign({consent:M},T.opts))}init(R,T,L){this.adapt(R),L.on("config",(tt)=>{this.adapt(tt.detail)});let M=(tt)=>{L.setOpts({consent:tt.detail})};document.addEventListener("flowplayer/consent",M),L.on("reap",()=>document.removeEventListener("flowplayer/consent",M))}adapt(R){let T=R.consent===void 0?this.current_value:R.consent;d.ALL&T?this.setStorage(d.ALL):d.NONE&T&&this.setStorage(d.NONE),o.ALL&T?this.setTracking(o.ALL):o.NONE&T&&this.setTracking(o.NONE),this.player._storage.setItem("consent",T.toString())}setStorage(R){try{let T=this.player._storage;switch(this.player.setState("consent-no-storage",R===d.NONE),R){case d.ALL:this.player._storage=new n(localStorage,this.player._storage);break;case d.NONE:this.player._storage=new n(sessionStorage,T),T.clear()}}catch(T){console.debug(T)}}setTracking(R){var T,L;switch(this.player.setState("consent-no-tracking",R===o.NONE),R){case o.ALL:(T=this.player.health)===null||T===void 0||T.toggle(!0);break;case o.NONE:(L=this.player.health)===null||L===void 0||L.toggle(!1)}}}).pluginName="consent",v.tracking=o,v.storage=d,v);return function(A,R){if(typeof nl=="object"&&typeof sl<"u")return R;if(document.currentScript===null)return R;"flowplayer"in A||(A.flowplayer={extensions:[]});let T=A.flowplayer;return typeof T=="function"?(T(R),R):(Array.isArray(T.extensions)||(T.extensions=[]),~T.extensions.indexOf(R)||T.extensions.push(R),R)}(window,E)})});var Zd=Ce((al,ol)=>{(function(n,o){typeof al=="object"&&typeof ol<"u"?ol.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis<"u"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.hls=o())})(al,function(){function n(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var o={exports:{}};(function(t,e){var i,r,s,a,l;i=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,r=/^(?=([^\/?#]*))\1([^]*)$/,s=/(?:\/|^)\.(?=\/)/g,a=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,l={buildAbsoluteURL:function(c,u,h){if(h=h||{},c=c.trim(),!(u=u.trim())){if(!h.alwaysNormalize)return c;var m=l.parseURL(c);if(!m)throw Error("Error trying to parse base URL.");return m.path=l.normalizePath(m.path),l.buildURLFromParts(m)}var y=l.parseURL(u);if(!y)throw Error("Error trying to parse relative URL.");if(y.scheme)return h.alwaysNormalize?(y.path=l.normalizePath(y.path),l.buildURLFromParts(y)):u;var S=l.parseURL(c);if(!S)throw Error("Error trying to parse base URL.");if(!S.netLoc&&S.path&&S.path[0]!=="/"){var _=r.exec(S.path);S.netLoc=_[1],S.path=_[2]}S.netLoc&&!S.path&&(S.path="/");var w={scheme:S.scheme,netLoc:y.netLoc,path:null,params:y.params,query:y.query,fragment:y.fragment};if(!y.netLoc&&(w.netLoc=S.netLoc,y.path[0]!=="/"))if(y.path){var I=S.path,C=I.substring(0,I.lastIndexOf("/")+1)+y.path;w.path=l.normalizePath(C)}else w.path=S.path,y.params||(w.params=S.params,y.query||(w.query=S.query));return w.path===null&&(w.path=h.alwaysNormalize?l.normalizePath(y.path):y.path),l.buildURLFromParts(w)},parseURL:function(c){var u=i.exec(c);return u?{scheme:u[1]||"",netLoc:u[2]||"",path:u[3]||"",params:u[4]||"",query:u[5]||"",fragment:u[6]||""}:null},normalizePath:function(c){for(c=c.split("").reverse().join("").replace(s,"");c.length!==(c=c.replace(a,"")).length;);return c.split("").reverse().join("")},buildURLFromParts:function(c){return c.scheme+c.netLoc+c.path+c.params+c.query+c.fragment}},t.exports=l})(o);var d=o.exports;function v(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(t,s).enumerable})),i.push.apply(i,r)}return i}function E(t){for(var e=1;e<arguments.length;e++){var i=arguments[e]!=null?arguments[e]:{};e%2?v(Object(i),!0).forEach(function(r){R(t,r,i[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):v(Object(i)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(i,r))})}return t}function A(t){var e=function(i,r){if(typeof i!="object"||!i)return i;var s=i[Symbol.toPrimitive];if(s!==void 0){var a=s.call(i,r||"default");if(typeof a!="object")return a;throw TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(i)}(t,"string");return typeof e=="symbol"?e:String(e)}function R(t,e,i){return(e=A(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function T(){return(T=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&(t[r]=i[r])}return t}).apply(this,arguments)}let L=Number.isFinite||function(t){return typeof t=="number"&&isFinite(t)},M=Number.isSafeInteger||function(t){return typeof t=="number"&&Math.abs(t)<=tt},tt=Number.MAX_SAFE_INTEGER||9007199254740991,b=function(t){return t.MEDIA_ATTACHING="hlsMediaAttaching",t.MEDIA_ATTACHED="hlsMediaAttached",t.MEDIA_DETACHING="hlsMediaDetaching",t.MEDIA_DETACHED="hlsMediaDetached",t.BUFFER_RESET="hlsBufferReset",t.BUFFER_CODECS="hlsBufferCodecs",t.BUFFER_CREATED="hlsBufferCreated",t.BUFFER_APPENDING="hlsBufferAppending",t.BUFFER_APPENDED="hlsBufferAppended",t.BUFFER_EOS="hlsBufferEos",t.BUFFER_FLUSHING="hlsBufferFlushing",t.BUFFER_FLUSHED="hlsBufferFlushed",t.MANIFEST_LOADING="hlsManifestLoading",t.MANIFEST_LOADED="hlsManifestLoaded",t.MANIFEST_PARSED="hlsManifestParsed",t.LEVEL_SWITCHING="hlsLevelSwitching",t.LEVEL_SWITCHED="hlsLevelSwitched",t.LEVEL_LOADING="hlsLevelLoading",t.LEVEL_LOADED="hlsLevelLoaded",t.LEVEL_UPDATED="hlsLevelUpdated",t.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",t.LEVELS_UPDATED="hlsLevelsUpdated",t.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",t.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",t.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",t.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",t.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",t.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",t.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",t.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",t.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",t.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",t.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",t.CUES_PARSED="hlsCuesParsed",t.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",t.INIT_PTS_FOUND="hlsInitPtsFound",t.FRAG_LOADING="hlsFragLoading",t.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",t.FRAG_LOADED="hlsFragLoaded",t.FRAG_DECRYPTED="hlsFragDecrypted",t.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",t.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",t.FRAG_PARSING_METADATA="hlsFragParsingMetadata",t.FRAG_PARSED="hlsFragParsed",t.FRAG_BUFFERED="hlsFragBuffered",t.FRAG_CHANGED="hlsFragChanged",t.FPS_DROP="hlsFpsDrop",t.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",t.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",t.ERROR="hlsError",t.DESTROYING="hlsDestroying",t.KEY_LOADING="hlsKeyLoading",t.KEY_LOADED="hlsKeyLoaded",t.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",t.BACK_BUFFER_REACHED="hlsBackBufferReached",t.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",t}({}),H=function(t){return t.NETWORK_ERROR="networkError",t.MEDIA_ERROR="mediaError",t.KEY_SYSTEM_ERROR="keySystemError",t.MUX_ERROR="muxError",t.OTHER_ERROR="otherError",t}({}),N=function(t){return t.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",t.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",t.KEY_SYSTEM_NO_SESSION="keySystemNoSession",t.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",t.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",t.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",t.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",t.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",t.MANIFEST_LOAD_ERROR="manifestLoadError",t.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",t.MANIFEST_PARSING_ERROR="manifestParsingError",t.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",t.LEVEL_EMPTY_ERROR="levelEmptyError",t.LEVEL_LOAD_ERROR="levelLoadError",t.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",t.LEVEL_PARSING_ERROR="levelParsingError",t.LEVEL_SWITCH_ERROR="levelSwitchError",t.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",t.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",t.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",t.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",t.FRAG_LOAD_ERROR="fragLoadError",t.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",t.FRAG_DECRYPT_ERROR="fragDecryptError",t.FRAG_PARSING_ERROR="fragParsingError",t.FRAG_GAP="fragGap",t.REMUX_ALLOC_ERROR="remuxAllocError",t.KEY_LOAD_ERROR="keyLoadError",t.KEY_LOAD_TIMEOUT="keyLoadTimeOut",t.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",t.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",t.BUFFER_APPEND_ERROR="bufferAppendError",t.BUFFER_APPENDING_ERROR="bufferAppendingError",t.BUFFER_STALLED_ERROR="bufferStalledError",t.BUFFER_FULL_ERROR="bufferFullError",t.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",t.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",t.INTERNAL_EXCEPTION="internalException",t.INTERNAL_ABORTED="aborted",t.UNKNOWN="unknown",t}({}),K=function(){},st={trace:K,debug:K,log:K,warn:K,info:K,error:K},Et=st;function q(t,...e){e.forEach(function(i){Et[i]=t[i]?t[i].bind(t):function(r){let s=self.console[r];return s?s.bind(self.console,`[${r}] >`):K}(i)})}let D=Et,B=/^(\d+)x(\d+)$/,x=/(.+?)=(".*?"|.*?)(?:,|$)/g;class Y{constructor(t){typeof t=="string"&&(t=Y.parseAttrList(t)),T(this,t)}get clientAttrs(){return Object.keys(this).filter((t)=>t.substring(0,2)==="X-")}decimalInteger(t){let e=parseInt(this[t],10);return e>Number.MAX_SAFE_INTEGER?1/0:e}hexadecimalInteger(t){if(this[t]){let e=(this[t]||"0x").slice(2);e=(1&e.length?"0":"")+e;let i=new Uint8Array(e.length/2);for(let r=0;r<e.length/2;r++)i[r]=parseInt(e.slice(2*r,2*r+2),16);return i}return null}hexadecimalIntegerAsNumber(t){let e=parseInt(this[t],16);return e>Number.MAX_SAFE_INTEGER?1/0:e}decimalFloatingPoint(t){return parseFloat(this[t])}optionalFloat(t,e){let i=this[t];return i?parseFloat(i):e}enumeratedString(t){return this[t]}bool(t){return this[t]==="YES"}decimalResolution(t){let e=B.exec(this[t]);if(e!==null)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}}static parseAttrList(t){let e,i={};for(x.lastIndex=0;(e=x.exec(t))!==null;){let r=e[2];r.indexOf('"')===0&&r.lastIndexOf('"')===r.length-1&&(r=r.slice(1,-1)),i[e[1].trim()]=r}return i}}function J(t){return t==="SCTE35-OUT"||t==="SCTE35-IN"}class ct{constructor(t,e){if(this.attr=void 0,this._startDate=void 0,this._endDate=void 0,this._badValueForSameId=void 0,e){let i=e.attr;for(let r in i)if(Object.prototype.hasOwnProperty.call(t,r)&&t[r]!==i[r]){D.warn(`DATERANGE tag attribute: "${r}" does not match for tags with ID: "${t.ID}"`),this._badValueForSameId=r;break}t=T(new Y({}),i,t)}if(this.attr=t,this._startDate=new Date(t["START-DATE"]),"END-DATE"in this.attr){let i=new Date(this.attr["END-DATE"]);L(i.getTime())&&(this._endDate=i)}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get startDate(){return this._startDate}get endDate(){if(this._endDate)return this._endDate;let t=this.duration;return t!==null?new Date(this._startDate.getTime()+1000*t):null}get duration(){if("DURATION"in this.attr){let t=this.attr.decimalFloatingPoint("DURATION");if(L(t))return t}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1000;return null}get plannedDuration(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isValid(){return!!this.id&&!this._badValueForSameId&&L(this.startDate.getTime())&&(this.duration===null||this.duration>=0)&&(!this.endOnNext||!!this.class)}}class nt{constructor(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}}var ot="audio",St="video",Pt="audiovideo";class $t{constructor(t){this._byteRange=null,this._url=null,this.baseurl=void 0,this.relurl=void 0,this.elementaryStreams={[ot]:null,[St]:null,[Pt]:null},this.baseurl=t}setByteRange(t,e){let i=t.split("@",2),r;r=i.length===1?(e==null?void 0:e.byteRangeEndOffset)||0:parseInt(i[1]),this._byteRange=[r,parseInt(i[0])+r]}get byteRange(){return this._byteRange?this._byteRange:[]}get byteRangeStartOffset(){return this.byteRange[0]}get byteRangeEndOffset(){return this.byteRange[1]}get url(){return!this._url&&this.baseurl&&this.relurl&&(this._url=d.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""}set url(t){this._url=t}}class zt extends $t{constructor(t,e){super(e),this._decryptdata=null,this.rawProgramDateTime=null,this.programDateTime=null,this.tagList=[],this.duration=0,this.sn=0,this.levelkeys=void 0,this.type=void 0,this.loader=null,this.keyLoader=null,this.level=-1,this.cc=0,this.startPTS=void 0,this.endPTS=void 0,this.startDTS=void 0,this.endDTS=void 0,this.start=0,this.deltaPTS=void 0,this.maxStartPTS=void 0,this.minEndPTS=void 0,this.stats=new nt,this.data=void 0,this.bitrateTest=!1,this.title=null,this.initSegment=null,this.endList=void 0,this.gap=void 0,this.urlId=0,this.type=t}get decryptdata(){let{levelkeys:t}=this;if(!t&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkeys&&!this.levelkeys.NONE){let e=this.levelkeys.identity;if(e)this._decryptdata=e.getDecryptData(this.sn);else{let i=Object.keys(this.levelkeys);if(i.length===1)return this._decryptdata=this.levelkeys[i[0]].getDecryptData(this.sn)}}return this._decryptdata}get end(){return this.start+this.duration}get endProgramDateTime(){if(this.programDateTime===null)return null;if(!L(this.programDateTime))return null;let t=L(this.duration)?this.duration:0;return this.programDateTime+1000*t}get encrypted(){var t;if((t=this._decryptdata)!=null&&t.encrypted)return!0;if(this.levelkeys){let e=Object.keys(this.levelkeys),i=e.length;if(i>1||i===1&&this.levelkeys[e[0]].encrypted)return!0}return!1}setKeyFormat(t){if(this.levelkeys){let e=this.levelkeys[t];e&&!this._decryptdata&&(this._decryptdata=e.getDecryptData(this.sn))}}abortRequests(){var t,e;(t=this.loader)==null||t.abort(),(e=this.keyLoader)==null||e.abort()}setElementaryStreamInfo(t,e,i,r,s,a=!1){let{elementaryStreams:l}=this,c=l[t];c?(c.startPTS=Math.min(c.startPTS,e),c.endPTS=Math.max(c.endPTS,i),c.startDTS=Math.min(c.startDTS,r),c.endDTS=Math.max(c.endDTS,s)):l[t]={startPTS:e,endPTS:i,startDTS:r,endDTS:s,partial:a}}clearElementaryStreamInfo(){let{elementaryStreams:t}=this;t[ot]=null,t[St]=null,t[Pt]=null}}class rt extends $t{constructor(t,e,i,r,s){super(i),this.fragOffset=0,this.duration=0,this.gap=!1,this.independent=!1,this.relurl=void 0,this.fragment=void 0,this.index=void 0,this.stats=new nt,this.duration=t.decimalFloatingPoint("DURATION"),this.gap=t.bool("GAP"),this.independent=t.bool("INDEPENDENT"),this.relurl=t.enumeratedString("URI"),this.fragment=e,this.index=r;let a=t.enumeratedString("BYTERANGE");a&&this.setByteRange(a,s),s&&(this.fragOffset=s.fragOffset+s.duration)}get start(){return this.fragment.start+this.fragOffset}get end(){return this.start+this.duration}get loaded(){let{elementaryStreams:t}=this;return!!(t.audio||t.video||t.audiovideo)}}class ut{constructor(t){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.live=!0,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.availabilityDelay=void 0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=t}reloaded(t){if(!t)return this.advanced=!0,void(this.updated=!0);let e=this.lastPartSn-t.lastPartSn,i=this.lastPartIndex-t.lastPartIndex;this.updated=this.endSN!==t.endSN||!!i||!!e||!this.live,this.advanced=this.endSN>t.endSN||e>0||e===0&&i>0,this.updated||this.advanced?this.misses=Math.floor(0.6*t.misses):this.misses=t.misses+1,this.availabilityDelay=t.availabilityDelay}get hasProgramDateTime(){return!!this.fragments.length&&L(this.fragments[this.fragments.length-1].programDateTime)}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||10}get drift(){let t=this.driftEndTime-this.driftStartTime;if(t>0)return 1000*(this.driftEnd-this.driftStart)/t;return 1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){var t;return(t=this.fragments)!=null&&t.length?this.fragments[this.fragments.length-1].end:0}get age(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1000:0}get lastPartIndex(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].index:-1}get lastPartSn(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}}function bt(t){return Uint8Array.from(atob(t),(e)=>e.charCodeAt(0))}function Bt(t){let e=t.split(":"),i=null;if(e[0]==="data"&&e.length===2){let r=e[1].split(";"),s=r[r.length-1].split(",");if(s.length===2){let a=s[0]==="base64",l=s[1];a?(r.splice(-1,1),i=bt(l)):i=function(c){let u=Kt(c).subarray(0,16),h=new Uint8Array(16);return h.set(u,16-u.length),h}(l)}}return i}function Kt(t){return Uint8Array.from(unescape(encodeURIComponent(t)),(e)=>e.charCodeAt(0))}let ce=typeof self<"u"?self:void 0;var jt={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},V="org.w3.clearkey",et="com.apple.streamingkeydelivery",pt="com.microsoft.playready",gt="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";function Lt(t){switch(t){case et:return jt.FAIRPLAY;case pt:return jt.PLAYREADY;case gt:return jt.WIDEVINE;case V:return jt.CLEARKEY}}var ve="edef8ba979d64acea3c827dcd51d21ed";function ue(t){switch(t){case jt.FAIRPLAY:return et;case jt.PLAYREADY:return pt;case jt.WIDEVINE:return gt;case jt.CLEARKEY:return V}}function Je(t){let{drmSystems:e,widevineLicenseUrl:i}=t,r=e?[jt.FAIRPLAY,jt.WIDEVINE,jt.PLAYREADY,jt.CLEARKEY].filter((s)=>!!e[s]):[];return!r[jt.WIDEVINE]&&i&&r.push(jt.WIDEVINE),r}let xe=ce!=null&&(ke=ce.navigator)!=null&&ke.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;var ke;function ne(t,e,i){return Uint8Array.prototype.slice?t.slice(e,i):new Uint8Array(Array.prototype.slice.call(t,e,i))}let Ve=(t,e)=>e+10<=t.length&&t[e]===73&&t[e+1]===68&&t[e+2]===51&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128,Qe=(t,e)=>e+10<=t.length&&t[e]===51&&t[e+1]===68&&t[e+2]===73&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128,ui=(t,e)=>{let i=e,r=0;for(;Ve(t,e);)r+=10,r+=Ke(t,e+6),Qe(t,e+10)&&(r+=10),e+=r;if(r>0)return t.subarray(i,i+r)},Ke=(t,e)=>{let i=0;return i=(127&t[e])<<21,i|=(127&t[e+1])<<14,i|=(127&t[e+2])<<7,i|=127&t[e+3],i},Di=(t,e)=>Ve(t,e)&&Ke(t,e+6)+10<=t.length-e,We=(t)=>{let e=At(t);for(let i=0;i<e.length;i++){let r=e[i];if(xt(r))return Ii(r)}},xt=(t)=>t&&t.key==="PRIV"&&t.info==="com.apple.streaming.transportStreamTimestamp",Nt=(t)=>{let e=String.fromCharCode(t[0],t[1],t[2],t[3]),i=Ke(t,4);return{type:e,size:i,data:t.subarray(10,10+i)}},At=(t)=>{let e=0,i=[];for(;Ve(t,e);){let r=Ke(t,e+6);e+=10;let s=e+r;for(;e+8<s;){let a=Nt(t.subarray(e)),l=Xt(a);l&&i.push(l),e+=a.size+10}Qe(t,e)&&(e+=10)}return i},Xt=(t)=>t.type==="PRIV"?se(t):t.type[0]==="W"?or(t):di(t),se=(t)=>{if(t.size<2)return;let e=Fe(t.data,!0),i=new Uint8Array(t.data.subarray(e.length+1));return{key:t.type,info:e,data:i.buffer}},di=(t)=>{if(t.size<2)return;if(t.type==="TXXX"){let i=1,r=Fe(t.data.subarray(i),!0);i+=r.length+1;let s=Fe(t.data.subarray(i));return{key:t.type,info:r,data:s}}let e=Fe(t.data.subarray(1));return{key:t.type,data:e}},or=(t)=>{if(t.type==="WXXX"){if(t.size<2)return;let i=1,r=Fe(t.data.subarray(i),!0);i+=r.length+1;let s=Fe(t.data.subarray(i));return{key:t.type,info:r,data:s}}let e=Fe(t.data);return{key:t.type,data:e}},Ii=(t)=>{if(t.data.byteLength===8){let e=new Uint8Array(t.data),i=1&e[3],r=(e[4]<<23)+(e[5]<<15)+(e[6]<<7)+e[7];return r/=45,i&&(r+=47721858.84),Math.round(r)}},Fe=(t,e=!1)=>{let i=Ze();if(i){let h=i.decode(t);if(e){let m=h.indexOf("\x00");return m!==-1?h.substring(0,m):h}return h.replace(/\0/g,"")}let r=t.length,s,a,l,c="",u=0;for(;u<r;){if(s=t[u++],s===0&&e)return c;if(s!==0&&s!==3)switch(s>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:c+=String.fromCharCode(s);break;case 12:case 13:a=t[u++],c+=String.fromCharCode((31&s)<<6|63&a);break;case 14:a=t[u++],l=t[u++],c+=String.fromCharCode((15&s)<<12|(63&a)<<6|(63&l)<<0)}}return c},lr;function Ze(){if(!navigator.userAgent.includes("PlayStation 4"))return lr||self.TextDecoder===void 0||(lr=new self.TextDecoder("utf-8")),lr}let ni=function(t){let e="";for(let i=0;i<t.length;i++){let r=t[i].toString(16);r.length<2&&(r="0"+r),e+=r}return e},zr=Math.pow(2,32)-1,yi=[].push,oe={video:1,audio:2,id3:3,text:4};function ye(t){return String.fromCharCode.apply(null,t)}function Oi(t,e){let i=t[e]<<8|t[e+1];return i<0?65536+i:i}function Ft(t,e){let i=Ka(t,e);return i<0?4294967296+i:i}function Rn(t,e){let i=Ft(t,e);return i*=Math.pow(2,32),i+=Ft(t,e+4),i}function Ka(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function Ps(t,e,i){t[e]=i>>24,t[e+1]=i>>16&255,t[e+2]=i>>8&255,t[e+3]=255&i}function Wt(t,e){let i=[];if(!e.length)return i;let r=t.byteLength;for(let s=0;s<r;){let a=Ft(t,s),l=a>1?s+a:r;if(ye(t.subarray(s+4,s+8))===e[0])if(e.length===1)i.push(t.subarray(s+8,l));else{let c=Wt(t.subarray(s+8,l),e.slice(1));c.length&&yi.apply(i,c)}s=l}return i}function Wa(t){let e=[],i=t[0],r=8,s=Ft(t,r);r+=4;let a=0,l=0;i===0?(a=Ft(t,r),l=Ft(t,r+4),r+=8):(a=Rn(t,r),l=Rn(t,r+8),r+=16),r+=2;let c=t.length+l,u=Oi(t,r);r+=2;for(let h=0;h<u;h++){let m=r,y=Ft(t,m);m+=4;let S=2147483647&y;if((2147483648&y)>>>31===1)return D.warn("SIDX has hierarchical references (not supported)"),null;let _=Ft(t,m);m+=4,e.push({referenceSize:S,subsegmentDuration:_,info:{duration:_/s,start:c,end:c+S-1}}),c+=S,m+=4,r=m}return{earliestPresentationTime:a,timescale:s,version:i,referencesCount:u,references:e}}function xs(t){let e=[],i=Wt(t,["moov","trak"]);for(let r=0;r<i.length;r++){let s=i[r],a=Wt(s,["tkhd"])[0];if(a){let l=a[0],c=Ft(a,l===0?12:20),u=Wt(s,["mdia","mdhd"])[0];if(u){l=u[0];let h=Ft(u,l===0?12:20),m=Wt(s,["mdia","hdlr"])[0];if(m){let y=ye(m.subarray(8,12)),S={soun:ot,vide:St}[y];if(S){let _=Il(Wt(s,["mdia","minf","stbl","stsd"])[0]);e[c]={timescale:h,type:S},e[S]=E({timescale:h,id:c},_)}}}}}return Wt(t,["moov","mvex","trex"]).forEach((r)=>{let s=Ft(r,4),a=e[s];a&&(a.default={duration:Ft(r,12),flags:Ft(r,20)})}),e}function Il(t){let e=t.subarray(8),i=e.subarray(86),r=ye(e.subarray(4,8)),s=r,a=r==="enca"||r==="encv";if(a){let l=Wt(e,[r])[0];Wt(l.subarray(r==="enca"?28:78),["sinf"]).forEach((c)=>{let u=Wt(c,["schm"])[0];if(u){let h=ye(u.subarray(4,8));if(h==="cbcs"||h==="cenc"){let m=Wt(c,["frma"])[0];m&&(s=ye(m))}}})}switch(s){case"avc1":case"avc2":case"avc3":case"avc4":{let l=Wt(i,["avcC"])[0];s+="."+qr(l[1])+qr(l[2])+qr(l[3]);break}case"mp4a":{let l=Wt(e,[r])[0],c=Wt(l.subarray(28),["esds"])[0];if(c&&c.length>12){let u=4;if(c[u++]!==3)break;u=Fs(c,u),u+=2;let h=c[u++];if(128&h&&(u+=2),64&h&&(u+=c[u++]),c[u++]!==4)break;u=Fs(c,u);let m=c[u++];if(m!==64)break;if(s+="."+qr(m),u+=12,c[u++]!==5)break;u=Fs(c,u);let y=c[u++],S=(248&y)>>3;S===31&&(S+=1+((7&y)<<3)+((224&c[u])>>5)),s+="."+S}break}case"hvc1":case"hev1":{let l=Wt(i,["hvcC"])[0],c=l[1],u=["","A","B","C"][c>>6],h=31&c,m=Ft(l,2),y=(32&c)>>5?"H":"L",S=l[12],_=l.subarray(6,12);s+="."+u+h,s+="."+m.toString(16).toUpperCase(),s+="."+y+S;let w="";for(let I=_.length;I--;){let C=_[I];if(C||w)w="."+C.toString(16).toUpperCase()+w}s+=w;break}case"dvh1":case"dvhe":{let l=Wt(i,["dvcC"])[0],c=l[2]>>1&127,u=l[2]<<5&32|l[3]>>3&31;s+="."+hi(c)+"."+hi(u);break}case"vp09":{let l=Wt(i,["vpcC"])[0],c=l[4],u=l[5],h=l[6]>>4&15;s+="."+hi(c)+"."+hi(u)+"."+hi(h);break}case"av01":{let l=Wt(i,["av1C"])[0],c=l[1]>>>5,u=31&l[1],h=l[2]>>>7?"H":"M",m=(64&l[2])>>6,y=(32&l[2])>>5,S=c===2&&m?y?12:10:m?10:8,_=(16&l[2])>>4,w=(8&l[2])>>3,I=(4&l[2])>>2,C=3&l[2];s+="."+c+"."+hi(u)+h+"."+hi(S)+"."+_+"."+w+I+C+"."+hi(1)+"."+hi(1)+"."+hi(1)+".0";break}}return{codec:s,encrypted:a}}function Fs(t,e){let i=e+5;for(;128&t[e++]&&e<i;);return e}function qr(t){return("0"+t.toString(16).toUpperCase()).slice(-2)}function hi(t){return(t<10?"0":"")+t}function Us(t){let e=Wt(t,["schm"])[0];if(e){let i=ye(e.subarray(4,8));if(i==="cbcs"||i==="cenc")return Wt(t,["schi","tenc"])[0]}return D.error("[eme] missing 'schm' box"),null}function Mi(t){let e=Ft(t,0),i=8;1&e&&(i+=4),4&e&&(i+=4);let r=0,s=Ft(t,4);for(let a=0;a<s;a++){if(256&e)r+=Ft(t,i),i+=4;512&e&&(i+=4),1024&e&&(i+=4),2048&e&&(i+=4)}return r}function si(t,e){let i=new Uint8Array(t.length+e.length);return i.set(t),i.set(e,t.length),i}function Ya(t,e){let i=[],r=e.samples,s=e.timescale,a=e.id,l=!1;return Wt(r,["moof"]).map((c)=>{let u=c.byteOffset-8;Wt(c,["traf"]).map((h)=>{let m=Wt(h,["tfdt"]).map((y)=>{let S=y[0],_=Ft(y,4);return S===1&&(_*=Math.pow(2,32),_+=Ft(y,8)),_/s})[0];return m!==void 0&&(t=m),Wt(h,["tfhd"]).map((y)=>{let S=Ft(y,4),_=16777215&Ft(y,0),w=0,I=(16&_)!=0,C=0,P=(32&_)!=0,F=8;S===a&&((1&_)!=0&&(F+=8),(2&_)!=0&&(F+=4),(8&_)!=0&&(w=Ft(y,F),F+=4),I&&(C=Ft(y,F),F+=4),P&&(F+=4),e.type==="video"&&(l=function(W){if(!W)return!1;let z=W.indexOf("."),lt=z<0?W:W.substring(0,z);return lt==="hvc1"||lt==="hev1"||lt==="dvh1"||lt==="dvhe"}(e.codec)),Wt(h,["trun"]).map((W)=>{let z=W[0],lt=16777215&Ft(W,0),it=(1&lt)!=0,ft=0,mt=(4&lt)!=0,Q=(256&lt)!=0,X=0,kt=(512&lt)!=0,ht=0,wt=(1024&lt)!=0,It=(2048&lt)!=0,Mt=0,at=Ft(W,4),vt=8;it&&(ft=Ft(W,vt),vt+=4),mt&&(vt+=4);let Dt=ft+u;for(let Ot=0;Ot<at;Ot++){if(Q?(X=Ft(W,vt),vt+=4):X=w,kt?(ht=Ft(W,vt),vt+=4):ht=C,wt&&(vt+=4),It&&(Mt=z===0?Ft(W,vt):Ka(W,vt),vt+=4),e.type===St){let Gt=0;for(;Gt<ht;){let le=Ft(r,Dt);if(Dt+=4,wr(l,r[Dt]))ja(r.subarray(Dt,Dt+le),l?2:1,t+Mt/s,i);Dt+=le,Gt+=le+4}}t+=X/s}}))})})}),i}function wr(t,e){if(t){let i=e>>1&63;return i===39||i===40}return(31&e)===6}function ja(t,e,i,r){let s=kn(t),a=0;a+=e;let l=0,c=0,u=0;for(;a<s.length;){l=0;do{if(a>=s.length)break;u=s[a++],l+=u}while(u===255);c=0;do{if(a>=s.length)break;u=s[a++],c+=u}while(u===255);let h=s.length-a,m=a;if(c<h)a+=c;else if(c>h){D.error(`Malformed SEI payload. ${c} is too small, only ${h} bytes left to parse.`);break}if(l===4){if(s[m++]===181){let y=Oi(s,m);if(m+=2,y===49){let S=Ft(s,m);if(m+=4,S===1195456820){let _=s[m++];if(_===3){let w=s[m++],I=31&w,C=64&w,P=C?2+3*I:0,F=new Uint8Array(P);if(C){F[0]=w;for(let W=1;W<P;W++)F[W]=s[m++]}r.push({type:_,payloadType:l,pts:i,bytes:F})}}}}}else if(l===5&&c>16){let y=[];for(let w=0;w<16;w++){let I=s[m++].toString(16);y.push(I.length==1?"0"+I:I),w!==3&&w!==5&&w!==7&&w!==9||y.push("-")}let S=c-16,_=new Uint8Array(S);for(let w=0;w<S;w++)_[w]=s[m++];r.push({payloadType:l,pts:i,uuid:y.join(""),userData:Fe(_),userDataBytes:_})}}}function kn(t){let e=t.byteLength,i=[],r=1;for(;r<e-2;)t[r]===0&&t[r+1]===0&&t[r+2]===3?(i.push(r+2),r+=2):r++;if(i.length===0)return t;let s=e-i.length,a=new Uint8Array(s),l=0;for(r=0;r<s;l++,r++)l===i[0]&&(l++,i.shift()),a[r]=t[l];return a}function za(t,e,i){if(t.byteLength!==16)throw RangeError("Invalid system id");let r,s,a;if(e){r=1,s=new Uint8Array(16*e.length);for(let c=0;c<e.length;c++){let u=e[c];if(u.byteLength!==16)throw RangeError("Invalid key");s.set(u,16*c)}}else r=0,s=new Uint8Array;r>0?(a=new Uint8Array(4),e.length>0&&new DataView(a.buffer).setUint32(0,e.length,!1)):a=new Uint8Array;let l=new Uint8Array(4);return i&&i.byteLength>0&&new DataView(l.buffer).setUint32(0,i.byteLength,!1),function(c,...u){let h=u.length,m=8,y=h;for(;y--;)m+=u[y].byteLength;let S=new Uint8Array(m);for(S[0]=m>>24&255,S[1]=m>>16&255,S[2]=m>>8&255,S[3]=255&m,S.set(c,4),y=0,m=8;y<h;y++)S.set(u[y],m),m+=u[y].byteLength;return S}([112,115,115,104],new Uint8Array([r,0,0,0]),t,a,s,l,i||new Uint8Array)}let ti={};class fi{static clearKeyUriToKeyIdMap(){ti={}}constructor(t,e,i,r=[1],s=null){this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=t,this.uri=e,this.keyFormat=i,this.keyFormatVersions=r,this.iv=s,this.encrypted=!!t&&t!=="NONE",this.isCommonEncryption=this.encrypted&&t!=="AES-128"}isSupported(){if(this.method){if(this.method==="AES-128"||this.method==="NONE")return!0;if(this.keyFormat==="identity")return this.method==="SAMPLE-AES";switch(this.keyFormat){case et:case gt:case pt:case V:return["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)!==-1}}return!1}getDecryptData(t){if(!this.encrypted||!this.uri)return null;if(this.method==="AES-128"&&this.uri&&!this.iv){typeof t!="number"&&(this.method!=="AES-128"||this.iv||D.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),t=0);let i=function(r){let s=new Uint8Array(16);for(let a=12;a<16;a++)s[a]=r>>8*(15-a)&255;return s}(t);return new fi(this.method,this.uri,"identity",this.keyFormatVersions,i)}let e=Bt(this.uri);if(e)switch(this.keyFormat){case gt:this.pssh=e,e.length>=22&&(this.keyId=e.subarray(e.length-22,e.length-6));break;case pt:{let i=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=za(i,null,e);let r=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),s=String.fromCharCode.apply(null,Array.from(r)),a=s.substring(s.indexOf("<"),s.length),l=new DOMParser().parseFromString(a,"text/xml").getElementsByTagName("KID")[0];if(l){let c=l.childNodes[0]?l.childNodes[0].nodeValue:l.getAttribute("VALUE");if(c){let u=bt(c).subarray(0,16);(function(h){let m=function(y,S,_){let w=y[S];y[S]=y[_],y[_]=w};m(h,0,3),m(h,1,2),m(h,4,5),m(h,6,7)})(u),this.keyId=u}}break}default:{let i=e.subarray(0,16);if(i.length!==16){let r=new Uint8Array(16);r.set(i,16-i.length),i=r}this.keyId=i;break}}if(!this.keyId||this.keyId.byteLength!==16){let i=ti[this.uri];if(!i){let r=Object.keys(ti).length%Number.MAX_SAFE_INTEGER;i=new Uint8Array(16),new DataView(i.buffer,12,4).setUint32(0,r),ti[this.uri]=i}this.keyId=i}return this}}let Xr=/\{\$([a-zA-Z0-9-_]+)\}/g;function Ni(t){return Xr.test(t)}function Ye(t,e,i){if(t.variableList!==null||t.hasVariableRefs)for(let r=i.length;r--;){let s=i[r],a=e[s];a&&(e[s]=Bs(t,a))}}function Bs(t,e){if(t.variableList!==null||t.hasVariableRefs){let i=t.variableList;return e.replace(Xr,(r)=>{let s=r.substring(2,r.length-1),a=i==null?void 0:i[s];return a===void 0?(t.playlistParsingError||(t.playlistParsingError=Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${s}"`)),r):a})}return e}function qa(t,e,i){let r,s,a=t.variableList;if(a||(t.variableList=a={}),"QUERYPARAM"in e){r=e.QUERYPARAM;try{let l=new self.URL(i).searchParams;if(!l.has(r))throw Error(`"${r}" does not match any query parameter in URI: "${i}"`);s=l.get(r)}catch(l){t.playlistParsingError||(t.playlistParsingError=Error("EXT-X-DEFINE QUERYPARAM: "+l.message))}}else r=e.NAME,s=e.VALUE;r in a?t.playlistParsingError||(t.playlistParsingError=Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${r}"`)):a[r]=s||""}function zi(t,e,i){let r=e.IMPORT;if(i&&r in i){let s=t.variableList;s||(t.variableList=s={}),s[r]=i[r]}else t.playlistParsingError||(t.playlistParsingError=Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${r}"`))}function Pi(t=!0){if(typeof self>"u")return;return(t||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}let Cn={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,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 Dn(t,e,i=!0){return!t.split(",").some((r)=>!mi(r,e,i))}function mi(t,e,i=!0){var r;let s=Pi(i);return(r=s==null?void 0:s.isTypeSupported(Rr(t,e)))!=null&&r}function Rr(t,e){return`${e}/mp4;codecs="${t}"`}function Ee(t){if(t){let e=t.substring(0,4);return Cn.video[e]}return 2}function Jr(t){return t.split(",").reduce((e,i)=>{let r=Cn.video[i];return r?(2*r+e)/(e?3:2):(Cn.audio[i]+e)/(e?2:1)},0)}let cr={},Xa=/flac|opus/i;function Qr(t,e=!0){return t.replace(Xa,(i)=>function(r,s=!0){if(cr[r])return cr[r];let a={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"]}[r];for(let l=0;l<a.length;l++)if(mi(a[l],"audio",s))return cr[r]=a[l],a[l];return r}(i.toLowerCase(),e))}function Ja(t,e){return t&&t!=="mp4a"?t:e?e.split(",")[0]:e}let Qa=/#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,Za=/#EXT-X-MEDIA:(.*)/g,Ol=/^#EXT(?:INF|-X-TARGETDURATION):/m,$s=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[\S ]*)/.source,/#EXT-X-BYTERANGE:*(.+)/.source,/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/#.*/.source].join("|"),"g"),to=new RegExp([/#(EXTM3U)/.source,/#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|"));class gi{static findGroup(t,e){for(let i=0;i<t.length;i++){let r=t[i];if(r.id===e)return r}}static resolve(t,e){return d.buildAbsoluteURL(e,t,{alwaysNormalize:!0})}static isMediaPlaylist(t){return Ol.test(t)}static parseMasterPlaylist(t,e){let i={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:Ni(t)},r=[],s;for(Qa.lastIndex=0;(s=Qa.exec(t))!=null;)if(s[1]){var a;let c=new Y(s[1]);Ye(i,c,["CODECS","SUPPLEMENTAL-CODECS","ALLOWED-CPC","PATHWAY-ID","STABLE-VARIANT-ID","AUDIO","VIDEO","SUBTITLES","CLOSED-CAPTIONS","NAME"]);let u=Bs(i,s[2]),h={attrs:c,bitrate:c.decimalInteger("BANDWIDTH")||c.decimalInteger("AVERAGE-BANDWIDTH"),name:c.NAME,url:gi.resolve(u,e)},m=c.decimalResolution("RESOLUTION");m&&(h.width=m.width,h.height=m.height),Si(c.CODECS,h),(a=h.unknownCodecs)!=null&&a.length||r.push(h),i.levels.push(h)}else if(s[3]){let c=s[3],u=s[4];switch(c){case"SESSION-DATA":{let h=new Y(u);Ye(i,h,["DATA-ID","LANGUAGE","VALUE","URI"]);let m=h["DATA-ID"];m&&(i.sessionData===null&&(i.sessionData={}),i.sessionData[m]=h);break}case"SESSION-KEY":{let h=In(u,e,i);h.encrypted&&h.isSupported()?(i.sessionKeys===null&&(i.sessionKeys=[]),i.sessionKeys.push(h)):D.warn(`[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "${u}"`);break}case"DEFINE":{let h=new Y(u);Ye(i,h,["NAME","VALUE","QUERYPARAM"]),qa(i,h,e)}break;case"CONTENT-STEERING":{let h=new Y(u);Ye(i,h,["SERVER-URI","PATHWAY-ID"]),i.contentSteering={uri:gi.resolve(h["SERVER-URI"],e),pathwayId:h["PATHWAY-ID"]||"."};break}case"START":i.startTimeOffset=On(u)}}let l=r.length>0&&r.length<i.levels.length;return i.levels=l?r:i.levels,i.levels.length===0&&(i.playlistParsingError=Error("no levels found in manifest")),i}static parseMasterPlaylistMedia(t,e,i){let r,s={},a=i.levels,l={AUDIO:a.map((u)=>({id:u.attrs.AUDIO,audioCodec:u.audioCodec})),SUBTITLES:a.map((u)=>({id:u.attrs.SUBTITLES,textCodec:u.textCodec})),"CLOSED-CAPTIONS":[]},c=0;for(Za.lastIndex=0;(r=Za.exec(t))!==null;){let u=new Y(r[1]),h=u.TYPE;if(h){let m=l[h],y=s[h]||[];s[h]=y,Ye(i,u,["URI","GROUP-ID","LANGUAGE","ASSOC-LANGUAGE","STABLE-RENDITION-ID","NAME","INSTREAM-ID","CHARACTERISTICS","CHANNELS"]);let S=u.LANGUAGE,_=u["ASSOC-LANGUAGE"],w=u.CHANNELS,I=u.CHARACTERISTICS,C=u["INSTREAM-ID"],P={attrs:u,bitrate:0,id:c++,groupId:u["GROUP-ID"]||"",name:u.NAME||S||"",type:h,default:u.bool("DEFAULT"),autoselect:u.bool("AUTOSELECT"),forced:u.bool("FORCED"),lang:S,url:u.URI?gi.resolve(u.URI,e):""};if(_&&(P.assocLang=_),w&&(P.channels=w),I&&(P.characteristics=I),C&&(P.instreamId=C),m!=null&&m.length){let F=gi.findGroup(m,P.groupId)||m[0];eo(P,F,"audioCodec"),eo(P,F,"textCodec")}y.push(P)}}return s}static parseLevelPlaylist(t,e,i,r,s,a){let l=new ut(e),c=l.fragments,u,h,m,y=null,S=0,_=0,w=0,I=0,C=null,P=new zt(r,e),F=-1,W=!1,z=null;for($s.lastIndex=0,l.m3u8=t,l.hasVariableRefs=Ni(t);(u=$s.exec(t))!==null;){W&&(W=!1,P=new zt(r,e),P.start=w,P.sn=S,P.cc=I,P.level=i,y&&(P.initSegment=y,P.rawProgramDateTime=y.rawProgramDateTime,y.rawProgramDateTime=null,z&&(P.setByteRange(z),z=null)));let mt=u[1];if(mt){P.duration=parseFloat(mt);let Q=(" "+u[2]).slice(1);P.title=Q||null,P.tagList.push(Q?["INF",mt,Q]:["INF",mt])}else if(u[3]){if(L(P.duration)){P.start=w,m&&Gs(P,m,l),P.sn=S,P.level=i,P.cc=I,c.push(P);let Q=(" "+u[3]).slice(1);P.relurl=Bs(l,Q),Mn(P,C),C=P,w+=P.duration,S++,_=0,W=!0}}else if(u[4]){let Q=(" "+u[4]).slice(1);C?P.setByteRange(Q,C):P.setByteRange(Q)}else if(u[5])P.rawProgramDateTime=(" "+u[5]).slice(1),P.tagList.push(["PROGRAM-DATE-TIME",P.rawProgramDateTime]),F===-1&&(F=c.length);else{if(u=u[0].match(to),!u){D.warn("No matches on slow regex match for level playlist!");continue}for(h=1;h<u.length&&u[h]===void 0;h++);let Q=(" "+u[h]).slice(1),X=(" "+u[h+1]).slice(1),kt=u[h+2]?(" "+u[h+2]).slice(1):"";switch(Q){case"PLAYLIST-TYPE":l.type=X.toUpperCase();break;case"MEDIA-SEQUENCE":S=l.startSN=parseInt(X);break;case"SKIP":{let ht=new Y(X);Ye(l,ht,["RECENTLY-REMOVED-DATERANGES"]);let wt=ht.decimalInteger("SKIPPED-SEGMENTS");if(L(wt)){l.skippedSegments=wt;for(let Mt=wt;Mt--;)c.unshift(null);S+=wt}let It=ht.enumeratedString("RECENTLY-REMOVED-DATERANGES");It&&(l.recentlyRemovedDateranges=It.split("\t"));break}case"TARGETDURATION":l.targetduration=Math.max(parseInt(X),1);break;case"VERSION":l.version=parseInt(X);break;case"INDEPENDENT-SEGMENTS":case"EXTM3U":break;case"ENDLIST":l.live=!1;break;case"#":(X||kt)&&P.tagList.push(kt?[X,kt]:[X]);break;case"DISCONTINUITY":I++,P.tagList.push(["DIS"]);break;case"GAP":P.gap=!0,P.tagList.push([Q]);break;case"BITRATE":P.tagList.push([Q,X]);break;case"DATERANGE":{let ht=new Y(X);Ye(l,ht,["ID","CLASS","START-DATE","END-DATE","SCTE35-CMD","SCTE35-OUT","SCTE35-IN"]),Ye(l,ht,ht.clientAttrs);let wt=new ct(ht,l.dateRanges[ht.ID]);wt.isValid||l.skippedSegments?l.dateRanges[wt.id]=wt:D.warn(`Ignoring invalid DATERANGE tag: "${X}"`),P.tagList.push(["EXT-X-DATERANGE",X]);break}case"DEFINE":{let ht=new Y(X);Ye(l,ht,["NAME","VALUE","IMPORT","QUERYPARAM"]),"IMPORT"in ht?zi(l,ht,a):qa(l,ht,e)}break;case"DISCONTINUITY-SEQUENCE":I=parseInt(X);break;case"KEY":{let ht=In(X,e,l);if(ht.isSupported()){if(ht.method==="NONE"){m=void 0;break}m||(m={}),m[ht.keyFormat]&&(m=T({},m)),m[ht.keyFormat]=ht}else D.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${X}"`);break}case"START":l.startTimeOffset=On(X);break;case"MAP":{let ht=new Y(X);if(Ye(l,ht,["BYTERANGE","URI"]),P.duration){let wt=new zt(r,e);ai(wt,ht,i,m),y=wt,P.initSegment=y,y.rawProgramDateTime&&!P.rawProgramDateTime&&(P.rawProgramDateTime=y.rawProgramDateTime)}else{let wt=P.byteRangeEndOffset;if(wt){let It=P.byteRangeStartOffset;z=`${wt-It}@${It}`}else z=null;ai(P,ht,i,m),y=P,W=!0}break}case"SERVER-CONTROL":{let ht=new Y(X);l.canBlockReload=ht.bool("CAN-BLOCK-RELOAD"),l.canSkipUntil=ht.optionalFloat("CAN-SKIP-UNTIL",0),l.canSkipDateRanges=l.canSkipUntil>0&&ht.bool("CAN-SKIP-DATERANGES"),l.partHoldBack=ht.optionalFloat("PART-HOLD-BACK",0),l.holdBack=ht.optionalFloat("HOLD-BACK",0);break}case"PART-INF":{let ht=new Y(X);l.partTarget=ht.decimalFloatingPoint("PART-TARGET");break}case"PART":{let ht=l.partList;ht||(ht=l.partList=[]);let wt=_>0?ht[ht.length-1]:void 0,It=_++,Mt=new Y(X);Ye(l,Mt,["BYTERANGE","URI"]);let at=new rt(Mt,P,e,It,wt);ht.push(at),P.duration+=at.duration;break}case"PRELOAD-HINT":{let ht=new Y(X);Ye(l,ht,["URI"]),l.preloadHint=ht;break}case"RENDITION-REPORT":{let ht=new Y(X);Ye(l,ht,["URI"]),l.renditionReports=l.renditionReports||[],l.renditionReports.push(ht);break}default:D.warn("line parsed but not handled: "+u)}}}C&&!C.relurl?(c.pop(),w-=C.duration,l.partList&&(l.fragmentHint=C)):l.partList&&(Mn(P,C),P.cc=I,l.fragmentHint=P,m&&Gs(P,m,l));let lt=c.length,it=c[0],ft=c[lt-1];if(w+=l.skippedSegments*l.targetduration,w>0&&lt&&ft){l.averagetargetduration=w/lt;let mt=ft.sn;l.endSN=mt!=="initSegment"?mt:0,l.live||(ft.endList=!0),it&&(l.startCC=it.cc)}else l.endSN=0,l.startCC=0;return l.fragmentHint&&(w+=l.fragmentHint.duration),l.totalduration=w,l.endCC=I,F>0&&function(mt,Q){let X=mt[Q];for(let kt=Q;kt--;){let ht=mt[kt];if(!ht)return;ht.programDateTime=X.programDateTime-1000*ht.duration,X=ht}}(c,F),l}}function In(t,e,i){var r,s;let a=new Y(t);Ye(i,a,["KEYFORMAT","KEYFORMATVERSIONS","URI","IV","URI"]);let l=(r=a.METHOD)!=null?r:"",c=a.URI,u=a.hexadecimalInteger("IV"),h=a.KEYFORMATVERSIONS,m=(s=a.KEYFORMAT)!=null?s:"identity";c&&a.IV&&!u&&D.error("Invalid IV: "+a.IV);let y=c?gi.resolve(c,e):"",S=(h||"1").split("/").map(Number).filter(Number.isFinite);return new fi(l,y,m,S,u)}function On(t){let e=new Y(t).decimalFloatingPoint("TIME-OFFSET");return L(e)?e:null}function Si(t,e){let i=(t||"").split(/[ ,]+/).filter((r)=>r);["video","audio","text"].forEach((r)=>{let s=i.filter((a)=>function(l,c){let u=Cn[c];return!!u&&!!u[l.slice(0,4)]}(a,r));s.length&&(e[r+"Codec"]=s.join(","),i=i.filter((a)=>s.indexOf(a)===-1))}),e.unknownCodecs=i}function eo(t,e,i){let r=e[i];r&&(t[i]=r)}function Mn(t,e){t.rawProgramDateTime?t.programDateTime=Date.parse(t.rawProgramDateTime):e!=null&&e.programDateTime&&(t.programDateTime=e.endProgramDateTime),L(t.programDateTime)||(t.programDateTime=null,t.rawProgramDateTime=null)}function ai(t,e,i,r){t.relurl=e.URI,e.BYTERANGE&&t.setByteRange(e.BYTERANGE),t.level=i,t.sn="initSegment",r&&(t.levelkeys=r),t.initSegment=null}function Gs(t,e,i){t.levelkeys=e;let{encryptedFragments:r}=i;r.length&&r[r.length-1].levelkeys===e||!Object.keys(e).some((s)=>e[s].isCommonEncryption)||r.push(t)}var qi="manifest",xi="level",ei="audioTrack",pi="subtitleTrack",ie="main",Ue="audio",bi="subtitle";function Hs(t){let{type:e}=t;switch(e){case ei:return Ue;case pi:return bi;default:return ie}}function Nn(t,e){let i=t.url;return i!==void 0&&i.indexOf("data:")!==0||(i=e.url),i}class io{constructor(t){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.hls=t,this.registerListeners()}startLoad(t){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){let{hls:t}=this;t.on(b.MANIFEST_LOADING,this.onManifestLoading,this),t.on(b.LEVEL_LOADING,this.onLevelLoading,this),t.on(b.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.on(b.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}unregisterListeners(){let{hls:t}=this;t.off(b.MANIFEST_LOADING,this.onManifestLoading,this),t.off(b.LEVEL_LOADING,this.onLevelLoading,this),t.off(b.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.off(b.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}createInternalLoader(t){let e=this.hls.config,i=e.pLoader,r=e.loader,s=new(i||r)(e);return this.loaders[t.type]=s,s}getInternalLoader(t){return this.loaders[t.type]}resetInternalLoader(t){this.loaders[t]&&delete this.loaders[t]}destroyInternalLoaders(){for(let t in this.loaders){let e=this.loaders[t];e&&e.destroy(),this.resetInternalLoader(t)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(t,e){let{url:i}=e;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:qi,url:i,deliveryDirectives:null})}onLevelLoading(t,e){let{id:i,level:r,pathwayId:s,url:a,deliveryDirectives:l}=e;this.load({id:i,level:r,pathwayId:s,responseType:"text",type:xi,url:a,deliveryDirectives:l})}onAudioTrackLoading(t,e){let{id:i,groupId:r,url:s,deliveryDirectives:a}=e;this.load({id:i,groupId:r,level:null,responseType:"text",type:ei,url:s,deliveryDirectives:a})}onSubtitleTrackLoading(t,e){let{id:i,groupId:r,url:s,deliveryDirectives:a}=e;this.load({id:i,groupId:r,level:null,responseType:"text",type:pi,url:s,deliveryDirectives:a})}load(t){var e;let i=this.hls.config,r,s=this.getInternalLoader(t);if(s){let u=s.context;if(u&&u.url===t.url&&u.level===t.level)return void D.trace("[playlist-loader]: playlist request ongoing");D.log("[playlist-loader]: aborting previous loader for type: "+t.type),s.abort()}if(r=t.type===qi?i.manifestLoadPolicy.default:T({},i.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),s=this.createInternalLoader(t),L((e=t.deliveryDirectives)==null?void 0:e.part)){let u;if(t.type===xi&&t.level!==null?u=this.hls.levels[t.level].details:t.type===ei&&t.id!==null?u=this.hls.audioTracks[t.id].details:t.type===pi&&t.id!==null&&(u=this.hls.subtitleTracks[t.id].details),u){let{partTarget:h,targetduration:m}=u;if(h&&m){let y=1000*Math.max(3*h,0.8*m);r=T({},r,{maxTimeToFirstByteMs:Math.min(y,r.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(y,r.maxTimeToFirstByteMs)})}}}let a=r.errorRetry||r.timeoutRetry||{},l={loadPolicy:r,timeout:r.maxLoadTimeMs,maxRetry:a.maxNumRetry||0,retryDelay:a.retryDelayMs||0,maxRetryDelay:a.maxRetryDelayMs||0},c={onSuccess:(u,h,m,y)=>{let S=this.getInternalLoader(m);this.resetInternalLoader(m.type);let _=u.data;_.indexOf("#EXTM3U")===0?(h.parsing.start=performance.now(),gi.isMediaPlaylist(_)?this.handleTrackOrLevelPlaylist(u,h,m,y||null,S):this.handleMasterPlaylist(u,h,m,y)):this.handleManifestParsingError(u,m,Error("no EXTM3U delimiter"),y||null,h)},onError:(u,h,m,y)=>{this.handleNetworkError(h,m,!1,u,y)},onTimeout:(u,h,m)=>{this.handleNetworkError(h,m,!0,void 0,u)}};s.load(t,l,c)}handleMasterPlaylist(t,e,i,r){let s=this.hls,a=t.data,l=Nn(t,i),c=gi.parseMasterPlaylist(a,l);if(c.playlistParsingError)return void this.handleManifestParsingError(t,i,c.playlistParsingError,r,e);let{contentSteering:u,levels:h,sessionData:m,sessionKeys:y,startTimeOffset:S,variableList:_}=c;this.variableList=_;let{AUDIO:w=[],SUBTITLES:I,"CLOSED-CAPTIONS":C}=gi.parseMasterPlaylistMedia(a,l,c);if(w.length)w.some((P)=>!P.url)||!h[0].audioCodec||h[0].attrs.AUDIO||(D.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),w.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new Y({}),bitrate:0,url:""}));s.trigger(b.MANIFEST_LOADED,{levels:h,audioTracks:w,subtitles:I,captions:C,contentSteering:u,url:l,stats:e,networkDetails:r,sessionData:m,sessionKeys:y,startTimeOffset:S,variableList:_})}handleTrackOrLevelPlaylist(t,e,i,r,s){let a=this.hls,{id:l,level:c,type:u}=i,h=Nn(t,i),m=L(c)?c:L(l)?l:0,y=Hs(i),S=gi.parseLevelPlaylist(t.data,h,m,y,0,this.variableList);if(u===qi){let _={attrs:new Y({}),bitrate:0,details:S,name:"",url:h};a.trigger(b.MANIFEST_LOADED,{levels:[_],audioTracks:[],url:h,stats:e,networkDetails:r,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}e.parsing.end=performance.now(),i.levelDetails=S,this.handlePlaylistLoaded(S,t,e,i,r,s)}handleManifestParsingError(t,e,i,r,s){this.hls.trigger(b.ERROR,{type:H.NETWORK_ERROR,details:N.MANIFEST_PARSING_ERROR,fatal:e.type===qi,url:t.url,err:i,error:i,reason:i.message,response:t,context:e,networkDetails:r,stats:s})}handleNetworkError(t,e,i=!1,r,s){let a=`A network ${i?"timeout":"error"+(r?" (status "+r.code+")":"")} occurred while loading ${t.type}`;t.type===xi?a+=`: ${t.level} id: ${t.id}`:t.type!==ei&&t.type!==pi||(a+=` id: ${t.id} group-id: "${t.groupId}"`);let l=Error(a);D.warn("[playlist-loader]: "+a);let c=N.UNKNOWN,u=!1,h=this.getInternalLoader(t);switch(t.type){case qi:c=i?N.MANIFEST_LOAD_TIMEOUT:N.MANIFEST_LOAD_ERROR,u=!0;break;case xi:c=i?N.LEVEL_LOAD_TIMEOUT:N.LEVEL_LOAD_ERROR,u=!1;break;case ei:c=i?N.AUDIO_TRACK_LOAD_TIMEOUT:N.AUDIO_TRACK_LOAD_ERROR,u=!1;break;case pi:c=i?N.SUBTITLE_TRACK_LOAD_TIMEOUT:N.SUBTITLE_LOAD_ERROR,u=!1}h&&this.resetInternalLoader(t.type);let m={type:H.NETWORK_ERROR,details:c,fatal:u,url:t.url,loader:h,context:t,error:l,networkDetails:e,stats:s};if(r){let y=(e==null?void 0:e.url)||t.url;m.response=E({url:y,data:void 0},r)}this.hls.trigger(b.ERROR,m)}handlePlaylistLoaded(t,e,i,r,s,a){let l=this.hls,{type:c,level:u,id:h,groupId:m,deliveryDirectives:y}=r,S=Nn(e,r),_=Hs(r),w=typeof r.level=="number"&&_===ie?u:void 0;if(!t.fragments.length){let C=Error("No Segments found in Playlist");return void l.trigger(b.ERROR,{type:H.NETWORK_ERROR,details:N.LEVEL_EMPTY_ERROR,fatal:!1,url:S,error:C,reason:C.message,response:e,context:r,level:w,parent:_,networkDetails:s,stats:i})}t.targetduration||(t.playlistParsingError=Error("Missing Target Duration"));let I=t.playlistParsingError;if(I)l.trigger(b.ERROR,{type:H.NETWORK_ERROR,details:N.LEVEL_PARSING_ERROR,fatal:!1,url:S,error:I,reason:I.message,response:e,context:r,level:w,parent:_,networkDetails:s,stats:i});else switch(t.live&&a&&(a.getCacheAge&&(t.ageHeader=a.getCacheAge()||0),a.getCacheAge&&!isNaN(t.ageHeader)||(t.ageHeader=0)),c){case qi:case xi:l.trigger(b.LEVEL_LOADED,{details:t,level:w||0,id:h||0,stats:i,networkDetails:s,deliveryDirectives:y});break;case ei:l.trigger(b.AUDIO_TRACK_LOADED,{details:t,id:h||0,groupId:m||"",stats:i,networkDetails:s,deliveryDirectives:y});break;case pi:l.trigger(b.SUBTITLE_TRACK_LOADED,{details:t,id:h||0,groupId:m||"",stats:i,networkDetails:s,deliveryDirectives:y})}}}function Vs(t,e){let i;try{i=new Event("addtrack")}catch(r){i=document.createEvent("Event"),i.initEvent("addtrack",!1,!1)}i.track=t,e.dispatchEvent(i)}function ro(t,e){let i=t.mode;if(i==="disabled"&&(t.mode="hidden"),t.cues&&!t.cues.getCueById(e.id))try{if(t.addCue(e),!t.cues.getCueById(e.id))throw Error("addCue is failed for: "+e)}catch(r){D.debug("[texttrack-utils]: "+r);try{let s=new self.TextTrackCue(e.startTime,e.endTime,e.text);s.id=e.id,t.addCue(s)}catch(s){D.debug("[texttrack-utils]: Legacy TextTrackCue fallback failed: "+s)}}i==="disabled"&&(t.mode=i)}function ur(t){let e=t.mode;if(e==="disabled"&&(t.mode="hidden"),t.cues)for(let i=t.cues.length;i--;)t.removeCue(t.cues[i]);e==="disabled"&&(t.mode=e)}function Pn(t,e,i,r){let s=t.mode;if(s==="disabled"&&(t.mode="hidden"),t.cues&&t.cues.length>0){let a=function(l,c,u){let h=[],m=function(y,S){if(S<y[0].startTime)return 0;let _=y.length-1;if(S>y[_].endTime)return-1;let w=0,I=_;for(;w<=I;){let C=Math.floor((I+w)/2);if(S<y[C].startTime)I=C-1;else{if(!(S>y[C].startTime&&w<_))return C;w=C+1}}return y[w].startTime-S<S-y[I].startTime?w:I}(l,c);if(m>-1)for(let y=m,S=l.length;y<S;y++){let _=l[y];if(_.startTime>=c&&_.endTime<=u)h.push(_);else if(_.startTime>u)return h}return h}(t.cues,e,i);for(let l=0;l<a.length;l++)r&&!r(a[l])||t.removeCue(a[l])}s==="disabled"&&(t.mode=s)}function xn(t){let e=[];for(let i=0;i<t.length;i++){let r=t[i];r.kind!=="subtitles"&&r.kind!=="captions"||!r.label||e.push(t[i])}return e}var Zr="org.id3",Ml="com.apple.quicktime.HLS",kr="https://aomedia.org/emsg/ID3";function Ks(){if(typeof self<"u")return self.VTTCue||self.TextTrackCue}function Ws(t,e,i,r,s){let a=new t(e,i,"");try{a.value=r,s&&(a.type=s)}catch(l){a=new t(e,i,JSON.stringify(s?E({type:s},r):r))}return a}let Fn=(()=>{let t=Ks();try{t&&new t(0,Number.POSITIVE_INFINITY,"")}catch(e){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})();function tn(t,e){return t.getTime()/1000-e}class no{constructor(t){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=t,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=null}_registerListeners(){let{hls:t}=this;t.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(b.MANIFEST_LOADING,this.onManifestLoading,this),t.on(b.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),t.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),t.on(b.LEVEL_UPDATED,this.onLevelUpdated,this)}_unregisterListeners(){let{hls:t}=this;t.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(b.MANIFEST_LOADING,this.onManifestLoading,this),t.off(b.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),t.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),t.off(b.LEVEL_UPDATED,this.onLevelUpdated,this)}onMediaAttached(t,e){this.media=e.media}onMediaDetaching(){this.id3Track&&(ur(this.id3Track),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={})}onManifestLoading(){this.dateRangeCuesAppended={}}createTrack(t){let e=this.getID3Track(t.textTracks);return e.mode="hidden",e}getID3Track(t){if(this.media){for(let e=0;e<t.length;e++){let i=t[e];if(i.kind==="metadata"&&i.label==="id3")return Vs(i,this.media),i}return this.media.addTextTrack("metadata","id3")}}onFragParsingMetadata(t,e){if(!this.media)return;let{hls:{config:{enableEmsgMetadataCues:i,enableID3MetadataCues:r}}}=this;if(!i&&!r)return;let{samples:s}=e;this.id3Track||(this.id3Track=this.createTrack(this.media));let a=Ks();if(a)for(let l=0;l<s.length;l++){let c=s[l].type;if(c===kr&&!i||!r)continue;let u=At(s[l].data);if(u){let h=s[l].pts,m=h+s[l].duration;m>Fn&&(m=Fn),m-h<=0&&(m=h+0.25);for(let y=0;y<u.length;y++){let S=u[y];if(!xt(S)){this.updateId3CueEnds(h,c);let _=Ws(a,h,m,S,c);_&&this.id3Track.addCue(_)}}}}}updateId3CueEnds(t,e){var i;let r=(i=this.id3Track)==null?void 0:i.cues;if(r)for(let s=r.length;s--;){let a=r[s];a.type===e&&a.startTime<t&&a.endTime===Fn&&(a.endTime=t)}}onBufferFlushing(t,{startOffset:e,endOffset:i,type:r}){let{id3Track:s,hls:a}=this;if(!a)return;let{config:{enableEmsgMetadataCues:l,enableID3MetadataCues:c}}=a;if(s&&(l||c)){let u;u=r==="audio"?(h)=>h.type===Zr&&c:r==="video"?(h)=>h.type===kr&&l:(h)=>h.type===Zr&&c||h.type===kr&&l,Pn(s,e,i,u)}}onLevelUpdated(t,{details:e}){if(!this.media||!e.hasProgramDateTime||!this.hls.config.enableDateRangeMetadataCues)return;let{dateRangeCuesAppended:i,id3Track:r}=this,{dateRanges:s}=e,a=Object.keys(s);if(r){let y=Object.keys(i).filter((S)=>!a.includes(S));for(let S=y.length;S--;){let _=y[S];Object.keys(i[_].cues).forEach((w)=>{r.removeCue(i[_].cues[w])}),delete i[_]}}let l=e.fragments[e.fragments.length-1];if(a.length===0||!L(l==null?void 0:l.programDateTime))return;this.id3Track||(this.id3Track=this.createTrack(this.media));let c=l.programDateTime/1000-l.start,u=Ks();for(let y=0;y<a.length;y++){let S=a[y],_=s[S],w=tn(_.startDate,c),I=i[S],C=(I==null?void 0:I.cues)||{},P=(I==null?void 0:I.durationKnown)||!1,F=Fn,W=_.endDate;if(W)F=tn(W,c),P=!0;else if(_.endOnNext&&!P){let lt=a.reduce((it,ft)=>{if(ft!==_.id){let mt=s[ft];if(mt.class===_.class&&mt.startDate>_.startDate&&(!it||_.startDate<it.startDate))return mt}return it},null);lt&&(F=tn(lt.startDate,c),P=!0)}let z=Object.keys(_.attr);for(let lt=0;lt<z.length;lt++){let it=z[lt];if((m=it)==="ID"||m==="CLASS"||m==="START-DATE"||m==="DURATION"||m==="END-DATE"||m==="END-ON-NEXT")continue;let ft=C[it];if(ft)P&&!I.durationKnown&&(ft.endTime=F);else if(u){let mt=_.attr[it];J(it)&&(h=mt,mt=Uint8Array.from(h.replace(/^0x/,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" ")).buffer);let Q=Ws(u,w,F,{key:it,data:mt},Ml);Q&&(Q.id=S,this.id3Track.addCue(Q),C[it]=Q)}}i[S]={cues:C,dateRange:_,durationKnown:P}}var h,m}}class Ys{constructor(t){this.hls=void 0,this.config=void 0,this.media=null,this.levelDetails=null,this.currentTime=0,this.stallCount=0,this._latency=null,this.timeupdateHandler=()=>this.timeupdate(),this.hls=t,this.config=t.config,this.registerListeners()}get latency(){return this._latency||0}get maxLatency(){let{config:t,levelDetails:e}=this;return t.liveMaxLatencyDuration!==void 0?t.liveMaxLatencyDuration:e?t.liveMaxLatencyDurationCount*e.targetduration:0}get targetLatency(){let{levelDetails:t}=this;if(t===null)return null;let{holdBack:e,partHoldBack:i,targetduration:r}=t,{liveSyncDuration:s,liveSyncDurationCount:a,lowLatencyMode:l}=this.config,c=this.hls.userConfig,u=l&&i||e;(c.liveSyncDuration||c.liveSyncDurationCount||u===0)&&(u=s!==void 0?s:a*r);let h=r;return u+Math.min(1*this.stallCount,h)}get liveSyncPosition(){let t=this.estimateLiveEdge(),e=this.targetLatency,i=this.levelDetails;if(t===null||e===null||i===null)return null;let r=i.edge,s=t-e-this.edgeStalled,a=r-i.totalduration,l=r-(this.config.lowLatencyMode&&i.partTarget||i.targetduration);return Math.min(Math.max(a,s),l)}get drift(){let{levelDetails:t}=this;return t===null?1:t.drift}get edgeStalled(){let{levelDetails:t}=this;if(t===null)return 0;let e=3*(this.config.lowLatencyMode&&t.partTarget||t.targetduration);return Math.max(t.age-e,0)}get forwardBufferLength(){let{media:t,levelDetails:e}=this;if(!t||!e)return 0;let i=t.buffered.length;return(i?t.buffered.end(i-1):e.edge)-this.currentTime}destroy(){this.unregisterListeners(),this.onMediaDetaching(),this.levelDetails=null,this.hls=this.timeupdateHandler=null}registerListeners(){this.hls.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.on(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(b.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.on(b.ERROR,this.onError,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.off(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(b.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.off(b.ERROR,this.onError,this)}onMediaAttached(t,e){this.media=e.media,this.media.addEventListener("timeupdate",this.timeupdateHandler)}onMediaDetaching(){this.media&&(this.media.removeEventListener("timeupdate",this.timeupdateHandler),this.media=null)}onManifestLoading(){this.levelDetails=null,this._latency=null,this.stallCount=0}onLevelUpdated(t,{details:e}){this.levelDetails=e,e.advanced&&this.timeupdate(),!e.live&&this.media&&this.media.removeEventListener("timeupdate",this.timeupdateHandler)}onError(t,e){var i;e.details===N.BUFFER_STALLED_ERROR&&(this.stallCount++,(i=this.levelDetails)!=null&&i.live&&D.warn("[playback-rate-controller]: Stall detected, adjusting target latency"))}timeupdate(){let{media:t,levelDetails:e}=this;if(!t||!e)return;this.currentTime=t.currentTime;let i=this.computeLatency();if(i===null)return;this._latency=i;let{lowLatencyMode:r,maxLiveSyncPlaybackRate:s}=this.config;if(!r||s===1||!e.live)return;let a=this.targetLatency;if(a===null)return;let l=i-a;if(l<Math.min(this.maxLatency,a+e.targetduration)&&l>0.05&&this.forwardBufferLength>1){let c=Math.min(2,Math.max(1,s)),u=Math.round(2/(1+Math.exp(-0.75*l-this.edgeStalled))*20)/20;t.playbackRate=Math.min(c,Math.max(1,u))}else t.playbackRate!==1&&t.playbackRate!==0&&(t.playbackRate=1)}estimateLiveEdge(){let{levelDetails:t}=this;return t===null?null:t.edge+t.age}computeLatency(){let t=this.estimateLiveEdge();return t===null?null:t-this.currentTime}}let js=["NONE","TYPE-0","TYPE-1",null],Un=["SDR","PQ","HLG"];var zs="",so="YES",Nl="v2";function qs(t){let{canSkipUntil:e,canSkipDateRanges:i,age:r}=t;return e&&r<e/2?i?Nl:so:zs}class Ti{constructor(t,e,i){this.msn=void 0,this.part=void 0,this.skip=void 0,this.msn=t,this.part=e,this.skip=i}addDirectives(t){let e=new self.URL(t);return this.msn!==void 0&&e.searchParams.set("_HLS_msn",this.msn.toString()),this.part!==void 0&&e.searchParams.set("_HLS_part",this.part.toString()),this.skip&&e.searchParams.set("_HLS_skip",this.skip),e.href}}class dr{constructor(t){this._attrs=void 0,this.audioCodec=void 0,this.bitrate=void 0,this.codecSet=void 0,this.url=void 0,this.frameRate=void 0,this.height=void 0,this.id=void 0,this.name=void 0,this.videoCodec=void 0,this.width=void 0,this.details=void 0,this.fragmentError=0,this.loadError=0,this.loaded=void 0,this.realBitrate=0,this.supportedPromise=void 0,this.supportedResult=void 0,this._avgBitrate=0,this._audioGroups=void 0,this._subtitleGroups=void 0,this._urlId=0,this.url=[t.url],this._attrs=[t.attrs],this.bitrate=t.bitrate,t.details&&(this.details=t.details),this.id=t.id||0,this.name=t.name,this.width=t.width||0,this.height=t.height||0,this.frameRate=t.attrs.optionalFloat("FRAME-RATE",0),this._avgBitrate=t.attrs.decimalInteger("AVERAGE-BANDWIDTH"),this.audioCodec=t.audioCodec,this.videoCodec=t.videoCodec,this.codecSet=[t.videoCodec,t.audioCodec].filter((e)=>!!e).map((e)=>e.substring(0,4)).join(","),this.addGroupId("audio",t.attrs.AUDIO),this.addGroupId("text",t.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(t){return ao(this._audioGroups,t)}hasSubtitleGroup(t){return ao(this._subtitleGroups,t)}get audioGroups(){return this._audioGroups}get subtitleGroups(){return this._subtitleGroups}addGroupId(t,e){if(e){if(t==="audio"){let i=this._audioGroups;i||(i=this._audioGroups=[]),i.indexOf(e)===-1&&i.push(e)}else if(t==="text"){let i=this._subtitleGroups;i||(i=this._subtitleGroups=[]),i.indexOf(e)===-1&&i.push(e)}}}get urlId(){return 0}set urlId(t){}get audioGroupIds(){return this.audioGroups?[this.audioGroupId]:void 0}get textGroupIds(){return this.subtitleGroups?[this.textGroupId]:void 0}get audioGroupId(){var t;return(t=this.audioGroups)==null?void 0:t[0]}get textGroupId(){var t;return(t=this.subtitleGroups)==null?void 0:t[0]}addFallback(){}}function ao(t,e){return!(!e||!t)&&t.indexOf(e)!==-1}function hr(t,e){let i=e.startPTS;if(L(i)){let r,s=0;e.sn>t.sn?(s=i-t.start,r=t):(s=t.start-i,r=e),r.duration!==s&&(r.duration=s)}else if(e.sn>t.sn)t.cc===e.cc&&t.minEndPTS?e.start=t.start+(t.minEndPTS-t.start):e.start=t.start+t.duration;else e.start=Math.max(t.start-e.duration,0)}function en(t,e,i,r,s,a){r-i<=0&&(D.warn("Fragment should have a positive duration",e),r=i+e.duration,a=s+e.duration);let l=i,c=r,u=e.startPTS,h=e.endPTS;if(L(u)){let I=Math.abs(u-i);L(e.deltaPTS)?e.deltaPTS=Math.max(I,e.deltaPTS):e.deltaPTS=I,l=Math.max(i,u),i=Math.min(i,u),s=Math.min(s,e.startDTS),c=Math.min(r,h),r=Math.max(r,h),a=Math.max(a,e.endDTS)}let m=i-e.start;e.start!==0&&(e.start=i),e.duration=r-e.start,e.startPTS=i,e.maxStartPTS=l,e.startDTS=s,e.endPTS=r,e.minEndPTS=c,e.endDTS=a;let y=e.sn;if(!t||y<t.startSN||y>t.endSN)return 0;let S,_=y-t.startSN,w=t.fragments;for(w[_]=e,S=_;S>0;S--)hr(w[S],w[S-1]);for(S=_;S<w.length-1;S++)hr(w[S],w[S+1]);return t.fragmentHint&&hr(w[w.length-1],t.fragmentHint),t.PTSKnown=t.alignedSliding=!0,m}function Bn(t,e){let i=null,r=t.fragments;for(let u=r.length-1;u>=0;u--){let h=r[u].initSegment;if(h){i=h;break}}t.fragmentHint&&delete t.fragmentHint.endPTS;let s,a=0;if(function(u,h,m){let y=h.skippedSegments,S=Math.max(u.startSN,h.startSN)-h.startSN,_=(u.fragmentHint?1:0)+(y?h.endSN:Math.min(u.endSN,h.endSN))-h.startSN,w=h.startSN-u.startSN,I=h.fragmentHint?h.fragments.concat(h.fragmentHint):h.fragments,C=u.fragmentHint?u.fragments.concat(u.fragmentHint):u.fragments;for(let P=S;P<=_;P++){let F=C[w+P],W=I[P];y&&!W&&P<y&&(W=h.fragments[P]=F),F&&W&&m(F,W)}}(t,e,(u,h)=>{u.relurl&&(a=u.cc-h.cc),L(u.startPTS)&&L(u.endPTS)&&(h.start=h.startPTS=u.startPTS,h.startDTS=u.startDTS,h.maxStartPTS=u.maxStartPTS,h.endPTS=u.endPTS,h.endDTS=u.endDTS,h.minEndPTS=u.minEndPTS,h.duration=u.endPTS-u.startPTS,h.duration&&(s=h),e.PTSKnown=e.alignedSliding=!0),h.elementaryStreams=u.elementaryStreams,h.loader=u.loader,h.stats=u.stats,u.initSegment&&(h.initSegment=u.initSegment,i=u.initSegment)}),i)(e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments).forEach((u)=>{var h;!u||u.initSegment&&u.initSegment.relurl!==((h=i)==null?void 0:h.relurl)||(u.initSegment=i)});if(e.skippedSegments)if(e.deltaUpdateFailed=e.fragments.some((u)=>!u),e.deltaUpdateFailed){D.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let u=e.skippedSegments;u--;)e.fragments.shift();e.startSN=e.fragments[0].sn,e.startCC=e.fragments[0].cc}else e.canSkipDateRanges&&(e.dateRanges=function(u,h,m){let y=T({},u);return m&&m.forEach((S)=>{delete y[S]}),Object.keys(h).forEach((S)=>{let _=new ct(h[S].attr,y[S]);_.isValid?y[S]=_:D.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${JSON.stringify(h[S].attr)}"`)}),y}(t.dateRanges,e.dateRanges,e.recentlyRemovedDateranges));let l=e.fragments;if(a){D.warn("discontinuity sliding from playlist, take drift into account");for(let u=0;u<l.length;u++)l[u].cc+=a}e.skippedSegments&&(e.startCC=e.fragments[0].cc),function(u,h,m){if(u&&h){let y=0;for(let S=0,_=u.length;S<=_;S++){let w=u[S],I=h[S+y];w&&I&&w.index===I.index&&w.fragment.sn===I.fragment.sn?m(w,I):y--}}}(t.partList,e.partList,(u,h)=>{h.elementaryStreams=u.elementaryStreams,h.stats=u.stats}),s?en(e,s,s.startPTS,s.endPTS,s.startDTS,s.endDTS):$n(t,e),l.length&&(e.totalduration=e.edge-l[0].start),e.driftStartTime=t.driftStartTime,e.driftStart=t.driftStart;let c=e.advancedDateTime;if(e.advanced&&c){let u=e.edge;e.driftStart||(e.driftStartTime=c,e.driftStart=u),e.driftEndTime=c,e.driftEnd=u}else e.driftEndTime=t.driftEndTime,e.driftEnd=t.driftEnd,e.advancedDateTime=t.advancedDateTime}function $n(t,e){let i=e.startSN+e.skippedSegments-t.startSN,r=t.fragments;i<0||i>=r.length||rn(e,r[i].start)}function rn(t,e){if(e){let i=t.fragments;for(let r=t.skippedSegments;r<i.length;r++)i[r].start+=e;t.fragmentHint&&(t.fragmentHint.start+=e)}}function oo(t,e,i){var r;return t!=null&&t.details?lo((r=t.details)==null?void 0:r.partList,e,i):null}function lo(t,e,i){if(t)for(let r=t.length;r--;){let s=t[r];if(s.index===i&&s.fragment.sn===e)return s}return null}function Xs(t){t.forEach((e,i)=>{let{details:r}=e;r!=null&&r.fragments&&r.fragments.forEach((s)=>{s.level=i})})}function Gn(t){switch(t.details){case N.FRAG_LOAD_TIMEOUT:case N.KEY_LOAD_TIMEOUT:case N.LEVEL_LOAD_TIMEOUT:case N.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function co(t,e){let i=Gn(e);return t.default[(i?"timeout":"error")+"Retry"]}function Js(t,e){let i=t.backoff==="linear"?1:Math.pow(2,e);return Math.min(i*t.retryDelayMs,t.maxRetryDelayMs)}function uo(t){return E(E({},t),{errorRetry:null,timeoutRetry:null})}function Cr(t,e,i,r){if(!t)return!1;let s=r==null?void 0:r.code,a=e<t.maxNumRetry&&(function(l){return l===0&&navigator.onLine===!1||!!l&&(l<400||l>499)}(s)||!!i);return t.shouldRetry?t.shouldRetry(t,e,i,r,a):a}let nn=function(t,e){let i=0,r=t.length-1,s=null,a=null;for(;i<=r;){s=(i+r)/2|0,a=t[s];let l=e(a);if(l>0)i=s+1;else{if(!(l<0))return a;r=s-1}}return null};function Dr(t,e,i=0,r=0){let s=null;if(t){s=e[t.sn-e[0].sn+1]||null;let l=t.endDTS-i;l>0&&l<0.0000015&&(i+=0.0000015)}else i===0&&e[0].start===0&&(s=e[0]);if(s&&(!t||t.level===s.level)&&fr(i,r,s)===0)return s;let a=nn(e,fr.bind(null,i,r));return!a||a===t&&s?s:a}function fr(t=0,e=0,i){if(i.start<=t&&i.start+i.duration>t)return 0;let r=Math.min(e,i.duration+(i.deltaPTS?i.deltaPTS:0));return i.start+i.duration-r<=t?1:i.start-r>t&&i.start?-1:0}function je(t,e,i){let r=1000*Math.min(e,i.duration+(i.deltaPTS?i.deltaPTS:0));return(i.endProgramDateTime||0)-r>t}var Qs=0,Fi=2,sn=3,De=5,mr=0,Zs=1,ta=2;class Ae{constructor(t,e){this.hls=void 0,this.timer=-1,this.requestScheduled=-1,this.canLoad=!1,this.log=void 0,this.warn=void 0,this.log=D.log.bind(D,e+":"),this.warn=D.warn.bind(D,e+":"),this.hls=t}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){this.timer!==-1&&(self.clearTimeout(this.timer),this.timer=-1)}startLoad(){this.canLoad=!0,this.requestScheduled=-1,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(t,e,i){let r=e==null?void 0:e.renditionReports;if(r){let s=-1;for(let a=0;a<r.length;a++){let l=r[a],c;try{c=new self.URL(l.URI,e.url).href}catch(u){D.warn("Could not construct new URL for Rendition Report: "+u),c=l.URI||""}if(c===t){s=a;break}c===t.substring(0,c.length)&&(s=a)}if(s!==-1){let a=r[s],l=parseInt(a["LAST-MSN"])||(e==null?void 0:e.lastPartSn),c=parseInt(a["LAST-PART"])||(e==null?void 0:e.lastPartIndex);if(this.hls.config.lowLatencyMode){let h=Math.min(e.age-e.partTarget,e.targetduration);c>=0&&h>e.partTarget&&(c+=1)}let u=i&&qs(i);return new Ti(l,c>=0?c:void 0,u)}}}loadPlaylist(t){this.requestScheduled===-1&&(this.requestScheduled=self.performance.now())}shouldLoadPlaylist(t){return this.canLoad&&!!t&&!!t.url&&(!t.details||t.details.live)}shouldReloadPlaylist(t){return this.timer===-1&&this.requestScheduled===-1&&this.shouldLoadPlaylist(t)}playlistLoaded(t,e,i){let{details:r,stats:s}=e,a=self.performance.now(),l=s.loading.first?Math.max(0,a-s.loading.first):0;if(r.advancedDateTime=Date.now()-l,r.live||i!=null&&i.live){if(r.reloaded(i),i&&this.log(`live playlist ${t} ${r.advanced?"REFRESHED "+r.lastPartSn+"-"+r.lastPartIndex:r.updated?"UPDATED":"MISSED"}`),i&&r.fragments.length>0&&Bn(i,r),!this.canLoad||!r.live)return;let c,u=void 0,h=void 0;if(r.canBlockReload&&r.endSN&&r.advanced){let w=this.hls.config.lowLatencyMode,I=r.lastPartSn,C=r.endSN,P=r.lastPartIndex,F=I===C,W=w?0:P;P!==-1?(u=F?C+1:I,h=F?W:P+1):u=C+1;let z=r.age,lt=z+r.ageHeader,it=Math.min(lt-r.partTarget,1.5*r.targetduration);if(it>0){if(i&&it>i.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${i.tuneInGoal} to: ${it} with playlist age: ${r.age}`),it=0;else{let ft=Math.floor(it/r.targetduration);if(u+=ft,h!==void 0)h+=Math.round(it%r.targetduration/r.partTarget);this.log(`CDN Tune-in age: ${r.ageHeader}s last advanced ${z.toFixed(2)}s goal: ${it} skip sn ${ft} to part ${h}`)}r.tuneInGoal=it}if(c=this.getDeliveryDirectives(r,e.deliveryDirectives,u,h),w||!F)return void this.loadPlaylist(c)}else(r.canBlockReload||r.canSkipUntil)&&(c=this.getDeliveryDirectives(r,e.deliveryDirectives,u,h));let m=this.hls.mainForwardBufferInfo,y=m?m.end-m.len:0,S=function(w,I=1/0){let C=1000*w.targetduration;if(w.updated){let P=w.fragments;if(P.length&&C*4>I){let W=1000*P[P.length-1].duration;W<C&&(C=W)}}else C/=2;return Math.round(C)}(r,1000*(r.edge-y));r.updated&&a>this.requestScheduled+S&&(this.requestScheduled=s.loading.start),u!==void 0&&r.canBlockReload?this.requestScheduled=s.loading.first+S-(1000*r.partTarget||1000):this.requestScheduled===-1||this.requestScheduled+S<a?this.requestScheduled=a:this.requestScheduled-a<=0&&(this.requestScheduled+=S);let _=this.requestScheduled-a;_=Math.max(0,_),this.log(`reload live playlist ${t} in ${Math.round(_)} ms`),this.timer=self.setTimeout(()=>this.loadPlaylist(c),_)}else this.clearTimer()}getDeliveryDirectives(t,e,i,r){let s=qs(t);return e!=null&&e.skip&&t.deltaUpdateFailed&&(i=e.msn,r=e.part,s=zs),new Ti(i,r,s)}checkRetry(t){let e=t.details,i=Gn(t),r=t.errorAction,{action:s,retryCount:a=0,retryConfig:l}=r||{},c=!!r&&!!l&&(s===De||!r.resolved&&s===Fi);if(c){var u;if(this.requestScheduled=-1,a>=l.maxNumRetry)return!1;if(i&&(u=t.context)!=null&&u.deliveryDirectives)this.warn(`Retrying playlist loading ${a+1}/${l.maxNumRetry} after "${e}" without delivery-directives`),this.loadPlaylist();else{let h=Js(l,a);this.timer=self.setTimeout(()=>this.loadPlaylist(),h),this.warn(`Retrying playlist loading ${a+1}/${l.maxNumRetry} after "${e}" in ${h}ms`)}t.levelRetry=!0,r.resolved=!0}return c}}class gr{constructor(t,e=0,i=0){this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=t,this.alpha_=t?Math.exp(Math.log(0.5)/t):0,this.estimate_=e,this.totalWeight_=i}sample(t,e){let i=Math.pow(this.alpha_,t);this.estimate_=e*(1-i)+i*this.estimate_,this.totalWeight_+=t}getTotalWeight(){return this.totalWeight_}getEstimate(){if(this.alpha_){let t=1-Math.pow(this.alpha_,this.totalWeight_);if(t)return this.estimate_/t}return this.estimate_}}class ea{constructor(t,e,i,r=100){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=i,this.minWeight_=0.001,this.minDelayMs_=50,this.slow_=new gr(t),this.fast_=new gr(e),this.defaultTTFB_=r,this.ttfb_=new gr(t)}update(t,e){let{slow_:i,fast_:r,ttfb_:s}=this;i.halfLife!==t&&(this.slow_=new gr(t,i.getEstimate(),i.getTotalWeight())),r.halfLife!==e&&(this.fast_=new gr(e,r.getEstimate(),r.getTotalWeight())),s.halfLife!==t&&(this.ttfb_=new gr(t,s.getEstimate(),s.getTotalWeight()))}sample(t,e){let i=(t=Math.max(t,this.minDelayMs_))/1000,r=8*e/i;this.fast_.sample(i,r),this.slow_.sample(i,r)}sampleTTFB(t){let e=t/1000,i=Math.sqrt(2)*Math.exp(-Math.pow(e,2)/2);this.ttfb_.sample(i,Math.max(t,5))}canEstimate(){return this.fast_.getTotalWeight()>=this.minWeight_}getEstimate(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}getEstimateTTFB(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}destroy(){}}let Hn={supported:!0,configurations:[],decodingInfoResults:[{supported:!0,powerEfficient:!0,smooth:!0}]},ia={};function Pl(t,e,i,r,s,a){let l=t.audioCodec?t.audioGroups:null,c=a==null?void 0:a.audioCodec,u=a==null?void 0:a.channels,h=u?parseInt(u):c?1/0:2,m=null;if(l!=null&&l.length)try{m=l.length===1&&l[0]?e.groups[l[0]].channels:l.reduce((y,S)=>{if(S){let _=e.groups[S];if(!_)throw Error(`Audio track group ${S} not found`);Object.keys(_.channels).forEach((w)=>{y[w]=(y[w]||0)+_.channels[w]})}return y},{2:0})}catch(y){return!0}return t.videoCodec!==void 0&&(t.width>1920&&t.height>1088||t.height>1920&&t.width>1088||t.frameRate>Math.max(r,30)||t.videoRange!=="SDR"&&t.videoRange!==i||t.bitrate>Math.max(s,8000000))||!!m&&L(h)&&Object.keys(m).some((y)=>parseInt(y)>h)}function Xi(t,e,i){let{videoCodec:r,audioCodec:s}=t;if(!r||!s||!i)return Promise.resolve(Hn);let a={width:t.width,height:t.height,bitrate:Math.ceil(Math.max(0.9*t.bitrate,t.averageBitrate)),framerate:t.frameRate||30},l=t.videoRange;l!=="SDR"&&(a.transferFunction=l.toLowerCase());let c=r.split(",").map((u)=>({type:"media-source",video:E(E({},a),{},{contentType:Rr(u,"video")})}));return s&&t.audioGroups&&t.audioGroups.forEach((u)=>{var h;u&&((h=e.groups[u])==null||h.tracks.forEach((m)=>{if(m.groupId===u){let y=m.channels||"",S=parseFloat(y);L(S)&&S>2&&c.push.apply(c,s.split(",").map((_)=>({type:"media-source",audio:{contentType:Rr(_,"audio"),channels:""+S}})))}}))}),Promise.all(c.map((u)=>{let h=function(m){let{audio:y,video:S}=m,_=S||y;if(_){let w=_.contentType.split('"')[1];if(S)return`r${S.height}x${S.width}f${Math.ceil(S.framerate)}${S.transferFunction||"sd"}_${w}_${Math.ceil(S.bitrate/1e5)}`;if(y)return`c${y.channels}${y.spatialRendering?"s":"n"}_${w}`}return""}(u);return ia[h]||(ia[h]=i.decodingInfo(u))})).then((u)=>({supported:!u.some((h)=>!h.supported),configurations:c,decodingInfoResults:u})).catch((u)=>({supported:!1,configurations:c,decodingInfoResults:[],error:u}))}function xl(t,e){let i=!1,r=[];return t&&(i=t!=="SDR",r=[t]),e&&(r=e.allowedVideoRanges||Un.slice(0),i=e.preferHDR!==void 0?e.preferHDR:function(){if(typeof matchMedia=="function"){let s=matchMedia("(dynamic-range: high)"),a=matchMedia("bad query");if(s.media!==a.media)return s.matches===!0}return!1}(),r=i?r.filter((s)=>s!=="SDR"):["SDR"]),{preferHDR:i,allowedVideoRanges:r}}function Be(t,e){D.log(`[abr] start candidates with "${t}" ignored because ${e}`)}function _i(t,e,i){if("attrs"in t){let r=e.indexOf(t);if(r!==-1)return r}for(let r=0;r<e.length;r++)if(Ir(t,e[r],i))return r;return-1}function Ir(t,e,i){let{groupId:r,name:s,lang:a,assocLang:l,characteristics:c,default:u}=t,h=t.forced;return(r===void 0||e.groupId===r)&&(s===void 0||e.name===s)&&(a===void 0||e.lang===a)&&(a===void 0||e.assocLang===l)&&(u===void 0||e.default===u)&&(h===void 0||e.forced===h)&&(c===void 0||function(m,y=""){let S=m.split(","),_=y.split(",");return S.length===_.length&&!S.some((w)=>_.indexOf(w)===-1)}(c,e.characteristics))&&(i===void 0||i(t,e))}function Or(t,e){let{audioCodec:i,channels:r}=t;return!(i!==void 0&&(e.audioCodec||"").substring(0,4)!==i.substring(0,4)||r!==void 0&&r!==(e.channels||"2"))}function ho(t,e,i){for(let r=e;r;r--)if(i(t[r]))return r;for(let r=e+1;r<t.length;r++)if(i(t[r]))return r;return-1}var ze="NOT_LOADED",an="APPENDING",pr="PARTIAL",de="OK";class ra{constructor(t){this.activePartLists=Object.create(null),this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=0.2,this.hls=void 0,this.hasGaps=!1,this.hls=t,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(b.BUFFER_APPENDED,this.onBufferAppended,this),t.on(b.FRAG_BUFFERED,this.onFragBuffered,this),t.on(b.FRAG_LOADED,this.onFragLoaded,this)}_unregisterListeners(){let{hls:t}=this;t.off(b.BUFFER_APPENDED,this.onBufferAppended,this),t.off(b.FRAG_BUFFERED,this.onFragBuffered,this),t.off(b.FRAG_LOADED,this.onFragLoaded,this)}destroy(){this._unregisterListeners(),this.fragments=this.activePartLists=this.endListFragments=this.timeRanges=null}getAppendedFrag(t,e){let i=this.activePartLists[e];if(i)for(let r=i.length;r--;){let s=i[r];if(!s)break;let a=s.end;if(s.start<=t&&a!==null&&t<=a)return s}return this.getBufferedFrag(t,e)}getBufferedFrag(t,e){let{fragments:i}=this,r=Object.keys(i);for(let s=r.length;s--;){let a=i[r[s]];if((a==null?void 0:a.body.type)===e&&a.buffered){let l=a.body;if(l.start<=t&&t<=l.end)return l}}return null}detectEvictedFragments(t,e,i,r){this.timeRanges&&(this.timeRanges[t]=e);let s=(r==null?void 0:r.fragment.sn)||-1;Object.keys(this.fragments).forEach((a)=>{let l=this.fragments[a];if(!l)return;if(s>=l.body.sn)return;if(!l.buffered&&!l.loaded)return void(l.body.type===i&&this.removeFragment(l.body));let c=l.range[t];c&&c.time.some((u)=>{let h=!this.isTimeBuffered(u.startPTS,u.endPTS,e);return h&&this.removeFragment(l.body),h})})}detectPartialFragments(t){let e=this.timeRanges,{frag:i,part:r}=t;if(!e||i.sn==="initSegment")return;let s=$e(i),a=this.fragments[s];if(!a||a.buffered&&i.gap)return;let l=!i.relurl;if(Object.keys(e).forEach((c)=>{let u=i.elementaryStreams[c];if(!u)return;let h=e[c],m=l||u.partial===!0;a.range[c]=this.getBufferedTimes(i,r,m,h)}),a.loaded=null,Object.keys(a.range).length)a.buffered=!0,(a.body.endList=i.endList||a.body.endList)&&(this.endListFragments[a.body.type]=a),Vn(a)||this.removeParts(i.sn-1,i.type);else this.removeFragment(a.body)}removeParts(t,e){let i=this.activePartLists[e];i&&(this.activePartLists[e]=i.filter((r)=>r.fragment.sn>=t))}fragBuffered(t,e){let i=$e(t),r=this.fragments[i];!r&&e&&(r=this.fragments[i]={body:t,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},t.gap&&(this.hasGaps=!0)),r&&(r.loaded=null,r.buffered=!0)}getBufferedTimes(t,e,i,r){let s={time:[],partial:i},a=t.start,l=t.end,c=t.minEndPTS||l,u=t.maxStartPTS||a;for(let h=0;h<r.length;h++){let m=r.start(h)-this.bufferPadding,y=r.end(h)+this.bufferPadding;if(u>=m&&c<=y){s.time.push({startPTS:Math.max(a,r.start(h)),endPTS:Math.min(l,r.end(h))});break}if(a<y&&l>m){let S=Math.max(a,r.start(h)),_=Math.min(l,r.end(h));_>S&&(s.partial=!0,s.time.push({startPTS:S,endPTS:_}))}else if(l<=m)break}return s}getPartialFragment(t){let e,i,r,s=null,a=0,{bufferPadding:l,fragments:c}=this;return Object.keys(c).forEach((u)=>{let h=c[u];h&&Vn(h)&&(i=h.body.start-l,r=h.body.end+l,t>=i&&t<=r&&(e=Math.min(t-i,r-t),a<=e&&(s=h.body,a=e)))}),s}isEndListAppended(t){let e=this.endListFragments[t];return e!==void 0&&(e.buffered||Vn(e))}getState(t){let e=$e(t),i=this.fragments[e];return i?i.buffered?Vn(i)?pr:de:an:ze}isTimeBuffered(t,e,i){let r,s;for(let a=0;a<i.length;a++){if(r=i.start(a)-this.bufferPadding,s=i.end(a)+this.bufferPadding,t>=r&&e<=s)return!0;if(e<=r)return!1}return!1}onFragLoaded(t,e){let{frag:i,part:r}=e;if(i.sn==="initSegment"||i.bitrateTest)return;let s=r?null:e,a=$e(i);this.fragments[a]={body:i,appendedPTS:null,loaded:s,buffered:!1,range:Object.create(null)}}onBufferAppended(t,e){let{frag:i,part:r,timeRanges:s}=e;if(i.sn==="initSegment")return;let a=i.type;if(r){let l=this.activePartLists[a];l||(this.activePartLists[a]=l=[]),l.push(r)}this.timeRanges=s,Object.keys(s).forEach((l)=>{let c=s[l];this.detectEvictedFragments(l,c,a,r)})}onFragBuffered(t,e){this.detectPartialFragments(e)}hasFragment(t){let e=$e(t);return!!this.fragments[e]}hasParts(t){var e;return!((e=this.activePartLists[t])==null||!e.length)}removeFragmentsInRange(t,e,i,r,s){r&&!this.hasGaps||Object.keys(this.fragments).forEach((a)=>{let l=this.fragments[a];if(!l)return;let c=l.body;c.type!==i||r&&!c.gap||c.start<e&&c.end>t&&(l.buffered||s)&&this.removeFragment(c)})}removeFragment(t){let e=$e(t);t.stats.loaded=0,t.clearElementaryStreamInfo();let i=this.activePartLists[t.type];if(i){let r=t.sn;this.activePartLists[t.type]=i.filter((s)=>s.fragment.sn!==r)}delete this.fragments[e],t.endList&&delete this.endListFragments[t.type]}removeAllFragments(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1}}function Vn(t){var e,i,r;return t.buffered&&(t.body.gap||((e=t.range.video)==null?void 0:e.partial)||((i=t.range.audio)==null?void 0:i.partial)||((r=t.range.audiovideo)==null?void 0:r.partial))}function $e(t){return`${t.type}_${t.level}_${t.sn}`}let na={length:0,start:()=>0,end:()=>0};class Jt{static isBuffered(t,e){try{if(t){let i=Jt.getBuffered(t);for(let r=0;r<i.length;r++)if(e>=i.start(r)&&e<=i.end(r))return!0}}catch(i){}return!1}static bufferInfo(t,e,i){try{if(t){let r=Jt.getBuffered(t),s=[],a;for(a=0;a<r.length;a++)s.push({start:r.start(a),end:r.end(a)});return this.bufferedInfo(s,e,i)}}catch(r){}return{len:0,start:e,end:e,nextStart:void 0}}static bufferedInfo(t,e,i){e=Math.max(0,e),t.sort(function(u,h){return u.start-h.start||h.end-u.end});let r=[];if(i)for(let u=0;u<t.length;u++){let h=r.length;if(h){let m=r[h-1].end;t[u].start-m<i?t[u].end>m&&(r[h-1].end=t[u].end):r.push(t[u])}else r.push(t[u])}else r=t;let s,a=0,l=e,c=e;for(let u=0;u<r.length;u++){let h=r[u].start,m=r[u].end;if(e+i>=h&&e<m)l=h,c=m,a=c-e;else if(e+i<h){s=h;break}}return{len:a,start:l||0,end:c||0,nextStart:s}}static getBuffered(t){try{return t.buffered}catch(e){return D.log("failed to get media.buffered",e),na}}}class Mr{constructor(t,e,i,r=0,s=-1,a=!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={start:0,executeStart:0,executeEnd:0,end:0},this.buffering={audio:{start:0,executeStart:0,executeEnd:0,end:0},video:{start:0,executeStart:0,executeEnd:0,end:0},audiovideo:{start:0,executeStart:0,executeEnd:0,end:0}},this.level=t,this.sn=e,this.id=i,this.size=r,this.part=s,this.partial=a}}function on(t,e){for(let r=0,s=t.length;r<s;r++){var i;if(((i=t[r])==null?void 0:i.cc)===e)return t[r]}return null}function Kn(t,e){if(t){let i=t.start+e;t.start=t.startPTS=i,t.endPTS=i+t.duration}}function fo(t,e){let i=e.fragments;for(let r=0,s=i.length;r<s;r++)Kn(i[r],t);e.fragmentHint&&Kn(e.fragmentHint,t),e.alignedSliding=!0}function Fl(t,e,i){e&&(function(r,s,a){if(function(l,c,u){return!(!c||!(u.endCC>u.startCC||l&&l.cc<u.startCC))}(r,a,s)){let l=function(c,u){let h=c.fragments,m=u.fragments;if(!m.length||!h.length)return void D.log("No fragments to align");let y=on(h,m[0].cc);if(y&&(!y||y.startPTS))return y;D.log("No frag in previous level to align on")}(a,s);l&&L(l.start)&&(D.log("Adjusting PTS using last level due to CC increase within current level "+s.url),fo(l.start,s))}}(t,i,e),!i.alignedSliding&&e&&Wn(i,e),i.alignedSliding||!e||i.skippedSegments||$n(e,i))}function Wn(t,e){if(!t.hasProgramDateTime||!e.hasProgramDateTime)return;let i=t.fragments,r=e.fragments;if(!i.length||!r.length)return;let s,a,l=Math.min(e.endCC,t.endCC);e.startCC<l&&t.startCC<l&&(s=on(r,l),a=on(i,l)),s&&a||(s=r[Math.floor(r.length/2)],a=on(i,s.cc)||i[Math.floor(i.length/2)]);let c=s.programDateTime,u=a.programDateTime;if(!c||!u)return;fo((u-c)/1000-(a.start-s.start),t)}let sa=Math.pow(2,17);class mo{constructor(t){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=t}destroy(){this.loader&&(this.loader.destroy(),this.loader=null)}abort(){this.loader&&this.loader.abort()}load(t,e){let i=t.url;if(!i)return Promise.reject(new Ai({type:H.NETWORK_ERROR,details:N.FRAG_LOAD_ERROR,fatal:!1,frag:t,error:Error("Fragment does not have a "+(i?"part list":"url")),networkDetails:null}));this.abort();let r=this.config,s=r.fLoader,a=r.loader;return new Promise((l,c)=>{if(this.loader&&this.loader.destroy(),t.gap){if(t.tagList.some((S)=>S[0]==="GAP"))return void c(oa(t));t.gap=!1}let u=this.loader=t.loader=s?new s(r):new a(r),h=aa(t),m=uo(r.fragLoadPolicy.default),y={loadPolicy:m,timeout:m.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:t.sn==="initSegment"?1/0:sa};t.stats=u.stats,u.load(h,y,{onSuccess:(S,_,w,I)=>{this.resetLoader(t,u);let C=S.data;w.resetIV&&t.decryptdata&&(t.decryptdata.iv=new Uint8Array(C.slice(0,16)),C=C.slice(16)),l({frag:t,part:null,payload:C,networkDetails:I})},onError:(S,_,w,I)=>{this.resetLoader(t,u),c(new Ai({type:H.NETWORK_ERROR,details:N.FRAG_LOAD_ERROR,fatal:!1,frag:t,response:E({url:i,data:void 0},S),error:Error(`HTTP Error ${S.code} ${S.text}`),networkDetails:w,stats:I}))},onAbort:(S,_,w)=>{this.resetLoader(t,u),c(new Ai({type:H.NETWORK_ERROR,details:N.INTERNAL_ABORTED,fatal:!1,frag:t,error:Error("Aborted"),networkDetails:w,stats:S}))},onTimeout:(S,_,w)=>{this.resetLoader(t,u),c(new Ai({type:H.NETWORK_ERROR,details:N.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t,error:Error(`Timeout after ${y.timeout}ms`),networkDetails:w,stats:S}))},onProgress:(S,_,w,I)=>{e&&e({frag:t,part:null,payload:w,networkDetails:I})}})})}loadPart(t,e,i){this.abort();let r=this.config,s=r.fLoader,a=r.loader;return new Promise((l,c)=>{if(this.loader&&this.loader.destroy(),t.gap||e.gap)return void c(oa(t,e));let u=this.loader=t.loader=s?new s(r):new a(r),h=aa(t,e),m=uo(r.fragLoadPolicy.default),y={loadPolicy:m,timeout:m.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:sa};e.stats=u.stats,u.load(h,y,{onSuccess:(S,_,w,I)=>{this.resetLoader(t,u),this.updateStatsFromPart(t,e);let C={frag:t,part:e,payload:S.data,networkDetails:I};i(C),l(C)},onError:(S,_,w,I)=>{this.resetLoader(t,u),c(new Ai({type:H.NETWORK_ERROR,details:N.FRAG_LOAD_ERROR,fatal:!1,frag:t,part:e,response:E({url:h.url,data:void 0},S),error:Error(`HTTP Error ${S.code} ${S.text}`),networkDetails:w,stats:I}))},onAbort:(S,_,w)=>{t.stats.aborted=e.stats.aborted,this.resetLoader(t,u),c(new Ai({type:H.NETWORK_ERROR,details:N.INTERNAL_ABORTED,fatal:!1,frag:t,part:e,error:Error("Aborted"),networkDetails:w,stats:S}))},onTimeout:(S,_,w)=>{this.resetLoader(t,u),c(new Ai({type:H.NETWORK_ERROR,details:N.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t,part:e,error:Error(`Timeout after ${y.timeout}ms`),networkDetails:w,stats:S}))}})})}updateStatsFromPart(t,e){let i=t.stats,r=e.stats,s=r.total;if(i.loaded+=r.loaded,s){let c=Math.round(t.duration/e.duration),u=Math.min(Math.round(i.loaded/s),c),h=(c-u)*Math.round(i.loaded/u);i.total=i.loaded+h}else i.total=Math.max(i.loaded,i.total);let a=i.loading,l=r.loading;a.start?a.first+=l.first-l.start:(a.start=l.start,a.first=l.first),a.end=l.end}resetLoader(t,e){t.loader=null,this.loader===e&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),e.destroy()}}function aa(t,e=null){let i=e||t,r={frag:t,part:e,responseType:"arraybuffer",url:i.url,headers:{},rangeStart:0,rangeEnd:0},s=i.byteRangeStartOffset,a=i.byteRangeEndOffset;if(L(s)&&L(a)){var l;let c=s,u=a;if(t.sn==="initSegment"&&((l=t.decryptdata)==null?void 0:l.method)==="AES-128"){let h=a-s;h%16&&(u=a+(16-h%16)),s!==0&&(r.resetIV=!0,c=s-16)}r.rangeStart=c,r.rangeEnd=u}return r}function oa(t,e){let i=Error(`GAP ${t.gap?"tag":"attribute"} found`),r={type:H.MEDIA_ERROR,details:N.FRAG_GAP,fatal:!1,frag:t,error:i,networkDetails:null};return e&&(r.part=e),(e||t).stats.aborted=!0,new Ai(r)}class Ai extends Error{constructor(t){super(t.error.message),this.data=void 0,this.data=t}}class go{constructor(t,e){this.subtle=void 0,this.aesIV=void 0,this.subtle=t,this.aesIV=e}decrypt(t,e){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},e,t)}}class po{constructor(t,e){this.subtle=void 0,this.key=void 0,this.subtle=t,this.key=e}expandKey(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])}}class Yn{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_(t){let e=new DataView(t),i=new Uint32Array(4);for(let r=0;r<4;r++)i[r]=e.getUint32(4*r);return i}initTable(){let t=this.sBox,e=this.invSBox,i=this.subMix,r=i[0],s=i[1],a=i[2],l=i[3],c=this.invSubMix,u=c[0],h=c[1],m=c[2],y=c[3],S=new Uint32Array(256),_=0,w=0,I=0;for(I=0;I<256;I++)S[I]=I<128?I<<1:I<<1^283;for(I=0;I<256;I++){let C=w^w<<1^w<<2^w<<3^w<<4;C=C>>>8^255&C^99,t[_]=C,e[C]=_;let P=S[_],F=S[P],W=S[F],z=257*S[C]^16843008*C;r[_]=z<<24|z>>>8,s[_]=z<<16|z>>>16,a[_]=z<<8|z>>>24,l[_]=z,z=16843009*W^65537*F^257*P^16843008*_,u[C]=z<<24|z>>>8,h[C]=z<<16|z>>>16,m[C]=z<<8|z>>>24,y[C]=z,_?(_=P^S[S[S[W^P]]],w^=S[S[w]]):_=w=1}}expandKey(t){let e=this.uint8ArrayToUint32Array_(t),i=!0,r=0;for(;r<e.length&&i;)i=e[r]===this.key[r],r++;if(i)return;this.key=e;let s=this.keySize=e.length;if(s!==4&&s!==6&&s!==8)throw Error("Invalid aes key size="+s);let a=this.ksRows=4*(s+6+1),l,c,u=this.keySchedule=new Uint32Array(a),h=this.invKeySchedule=new Uint32Array(a),m=this.sBox,y=this.rcon,S=this.invSubMix,_=S[0],w=S[1],I=S[2],C=S[3],P,F;for(l=0;l<a;l++)l<s?P=u[l]=e[l]:(F=P,l%s==0?(F=F<<8|F>>>24,F=m[F>>>24]<<24|m[F>>>16&255]<<16|m[F>>>8&255]<<8|m[255&F],F^=y[l/s|0]<<24):s>6&&l%s==4&&(F=m[F>>>24]<<24|m[F>>>16&255]<<16|m[F>>>8&255]<<8|m[255&F]),u[l]=P=(u[l-s]^F)>>>0);for(c=0;c<a;c++)l=a-c,F=3&c?u[l]:u[l-4],h[c]=c<4||l<=4?F:_[m[F>>>24]]^w[m[F>>>16&255]]^I[m[F>>>8&255]]^C[m[255&F]],h[c]=h[c]>>>0}networkToHostOrderSwap(t){return t<<24|(65280&t)<<8|(16711680&t)>>8|t>>>24}decrypt(t,e,i){let r=this.keySize+6,s=this.invKeySchedule,a=this.invSBox,l=this.invSubMix,c=l[0],u=l[1],h=l[2],m=l[3],y=this.uint8ArrayToUint32Array_(i),S=y[0],_=y[1],w=y[2],I=y[3],C=new Int32Array(t),P=new Int32Array(C.length),F,W,z,lt,it,ft,mt,Q,X,kt,ht,wt,It,Mt,at=this.networkToHostOrderSwap;for(;e<C.length;){for(X=at(C[e]),kt=at(C[e+1]),ht=at(C[e+2]),wt=at(C[e+3]),it=X^s[0],ft=wt^s[1],mt=ht^s[2],Q=kt^s[3],It=4,Mt=1;Mt<r;Mt++)F=c[it>>>24]^u[ft>>16&255]^h[mt>>8&255]^m[255&Q]^s[It],W=c[ft>>>24]^u[mt>>16&255]^h[Q>>8&255]^m[255&it]^s[It+1],z=c[mt>>>24]^u[Q>>16&255]^h[it>>8&255]^m[255&ft]^s[It+2],lt=c[Q>>>24]^u[it>>16&255]^h[ft>>8&255]^m[255&mt]^s[It+3],it=F,ft=W,mt=z,Q=lt,It+=4;F=a[it>>>24]<<24^a[ft>>16&255]<<16^a[mt>>8&255]<<8^a[255&Q]^s[It],W=a[ft>>>24]<<24^a[mt>>16&255]<<16^a[Q>>8&255]<<8^a[255&it]^s[It+1],z=a[mt>>>24]<<24^a[Q>>16&255]<<16^a[it>>8&255]<<8^a[255&ft]^s[It+2],lt=a[Q>>>24]<<24^a[it>>16&255]<<16^a[ft>>8&255]<<8^a[255&mt]^s[It+3],P[e]=at(F^S),P[e+1]=at(lt^_),P[e+2]=at(z^w),P[e+3]=at(W^I),S=X,_=kt,w=ht,I=wt,e+=4}return P.buffer}}class ln{constructor(t,{removePKCS7Padding:e=!0}={}){if(this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.useSoftware=t.enableSoftwareAES,this.removePKCS7Padding=e,e)try{let i=self.crypto;i&&(this.subtle=i.subtle||i.webkitSubtle)}catch(i){}this.subtle===null&&(this.useSoftware=!0)}destroy(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null}isSync(){return this.useSoftware}flush(){let{currentResult:t,remainderData:e}=this;if(!t||e)return this.reset(),null;let i=new Uint8Array(t);return this.reset(),this.removePKCS7Padding?function(r){let s=r.byteLength,a=s&&new DataView(r.buffer).getUint8(s-1);return a?ne(r,0,s-a):r}(i):i}reset(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)}decrypt(t,e,i){return this.useSoftware?new Promise((r,s)=>{this.softwareDecrypt(new Uint8Array(t),e,i);let a=this.flush();a?r(a.buffer):s(Error("[softwareDecrypt] Failed to decrypt data"))}):this.webCryptoDecrypt(new Uint8Array(t),e,i)}softwareDecrypt(t,e,i){let{currentIV:r,currentResult:s,remainderData:a}=this;this.logOnce("JS AES decrypt"),a&&(t=si(a,t),this.remainderData=null);let l=this.getValidChunk(t);if(!l.length)return null;r&&(i=r);let c=this.softwareDecrypter;c||(c=this.softwareDecrypter=new Yn),c.expandKey(e);let u=s;return this.currentResult=c.decrypt(l.buffer,0,i),this.currentIV=ne(l,-16).buffer,u||null}webCryptoDecrypt(t,e,i){let r=this.subtle;return this.key===e&&this.fastAesKey||(this.key=e,this.fastAesKey=new po(r,e)),this.fastAesKey.expandKey().then((s)=>{if(!r)return Promise.reject(Error("web crypto not initialized"));return this.logOnce("WebCrypto AES decrypt"),new go(r,new Uint8Array(i)).decrypt(t.buffer,s)}).catch((s)=>(D.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${s.name}: ${s.message}`),this.onWebCryptoError(t,e,i)))}onWebCryptoError(t,e,i){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(t,e,i);let r=this.flush();if(r)return r.buffer;throw Error("WebCrypto and softwareDecrypt: failed to decrypt data")}getValidChunk(t){let e=t,i=t.length-t.length%16;return i!==t.length&&(e=ne(t,0,i),this.remainderData=ne(t,i)),e}logOnce(t){this.logEnabled&&(D.log("[decrypter]: "+t),this.logEnabled=!1)}}let Ul=function(t){let e="",i=t.length;for(let r=0;r<i;r++)e+=`[${t.start(r).toFixed(3)}-${t.end(r).toFixed(3)}]`;return e},oi="STOPPED",Zt="IDLE",la="KEY_LOADING",Nr="FRAG_LOADING",Pr="FRAG_LOADING_WAITING_RETRY",xr="WAITING_TRACK",Ui="PARSING",cn="PARSED",un="ENDED",Fr="ERROR",Li="WAITING_INIT_PTS",fe="WAITING_LEVEL";class dn extends class{constructor(){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(e){return!this._tickInterval&&(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}clearInterval(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),this._tickInterval=null,!0)}clearNextTick(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0)}tick(){this._tickCallCount++,this._tickCallCount===1&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}doTick(){}}{constructor(t,e,i,r,s){super(),this.hls=void 0,this.fragPrevious=null,this.fragCurrent=null,this.fragmentTracker=void 0,this.transmuxer=null,this._state=oi,this.playlistType=void 0,this.media=null,this.mediaBuffer=null,this.config=void 0,this.bitrateTest=!1,this.lastCurrentTime=0,this.nextLoadPosition=0,this.startPosition=0,this.startTimeOffset=null,this.loadedmetadata=!1,this.retryDate=0,this.levels=null,this.fragmentLoader=void 0,this.keyLoader=void 0,this.levelLastLoaded=null,this.startFragRequested=!1,this.decrypter=void 0,this.initPTS=[],this.onvseeking=null,this.onvended=null,this.logPrefix="",this.log=void 0,this.warn=void 0,this.playlistType=s,this.logPrefix=r,this.log=D.log.bind(D,r+":"),this.warn=D.warn.bind(D,r+":"),this.hls=t,this.fragmentLoader=new mo(t.config),this.keyLoader=i,this.fragmentTracker=e,this.config=t.config,this.decrypter=new ln(t.config),t.on(b.MANIFEST_LOADED,this.onManifestLoaded,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(t){}stopLoad(){this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);let t=this.fragCurrent;t!=null&&t.loader&&(t.abortRequests(),this.fragmentTracker.removeFragment(t)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=oi}_streamEnded(t,e){if(e.live||t.nextStart||!t.end||!this.media)return!1;let i=e.partList;if(i!=null&&i.length){let s=i[i.length-1];return Jt.isBuffered(this.media,s.start+s.duration/2)}let r=e.fragments[e.fragments.length-1].type;return this.fragmentTracker.isEndListAppended(r)}getLevelDetails(){var t;if(this.levels&&this.levelLastLoaded!==null)return(t=this.levelLastLoaded)==null?void 0:t.details}onMediaAttached(t,e){let i=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),i.addEventListener("seeking",this.onvseeking),i.addEventListener("ended",this.onvended);let r=this.config;this.levels&&r.autoStartLoad&&this.state===oi&&this.startLoad(r.startPosition)}onMediaDetaching(){let t=this.media;t!=null&&t.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),t&&this.onvseeking&&this.onvended&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvended=null),this.keyLoader&&this.keyLoader.detach(),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()}onMediaSeeking(){let{config:t,fragCurrent:e,media:i,mediaBuffer:r,state:s}=this,a=i?i.currentTime:0,l=Jt.bufferInfo(r||i,a,t.maxBufferHole);if(this.log(`media seeking to ${L(a)?a.toFixed(3):a}, state: ${s}`),this.state===un)this.resetLoadingState();else if(e){let c=t.maxFragLookUpTolerance,u=e.start-c,h=e.start+e.duration+c;if(!l.len||h<l.start||u>l.end){let m=a>h;(a<u||m)&&(m&&e.loader&&(this.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),e.abortRequests(),this.resetLoadingState()),this.fragPrevious=null)}}i&&(this.fragmentTracker.removeFragmentsInRange(a,1/0,this.playlistType,!0),this.lastCurrentTime=a),this.loadedmetadata||l.len||(this.nextLoadPosition=this.startPosition=a),this.tickImmediate()}onMediaEnded(){this.startPosition=this.lastCurrentTime=0}onManifestLoaded(t,e){this.startTimeOffset=e.startTimeOffset,this.initPTS=[]}onHandlerDestroying(){this.hls.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),this.stopLoad(),super.onHandlerDestroying(),this.hls=null}onHandlerDestroyed(){this.state=oi,this.fragmentLoader&&this.fragmentLoader.destroy(),this.keyLoader&&this.keyLoader.destroy(),this.decrypter&&this.decrypter.destroy(),this.hls=this.log=this.warn=this.decrypter=this.keyLoader=this.fragmentLoader=this.fragmentTracker=null,super.onHandlerDestroyed()}loadFragment(t,e,i){this._loadFragForPlayback(t,e,i)}_loadFragForPlayback(t,e,i){this._doFragLoad(t,e,i,(r)=>{if(this.fragContextChanged(t))return this.warn(`Fragment ${t.sn}${r.part?" p: "+r.part.index:""} of level ${t.level} was dropped during download.`),void this.fragmentTracker.removeFragment(t);t.stats.chunkCount++,this._handleFragmentLoadProgress(r)}).then((r)=>{if(!r)return;let s=this.state;this.fragContextChanged(t)?(s===Nr||!this.fragCurrent&&s===Ui)&&(this.fragmentTracker.removeFragment(t),this.state=Zt):(("payload"in r)&&(this.log(`Loaded fragment ${t.sn} of level ${t.level}`),this.hls.trigger(b.FRAG_LOADED,r)),this._handleFragmentLoadComplete(r))}).catch((r)=>{this.state!==oi&&this.state!==Fr&&(this.warn(r),this.resetFragmentLoading(t))})}clearTrackerIfNeeded(t){var e;let{fragmentTracker:i}=this;if(i.getState(t)===an){let r=t.type,s=this.getFwdBufferInfo(this.mediaBuffer,r),a=Math.max(t.duration,s?s.len:this.config.maxBufferLength);this.reduceMaxBufferLength(a)&&i.removeFragment(t)}else((e=this.mediaBuffer)==null?void 0:e.buffered.length)===0?i.removeAllFragments():i.hasParts(t.type)&&(i.detectPartialFragments({frag:t,part:null,stats:t.stats,id:t.type}),i.getState(t)===pr&&i.removeFragment(t))}checkLiveUpdate(t){if(t.updated&&!t.live){let e=t.fragments[t.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type})}t.fragments[0]||(t.deltaUpdateFailed=!0)}flushMainBuffer(t,e,i=null){if(!(t-e))return;let r={startOffset:t,endOffset:e,type:i};this.hls.trigger(b.BUFFER_FLUSHING,r)}_loadInitSegment(t,e){this._doFragLoad(t,e).then((i)=>{if(!i||this.fragContextChanged(t)||!this.levels)throw Error("init load aborted");return i}).then((i)=>{let{hls:r}=this,{payload:s}=i,a=t.decryptdata;if(s&&s.byteLength>0&&a!=null&&a.key&&a.iv&&a.method==="AES-128"){let l=self.performance.now();return this.decrypter.decrypt(new Uint8Array(s),a.key.buffer,a.iv.buffer).catch((c)=>{throw r.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.FRAG_DECRYPT_ERROR,fatal:!1,error:c,reason:c.message,frag:t}),c}).then((c)=>{let u=self.performance.now();return r.trigger(b.FRAG_DECRYPTED,{frag:t,payload:c,stats:{tstart:l,tdecrypt:u}}),i.payload=c,this.completeInitSegmentLoad(i)})}return this.completeInitSegmentLoad(i)}).catch((i)=>{this.state!==oi&&this.state!==Fr&&(this.warn(i),this.resetFragmentLoading(t))})}completeInitSegmentLoad(t){let{levels:e}=this;if(!e)throw Error("init load aborted, missing levels");let i=t.frag.stats;this.state=Zt,t.frag.data=new Uint8Array(t.payload),i.parsing.start=i.buffering.start=self.performance.now(),i.parsing.end=i.buffering.end=self.performance.now(),this.tick()}fragContextChanged(t){let{fragCurrent:e}=this;return!t||!e||t.sn!==e.sn||t.level!==e.level}fragBufferedComplete(t,e){var i,r,s,a;let l=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log(`Buffered ${t.type} sn: ${t.sn}${e?" part: "+e.index:""} of ${this.playlistType===ie?"level":"track"} ${t.level} (frag:[${((i=t.startPTS)!=null?i:NaN).toFixed(3)}-${((r=t.endPTS)!=null?r:NaN).toFixed(3)}] > buffer:${l?Ul(Jt.getBuffered(l)):"(detached)"})`),t.sn!=="initSegment"){var c;if(t.type!==bi){let h=t.elementaryStreams;if(!Object.keys(h).some((m)=>!!h[m]))return void(this.state=Zt)}let u=(c=this.levels)==null?void 0:c[t.level];u!=null&&u.fragmentError&&(this.log(`Resetting level fragment error count of ${u.fragmentError} on frag buffered`),u.fragmentError=0)}this.state=Zt,l&&(!this.loadedmetadata&&t.type==ie&&l.buffered.length&&((s=this.fragCurrent)==null?void 0:s.sn)===((a=this.fragPrevious)==null?void 0:a.sn)&&(this.loadedmetadata=!0,this.seekToStartPos()),this.tick())}seekToStartPos(){}_handleFragmentLoadComplete(t){let{transmuxer:e}=this;if(!e)return;let{frag:i,part:r,partsLoaded:s}=t,a=!s||s.length===0||s.some((c)=>!c),l=new Mr(i.level,i.sn,i.stats.chunkCount+1,0,r?r.index:-1,!a);e.flush(l)}_handleFragmentLoadProgress(t){}_doFragLoad(t,e,i=null,r){var s;let a=e==null?void 0:e.details;if(!this.levels||!a)throw Error(`frag load aborted, missing level${a?"":" detail"}s`);let l=null;if(!t.encrypted||(s=t.decryptdata)!=null&&s.key?!t.encrypted&&a.encryptedFragments.length&&this.keyLoader.loadClear(t,a.encryptedFragments):(this.log(`Loading key for ${t.sn} of [${a.startSN}-${a.endSN}], ${this.logPrefix==="[stream-controller]"?"level":"track"} ${t.level}`),this.state=la,this.fragCurrent=t,l=this.keyLoader.load(t).then((h)=>{if(!this.fragContextChanged(h.frag))return this.hls.trigger(b.KEY_LOADED,h),this.state===la&&(this.state=Zt),h}),this.hls.trigger(b.KEY_LOADING,{frag:t}),this.fragCurrent===null&&(l=Promise.reject(Error("frag load aborted, context changed in KEY_LOADING")))),i=Math.max(t.start,i||0),this.config.lowLatencyMode&&t.sn!=="initSegment"){let h=a.partList;if(h&&r){i>t.end&&a.fragmentHint&&(t=a.fragmentHint);let m=this.getNextPart(h,t,i);if(m>-1){let y=h[m],S;return this.log(`Loading part sn: ${t.sn} p: ${y.index} cc: ${t.cc} of playlist [${a.startSN}-${a.endSN}] parts [0-${m}-${h.length-1}] ${this.logPrefix==="[stream-controller]"?"level":"track"}: ${t.level}, target: ${parseFloat(i.toFixed(3))}`),this.nextLoadPosition=y.start+y.duration,this.state=Nr,S=l?l.then((_)=>!_||this.fragContextChanged(_.frag)?null:this.doFragPartsLoad(t,y,e,r)).catch((_)=>this.handleFragLoadError(_)):this.doFragPartsLoad(t,y,e,r).catch((_)=>this.handleFragLoadError(_)),this.hls.trigger(b.FRAG_LOADING,{frag:t,part:y,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(Error("frag load aborted, context changed in FRAG_LOADING parts")):S}if(!t.url||this.loadedEndOfParts(h,i))return Promise.resolve(null)}}this.log(`Loading fragment ${t.sn} cc: ${t.cc} ${a?"of ["+a.startSN+"-"+a.endSN+"] ":""}${this.logPrefix==="[stream-controller]"?"level":"track"}: ${t.level}, target: ${parseFloat(i.toFixed(3))}`),L(t.sn)&&!this.bitrateTest&&(this.nextLoadPosition=t.start+t.duration),this.state=Nr;let c=this.config.progressive,u;return u=c&&l?l.then((h)=>!h||this.fragContextChanged(h==null?void 0:h.frag)?null:this.fragmentLoader.load(t,r)).catch((h)=>this.handleFragLoadError(h)):Promise.all([this.fragmentLoader.load(t,c?r:void 0),l]).then(([h])=>(!c&&h&&r&&r(h),h)).catch((h)=>this.handleFragLoadError(h)),this.hls.trigger(b.FRAG_LOADING,{frag:t,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(Error("frag load aborted, context changed in FRAG_LOADING")):u}doFragPartsLoad(t,e,i,r){return new Promise((s,a)=>{var l;let c=[],u=(l=i.details)==null?void 0:l.partList,h=(m)=>{this.fragmentLoader.loadPart(t,m,r).then((y)=>{c[m.index]=y;let S=y.part;this.hls.trigger(b.FRAG_LOADED,y);let _=oo(i,t.sn,m.index+1)||lo(u,t.sn,m.index+1);if(!_)return s({frag:t,part:S,partsLoaded:c});h(_)}).catch(a)};h(e)})}handleFragLoadError(t){if("data"in t){let e=t.data;t.data&&e.details===N.INTERNAL_ABORTED?this.handleFragLoadAborted(e.frag,e.part):this.hls.trigger(b.ERROR,e)}else this.hls.trigger(b.ERROR,{type:H.OTHER_ERROR,details:N.INTERNAL_EXCEPTION,err:t,error:t,fatal:!0});return null}_handleTransmuxerFlush(t){let e=this.getCurrentContext(t);if(!e||this.state!==Ui)return void(this.fragCurrent||this.state===oi||this.state===Fr||(this.state=Zt));let{frag:i,part:r,level:s}=e,a=self.performance.now();i.stats.parsing.end=a,r&&(r.stats.parsing.end=a),this.updateLevelTiming(i,r,s,t.partial)}getCurrentContext(t){let{levels:e,fragCurrent:i}=this,{level:r,sn:s,part:a}=t;if(e==null||!e[r])return this.warn(`Levels object was unset while buffering fragment ${s} of level ${r}. The current chunk will not be buffered.`),null;let l=e[r],c=a>-1?oo(l,s,a):null,u=c?c.fragment:function(h,m,y){if(h==null||!h.details)return null;let S=h.details,_=S.fragments[m-S.startSN];return _||(_=S.fragmentHint,_&&_.sn===m?_:m<S.startSN&&y&&y.sn===m?y:null)}(l,s,i);return u?(i&&i!==u&&(u.stats=i.stats),{frag:u,part:c,level:l}):null}bufferFragmentData(t,e,i,r,s){var a;if(!t||this.state!==Ui)return;let{data1:l,data2:c}=t,u=l;if(l&&c&&(u=si(l,c)),(a=u)==null||!a.length)return;let h={type:t.type,frag:e,part:i,chunkMeta:r,parent:e.type,data:u};if(this.hls.trigger(b.BUFFER_APPENDING,h),t.dropped&&t.independent&&!i){if(s)return;this.flushBufferGap(e)}}flushBufferGap(t){let e=this.media;if(!e)return;if(!Jt.isBuffered(e,e.currentTime))return void this.flushMainBuffer(0,t.start);let i=e.currentTime,r=Jt.bufferInfo(e,i,0),s=t.duration,a=Math.min(2*this.config.maxFragLookUpTolerance,0.25*s),l=Math.max(Math.min(t.start-a,r.end-a),i+a);t.start-l>a&&this.flushMainBuffer(l,t.start)}getFwdBufferInfo(t,e){let i=this.getLoadPosition();return L(i)?this.getFwdBufferInfoAtPos(t,i,e):null}getFwdBufferInfoAtPos(t,e,i){let{config:{maxBufferHole:r}}=this,s=Jt.bufferInfo(t,e,r);if(s.len===0&&s.nextStart!==void 0){let a=this.fragmentTracker.getBufferedFrag(e,i);if(a&&s.nextStart<a.end)return Jt.bufferInfo(t,e,Math.max(s.nextStart,r))}return s}getMaxBufferLength(t){let{config:e}=this,i;return i=t?Math.max(8*e.maxBufferSize/t,e.maxBufferLength):e.maxBufferLength,Math.min(i,e.maxMaxBufferLength)}reduceMaxBufferLength(t){let e=this.config,i=t||e.maxBufferLength;return e.maxMaxBufferLength>=i&&(e.maxMaxBufferLength/=2,this.warn(`Reduce max buffer length to ${e.maxMaxBufferLength}s`),!0)}getAppendedFrag(t,e=ie){let i=this.fragmentTracker.getAppendedFrag(t,ie);return i&&"fragment"in i?i.fragment:i}getNextFragment(t,e){let i=e.fragments,r=i.length;if(!r)return null;let{config:s}=this,a=i[0].start,l;if(e.live){let c=s.initialLiveManifestSize;if(r<c)return this.warn(`Not enough fragments to start playback (have: ${r}, need: ${c})`),null;(!e.PTSKnown&&!this.startFragRequested&&this.startPosition===-1||t<a)&&(l=this.getInitialLiveFragment(e,i),this.startPosition=this.nextLoadPosition=l?this.hls.liveSyncPosition||l.start:t)}else t<=a&&(l=i[0]);if(!l){let c=s.lowLatencyMode?e.partEnd:e.fragmentEnd;l=this.getFragmentAtPosition(t,c,e)}return this.mapToInitFragWhenRequired(l)}isLoopLoading(t,e){let i=this.fragmentTracker.getState(t);return(i===de||i===pr&&!!t.gap)&&this.nextLoadPosition>e}getNextFragmentLoopLoading(t,e,i,r,s){let a=t.gap,l=this.getNextFragment(this.nextLoadPosition,e);if(l===null)return l;if(t=l,a&&t&&!t.gap&&i.nextStart){let c=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,i.nextStart,r);if(c!==null&&i.len+c.len>=s)return this.log(`buffer full after gaps in "${r}" playlist starting at sn: ${t.sn}`),null}return t}mapToInitFragWhenRequired(t){return t==null||!t.initSegment||t!=null&&t.initSegment.data||this.bitrateTest?t:t.initSegment}getNextPart(t,e,i){let r=-1,s=!1,a=!0;for(let l=0,c=t.length;l<c;l++){let u=t[l];if(a=a&&!u.independent,r>-1&&i<u.start)break;let h=u.loaded;h?r=-1:(s||u.independent||a)&&u.fragment===e&&(r=l),s=h}return r}loadedEndOfParts(t,e){let i=t[t.length-1];return i&&e>i.start&&i.loaded}getInitialLiveFragment(t,e){let i=this.fragPrevious,r=null;if(i){if(t.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+i.programDateTime),r=function(s,a,l){if(a===null||!Array.isArray(s)||!s.length||!L(a))return null;if(a<(s[0].programDateTime||0))return null;if(a>=(s[s.length-1].endProgramDateTime||0))return null;l=l||0;for(let c=0;c<s.length;++c){let u=s[c];if(je(a,l,u))return u}return null}(e,i.endProgramDateTime,this.config.maxFragLookUpTolerance)),!r){let s=i.sn+1;if(s>=t.startSN&&s<=t.endSN){let a=e[s-t.startSN];i.cc===a.cc&&(r=a,this.log("Live playlist, switching playlist, load frag with next SN: "+r.sn))}r||(r=function(a,l){return nn(a,(c)=>c.cc<l?1:c.cc>l?-1:0)}(e,i.cc),r&&this.log("Live playlist, switching playlist, load frag with same CC: "+r.sn))}}else{let s=this.hls.liveSyncPosition;s!==null&&(r=this.getFragmentAtPosition(s,this.bitrateTest?t.fragmentEnd:t.edge,t))}return r}getFragmentAtPosition(t,e,i){let{config:r}=this,{fragPrevious:s}=this,{fragments:a,endSN:l}=i,{fragmentHint:c}=i,u=r.maxFragLookUpTolerance,h=i.partList,m=!!(r.lowLatencyMode&&h!=null&&h.length&&c),y;if(m&&c&&!this.bitrateTest&&(a=a.concat(c),l=c.sn),t<e)y=Dr(s,a,t,t>e-u?0:u);else y=a[a.length-1];if(y){let S=y.sn-i.startSN,_=this.fragmentTracker.getState(y);if((_===de||_===pr&&y.gap)&&(s=y),s&&y.sn===s.sn&&(!m||h[0].fragment.sn>y.sn)){if(s&&y.level===s.level){let w=a[S+1];y=y.sn<l&&this.fragmentTracker.getState(w)!==de?w:null}}}return y}synchronizeToLiveEdge(t){let{config:e,media:i}=this;if(!i)return;let r=this.hls.liveSyncPosition,s=i.currentTime,a=t.fragments[0].start,l=t.edge,c=s>=a-e.maxFragLookUpTolerance&&s<=l;if(r!==null&&i.duration>r&&(s<r||!c)){let u=e.liveMaxLatencyDuration!==void 0?e.liveMaxLatencyDuration:e.liveMaxLatencyDurationCount*t.targetduration;(!c&&i.readyState<4||s<l-u)&&(this.loadedmetadata||(this.nextLoadPosition=r),i.readyState&&(this.warn(`Playback: ${s.toFixed(3)} is located too far from the end of live sliding playlist: ${l}, reset currentTime to : ${r.toFixed(3)}`),i.currentTime=r))}}alignPlaylists(t,e,i){let r=t.fragments.length;if(!r)return this.warn("No fragments in live playlist"),0;let s=t.fragments[0].start,a=!e,l=t.alignedSliding&&L(s);if(a||!l&&!s){let{fragPrevious:c}=this;Fl(c,i,t);let u=t.fragments[0].start;return this.log(`Live playlist sliding: ${u.toFixed(2)} start-sn: ${e?e.startSN:"na"}->${t.startSN} prev-sn: ${c?c.sn:"na"} fragments: ${r}`),u}return s}waitForCdnTuneIn(t){return t.live&&t.canBlockReload&&t.partTarget&&t.tuneInGoal>Math.max(t.partHoldBack,3*t.partTarget)}setStartPosition(t,e){let i=this.startPosition;if(i<e&&(i=-1),i===-1||this.lastCurrentTime===-1){let r=this.startTimeOffset!==null,s=r?this.startTimeOffset:t.startTimeOffset;s!==null&&L(s)?(i=e+s,s<0&&(i+=t.totalduration),i=Math.min(Math.max(e,i),e+t.totalduration),this.log(`Start time offset ${s} found in ${r?"multivariant":"media"} playlist, adjust startPosition to ${i}`),this.startPosition=i):t.live?i=this.hls.liveSyncPosition||e:this.startPosition=i=0,this.lastCurrentTime=i}this.nextLoadPosition=i}getLoadPosition(){let{media:t}=this,e=0;return this.loadedmetadata&&t?e=t.currentTime:this.nextLoadPosition&&(e=this.nextLoadPosition),e}handleFragLoadAborted(t,e){this.transmuxer&&t.sn!=="initSegment"&&t.stats.aborted&&(this.warn(`Fragment ${t.sn}${e?" part "+e.index:""} of level ${t.level} was aborted`),this.resetFragmentLoading(t))}resetFragmentLoading(t){this.fragCurrent&&(this.fragContextChanged(t)||this.state===Pr)||(this.state=Zt)}onFragmentOrKeyLoadError(t,e){if(e.chunkMeta&&!e.frag){let h=this.getCurrentContext(e.chunkMeta);h&&(e.frag=h.frag)}let i=e.frag;if(!i||i.type!==t||!this.levels)return;var r;if(this.fragContextChanged(i))return void this.warn(`Frag load error must match current frag to retry ${i.url} > ${(r=this.fragCurrent)==null?void 0:r.url}`);let s=e.details===N.FRAG_GAP;s&&this.fragmentTracker.fragBuffered(i,!0);let a=e.errorAction,{action:l,retryCount:c=0,retryConfig:u}=a||{};if(a&&l===De&&u){this.resetStartWhenNotLoaded(this.levelLastLoaded);let h=Js(u,c);this.warn(`Fragment ${i.sn} of ${t} ${i.level} errored with ${e.details}, retrying loading ${c+1}/${u.maxNumRetry} in ${h}ms`),a.resolved=!0,this.retryDate=self.performance.now()+h,this.state=Pr}else if(u&&a){if(this.resetFragmentErrors(t),!(c<u.maxNumRetry))return void D.warn(`${e.details} reached or exceeded max retry (${c})`);s||l===sn||(a.resolved=!0)}else(a==null?void 0:a.action)===Fi?this.state=fe:this.state=Fr;this.tickImmediate()}reduceLengthAndFlushBuffer(t){if(this.state===Ui||this.state===cn){let e=t.parent,i=this.getFwdBufferInfo(this.mediaBuffer,e),r=i&&i.len>0.5;r&&this.reduceMaxBufferLength(i.len);let s=!r;return s&&this.warn(`Buffer full error while media.currentTime is not buffered, flush ${e} buffer`),t.frag&&(this.fragmentTracker.removeFragment(t.frag),this.nextLoadPosition=t.frag.start),this.resetLoadingState(),s}return!1}resetFragmentErrors(t){t===Ue&&(this.fragCurrent=null),this.loadedmetadata||(this.startFragRequested=!1),this.state!==oi&&(this.state=Zt)}afterBufferFlushed(t,e,i){if(!t)return;let r=Jt.getBuffered(t);this.fragmentTracker.detectEvictedFragments(e,r,i),this.state===un&&this.resetLoadingState()}resetLoadingState(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state=Zt}resetStartWhenNotLoaded(t){if(!this.loadedmetadata){this.startFragRequested=!1;let e=t?t.details:null;e!=null&&e.live?(this.startPosition=-1,this.setStartPosition(e,0),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}resetWhenMissingContext(t){this.warn(`The loading context changed while buffering fragment ${t.sn} of level ${t.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState()}removeUnbufferedFrags(t=0){this.fragmentTracker.removeFragmentsInRange(t,1/0,this.playlistType,!1,!0)}updateLevelTiming(t,e,i,r){var s;let a=i.details;if(!a)return void this.warn("level.details undefined");if(!Object.keys(t.elementaryStreams).reduce((l,c)=>{let u=t.elementaryStreams[c];if(u){let h=u.endPTS-u.startPTS;if(h<=0)return this.warn(`Could not parse fragment ${t.sn} ${c} duration reliably (${h})`),l||!1;let m=r?0:en(a,t,u.startPTS,u.endPTS,u.startDTS,u.endDTS);return this.hls.trigger(b.LEVEL_PTS_UPDATED,{details:a,level:i,drift:m,type:c,frag:t,start:u.startPTS,end:u.endPTS}),!0}return l},!1)&&((s=this.transmuxer)==null?void 0:s.error)===null){let l=Error(`Found no media in fragment ${t.sn} of level ${t.level} resetting transmuxer to fallback to playlist timing`);if(i.fragmentError===0&&(i.fragmentError++,t.gap=!0,this.fragmentTracker.removeFragment(t),this.fragmentTracker.fragBuffered(t,!0)),this.warn(l.message),this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.FRAG_PARSING_ERROR,fatal:!1,error:l,frag:t,reason:`Found no media in msn ${t.sn} of level "${i.url}"`}),!this.hls)return;this.resetTransmuxer()}this.state=cn,this.hls.trigger(b.FRAG_PARSED,{frag:t,part:e})}resetTransmuxer(){this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null)}recoverWorkerError(t){t.event==="demuxerWorker"&&(this.fragmentTracker.removeAllFragments(),this.resetTransmuxer(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState())}set state(t){let e=this._state;e!==t&&(this._state=t,this.log(`${e}->${t}`))}get state(){return this._state}}class jn{constructor(){this.chunks=[],this.dataLength=0}push(t){this.chunks.push(t),this.dataLength+=t.length}flush(){let{chunks:t,dataLength:e}=this,i;return t.length?(i=t.length===1?t[0]:function(r,s){let a=new Uint8Array(s),l=0;for(let c=0;c<r.length;c++){let u=r[c];a.set(u,l),l+=u.length}return a}(t,e),this.reset(),i):new Uint8Array(0)}reset(){this.chunks.length=0,this.dataLength=0}}function wi(t="",e=90000){return{type:t,id:-1,pid:-1,inputTimeScale:e,sequenceNumber:-1,samples:[],dropped:0}}class zn{constructor(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}resetInitSegment(t,e,i,r){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:90000,sequenceNumber:0,samples:[],dropped:0}}resetTimeStamp(t){this.initPTS=t,this.resetContiguity()}resetContiguity(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0}canParse(t,e){return!1}appendFrame(t,e,i){}demux(t,e){this.cachedData&&(t=si(this.cachedData,t),this.cachedData=null);let i,r=ui(t,0),s=r?r.length:0,a=this._audioTrack,l=this._id3Track,c=r?We(r):void 0,u=t.length;for((this.basePTS===null||this.frameIndex===0&&L(c))&&(this.basePTS=Bl(c,e,this.initPTS),this.lastPTS=this.basePTS),this.lastPTS===null&&(this.lastPTS=this.basePTS),r&&r.length>0&&l.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:r,type:Zr,duration:Number.POSITIVE_INFINITY});s<u;){if(this.canParse(t,s)){let h=this.appendFrame(a,t,s);h?(this.frameIndex++,this.lastPTS=h.sample.pts,s+=h.length,i=s):s=u}else Di(t,s)?(r=ui(t,s),l.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:r,type:Zr,duration:Number.POSITIVE_INFINITY}),s+=r.length,i=s):s++;if(s===u&&i!==u){let h=ne(t,i);this.cachedData?this.cachedData=si(this.cachedData,h):this.cachedData=h}}return{audioTrack:a,videoTrack:wi(),id3Track:l,textTrack:wi()}}demuxSampleAes(t,e,i){return Promise.reject(Error(`[${this}] This demuxer does not support Sample-AES decryption`))}flush(t){let e=this.cachedData;return e&&(this.cachedData=null,this.demux(e,0)),{audioTrack:this._audioTrack,videoTrack:wi(),id3Track:this._id3Track,textTrack:wi()}}destroy(){}}let Bl=(t,e,i)=>{if(L(t))return 90*t;return 90000*e+(i?90000*i.baseTime/i.timescale:0)};function vo(t,e){return t[e]===255&&(246&t[e+1])==240}function Eo(t,e){return 1&t[e+1]?7:9}function ca(t,e){return(3&t[e+3])<<11|t[e+4]<<3|(224&t[e+5])>>>5}function qn(t,e){return e+1<t.length&&vo(t,e)}function $l(t,e){if(qn(t,e)){let i=Eo(t,e);if(e+i>=t.length)return!1;let r=ca(t,e);if(r<=i)return!1;let s=e+r;return s===t.length||qn(t,s)}return!1}function yo(t,e,i,r,s){if(!t.samplerate){let a=function(l,c,u,h){let m,y,S,_,w=navigator.userAgent.toLowerCase(),I=h,C=[96000,88200,64000,48000,44100,32000,24000,22050,16000,12000,11025,8000,7350];m=1+((192&c[u+2])>>>6);let P=(60&c[u+2])>>>2;if(!(P>C.length-1))return S=(1&c[u+2])<<2,S|=(192&c[u+3])>>>6,D.log(`manifest codec:${h}, ADTS type:${m}, samplingIndex:${P}`),/firefox/i.test(w)?P>=6?(m=5,_=[,,,,],y=P-3):(m=2,_=[,,],y=P):w.indexOf("android")!==-1?(m=2,_=[,,],y=P):(m=5,_=[,,,,],h&&(h.indexOf("mp4a.40.29")!==-1||h.indexOf("mp4a.40.5")!==-1)||!h&&P>=6?y=P-3:((h&&h.indexOf("mp4a.40.2")!==-1&&(P>=6&&S===1||/vivaldi/i.test(w))||!h&&S===1)&&(m=2,_=[,,]),y=P)),_[0]=m<<3,_[0]|=(14&P)>>1,_[1]|=(1&P)<<7,_[1]|=S<<3,m===5&&(_[1]|=(14&y)>>1,_[2]=(1&y)<<7,_[2]|=8,_[3]=0),{config:_,samplerate:C[P],channelCount:S,codec:"mp4a.40."+m,manifestCodec:I};{let F=Error("invalid ADTS sampling index:"+P);l.emit(b.ERROR,b.ERROR,{type:H.MEDIA_ERROR,details:N.FRAG_PARSING_ERROR,fatal:!0,error:F,reason:F.message})}}(e,i,r,s);if(!a)return;t.config=a.config,t.samplerate=a.samplerate,t.channelCount=a.channelCount,t.codec=a.codec,t.manifestCodec=a.manifestCodec,D.log(`parsed codec:${t.codec}, rate:${a.samplerate}, channels:${a.channelCount}`)}}function vi(t){return 92160000/t}function vr(t,e,i,r,s){let a=r+s*vi(t.samplerate),l=function(h,m){let y=Eo(h,m);if(m+y<=h.length){let S=ca(h,m)-y;if(S>0)return{headerLength:y,frameLength:S}}}(e,i),c;if(l){let{frameLength:h,headerLength:m}=l,y=m+h,S=Math.max(0,i+y-e.length);S?(c=new Uint8Array(y-m),c.set(e.subarray(i+m,e.length),0)):c=e.subarray(i+m,i+y);let _={unit:c,pts:a};return S||t.samples.push(_),{sample:_,length:y,missing:S}}let u=e.length-i;return c=new Uint8Array(u),c.set(e.subarray(i,e.length),0),{sample:{unit:c,pts:a},length:u,missing:-1}}let Er=null,be=[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],So=[44100,48000,32000,22050,24000,16000,11025,12000,8000],bo=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],To=[0,1,1,4];function ua(t,e,i,r,s){if(i+24>e.length)return;let a=da(e,i);if(a&&i+a.frameLength<=e.length){let l=r+s*(90000*a.samplesPerFrame/a.sampleRate),c={unit:e.subarray(i,i+a.frameLength),pts:l,dts:l};return t.config=[],t.channelCount=a.channelCount,t.samplerate=a.sampleRate,t.samples.push(c),{sample:c,length:a.frameLength,missing:0}}}function da(t,e){let i=t[e+1]>>3&3,r=t[e+1]>>1&3,s=t[e+2]>>4&15,a=t[e+2]>>2&3;if(i!==1&&s!==0&&s!==15&&a!==3){let l=t[e+2]>>1&1,c=t[e+3]>>6,u=1000*be[14*(i===3?3-r:r===3?3:4)+s-1],h=So[3*(i===3?0:i===2?1:2)+a],m=c===3?1:2,y=bo[i][r],S=To[r],_=8*y*S,w=Math.floor(y*u/h+l)*S;if(Er===null){let I=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);Er=I?parseInt(I[1]):0}return!!Er&&Er<=87&&r===2&&u>=224000&&c===0&&(t[e+3]=128|t[e+3]),{sampleRate:h,channelCount:m,frameLength:w,samplesPerFrame:_}}}function Xn(t,e){return t[e]===255&&(224&t[e+1])==224&&(6&t[e+1])!=0}function ha(t,e){return e+1<t.length&&Xn(t,e)}function fa(t,e){if(e+1<t.length&&Xn(t,e)){let r=da(t,e),s=4;r!=null&&r.frameLength&&(s=r.frameLength);let a=e+s;return a===t.length||ha(t,a)}return!1}let _o=/\/emsg[-/]ID3/i,Jn=(t,e)=>{let i=0,r=5;e+=r;let s=new Uint32Array(1),a=new Uint32Array(1),l=new Uint8Array(1);for(;r>0;){l[0]=t[e];let c=Math.min(r,8),u=8-c;a[0]=4278190080>>>24+u<<u,s[0]=(l[0]&a[0])>>u,i=i?i<<c|s[0]:s[0],e+=1,r-=c}return i};class ma extends zn{constructor(t){super(),this.observer=void 0,this.observer=t}resetInitSegment(t,e,i,r){super.resetInitSegment(t,e,i,r),this._audioTrack={container:"audio/ac-3",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"ac3",samples:[],manifestCodec:e,duration:r,inputTimeScale:90000,dropped:0}}canParse(t,e){return e+64<t.length}appendFrame(t,e,i){let r=Qn(t,e,i,this.basePTS,this.frameIndex);if(r!==-1)return{sample:t.samples[t.samples.length-1],length:r,missing:0}}static probe(t){if(!t)return!1;let e=ui(t,0);if(!e)return!1;let i=e.length;return t[i]===11&&t[i+1]===119&&We(e)!==void 0&&Jn(t,i)<16}}function Qn(t,e,i,r,s){if(i+8>e.length)return-1;if(e[i]!==11||e[i+1]!==119)return-1;let a=e[i+4]>>6;if(a>=3)return-1;let l=[48000,44100,32000][a],c=63&e[i+4],u=2*[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][3*c+a];if(i+u>e.length)return-1;let h=e[i+6]>>5,m=0;h===2?m+=2:(1&h&&h!==1&&(m+=2),4&h&&(m+=2));let y=(e[i+6]<<8|e[i+7])>>12-m&1,S=[2,1,2,3,3,4,4,5][h]+y,_=e[i+5]>>3,w=7&e[i+5],I=new Uint8Array([a<<6|_<<1|w>>2,(3&w)<<6|h<<3|y<<2|c>>4,c<<4&224]),C=r+s*(1536/l*90000),P=e.subarray(i,i+u);return t.config=I,t.channelCount=S,t.samplerate=l,t.samples.push({unit:P,pts:C}),u}class Zn{constructor(t){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=t,this.bytesAvailable=t.byteLength,this.word=0,this.bitsAvailable=0}loadWord(){let t=this.data,e=this.bytesAvailable,i=t.byteLength-e,r=new Uint8Array(4),s=Math.min(4,e);if(s===0)throw Error("no bytes available");r.set(t.subarray(i,i+s)),this.word=new DataView(r.buffer).getUint32(0),this.bitsAvailable=8*s,this.bytesAvailable-=s}skipBits(t){let e;t=Math.min(t,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>t?(this.word<<=t,this.bitsAvailable-=t):(e=(t-=this.bitsAvailable)>>3,t-=e<<3,this.bytesAvailable-=e,this.loadWord(),this.word<<=t,this.bitsAvailable-=t)}readBits(t){let e=Math.min(this.bitsAvailable,t),i=this.word>>>32-e;if(t>32&&D.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=e,this.bitsAvailable>0)this.word<<=e;else{if(!(this.bytesAvailable>0))throw Error("no bits available");this.loadWord()}return e=t-e,e>0&&this.bitsAvailable?i<<e|this.readBits(e):i}skipLZ(){let t;for(t=0;t<this.bitsAvailable;++t)if((this.word&2147483648>>>t)!=0)return this.word<<=t,this.bitsAvailable-=t,t;return this.loadWord(),t+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ())}skipEG(){this.skipBits(1+this.skipLZ())}readUEG(){let t=this.skipLZ();return this.readBits(t+1)-1}readEG(){let t=this.readUEG();return 1&t?1+t>>>1:-1*(t>>>1)}readBoolean(){return this.readBits(1)===1}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}skipScalingList(t){let e,i=8,r=8;for(let s=0;s<t;s++)r!==0&&(e=this.readEG(),r=(i+e+256)%256),i=r===0?i:r}readSPS(){let t,e,i,r=0,s=0,a=0,l=0,c=this.readUByte.bind(this),u=this.readBits.bind(this),h=this.readUEG.bind(this),m=this.readBoolean.bind(this),y=this.skipBits.bind(this),S=this.skipEG.bind(this),_=this.skipUEG.bind(this),w=this.skipScalingList.bind(this);c();let I=c();if(u(5),y(3),c(),_(),I===100||I===110||I===122||I===244||I===44||I===83||I===86||I===118||I===128){let lt=h();if(lt===3&&y(1),_(),_(),y(1),m())for(e=lt!==3?8:12,i=0;i<e;i++)m()&&w(i<6?16:64)}_();let C=h();if(C===0)h();else if(C===1)for(y(1),S(),S(),t=h(),i=0;i<t;i++)S();_(),y(1);let P=h(),F=h(),W=u(1);W===0&&y(1),y(1),m()&&(r=h(),s=h(),a=h(),l=h());let z=[1,1];if(m()&&m())switch(c()){case 1:z=[1,1];break;case 2:z=[12,11];break;case 3:z=[10,11];break;case 4:z=[16,11];break;case 5:z=[40,33];break;case 6:z=[24,11];break;case 7:z=[20,11];break;case 8:z=[32,11];break;case 9:z=[80,33];break;case 10:z=[18,11];break;case 11:z=[15,11];break;case 12:z=[64,33];break;case 13:z=[160,99];break;case 14:z=[4,3];break;case 15:z=[3,2];break;case 16:z=[2,1];break;case 255:z=[c()<<8|c(),c()<<8|c()]}return{width:Math.ceil(16*(P+1)-2*r-2*s),height:(2-W)*(F+1)*16-(W?2:4)*(a+l),pixelRatio:z}}readSliceType(){return this.readUByte(),this.readUEG(),this.readUEG()}}class ga extends class{constructor(){this.VideoSample=null}createVideoSample(e,i,r,s){return{key:e,frame:!1,pts:i,dts:r,units:[],debug:s,length:0}}getLastNalUnit(e){var i;let r,s=this.VideoSample;if(s&&s.units.length!==0||(s=e[e.length-1]),(i=s)!=null&&i.units){let a=s.units;r=a[a.length-1]}return r}pushAccessUnit(e,i){if(e.units.length&&e.frame){if(e.pts===void 0){let r=i.samples,s=r.length;if(!s)return void i.dropped++;{let a=r[s-1];e.pts=a.pts,e.dts=a.dts}}i.samples.push(e)}e.debug.length&&D.log(e.pts+"/"+e.dts+":"+e.debug)}}{parseAVCPES(t,e,i,r,s){let a=this.parseAVCNALu(t,i.data),l,c=this.VideoSample,u=!1;i.data=null,c&&a.length&&!t.audFound&&(this.pushAccessUnit(c,t),c=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts,"")),a.forEach((h)=>{var m;switch(h.type){case 1:{let w=!1;l=!0;let I=h.data;if(u&&I.length>4){let C=new Zn(I).readSliceType();C!==2&&C!==4&&C!==7&&C!==9||(w=!0)}var y;if(w)(y=c)!=null&&y.frame&&!c.key&&(this.pushAccessUnit(c,t),c=this.VideoSample=null);c||(c=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts,"")),c.frame=!0,c.key=w;break}case 5:l=!0,(m=c)!=null&&m.frame&&!c.key&&(this.pushAccessUnit(c,t),c=this.VideoSample=null),c||(c=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts,"")),c.key=!0,c.frame=!0;break;case 6:l=!0,ja(h.data,1,i.pts,e.samples);break;case 7:{var S,_;l=!0,u=!0;let w=h.data,I=new Zn(w).readSPS();if(!t.sps||t.width!==I.width||t.height!==I.height||((S=t.pixelRatio)==null?void 0:S[0])!==I.pixelRatio[0]||((_=t.pixelRatio)==null?void 0:_[1])!==I.pixelRatio[1]){t.width=I.width,t.height=I.height,t.pixelRatio=I.pixelRatio,t.sps=[w],t.duration=s;let C=w.subarray(1,4),P="avc1.";for(let F=0;F<3;F++){let W=C[F].toString(16);W.length<2&&(W="0"+W),P+=W}t.codec=P}break}case 8:l=!0,t.pps=[h.data];break;case 9:l=!0,t.audFound=!0,c&&this.pushAccessUnit(c,t),c=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts,"");break;case 12:l=!0;break;default:l=!1,c&&(c.debug+="unknown NAL "+h.type+" ")}if(c&&l)c.units.push(h)}),r&&c&&(this.pushAccessUnit(c,t),this.VideoSample=null)}parseAVCNALu(t,e){let i=e.byteLength,r=t.naluState||0,s=r,a=[],l,c,u,h=0,m=-1,y=0;for(r===-1&&(m=0,y=31&e[0],r=0,h=1);h<i;)if(l=e[h++],r)if(r!==1)if(l)if(l===1){if(c=h-r-1,m>=0){let S={data:e.subarray(m,c),type:y};a.push(S)}else{let S=this.getLastNalUnit(t.samples);S&&(s&&h<=4-s&&S.state&&(S.data=S.data.subarray(0,S.data.byteLength-s)),c>0&&(S.data=si(S.data,e.subarray(0,c)),S.state=0))}h<i?(u=31&e[h],m=h,y=u,r=0):r=-1}else r=0;else r=3;else r=l?0:2;else r=l?0:1;if(m>=0&&r>=0){let S={data:e.subarray(m,i),type:y,state:r};a.push(S)}if(a.length===0){let S=this.getLastNalUnit(t.samples);S&&(S.data=si(S.data,e))}return t.naluState=r,a}}class pa{constructor(t,e,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new ln(e,{removePKCS7Padding:!1})}decryptBuffer(t){return this.decrypter.decrypt(t,this.keyData.key.buffer,this.keyData.iv.buffer)}decryptAacSample(t,e,i){let r=t[e].unit;if(r.length<=16)return;let s=r.subarray(16,r.length-r.length%16),a=s.buffer.slice(s.byteOffset,s.byteOffset+s.length);this.decryptBuffer(a).then((l)=>{let c=new Uint8Array(l);r.set(c,16),this.decrypter.isSync()||this.decryptAacSamples(t,e+1,i)})}decryptAacSamples(t,e,i){for(;;e++){if(e>=t.length)return void i();if(!(t[e].unit.length<32)&&(this.decryptAacSample(t,e,i),!this.decrypter.isSync()))return}}getAvcEncryptedData(t){let e=16*Math.floor((t.length-48)/160)+16,i=new Int8Array(e),r=0;for(let s=32;s<t.length-16;s+=160,r+=16)i.set(t.subarray(s,s+16),r);return i}getAvcDecryptedUnit(t,e){let i=new Uint8Array(e),r=0;for(let s=32;s<t.length-16;s+=160,r+=16)t.set(i.subarray(r,r+16),s);return t}decryptAvcSample(t,e,i,r,s){let a=kn(s.data),l=this.getAvcEncryptedData(a);this.decryptBuffer(l.buffer).then((c)=>{s.data=this.getAvcDecryptedUnit(a,c),this.decrypter.isSync()||this.decryptAvcSamples(t,e,i+1,r)})}decryptAvcSamples(t,e,i,r){if(t instanceof Uint8Array)throw Error("Cannot decrypt samples of type Uint8Array");for(;;e++,i=0){if(e>=t.length)return void r();let s=t[e].units;for(;!(i>=s.length);i++){let a=s[i];if(!(a.data.length<=48||a.type!==1&&a.type!==5||(this.decryptAvcSample(t,e,i,r,a),this.decrypter.isSync())))return}}}}class Bi{constructor(t,e,i){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._duration=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=t,this.config=e,this.typeSupported=i,this.videoParser=new ga}static probe(t){let e=Bi.syncOffset(t);return e>0&&D.warn("MPEG2-TS detected but first sync word found @ offset "+e),e!==-1}static syncOffset(t){let e=t.length,i=Math.min(940,e-188)+1,r=0;for(;r<i;){let s=!1,a=-1,l=0;for(let c=r;c<e;c+=188){if(t[c]!==71||e-c!=188&&t[c+188]!==71){if(l)return-1;break}if(l++,a===-1&&(a=c,a!==0&&(i=Math.min(a+18612,t.length-188)+1)),s||(s=ts(t,c)===0),s&&l>1&&(a===0&&l>2||c+188>i))return a}r++}return-1}static createTrack(t,e){return{container:t==="video"||t==="audio"?"video/mp2t":void 0,type:t,id:oe[t],pid:-1,inputTimeScale:90000,sequenceNumber:0,samples:[],dropped:0,duration:t==="audio"?e:void 0}}resetInitSegment(t,e,i,r){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=Bi.createTrack("video"),this._audioTrack=Bi.createTrack("audio",r),this._id3Track=Bi.createTrack("id3"),this._txtTrack=Bi.createTrack("text"),this._audioTrack.segmentCodec="aac",this.aacOverFlow=null,this.remainderData=null,this.audioCodec=e,this.videoCodec=i,this._duration=r}resetTimeStamp(){}resetContiguity(){let{_audioTrack:t,_videoTrack:e,_id3Track:i}=this;t&&(t.pesData=null),e&&(e.pesData=null),i&&(i.pesData=null),this.aacOverFlow=null,this.remainderData=null}demux(t,e,i=!1,r=!1){let s;i||(this.sampleAes=null);let a=this._videoTrack,l=this._audioTrack,c=this._id3Track,u=this._txtTrack,h=a.pid,m=a.pesData,y=l.pid,S=c.pid,_=l.pesData,w=c.pesData,I=null,C=this.pmtParsed,P=this._pmtId,F=t.length;if(this.remainderData&&(F=(t=si(this.remainderData,t)).length,this.remainderData=null),F<188&&!r)return this.remainderData=t,{audioTrack:l,videoTrack:a,id3Track:c,textTrack:u};let W=Math.max(0,Bi.syncOffset(t));F-=(F-W)%188,F<t.byteLength&&!r&&(this.remainderData=new Uint8Array(t.buffer,F,t.buffer.byteLength-F));let z=0;for(let it=W;it<F;it+=188)if(t[it]===71){let ft=!!(64&t[it+1]),mt=ts(t,it),Q;if((48&t[it+3])>>4>1){if(Q=it+5+t[it+4],Q===it+188)continue}else Q=it+4;switch(mt){case h:ft&&(m&&(s=yr(m))&&this.videoParser.parseAVCPES(a,u,s,!1,this._duration),m={data:[],size:0}),m&&(m.data.push(t.subarray(Q,it+188)),m.size+=it+188-Q);break;case y:if(ft){if(_&&(s=yr(_)))switch(l.segmentCodec){case"aac":this.parseAACPES(l,s);break;case"mp3":this.parseMPEGPES(l,s);break;case"ac3":this.parseAC3PES(l,s)}_={data:[],size:0}}_&&(_.data.push(t.subarray(Q,it+188)),_.size+=it+188-Q);break;case S:ft&&(w&&(s=yr(w))&&this.parseID3PES(c,s),w={data:[],size:0}),w&&(w.data.push(t.subarray(Q,it+188)),w.size+=it+188-Q);break;case 0:ft&&(Q+=t[Q]+1),P=this._pmtId=Ao(t,Q);break;case P:{ft&&(Q+=t[Q]+1);let X=va(t,Q,this.typeSupported,i);h=X.videoPid,h>0&&(a.pid=h,a.segmentCodec=X.segmentVideoCodec),y=X.audioPid,y>0&&(l.pid=y,l.segmentCodec=X.segmentAudioCodec),S=X.id3Pid,S>0&&(c.pid=S),I===null||C||(D.warn(`MPEG-TS PMT found at ${it} after unknown PID '${I}'. Backtracking to sync byte @${W} to parse all TS packets.`),I=null,it=W-188),C=this.pmtParsed=!0;break}case 17:case 8191:break;default:I=mt}}else z++;if(z>0){let it=Error(`Found ${z} TS packet/s that do not start with 0x47`);this.observer.emit(b.ERROR,b.ERROR,{type:H.MEDIA_ERROR,details:N.FRAG_PARSING_ERROR,fatal:!1,error:it,reason:it.message})}a.pesData=m,l.pesData=_,c.pesData=w;let lt={audioTrack:l,videoTrack:a,id3Track:c,textTrack:u};return r&&this.extractRemainingSamples(lt),lt}flush(){let{remainderData:t}=this,e;return this.remainderData=null,e=t?this.demux(t,-1,!1,!0):{videoTrack:this._videoTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(e),this.sampleAes?this.decrypt(e,this.sampleAes):e}extractRemainingSamples(t){let{audioTrack:e,videoTrack:i,id3Track:r,textTrack:s}=t,a=i.pesData,l=e.pesData,c=r.pesData,u;if(a&&(u=yr(a))?(this.videoParser.parseAVCPES(i,s,u,!0,this._duration),i.pesData=null):i.pesData=a,l&&(u=yr(l))){switch(e.segmentCodec){case"aac":this.parseAACPES(e,u);break;case"mp3":this.parseMPEGPES(e,u);break;case"ac3":this.parseAC3PES(e,u)}e.pesData=null}else l!=null&&l.size&&D.log("last AAC PES packet truncated,might overlap between fragments"),e.pesData=l;c&&(u=yr(c))?(this.parseID3PES(r,u),r.pesData=null):r.pesData=c}demuxSampleAes(t,e,i){let r=this.demux(t,i,!0,!this.config.progressive),s=this.sampleAes=new pa(this.observer,this.config,e);return this.decrypt(r,s)}decrypt(t,e){return new Promise((i)=>{let{audioTrack:r,videoTrack:s}=t;r.samples&&r.segmentCodec==="aac"?e.decryptAacSamples(r.samples,0,()=>{s.samples?e.decryptAvcSamples(s.samples,0,0,()=>{i(t)}):i(t)}):s.samples&&e.decryptAvcSamples(s.samples,0,0,()=>{i(t)})})}destroy(){this._duration=0}parseAACPES(t,e){let i=0,r=this.aacOverFlow,s,a,l,c=e.data;if(r){this.aacOverFlow=null;let m=r.missing,y=r.sample.unit.byteLength;if(m===-1)c=si(r.sample.unit,c);else{let S=y-m;r.sample.unit.set(c.subarray(0,m),S),t.samples.push(r.sample),i=r.missing}}for(s=i,a=c.length;s<a-1&&!qn(c,s);s++);if(s!==i){let m,y=s<a-1;m=y?"AAC PES did not start with ADTS header,offset:"+s:"No ADTS header found in AAC PES";let S=Error(m);if(D.warn("parsing error: "+m),this.observer.emit(b.ERROR,b.ERROR,{type:H.MEDIA_ERROR,details:N.FRAG_PARSING_ERROR,fatal:!1,levelRetry:y,error:S,reason:m}),!y)return}if(yo(t,this.observer,c,s,this.audioCodec),e.pts!==void 0)l=e.pts;else{if(!r)return void D.warn("[tsdemuxer]: AAC PES unknown PTS");{let m=vi(t.samplerate);l=r.sample.pts+m}}let u,h=0;for(;s<a;){if(u=vr(t,c,s,l,h),s+=u.length,u.missing){this.aacOverFlow=u;break}for(h++;s<a-1&&!qn(c,s);s++);}}parseMPEGPES(t,e){let i=e.data,r=i.length,s=0,a=0,l=e.pts;if(l!==void 0)for(;a<r;)if(ha(i,a)){let c=ua(t,i,a,l,s);if(!c)break;a+=c.length,s++}else a++;else D.warn("[tsdemuxer]: MPEG PES unknown PTS")}parseAC3PES(t,e){{let{data:i,pts:r}=e;if(r===void 0)return void D.warn("[tsdemuxer]: AC3 PES unknown PTS");let s=i.length,a,l=0,c=0;for(;c<s&&(a=Qn(t,i,c,r,l++))>0;)c+=a}}parseID3PES(t,e){if(e.pts===void 0)return void D.warn("[tsdemuxer]: ID3 PES unknown PTS");let i=T({},e,{type:this._videoTrack?kr:Zr,duration:Number.POSITIVE_INFINITY});t.samples.push(i)}}function ts(t,e){return((31&t[e+1])<<8)+t[e+2]}function Ao(t,e){return(31&t[e+10])<<8|t[e+11]}function va(t,e,i,r){let s={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},a=e+3+((15&t[e+1])<<8|t[e+2])-4;for(e+=12+((15&t[e+10])<<8|t[e+11]);e<a;){let l=ts(t,e),c=(15&t[e+3])<<8|t[e+4];switch(t[e]){case 207:if(!r){es("ADTS AAC");break}case 15:s.audioPid===-1&&(s.audioPid=l);break;case 21:s.id3Pid===-1&&(s.id3Pid=l);break;case 219:if(!r){es("H.264");break}case 27:s.videoPid===-1&&(s.videoPid=l,s.segmentVideoCodec="avc");break;case 3:case 4:i.mpeg||i.mp3?s.audioPid===-1&&(s.audioPid=l,s.segmentAudioCodec="mp3"):D.log("MPEG audio found, not supported in this browser");break;case 193:if(!r){es("AC-3");break}case 129:i.ac3?s.audioPid===-1&&(s.audioPid=l,s.segmentAudioCodec="ac3"):D.log("AC-3 audio found, not supported in this browser");break;case 6:if(s.audioPid===-1&&c>0){let u=e+5,h=c;for(;h>2;){switch(t[u]){case 106:i.ac3!==!0?D.log("AC-3 audio found, not supported in this browser for now"):(s.audioPid=l,s.segmentAudioCodec="ac3")}let m=t[u+1]+2;u+=m,h-=m}}break;case 194:case 135:D.warn("Unsupported EC-3 in M2TS found");break;case 36:D.warn("Unsupported HEVC in M2TS found")}e+=c+5}return s}function es(t){D.log(t+" with AES-128-CBC encryption found in unencrypted stream")}function yr(t){let e,i,r,s,a,l=0,c=t.data;if(!t||t.size===0)return null;for(;c[0].length<19&&c.length>1;)c[0]=si(c[0],c[1]),c.splice(1,1);if(e=c[0],(e[0]<<16)+(e[1]<<8)+e[2]===1){if(i=(e[4]<<8)+e[5],i&&i>t.size-6)return null;let u=e[7];192&u&&(s=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,64&u?(a=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2,s-a>5400000&&(D.warn(Math.round((s-a)/90000)+"s delta between PTS and DTS, align them"),s=a)):a=s),r=e[8];let h=r+9;if(t.size<=h)return null;t.size-=h;let m=new Uint8Array(t.size);for(let y=0,S=c.length;y<S;y++){e=c[y];let _=e.byteLength;if(h){if(h>_){h-=_;continue}e=e.subarray(h),_-=h,h=0}m.set(e,l),l+=_}return i&&(i-=r+3),{data:m,pts:s,dts:a,len:i}}return null}class hn{static getSilentFrame(t,e){switch(t){case"mp4a.40.2":if(e===1)return new Uint8Array([0,200,0,128,35,128]);if(e===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(e===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(e===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(e===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]);if(e===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(e===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]);if(e===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]);if(e===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])}}}let f=Math.pow(2,32)-1;class g{static init(){let t;for(t in g.types={avc1:[],avcC:[],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:[]},g.types)g.types.hasOwnProperty(t)&&(g.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);let e=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]),i=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]);g.HDLR_TYPES={video:e,audio:i};let r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),s=new Uint8Array([0,0,0,0,0,0,0,0]);g.STTS=g.STSC=g.STCO=s,g.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),g.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),g.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),g.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);let a=new Uint8Array([105,115,111,109]),l=new Uint8Array([97,118,99,49]),c=new Uint8Array([0,0,0,1]);g.FTYP=g.box(g.types.ftyp,a,c,a,l),g.DINF=g.box(g.types.dinf,g.box(g.types.dref,r))}static box(t,...e){let i=8,r=e.length,s=r;for(;r--;)i+=e[r].byteLength;let a=new Uint8Array(i);for(a[0]=i>>24&255,a[1]=i>>16&255,a[2]=i>>8&255,a[3]=255&i,a.set(t,4),r=0,i=8;r<s;r++)a.set(e[r],i),i+=e[r].byteLength;return a}static hdlr(t){return g.box(g.types.hdlr,g.HDLR_TYPES[t])}static mdat(t){return g.box(g.types.mdat,t)}static mdhd(t,e){e*=t;let i=Math.floor(e/(f+1)),r=Math.floor(e%(f+1));return g.box(g.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i,r>>24,r>>16&255,r>>8&255,255&r,85,196,0,0]))}static mdia(t){return g.box(g.types.mdia,g.mdhd(t.timescale,t.duration),g.hdlr(t.type),g.minf(t))}static mfhd(t){return g.box(g.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))}static minf(t){return t.type==="audio"?g.box(g.types.minf,g.box(g.types.smhd,g.SMHD),g.DINF,g.stbl(t)):g.box(g.types.minf,g.box(g.types.vmhd,g.VMHD),g.DINF,g.stbl(t))}static moof(t,e,i){return g.box(g.types.moof,g.mfhd(t),g.traf(i,e))}static moov(t){let e=t.length,i=[];for(;e--;)i[e]=g.trak(t[e]);return g.box.apply(null,[g.types.moov,g.mvhd(t[0].timescale,t[0].duration)].concat(i).concat(g.mvex(t)))}static mvex(t){let e=t.length,i=[];for(;e--;)i[e]=g.trex(t[e]);return g.box.apply(null,[g.types.mvex,...i])}static mvhd(t,e){e*=t;let i=Math.floor(e/(f+1)),r=Math.floor(e%(f+1)),s=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i,r>>24,r>>16&255,r>>8&255,255&r,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 g.box(g.types.mvhd,s)}static sdtp(t){let e=t.samples||[],i=new Uint8Array(4+e.length),r,s;for(r=0;r<e.length;r++)s=e[r].flags,i[r+4]=s.dependsOn<<4|s.isDependedOn<<2|s.hasRedundancy;return g.box(g.types.sdtp,i)}static stbl(t){return g.box(g.types.stbl,g.stsd(t),g.box(g.types.stts,g.STTS),g.box(g.types.stsc,g.STSC),g.box(g.types.stsz,g.STSZ),g.box(g.types.stco,g.STCO))}static avc1(t){let e,i,r,s=[],a=[];for(e=0;e<t.sps.length;e++)i=t.sps[e],r=i.byteLength,s.push(r>>>8&255),s.push(255&r),s=s.concat(Array.prototype.slice.call(i));for(e=0;e<t.pps.length;e++)i=t.pps[e],r=i.byteLength,a.push(r>>>8&255),a.push(255&r),a=a.concat(Array.prototype.slice.call(i));let l=g.box(g.types.avcC,new Uint8Array([1,s[3],s[4],s[5],255,224|t.sps.length].concat(s).concat([t.pps.length]).concat(a))),c=t.width,u=t.height,h=t.pixelRatio[0],m=t.pixelRatio[1];return g.box(g.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,c>>8&255,255&c,u>>8&255,255&u,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]),l,g.box(g.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),g.box(g.types.pasp,new Uint8Array([h>>24,h>>16&255,h>>8&255,255&h,m>>24,m>>16&255,m>>8&255,255&m])))}static esds(t){let e=t.config.length;return new Uint8Array([0,0,0,0,3,23+e,0,1,0,4,15+e,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([e]).concat(t.config).concat([6,1,2]))}static audioStsd(t){let e=t.samplerate;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,e>>8&255,255&e,0,0])}static mp4a(t){return g.box(g.types.mp4a,g.audioStsd(t),g.box(g.types.esds,g.esds(t)))}static mp3(t){return g.box(g.types[".mp3"],g.audioStsd(t))}static ac3(t){return g.box(g.types["ac-3"],g.audioStsd(t),g.box(g.types.dac3,t.config))}static stsd(t){return t.type==="audio"?t.segmentCodec==="mp3"&&t.codec==="mp3"?g.box(g.types.stsd,g.STSD,g.mp3(t)):t.segmentCodec==="ac3"?g.box(g.types.stsd,g.STSD,g.ac3(t)):g.box(g.types.stsd,g.STSD,g.mp4a(t)):g.box(g.types.stsd,g.STSD,g.avc1(t))}static tkhd(t){let e=t.id,i=t.duration*t.timescale,r=t.width,s=t.height,a=Math.floor(i/(f+1)),l=Math.floor(i%(f+1));return g.box(g.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,0,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,l>>24,l>>16&255,l>>8&255,255&l,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,r>>8&255,255&r,0,0,s>>8&255,255&s,0,0]))}static traf(t,e){let i=g.sdtp(t),r=t.id,s=Math.floor(e/(f+1)),a=Math.floor(e%(f+1));return g.box(g.types.traf,g.box(g.types.tfhd,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])),g.box(g.types.tfdt,new Uint8Array([1,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,a>>24,a>>16&255,a>>8&255,255&a])),g.trun(t,i.length+16+20+8+16+8+8),i)}static trak(t){return t.duration=t.duration||4294967295,g.box(g.types.trak,g.tkhd(t),g.mdia(t))}static trex(t){let e=t.id;return g.box(g.types.trex,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(t,e){let i=t.samples||[],r=i.length,s=12+16*r,a=new Uint8Array(s),l,c,u,h,m,y;for(e+=8+s,a.set([t.type==="video"?1:0,0,15,1,r>>>24&255,r>>>16&255,r>>>8&255,255&r,e>>>24&255,e>>>16&255,e>>>8&255,255&e],0),l=0;l<r;l++)c=i[l],u=c.duration,h=c.size,m=c.flags,y=c.cts,a.set([u>>>24&255,u>>>16&255,u>>>8&255,255&u,h>>>24&255,h>>>16&255,h>>>8&255,255&h,m.isLeading<<2|m.dependsOn,m.isDependedOn<<6|m.hasRedundancy<<4|m.paddingValue<<1|m.isNonSync,61440&m.degradPrio,15&m.degradPrio,y>>>24&255,y>>>16&255,y>>>8&255,255&y],12+16*l);return g.box(g.types.trun,a)}static initSegment(t){g.types||g.init();let e=g.moov(t);return si(g.FTYP,e)}}g.types=void 0,g.HDLR_TYPES=void 0,g.STTS=void 0,g.STSC=void 0,g.STCO=void 0,g.STSZ=void 0,g.VMHD=void 0,g.SMHD=void 0,g.STSD=void 0,g.FTYP=void 0,g.DINF=void 0;function p(t,e,i=1,r=!1){let s=t*e*i;return r?Math.round(s):s}function k(t,e=!1){return p(t,1000,0.000011111111111111112,e)}let O,$=null,G=null;class U{constructor(t,e,i,r=""){if(this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextAvcDts=null,this.nextAudioPts=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=t,this.config=e,this.typeSupported=i,this.ISGenerated=!1,$===null){let s=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);$=s?parseInt(s[1]):0}if(G===null){let s=navigator.userAgent.match(/Safari\/(\d+)/i);G=s?parseInt(s[1]):0}}destroy(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null}resetTimeStamp(t){D.log("[mp4-remuxer]: initPTS & initDTS reset"),this._initPTS=this._initDTS=t}resetNextTimestamp(){D.log("[mp4-remuxer]: reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){D.log("[mp4-remuxer]: ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0}getVideoStartPts(t){let e=!1,i=t.reduce((r,s)=>{let a=s.pts-r;return a<-4294967296?(e=!0,j(r,s.pts)):a>0?r:s.pts},t[0].pts);return e&&D.debug("PTS rollover detected"),i}remux(t,e,i,r,s,a,l,c){let u,h,m,y,S,_,w=s,I=s,C=t.pid>-1,P=e.pid>-1,F=e.samples.length,W=t.samples.length>0,z=l&&F>0||F>1;if((!C||W)&&(!P||z)||this.ISGenerated||l){if(this.ISGenerated){var lt,it,ft,mt;let ht=this.videoTrackConfig;!ht||e.width===ht.width&&e.height===ht.height&&((lt=e.pixelRatio)==null?void 0:lt[0])===((it=ht.pixelRatio)==null?void 0:it[0])&&((ft=e.pixelRatio)==null?void 0:ft[1])===((mt=ht.pixelRatio)==null?void 0:mt[1])||this.resetInitSegment()}else m=this.generateIS(t,e,s,a);let Q=this.isVideoContiguous,X,kt=-1;if(z&&(kt=function(ht){for(let wt=0;wt<ht.length;wt++)if(ht[wt].key)return wt;return-1}(e.samples),!Q&&this.config.forceKeyFrameOnDiscontinuity))if(_=!0,kt>0){D.warn(`[mp4-remuxer]: Dropped ${kt} out of ${F} video samples due to a missing keyframe`);let ht=this.getVideoStartPts(e.samples);e.samples=e.samples.slice(kt),e.dropped+=kt,I+=(e.samples[0].pts-ht)/e.inputTimeScale,X=I}else kt===-1&&(D.warn(`[mp4-remuxer]: No keyframe found out of ${F} video samples`),_=!1);if(this.ISGenerated){if(W&&z){let ht=this.getVideoStartPts(e.samples),wt=(j(t.samples[0].pts,ht)-ht)/e.inputTimeScale;w+=Math.max(0,wt),I+=Math.max(0,-wt)}if(W){if(t.samplerate||(D.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"),m=this.generateIS(t,e,s,a)),h=this.remuxAudio(t,w,this.isAudioContiguous,a,P||z||c===Ue?I:void 0),z){let ht=h?h.endPTS-h.startPTS:0;e.inputTimeScale||(D.warn("[mp4-remuxer]: regenerate InitSegment as video detected"),m=this.generateIS(t,e,s,a)),u=this.remuxVideo(e,I,Q,ht)}}else z&&(u=this.remuxVideo(e,I,Q,0));u&&(u.firstKeyFrame=kt,u.independent=kt!==-1,u.firstKeyFramePTS=X)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(i.samples.length&&(S=Z(i,s,this._initPTS,this._initDTS)),r.samples.length&&(y=Tt(r,s,this._initPTS))),{audio:h,video:u,initSegment:m,independent:_,text:y,id3:S}}generateIS(t,e,i,r){let s=t.samples,a=e.samples,l=this.typeSupported,c={},u=this._initPTS,h,m,y,S=!u||r,_="audio/mp4";if(S&&(h=m=1/0),t.config&&s.length){switch(t.timescale=t.samplerate,t.segmentCodec){case"mp3":l.mpeg?(_="audio/mpeg",t.codec=""):l.mp3&&(t.codec="mp3");break;case"ac3":t.codec="ac-3"}c.audio={id:"audio",container:_,codec:t.codec,initSegment:t.segmentCodec==="mp3"&&l.mpeg?new Uint8Array(0):g.initSegment([t]),metadata:{channelCount:t.channelCount}},S&&(y=t.inputTimeScale,u&&y===u.timescale?S=!1:h=m=s[0].pts-Math.round(y*i))}if(e.sps&&e.pps&&a.length){if(e.timescale=e.inputTimeScale,c.video={id:"main",container:"video/mp4",codec:e.codec,initSegment:g.initSegment([e]),metadata:{width:e.width,height:e.height}},S)if(y=e.inputTimeScale,u&&y===u.timescale)S=!1;else{let w=this.getVideoStartPts(a),I=Math.round(y*i);m=Math.min(m,j(a[0].dts,w)-I),h=Math.min(h,w-I)}this.videoTrackConfig={width:e.width,height:e.height,pixelRatio:e.pixelRatio}}if(Object.keys(c).length)return this.ISGenerated=!0,S?(this._initPTS={baseTime:h,timescale:y},this._initDTS={baseTime:m,timescale:y}):h=y=void 0,{tracks:c,initPTS:h,timescale:y}}remuxVideo(t,e,i,r){let{inputTimeScale:s,samples:a}=t,l=[],c=a.length,u=this._initPTS,h,m,y=this.nextAvcDts,S=8,_=this.videoSampleDuration,w=Number.POSITIVE_INFINITY,I=Number.NEGATIVE_INFINITY,C=!1;if(!i||y===null){let at=e*s,vt=a[0].pts-j(a[0].dts,a[0].pts);$&&y!==null&&Math.abs(at-vt-y)<15000?i=!0:y=at-vt}let P=u.baseTime*s/u.timescale;for(let at=0;at<c;at++){let vt=a[at];vt.pts=j(vt.pts-P,y),vt.dts=j(vt.dts-P,y),vt.dts<a[at>0?at-1:at].dts&&(C=!0)}C&&a.sort(function(at,vt){let Dt=at.dts-vt.dts,Ot=at.pts-vt.pts;return Dt||Ot}),h=a[0].dts,m=a[a.length-1].dts;let F=m-h,W=F?Math.round(F/(c-1)):_||t.inputTimeScale/30;if(i){let at=h-y,vt=at>W,Dt=at<-1;if((vt||Dt)&&(vt?D.warn(`AVC: ${k(at,!0)} ms (${at}dts) hole between fragments detected at ${e.toFixed(3)}`):D.warn(`AVC: ${k(-at,!0)} ms (${at}dts) overlapping between fragments detected at ${e.toFixed(3)}`),!Dt||y>=a[0].pts||$)){h=y;let Ot=a[0].pts-at;if(vt)a[0].dts=h,a[0].pts=Ot;else for(let Gt=0;Gt<a.length&&!(a[Gt].dts>Ot);Gt++)a[Gt].dts-=at,a[Gt].pts-=at;D.log(`Video: Initial PTS/DTS adjusted: ${k(Ot,!0)}/${k(h,!0)}, delta: ${k(at,!0)} ms`)}}h=Math.max(0,h);let z=0,lt=0,it=h;for(let at=0;at<c;at++){let vt=a[at],Dt=vt.units,Ot=Dt.length,Gt=0;for(let le=0;le<Ot;le++)Gt+=Dt[le].data.length;lt+=Gt,z+=Ot,vt.length=Gt,vt.dts<it?(vt.dts=it,it+=W/4|0||1):it=vt.dts,w=Math.min(vt.pts,w),I=Math.max(vt.pts,I)}m=a[c-1].dts;let ft=lt+4*z+8,mt;try{mt=new Uint8Array(ft)}catch(at){return void this.observer.emit(b.ERROR,b.ERROR,{type:H.MUX_ERROR,details:N.REMUX_ALLOC_ERROR,fatal:!1,error:at,bytes:ft,reason:"fail allocating video mdat "+ft})}let Q=new DataView(mt.buffer);Q.setUint32(0,ft),mt.set(g.types.mdat,4);let X=!1,kt=Number.POSITIVE_INFINITY,ht=Number.POSITIVE_INFINITY,wt=Number.NEGATIVE_INFINITY,It=Number.NEGATIVE_INFINITY;for(let at=0;at<c;at++){let vt=a[at],Dt=vt.units,Ot,Gt=0;for(let me=0,he=Dt.length;me<he;me++){let Ie=Dt[me],ri=Ie.data,pe=Ie.data.byteLength;Q.setUint32(S,pe),S+=4,mt.set(ri,S),S+=pe,Gt+=4+pe}if(at<c-1)_=a[at+1].dts-vt.dts,Ot=a[at+1].pts-vt.pts;else{let me=this.config,he=at>0?vt.dts-a[at-1].dts:W;if(Ot=at>0?vt.pts-a[at-1].pts:W,me.stretchShortVideoTrack&&this.nextAudioPts!==null){let Ie=Math.floor(me.maxBufferHole*s),ri=(r?w+r*s:this.nextAudioPts)-vt.pts;ri>Ie?(_=ri-he,_<0?_=he:X=!0,D.log(`[mp4-remuxer]: It is approximately ${ri/90} ms to the next segment; using duration ${_/90} ms for the last video frame.`)):_=he}else _=he}let le=Math.round(vt.pts-vt.dts);kt=Math.min(kt,_),wt=Math.max(wt,_),ht=Math.min(ht,Ot),It=Math.max(It,Ot),l.push(new Ct(vt.key,_,Gt,le))}if(l.length){if($){if($<70){let at=l[0].flags;at.dependsOn=2,at.isNonSync=0}}else if(G&&It-ht<wt-kt&&W/wt<0.025&&l[0].cts===0){D.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");let at=h;for(let vt=0,Dt=l.length;vt<Dt;vt++){let Ot=at+l[vt].duration,Gt=at+l[vt].cts;if(vt<Dt-1){let le=Ot+l[vt+1].cts;l[vt].duration=le-Gt}else l[vt].duration=vt?l[vt-1].duration:W;l[vt].cts=0,at=Ot}}}_=X||!_?W:_,this.nextAvcDts=y=m+_,this.videoSampleDuration=_,this.isVideoContiguous=!0;let Mt={data1:g.moof(t.sequenceNumber++,h,T({},t,{samples:l})),data2:mt,startPTS:w/s,endPTS:(I+_)/s,startDTS:h/s,endDTS:y/s,type:"video",hasAudio:!1,hasVideo:!0,nb:l.length,dropped:t.dropped};return t.samples=[],t.dropped=0,Mt}getSamplesPerFrame(t){switch(t.segmentCodec){case"mp3":return 1152;case"ac3":return 1536;default:return 1024}}remuxAudio(t,e,i,r,s){let a=t.inputTimeScale,l=a/(t.samplerate?t.samplerate:a),c=this.getSamplesPerFrame(t),u=c*l,h=this._initPTS,m=t.segmentCodec==="mp3"&&this.typeSupported.mpeg,y=[],S=s!==void 0,_=t.samples,w=m?0:8,I=this.nextAudioPts||-1,C=e*a,P=h.baseTime*a/h.timescale;if(this.isAudioContiguous=i=i||_.length&&I>0&&(r&&Math.abs(C-I)<9000||Math.abs(j(_[0].pts-P,C)-I)<20*u),_.forEach(function(wt){wt.pts=j(wt.pts-P,C)}),!i||I<0){if(_=_.filter((wt)=>wt.pts>=0),!_.length)return;I=s===0?0:r&&!S?Math.max(0,C):_[0].pts}if(t.segmentCodec==="aac"){let wt=this.config.maxAudioFramesDrift;for(let It=0,Mt=I;It<_.length;It++){let at=_[It],vt=at.pts,Dt=vt-Mt,Ot=Math.abs(1000*Dt/a);if(Dt<=-wt*u&&S)It===0&&(D.warn(`Audio frame @ ${(vt/a).toFixed(3)}s overlaps nextAudioPts by ${Math.round(1000*Dt/a)} ms.`),this.nextAudioPts=I=Mt=vt);else if(Dt>=wt*u&&Ot<1e4&&S){let Gt=Math.round(Dt/u);Mt=vt-Gt*u,Mt<0&&(Gt--,Mt+=u),It===0&&(this.nextAudioPts=I=Mt),D.warn(`[mp4-remuxer]: Injecting ${Gt} audio frame @ ${(Mt/a).toFixed(3)}s due to ${Math.round(1000*Dt/a)} ms gap.`);for(let le=0;le<Gt;le++){let me=Math.max(Mt,0),he=hn.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);he||(D.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."),he=at.unit.subarray()),_.splice(It,0,{unit:he,pts:me}),Mt+=u,It++}}at.pts=Mt,Mt+=u}}let F,W=null,z=null,lt=0,it=_.length;for(;it--;)lt+=_[it].unit.byteLength;for(let wt=0,It=_.length;wt<It;wt++){let Mt=_[wt],at=Mt.unit,vt=Mt.pts;if(z!==null)y[wt-1].duration=Math.round((vt-z)/l);else{if(i&&t.segmentCodec==="aac"&&(vt=I),W=vt,!(lt>0))return;lt+=w;try{F=new Uint8Array(lt)}catch(Ot){return void this.observer.emit(b.ERROR,b.ERROR,{type:H.MUX_ERROR,details:N.REMUX_ALLOC_ERROR,fatal:!1,error:Ot,bytes:lt,reason:"fail allocating audio mdat "+lt})}if(!m)new DataView(F.buffer).setUint32(0,lt),F.set(g.types.mdat,4)}F.set(at,w);let Dt=at.byteLength;w+=Dt,y.push(new Ct(!0,c,Dt,0)),z=vt}let ft=y.length;if(!ft)return;let mt=y[y.length-1];this.nextAudioPts=I=z+l*mt.duration;let Q=m?new Uint8Array(0):g.moof(t.sequenceNumber++,W/l,T({},t,{samples:y}));t.samples=[];let X=W/a,kt=I/a,ht={data1:Q,data2:F,startPTS:X,endPTS:kt,startDTS:X,endDTS:kt,type:"audio",hasAudio:!0,hasVideo:!1,nb:ft};return this.isAudioContiguous=!0,ht}remuxEmptyAudio(t,e,i,r){let s=t.inputTimeScale,a=s/(t.samplerate?t.samplerate:s),l=this.nextAudioPts,c=this._initDTS,u=90000*c.baseTime/c.timescale,h=(l!==null?l:r.startDTS*s)+u,m=r.endDTS*s+u,y=1024*a,S=Math.ceil((m-h)/y),_=hn.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);if(D.warn("[mp4-remuxer]: remux empty Audio"),!_)return void D.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec");let w=[];for(let I=0;I<S;I++){let C=h+I*y;w.push({unit:_,pts:C,dts:C})}return t.samples=w,this.remuxAudio(t,e,i,!1)}}function j(t,e){let i;if(e===null)return t;for(i=e<t?-8589934592:8589934592;Math.abs(t-e)>4294967296;)t+=i;return t}function Z(t,e,i,r){let s=t.samples.length;if(!s)return;let a=t.inputTimeScale;for(let c=0;c<s;c++){let u=t.samples[c];u.pts=j(u.pts-i.baseTime*a/i.timescale,e*a)/a,u.dts=j(u.dts-r.baseTime*a/r.timescale,e*a)/a}let l=t.samples;return t.samples=[],{samples:l}}function Tt(t,e,i){let r=t.samples.length;if(!r)return;let s=t.inputTimeScale;for(let l=0;l<r;l++){let c=t.samples[l];c.pts=j(c.pts-i.baseTime*s/i.timescale,e*s)/s}t.samples.sort((l,c)=>l.pts-c.pts);let a=t.samples;return t.samples=[],{samples:a}}class Ct{constructor(t,e,i,r){this.size=void 0,this.duration=void 0,this.cts=void 0,this.flags=void 0,this.duration=e,this.size=i,this.cts=r,this.flags={isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:t?2:1,isNonSync:t?0:1}}}function Ht(t,e){let i=t==null?void 0:t.codec;if(i&&i.length>4)return i;if(e===ot){if(i==="ec-3"||i==="ac-3"||i==="alac")return i;if(i==="fLaC"||i==="Opus")return Qr(i,!1);let r="mp4a.40.5";return D.info(`Parsed audio codec "${i}" or audio object type not handled. Using "${r}"`),r}return D.warn(`Unhandled video codec "${i}"`),i==="hvc1"||i==="hev1"?"hvc1.1.6.L120.90":i==="av01"?"av01.0.04M.08":"avc1.42e01e"}try{O=self.performance.now.bind(self.performance)}catch(t){D.debug("Unable to use Performance API on this environment"),O=ce==null?void 0:ce.Date.now}let ae=[{demux:class{constructor(e,i){this.remainderData=null,this.timeOffset=0,this.config=void 0,this.videoTrack=void 0,this.audioTrack=void 0,this.id3Track=void 0,this.txtTrack=void 0,this.config=i}resetTimeStamp(){}resetInitSegment(e,i,r,s){let a=this.videoTrack=wi("video",1),l=this.audioTrack=wi("audio",1),c=this.txtTrack=wi("text",1);if(this.id3Track=wi("id3",1),this.timeOffset=0,e==null||!e.byteLength)return;let u=xs(e);if(u.video){let{id:h,timescale:m,codec:y}=u.video;a.id=h,a.timescale=c.timescale=m,a.codec=y}if(u.audio){let{id:h,timescale:m,codec:y}=u.audio;l.id=h,l.timescale=m,l.codec=y}c.id=oe.text,a.sampleDuration=0,a.duration=l.duration=s}resetContiguity(){this.remainderData=null}static probe(e){return function(i){let r=i.byteLength;for(let s=0;s<r;){let a=Ft(i,s);if(a>8&&i[s+4]===109&&i[s+5]===111&&i[s+6]===111&&i[s+7]===102)return!0;s=a>1?s+a:r}return!1}(e)}demux(e,i){this.timeOffset=i;let r=e,s=this.videoTrack,a=this.txtTrack;if(this.config.progressive){this.remainderData&&(r=si(this.remainderData,e));let c=function(u){let h={valid:null,remainder:null},m=Wt(u,["moof"]);if(m.length<2)return h.remainder=u,h;let y=m[m.length-1];return h.valid=ne(u,0,y.byteOffset-8),h.remainder=ne(u,y.byteOffset-8),h}(r);this.remainderData=c.remainder,s.samples=c.valid||new Uint8Array}else s.samples=r;let l=this.extractID3Track(s,i);return a.samples=Ya(i,s),{videoTrack:s,audioTrack:this.audioTrack,id3Track:l,textTrack:this.txtTrack}}flush(){let e=this.timeOffset,i=this.videoTrack,r=this.txtTrack;i.samples=this.remainderData||new Uint8Array,this.remainderData=null;let s=this.extractID3Track(i,this.timeOffset);return r.samples=Ya(e,i),{videoTrack:i,audioTrack:wi(),id3Track:s,textTrack:wi()}}extractID3Track(e,i){let r=this.id3Track;if(e.samples.length){let s=Wt(e.samples,["emsg"]);s&&s.forEach((a)=>{let l=function(c){let u=c[0],h="",m="",y=0,S=0,_=0,w=0,I=0,C=0;if(u===0){for(;ye(c.subarray(C,C+1))!=="\x00";)h+=ye(c.subarray(C,C+1)),C+=1;for(h+=ye(c.subarray(C,C+1)),C+=1;ye(c.subarray(C,C+1))!=="\x00";)m+=ye(c.subarray(C,C+1)),C+=1;m+=ye(c.subarray(C,C+1)),C+=1,y=Ft(c,12),S=Ft(c,16),w=Ft(c,20),I=Ft(c,24),C=28}else if(u===1){C+=4,y=Ft(c,C),C+=4;let P=Ft(c,C);C+=4;let F=Ft(c,C);for(C+=4,_=4294967296*P+F,M(_)||(_=Number.MAX_SAFE_INTEGER,D.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),w=Ft(c,C),C+=4,I=Ft(c,C),C+=4;ye(c.subarray(C,C+1))!=="\x00";)h+=ye(c.subarray(C,C+1)),C+=1;for(h+=ye(c.subarray(C,C+1)),C+=1;ye(c.subarray(C,C+1))!=="\x00";)m+=ye(c.subarray(C,C+1)),C+=1;m+=ye(c.subarray(C,C+1)),C+=1}return{schemeIdUri:h,value:m,timeScale:y,presentationTime:_,presentationTimeDelta:S,eventDuration:w,id:I,payload:c.subarray(C,c.byteLength)}}(a);if(_o.test(l.schemeIdUri)){let c=L(l.presentationTime)?l.presentationTime/l.timeScale:i+l.presentationTimeDelta/l.timeScale,u=l.eventDuration===4294967295?Number.POSITIVE_INFINITY:l.eventDuration/l.timeScale;u<=0.001&&(u=Number.POSITIVE_INFINITY);let h=l.payload;r.samples.push({data:h,len:h.byteLength,dts:c,pts:c,type:kr,duration:u})}})}return r}demuxSampleAes(e,i,r){return Promise.reject(Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){}},remux:class{constructor(){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}destroy(){}resetTimeStamp(e){this.initPTS=e,this.lastEndTime=null}resetNextTimestamp(){this.lastEndTime=null}resetInitSegment(e,i,r,s){this.audioCodec=i,this.videoCodec=r,this.generateInitSegment(function(a,l){if(!a||!l)return a;let c=l.keyId;if(c&&l.isCommonEncryption)Wt(a,["moov","trak"]).forEach((u)=>{let h=Wt(u,["mdia","minf","stbl","stsd"])[0].subarray(8),m=Wt(h,["enca"]),y=m.length>0;y||(m=Wt(h,["encv"])),m.forEach((S)=>{Wt(y?S.subarray(28):S.subarray(78),["sinf"]).forEach((_)=>{let w=Us(_);if(w){let I=w.subarray(8,24);I.some((C)=>C!==0)||(D.log(`[eme] Patching keyId in 'enc${y?"a":"v"}>sinf>>tenc' box: ${ni(I)} -> ${ni(c)}`),w.set(c,8))}})})});return a}(e,s)),this.emitInitSegment=!0}generateInitSegment(e){let{audioCodec:i,videoCodec:r}=this;if(e==null||!e.byteLength)return this.initTracks=void 0,void(this.initData=void 0);let s=this.initData=xs(e);s.audio&&(i=Ht(s.audio,ot)),s.video&&(r=Ht(s.video,St));let a={};s.audio&&s.video?a.audiovideo={container:"video/mp4",codec:i+","+r,initSegment:e,id:"main"}:s.audio?a.audio={container:"audio/mp4",codec:i,initSegment:e,id:"audio"}:s.video?a.video={container:"video/mp4",codec:r,initSegment:e,id:"main"}:D.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."),this.initTracks=a}remux(e,i,r,s,a,l){var c,u;let{initPTS:h,lastEndTime:m}=this,y={audio:void 0,video:void 0,text:s,id3:r,initSegment:void 0};L(m)||(m=this.lastEndTime=a||0);let S=i.samples;if(S==null||!S.length)return y;let _={initPTS:void 0,timescale:1},w=this.initData;if((c=w)!=null&&c.length||(this.generateInitSegment(S),w=this.initData),(u=w)==null||!u.length)return D.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."),y;this.emitInitSegment&&(_.tracks=this.initTracks,this.emitInitSegment=!1);let I=function(mt,Q){let X=0,kt=0,ht=0,wt=Wt(mt,["moof","traf"]);for(let It=0;It<wt.length;It++){let Mt=wt[It],at=Wt(Mt,["tfhd"])[0],vt=Q[Ft(at,4)];if(!vt)continue;let Dt=vt.default,Ot=Ft(at,0)|(Dt==null?void 0:Dt.flags),Gt=Dt==null?void 0:Dt.duration;8&Ot&&(Gt=Ft(at,2&Ot?12:8));let le=vt.timescale||90000,me=Wt(Mt,["trun"]);for(let he=0;he<me.length;he++){if(X=Mi(me[he]),!X&&Gt)X=Gt*Ft(me[he],4);vt.type===St?kt+=X/le:vt.type===ot&&(ht+=X/le)}}if(kt===0&&ht===0){let It=1/0,Mt=0,at=0,vt=Wt(mt,["sidx"]);for(let Dt=0;Dt<vt.length;Dt++){let Ot=Wa(vt[Dt]);if(Ot!=null&&Ot.references){It=Math.min(It,Ot.earliestPresentationTime/Ot.timescale);let Gt=Ot.references.reduce((le,me)=>le+me.info.duration||0,0);Mt=Math.max(Mt,Gt+Ot.earliestPresentationTime/Ot.timescale),at=Mt-It}}if(at&&L(at))return at}return kt||ht}(S,w),C=function(mt,Q){return Wt(Q,["moof","traf"]).reduce((X,kt)=>{let ht=Wt(kt,["tfdt"])[0],wt=ht[0],It=Wt(kt,["tfhd"]).reduce((Mt,at)=>{let vt=Ft(at,4),Dt=mt[vt];if(Dt){let Ot=Ft(ht,4);if(wt===1){if(Ot===zr)return D.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"),Mt;Ot*=zr+1,Ot+=Ft(ht,8)}let Gt=Ot/(Dt.timescale||90000);if(L(Gt)&&(Mt===null||Gt<Mt))return Gt}return Mt},null);return It!==null&&L(It)&&(X===null||It<X)?It:X},null)}(w,S),P=C===null?a:C;(function(mt,Q,X,kt){if(mt===null)return!0;let ht=Math.max(kt,1),wt=Q-mt.baseTime/mt.timescale;return Math.abs(wt-X)>ht}(h,P,a,I)||_.timescale!==h.timescale&&l)&&(_.initPTS=P-a,h&&h.timescale===1&&D.warn("Adjusting initPTS by "+(_.initPTS-h.baseTime)),this.initPTS=h={baseTime:_.initPTS,timescale:1});let F=e?P-h.baseTime/h.timescale:m,W=F+I;(function(mt,Q,X){Wt(Q,["moof","traf"]).forEach((kt)=>{Wt(kt,["tfhd"]).forEach((ht)=>{let wt=Ft(ht,4),It=mt[wt];if(!It)return;let Mt=It.timescale||90000;Wt(kt,["tfdt"]).forEach((at)=>{let vt=at[0],Dt=X*Mt;if(Dt){let Ot=Ft(at,4);if(vt===0)Ot-=Dt,Ot=Math.max(Ot,0),Ps(at,4,Ot);else{Ot*=Math.pow(2,32),Ot+=Ft(at,8),Ot-=Dt,Ot=Math.max(Ot,0);let Gt=Math.floor(Ot/(zr+1)),le=Math.floor(Ot%(zr+1));Ps(at,4,Gt),Ps(at,8,le)}}})})})})(w,S,h.baseTime/h.timescale),I>0?this.lastEndTime=W:(D.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());let z=!!w.audio,lt=!!w.video,it="";z&&(it+="audio"),lt&&(it+="video");let ft={data1:S,startPTS:F,startDTS:F,endPTS:W,endDTS:W,type:it,hasAudio:z,hasVideo:lt,nb:1,dropped:0};return y.audio=ft.type==="audio"?ft:void 0,y.video=ft.type!=="audio"?ft:void 0,y.initSegment=_,y.id3=Z(r,a,h,h),s.samples.length&&(y.text=Tt(s,a,h)),y}}},{demux:Bi,remux:U},{demux:class extends zn{constructor(e,i){super(),this.observer=void 0,this.config=void 0,this.observer=e,this.config=i}resetInitSegment(e,i,r,s){super.resetInitSegment(e,i,r,s),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:i,duration:s,inputTimeScale:90000,dropped:0}}static probe(e){if(!e)return!1;let i=ui(e,0),r=(i==null?void 0:i.length)||0;if(fa(e,r))return!1;for(let s=e.length;r<s;r++)if($l(e,r))return D.log("ADTS sync word found !"),!0;return!1}canParse(e,i){return function(r,s){return function(a,l){return l+5<a.length}(r,s)&&vo(r,s)&&ca(r,s)<=r.length-s}(e,i)}appendFrame(e,i,r){yo(e,this.observer,i,r,e.manifestCodec);let s=vr(e,i,r,this.basePTS,this.frameIndex);if(s&&s.missing===0)return s}},remux:U},{demux:class extends zn{resetInitSegment(e,i,r,s){super.resetInitSegment(e,i,r,s),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:i,duration:s,inputTimeScale:90000,dropped:0}}static probe(e){if(!e)return!1;let i=ui(e,0),r=(i==null?void 0:i.length)||0;if(i&&e[r]===11&&e[r+1]===119&&We(i)!==void 0&&Jn(e,r)<=16)return!1;for(let s=e.length;r<s;r++)if(fa(e,r))return D.log("MPEG Audio sync word found !"),!0;return!1}canParse(e,i){return function(r,s){return Xn(r,s)&&4<=r.length-s}(e,i)}appendFrame(e,i,r){if(this.basePTS!==null)return ua(e,i,r,this.basePTS,this.frameIndex)}},remux:U}];ae.splice(2,0,{demux:ma,remux:U});class ge{constructor(t,e,i,r,s){this.async=!1,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.vendor=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=t,this.typeSupported=e,this.config=i,this.vendor=r,this.id=s}configure(t){this.transmuxConfig=t,this.decrypter&&this.decrypter.reset()}push(t,e,i,r){let s=i.transmuxing;s.executeStart=O();let a=new Uint8Array(t),{currentTransmuxState:l,transmuxConfig:c}=this;r&&(this.currentTransmuxState=r);let{contiguous:u,discontinuity:h,trackSwitch:m,accurateTimeOffset:y,timeOffset:S,initSegmentChange:_}=r||l,{audioCodec:w,videoCodec:I,defaultInitPts:C,duration:P,initSegmentData:F}=c,W=function(ft,mt){let Q=null;return ft.byteLength>0&&(mt==null?void 0:mt.key)!=null&&mt.iv!==null&&mt.method!=null&&(Q=mt),Q}(a,e);if(W&&W.method==="AES-128"){let ft=this.getDecrypter();if(!ft.isSync())return this.decryptionPromise=ft.webCryptoDecrypt(a,W.key.buffer,W.iv.buffer).then((mt)=>{let Q=this.push(mt,null,i);return this.decryptionPromise=null,Q}),this.decryptionPromise;{let mt=ft.softwareDecrypt(a,W.key.buffer,W.iv.buffer);if(i.part>-1&&(mt=ft.flush()),!mt)return s.executeEnd=O(),te(i);a=new Uint8Array(mt)}}let z=this.needsProbing(h,m);if(z){let ft=this.configureTransmuxer(a);if(ft)return D.warn("[transmuxer] "+ft.message),this.observer.emit(b.ERROR,b.ERROR,{type:H.MEDIA_ERROR,details:N.FRAG_PARSING_ERROR,fatal:!1,error:ft,reason:ft.message}),s.executeEnd=O(),te(i)}(h||m||_||z)&&this.resetInitSegment(F,w,I,P,e),(h||_||z)&&this.resetInitialTimestamp(C),u||this.resetContiguity();let lt=this.transmux(a,W,S,y,i),it=this.currentTransmuxState;return it.contiguous=!0,it.discontinuity=!1,it.trackSwitch=!1,s.executeEnd=O(),lt}flush(t){let e=t.transmuxing;e.executeStart=O();let{decrypter:i,currentTransmuxState:r,decryptionPromise:s}=this;if(s)return s.then(()=>this.flush(t));let a=[],{timeOffset:l}=r;if(i){let m=i.flush();m&&a.push(this.push(m,null,t))}let{demuxer:c,remuxer:u}=this;if(!c||!u)return e.executeEnd=O(),[te(t)];let h=c.flush(l);return Ge(h)?h.then((m)=>(this.flushRemux(a,m,t),a)):(this.flushRemux(a,h,t),a)}flushRemux(t,e,i){let{audioTrack:r,videoTrack:s,id3Track:a,textTrack:l}=e,{accurateTimeOffset:c,timeOffset:u}=this.currentTransmuxState;D.log(`[transmuxer.ts]: Flushed fragment ${i.sn}${i.part>-1?" p: "+i.part:""} of level ${i.level}`);let h=this.remuxer.remux(r,s,a,l,u,c,!0,this.id);t.push({remuxResult:h,chunkMeta:i}),i.transmuxing.executeEnd=O()}resetInitialTimestamp(t){let{demuxer:e,remuxer:i}=this;e&&i&&(e.resetTimeStamp(t),i.resetTimeStamp(t))}resetContiguity(){let{demuxer:t,remuxer:e}=this;t&&e&&(t.resetContiguity(),e.resetNextTimestamp())}resetInitSegment(t,e,i,r,s){let{demuxer:a,remuxer:l}=this;a&&l&&(a.resetInitSegment(t,e,i,r),l.resetInitSegment(t,e,i,s))}destroy(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)}transmux(t,e,i,r,s){let a;return a=e&&e.method==="SAMPLE-AES"?this.transmuxSampleAes(t,e,i,r,s):this.transmuxUnencrypted(t,i,r,s),a}transmuxUnencrypted(t,e,i,r){let{audioTrack:s,videoTrack:a,id3Track:l,textTrack:c}=this.demuxer.demux(t,e,!1,!this.config.progressive);return{remuxResult:this.remuxer.remux(s,a,l,c,e,i,!1,this.id),chunkMeta:r}}transmuxSampleAes(t,e,i,r,s){return this.demuxer.demuxSampleAes(t,e,i).then((a)=>({remuxResult:this.remuxer.remux(a.audioTrack,a.videoTrack,a.id3Track,a.textTrack,i,r,!1,this.id),chunkMeta:s}))}configureTransmuxer(t){let{config:e,observer:i,typeSupported:r,vendor:s}=this,a;for(let y=0,S=ae.length;y<S;y++){var l;if((l=ae[y].demux)!=null&&l.probe(t)){a=ae[y];break}}if(!a)return Error("Failed to find demuxer by probing fragment data");let c=this.demuxer,u=this.remuxer,h=a.remux,m=a.demux;u&&u instanceof h||(this.remuxer=new h(i,e,r,s)),c&&c instanceof m||(this.demuxer=new m(i,e,r),this.probe=m.probe)}needsProbing(t,e){return!this.demuxer||!this.remuxer||t||e}getDecrypter(){let t=this.decrypter;return t||(t=this.decrypter=new ln(this.config)),t}}let te=(t)=>({remuxResult:{},chunkMeta:t});function Ge(t){return"then"in t&&t.then instanceof Function}class ii{constructor(t,e,i,r,s){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=t,this.videoCodec=e,this.initSegmentData=i,this.duration=r,this.defaultInitPts=s||null}}class Ur{constructor(t,e,i,r,s,a){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=t,this.contiguous=e,this.accurateTimeOffset=i,this.trackSwitch=r,this.timeOffset=s,this.initSegmentChange=a}}var lu={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,i="~";function r(){}function s(u,h,m){this.fn=u,this.context=h,this.once=m||!1}function a(u,h,m,y,S){if(typeof m!="function")throw TypeError("The listener must be a function");var _=new s(m,y||u,S),w=i?i+h:h;return u._events[w]?u._events[w].fn?u._events[w]=[u._events[w],_]:u._events[w].push(_):(u._events[w]=_,u._eventsCount++),u}function l(u,h){--u._eventsCount==0?u._events=new r:delete u._events[h]}function c(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(i=!1)),c.prototype.eventNames=function(){var u,h,m=[];if(this._eventsCount===0)return m;for(h in u=this._events)e.call(u,h)&&m.push(i?h.slice(1):h);return Object.getOwnPropertySymbols?m.concat(Object.getOwnPropertySymbols(u)):m},c.prototype.listeners=function(u){var h=i?i+u:u,m=this._events[h];if(!m)return[];if(m.fn)return[m.fn];for(var y=0,S=m.length,_=Array(S);y<S;y++)_[y]=m[y].fn;return _},c.prototype.listenerCount=function(u){var h=i?i+u:u,m=this._events[h];return m?m.fn?1:m.length:0},c.prototype.emit=function(u,h,m,y,S,_){var w=i?i+u:u;if(!this._events[w])return!1;var I,C,P=this._events[w],F=arguments.length;if(P.fn){switch(P.once&&this.removeListener(u,P.fn,void 0,!0),F){case 1:return P.fn.call(P.context),!0;case 2:return P.fn.call(P.context,h),!0;case 3:return P.fn.call(P.context,h,m),!0;case 4:return P.fn.call(P.context,h,m,y),!0;case 5:return P.fn.call(P.context,h,m,y,S),!0;case 6:return P.fn.call(P.context,h,m,y,S,_),!0}for(C=1,I=Array(F-1);C<F;C++)I[C-1]=arguments[C];P.fn.apply(P.context,I)}else{var W,z=P.length;for(C=0;C<z;C++)switch(P[C].once&&this.removeListener(u,P[C].fn,void 0,!0),F){case 1:P[C].fn.call(P[C].context);break;case 2:P[C].fn.call(P[C].context,h);break;case 3:P[C].fn.call(P[C].context,h,m);break;case 4:P[C].fn.call(P[C].context,h,m,y);break;default:if(!I)for(W=1,I=Array(F-1);W<F;W++)I[W-1]=arguments[W];P[C].fn.apply(P[C].context,I)}}return!0},c.prototype.on=function(u,h,m){return a(this,u,h,m,!1)},c.prototype.once=function(u,h,m){return a(this,u,h,m,!0)},c.prototype.removeListener=function(u,h,m,y){var S=i?i+u:u;if(!this._events[S])return this;if(!h)return l(this,S),this;var _=this._events[S];if(_.fn)_.fn!==h||y&&!_.once||m&&_.context!==m||l(this,S);else{for(var w=0,I=[],C=_.length;w<C;w++)(_[w].fn!==h||y&&!_[w].once||m&&_[w].context!==m)&&I.push(_[w]);I.length?this._events[S]=I.length===1?I[0]:I:l(this,S)}return this},c.prototype.removeAllListeners=function(u){var h;return u?(h=i?i+u:u,this._events[h]&&l(this,h)):(this._events=new r,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=i,c.EventEmitter=c,t.exports=c})(lu);var Gl=n(lu.exports);class Hl{constructor(t,e,i,r){this.error=null,this.hls=void 0,this.id=void 0,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.onwmsg=void 0,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0;let s=t.config;this.hls=t,this.id=e,this.useWorker=!!s.enableWorker,this.onTransmuxComplete=i,this.onFlush=r;let a=(h,m)=>{(m=m||{}).frag=this.frag,m.id=this.id,h===b.ERROR&&(this.error=m.error),this.hls.trigger(h,m)};this.observer=new Gl,this.observer.on(b.FRAG_DECRYPTED,a),this.observer.on(b.ERROR,a);let l=Pi(s.preferManagedMediaSource)||{isTypeSupported:()=>!1},c={mpeg:l.isTypeSupported("audio/mpeg"),mp3:l.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:l.isTypeSupported('audio/mp4; codecs="ac-3"')},u=navigator.vendor;if(this.useWorker&&typeof Worker<"u"){if(s.workerPath||typeof __HLS_WORKER_BUNDLE__=="function"){try{s.workerPath?(D.log(`loading Web Worker ${s.workerPath} for "${e}"`),this.workerContext=function(m){let y=new self.URL(m,self.location.href).href;return{worker:new self.Worker(y),scriptURL:y}}(s.workerPath)):(D.log(`injecting Web Worker for "${e}"`),this.workerContext=function(){let m=new self.Blob([`var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`],{type:"text/javascript"}),y=self.URL.createObjectURL(m);return{worker:new self.Worker(y),objectURL:y}}()),this.onwmsg=(m)=>this.onWorkerMessage(m);let{worker:h}=this.workerContext;h.addEventListener("message",this.onwmsg),h.onerror=(m)=>{let y=Error(`${m.message} (${m.filename}:${m.lineno})`);s.enableWorker=!1,D.warn(`Error in "${e}" Web Worker, fallback to inline`),this.hls.trigger(b.ERROR,{type:H.OTHER_ERROR,details:N.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:y})},h.postMessage({cmd:"init",typeSupported:c,vendor:u,id:e,config:JSON.stringify(s)})}catch(h){D.warn(`Error setting up "${e}" Web Worker, fallback to inline`,h),this.resetWorker(),this.error=null,this.transmuxer=new ge(this.observer,c,s,u,e)}return}}this.transmuxer=new ge(this.observer,c,s,u,e)}resetWorker(){if(this.workerContext){let{worker:t,objectURL:e}=this.workerContext;e&&self.URL.revokeObjectURL(e),t.removeEventListener("message",this.onwmsg),t.onerror=null,t.terminate(),this.workerContext=null}}destroy(){if(this.workerContext)this.resetWorker(),this.onwmsg=void 0;else{let e=this.transmuxer;e&&(e.destroy(),this.transmuxer=null)}let t=this.observer;t&&t.removeAllListeners(),this.frag=null,this.observer=null,this.hls=null}push(t,e,i,r,s,a,l,c,u,h){var m,y;u.transmuxing.start=self.performance.now();let{transmuxer:S}=this,_=a?a.start:s.start,w=s.decryptdata,I=this.frag,C=!(I&&s.cc===I.cc),P=!(I&&u.level===I.level),F=I?u.sn-I.sn:-1,W=this.part?u.part-this.part.index:-1,z=F===0&&u.id>1&&u.id===(I==null?void 0:I.stats.chunkCount),lt=!P&&(F===1||F===0&&(W===1||z&&W<=0)),it=self.performance.now();(P||F||s.stats.parsing.start===0)&&(s.stats.parsing.start=it),!a||!W&&lt||(a.stats.parsing.start=it);let ft=!(I&&((m=s.initSegment)==null?void 0:m.url)===((y=I.initSegment)==null?void 0:y.url)),mt=new Ur(C,lt,c,P,_,ft);if(!lt||C||ft){D.log(`[transmuxer-interface, ${s.type}]: Starting new transmux session for sn: ${u.sn} p: ${u.part} level: ${u.level} id: ${u.id}
9
+ discontinuity: ${C}
10
+ trackSwitch: ${P}
11
11
  contiguous: ${lt}
12
12
  accurateTimeOffset: ${c}
13
13
  timeOffset: ${_}
14
- initSegmentChange: ${ft}`);let Z=new ii(i,n,e,o,h);this.configureTransmuxer(Z)}if(this.frag=s,this.part=a,this.workerContext)this.workerContext.worker.postMessage({cmd:"demux",data:t,decryptdata:w,chunkMeta:u,state:mt},t instanceof ArrayBuffer?[t]:[]);else if(S){let Z=S.push(t,w,u,mt);Ge(Z)?(S.async=!0,Z.then((J)=>{this.handleTransmuxComplete(J)}).catch((J)=>{this.transmuxerError(J,u,"transmuxer-interface push error")})):(S.async=!1,this.handleTransmuxComplete(Z))}}flush(t){t.transmuxing.start=self.performance.now();let{transmuxer:e}=this;if(this.workerContext)this.workerContext.worker.postMessage({cmd:"flush",chunkMeta:t});else if(e){let i=e.flush(t);Ge(i)||e.async?(Ge(i)||(i=Promise.resolve(i)),i.then((n)=>{this.handleFlushResult(n,t)}).catch((n)=>{this.transmuxerError(n,t,"transmuxer-interface flush error")})):this.handleFlushResult(i,t)}}transmuxerError(t,e,i){this.hls&&(this.error=t,this.hls.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.FRAG_PARSING_ERROR,chunkMeta:e,fatal:!1,error:t,err:t,reason:i}))}handleFlushResult(t,e){t.forEach((i)=>{this.handleTransmuxComplete(i)}),this.onFlush(e)}onWorkerMessage(t){let e=t.data,i=this.hls;switch(e.event){case"init":{var n;let s=(n=this.workerContext)==null?void 0:n.objectURL;s&&self.URL.revokeObjectURL(s);break}case"transmuxComplete":this.handleTransmuxComplete(e.data);break;case"flush":this.onFlush(e.data);break;case"workerLog":C[e.data.logType]&&C[e.data.logType](e.data.message);break;default:e.data=e.data||{},e.data.frag=this.frag,e.data.id=this.id,i.trigger(e.event,e.data)}}configureTransmuxer(t){let{transmuxer:e}=this;this.workerContext?this.workerContext.worker.postMessage({cmd:"configure",config:t}):e&&e.configure(t)}handleTransmuxComplete(t){t.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(t)}}function su(t,e){if(t.length!==e.length)return!1;for(let i=0;i<t.length;i++)if(!is(t[i].attrs,e[i].attrs))return!1;return!0}function is(t,e,i){let n=t["STABLE-RENDITION-ID"];return n&&!i?n===e["STABLE-RENDITION-ID"]:!(i||["LANGUAGE","NAME","CHARACTERISTICS","AUTOSELECT","DEFAULT","FORCED","ASSOC-LANGUAGE"]).some((s)=>t[s]!==e[s])}function Ul(t,e){return e.label.toLowerCase()===t.name.toLowerCase()&&(!e.language||e.language.toLowerCase()===(t.lang||"").toLowerCase())}class au{constructor(t){this.buffered=void 0;let e=(i,n,s)=>{if((n>>>=0)>s-1)throw new DOMException(`Failed to execute '${i}' on 'TimeRanges': The index provided (${n}) is greater than the maximum bound (${s})`);return t[n][i]};this.buffered={get length(){return t.length},end:(i)=>e("end",i,t.length),start:(i)=>e("start",i,t.length)}}}class ou{constructor(t){this.buffers=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.buffers=t}append(t,e,i){let n=this.queues[e];n.push(t),n.length!==1||i||this.executeNext(e)}insertAbort(t,e){this.queues[e].unshift(t),this.executeNext(e)}appendBlocker(t){let e,i=new Promise((s)=>{e=s}),n={execute:e,onStart:()=>{},onComplete:()=>{},onError:()=>{}};return this.append(n,t),i}executeNext(t){let e=this.queues[t];if(e.length){let i=e[0];try{i.execute()}catch(n){C.warn(`[buffer-operation-queue]: Exception executing "${t}" SourceBuffer operation: ${n}`),i.onError(n);let s=this.buffers[t];s!=null&&s.updating||this.shiftAndExecuteNext(t)}}}shiftAndExecuteNext(t){this.queues[t].shift(),this.executeNext(t)}current(t){return this.queues[t][0]}}let lu=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/;function cu(t){let e=t.querySelectorAll("source");[].slice.call(e).forEach((i)=>{t.removeChild(i)})}let uu={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},du=function(t){let e=t;return uu.hasOwnProperty(t)&&(e=uu[t]),String.fromCharCode(e)},df={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},hf={17:2,18:4,21:6,22:8,23:10,19:13,20:15},ff={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},mf={25:2,26:4,29:6,30:8,31:10,27:13,28:15},gf=["white","green","blue","cyan","red","yellow","magenta","black","transparent"];class hu{constructor(){this.time=null,this.verboseLevel=0}log(t,e){if(this.verboseLevel>=t){let i=typeof e=="function"?e():e;C.log(`${this.time} [${t}] ${i}`)}}}let fr=function(t){let e=[];for(let i=0;i<t.length;i++)e.push(t[i].toString(16));return e};class Bl{constructor(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}reset(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}setStyles(t){let e=["foreground","underline","italics","background","flash"];for(let i=0;i<e.length;i++){let n=e[i];t.hasOwnProperty(n)&&(this[n]=t[n])}}isDefault(){return this.foreground==="white"&&!this.underline&&!this.italics&&this.background==="black"&&!this.flash}equals(t){return this.foreground===t.foreground&&this.underline===t.underline&&this.italics===t.italics&&this.background===t.background&&this.flash===t.flash}copy(t){this.foreground=t.foreground,this.underline=t.underline,this.italics=t.italics,this.background=t.background,this.flash=t.flash}toString(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash}}class fu{constructor(){this.uchar=" ",this.penState=new Bl}reset(){this.uchar=" ",this.penState.reset()}setChar(t,e){this.uchar=t,this.penState.copy(e)}setPenState(t){this.penState.copy(t)}equals(t){return this.uchar===t.uchar&&this.penState.equals(t.penState)}copy(t){this.uchar=t.uchar,this.penState.copy(t.penState)}isEmpty(){return this.uchar===" "&&this.penState.isDefault()}}class mu{constructor(t){this.chars=[],this.pos=0,this.currPenState=new Bl,this.cueStartTime=null,this.logger=void 0;for(let e=0;e<100;e++)this.chars.push(new fu);this.logger=t}equals(t){for(let e=0;e<100;e++)if(!this.chars[e].equals(t.chars[e]))return!1;return!0}copy(t){for(let e=0;e<100;e++)this.chars[e].copy(t.chars[e])}isEmpty(){let t=!0;for(let e=0;e<100;e++)if(!this.chars[e].isEmpty()){t=!1;break}return t}setCursor(t){this.pos!==t&&(this.pos=t),this.pos<0?(this.logger.log(3,"Negative cursor position "+this.pos),this.pos=0):this.pos>100&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=100)}moveCursor(t){let e=this.pos+t;if(t>1)for(let i=this.pos+1;i<e+1;i++)this.chars[i].setPenState(this.currPenState);this.setCursor(e)}backSpace(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)}insertChar(t){t>=144&&this.backSpace();let e=du(t);this.pos>=100?this.logger.log(0,()=>"Cannot insert "+t.toString(16)+" ("+e+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(e,this.currPenState),this.moveCursor(1))}clearFromPos(t){let e;for(e=t;e<100;e++)this.chars[e].reset()}clear(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()}clearToEndOfRow(){this.clearFromPos(this.pos)}getTextString(){let t=[],e=!0;for(let i=0;i<100;i++){let n=this.chars[i].uchar;n!==" "&&(e=!1),t.push(n)}return e?"":t.join("")}setPenStyles(t){this.currPenState.setStyles(t),this.chars[this.pos].setPenState(this.currPenState)}}class Ao{constructor(t){this.rows=[],this.currRow=14,this.nrRollUpRows=null,this.lastOutputScreen=null,this.logger=void 0;for(let e=0;e<15;e++)this.rows.push(new mu(t));this.logger=t}reset(){for(let t=0;t<15;t++)this.rows[t].clear();this.currRow=14}equals(t){let e=!0;for(let i=0;i<15;i++)if(!this.rows[i].equals(t.rows[i])){e=!1;break}return e}copy(t){for(let e=0;e<15;e++)this.rows[e].copy(t.rows[e])}isEmpty(){let t=!0;for(let e=0;e<15;e++)if(!this.rows[e].isEmpty()){t=!1;break}return t}backSpace(){this.rows[this.currRow].backSpace()}clearToEndOfRow(){this.rows[this.currRow].clearToEndOfRow()}insertChar(t){this.rows[this.currRow].insertChar(t)}setPen(t){this.rows[this.currRow].setPenStyles(t)}moveCursor(t){this.rows[this.currRow].moveCursor(t)}setCursor(t){this.logger.log(2,"setCursor: "+t),this.rows[this.currRow].setCursor(t)}setPAC(t){this.logger.log(2,()=>"pacData = "+JSON.stringify(t));let e=t.row-1;if(this.nrRollUpRows&&e<this.nrRollUpRows-1&&(e=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==e){for(let o=0;o<15;o++)this.rows[o].clear();let s=this.currRow+1-this.nrRollUpRows,a=this.lastOutputScreen;if(a){let o=a.rows[s].cueStartTime,c=this.logger.time;if(o!==null&&c!==null&&o<c)for(let u=0;u<this.nrRollUpRows;u++)this.rows[e-this.nrRollUpRows+u+1].copy(a.rows[s+u])}}this.currRow=e;let i=this.rows[this.currRow];if(t.indent!==null){let s=t.indent,a=Math.max(s-1,0);i.setCursor(t.indent),t.color=i.chars[a].penState.foreground}let n={foreground:t.color,underline:t.underline,italics:t.italics,background:"black",flash:!1};this.setPen(n)}setBkgData(t){this.logger.log(2,()=>"bkgData = "+JSON.stringify(t)),this.backSpace(),this.setPen(t),this.insertChar(32)}setRollUpRows(t){this.nrRollUpRows=t}rollUp(){if(this.nrRollUpRows===null)return void this.logger.log(3,"roll_up but nrRollUpRows not set yet");this.logger.log(1,()=>this.getDisplayText());let t=this.currRow+1-this.nrRollUpRows,e=this.rows.splice(t,1)[0];e.clear(),this.rows.splice(this.currRow,0,e),this.logger.log(2,"Rolling up")}getDisplayText(t){t=t||!1;let e=[],i="",n=-1;for(let s=0;s<15;s++){let a=this.rows[s].getTextString();a&&(n=s+1,t?e.push("Row "+n+": '"+a+"'"):e.push(a.trim()))}return e.length>0&&(i=t?"["+e.join(" | ")+"]":e.join(`
15
- `)),i}getTextAndFormat(){return this.rows}}class $l{constructor(t,e,i){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=t,this.outputFilter=e,this.mode=null,this.verbose=0,this.displayedMemory=new Ao(i),this.nonDisplayedMemory=new Ao(i),this.lastOutputScreen=new Ao(i),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=i}reset(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}getHandler(){return this.outputFilter}setHandler(t){this.outputFilter=t}setPAC(t){this.writeScreen.setPAC(t)}setBkgData(t){this.writeScreen.setBkgData(t)}setMode(t){t!==this.mode&&(this.mode=t,this.logger.log(2,()=>"MODE="+t),this.mode==="MODE_POP-ON"?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),this.mode!=="MODE_ROLL-UP"&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=t)}insertChars(t){for(let i=0;i<t.length;i++)this.writeScreen.insertChar(t[i]);let e=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(2,()=>e+": "+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(){this.logger.log(2,"BS - BackSpace"),this.mode!=="MODE_TEXT"&&(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(t){this.logger.log(2,"RU("+t+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(t)}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 t=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=t,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,()=>"DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)}ccTO(t){this.logger.log(2,"TO("+t+") - Tab Offset"),this.writeScreen.moveCursor(t)}ccMIDROW(t){let e={flash:!1};if(e.underline=t%2==1,e.italics=t>=46,e.italics)e.foreground="white";else{let i=Math.floor(t/2)-16,n=["white","green","blue","cyan","red","yellow","magenta"];e.foreground=n[i]}this.logger.log(2,"MIDROW: "+JSON.stringify(e)),this.writeScreen.setPen(e)}outputDataUpdate(t=!1){let e=this.logger.time;e!==null&&this.outputFilter&&(this.cueStartTime!==null||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,e,this.lastOutputScreen),t&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:e):this.cueStartTime=e,this.lastOutputScreen.copy(this.displayedMemory))}cueSplitAtTime(t){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,t,this.displayedMemory),this.cueStartTime=t))}}class Gl{constructor(t,e,i){this.channels=void 0,this.currentChannel=0,this.cmdHistory={a:null,b:null},this.logger=void 0;let n=this.logger=new hu;this.channels=[null,new $l(t,e,n),new $l(t+1,i,n)]}getHandler(t){return this.channels[t].getHandler()}setHandler(t,e){this.channels[t].setHandler(e)}addData(t,e){let i,n,s,a=!1;this.logger.time=t;for(let o=0;o<e.length;o+=2)if(n=127&e[o],s=127&e[o+1],n!==0||s!==0){if(this.logger.log(3,"["+fr([e[o],e[o+1]])+"] -> ("+fr([n,s])+")"),i=this.parseCmd(n,s),i||(i=this.parseMidrow(n,s)),i||(i=this.parsePAC(n,s)),i||(i=this.parseBackgroundAttributes(n,s)),!i&&(a=this.parseChars(n,s),a)){let c=this.currentChannel;if(c&&c>0)this.channels[c].insertChars(a);else this.logger.log(2,"No channel found yet. TEXT-MODE?")}i||a||this.logger.log(2,"Couldn't parse cleaned data "+fr([n,s])+" orig: "+fr([e[o],e[o+1]]))}}parseCmd(t,e){let{cmdHistory:i}=this;if(!((t===20||t===28||t===21||t===29)&&e>=32&&e<=47)&&!((t===23||t===31)&&e>=33&&e<=35))return!1;if(gu(t,e,i))return ns(null,null,i),this.logger.log(3,"Repeated command ("+fr([t,e])+") is dropped"),!0;let n=t===20||t===21||t===23?1:2,s=this.channels[n];return t===20||t===21||t===28||t===29?e===32?s.ccRCL():e===33?s.ccBS():e===34?s.ccAOF():e===35?s.ccAON():e===36?s.ccDER():e===37?s.ccRU(2):e===38?s.ccRU(3):e===39?s.ccRU(4):e===40?s.ccFON():e===41?s.ccRDC():e===42?s.ccTR():e===43?s.ccRTD():e===44?s.ccEDM():e===45?s.ccCR():e===46?s.ccENM():e===47&&s.ccEOC():s.ccTO(e-32),ns(t,e,i),this.currentChannel=n,!0}parseMidrow(t,e){let i=0;if((t===17||t===25)&&e>=32&&e<=47){if(i=t===17?1:2,i!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;let n=this.channels[i];return!!n&&(n.ccMIDROW(e),this.logger.log(3,"MIDROW ("+fr([t,e])+")"),!0)}return!1}parsePAC(t,e){let i,n=this.cmdHistory;if(!((t>=17&&t<=23||t>=25&&t<=31)&&e>=64&&e<=127)&&!((t===16||t===24)&&e>=64&&e<=95))return!1;if(gu(t,e,n))return ns(null,null,n),!0;let s=t<=23?1:2;i=e>=64&&e<=95?s===1?df[t]:ff[t]:s===1?hf[t]:mf[t];let a=this.channels[s];return!!a&&(a.setPAC(this.interpretPAC(i,e)),ns(t,e,n),this.currentChannel=s,!0)}interpretPAC(t,e){let i,n={color:null,italics:!1,indent:null,underline:!1,row:t};return i=e>95?e-96:e-64,n.underline=(1&i)==1,i<=13?n.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(i/2)]:i<=15?(n.italics=!0,n.color="white"):n.indent=4*Math.floor((i-16)/2),n}parseChars(t,e){let i,n=null,s=null;if(t>=25?(i=2,s=t-8):(i=1,s=t),s>=17&&s<=19){let a;a=s===17?e+80:s===18?e+112:e+144,this.logger.log(2,"Special char '"+du(a)+"' in channel "+i),n=[a]}else t>=32&&t<=127&&(n=e===0?[t]:[t,e]);if(n){let a=fr(n);this.logger.log(3,"Char codes = "+a.join(",")),ns(t,e,this.cmdHistory)}return n}parseBackgroundAttributes(t,e){if(!((t===16||t===24)&&e>=32&&e<=47)&&!((t===23||t===31)&&e>=45&&e<=47))return!1;let i,n={};t===16||t===24?(i=Math.floor((e-32)/2),n.background=gf[i],e%2==1&&(n.background=n.background+"_semi")):e===45?n.background="transparent":(n.foreground="black",e===47&&(n.underline=!0));let s=t<=23?1:2;return this.channels[s].setBkgData(n),ns(t,e,this.cmdHistory),!0}reset(){for(let t=0;t<Object.keys(this.channels).length;t++){let e=this.channels[t];e&&e.reset()}this.cmdHistory={a:null,b:null}}cueSplitAtTime(t){for(let e=0;e<this.channels.length;e++){let i=this.channels[e];i&&i.cueSplitAtTime(t)}}}function ns(t,e,i){i.a=t,i.b=e}function gu(t,e,i){return i.a===t&&i.b===e}class Ea{constructor(t,e){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=t,this.trackName=e}dispatchCue(){this.startTime!==null&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}newCue(t,e,i){(this.startTime===null||this.startTime>t)&&(this.startTime=t),this.endTime=e,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}}var Hl=function(){if(ce!=null&&ce.VTTCue)return self.VTTCue;let t=["","lr","rl"],e=["start","middle","end","left","right"];function i(o,c){if(typeof c!="string")return!1;if(!Array.isArray(o))return!1;let u=c.toLowerCase();return!!~o.indexOf(u)&&u}function n(o){return i(e,o)}function s(o,...c){let u=1;for(;u<arguments.length;u++){let h=arguments[u];for(let m in h)o[m]=h[m]}return o}function a(o,c,u){let h=this,m={enumerable:!0};h.hasBeenReset=!1;let y="",S=!1,_=o,w=c,I=u,D=null,F="",x=!0,W="auto",z="start",lt=50,it="middle",ft=50,mt="middle";Object.defineProperty(h,"id",s({},m,{get:function(){return y},set:function(Z){y=""+Z}})),Object.defineProperty(h,"pauseOnExit",s({},m,{get:function(){return S},set:function(Z){S=!!Z}})),Object.defineProperty(h,"startTime",s({},m,{get:function(){return _},set:function(Z){if(typeof Z!="number")throw TypeError("Start time must be set to a number.");_=Z,this.hasBeenReset=!0}})),Object.defineProperty(h,"endTime",s({},m,{get:function(){return w},set:function(Z){if(typeof Z!="number")throw TypeError("End time must be set to a number.");w=Z,this.hasBeenReset=!0}})),Object.defineProperty(h,"text",s({},m,{get:function(){return I},set:function(Z){I=""+Z,this.hasBeenReset=!0}})),Object.defineProperty(h,"region",s({},m,{get:function(){return D},set:function(Z){D=Z,this.hasBeenReset=!0}})),Object.defineProperty(h,"vertical",s({},m,{get:function(){return F},set:function(Z){let J=function(kt){return i(t,kt)}(Z);if(J===!1)throw SyntaxError("An invalid or illegal string was specified.");F=J,this.hasBeenReset=!0}})),Object.defineProperty(h,"snapToLines",s({},m,{get:function(){return x},set:function(Z){x=!!Z,this.hasBeenReset=!0}})),Object.defineProperty(h,"line",s({},m,{get:function(){return W},set:function(Z){if(typeof Z!="number"&&Z!=="auto")throw SyntaxError("An invalid number or illegal string was specified.");W=Z,this.hasBeenReset=!0}})),Object.defineProperty(h,"lineAlign",s({},m,{get:function(){return z},set:function(Z){let J=n(Z);if(!J)throw SyntaxError("An invalid or illegal string was specified.");z=J,this.hasBeenReset=!0}})),Object.defineProperty(h,"position",s({},m,{get:function(){return lt},set:function(Z){if(Z<0||Z>100)throw Error("Position must be between 0 and 100.");lt=Z,this.hasBeenReset=!0}})),Object.defineProperty(h,"positionAlign",s({},m,{get:function(){return it},set:function(Z){let J=n(Z);if(!J)throw SyntaxError("An invalid or illegal string was specified.");it=J,this.hasBeenReset=!0}})),Object.defineProperty(h,"size",s({},m,{get:function(){return ft},set:function(Z){if(Z<0||Z>100)throw Error("Size must be between 0 and 100.");ft=Z,this.hasBeenReset=!0}})),Object.defineProperty(h,"align",s({},m,{get:function(){return mt},set:function(Z){let J=n(Z);if(!J)throw SyntaxError("An invalid or illegal string was specified.");mt=J,this.hasBeenReset=!0}})),h.displayState=void 0}return a.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},a}();class pu{decode(t,e){if(!t)return"";if(typeof t!="string")throw Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(t))}}function vu(t){function e(n,s,a,o){return 3600*(0|n)+60*(0|s)+(0|a)+parseFloat(o||0)}let i=t.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return i?parseFloat(i[2])>59?e(i[2],i[3],0,i[4]):e(i[1],i[2],i[3],i[4]):null}class Eu{constructor(){this.values=Object.create(null)}set(t,e){this.get(t)||e===""||(this.values[t]=e)}get(t,e,i){return i?this.has(t)?this.values[t]:e[i]:this.has(t)?this.values[t]:e}has(t){return t in this.values}alt(t,e,i){for(let n=0;n<i.length;++n)if(e===i[n]){this.set(t,e);break}}integer(t,e){/^-?\d+$/.test(e)&&this.set(t,parseInt(e,10))}percent(t,e){if(/^([\d]{1,3})(\.[\d]*)?%$/.test(e)){let i=parseFloat(e);if(i>=0&&i<=100)return this.set(t,i),!0}return!1}}function yu(t,e,i,n){let s=n?t.split(n):[t];for(let a in s){if(typeof s[a]!="string")continue;let o=s[a].split(i);if(o.length!==2)continue;e(o[0],o[1])}}let Kl=new Hl(0,0,""),Lo=Kl.align==="middle"?"middle":"center";function pf(t,e,i){let n=t;function s(){let o=vu(t);if(o===null)throw Error("Malformed timestamp: "+n);return t=t.replace(/^[^\sa-zA-Z-]+/,""),o}function a(){t=t.replace(/^\s+/,"")}if(a(),e.startTime=s(),a(),t.slice(0,3)!=="-->")throw Error("Malformed time stamp (time stamps must be separated by '-->'): "+n);t=t.slice(3),a(),e.endTime=s(),a(),function(o,c){let u=new Eu;yu(o,function(y,S){let _;switch(y){case"region":for(let w=i.length-1;w>=0;w--)if(i[w].id===S){u.set(y,i[w].region);break}break;case"vertical":u.alt(y,S,["rl","lr"]);break;case"line":_=S.split(","),u.integer(y,_[0]),u.percent(y,_[0])&&u.set("snapToLines",!1),u.alt(y,_[0],["auto"]),_.length===2&&u.alt("lineAlign",_[1],["start",Lo,"end"]);break;case"position":_=S.split(","),u.percent(y,_[0]),_.length===2&&u.alt("positionAlign",_[1],["start",Lo,"end","line-left","line-right","auto"]);break;case"size":u.percent(y,S);break;case"align":u.alt(y,S,["start",Lo,"end","left","right"])}},/:/,/\s/),c.region=u.get("region",null),c.vertical=u.get("vertical","");let h=u.get("line","auto");h==="auto"&&Kl.line===-1&&(h=-1),c.line=h,c.lineAlign=u.get("lineAlign","start"),c.snapToLines=u.get("snapToLines",!0),c.size=u.get("size",100),c.align=u.get("align",Lo);let m=u.get("position","auto");m==="auto"&&Kl.position===50&&(m=c.align==="start"||c.align==="left"?0:c.align==="end"||c.align==="right"?100:50),c.position=m}(t,e)}function Su(t){return t.replace(/<br(?: \/)?>/gi,`
16
- `)}class bu{constructor(){this.state="INITIAL",this.buffer="",this.decoder=new pu,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}parse(t){let e=this;function i(){let n=e.buffer,s=0;for(n=Su(n);s<n.length&&n[s]!=="\r"&&n[s]!==`
17
- `;)++s;let a=n.slice(0,s);return n[s]==="\r"&&++s,n[s]===`
18
- `&&++s,e.buffer=n.slice(s),a}t&&(e.buffer+=e.decoder.decode(t,{stream:!0}));try{let n="";if(e.state==="INITIAL"){if(!/\r\n|\n/.test(e.buffer))return this;n=i();let a=n.match(/^()?WEBVTT([ \t].*)?$/);if(a==null||!a[0])throw Error("Malformed WebVTT signature.");e.state="HEADER"}let s=!1;for(;e.buffer;){if(!/\r\n|\n/.test(e.buffer))return this;switch(s?s=!1:n=i(),e.state){case"HEADER":/:/.test(n)?yu(n,function(a,o){},/:/):n||(e.state="ID");continue;case"NOTE":n||(e.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(n)){e.state="NOTE";break}if(!n)continue;if(e.cue=new Hl(0,0,""),e.state="CUE",n.indexOf("-->")===-1){e.cue.id=n;continue}case"CUE":if(!e.cue){e.state="BADCUE";continue}try{pf(n,e.cue,e.regionList)}catch(a){e.cue=null,e.state="BADCUE";continue}e.state="CUETEXT";continue;case"CUETEXT":{let a=n.indexOf("-->")!==-1;if(!n||a&&(s=!0)){e.oncue&&e.cue&&e.oncue(e.cue),e.cue=null,e.state="ID";continue}if(e.cue===null)continue;e.cue.text&&(e.cue.text+=`
19
- `),e.cue.text+=n}continue;case"BADCUE":n||(e.state="ID")}}}catch(n){e.state==="CUETEXT"&&e.cue&&e.oncue&&e.oncue(e.cue),e.cue=null,e.state=e.state==="INITIAL"?"BADWEBVTT":"BADCUE"}return this}flush(){let t=this;try{if((t.cue||t.state==="HEADER")&&(t.buffer+=`
20
-
21
- `,t.parse()),t.state==="INITIAL"||t.state==="BADWEBVTT")throw Error("Malformed WebVTT signature.")}catch(e){t.onparsingerror&&t.onparsingerror(e)}return t.onflush&&t.onflush(),this}}let vf=/\r\n|\n\r|\n|\r/g,Vl=function(t,e,i=0){return t.slice(i,i+e.length)===e},Wl=function(t){let e=5381,i=t.length;for(;i;)e=33*e^t.charCodeAt(--i);return(e>>>0).toString()};function Yl(t,e,i){return Wl(t.toString())+Wl(e.toString())+Wl(i)}function Ef(t,e,i,n,s,a,o){let c=new bu,u=xe(new Uint8Array(t)).trim().replace(vf,`
14
+ initSegmentChange: ${ft}`);let Q=new ii(i,r,e,l,h);this.configureTransmuxer(Q)}if(this.frag=s,this.part=a,this.workerContext)this.workerContext.worker.postMessage({cmd:"demux",data:t,decryptdata:w,chunkMeta:u,state:mt},t instanceof ArrayBuffer?[t]:[]);else if(S){let Q=S.push(t,w,u,mt);Ge(Q)?(S.async=!0,Q.then((X)=>{this.handleTransmuxComplete(X)}).catch((X)=>{this.transmuxerError(X,u,"transmuxer-interface push error")})):(S.async=!1,this.handleTransmuxComplete(Q))}}flush(t){t.transmuxing.start=self.performance.now();let{transmuxer:e}=this;if(this.workerContext)this.workerContext.worker.postMessage({cmd:"flush",chunkMeta:t});else if(e){let i=e.flush(t);Ge(i)||e.async?(Ge(i)||(i=Promise.resolve(i)),i.then((r)=>{this.handleFlushResult(r,t)}).catch((r)=>{this.transmuxerError(r,t,"transmuxer-interface flush error")})):this.handleFlushResult(i,t)}}transmuxerError(t,e,i){this.hls&&(this.error=t,this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.FRAG_PARSING_ERROR,chunkMeta:e,fatal:!1,error:t,err:t,reason:i}))}handleFlushResult(t,e){t.forEach((i)=>{this.handleTransmuxComplete(i)}),this.onFlush(e)}onWorkerMessage(t){let e=t.data,i=this.hls;switch(e.event){case"init":{var r;let s=(r=this.workerContext)==null?void 0:r.objectURL;s&&self.URL.revokeObjectURL(s);break}case"transmuxComplete":this.handleTransmuxComplete(e.data);break;case"flush":this.onFlush(e.data);break;case"workerLog":D[e.data.logType]&&D[e.data.logType](e.data.message);break;default:e.data=e.data||{},e.data.frag=this.frag,e.data.id=this.id,i.trigger(e.event,e.data)}}configureTransmuxer(t){let{transmuxer:e}=this;this.workerContext?this.workerContext.worker.postMessage({cmd:"configure",config:t}):e&&e.configure(t)}handleTransmuxComplete(t){t.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(t)}}function cu(t,e){if(t.length!==e.length)return!1;for(let i=0;i<t.length;i++)if(!is(t[i].attrs,e[i].attrs))return!1;return!0}function is(t,e,i){let r=t["STABLE-RENDITION-ID"];return r&&!i?r===e["STABLE-RENDITION-ID"]:!(i||["LANGUAGE","NAME","CHARACTERISTICS","AUTOSELECT","DEFAULT","FORCED","ASSOC-LANGUAGE"]).some((s)=>t[s]!==e[s])}function Vl(t,e){return e.label.toLowerCase()===t.name.toLowerCase()&&(!e.language||e.language.toLowerCase()===(t.lang||"").toLowerCase())}class uu{constructor(t){this.buffered=void 0;let e=(i,r,s)=>{if((r>>>=0)>s-1)throw new DOMException(`Failed to execute '${i}' on 'TimeRanges': The index provided (${r}) is greater than the maximum bound (${s})`);return t[r][i]};this.buffered={get length(){return t.length},end:(i)=>e("end",i,t.length),start:(i)=>e("start",i,t.length)}}}class du{constructor(t){this.buffers=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.buffers=t}append(t,e,i){let r=this.queues[e];r.push(t),r.length!==1||i||this.executeNext(e)}insertAbort(t,e){this.queues[e].unshift(t),this.executeNext(e)}appendBlocker(t){let e,i=new Promise((s)=>{e=s}),r={execute:e,onStart:()=>{},onComplete:()=>{},onError:()=>{}};return this.append(r,t),i}executeNext(t){let e=this.queues[t];if(e.length){let i=e[0];try{i.execute()}catch(r){D.warn(`[buffer-operation-queue]: Exception executing "${t}" SourceBuffer operation: ${r}`),i.onError(r);let s=this.buffers[t];s!=null&&s.updating||this.shiftAndExecuteNext(t)}}}shiftAndExecuteNext(t){this.queues[t].shift(),this.executeNext(t)}current(t){return this.queues[t][0]}}let hu=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/;function fu(t){let e=t.querySelectorAll("source");[].slice.call(e).forEach((i)=>{t.removeChild(i)})}let mu={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},gu=function(t){let e=t;return mu.hasOwnProperty(t)&&(e=mu[t]),String.fromCharCode(e)},Ef={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},yf={17:2,18:4,21:6,22:8,23:10,19:13,20:15},Sf={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},bf={25:2,26:4,29:6,30:8,31:10,27:13,28:15},Tf=["white","green","blue","cyan","red","yellow","magenta","black","transparent"];class pu{constructor(){this.time=null,this.verboseLevel=0}log(t,e){if(this.verboseLevel>=t){let i=typeof e=="function"?e():e;D.log(`${this.time} [${t}] ${i}`)}}}let fn=function(t){let e=[];for(let i=0;i<t.length;i++)e.push(t[i].toString(16));return e};class Kl{constructor(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}reset(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}setStyles(t){let e=["foreground","underline","italics","background","flash"];for(let i=0;i<e.length;i++){let r=e[i];t.hasOwnProperty(r)&&(this[r]=t[r])}}isDefault(){return this.foreground==="white"&&!this.underline&&!this.italics&&this.background==="black"&&!this.flash}equals(t){return this.foreground===t.foreground&&this.underline===t.underline&&this.italics===t.italics&&this.background===t.background&&this.flash===t.flash}copy(t){this.foreground=t.foreground,this.underline=t.underline,this.italics=t.italics,this.background=t.background,this.flash=t.flash}toString(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash}}class vu{constructor(){this.uchar=" ",this.penState=new Kl}reset(){this.uchar=" ",this.penState.reset()}setChar(t,e){this.uchar=t,this.penState.copy(e)}setPenState(t){this.penState.copy(t)}equals(t){return this.uchar===t.uchar&&this.penState.equals(t.penState)}copy(t){this.uchar=t.uchar,this.penState.copy(t.penState)}isEmpty(){return this.uchar===" "&&this.penState.isDefault()}}class Eu{constructor(t){this.chars=[],this.pos=0,this.currPenState=new Kl,this.cueStartTime=null,this.logger=void 0;for(let e=0;e<100;e++)this.chars.push(new vu);this.logger=t}equals(t){for(let e=0;e<100;e++)if(!this.chars[e].equals(t.chars[e]))return!1;return!0}copy(t){for(let e=0;e<100;e++)this.chars[e].copy(t.chars[e])}isEmpty(){let t=!0;for(let e=0;e<100;e++)if(!this.chars[e].isEmpty()){t=!1;break}return t}setCursor(t){this.pos!==t&&(this.pos=t),this.pos<0?(this.logger.log(3,"Negative cursor position "+this.pos),this.pos=0):this.pos>100&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=100)}moveCursor(t){let e=this.pos+t;if(t>1)for(let i=this.pos+1;i<e+1;i++)this.chars[i].setPenState(this.currPenState);this.setCursor(e)}backSpace(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)}insertChar(t){t>=144&&this.backSpace();let e=gu(t);this.pos>=100?this.logger.log(0,()=>"Cannot insert "+t.toString(16)+" ("+e+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(e,this.currPenState),this.moveCursor(1))}clearFromPos(t){let e;for(e=t;e<100;e++)this.chars[e].reset()}clear(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()}clearToEndOfRow(){this.clearFromPos(this.pos)}getTextString(){let t=[],e=!0;for(let i=0;i<100;i++){let r=this.chars[i].uchar;r!==" "&&(e=!1),t.push(r)}return e?"":t.join("")}setPenStyles(t){this.currPenState.setStyles(t),this.chars[this.pos].setPenState(this.currPenState)}}class Lo{constructor(t){this.rows=[],this.currRow=14,this.nrRollUpRows=null,this.lastOutputScreen=null,this.logger=void 0;for(let e=0;e<15;e++)this.rows.push(new Eu(t));this.logger=t}reset(){for(let t=0;t<15;t++)this.rows[t].clear();this.currRow=14}equals(t){let e=!0;for(let i=0;i<15;i++)if(!this.rows[i].equals(t.rows[i])){e=!1;break}return e}copy(t){for(let e=0;e<15;e++)this.rows[e].copy(t.rows[e])}isEmpty(){let t=!0;for(let e=0;e<15;e++)if(!this.rows[e].isEmpty()){t=!1;break}return t}backSpace(){this.rows[this.currRow].backSpace()}clearToEndOfRow(){this.rows[this.currRow].clearToEndOfRow()}insertChar(t){this.rows[this.currRow].insertChar(t)}setPen(t){this.rows[this.currRow].setPenStyles(t)}moveCursor(t){this.rows[this.currRow].moveCursor(t)}setCursor(t){this.logger.log(2,"setCursor: "+t),this.rows[this.currRow].setCursor(t)}setPAC(t){this.logger.log(2,()=>"pacData = "+JSON.stringify(t));let e=t.row-1;if(this.nrRollUpRows&&e<this.nrRollUpRows-1&&(e=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==e){for(let l=0;l<15;l++)this.rows[l].clear();let s=this.currRow+1-this.nrRollUpRows,a=this.lastOutputScreen;if(a){let l=a.rows[s].cueStartTime,c=this.logger.time;if(l!==null&&c!==null&&l<c)for(let u=0;u<this.nrRollUpRows;u++)this.rows[e-this.nrRollUpRows+u+1].copy(a.rows[s+u])}}this.currRow=e;let i=this.rows[this.currRow];if(t.indent!==null){let s=t.indent,a=Math.max(s-1,0);i.setCursor(t.indent),t.color=i.chars[a].penState.foreground}let r={foreground:t.color,underline:t.underline,italics:t.italics,background:"black",flash:!1};this.setPen(r)}setBkgData(t){this.logger.log(2,()=>"bkgData = "+JSON.stringify(t)),this.backSpace(),this.setPen(t),this.insertChar(32)}setRollUpRows(t){this.nrRollUpRows=t}rollUp(){if(this.nrRollUpRows===null)return void this.logger.log(3,"roll_up but nrRollUpRows not set yet");this.logger.log(1,()=>this.getDisplayText());let t=this.currRow+1-this.nrRollUpRows,e=this.rows.splice(t,1)[0];e.clear(),this.rows.splice(this.currRow,0,e),this.logger.log(2,"Rolling up")}getDisplayText(t){t=t||!1;let e=[],i="",r=-1;for(let s=0;s<15;s++){let a=this.rows[s].getTextString();a&&(r=s+1,t?e.push("Row "+r+": '"+a+"'"):e.push(a.trim()))}return e.length>0&&(i=t?"["+e.join(" | ")+"]":e.join(`
15
+ `)),i}getTextAndFormat(){return this.rows}}class Wl{constructor(t,e,i){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=t,this.outputFilter=e,this.mode=null,this.verbose=0,this.displayedMemory=new Lo(i),this.nonDisplayedMemory=new Lo(i),this.lastOutputScreen=new Lo(i),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=i}reset(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}getHandler(){return this.outputFilter}setHandler(t){this.outputFilter=t}setPAC(t){this.writeScreen.setPAC(t)}setBkgData(t){this.writeScreen.setBkgData(t)}setMode(t){t!==this.mode&&(this.mode=t,this.logger.log(2,()=>"MODE="+t),this.mode==="MODE_POP-ON"?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),this.mode!=="MODE_ROLL-UP"&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=t)}insertChars(t){for(let i=0;i<t.length;i++)this.writeScreen.insertChar(t[i]);let e=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(2,()=>e+": "+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(){this.logger.log(2,"BS - BackSpace"),this.mode!=="MODE_TEXT"&&(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(t){this.logger.log(2,"RU("+t+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(t)}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 t=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=t,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,()=>"DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)}ccTO(t){this.logger.log(2,"TO("+t+") - Tab Offset"),this.writeScreen.moveCursor(t)}ccMIDROW(t){let e={flash:!1};if(e.underline=t%2==1,e.italics=t>=46,e.italics)e.foreground="white";else{let i=Math.floor(t/2)-16,r=["white","green","blue","cyan","red","yellow","magenta"];e.foreground=r[i]}this.logger.log(2,"MIDROW: "+JSON.stringify(e)),this.writeScreen.setPen(e)}outputDataUpdate(t=!1){let e=this.logger.time;e!==null&&this.outputFilter&&(this.cueStartTime!==null||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,e,this.lastOutputScreen),t&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:e):this.cueStartTime=e,this.lastOutputScreen.copy(this.displayedMemory))}cueSplitAtTime(t){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,t,this.displayedMemory),this.cueStartTime=t))}}class Yl{constructor(t,e,i){this.channels=void 0,this.currentChannel=0,this.cmdHistory={a:null,b:null},this.logger=void 0;let r=this.logger=new pu;this.channels=[null,new Wl(t,e,r),new Wl(t+1,i,r)]}getHandler(t){return this.channels[t].getHandler()}setHandler(t,e){this.channels[t].setHandler(e)}addData(t,e){let i,r,s,a=!1;this.logger.time=t;for(let l=0;l<e.length;l+=2)if(r=127&e[l],s=127&e[l+1],r!==0||s!==0){if(this.logger.log(3,"["+fn([e[l],e[l+1]])+"] -> ("+fn([r,s])+")"),i=this.parseCmd(r,s),i||(i=this.parseMidrow(r,s)),i||(i=this.parsePAC(r,s)),i||(i=this.parseBackgroundAttributes(r,s)),!i&&(a=this.parseChars(r,s),a)){let c=this.currentChannel;if(c&&c>0)this.channels[c].insertChars(a);else this.logger.log(2,"No channel found yet. TEXT-MODE?")}i||a||this.logger.log(2,"Couldn't parse cleaned data "+fn([r,s])+" orig: "+fn([e[l],e[l+1]]))}}parseCmd(t,e){let{cmdHistory:i}=this;if(!((t===20||t===28||t===21||t===29)&&e>=32&&e<=47)&&!((t===23||t===31)&&e>=33&&e<=35))return!1;if(yu(t,e,i))return rs(null,null,i),this.logger.log(3,"Repeated command ("+fn([t,e])+") is dropped"),!0;let r=t===20||t===21||t===23?1:2,s=this.channels[r];return t===20||t===21||t===28||t===29?e===32?s.ccRCL():e===33?s.ccBS():e===34?s.ccAOF():e===35?s.ccAON():e===36?s.ccDER():e===37?s.ccRU(2):e===38?s.ccRU(3):e===39?s.ccRU(4):e===40?s.ccFON():e===41?s.ccRDC():e===42?s.ccTR():e===43?s.ccRTD():e===44?s.ccEDM():e===45?s.ccCR():e===46?s.ccENM():e===47&&s.ccEOC():s.ccTO(e-32),rs(t,e,i),this.currentChannel=r,!0}parseMidrow(t,e){let i=0;if((t===17||t===25)&&e>=32&&e<=47){if(i=t===17?1:2,i!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;let r=this.channels[i];return!!r&&(r.ccMIDROW(e),this.logger.log(3,"MIDROW ("+fn([t,e])+")"),!0)}return!1}parsePAC(t,e){let i,r=this.cmdHistory;if(!((t>=17&&t<=23||t>=25&&t<=31)&&e>=64&&e<=127)&&!((t===16||t===24)&&e>=64&&e<=95))return!1;if(yu(t,e,r))return rs(null,null,r),!0;let s=t<=23?1:2;i=e>=64&&e<=95?s===1?Ef[t]:Sf[t]:s===1?yf[t]:bf[t];let a=this.channels[s];return!!a&&(a.setPAC(this.interpretPAC(i,e)),rs(t,e,r),this.currentChannel=s,!0)}interpretPAC(t,e){let i,r={color:null,italics:!1,indent:null,underline:!1,row:t};return i=e>95?e-96:e-64,r.underline=(1&i)==1,i<=13?r.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(i/2)]:i<=15?(r.italics=!0,r.color="white"):r.indent=4*Math.floor((i-16)/2),r}parseChars(t,e){let i,r=null,s=null;if(t>=25?(i=2,s=t-8):(i=1,s=t),s>=17&&s<=19){let a;a=s===17?e+80:s===18?e+112:e+144,this.logger.log(2,"Special char '"+gu(a)+"' in channel "+i),r=[a]}else t>=32&&t<=127&&(r=e===0?[t]:[t,e]);if(r){let a=fn(r);this.logger.log(3,"Char codes = "+a.join(",")),rs(t,e,this.cmdHistory)}return r}parseBackgroundAttributes(t,e){if(!((t===16||t===24)&&e>=32&&e<=47)&&!((t===23||t===31)&&e>=45&&e<=47))return!1;let i,r={};t===16||t===24?(i=Math.floor((e-32)/2),r.background=Tf[i],e%2==1&&(r.background=r.background+"_semi")):e===45?r.background="transparent":(r.foreground="black",e===47&&(r.underline=!0));let s=t<=23?1:2;return this.channels[s].setBkgData(r),rs(t,e,this.cmdHistory),!0}reset(){for(let t=0;t<Object.keys(this.channels).length;t++){let e=this.channels[t];e&&e.reset()}this.cmdHistory={a:null,b:null}}cueSplitAtTime(t){for(let e=0;e<this.channels.length;e++){let i=this.channels[e];i&&i.cueSplitAtTime(t)}}}function rs(t,e,i){i.a=t,i.b=e}function yu(t,e,i){return i.a===t&&i.b===e}class Ea{constructor(t,e){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=t,this.trackName=e}dispatchCue(){this.startTime!==null&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}newCue(t,e,i){(this.startTime===null||this.startTime>t)&&(this.startTime=t),this.endTime=e,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}}var jl=function(){if(ce!=null&&ce.VTTCue)return self.VTTCue;let t=["","lr","rl"],e=["start","middle","end","left","right"];function i(l,c){if(typeof c!="string")return!1;if(!Array.isArray(l))return!1;let u=c.toLowerCase();return!!~l.indexOf(u)&&u}function r(l){return i(e,l)}function s(l,...c){let u=1;for(;u<arguments.length;u++){let h=arguments[u];for(let m in h)l[m]=h[m]}return l}function a(l,c,u){let h=this,m={enumerable:!0};h.hasBeenReset=!1;let y="",S=!1,_=l,w=c,I=u,C=null,P="",F=!0,W="auto",z="start",lt=50,it="middle",ft=50,mt="middle";Object.defineProperty(h,"id",s({},m,{get:function(){return y},set:function(Q){y=""+Q}})),Object.defineProperty(h,"pauseOnExit",s({},m,{get:function(){return S},set:function(Q){S=!!Q}})),Object.defineProperty(h,"startTime",s({},m,{get:function(){return _},set:function(Q){if(typeof Q!="number")throw TypeError("Start time must be set to a number.");_=Q,this.hasBeenReset=!0}})),Object.defineProperty(h,"endTime",s({},m,{get:function(){return w},set:function(Q){if(typeof Q!="number")throw TypeError("End time must be set to a number.");w=Q,this.hasBeenReset=!0}})),Object.defineProperty(h,"text",s({},m,{get:function(){return I},set:function(Q){I=""+Q,this.hasBeenReset=!0}})),Object.defineProperty(h,"region",s({},m,{get:function(){return C},set:function(Q){C=Q,this.hasBeenReset=!0}})),Object.defineProperty(h,"vertical",s({},m,{get:function(){return P},set:function(Q){let X=function(kt){return i(t,kt)}(Q);if(X===!1)throw SyntaxError("An invalid or illegal string was specified.");P=X,this.hasBeenReset=!0}})),Object.defineProperty(h,"snapToLines",s({},m,{get:function(){return F},set:function(Q){F=!!Q,this.hasBeenReset=!0}})),Object.defineProperty(h,"line",s({},m,{get:function(){return W},set:function(Q){if(typeof Q!="number"&&Q!=="auto")throw SyntaxError("An invalid number or illegal string was specified.");W=Q,this.hasBeenReset=!0}})),Object.defineProperty(h,"lineAlign",s({},m,{get:function(){return z},set:function(Q){let X=r(Q);if(!X)throw SyntaxError("An invalid or illegal string was specified.");z=X,this.hasBeenReset=!0}})),Object.defineProperty(h,"position",s({},m,{get:function(){return lt},set:function(Q){if(Q<0||Q>100)throw Error("Position must be between 0 and 100.");lt=Q,this.hasBeenReset=!0}})),Object.defineProperty(h,"positionAlign",s({},m,{get:function(){return it},set:function(Q){let X=r(Q);if(!X)throw SyntaxError("An invalid or illegal string was specified.");it=X,this.hasBeenReset=!0}})),Object.defineProperty(h,"size",s({},m,{get:function(){return ft},set:function(Q){if(Q<0||Q>100)throw Error("Size must be between 0 and 100.");ft=Q,this.hasBeenReset=!0}})),Object.defineProperty(h,"align",s({},m,{get:function(){return mt},set:function(Q){let X=r(Q);if(!X)throw SyntaxError("An invalid or illegal string was specified.");mt=X,this.hasBeenReset=!0}})),h.displayState=void 0}return a.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},a}();class Su{decode(t,e){if(!t)return"";if(typeof t!="string")throw Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(t))}}function bu(t){function e(r,s,a,l){return 3600*(0|r)+60*(0|s)+(0|a)+parseFloat(l||0)}let i=t.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return i?parseFloat(i[2])>59?e(i[2],i[3],0,i[4]):e(i[1],i[2],i[3],i[4]):null}class Tu{constructor(){this.values=Object.create(null)}set(t,e){this.get(t)||e===""||(this.values[t]=e)}get(t,e,i){return i?this.has(t)?this.values[t]:e[i]:this.has(t)?this.values[t]:e}has(t){return t in this.values}alt(t,e,i){for(let r=0;r<i.length;++r)if(e===i[r]){this.set(t,e);break}}integer(t,e){/^-?\d+$/.test(e)&&this.set(t,parseInt(e,10))}percent(t,e){if(/^([\d]{1,3})(\.[\d]*)?%$/.test(e)){let i=parseFloat(e);if(i>=0&&i<=100)return this.set(t,i),!0}return!1}}function _u(t,e,i,r){let s=r?t.split(r):[t];for(let a in s){if(typeof s[a]!="string")continue;let l=s[a].split(i);if(l.length!==2)continue;e(l[0],l[1])}}let zl=new jl(0,0,""),wo=zl.align==="middle"?"middle":"center";function _f(t,e,i){let r=t;function s(){let l=bu(t);if(l===null)throw Error("Malformed timestamp: "+r);return t=t.replace(/^[^\sa-zA-Z-]+/,""),l}function a(){t=t.replace(/^\s+/,"")}if(a(),e.startTime=s(),a(),t.slice(0,3)!=="-->")throw Error("Malformed time stamp (time stamps must be separated by '-->'): "+r);t=t.slice(3),a(),e.endTime=s(),a(),function(l,c){let u=new Tu;_u(l,function(y,S){let _;switch(y){case"region":for(let w=i.length-1;w>=0;w--)if(i[w].id===S){u.set(y,i[w].region);break}break;case"vertical":u.alt(y,S,["rl","lr"]);break;case"line":_=S.split(","),u.integer(y,_[0]),u.percent(y,_[0])&&u.set("snapToLines",!1),u.alt(y,_[0],["auto"]),_.length===2&&u.alt("lineAlign",_[1],["start",wo,"end"]);break;case"position":_=S.split(","),u.percent(y,_[0]),_.length===2&&u.alt("positionAlign",_[1],["start",wo,"end","line-left","line-right","auto"]);break;case"size":u.percent(y,S);break;case"align":u.alt(y,S,["start",wo,"end","left","right"])}},/:/,/\s/),c.region=u.get("region",null),c.vertical=u.get("vertical","");let h=u.get("line","auto");h==="auto"&&zl.line===-1&&(h=-1),c.line=h,c.lineAlign=u.get("lineAlign","start"),c.snapToLines=u.get("snapToLines",!0),c.size=u.get("size",100),c.align=u.get("align",wo);let m=u.get("position","auto");m==="auto"&&zl.position===50&&(m=c.align==="start"||c.align==="left"?0:c.align==="end"||c.align==="right"?100:50),c.position=m}(t,e)}function Au(t){return t.replace(/<br(?: \/)?>/gi,`
16
+ `)}class Lu{constructor(){this.state="INITIAL",this.buffer="",this.decoder=new Su,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}parse(t){let e=this;function i(){let r=e.buffer,s=0;for(r=Au(r);s<r.length&&r[s]!=="\r"&&r[s]!==`
17
+ `;)++s;let a=r.slice(0,s);return r[s]==="\r"&&++s,r[s]===`
18
+ `&&++s,e.buffer=r.slice(s),a}t&&(e.buffer+=e.decoder.decode(t,{stream:!0}));try{let r="";if(e.state==="INITIAL"){if(!/\r\n|\n/.test(e.buffer))return this;r=i();let a=r.match(/^()?WEBVTT([ \t].*)?$/);if(a==null||!a[0])throw Error("Malformed WebVTT signature.");e.state="HEADER"}let s=!1;for(;e.buffer;){if(!/\r\n|\n/.test(e.buffer))return this;switch(s?s=!1:r=i(),e.state){case"HEADER":/:/.test(r)?_u(r,function(a,l){},/:/):r||(e.state="ID");continue;case"NOTE":r||(e.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(r)){e.state="NOTE";break}if(!r)continue;if(e.cue=new jl(0,0,""),e.state="CUE",r.indexOf("-->")===-1){e.cue.id=r;continue}case"CUE":if(!e.cue){e.state="BADCUE";continue}try{_f(r,e.cue,e.regionList)}catch(a){e.cue=null,e.state="BADCUE";continue}e.state="CUETEXT";continue;case"CUETEXT":{let a=r.indexOf("-->")!==-1;if(!r||a&&(s=!0)){e.oncue&&e.cue&&e.oncue(e.cue),e.cue=null,e.state="ID";continue}if(e.cue===null)continue;e.cue.text&&(e.cue.text+=`
19
+ `),e.cue.text+=r}continue;case"BADCUE":r||(e.state="ID")}}}catch(r){e.state==="CUETEXT"&&e.cue&&e.oncue&&e.oncue(e.cue),e.cue=null,e.state=e.state==="INITIAL"?"BADWEBVTT":"BADCUE"}return this}flush(){let t=this;try{if((t.cue||t.state==="HEADER")&&(t.buffer+=`
20
+
21
+ `,t.parse()),t.state==="INITIAL"||t.state==="BADWEBVTT")throw Error("Malformed WebVTT signature.")}catch(e){t.onparsingerror&&t.onparsingerror(e)}return t.onflush&&t.onflush(),this}}let Af=/\r\n|\n\r|\n|\r/g,ql=function(t,e,i=0){return t.slice(i,i+e.length)===e},Xl=function(t){let e=5381,i=t.length;for(;i;)e=33*e^t.charCodeAt(--i);return(e>>>0).toString()};function Jl(t,e,i){return Xl(t.toString())+Xl(e.toString())+Xl(i)}function Lf(t,e,i,r,s,a,l){let c=new Lu,u=Fe(new Uint8Array(t)).trim().replace(Af,`
22
22
  `).split(`
23
- `),h=[],m=e?function(D,F=1){return p(D,90000,1/F)}(e.baseTime,e.timescale):0,y,S="00:00.000",_=0,w=0,I=!0;c.oncue=function(D){let F=i[n],x=i.ccOffset,W=(_-m)/90000;if(F!=null&&F.new&&(w!==void 0?x=i.ccOffset=F.start:function(ft,mt,Z){let J=ft[mt],kt=ft[J.prevCC];if(!kt||!kt.new&&J.new)return ft.ccOffset=ft.presentationOffset=J.start,void(J.new=!1);for(;(ht=kt)!=null&&ht.new;){var ht;ft.ccOffset+=J.start-kt.start,J.new=!1,J=kt,kt=ft[J.prevCC]}ft.presentationOffset=Z}(i,n,W)),W){if(!e)return void(y=Error("Missing initPTS for VTT MPEGTS"));x=W-i.presentationOffset}let z=D.endTime-D.startTime,lt=j(90000*(D.startTime+x-w),90000*s)/90000;D.startTime=Math.max(lt,0),D.endTime=Math.max(lt+z,0);let it=D.text.trim();D.text=decodeURIComponent(encodeURIComponent(it)),D.id||(D.id=Yl(D.startTime,D.endTime,it)),D.endTime>0&&h.push(D)},c.onparsingerror=function(D){y=D},c.onflush=function(){y?o(y):a(h)},u.forEach((D)=>{if(I){if(Vl(D,"X-TIMESTAMP-MAP=")){I=!1,D.slice(16).split(",").forEach((F)=>{Vl(F,"LOCAL:")?S=F.slice(6):Vl(F,"MPEGTS:")&&(_=parseInt(F.slice(7)))});try{w=function(F){let x=parseInt(F.slice(-3)),W=parseInt(F.slice(-6,-4)),z=parseInt(F.slice(-9,-7)),lt=F.length>9?parseInt(F.substring(0,F.indexOf(":"))):0;if(!(L(x)&&L(W)&&L(z)&&L(lt)))throw Error("Malformed X-TIMESTAMP-MAP: Local:"+F);return x+=1000*W,x+=60000*z,x+=3600000*lt,x}(S)/1000}catch(F){y=F}return}D===""&&(I=!1)}c.parse(D+`
24
- `)}),c.flush()}let Tu=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,_u=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,yf={left:"start",center:"center",right:"end",start:"start",end:"end"};function Au(t,e,i,n){let s=Wt(new Uint8Array(t),["mdat"]);if(s.length===0)return void n(Error("Could not parse IMSC1 mdat"));let a=s.map((c)=>xe(c)),o=function(c,u,h=1,m=!1){return p(c,u,1/h,m)}(e.baseTime,1,e.timescale);try{a.forEach((c)=>i(function(u,h){let m=new DOMParser,y=m.parseFromString(u,"text/xml").getElementsByTagName("tt")[0];if(!y)throw Error("Invalid ttml");let S={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},_=Object.keys(S).reduce((x,W)=>(x[W]=y.getAttribute("ttp:"+W)||S[W],x),{}),w=y.getAttribute("xml:space")!=="preserve",I=Lu(jl(y,"styling","style")),D=Lu(jl(y,"layout","region")),F=jl(y,"body","[begin]");return[].map.call(F,(x)=>{let W=function J(kt,ht){return[].slice.call(kt.childNodes).reduce((wt,It,Mt)=>{var at;return It.nodeName==="br"&&Mt?wt+`
25
- `:(at=It.childNodes)!=null&&at.length?J(It,ht):ht?wt+It.textContent.trim().replace(/\s+/g," "):wt+It.textContent},"")}(x,w);if(!W||!x.hasAttribute("begin"))return null;let z=ql(x.getAttribute("begin"),_),lt=ql(x.getAttribute("dur"),_),it=ql(x.getAttribute("end"),_);if(z===null)throw wu(x);if(it===null){if(lt===null)throw wu(x);it=z+lt}let ft=new Hl(z-h,it-h,W);ft.id=Yl(ft.startTime,ft.endTime,ft.text);let mt=function(J,kt,ht){let It=null,Mt=J!=null&&J.hasAttribute("style")?J.getAttribute("style"):null;return Mt&&ht.hasOwnProperty(Mt)&&(It=ht[Mt]),["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"].reduce((at,vt)=>{let Ct=zl(kt,"http://www.w3.org/ns/ttml#styling",vt)||zl(J,"http://www.w3.org/ns/ttml#styling",vt)||zl(It,"http://www.w3.org/ns/ttml#styling",vt);return Ct&&(at[vt]=Ct),at},{})}(D[x.getAttribute("region")],I[x.getAttribute("style")],I),{textAlign:Z}=mt;if(Z){let J=yf[Z];J&&(ft.lineAlign=J),ft.align=Z}return T(ft,mt),ft}).filter((x)=>x!==null)}(c,o)))}catch(c){n(c)}}function jl(t,e,i){let n=t.getElementsByTagName(e)[0];return n?[].slice.call(n.querySelectorAll(i)):[]}function Lu(t){return t.reduce((e,i)=>{let n=i.getAttribute("xml:id");return n&&(e[n]=i),e},{})}function zl(t,e,i){return t&&t.hasAttributeNS(e,i)?t.getAttributeNS(e,i):null}function wu(t){return Error("Could not parse ttml timestamp "+t)}function ql(t,e){if(!t)return null;let i=vu(t);return i===null&&(Tu.test(t)?i=function(n,s){let a=Tu.exec(n),o=(0|a[4])+(0|a[5])/s.subFrameRate;return 3600*(0|a[1])+60*(0|a[2])+(0|a[3])+o/s.frameRate}(t,e):_u.test(t)&&(i=function(n,s){let a=_u.exec(n),o=Number(a[1]);switch(a[2]){case"h":return 3600*o;case"m":return 60*o;case"ms":return 1000*o;case"f":return o/s.frameRate;case"t":return o/s.tickRate}return o}(t,e))),i}function Ru(t){return t.characteristics&&/transcribes-spoken-dialog/gi.test(t.characteristics)&&/describes-music-and-sound/gi.test(t.characteristics)?"captions":"subtitles"}function ku(t,e){return!!t&&t.kind===Ru(e)&&Ul(e,t)}class Xl{constructor(t){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=t,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(t){this.streamController=t}destroy(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){let{hls:t}=this;t.on(b.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),t.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),t.on(b.MANIFEST_PARSED,this.onManifestParsed,this),t.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(b.BUFFER_CODECS,this.onBufferCodecs,this),t.on(b.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){let{hls:t}=this;t.off(b.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),t.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),t.off(b.MANIFEST_PARSED,this.onManifestParsed,this),t.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(b.BUFFER_CODECS,this.onBufferCodecs,this),t.off(b.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(t,e){let i=this.hls.levels[e.droppedLevel];this.isLevelAllowed(i)&&this.restrictedLevels.push({bitrate:i.bitrate,height:i.height,width:i.width})}onMediaAttaching(t,e){this.media=e.media instanceof HTMLVideoElement?e.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()}onManifestParsed(t,e){let i=this.hls;this.restrictedLevels=[],this.firstLevel=e.firstLevel,i.config.capLevelToPlayerSize&&e.video&&this.startCapping()}onLevelsUpdated(t,e){this.timer&&L(this.autoLevelCapping)&&this.detectPlayerSize()}onBufferCodecs(t,e){this.hls.config.capLevelToPlayerSize&&e.video&&this.startCapping()}onMediaDetaching(){this.stopCapping()}detectPlayerSize(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0)return void(this.clientRect=null);let t=this.hls.levels;if(t.length){let e=this.hls,i=this.getMaxLevel(t.length-1);i!==this.autoLevelCapping&&C.log(`Setting autoLevelCapping to ${i}: ${t[i].height}p@${t[i].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`),e.autoLevelCapping=i,e.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=e.autoLevelCapping}}}getMaxLevel(t){let e=this.hls.levels;if(!e.length)return-1;let i=e.filter((n,s)=>this.isLevelAllowed(n)&&s<=t);return this.clientRect=null,Xl.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1000),this.detectPlayerSize())}stopCapping(){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 t=this.media,e={width:0,height:0};if(t){let i=t.getBoundingClientRect();e.width=i.width,e.height=i.height,e.width||e.height||(e.width=i.right-i.left||t.width||0,e.height=i.bottom-i.top||t.height||0)}return this.clientRect=e,e}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let t=1;if(!this.hls.config.ignoreDevicePixelRatio)try{t=self.devicePixelRatio}catch(e){}return t}isLevelAllowed(t){return!this.restrictedLevels.some((e)=>t.bitrate===e.bitrate&&t.width===e.width&&t.height===e.height)}static getMaxLevelByMediaSize(t,e,i){if(t==null||!t.length)return-1;let n=t.length-1,s=Math.max(e,i);for(let c=0;c<t.length;c+=1){let u=t[c];if((u.width>=s||u.height>=s)&&(a=u,!(o=t[c+1])||a.width!==o.width||a.height!==o.height)){n=c;break}}var a,o;return n}}class rs{constructor(t){this.hls=void 0,this.config=void 0,this.media=null,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.setMediaKeysQueue=rs.CDMCleanupPromise?[rs.CDMCleanupPromise]:[],this.onMediaEncrypted=this._onMediaEncrypted.bind(this),this.onWaitingForKey=this._onWaitingForKey.bind(this),this.debug=C.debug.bind(C,"[eme]"),this.log=C.log.bind(C,"[eme]"),this.warn=C.warn.bind(C,"[eme]"),this.error=C.error.bind(C,"[eme]"),this.hls=t,this.config=t.config,this.registerListeners()}destroy(){this.unregisterListeners(),this.onMediaDetached();let t=this.config;t.requestMediaKeySystemAccessFunc=null,t.licenseXhrSetup=t.licenseResponseCallback=void 0,t.drmSystems=t.drmSystemOptions={},this.hls=this.onMediaEncrypted=this.onWaitingForKey=this.keyIdToKeySessionPromise=null,this.config=null}registerListeners(){this.hls.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(b.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(b.MANIFEST_LOADED,this.onManifestLoaded,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(b.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(b.MANIFEST_LOADED,this.onManifestLoaded,this)}getLicenseServerUrl(t){let{drmSystems:e,widevineLicenseUrl:i}=this.config,n=e[t];if(n)return n.licenseUrl;if(t===jt.WIDEVINE&&i)return i;throw Error(`no license server URL configured for key-system "${t}"`)}getServerCertificateUrl(t){let{drmSystems:e}=this.config,i=e[t];if(i)return i.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${t}"]`)}attemptKeySystemAccess(t){let e=this.hls.levels,i=(a,o,c)=>!!a&&c.indexOf(a)===o,n=e.map((a)=>a.audioCodec).filter(i),s=e.map((a)=>a.videoCodec).filter(i);return n.length+s.length===0&&s.push("avc1.42e01e"),new Promise((a,o)=>{let c=(u)=>{let h=u.shift();this.getMediaKeysPromise(h,n,s).then((m)=>a({keySystem:h,mediaKeys:m})).catch((m)=>{u.length?c(u):o(m instanceof Ei?m:new Ei({type:G.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_NO_ACCESS,error:m,fatal:!0},m.message))})};c(t)})}requestMediaKeySystemAccess(t,e){let{requestMediaKeySystemAccessFunc:i}=this.config;if(typeof i!="function"){let n="Configured requestMediaKeySystemAccess is not a function "+i;return Pe===null&&self.location.protocol==="http:"&&(n="navigator.requestMediaKeySystemAccess is not available over insecure protocol "+location.protocol),Promise.reject(Error(n))}return i(t,e)}getMediaKeysPromise(t,e,i){let n=function(o,c,u,h){let m;switch(o){case jt.FAIRPLAY:m=["cenc","sinf"];break;case jt.WIDEVINE:case jt.PLAYREADY:m=["cenc"];break;case jt.CLEARKEY:m=["cenc","keyids"];break;default:throw Error("Unknown key-system: "+o)}return function(y,S,_,w){return[{initDataTypes:y,persistentState:w.persistentState||"optional",distinctiveIdentifier:w.distinctiveIdentifier||"optional",sessionTypes:w.sessionTypes||[w.sessionType||"temporary"],audioCapabilities:S.map((I)=>({contentType:`audio/mp4; codecs="${I}"`,robustness:w.audioRobustness||"",encryptionScheme:w.audioEncryptionScheme||null})),videoCapabilities:_.map((I)=>({contentType:`video/mp4; codecs="${I}"`,robustness:w.videoRobustness||"",encryptionScheme:w.videoEncryptionScheme||null}))}]}(m,c,u,h)}(t,e,i,this.config.drmSystemOptions),s=this.keySystemAccessPromises[t],a=s==null?void 0:s.keySystemAccess;if(!a){this.log(`Requesting encrypted media "${t}" key-system access with config: ${JSON.stringify(n)}`),a=this.requestMediaKeySystemAccess(t,n);let o=this.keySystemAccessPromises[t]={keySystemAccess:a};return a.catch((c)=>{this.log(`Failed to obtain access to key-system "${t}": ${c}`)}),a.then((c)=>{this.log(`Access for key-system "${c.keySystem}" obtained`);let u=this.fetchServerCertificate(t);return this.log(`Create media-keys for "${t}"`),o.mediaKeys=c.createMediaKeys().then((h)=>(this.log(`Media-keys created for "${t}"`),u.then((m)=>m?this.setMediaKeysServerCertificate(h,t,m):h))),o.mediaKeys.catch((h)=>{this.error(`Failed to create media-keys for "${t}"}: ${h}`)}),o.mediaKeys})}return a.then(()=>s.mediaKeys)}createMediaKeySessionContext({decryptdata:t,keySystem:e,mediaKeys:i}){this.log(`Creating key-system session "${e}" keyId: ${ri(t.keyId||[])}`);let n=i.createSession(),s={decryptdata:t,keySystem:e,mediaKeys:i,mediaKeysSession:n,keyStatus:"status-pending"};return this.mediaKeySessions.push(s),s}renewKeySession(t){let e=t.decryptdata;if(e.pssh){let i=this.createMediaKeySessionContext(t),n=this.getKeyIdString(e);this.keyIdToKeySessionPromise[n]=this.generateRequestWithPreferredKeySession(i,"cenc",e.pssh,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(t)}getKeyIdString(t){if(!t)throw Error("Could not read keyId of undefined decryptdata");if(t.keyId===null)throw Error("keyId is null");return ri(t.keyId)}updateKeySession(t,e){var i;let n=t.mediaKeysSession;return this.log(`Updating key-session "${n.sessionId}" for keyID ${ri(((i=t.decryptdata)==null?void 0:i.keyId)||[])}
26
- } (data length: ${e?e.byteLength:e})`),n.update(e)}selectKeySystemFormat(t){let e=Object.keys(t.levelkeys||{});return this.keyFormatPromise||(this.log(`Selecting key-system from fragment (sn: ${t.sn} ${t.type}: ${t.level}) key formats ${e.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(e)),this.keyFormatPromise}getKeyFormatPromise(t){return new Promise((e,i)=>{let n=Je(this.config),s=t.map(Lt).filter((a)=>!!a&&n.indexOf(a)!==-1);return this.getKeySystemSelectionPromise(s).then(({keySystem:a})=>{let o=ue(a);o?e(o):i(Error(`Unable to find format for key-system "${a}"`))}).catch(i)})}loadKey(t){let e=t.keyInfo.decryptdata,i=this.getKeyIdString(e),n=`(keyId: ${i} format: "${e.keyFormat}" method: ${e.method} uri: ${e.uri})`;this.log("Starting session for key "+n);let s=this.keyIdToKeySessionPromise[i];return s||(s=this.keyIdToKeySessionPromise[i]=this.getKeySystemForKeyPromise(e).then(({keySystem:a,mediaKeys:o})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${t.frag.sn} ${t.frag.type}: ${t.frag.level} using key ${n}`),this.attemptSetMediaKeys(a,o).then(()=>{this.throwIfDestroyed();let c=this.createMediaKeySessionContext({keySystem:a,mediaKeys:o,decryptdata:e});return this.generateRequestWithPreferredKeySession(c,"cenc",e.pssh,"playlist-key")}))),s.catch((a)=>this.handleError(a))),s}throwIfDestroyed(t="Invalid state"){if(!this.hls)throw Error("invalid state")}handleError(t){this.hls&&(this.error(t.message),t instanceof Ei?this.hls.trigger(b.ERROR,t.data):this.hls.trigger(b.ERROR,{type:G.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_NO_KEYS,error:t,fatal:!0}))}getKeySystemForKeyPromise(t){let e=this.getKeyIdString(t),i=this.keyIdToKeySessionPromise[e];if(!i){let n=Lt(t.keyFormat),s=n?[n]:Je(this.config);return this.attemptKeySystemAccess(s)}return i}getKeySystemSelectionPromise(t){if(t.length||(t=Je(this.config)),t.length===0)throw new Ei({type:G.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},"Missing key-system license configuration options "+JSON.stringify({drmSystems:this.config.drmSystems}));return this.attemptKeySystemAccess(t)}_onMediaEncrypted(t){let{initDataType:e,initData:i}=t;if(this.debug(`"${t.type}" event: init data type: "${e}"`),i===null)return;let n,s;if(e==="sinf"&&this.config.drmSystems[jt.FAIRPLAY]){let h=ye(new Uint8Array(i));try{let m=bt(JSON.parse(h).sinf),y=Us(new Uint8Array(m));if(!y)return;n=y.subarray(8,24),s=jt.FAIRPLAY}catch(m){return void this.warn('Failed to parse sinf "encrypted" event message initData')}}else{let h=function(m){if(!(m instanceof ArrayBuffer)||m.byteLength<32)return null;let y={version:0,systemId:"",kids:null,data:null},S=new DataView(m),_=S.getUint32(0);if(m.byteLength!==_&&_>44)return null;if(S.getUint32(4)!==1886614376)return null;if(y.version=S.getUint32(8)>>>24,y.version>1)return null;y.systemId=ri(new Uint8Array(m,12,16));let w=S.getUint32(28);if(y.version===0){if(_-32<w)return null;y.data=new Uint8Array(m,32,w)}else if(y.version===1){y.kids=[];for(let I=0;I<w;I++)y.kids.push(new Uint8Array(m,32+16*I,16))}return y}(i);if(h===null)return;h.version===0&&h.systemId===ve&&h.data&&(n=h.data.subarray(8,24)),s=function(m){if(m===ve)return jt.WIDEVINE}(h.systemId)}if(!s||!n)return;let a=ri(n),{keyIdToKeySessionPromise:o,mediaKeySessions:c}=this,u=o[a];for(let h=0;h<c.length;h++){let m=c[h],y=m.decryptdata;if(y.pssh||!y.keyId)continue;let S=ri(y.keyId);if(a===S||y.uri.replace(/-/g,"").indexOf(a)!==-1){u=o[S],delete o[S],y.pssh=new Uint8Array(i),y.keyId=n,u=o[a]=u.then(()=>this.generateRequestWithPreferredKeySession(m,e,i,"encrypted-event-key-match"));break}}u||(u=o[a]=this.getKeySystemSelectionPromise([s]).then(({keySystem:h,mediaKeys:m})=>{var y;this.throwIfDestroyed();let S=new fi("ISO-23001-7",a,(y=ue(h))!=null?y:"");return S.pssh=new Uint8Array(i),S.keyId=n,this.attemptSetMediaKeys(h,m).then(()=>{this.throwIfDestroyed();let _=this.createMediaKeySessionContext({decryptdata:S,keySystem:h,mediaKeys:m});return this.generateRequestWithPreferredKeySession(_,e,i,"encrypted-event-no-match")})})),u.catch((h)=>this.handleError(h))}_onWaitingForKey(t){this.log(`"${t.type}" event`)}attemptSetMediaKeys(t,e){let i=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${t}"`);let n=Promise.all(i).then(()=>{if(!this.media)throw Error("Attempted to set mediaKeys without media element attached");return this.media.setMediaKeys(e)});return this.setMediaKeysQueue.push(n),n.then(()=>{this.log(`Media-keys set for "${t}"`),i.push(n),this.setMediaKeysQueue=this.setMediaKeysQueue.filter((s)=>i.indexOf(s)===-1)})}generateRequestWithPreferredKeySession(t,e,i,n){var s,a;let o=(s=this.config.drmSystems)==null||(a=s[t.keySystem])==null?void 0:a.generateRequest;if(o)try{let _=o.call(this.hls,e,i,t);if(!_)throw Error("Invalid response from configured generateRequest filter");e=_.initDataType,i=t.decryptdata.pssh=_.initData?new Uint8Array(_.initData):null}catch(_){var c;if(this.warn(_.message),(c=this.hls)!=null&&c.config.debug)throw _}if(i===null)return this.log(`Skipping key-session request for "${n}" (no initData)`),Promise.resolve(t);let u=this.getKeyIdString(t.decryptdata);this.log(`Generating key-session request for "${n}": ${u} (init data type: ${e} length: ${i?i.byteLength:null})`);let h=new Pl,m=t._onmessage=(_)=>{let w=t.mediaKeysSession;if(!w)return void h.emit("error",Error("invalid state"));let{messageType:I,message:D}=_;this.log(`"${I}" message event for session "${w.sessionId}" message size: ${D.byteLength}`),I==="license-request"||I==="license-renewal"?this.renewLicense(t,D).catch((F)=>{this.handleError(F),h.emit("error",F)}):I==="license-release"?t.keySystem===jt.FAIRPLAY&&(this.updateKeySession(t,Vt("acknowledged")),this.removeSession(t)):this.warn(`unhandled media key message type "${I}"`)},y=t._onkeystatuseschange=(_)=>{if(!t.mediaKeysSession)return void h.emit("error",Error("invalid state"));this.onKeyStatusChange(t);let w=t.keyStatus;h.emit("keyStatus",w),w==="expired"&&(this.warn(`${t.keySystem} expired for key ${u}`),this.renewKeySession(t))};t.mediaKeysSession.addEventListener("message",m),t.mediaKeysSession.addEventListener("keystatuseschange",y);let S=new Promise((_,w)=>{h.on("error",w),h.on("keyStatus",(I)=>{I.startsWith("usable")?_():I==="output-restricted"?w(new Ei({type:G.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,fatal:!1},"HDCP level output restricted")):I==="internal-error"?w(new Ei({type:G.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_STATUS_INTERNAL_ERROR,fatal:!0},`key status changed to "${I}"`)):I==="expired"?w(Error("key expired while generating request")):this.warn(`unhandled key status change "${I}"`)})});return t.mediaKeysSession.generateRequest(e,i).then(()=>{var _;this.log(`Request generated for key-session "${(_=t.mediaKeysSession)==null?void 0:_.sessionId}" keyId: ${u}`)}).catch((_)=>{throw new Ei({type:G.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_NO_SESSION,error:_,fatal:!1},"Error generating key-session request: "+_)}).then(()=>S).catch((_)=>{throw h.removeAllListeners(),this.removeSession(t),_}).then(()=>(h.removeAllListeners(),t))}onKeyStatusChange(t){t.mediaKeysSession.keyStatuses.forEach((e,i)=>{this.log(`key status change "${e}" for keyStatuses keyId: ${ri("buffer"in i?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i))} session keyId: ${ri(new Uint8Array(t.decryptdata.keyId||[]))} uri: ${t.decryptdata.uri}`),t.keyStatus=e})}fetchServerCertificate(t){let e=this.config,i=new e.loader(e),n=this.getServerCertificateUrl(t);return n?(this.log(`Fetching server certificate for "${t}"`),new Promise((s,a)=>{let o={responseType:"arraybuffer",url:n},c=e.certLoadPolicy.default,u={loadPolicy:c,timeout:c.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},h={onSuccess:(m,y,S,_)=>{s(m.data)},onError:(m,y,S,_)=>{a(new Ei({type:G.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:S,response:E({url:o.url,data:void 0},m)},`"${t}" certificate request failed (${n}). Status: ${m.code} (${m.text})`))},onTimeout:(m,y,S)=>{a(new Ei({type:G.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:S,response:{url:o.url,data:void 0}},`"${t}" certificate request timed out (${n})`))},onAbort:(m,y,S)=>{a(Error("aborted"))}};i.load(o,u,h)})):Promise.resolve()}setMediaKeysServerCertificate(t,e,i){return new Promise((n,s)=>{t.setServerCertificate(i).then((a)=>{this.log(`setServerCertificate ${a?"success":"not supported by CDM"} (${i==null?void 0:i.byteLength}) on "${e}"`),n(t)}).catch((a)=>{s(new Ei({type:G.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:a,fatal:!0},a.message))})})}renewLicense(t,e){return this.requestLicense(t,new Uint8Array(e)).then((i)=>this.updateKeySession(t,new Uint8Array(i)).catch((n)=>{throw new Ei({type:G.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_SESSION_UPDATE_FAILED,error:n,fatal:!0},n.message)}))}unpackPlayReadyKeyMessage(t,e){let i=String.fromCharCode.apply(null,new Uint16Array(e.buffer));if(!i.includes("PlayReadyKeyMessage"))return t.setRequestHeader("Content-Type","text/xml; charset=utf-8"),e;let n=new DOMParser().parseFromString(i,"application/xml"),s=n.querySelectorAll("HttpHeader");if(s.length>0){let h;for(let m=0,y=s.length;m<y;m++){var a,o;h=s[m];let S=(a=h.querySelector("name"))==null?void 0:a.textContent,_=(o=h.querySelector("value"))==null?void 0:o.textContent;S&&_&&t.setRequestHeader(S,_)}}let c=n.querySelector("Challenge"),u=c==null?void 0:c.textContent;if(!u)throw Error("Cannot find <Challenge> in key message");return Vt(atob(u))}setupLicenseXHR(t,e,i,n){let s=this.config.licenseXhrSetup;return s?Promise.resolve().then(()=>{if(!i.decryptdata)throw Error("Key removed");return s.call(this.hls,t,e,i,n)}).catch((a)=>{if(!i.decryptdata)throw a;return t.open("POST",e,!0),s.call(this.hls,t,e,i,n)}).then((a)=>{return t.readyState||t.open("POST",e,!0),{xhr:t,licenseChallenge:a||n}}):(t.open("POST",e,!0),Promise.resolve({xhr:t,licenseChallenge:n}))}requestLicense(t,e){let i=this.config.keyLoadPolicy.default;return new Promise((n,s)=>{let a=this.getLicenseServerUrl(t.keySystem);this.log("Sending license request to URL: "+a);let o=new XMLHttpRequest;o.responseType="arraybuffer",o.onreadystatechange=()=>{if(!this.hls||!t.mediaKeysSession)return s(Error("invalid state"));if(o.readyState===4)if(o.status===200){this._requestLicenseFailureCount=0;let c=o.response;this.log("License received "+(c instanceof ArrayBuffer?c.byteLength:c));let u=this.config.licenseResponseCallback;if(u)try{c=u.call(this.hls,o,a,t)}catch(h){this.error(h)}n(c)}else{let c=i.errorRetry,u=c?c.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>u||o.status>=400&&o.status<500)s(new Ei({type:G.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:o,response:{url:a,data:void 0,code:o.status,text:o.statusText}},`License Request XHR failed (${a}). Status: ${o.status} (${o.statusText})`));else{let h=u-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${h} attempts left`),this.requestLicense(t,e).then(n,s)}}},t.licenseXhr&&t.licenseXhr.readyState!==XMLHttpRequest.DONE&&t.licenseXhr.abort(),t.licenseXhr=o,this.setupLicenseXHR(o,a,t,e).then(({xhr:c,licenseChallenge:u})=>{t.keySystem==jt.PLAYREADY&&(u=this.unpackPlayReadyKeyMessage(c,u)),c.send(u)})})}onMediaAttached(t,e){if(!this.config.emeEnabled)return;let i=e.media;this.media=i,i.addEventListener("encrypted",this.onMediaEncrypted),i.addEventListener("waitingforkey",this.onWaitingForKey)}onMediaDetached(){let t=this.media,e=this.mediaKeySessions;t&&(t.removeEventListener("encrypted",this.onMediaEncrypted),t.removeEventListener("waitingforkey",this.onWaitingForKey),this.media=null),this._requestLicenseFailureCount=0,this.setMediaKeysQueue=[],this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},fi.clearKeyUriToKeyIdMap();let i=e.length;rs.CDMCleanupPromise=Promise.all(e.map((n)=>this.removeSession(n)).concat(t==null?void 0:t.setMediaKeys(null).catch((n)=>{this.log("Could not clear media keys: "+n)}))).then(()=>{i&&(this.log("finished closing key sessions and clearing media keys"),e.length=0)}).catch((n)=>{this.log("Could not close sessions and clear media keys: "+n)})}onManifestLoading(){this.keyFormatPromise=null}onManifestLoaded(t,{sessionKeys:e}){if(e&&this.config.emeEnabled&&!this.keyFormatPromise){let i=e.reduce((n,s)=>(n.indexOf(s.keyFormat)===-1&&n.push(s.keyFormat),n),[]);this.log("Selecting key-system from session-keys "+i.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(i)}}removeSession(t){let{mediaKeysSession:e,licenseXhr:i}=t;if(e){this.log("Remove licenses and keys and close session "+e.sessionId),t._onmessage&&(e.removeEventListener("message",t._onmessage),t._onmessage=void 0),t._onkeystatuseschange&&(e.removeEventListener("keystatuseschange",t._onkeystatuseschange),t._onkeystatuseschange=void 0),i&&i.readyState!==XMLHttpRequest.DONE&&i.abort(),t.mediaKeysSession=t.decryptdata=t.licenseXhr=void 0;let n=this.mediaKeySessions.indexOf(t);return n>-1&&this.mediaKeySessions.splice(n,1),e.remove().catch((s)=>{this.log("Could not remove session: "+s)}).then(()=>e.close()).catch((s)=>{this.log("Could not close session: "+s)})}}}rs.CDMCleanupPromise=void 0;class Ei extends Error{constructor(t,e){super(e),this.data=void 0,t.error||(t.error=Error(e)),this.data=t,t.err=t.error}}var qe,Jl,mr;(function(t){t.MANIFEST="m",t.AUDIO="a",t.VIDEO="v",t.MUXED="av",t.INIT="i",t.CAPTION="c",t.TIMED_TEXT="tt",t.KEY="k",t.OTHER="o"})(qe||(qe={})),function(t){t.DASH="d",t.HLS="h",t.SMOOTH="s",t.OTHER="o"}(Jl||(Jl={})),function(t){t.OBJECT="CMCD-Object",t.REQUEST="CMCD-Request",t.SESSION="CMCD-Session",t.STATUS="CMCD-Status"}(mr||(mr={}));let Sf={[mr.OBJECT]:["br","d","ot","tb"],[mr.REQUEST]:["bl","dl","mtp","nor","nrr","su"],[mr.SESSION]:["cid","pr","sf","sid","st","v"],[mr.STATUS]:["bs","rtp"]};class ss{constructor(t,e){this.value=void 0,this.params=void 0,Array.isArray(t)&&(t=t.map((i)=>i instanceof ss?i:new ss(i))),this.value=t,this.params=e}}class Ql{constructor(t){this.description=void 0,this.description=t}}function bf(t,e,i,n){return Error(`failed to ${t} "${s=e,Array.isArray(s)?JSON.stringify(s):s instanceof Map?"Map{}":s instanceof Set?"Set{}":typeof s=="object"?JSON.stringify(s):String(s)}" as ${i}`,{cause:n});var s}let Tf=/[\x00-\x1f\x7f]+/;function Ji(t,e,i){return bf("serialize",t,e,i)}function _f(t){if(ArrayBuffer.isView(t)===!1)throw Ji(t,"Byte Sequence");return`:${e=t,btoa(String.fromCharCode(...e))}:`;var e}function Du(t){if(function(e){return e<-999999999999999||999999999999999<e}(t))throw Ji(t,"Integer");return t.toString()}function Af(t){let e=function n(s,a){if(s<0)return-n(-s,a);let o=Math.pow(10,a);if(Math.abs(s*o%1-0.5)<Number.EPSILON){let c=Math.floor(s*o);return(c%2==0?c:c+1)/o}return Math.round(s*o)/o}(t,3);if(Math.floor(Math.abs(e)).toString().length>12)throw Ji(t,"Decimal");let i=e.toString();return i.includes(".")?i:i+".0"}function Cu(t){let e=(i=t).description||i.toString().slice(7,-1);var i;if(/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(e)===!1)throw Ji(e,"Token");return e}function Zl(t){switch(typeof t){case"number":if(!L(t))throw Ji(t,"Bare Item");return Number.isInteger(t)?Du(t):Af(t);case"string":return function(e){if(Tf.test(e))throw Ji(e,"String");return`"${e.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`}(t);case"symbol":return Cu(t);case"boolean":return function(e){if(typeof e!="boolean")throw Ji(e,"Boolean");return e?"?1":"?0"}(t);case"object":if(t instanceof Date)return function(e){return"@"+Du(e.getTime()/1000)}(t);if(t instanceof Uint8Array)return _f(t);if(t instanceof Ql)return Cu(t);default:throw Ji(t,"Bare Item")}}function tc(t){if(/^[a-z*][a-z0-9\-_.*]*$/.test(t)===!1)throw Ji(t,"Key");return t}function ec(t){return t==null?"":Object.entries(t).map(([e,i])=>i===!0?";"+tc(e):`;${tc(e)}=${Zl(i)}`).join("")}function Iu(t){return t instanceof ss?`${Zl(t.value)}${ec(t.params)}`:Zl(t)}function Lf(t,e={whitespace:!0}){if(typeof t!="object")throw Ji(t,"Dict");let i=t instanceof Map?t.entries():Object.entries(t),n=e!=null&&e.whitespace?" ":"";return Array.from(i).map(([s,a])=>{a instanceof ss==!1&&(a=new ss(a));let o=tc(s);var c;return a.value===!0?o+=ec(a.params):(o+="=",Array.isArray(a.value)?o+=`(${(c=a).value.map(Iu).join(" ")})${ec(c.params)}`:o+=Iu(a)),o}).join(","+n)}let wo=(t)=>Math.round(t),Ro=(t)=>100*wo(t/100),wf={br:wo,d:wo,bl:Ro,dl:Ro,mtp:Ro,nor:(t,e)=>(e!=null&&e.baseUrl&&(t=function(i,n){let s=new URL(i),a=new URL(n);if(s.origin!==a.origin)return i;let o=s.pathname.split("/").slice(1),c=a.pathname.split("/").slice(1,-1);for(;o[0]===c[0];)o.shift(),c.shift();for(;c.length;)c.shift(),o.unshift("..");return o.join("/")}(t,e.baseUrl)),encodeURIComponent(t)),rtp:Ro,tb:wo};function Rf(t,e){let i={};if(t==null||typeof t!="object")return i;let n=Object.keys(t).sort(),s=T({},wf,e==null?void 0:e.formatters),a=e==null?void 0:e.filter;return n.forEach((o)=>{if(a!=null&&a(o))return;let c=t[o],u=s[o];u&&(c=u(c,e)),o==="v"&&c===1||o=="pr"&&c===1||((h)=>typeof h=="number"?L(h):h!=null&&h!==""&&h!==!1)(c)&&(((h)=>h==="ot"||h==="sf"||h==="st")(o)&&typeof c=="string"&&(c=new Ql(c)),i[o]=c)}),i}function Ou(t,e={}){return t?function(i,n){return Lf(i,n)}(Rf(t,e),T({whitespace:!1},e)):""}function kf(t,e,i){return T(t,function(n,s={}){if(!n)return{};let a=Object.entries(n),o=Object.entries(Sf).concat(Object.entries((s==null?void 0:s.customHeaderMap)||{})),c=a.reduce((u,h)=>{var m;let[y,S]=h,_=((m=o.find((w)=>w[1].includes(y)))==null?void 0:m[0])||mr.REQUEST;return u[_]!=null||(u[_]={}),u[_][y]=S,u},{});return Object.entries(c).reduce((u,[h,m])=>(u[h]=Ou(m,s),u),{})}(e,i))}let Mu=/CMCD=[^&#]+/;function Df(t,e,i){let n=function(a,o={}){if(!a)return"";let c=Ou(a,o);return"CMCD="+encodeURIComponent(c)}(e,i);if(!n)return t;if(Mu.test(t))return t.replace(Mu,n);let s=t.includes("?")?"&":"?";return`${t}${s}${n}`}function Nu(t,e,i,n){t&&Object.keys(e).forEach((s)=>{let a=t.filter((o)=>o.groupId===s).map((o)=>{let c=T({},o);return c.details=void 0,c.attrs=new Y(c.attrs),c.url=c.attrs.URI=Fu(o.url,o.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",i),c.groupId=c.attrs["GROUP-ID"]=e[s],c.attrs["PATHWAY-ID"]=n,c});t.push(...a)})}function Fu(t,e,i,n){let{HOST:s,PARAMS:a,[i]:o}=n,c;e&&(c=o==null?void 0:o[e],c&&(t=c));let u=new self.URL(t);return s&&!c&&(u.host=s),a&&Object.keys(a).sort().forEach((h)=>{h&&u.searchParams.set(h,a[h])}),u.href}let Cf=/^age:\s*[\d.]+\s*$/im;class ic{constructor(t){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=t&&t.xhrSetup||null,this.stats=new st,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null,this.stats=null}abortInternal(){let t=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),t&&(t.onreadystatechange=null,t.onprogress=null,t.readyState!==4&&(this.stats.aborted=!0,t.abort()))}abort(){var t;this.abortInternal(),(t=this.callbacks)!=null&&t.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(t,e,i){if(this.stats.loading.start)throw Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=t,this.config=e,this.callbacks=i,this.loadInternal()}loadInternal(){let{config:t,context:e}=this;if(!t||!e)return;let i=this.loader=new self.XMLHttpRequest,n=this.stats;n.loading.first=0,n.loaded=0,n.aborted=!1;let s=this.xhrSetup;s?Promise.resolve().then(()=>{if(!this.stats.aborted)return s(i,e.url)}).catch((a)=>(i.open("GET",e.url,!0),s(i,e.url))).then(()=>{this.stats.aborted||this.openAndSendXhr(i,e,t)}).catch((a)=>{this.callbacks.onError({code:i.status,text:a.message},e,i,n)}):this.openAndSendXhr(i,e,t)}openAndSendXhr(t,e,i){t.readyState||t.open("GET",e.url,!0);let n=e.headers,{maxTimeToFirstByteMs:s,maxLoadTimeMs:a}=i.loadPolicy;if(n)for(let o in n)t.setRequestHeader(o,n[o]);e.rangeEnd&&t.setRequestHeader("Range","bytes="+e.rangeStart+"-"+(e.rangeEnd-1)),t.onreadystatechange=this.readystatechange.bind(this),t.onprogress=this.loadprogress.bind(this),t.responseType=e.responseType,self.clearTimeout(this.requestTimeout),i.timeout=s&&L(s)?s:a,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),i.timeout),t.send()}readystatechange(){let{context:t,loader:e,stats:i}=this;if(!t||!e)return;let n=e.readyState,s=this.config;if(!i.aborted&&n>=2&&(i.loading.first===0&&(i.loading.first=Math.max(self.performance.now(),i.loading.start),s.timeout!==s.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),s.timeout=s.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),s.loadPolicy.maxLoadTimeMs-(i.loading.first-i.loading.start)))),n===4)){self.clearTimeout(this.requestTimeout),e.onreadystatechange=null,e.onprogress=null;let a=e.status,o=e.responseType!=="text";if(a>=200&&a<300&&(o&&e.response||e.responseText!==null)){i.loading.end=Math.max(self.performance.now(),i.loading.first);let c=o?e.response:e.responseText,u=e.responseType==="arraybuffer"?c.byteLength:c.length;if(i.loaded=i.total=u,i.bwEstimate=8000*i.total/(i.loading.end-i.loading.first),!this.callbacks)return;let h=this.callbacks.onProgress;if(h&&h(i,t,c,e),!this.callbacks)return;let m={url:e.responseURL,data:c,code:a};this.callbacks.onSuccess(m,i,t,e)}else{let c=s.loadPolicy.errorRetry;Cn(c,i.retry,!1,{url:t.url,data:void 0,code:a})?this.retry(c):(C.error(`${a} while loading ${t.url}`),this.callbacks.onError({code:a,text:e.statusText},t,e,i))}}}loadtimeout(){var t;let e=(t=this.config)==null?void 0:t.loadPolicy.timeoutRetry;if(Cn(e,this.stats.retry,!0))this.retry(e);else{var i;C.warn("timeout while loading "+((i=this.context)==null?void 0:i.url));let n=this.callbacks;n&&(this.abortInternal(),n.onTimeout(this.stats,this.context,this.loader))}}retry(t){let{context:e,stats:i}=this;this.retryDelay=Js(t,i.retry),i.retry++,C.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${e==null?void 0:e.url}, retrying ${i.retry}/${t.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(t){let e=this.stats;e.loaded=t.loaded,t.lengthComputable&&(e.total=t.total)}getCacheAge(){let t=null;if(this.loader&&Cf.test(this.loader.getAllResponseHeaders())){let e=this.loader.getResponseHeader("age");t=e?parseFloat(e):null}return t}getResponseHeader(t){return this.loader&&new RegExp(`^${t}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(t):null}}let If=/(\d+)-(\d+)\/(\d+)/;class nc{constructor(t){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=t.fetchSetup||Of,this.controller=new self.AbortController,this.stats=new st}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(){this.controller&&!this.stats.loading.end&&(this.stats.aborted=!0,this.controller.abort())}abort(){var t;this.abortInternal(),(t=this.callbacks)!=null&&t.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(t,e,i){let n=this.stats;if(n.loading.start)throw Error("Loader can only be used once.");n.loading.start=self.performance.now();let s=function(m,y){let S={method:"GET",mode:"cors",credentials:"same-origin",signal:y,headers:new self.Headers(T({},m.headers))};return m.rangeEnd&&S.headers.set("Range","bytes="+m.rangeStart+"-"+String(m.rangeEnd-1)),S}(t,this.controller.signal),a=i.onProgress,o=t.responseType==="arraybuffer",c=o?"byteLength":"length",{maxTimeToFirstByteMs:u,maxLoadTimeMs:h}=e.loadPolicy;this.context=t,this.config=e,this.callbacks=i,this.request=this.fetchSetup(t,s),self.clearTimeout(this.requestTimeout),e.timeout=u&&L(u)?u:h,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(n,t,this.response)},e.timeout),self.fetch(this.request).then((m)=>{this.response=this.loader=m;let y=Math.max(self.performance.now(),n.loading.start);if(self.clearTimeout(this.requestTimeout),e.timeout=h,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(n,t,this.response)},h-(y-n.loading.start)),!m.ok){let{status:S,statusText:_}=m;throw new Pu(_||"fetch, bad network response",S,m)}return n.loading.first=y,n.total=function(S){let _=S.get("Content-Range");if(_){let I=function(D){let F=If.exec(D);if(F)return parseInt(F[2])-parseInt(F[1])+1}(_);if(L(I))return I}let w=S.get("Content-Length");if(w)return parseInt(w)}(m.headers)||n.total,a&&L(e.highWaterMark)?this.loadProgressively(m,n,t,e.highWaterMark,a):o?m.arrayBuffer():t.responseType==="json"?m.json():m.text()}).then((m)=>{let y=this.response;if(!y)throw Error("loader destroyed");self.clearTimeout(this.requestTimeout),n.loading.end=Math.max(self.performance.now(),n.loading.first);let S=m[c];S&&(n.loaded=n.total=S);let _={url:y.url,data:m,code:y.status};a&&!L(e.highWaterMark)&&a(n,t,m,y),i.onSuccess(_,n,t,y)}).catch((m)=>{if(self.clearTimeout(this.requestTimeout),n.aborted)return;let y=m&&m.code||0,S=m?m.message:null;i.onError({code:y,text:S},t,m?m.details:null,n)})}getCacheAge(){let t=null;if(this.response){let e=this.response.headers.get("age");t=e?parseFloat(e):null}return t}getResponseHeader(t){return this.response?this.response.headers.get(t):null}loadProgressively(t,e,i,n=0,s){let a=new jr,o=t.body.getReader(),c=()=>o.read().then((u)=>{if(u.done)return a.dataLength&&s(e,i,a.flush(),t),Promise.resolve(new ArrayBuffer(0));let h=u.value,m=h.length;return e.loaded+=m,m<n||a.dataLength?(a.push(h),a.dataLength>=n&&s(e,i,a.flush(),t)):s(e,i,h,t),c()}).catch(()=>Promise.reject());return c()}}function Of(t,e){return new self.Request(t.url,e)}class Pu extends Error{constructor(t,e,i){super(t),this.code=void 0,this.details=void 0,this.code=e,this.details=i}}let Mf=/\s/,Nf={newCue(t,e,i,n){let s=[],a,o,c,u,h,m=self.VTTCue||self.TextTrackCue;for(let S=0;S<n.rows.length;S++)if(a=n.rows[S],c=!0,u=0,h="",!a.isEmpty()){var y;for(let I=0;I<a.chars.length;I++)Mf.test(a.chars[I].uchar)&&c?u++:(h+=a.chars[I].uchar,c=!1);a.cueStartTime=e,e===i&&(i+=0.0001),u>=16?u--:u++;let _=Su(h.trim()),w=Yl(e,i,_);t!=null&&(y=t.cues)!=null&&y.getCueById(w)||(o=new m(e,i,_),o.id=w,o.line=S+1,o.align="left",o.position=10+Math.min(80,10*Math.floor(8*u/32)),s.push(o))}return t&&s.length&&(s.sort((S,_)=>S.line==="auto"||_.line==="auto"?0:S.line>8&&_.line>8?_.line-S.line:S.line-_.line),s.forEach((S)=>io(t,S))),s}},xu=E(E({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,maxBufferSize:60000000,maxBufferHole:0.1,highBufferWatchdogPeriod:2,nudgeOffset:0.1,nudgeMaxRetry:3,maxFragLookUpTolerance:0.25,liveSyncDurationCount:3,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,loader:ic,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:class{constructor(e){this.hls=void 0,this.lastLevelLoadSec=0,this.lastLoadedFragLevel=-1,this.firstSelection=-1,this._nextAutoLevel=-1,this.nextAutoLevelKey="",this.audioTracksByGroup=null,this.codecTiers=null,this.timer=-1,this.fragCurrent=null,this.partCurrent=null,this.bitrateTestDelay=0,this.bwEstimator=void 0,this._abandonRulesCheck=()=>{let{fragCurrent:i,partCurrent:n,hls:s}=this,{autoLevelEnabled:a,media:o}=s;if(!i||!o)return;let c=performance.now(),u=n?n.stats:i.stats,h=n?n.duration:i.duration,m=c-u.loading.start,y=s.minAutoLevel;if(u.aborted||u.loaded&&u.loaded===u.total||i.level<=y)return this.clearTimer(),void(this._nextAutoLevel=-1);if(!a||o.paused||!o.playbackRate||!o.readyState)return;let S=s.mainForwardBufferInfo;if(S===null)return;let _=this.bwEstimator.getEstimateTTFB(),w=Math.abs(o.playbackRate);if(m<=Math.max(_,h/(2*w)*1000))return;let I=S.len/w,D=u.loading.first?u.loading.first-u.loading.start:-1,F=u.loaded&&D>-1,x=this.getBwEstimate(),W=s.levels,z=W[i.level],lt=u.total||Math.max(u.loaded,Math.round(h*z.averageBitrate/8)),it=F?m-D:m;it<1&&F&&(it=Math.min(m,8*u.loaded/x));let ft=F?1000*u.loaded/it:0,mt=ft?(lt-u.loaded)/ft:8*lt/x+_/1000;if(mt<=I)return;let Z=ft?8*ft:x,J,kt=Number.POSITIVE_INFINITY;for(J=i.level-1;J>y;J--){let wt=W[J].maxBitrate;if(kt=this.getTimeToLoadFrag(_/1000,Z,h*wt,!W[J].details),kt<I)break}if(kt>=mt)return;if(kt>10*h)return;s.nextLoadLevel=s.nextAutoLevel=J,F?this.bwEstimator.sample(m-Math.min(_,D),u.loaded):this.bwEstimator.sampleTTFB(m);let ht=W[J].maxBitrate;this.getBwEstimate()*this.hls.config.abrBandWidthUpFactor>ht&&this.resetEstimator(ht),this.clearTimer(),C.warn(`[abr] Fragment ${i.sn}${n?" part "+n.index:""} of level ${i.level} is loading too slowly;
23
+ `),h=[],m=e?function(C,P=1){return p(C,90000,1/P)}(e.baseTime,e.timescale):0,y,S="00:00.000",_=0,w=0,I=!0;c.oncue=function(C){let P=i[r],F=i.ccOffset,W=(_-m)/90000;if(P!=null&&P.new&&(w!==void 0?F=i.ccOffset=P.start:function(ft,mt,Q){let X=ft[mt],kt=ft[X.prevCC];if(!kt||!kt.new&&X.new)return ft.ccOffset=ft.presentationOffset=X.start,void(X.new=!1);for(;(ht=kt)!=null&&ht.new;){var ht;ft.ccOffset+=X.start-kt.start,X.new=!1,X=kt,kt=ft[X.prevCC]}ft.presentationOffset=Q}(i,r,W)),W){if(!e)return void(y=Error("Missing initPTS for VTT MPEGTS"));F=W-i.presentationOffset}let z=C.endTime-C.startTime,lt=j(90000*(C.startTime+F-w),90000*s)/90000;C.startTime=Math.max(lt,0),C.endTime=Math.max(lt+z,0);let it=C.text.trim();C.text=decodeURIComponent(encodeURIComponent(it)),C.id||(C.id=Jl(C.startTime,C.endTime,it)),C.endTime>0&&h.push(C)},c.onparsingerror=function(C){y=C},c.onflush=function(){y?l(y):a(h)},u.forEach((C)=>{if(I){if(ql(C,"X-TIMESTAMP-MAP=")){I=!1,C.slice(16).split(",").forEach((P)=>{ql(P,"LOCAL:")?S=P.slice(6):ql(P,"MPEGTS:")&&(_=parseInt(P.slice(7)))});try{w=function(P){let F=parseInt(P.slice(-3)),W=parseInt(P.slice(-6,-4)),z=parseInt(P.slice(-9,-7)),lt=P.length>9?parseInt(P.substring(0,P.indexOf(":"))):0;if(!(L(F)&&L(W)&&L(z)&&L(lt)))throw Error("Malformed X-TIMESTAMP-MAP: Local:"+P);return F+=1000*W,F+=60000*z,F+=3600000*lt,F}(S)/1000}catch(P){y=P}return}C===""&&(I=!1)}c.parse(C+`
24
+ `)}),c.flush()}let wu=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,Ru=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,wf={left:"start",center:"center",right:"end",start:"start",end:"end"};function ku(t,e,i,r){let s=Wt(new Uint8Array(t),["mdat"]);if(s.length===0)return void r(Error("Could not parse IMSC1 mdat"));let a=s.map((c)=>Fe(c)),l=function(c,u,h=1,m=!1){return p(c,u,1/h,m)}(e.baseTime,1,e.timescale);try{a.forEach((c)=>i(function(u,h){let m=new DOMParser,y=m.parseFromString(u,"text/xml").getElementsByTagName("tt")[0];if(!y)throw Error("Invalid ttml");let S={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},_=Object.keys(S).reduce((F,W)=>(F[W]=y.getAttribute("ttp:"+W)||S[W],F),{}),w=y.getAttribute("xml:space")!=="preserve",I=Cu(Ql(y,"styling","style")),C=Cu(Ql(y,"layout","region")),P=Ql(y,"body","[begin]");return[].map.call(P,(F)=>{let W=function X(kt,ht){return[].slice.call(kt.childNodes).reduce((wt,It,Mt)=>{var at;return It.nodeName==="br"&&Mt?wt+`
25
+ `:(at=It.childNodes)!=null&&at.length?X(It,ht):ht?wt+It.textContent.trim().replace(/\s+/g," "):wt+It.textContent},"")}(F,w);if(!W||!F.hasAttribute("begin"))return null;let z=tc(F.getAttribute("begin"),_),lt=tc(F.getAttribute("dur"),_),it=tc(F.getAttribute("end"),_);if(z===null)throw Du(F);if(it===null){if(lt===null)throw Du(F);it=z+lt}let ft=new jl(z-h,it-h,W);ft.id=Jl(ft.startTime,ft.endTime,ft.text);let mt=function(X,kt,ht){let It=null,Mt=X!=null&&X.hasAttribute("style")?X.getAttribute("style"):null;return Mt&&ht.hasOwnProperty(Mt)&&(It=ht[Mt]),["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"].reduce((at,vt)=>{let Dt=Zl(kt,"http://www.w3.org/ns/ttml#styling",vt)||Zl(X,"http://www.w3.org/ns/ttml#styling",vt)||Zl(It,"http://www.w3.org/ns/ttml#styling",vt);return Dt&&(at[vt]=Dt),at},{})}(C[F.getAttribute("region")],I[F.getAttribute("style")],I),{textAlign:Q}=mt;if(Q){let X=wf[Q];X&&(ft.lineAlign=X),ft.align=Q}return T(ft,mt),ft}).filter((F)=>F!==null)}(c,l)))}catch(c){r(c)}}function Ql(t,e,i){let r=t.getElementsByTagName(e)[0];return r?[].slice.call(r.querySelectorAll(i)):[]}function Cu(t){return t.reduce((e,i)=>{let r=i.getAttribute("xml:id");return r&&(e[r]=i),e},{})}function Zl(t,e,i){return t&&t.hasAttributeNS(e,i)?t.getAttributeNS(e,i):null}function Du(t){return Error("Could not parse ttml timestamp "+t)}function tc(t,e){if(!t)return null;let i=bu(t);return i===null&&(wu.test(t)?i=function(r,s){let a=wu.exec(r),l=(0|a[4])+(0|a[5])/s.subFrameRate;return 3600*(0|a[1])+60*(0|a[2])+(0|a[3])+l/s.frameRate}(t,e):Ru.test(t)&&(i=function(r,s){let a=Ru.exec(r),l=Number(a[1]);switch(a[2]){case"h":return 3600*l;case"m":return 60*l;case"ms":return 1000*l;case"f":return l/s.frameRate;case"t":return l/s.tickRate}return l}(t,e))),i}function Iu(t){return t.characteristics&&/transcribes-spoken-dialog/gi.test(t.characteristics)&&/describes-music-and-sound/gi.test(t.characteristics)?"captions":"subtitles"}function Ou(t,e){return!!t&&t.kind===Iu(e)&&Vl(e,t)}class ec{constructor(t){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=t,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(t){this.streamController=t}destroy(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){let{hls:t}=this;t.on(b.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),t.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),t.on(b.MANIFEST_PARSED,this.onManifestParsed,this),t.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(b.BUFFER_CODECS,this.onBufferCodecs,this),t.on(b.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){let{hls:t}=this;t.off(b.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),t.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),t.off(b.MANIFEST_PARSED,this.onManifestParsed,this),t.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(b.BUFFER_CODECS,this.onBufferCodecs,this),t.off(b.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(t,e){let i=this.hls.levels[e.droppedLevel];this.isLevelAllowed(i)&&this.restrictedLevels.push({bitrate:i.bitrate,height:i.height,width:i.width})}onMediaAttaching(t,e){this.media=e.media instanceof HTMLVideoElement?e.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()}onManifestParsed(t,e){let i=this.hls;this.restrictedLevels=[],this.firstLevel=e.firstLevel,i.config.capLevelToPlayerSize&&e.video&&this.startCapping()}onLevelsUpdated(t,e){this.timer&&L(this.autoLevelCapping)&&this.detectPlayerSize()}onBufferCodecs(t,e){this.hls.config.capLevelToPlayerSize&&e.video&&this.startCapping()}onMediaDetaching(){this.stopCapping()}detectPlayerSize(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0)return void(this.clientRect=null);let t=this.hls.levels;if(t.length){let e=this.hls,i=this.getMaxLevel(t.length-1);i!==this.autoLevelCapping&&D.log(`Setting autoLevelCapping to ${i}: ${t[i].height}p@${t[i].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`),e.autoLevelCapping=i,e.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=e.autoLevelCapping}}}getMaxLevel(t){let e=this.hls.levels;if(!e.length)return-1;let i=e.filter((r,s)=>this.isLevelAllowed(r)&&s<=t);return this.clientRect=null,ec.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1000),this.detectPlayerSize())}stopCapping(){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 t=this.media,e={width:0,height:0};if(t){let i=t.getBoundingClientRect();e.width=i.width,e.height=i.height,e.width||e.height||(e.width=i.right-i.left||t.width||0,e.height=i.bottom-i.top||t.height||0)}return this.clientRect=e,e}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let t=1;if(!this.hls.config.ignoreDevicePixelRatio)try{t=self.devicePixelRatio}catch(e){}return t}isLevelAllowed(t){return!this.restrictedLevels.some((e)=>t.bitrate===e.bitrate&&t.width===e.width&&t.height===e.height)}static getMaxLevelByMediaSize(t,e,i){if(t==null||!t.length)return-1;let r=t.length-1,s=Math.max(e,i);for(let c=0;c<t.length;c+=1){let u=t[c];if((u.width>=s||u.height>=s)&&(a=u,!(l=t[c+1])||a.width!==l.width||a.height!==l.height)){r=c;break}}var a,l;return r}}class ns{constructor(t){this.hls=void 0,this.config=void 0,this.media=null,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.setMediaKeysQueue=ns.CDMCleanupPromise?[ns.CDMCleanupPromise]:[],this.onMediaEncrypted=this._onMediaEncrypted.bind(this),this.onWaitingForKey=this._onWaitingForKey.bind(this),this.debug=D.debug.bind(D,"[eme]"),this.log=D.log.bind(D,"[eme]"),this.warn=D.warn.bind(D,"[eme]"),this.error=D.error.bind(D,"[eme]"),this.hls=t,this.config=t.config,this.registerListeners()}destroy(){this.unregisterListeners(),this.onMediaDetached();let t=this.config;t.requestMediaKeySystemAccessFunc=null,t.licenseXhrSetup=t.licenseResponseCallback=void 0,t.drmSystems=t.drmSystemOptions={},this.hls=this.onMediaEncrypted=this.onWaitingForKey=this.keyIdToKeySessionPromise=null,this.config=null}registerListeners(){this.hls.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(b.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(b.MANIFEST_LOADED,this.onManifestLoaded,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(b.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(b.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(b.MANIFEST_LOADED,this.onManifestLoaded,this)}getLicenseServerUrl(t){let{drmSystems:e,widevineLicenseUrl:i}=this.config,r=e[t];if(r)return r.licenseUrl;if(t===jt.WIDEVINE&&i)return i;throw Error(`no license server URL configured for key-system "${t}"`)}getServerCertificateUrl(t){let{drmSystems:e}=this.config,i=e[t];if(i)return i.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${t}"]`)}attemptKeySystemAccess(t){let e=this.hls.levels,i=(a,l,c)=>!!a&&c.indexOf(a)===l,r=e.map((a)=>a.audioCodec).filter(i),s=e.map((a)=>a.videoCodec).filter(i);return r.length+s.length===0&&s.push("avc1.42e01e"),new Promise((a,l)=>{let c=(u)=>{let h=u.shift();this.getMediaKeysPromise(h,r,s).then((m)=>a({keySystem:h,mediaKeys:m})).catch((m)=>{u.length?c(u):l(m instanceof Ei?m:new Ei({type:H.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_NO_ACCESS,error:m,fatal:!0},m.message))})};c(t)})}requestMediaKeySystemAccess(t,e){let{requestMediaKeySystemAccessFunc:i}=this.config;if(typeof i!="function"){let r="Configured requestMediaKeySystemAccess is not a function "+i;return xe===null&&self.location.protocol==="http:"&&(r="navigator.requestMediaKeySystemAccess is not available over insecure protocol "+location.protocol),Promise.reject(Error(r))}return i(t,e)}getMediaKeysPromise(t,e,i){let r=function(l,c,u,h){let m;switch(l){case jt.FAIRPLAY:m=["cenc","sinf"];break;case jt.WIDEVINE:case jt.PLAYREADY:m=["cenc"];break;case jt.CLEARKEY:m=["cenc","keyids"];break;default:throw Error("Unknown key-system: "+l)}return function(y,S,_,w){return[{initDataTypes:y,persistentState:w.persistentState||"optional",distinctiveIdentifier:w.distinctiveIdentifier||"optional",sessionTypes:w.sessionTypes||[w.sessionType||"temporary"],audioCapabilities:S.map((I)=>({contentType:`audio/mp4; codecs="${I}"`,robustness:w.audioRobustness||"",encryptionScheme:w.audioEncryptionScheme||null})),videoCapabilities:_.map((I)=>({contentType:`video/mp4; codecs="${I}"`,robustness:w.videoRobustness||"",encryptionScheme:w.videoEncryptionScheme||null}))}]}(m,c,u,h)}(t,e,i,this.config.drmSystemOptions),s=this.keySystemAccessPromises[t],a=s==null?void 0:s.keySystemAccess;if(!a){this.log(`Requesting encrypted media "${t}" key-system access with config: ${JSON.stringify(r)}`),a=this.requestMediaKeySystemAccess(t,r);let l=this.keySystemAccessPromises[t]={keySystemAccess:a};return a.catch((c)=>{this.log(`Failed to obtain access to key-system "${t}": ${c}`)}),a.then((c)=>{this.log(`Access for key-system "${c.keySystem}" obtained`);let u=this.fetchServerCertificate(t);return this.log(`Create media-keys for "${t}"`),l.mediaKeys=c.createMediaKeys().then((h)=>(this.log(`Media-keys created for "${t}"`),u.then((m)=>m?this.setMediaKeysServerCertificate(h,t,m):h))),l.mediaKeys.catch((h)=>{this.error(`Failed to create media-keys for "${t}"}: ${h}`)}),l.mediaKeys})}return a.then(()=>s.mediaKeys)}createMediaKeySessionContext({decryptdata:t,keySystem:e,mediaKeys:i}){this.log(`Creating key-system session "${e}" keyId: ${ni(t.keyId||[])}`);let r=i.createSession(),s={decryptdata:t,keySystem:e,mediaKeys:i,mediaKeysSession:r,keyStatus:"status-pending"};return this.mediaKeySessions.push(s),s}renewKeySession(t){let e=t.decryptdata;if(e.pssh){let i=this.createMediaKeySessionContext(t),r=this.getKeyIdString(e);this.keyIdToKeySessionPromise[r]=this.generateRequestWithPreferredKeySession(i,"cenc",e.pssh,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(t)}getKeyIdString(t){if(!t)throw Error("Could not read keyId of undefined decryptdata");if(t.keyId===null)throw Error("keyId is null");return ni(t.keyId)}updateKeySession(t,e){var i;let r=t.mediaKeysSession;return this.log(`Updating key-session "${r.sessionId}" for keyID ${ni(((i=t.decryptdata)==null?void 0:i.keyId)||[])}
26
+ } (data length: ${e?e.byteLength:e})`),r.update(e)}selectKeySystemFormat(t){let e=Object.keys(t.levelkeys||{});return this.keyFormatPromise||(this.log(`Selecting key-system from fragment (sn: ${t.sn} ${t.type}: ${t.level}) key formats ${e.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(e)),this.keyFormatPromise}getKeyFormatPromise(t){return new Promise((e,i)=>{let r=Je(this.config),s=t.map(Lt).filter((a)=>!!a&&r.indexOf(a)!==-1);return this.getKeySystemSelectionPromise(s).then(({keySystem:a})=>{let l=ue(a);l?e(l):i(Error(`Unable to find format for key-system "${a}"`))}).catch(i)})}loadKey(t){let e=t.keyInfo.decryptdata,i=this.getKeyIdString(e),r=`(keyId: ${i} format: "${e.keyFormat}" method: ${e.method} uri: ${e.uri})`;this.log("Starting session for key "+r);let s=this.keyIdToKeySessionPromise[i];return s||(s=this.keyIdToKeySessionPromise[i]=this.getKeySystemForKeyPromise(e).then(({keySystem:a,mediaKeys:l})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${t.frag.sn} ${t.frag.type}: ${t.frag.level} using key ${r}`),this.attemptSetMediaKeys(a,l).then(()=>{this.throwIfDestroyed();let c=this.createMediaKeySessionContext({keySystem:a,mediaKeys:l,decryptdata:e});return this.generateRequestWithPreferredKeySession(c,"cenc",e.pssh,"playlist-key")}))),s.catch((a)=>this.handleError(a))),s}throwIfDestroyed(t="Invalid state"){if(!this.hls)throw Error("invalid state")}handleError(t){this.hls&&(this.error(t.message),t instanceof Ei?this.hls.trigger(b.ERROR,t.data):this.hls.trigger(b.ERROR,{type:H.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_NO_KEYS,error:t,fatal:!0}))}getKeySystemForKeyPromise(t){let e=this.getKeyIdString(t),i=this.keyIdToKeySessionPromise[e];if(!i){let r=Lt(t.keyFormat),s=r?[r]:Je(this.config);return this.attemptKeySystemAccess(s)}return i}getKeySystemSelectionPromise(t){if(t.length||(t=Je(this.config)),t.length===0)throw new Ei({type:H.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},"Missing key-system license configuration options "+JSON.stringify({drmSystems:this.config.drmSystems}));return this.attemptKeySystemAccess(t)}_onMediaEncrypted(t){let{initDataType:e,initData:i}=t;if(this.debug(`"${t.type}" event: init data type: "${e}"`),i===null)return;let r,s;if(e==="sinf"&&this.config.drmSystems[jt.FAIRPLAY]){let h=ye(new Uint8Array(i));try{let m=bt(JSON.parse(h).sinf),y=Us(new Uint8Array(m));if(!y)return;r=y.subarray(8,24),s=jt.FAIRPLAY}catch(m){return void this.warn('Failed to parse sinf "encrypted" event message initData')}}else{let h=function(m){if(!(m instanceof ArrayBuffer)||m.byteLength<32)return null;let y={version:0,systemId:"",kids:null,data:null},S=new DataView(m),_=S.getUint32(0);if(m.byteLength!==_&&_>44)return null;if(S.getUint32(4)!==1886614376)return null;if(y.version=S.getUint32(8)>>>24,y.version>1)return null;y.systemId=ni(new Uint8Array(m,12,16));let w=S.getUint32(28);if(y.version===0){if(_-32<w)return null;y.data=new Uint8Array(m,32,w)}else if(y.version===1){y.kids=[];for(let I=0;I<w;I++)y.kids.push(new Uint8Array(m,32+16*I,16))}return y}(i);if(h===null)return;h.version===0&&h.systemId===ve&&h.data&&(r=h.data.subarray(8,24)),s=function(m){if(m===ve)return jt.WIDEVINE}(h.systemId)}if(!s||!r)return;let a=ni(r),{keyIdToKeySessionPromise:l,mediaKeySessions:c}=this,u=l[a];for(let h=0;h<c.length;h++){let m=c[h],y=m.decryptdata;if(y.pssh||!y.keyId)continue;let S=ni(y.keyId);if(a===S||y.uri.replace(/-/g,"").indexOf(a)!==-1){u=l[S],delete l[S],y.pssh=new Uint8Array(i),y.keyId=r,u=l[a]=u.then(()=>this.generateRequestWithPreferredKeySession(m,e,i,"encrypted-event-key-match"));break}}u||(u=l[a]=this.getKeySystemSelectionPromise([s]).then(({keySystem:h,mediaKeys:m})=>{var y;this.throwIfDestroyed();let S=new fi("ISO-23001-7",a,(y=ue(h))!=null?y:"");return S.pssh=new Uint8Array(i),S.keyId=r,this.attemptSetMediaKeys(h,m).then(()=>{this.throwIfDestroyed();let _=this.createMediaKeySessionContext({decryptdata:S,keySystem:h,mediaKeys:m});return this.generateRequestWithPreferredKeySession(_,e,i,"encrypted-event-no-match")})})),u.catch((h)=>this.handleError(h))}_onWaitingForKey(t){this.log(`"${t.type}" event`)}attemptSetMediaKeys(t,e){let i=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${t}"`);let r=Promise.all(i).then(()=>{if(!this.media)throw Error("Attempted to set mediaKeys without media element attached");return this.media.setMediaKeys(e)});return this.setMediaKeysQueue.push(r),r.then(()=>{this.log(`Media-keys set for "${t}"`),i.push(r),this.setMediaKeysQueue=this.setMediaKeysQueue.filter((s)=>i.indexOf(s)===-1)})}generateRequestWithPreferredKeySession(t,e,i,r){var s,a;let l=(s=this.config.drmSystems)==null||(a=s[t.keySystem])==null?void 0:a.generateRequest;if(l)try{let _=l.call(this.hls,e,i,t);if(!_)throw Error("Invalid response from configured generateRequest filter");e=_.initDataType,i=t.decryptdata.pssh=_.initData?new Uint8Array(_.initData):null}catch(_){var c;if(this.warn(_.message),(c=this.hls)!=null&&c.config.debug)throw _}if(i===null)return this.log(`Skipping key-session request for "${r}" (no initData)`),Promise.resolve(t);let u=this.getKeyIdString(t.decryptdata);this.log(`Generating key-session request for "${r}": ${u} (init data type: ${e} length: ${i?i.byteLength:null})`);let h=new Gl,m=t._onmessage=(_)=>{let w=t.mediaKeysSession;if(!w)return void h.emit("error",Error("invalid state"));let{messageType:I,message:C}=_;this.log(`"${I}" message event for session "${w.sessionId}" message size: ${C.byteLength}`),I==="license-request"||I==="license-renewal"?this.renewLicense(t,C).catch((P)=>{this.handleError(P),h.emit("error",P)}):I==="license-release"?t.keySystem===jt.FAIRPLAY&&(this.updateKeySession(t,Kt("acknowledged")),this.removeSession(t)):this.warn(`unhandled media key message type "${I}"`)},y=t._onkeystatuseschange=(_)=>{if(!t.mediaKeysSession)return void h.emit("error",Error("invalid state"));this.onKeyStatusChange(t);let w=t.keyStatus;h.emit("keyStatus",w),w==="expired"&&(this.warn(`${t.keySystem} expired for key ${u}`),this.renewKeySession(t))};t.mediaKeysSession.addEventListener("message",m),t.mediaKeysSession.addEventListener("keystatuseschange",y);let S=new Promise((_,w)=>{h.on("error",w),h.on("keyStatus",(I)=>{I.startsWith("usable")?_():I==="output-restricted"?w(new Ei({type:H.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,fatal:!1},"HDCP level output restricted")):I==="internal-error"?w(new Ei({type:H.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_STATUS_INTERNAL_ERROR,fatal:!0},`key status changed to "${I}"`)):I==="expired"?w(Error("key expired while generating request")):this.warn(`unhandled key status change "${I}"`)})});return t.mediaKeysSession.generateRequest(e,i).then(()=>{var _;this.log(`Request generated for key-session "${(_=t.mediaKeysSession)==null?void 0:_.sessionId}" keyId: ${u}`)}).catch((_)=>{throw new Ei({type:H.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_NO_SESSION,error:_,fatal:!1},"Error generating key-session request: "+_)}).then(()=>S).catch((_)=>{throw h.removeAllListeners(),this.removeSession(t),_}).then(()=>(h.removeAllListeners(),t))}onKeyStatusChange(t){t.mediaKeysSession.keyStatuses.forEach((e,i)=>{this.log(`key status change "${e}" for keyStatuses keyId: ${ni("buffer"in i?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i))} session keyId: ${ni(new Uint8Array(t.decryptdata.keyId||[]))} uri: ${t.decryptdata.uri}`),t.keyStatus=e})}fetchServerCertificate(t){let e=this.config,i=new e.loader(e),r=this.getServerCertificateUrl(t);return r?(this.log(`Fetching server certificate for "${t}"`),new Promise((s,a)=>{let l={responseType:"arraybuffer",url:r},c=e.certLoadPolicy.default,u={loadPolicy:c,timeout:c.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},h={onSuccess:(m,y,S,_)=>{s(m.data)},onError:(m,y,S,_)=>{a(new Ei({type:H.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:S,response:E({url:l.url,data:void 0},m)},`"${t}" certificate request failed (${r}). Status: ${m.code} (${m.text})`))},onTimeout:(m,y,S)=>{a(new Ei({type:H.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:S,response:{url:l.url,data:void 0}},`"${t}" certificate request timed out (${r})`))},onAbort:(m,y,S)=>{a(Error("aborted"))}};i.load(l,u,h)})):Promise.resolve()}setMediaKeysServerCertificate(t,e,i){return new Promise((r,s)=>{t.setServerCertificate(i).then((a)=>{this.log(`setServerCertificate ${a?"success":"not supported by CDM"} (${i==null?void 0:i.byteLength}) on "${e}"`),r(t)}).catch((a)=>{s(new Ei({type:H.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:a,fatal:!0},a.message))})})}renewLicense(t,e){return this.requestLicense(t,new Uint8Array(e)).then((i)=>this.updateKeySession(t,new Uint8Array(i)).catch((r)=>{throw new Ei({type:H.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_SESSION_UPDATE_FAILED,error:r,fatal:!0},r.message)}))}unpackPlayReadyKeyMessage(t,e){let i=String.fromCharCode.apply(null,new Uint16Array(e.buffer));if(!i.includes("PlayReadyKeyMessage"))return t.setRequestHeader("Content-Type","text/xml; charset=utf-8"),e;let r=new DOMParser().parseFromString(i,"application/xml"),s=r.querySelectorAll("HttpHeader");if(s.length>0){let h;for(let m=0,y=s.length;m<y;m++){var a,l;h=s[m];let S=(a=h.querySelector("name"))==null?void 0:a.textContent,_=(l=h.querySelector("value"))==null?void 0:l.textContent;S&&_&&t.setRequestHeader(S,_)}}let c=r.querySelector("Challenge"),u=c==null?void 0:c.textContent;if(!u)throw Error("Cannot find <Challenge> in key message");return Kt(atob(u))}setupLicenseXHR(t,e,i,r){let s=this.config.licenseXhrSetup;return s?Promise.resolve().then(()=>{if(!i.decryptdata)throw Error("Key removed");return s.call(this.hls,t,e,i,r)}).catch((a)=>{if(!i.decryptdata)throw a;return t.open("POST",e,!0),s.call(this.hls,t,e,i,r)}).then((a)=>{return t.readyState||t.open("POST",e,!0),{xhr:t,licenseChallenge:a||r}}):(t.open("POST",e,!0),Promise.resolve({xhr:t,licenseChallenge:r}))}requestLicense(t,e){let i=this.config.keyLoadPolicy.default;return new Promise((r,s)=>{let a=this.getLicenseServerUrl(t.keySystem);this.log("Sending license request to URL: "+a);let l=new XMLHttpRequest;l.responseType="arraybuffer",l.onreadystatechange=()=>{if(!this.hls||!t.mediaKeysSession)return s(Error("invalid state"));if(l.readyState===4)if(l.status===200){this._requestLicenseFailureCount=0;let c=l.response;this.log("License received "+(c instanceof ArrayBuffer?c.byteLength:c));let u=this.config.licenseResponseCallback;if(u)try{c=u.call(this.hls,l,a,t)}catch(h){this.error(h)}r(c)}else{let c=i.errorRetry,u=c?c.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>u||l.status>=400&&l.status<500)s(new Ei({type:H.KEY_SYSTEM_ERROR,details:N.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:l,response:{url:a,data:void 0,code:l.status,text:l.statusText}},`License Request XHR failed (${a}). Status: ${l.status} (${l.statusText})`));else{let h=u-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${h} attempts left`),this.requestLicense(t,e).then(r,s)}}},t.licenseXhr&&t.licenseXhr.readyState!==XMLHttpRequest.DONE&&t.licenseXhr.abort(),t.licenseXhr=l,this.setupLicenseXHR(l,a,t,e).then(({xhr:c,licenseChallenge:u})=>{t.keySystem==jt.PLAYREADY&&(u=this.unpackPlayReadyKeyMessage(c,u)),c.send(u)})})}onMediaAttached(t,e){if(!this.config.emeEnabled)return;let i=e.media;this.media=i,i.addEventListener("encrypted",this.onMediaEncrypted),i.addEventListener("waitingforkey",this.onWaitingForKey)}onMediaDetached(){let t=this.media,e=this.mediaKeySessions;t&&(t.removeEventListener("encrypted",this.onMediaEncrypted),t.removeEventListener("waitingforkey",this.onWaitingForKey),this.media=null),this._requestLicenseFailureCount=0,this.setMediaKeysQueue=[],this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},fi.clearKeyUriToKeyIdMap();let i=e.length;ns.CDMCleanupPromise=Promise.all(e.map((r)=>this.removeSession(r)).concat(t==null?void 0:t.setMediaKeys(null).catch((r)=>{this.log("Could not clear media keys: "+r)}))).then(()=>{i&&(this.log("finished closing key sessions and clearing media keys"),e.length=0)}).catch((r)=>{this.log("Could not close sessions and clear media keys: "+r)})}onManifestLoading(){this.keyFormatPromise=null}onManifestLoaded(t,{sessionKeys:e}){if(e&&this.config.emeEnabled&&!this.keyFormatPromise){let i=e.reduce((r,s)=>(r.indexOf(s.keyFormat)===-1&&r.push(s.keyFormat),r),[]);this.log("Selecting key-system from session-keys "+i.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(i)}}removeSession(t){let{mediaKeysSession:e,licenseXhr:i}=t;if(e){this.log("Remove licenses and keys and close session "+e.sessionId),t._onmessage&&(e.removeEventListener("message",t._onmessage),t._onmessage=void 0),t._onkeystatuseschange&&(e.removeEventListener("keystatuseschange",t._onkeystatuseschange),t._onkeystatuseschange=void 0),i&&i.readyState!==XMLHttpRequest.DONE&&i.abort(),t.mediaKeysSession=t.decryptdata=t.licenseXhr=void 0;let r=this.mediaKeySessions.indexOf(t);return r>-1&&this.mediaKeySessions.splice(r,1),e.remove().catch((s)=>{this.log("Could not remove session: "+s)}).then(()=>e.close()).catch((s)=>{this.log("Could not close session: "+s)})}}}ns.CDMCleanupPromise=void 0;class Ei extends Error{constructor(t,e){super(e),this.data=void 0,t.error||(t.error=Error(e)),this.data=t,t.err=t.error}}var qe,ic,mn;(function(t){t.MANIFEST="m",t.AUDIO="a",t.VIDEO="v",t.MUXED="av",t.INIT="i",t.CAPTION="c",t.TIMED_TEXT="tt",t.KEY="k",t.OTHER="o"})(qe||(qe={})),function(t){t.DASH="d",t.HLS="h",t.SMOOTH="s",t.OTHER="o"}(ic||(ic={})),function(t){t.OBJECT="CMCD-Object",t.REQUEST="CMCD-Request",t.SESSION="CMCD-Session",t.STATUS="CMCD-Status"}(mn||(mn={}));let Rf={[mn.OBJECT]:["br","d","ot","tb"],[mn.REQUEST]:["bl","dl","mtp","nor","nrr","su"],[mn.SESSION]:["cid","pr","sf","sid","st","v"],[mn.STATUS]:["bs","rtp"]};class ss{constructor(t,e){this.value=void 0,this.params=void 0,Array.isArray(t)&&(t=t.map((i)=>i instanceof ss?i:new ss(i))),this.value=t,this.params=e}}class rc{constructor(t){this.description=void 0,this.description=t}}function kf(t,e,i,r){return Error(`failed to ${t} "${s=e,Array.isArray(s)?JSON.stringify(s):s instanceof Map?"Map{}":s instanceof Set?"Set{}":typeof s=="object"?JSON.stringify(s):String(s)}" as ${i}`,{cause:r});var s}let Cf=/[\x00-\x1f\x7f]+/;function Ji(t,e,i){return kf("serialize",t,e,i)}function Df(t){if(ArrayBuffer.isView(t)===!1)throw Ji(t,"Byte Sequence");return`:${e=t,btoa(String.fromCharCode(...e))}:`;var e}function Mu(t){if(function(e){return e<-999999999999999||999999999999999<e}(t))throw Ji(t,"Integer");return t.toString()}function If(t){let e=function r(s,a){if(s<0)return-r(-s,a);let l=Math.pow(10,a);if(Math.abs(s*l%1-0.5)<Number.EPSILON){let c=Math.floor(s*l);return(c%2==0?c:c+1)/l}return Math.round(s*l)/l}(t,3);if(Math.floor(Math.abs(e)).toString().length>12)throw Ji(t,"Decimal");let i=e.toString();return i.includes(".")?i:i+".0"}function Nu(t){let e=(i=t).description||i.toString().slice(7,-1);var i;if(/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(e)===!1)throw Ji(e,"Token");return e}function nc(t){switch(typeof t){case"number":if(!L(t))throw Ji(t,"Bare Item");return Number.isInteger(t)?Mu(t):If(t);case"string":return function(e){if(Cf.test(e))throw Ji(e,"String");return`"${e.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`}(t);case"symbol":return Nu(t);case"boolean":return function(e){if(typeof e!="boolean")throw Ji(e,"Boolean");return e?"?1":"?0"}(t);case"object":if(t instanceof Date)return function(e){return"@"+Mu(e.getTime()/1000)}(t);if(t instanceof Uint8Array)return Df(t);if(t instanceof rc)return Nu(t);default:throw Ji(t,"Bare Item")}}function sc(t){if(/^[a-z*][a-z0-9\-_.*]*$/.test(t)===!1)throw Ji(t,"Key");return t}function ac(t){return t==null?"":Object.entries(t).map(([e,i])=>i===!0?";"+sc(e):`;${sc(e)}=${nc(i)}`).join("")}function Pu(t){return t instanceof ss?`${nc(t.value)}${ac(t.params)}`:nc(t)}function Of(t,e={whitespace:!0}){if(typeof t!="object")throw Ji(t,"Dict");let i=t instanceof Map?t.entries():Object.entries(t),r=e!=null&&e.whitespace?" ":"";return Array.from(i).map(([s,a])=>{a instanceof ss==!1&&(a=new ss(a));let l=sc(s);var c;return a.value===!0?l+=ac(a.params):(l+="=",Array.isArray(a.value)?l+=`(${(c=a).value.map(Pu).join(" ")})${ac(c.params)}`:l+=Pu(a)),l}).join(","+r)}let Ro=(t)=>Math.round(t),ko=(t)=>100*Ro(t/100),Mf={br:Ro,d:Ro,bl:ko,dl:ko,mtp:ko,nor:(t,e)=>(e!=null&&e.baseUrl&&(t=function(i,r){let s=new URL(i),a=new URL(r);if(s.origin!==a.origin)return i;let l=s.pathname.split("/").slice(1),c=a.pathname.split("/").slice(1,-1);for(;l[0]===c[0];)l.shift(),c.shift();for(;c.length;)c.shift(),l.unshift("..");return l.join("/")}(t,e.baseUrl)),encodeURIComponent(t)),rtp:ko,tb:Ro};function Nf(t,e){let i={};if(t==null||typeof t!="object")return i;let r=Object.keys(t).sort(),s=T({},Mf,e==null?void 0:e.formatters),a=e==null?void 0:e.filter;return r.forEach((l)=>{if(a!=null&&a(l))return;let c=t[l],u=s[l];u&&(c=u(c,e)),l==="v"&&c===1||l=="pr"&&c===1||((h)=>typeof h=="number"?L(h):h!=null&&h!==""&&h!==!1)(c)&&(((h)=>h==="ot"||h==="sf"||h==="st")(l)&&typeof c=="string"&&(c=new rc(c)),i[l]=c)}),i}function xu(t,e={}){return t?function(i,r){return Of(i,r)}(Nf(t,e),T({whitespace:!1},e)):""}function Pf(t,e,i){return T(t,function(r,s={}){if(!r)return{};let a=Object.entries(r),l=Object.entries(Rf).concat(Object.entries((s==null?void 0:s.customHeaderMap)||{})),c=a.reduce((u,h)=>{var m;let[y,S]=h,_=((m=l.find((w)=>w[1].includes(y)))==null?void 0:m[0])||mn.REQUEST;return u[_]!=null||(u[_]={}),u[_][y]=S,u},{});return Object.entries(c).reduce((u,[h,m])=>(u[h]=xu(m,s),u),{})}(e,i))}let Fu=/CMCD=[^&#]+/;function xf(t,e,i){let r=function(a,l={}){if(!a)return"";let c=xu(a,l);return"CMCD="+encodeURIComponent(c)}(e,i);if(!r)return t;if(Fu.test(t))return t.replace(Fu,r);let s=t.includes("?")?"&":"?";return`${t}${s}${r}`}function Uu(t,e,i,r){t&&Object.keys(e).forEach((s)=>{let a=t.filter((l)=>l.groupId===s).map((l)=>{let c=T({},l);return c.details=void 0,c.attrs=new Y(c.attrs),c.url=c.attrs.URI=Bu(l.url,l.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",i),c.groupId=c.attrs["GROUP-ID"]=e[s],c.attrs["PATHWAY-ID"]=r,c});t.push(...a)})}function Bu(t,e,i,r){let{HOST:s,PARAMS:a,[i]:l}=r,c;e&&(c=l==null?void 0:l[e],c&&(t=c));let u=new self.URL(t);return s&&!c&&(u.host=s),a&&Object.keys(a).sort().forEach((h)=>{h&&u.searchParams.set(h,a[h])}),u.href}let Ff=/^age:\s*[\d.]+\s*$/im;class oc{constructor(t){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=t&&t.xhrSetup||null,this.stats=new nt,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null,this.stats=null}abortInternal(){let t=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),t&&(t.onreadystatechange=null,t.onprogress=null,t.readyState!==4&&(this.stats.aborted=!0,t.abort()))}abort(){var t;this.abortInternal(),(t=this.callbacks)!=null&&t.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(t,e,i){if(this.stats.loading.start)throw Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=t,this.config=e,this.callbacks=i,this.loadInternal()}loadInternal(){let{config:t,context:e}=this;if(!t||!e)return;let i=this.loader=new self.XMLHttpRequest,r=this.stats;r.loading.first=0,r.loaded=0,r.aborted=!1;let s=this.xhrSetup;s?Promise.resolve().then(()=>{if(!this.stats.aborted)return s(i,e.url)}).catch((a)=>(i.open("GET",e.url,!0),s(i,e.url))).then(()=>{this.stats.aborted||this.openAndSendXhr(i,e,t)}).catch((a)=>{this.callbacks.onError({code:i.status,text:a.message},e,i,r)}):this.openAndSendXhr(i,e,t)}openAndSendXhr(t,e,i){t.readyState||t.open("GET",e.url,!0);let r=e.headers,{maxTimeToFirstByteMs:s,maxLoadTimeMs:a}=i.loadPolicy;if(r)for(let l in r)t.setRequestHeader(l,r[l]);e.rangeEnd&&t.setRequestHeader("Range","bytes="+e.rangeStart+"-"+(e.rangeEnd-1)),t.onreadystatechange=this.readystatechange.bind(this),t.onprogress=this.loadprogress.bind(this),t.responseType=e.responseType,self.clearTimeout(this.requestTimeout),i.timeout=s&&L(s)?s:a,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),i.timeout),t.send()}readystatechange(){let{context:t,loader:e,stats:i}=this;if(!t||!e)return;let r=e.readyState,s=this.config;if(!i.aborted&&r>=2&&(i.loading.first===0&&(i.loading.first=Math.max(self.performance.now(),i.loading.start),s.timeout!==s.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),s.timeout=s.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),s.loadPolicy.maxLoadTimeMs-(i.loading.first-i.loading.start)))),r===4)){self.clearTimeout(this.requestTimeout),e.onreadystatechange=null,e.onprogress=null;let a=e.status,l=e.responseType!=="text";if(a>=200&&a<300&&(l&&e.response||e.responseText!==null)){i.loading.end=Math.max(self.performance.now(),i.loading.first);let c=l?e.response:e.responseText,u=e.responseType==="arraybuffer"?c.byteLength:c.length;if(i.loaded=i.total=u,i.bwEstimate=8000*i.total/(i.loading.end-i.loading.first),!this.callbacks)return;let h=this.callbacks.onProgress;if(h&&h(i,t,c,e),!this.callbacks)return;let m={url:e.responseURL,data:c,code:a};this.callbacks.onSuccess(m,i,t,e)}else{let c=s.loadPolicy.errorRetry;Cr(c,i.retry,!1,{url:t.url,data:void 0,code:a})?this.retry(c):(D.error(`${a} while loading ${t.url}`),this.callbacks.onError({code:a,text:e.statusText},t,e,i))}}}loadtimeout(){var t;let e=(t=this.config)==null?void 0:t.loadPolicy.timeoutRetry;if(Cr(e,this.stats.retry,!0))this.retry(e);else{var i;D.warn("timeout while loading "+((i=this.context)==null?void 0:i.url));let r=this.callbacks;r&&(this.abortInternal(),r.onTimeout(this.stats,this.context,this.loader))}}retry(t){let{context:e,stats:i}=this;this.retryDelay=Js(t,i.retry),i.retry++,D.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${e==null?void 0:e.url}, retrying ${i.retry}/${t.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(t){let e=this.stats;e.loaded=t.loaded,t.lengthComputable&&(e.total=t.total)}getCacheAge(){let t=null;if(this.loader&&Ff.test(this.loader.getAllResponseHeaders())){let e=this.loader.getResponseHeader("age");t=e?parseFloat(e):null}return t}getResponseHeader(t){return this.loader&&new RegExp(`^${t}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(t):null}}let Uf=/(\d+)-(\d+)\/(\d+)/;class lc{constructor(t){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=t.fetchSetup||Bf,this.controller=new self.AbortController,this.stats=new nt}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(){this.controller&&!this.stats.loading.end&&(this.stats.aborted=!0,this.controller.abort())}abort(){var t;this.abortInternal(),(t=this.callbacks)!=null&&t.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(t,e,i){let r=this.stats;if(r.loading.start)throw Error("Loader can only be used once.");r.loading.start=self.performance.now();let s=function(m,y){let S={method:"GET",mode:"cors",credentials:"same-origin",signal:y,headers:new self.Headers(T({},m.headers))};return m.rangeEnd&&S.headers.set("Range","bytes="+m.rangeStart+"-"+String(m.rangeEnd-1)),S}(t,this.controller.signal),a=i.onProgress,l=t.responseType==="arraybuffer",c=l?"byteLength":"length",{maxTimeToFirstByteMs:u,maxLoadTimeMs:h}=e.loadPolicy;this.context=t,this.config=e,this.callbacks=i,this.request=this.fetchSetup(t,s),self.clearTimeout(this.requestTimeout),e.timeout=u&&L(u)?u:h,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(r,t,this.response)},e.timeout),self.fetch(this.request).then((m)=>{this.response=this.loader=m;let y=Math.max(self.performance.now(),r.loading.start);if(self.clearTimeout(this.requestTimeout),e.timeout=h,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(r,t,this.response)},h-(y-r.loading.start)),!m.ok){let{status:S,statusText:_}=m;throw new $u(_||"fetch, bad network response",S,m)}return r.loading.first=y,r.total=function(S){let _=S.get("Content-Range");if(_){let I=function(C){let P=Uf.exec(C);if(P)return parseInt(P[2])-parseInt(P[1])+1}(_);if(L(I))return I}let w=S.get("Content-Length");if(w)return parseInt(w)}(m.headers)||r.total,a&&L(e.highWaterMark)?this.loadProgressively(m,r,t,e.highWaterMark,a):l?m.arrayBuffer():t.responseType==="json"?m.json():m.text()}).then((m)=>{let y=this.response;if(!y)throw Error("loader destroyed");self.clearTimeout(this.requestTimeout),r.loading.end=Math.max(self.performance.now(),r.loading.first);let S=m[c];S&&(r.loaded=r.total=S);let _={url:y.url,data:m,code:y.status};a&&!L(e.highWaterMark)&&a(r,t,m,y),i.onSuccess(_,r,t,y)}).catch((m)=>{if(self.clearTimeout(this.requestTimeout),r.aborted)return;let y=m&&m.code||0,S=m?m.message:null;i.onError({code:y,text:S},t,m?m.details:null,r)})}getCacheAge(){let t=null;if(this.response){let e=this.response.headers.get("age");t=e?parseFloat(e):null}return t}getResponseHeader(t){return this.response?this.response.headers.get(t):null}loadProgressively(t,e,i,r=0,s){let a=new jn,l=t.body.getReader(),c=()=>l.read().then((u)=>{if(u.done)return a.dataLength&&s(e,i,a.flush(),t),Promise.resolve(new ArrayBuffer(0));let h=u.value,m=h.length;return e.loaded+=m,m<r||a.dataLength?(a.push(h),a.dataLength>=r&&s(e,i,a.flush(),t)):s(e,i,h,t),c()}).catch(()=>Promise.reject());return c()}}function Bf(t,e){return new self.Request(t.url,e)}class $u extends Error{constructor(t,e,i){super(t),this.code=void 0,this.details=void 0,this.code=e,this.details=i}}let $f=/\s/,Gf={newCue(t,e,i,r){let s=[],a,l,c,u,h,m=self.VTTCue||self.TextTrackCue;for(let S=0;S<r.rows.length;S++)if(a=r.rows[S],c=!0,u=0,h="",!a.isEmpty()){var y;for(let I=0;I<a.chars.length;I++)$f.test(a.chars[I].uchar)&&c?u++:(h+=a.chars[I].uchar,c=!1);a.cueStartTime=e,e===i&&(i+=0.0001),u>=16?u--:u++;let _=Au(h.trim()),w=Jl(e,i,_);t!=null&&(y=t.cues)!=null&&y.getCueById(w)||(l=new m(e,i,_),l.id=w,l.line=S+1,l.align="left",l.position=10+Math.min(80,10*Math.floor(8*u/32)),s.push(l))}return t&&s.length&&(s.sort((S,_)=>S.line==="auto"||_.line==="auto"?0:S.line>8&&_.line>8?_.line-S.line:S.line-_.line),s.forEach((S)=>ro(t,S))),s}},Gu=E(E({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,maxBufferSize:60000000,maxBufferHole:0.1,highBufferWatchdogPeriod:2,nudgeOffset:0.1,nudgeMaxRetry:3,maxFragLookUpTolerance:0.25,liveSyncDurationCount:3,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,loader:oc,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:class{constructor(e){this.hls=void 0,this.lastLevelLoadSec=0,this.lastLoadedFragLevel=-1,this.firstSelection=-1,this._nextAutoLevel=-1,this.nextAutoLevelKey="",this.audioTracksByGroup=null,this.codecTiers=null,this.timer=-1,this.fragCurrent=null,this.partCurrent=null,this.bitrateTestDelay=0,this.bwEstimator=void 0,this._abandonRulesCheck=()=>{let{fragCurrent:i,partCurrent:r,hls:s}=this,{autoLevelEnabled:a,media:l}=s;if(!i||!l)return;let c=performance.now(),u=r?r.stats:i.stats,h=r?r.duration:i.duration,m=c-u.loading.start,y=s.minAutoLevel;if(u.aborted||u.loaded&&u.loaded===u.total||i.level<=y)return this.clearTimer(),void(this._nextAutoLevel=-1);if(!a||l.paused||!l.playbackRate||!l.readyState)return;let S=s.mainForwardBufferInfo;if(S===null)return;let _=this.bwEstimator.getEstimateTTFB(),w=Math.abs(l.playbackRate);if(m<=Math.max(_,h/(2*w)*1000))return;let I=S.len/w,C=u.loading.first?u.loading.first-u.loading.start:-1,P=u.loaded&&C>-1,F=this.getBwEstimate(),W=s.levels,z=W[i.level],lt=u.total||Math.max(u.loaded,Math.round(h*z.averageBitrate/8)),it=P?m-C:m;it<1&&P&&(it=Math.min(m,8*u.loaded/F));let ft=P?1000*u.loaded/it:0,mt=ft?(lt-u.loaded)/ft:8*lt/F+_/1000;if(mt<=I)return;let Q=ft?8*ft:F,X,kt=Number.POSITIVE_INFINITY;for(X=i.level-1;X>y;X--){let wt=W[X].maxBitrate;if(kt=this.getTimeToLoadFrag(_/1000,Q,h*wt,!W[X].details),kt<I)break}if(kt>=mt)return;if(kt>10*h)return;s.nextLoadLevel=s.nextAutoLevel=X,P?this.bwEstimator.sample(m-Math.min(_,C),u.loaded):this.bwEstimator.sampleTTFB(m);let ht=W[X].maxBitrate;this.getBwEstimate()*this.hls.config.abrBandWidthUpFactor>ht&&this.resetEstimator(ht),this.clearTimer(),D.warn(`[abr] Fragment ${i.sn}${r?" part "+r.index:""} of level ${i.level} is loading too slowly;
27
27
  Time to underbuffer: ${I.toFixed(3)} s
28
28
  Estimated load time for current fragment: ${mt.toFixed(3)} s
29
29
  Estimated load time for down switch fragment: ${kt.toFixed(3)} s
30
- TTFB estimate: ${0|D} ms
31
- Current BW estimate: ${L(x)?0|x:"Unknown"} bps
30
+ TTFB estimate: ${0|C} ms
31
+ Current BW estimate: ${L(F)?0|F:"Unknown"} bps
32
32
  New BW estimate: ${0|this.getBwEstimate()} bps
33
- Switching to level ${J} @ ${0|ht} bps`),s.trigger(b.FRAG_LOAD_EMERGENCY_ABORTED,{frag:i,part:n,stats:u})},this.hls=e,this.bwEstimator=this.initEstimator(),this.registerListeners()}resetEstimator(e){e&&(C.log("setting initial bwe to "+e),this.hls.config.abrEwmaDefaultEstimate=e),this.firstSelection=-1,this.bwEstimator=this.initEstimator()}initEstimator(){let e=this.hls.config;return new ea(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate)}registerListeners(){let{hls:e}=this;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.FRAG_LOADING,this.onFragLoading,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(b.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e&&(e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.FRAG_LOADING,this.onFragLoading,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(b.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.off(b.ERROR,this.onError,this))}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=null,this.fragCurrent=this.partCurrent=null}onManifestLoading(e,i){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}onLevelsUpdated(){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(e,i){let n=i.frag;if(!this.ignoreFragment(n)){var s;if(!n.bitrateTest)this.fragCurrent=n,this.partCurrent=(s=i.part)!=null?s:null;this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100)}}onLevelSwitching(e,i){this.clearTimer()}onError(e,i){if(!i.fatal)switch(i.details){case N.BUFFER_ADD_CODEC_ERROR:case N.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case N.FRAG_LOAD_TIMEOUT:{let n=i.frag,{fragCurrent:s,partCurrent:a}=this;if(n&&s&&n.sn===s.sn&&n.level===s.level){let o=performance.now(),c=a?a.stats:n.stats,u=o-c.loading.start,h=c.loading.first?c.loading.first-c.loading.start:-1;if(c.loaded&&h>-1){let m=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(u-Math.min(m,h),c.loaded)}else this.bwEstimator.sampleTTFB(u)}break}}}getTimeToLoadFrag(e,i,n,s){return e+n/i+(s?this.lastLevelLoadSec:0)}onLevelLoaded(e,i){let n=this.hls.config,{loading:s}=i.stats,a=s.end-s.start;L(a)&&(this.lastLevelLoadSec=a/1000),i.details.live?this.bwEstimator.update(n.abrEwmaSlowLive,n.abrEwmaFastLive):this.bwEstimator.update(n.abrEwmaSlowVoD,n.abrEwmaFastVoD)}onFragLoaded(e,{frag:i,part:n}){let s=n?n.stats:i.stats;if(i.type===ie&&this.bwEstimator.sampleTTFB(s.loading.first-s.loading.start),!this.ignoreFragment(i)){if(this.clearTimer(),i.level===this._nextAutoLevel&&(this._nextAutoLevel=-1),this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){let a=n?n.duration:i.duration,o=this.hls.levels[i.level],c=(o.loaded?o.loaded.bytes:0)+s.loaded,u=(o.loaded?o.loaded.duration:0)+a;o.loaded={bytes:c,duration:u},o.realBitrate=Math.round(8*c/u)}if(i.bitrateTest){let a={stats:s,frag:i,part:n,id:i.type};this.onFragBuffered(b.FRAG_BUFFERED,a),i.bitrateTest=!1}else this.lastLoadedFragLevel=i.level}}onFragBuffered(e,i){let{frag:n,part:s}=i,a=s!=null&&s.stats.loaded?s.stats:n.stats;if(a.aborted)return;if(this.ignoreFragment(n))return;let o=a.parsing.end-a.loading.start-Math.min(a.loading.first-a.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(o,a.loaded),a.bwEstimate=this.getBwEstimate(),n.bitrateTest?this.bitrateTestDelay=o/1000:this.bitrateTestDelay=0}ignoreFragment(e){return e.type!==ie||e.sn==="initSegment"}clearTimer(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1)}get firstAutoLevel(){let{maxAutoLevel:e,minAutoLevel:i}=this.hls,n=this.getBwEstimate(),s=this.hls.config.maxStarvationDelay,a=this.findBestLevel(n,i,e,0,s,1,1);if(a>-1)return a;let o=this.hls.firstLevel,c=Math.min(Math.max(o,i),e);return C.warn(`[abr] Could not find best starting auto level. Defaulting to first in playlist ${o} clamped to ${c}`),c}get forcedAutoLevel(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}get nextAutoLevel(){let e=this.forcedAutoLevel,i=this.bwEstimator.canEstimate(),n=this.lastLoadedFragLevel>-1;if(!(e===-1||i&&n&&this.nextAutoLevelKey!==this.getAutoLevelKey()))return e;let s=i&&n?this.getNextABRAutoLevel():this.firstAutoLevel;if(e!==-1){let a=this.hls.levels;if(a.length>Math.max(e,s)&&a[e].loadError<=a[s].loadError)return e}return this._nextAutoLevel=s,this.nextAutoLevelKey=this.getAutoLevelKey(),s}getAutoLevelKey(){return`${this.getBwEstimate()}_${this.getStarvationDelay().toFixed(2)}`}getNextABRAutoLevel(){let{fragCurrent:e,partCurrent:i,hls:n}=this,{maxAutoLevel:s,config:a,minAutoLevel:o}=n,c=i?i.duration:e?e.duration:0,u=this.getBwEstimate(),h=this.getStarvationDelay(),m=a.abrBandWidthFactor,y=a.abrBandWidthUpFactor;if(h){let D=this.findBestLevel(u,o,s,h,0,m,y);if(D>=0)return D}let S=c?Math.min(c,a.maxStarvationDelay):a.maxStarvationDelay;if(!h){let D=this.bitrateTestDelay;if(D)S=(c?Math.min(c,a.maxLoadingDelay):a.maxLoadingDelay)-D,C.info(`[abr] bitrate test took ${Math.round(1000*D)}ms, set first fragment max fetchDuration to ${Math.round(1000*S)} ms`),m=y=1}let _=this.findBestLevel(u,o,s,h,S,m,y);if(C.info(`[abr] ${h?"rebuffering expected":"buffer is empty"}, optimal quality level ${_}`),_>-1)return _;let w=n.levels[o],I=n.levels[n.loadLevel];return(w==null?void 0:w.bitrate)<(I==null?void 0:I.bitrate)?o:n.loadLevel}getStarvationDelay(){let e=this.hls,i=e.media;if(!i)return 1/0;let n=i&&i.playbackRate!==0?Math.abs(i.playbackRate):1,s=e.mainForwardBufferInfo;return(s?s.len:0)/n}getBwEstimate(){return this.bwEstimator.canEstimate()?this.bwEstimator.getEstimate():this.hls.config.abrEwmaDefaultEstimate}findBestLevel(e,i,n,s,a,o,c){var u;let h=s+a,m=this.lastLoadedFragLevel,y=m===-1?this.hls.firstLevel:m,{fragCurrent:S,partCurrent:_}=this,{levels:w,allAudioTracks:I,loadLevel:D,config:F}=this.hls;if(w.length===1)return 0;let x=w[y],W=!(x==null||(u=x.details)==null||!u.live),z=D===-1||m===-1,lt,it="SDR",ft=(x==null?void 0:x.frameRate)||0,{audioPreference:mt,videoPreference:Z}=F,J=this.audioTracksByGroup||(this.audioTracksByGroup=function(Mt){return Mt.reduce((at,vt)=>{let Ct=at.groups[vt.groupId];Ct||(Ct=at.groups[vt.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1}),Ct.tracks.push(vt);let Ot=vt.channels||"2";return Ct.channels[Ot]=(Ct.channels[Ot]||0)+1,Ct.hasDefault=Ct.hasDefault||vt.default,Ct.hasAutoSelect=Ct.hasAutoSelect||vt.autoselect,Ct.hasDefault&&(at.hasDefaultAudio=!0),Ct.hasAutoSelect&&(at.hasAutoSelectAudio=!0),at},{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}(I));if(z){if(this.firstSelection!==-1)return this.firstSelection;let Mt=function(le,me,he,Ie,ni){let pe=Object.keys(le),bn=Ie==null?void 0:Ie.channels,Te=Ie==null?void 0:Ie.audioCodec,Do=bn&&parseInt(bn)===2,Aa=!0,$n=!1,Qi=1/0,gr=1/0,pr=1/0,oc=0,La=[],{preferHDR:em,allowedVideoRanges:im}=Il(me,ni);for(let Oe=pe.length;Oe--;){let we=le[pe[Oe]];Aa=we.channels[2]>0,Qi=Math.min(Qi,we.minHeight),gr=Math.min(gr,we.minFramerate),pr=Math.min(pr,we.minBitrate);let Me=im.filter((lc)=>we.videoRanges[lc]>0);Me.length>0&&($n=!0,La=Me)}Qi=L(Qi)?Qi:0,gr=L(gr)?gr:0;let Ju=Math.max(1080,Qi),Qu=Math.max(30,gr);return pr=L(pr)?pr:he,he=Math.max(pr,he),$n||(me=void 0,La=[]),{codecSet:pe.reduce((Oe,we)=>{let Me=le[we];if(we===Oe)return Oe;if(Me.minBitrate>he)return Be(we,`min bitrate of ${Me.minBitrate} > current estimate of ${he}`),Oe;if(!Me.hasDefaultAudio)return Be(we,"no renditions with default or auto-select sound found"),Oe;if(Te&&we.indexOf(Te.substring(0,4))%5!=0)return Be(we,`audio codec preference "${Te}" not found`),Oe;if(bn&&!Do){if(!Me.channels[bn])return Be(we,`no renditions with ${bn} channel sound found (channels options: ${Object.keys(Me.channels)})`),Oe}else if((!Te||Do)&&Aa&&Me.channels[2]===0)return Be(we,"no renditions with stereo sound found"),Oe;return Me.minHeight>Ju?(Be(we,`min resolution of ${Me.minHeight} > maximum of ${Ju}`),Oe):Me.minFramerate>Qu?(Be(we,`min framerate of ${Me.minFramerate} > maximum of ${Qu}`),Oe):La.some((lc)=>Me.videoRanges[lc]>0)?Me.maxScore<oc?(Be(we,`max score of ${Me.maxScore} < selected max of ${oc}`),Oe):Oe&&(Qn(we)>=Qn(Oe)||Me.fragmentError>le[Oe].fragmentError)?Oe:(oc=Me.maxScore,we):(Be(we,`no variants with VIDEO-RANGE of ${JSON.stringify(La)} found`),Oe)},void 0),videoRanges:La,preferHDR:em,minFramerate:gr,minBitrate:pr}}(this.codecTiers||(this.codecTiers=function(le,me,he,Ie){return le.slice(he,Ie+1).reduce((ni,pe)=>{if(!pe.codecSet)return ni;let bn=pe.audioGroups,Te=ni[pe.codecSet];Te||(ni[pe.codecSet]=Te={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!bn,fragmentError:0}),Te.minBitrate=Math.min(Te.minBitrate,pe.bitrate);let Do=Math.min(pe.height,pe.width);return Te.minHeight=Math.min(Te.minHeight,Do),Te.minFramerate=Math.min(Te.minFramerate,pe.frameRate),Te.maxScore=Math.max(Te.maxScore,pe.score),Te.fragmentError+=pe.fragmentError,Te.videoRanges[pe.videoRange]=(Te.videoRanges[pe.videoRange]||0)+1,bn&&bn.forEach((Aa)=>{if(!Aa)return;let $n=me.groups[Aa];$n&&(Te.hasDefaultAudio=Te.hasDefaultAudio||me.hasDefaultAudio?$n.hasDefault:$n.hasAutoSelect||!me.hasDefaultAudio&&!me.hasAutoSelectAudio,Object.keys($n.channels).forEach((Qi)=>{Te.channels[Qi]=(Te.channels[Qi]||0)+$n.channels[Qi]}))}),ni},{})}(w,J,i,n)),it,e,mt,Z),{codecSet:at,videoRanges:vt,minFramerate:Ct,minBitrate:Ot,preferHDR:Gt}=Mt;lt=at,it=Gt?vt[vt.length-1]:vt[0],ft=Ct,e=Math.max(e,Ot),C.log("[abr] picked start tier "+JSON.stringify(Mt))}else lt=x==null?void 0:x.codecSet,it=x==null?void 0:x.videoRange;let kt=_?_.duration:S?S.duration:0,ht=this.bwEstimator.getEstimateTTFB()/1000,wt=[];for(let Mt=n;Mt>=i;Mt--){var It;let at=w[Mt],vt=Mt>y;if(!at)continue;if(F.useMediaCapabilities&&!at.supportedResult&&!at.supportedPromise){let he=navigator.mediaCapabilities;typeof(he==null?void 0:he.decodingInfo)=="function"&&Cl(at,J,it,ft,e,mt)?(at.supportedPromise=Xi(at,J,he),at.supportedPromise.then((Ie)=>{if(!this.hls)return;at.supportedResult=Ie;let ni=this.hls.levels,pe=ni.indexOf(at);Ie.error?C.warn(`[abr] MediaCapabilities decodingInfo error: "${Ie.error}" for level ${pe} ${JSON.stringify(Ie)}`):Ie.supported||(C.warn(`[abr] Unsupported MediaCapabilities decodingInfo result for level ${pe} ${JSON.stringify(Ie)}`),pe>-1&&ni.length>1&&(C.log("[abr] Removing unsupported level "+pe),this.hls.removeLevel(pe)))})):at.supportedResult=Hr}if(lt&&at.codecSet!==lt||it&&at.videoRange!==it||vt&&ft>at.frameRate||!vt&&ft>0&&ft<at.frameRate||at.supportedResult&&((It=at.supportedResult.decodingInfoResults)==null||!It[0].smooth)){wt.push(Mt);continue}let Ct=at.details,Ot=(_?Ct==null?void 0:Ct.partTarget:Ct==null?void 0:Ct.averagetargetduration)||kt,Gt;Gt=vt?c*e:o*e;let le=kt&&s>=2*kt&&a===0?w[Mt].averageBitrate:w[Mt].maxBitrate,me=this.getTimeToLoadFrag(ht,Gt,le*Ot,Ct===void 0);if(Gt>=le&&(Mt===m||at.loadError===0&&at.fragmentError===0)&&(me<=ht||!L(me)||W&&!this.bitrateTestDelay||me<h)){let he=this.forcedAutoLevel;return Mt===D||he!==-1&&he===D||(wt.length&&C.trace(`[abr] Skipped level(s) ${wt.join(",")} of ${n} max with CODECS and VIDEO-RANGE:"${w[wt[0]].codecs}" ${w[wt[0]].videoRange}; not compatible with "${x.codecs}" ${it}`),C.info(`[abr] switch candidate:${y}->${Mt} adjustedbw(${Math.round(Gt)})-bitrate=${Math.round(Gt-le)} ttfb:${ht.toFixed(1)} avgDuration:${Ot.toFixed(1)} maxFetchDuration:${h.toFixed(1)} fetchDuration:${me.toFixed(1)} firstSelection:${z} codecSet:${lt} videoRange:${it} hls.loadLevel:${D}`)),z&&(this.firstSelection=Mt),Mt}}return-1}set nextAutoLevel(e){let{maxAutoLevel:i,minAutoLevel:n}=this.hls,s=Math.min(Math.max(e,n),i);this._nextAutoLevel!==s&&(this.nextAutoLevelKey="",this._nextAutoLevel=s)}},bufferController:class{constructor(e){this.details=null,this._objectUrl=null,this.operationQueue=void 0,this.listeners=void 0,this.hls=void 0,this.bufferCodecEventsExpected=0,this._bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.appendSource=void 0,this.appendErrors={audio:0,video:0,audiovideo:0},this.tracks={},this.pendingTracks={},this.sourceBuffer=void 0,this.log=void 0,this.warn=void 0,this.error=void 0,this._onEndStreaming=(s)=>{this.hls&&this.hls.pauseBuffering()},this._onStartStreaming=(s)=>{this.hls&&this.hls.resumeBuffering()},this._onMediaSourceOpen=()=>{let{media:s,mediaSource:a}=this;this.log("Media source opened"),s&&(s.removeEventListener("emptied",this._onMediaEmptied),this.updateMediaElementDuration(),this.hls.trigger(b.MEDIA_ATTACHED,{media:s,mediaSource:a})),a&&a.removeEventListener("sourceopen",this._onMediaSourceOpen),this.checkPendingTracks()},this._onMediaSourceClose=()=>{this.log("Media source closed")},this._onMediaSourceEnded=()=>{this.log("Media source ended")},this._onMediaEmptied=()=>{let{mediaSrc:s,_objectUrl:a}=this;s!==a&&C.error(`Media element src was set while attaching MediaSource (${a} > ${s})`)},this.hls=e;let i="[buffer-controller]";var n;this.appendSource=(n=Ni(e.config.preferManagedMediaSource),typeof self<"u"&&n===self.ManagedMediaSource),this.log=C.log.bind(C,i),this.warn=C.warn.bind(C,i),this.error=C.error.bind(C,i),this._initSourceBuffer(),this.registerListeners()}hasSourceTypes(){return this.getSourceBufferTypes().length>0||Object.keys(this.pendingTracks).length>0}destroy(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=null,this.hls=null}registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.BUFFER_RESET,this.onBufferReset,this),e.on(b.BUFFER_APPENDING,this.onBufferAppending,this),e.on(b.BUFFER_CODECS,this.onBufferCodecs,this),e.on(b.BUFFER_EOS,this.onBufferEos,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(b.FRAG_PARSED,this.onFragParsed,this),e.on(b.FRAG_CHANGED,this.onFragChanged,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.BUFFER_RESET,this.onBufferReset,this),e.off(b.BUFFER_APPENDING,this.onBufferAppending,this),e.off(b.BUFFER_CODECS,this.onBufferCodecs,this),e.off(b.BUFFER_EOS,this.onBufferEos,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(b.FRAG_PARSED,this.onFragParsed,this),e.off(b.FRAG_CHANGED,this.onFragChanged,this)}_initSourceBuffer(){this.sourceBuffer={},this.operationQueue=new ou(this.sourceBuffer),this.listeners={audio:[],video:[],audiovideo:[]},this.appendErrors={audio:0,video:0,audiovideo:0},this.lastMpegAudioChunk=null}onManifestLoading(){this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=0,this.details=null}onManifestParsed(e,i){let n=2;(i.audio&&!i.video||!i.altAudio)&&(n=1),this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=n,this.log(this.bufferCodecEventsExpected+" bufferCodec event(s) expected")}onMediaAttaching(e,i){let n=this.media=i.media,s=Ni(this.appendSource);if(n&&s){var a;let o=this.mediaSource=new s;this.log("created media source: "+((a=o.constructor)==null?void 0:a.name)),o.addEventListener("sourceopen",this._onMediaSourceOpen),o.addEventListener("sourceended",this._onMediaSourceEnded),o.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(o.addEventListener("startstreaming",this._onStartStreaming),o.addEventListener("endstreaming",this._onEndStreaming));let c=this._objectUrl=self.URL.createObjectURL(o);if(this.appendSource)try{n.removeAttribute("src");let u=self.ManagedMediaSource;n.disableRemotePlayback=n.disableRemotePlayback||u&&o instanceof u,cu(n),function(h,m){let y=self.document.createElement("source");y.type="video/mp4",y.src=m,h.appendChild(y)}(n,c),n.load()}catch(u){n.src=c}else n.src=c;n.addEventListener("emptied",this._onMediaEmptied)}}onMediaDetaching(){let{media:e,mediaSource:i,_objectUrl:n}=this;if(i){if(this.log("media source detaching"),i.readyState==="open")try{i.endOfStream()}catch(s){this.warn(`onMediaDetaching: ${s.message} while calling endOfStream`)}this.onBufferReset(),i.removeEventListener("sourceopen",this._onMediaSourceOpen),i.removeEventListener("sourceended",this._onMediaSourceEnded),i.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(i.removeEventListener("startstreaming",this._onStartStreaming),i.removeEventListener("endstreaming",this._onEndStreaming)),e&&(e.removeEventListener("emptied",this._onMediaEmptied),n&&self.URL.revokeObjectURL(n),this.mediaSrc===n?(e.removeAttribute("src"),this.appendSource&&cu(e),e.load()):this.warn("media|source.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={}}this.hls.trigger(b.MEDIA_DETACHED,void 0)}onBufferReset(){this.getSourceBufferTypes().forEach((e)=>{this.resetBuffer(e)}),this._initSourceBuffer()}resetBuffer(e){let i=this.sourceBuffer[e];try{var n;if(i)this.removeBufferListeners(e),this.sourceBuffer[e]=void 0,(n=this.mediaSource)!=null&&n.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(i)}catch(s){this.warn("onBufferReset "+e,s)}}onBufferCodecs(e,i){let n=this.getSourceBufferTypes().length,s=Object.keys(i);if(s.forEach((o)=>{if(n){let u=this.tracks[o];if(u&&typeof u.buffer.changeType=="function"){var c;let{id:h,codec:m,levelCodec:y,container:S,metadata:_}=i[o],w=Xa(u.codec,u.levelCodec),I=w==null?void 0:w.replace(lu,"$1"),D=Xa(m,y),F=(c=D)==null?void 0:c.replace(lu,"$1");if(D&&I!==F){o.slice(0,5)==="audio"&&(D=Zn(D,this.appendSource));let x=`${S};codecs=${D}`;this.appendChangeType(o,x),this.log(`switching codec ${w} to ${D}`),this.tracks[o]={buffer:u.buffer,codec:m,container:S,levelCodec:y,metadata:_,id:h}}}}else this.pendingTracks[o]=i[o]}),n)return;let a=Math.max(this.bufferCodecEventsExpected-1,0);this.bufferCodecEventsExpected!==a&&(this.log(`${a} bufferCodec event(s) expected ${s.join(",")}`),this.bufferCodecEventsExpected=a),this.mediaSource&&this.mediaSource.readyState==="open"&&this.checkPendingTracks()}appendChangeType(e,i){let{operationQueue:n}=this,s={execute:()=>{let a=this.sourceBuffer[e];a&&(this.log(`changing ${e} sourceBuffer type to ${i}`),a.changeType(i)),n.shiftAndExecuteNext(e)},onStart:()=>{},onComplete:()=>{},onError:(a)=>{this.warn(`Failed to change ${e} SourceBuffer type`,a)}};n.append(s,e,!!this.pendingTracks[e])}onBufferAppending(e,i){let{hls:n,operationQueue:s,tracks:a}=this,{data:o,type:c,frag:u,part:h,chunkMeta:m}=i,y=m.buffering[c],S=self.performance.now();y.start=S;let _=u.stats.buffering,w=h?h.stats.buffering:null;_.start===0&&(_.start=S),w&&w.start===0&&(w.start=S);let I=a.audio,D=!1;c==="audio"&&(I==null?void 0:I.container)==="audio/mpeg"&&(D=!this.lastMpegAudioChunk||m.id===1||this.lastMpegAudioChunk.sn!==m.sn,this.lastMpegAudioChunk=m);let F=u.start,x={execute:()=>{if(y.executeStart=self.performance.now(),D){let W=this.sourceBuffer[c];if(W){let z=F-W.timestampOffset;Math.abs(z)>=0.1&&(this.log(`Updating audio SourceBuffer timestampOffset to ${F} (delta: ${z}) sn: ${u.sn})`),W.timestampOffset=F)}}this.appendExecutor(o,c)},onStart:()=>{},onComplete:()=>{let W=self.performance.now();y.executeEnd=y.end=W,_.first===0&&(_.first=W),w&&w.first===0&&(w.first=W);let{sourceBuffer:z}=this,lt={};for(let it in z)lt[it]=Jt.getBuffered(z[it]);this.appendErrors[c]=0,c==="audio"||c==="video"?this.appendErrors.audiovideo=0:(this.appendErrors.audio=0,this.appendErrors.video=0),this.hls.trigger(b.BUFFER_APPENDED,{type:c,frag:u,part:h,chunkMeta:m,parent:u.type,timeRanges:lt})},onError:(W)=>{let z={type:G.MEDIA_ERROR,parent:u.type,details:N.BUFFER_APPEND_ERROR,sourceBufferName:c,frag:u,part:h,chunkMeta:m,error:W,err:W,fatal:!1};if(W.code===DOMException.QUOTA_EXCEEDED_ERR)z.details=N.BUFFER_FULL_ERROR;else{let lt=++this.appendErrors[c];z.details=N.BUFFER_APPEND_ERROR,this.warn(`Failed ${lt}/${n.config.appendErrorMaxRetry} times to append segment in "${c}" sourceBuffer`),lt>=n.config.appendErrorMaxRetry&&(z.fatal=!0)}n.trigger(b.ERROR,z)}};s.append(x,c,!!this.pendingTracks[c])}onBufferFlushing(e,i){let{operationQueue:n}=this,s=(a)=>({execute:this.removeExecutor.bind(this,a,i.startOffset,i.endOffset),onStart:()=>{},onComplete:()=>{this.hls.trigger(b.BUFFER_FLUSHED,{type:a})},onError:(o)=>{this.warn(`Failed to remove from ${a} SourceBuffer`,o)}});i.type?n.append(s(i.type),i.type):this.getSourceBufferTypes().forEach((a)=>{n.append(s(a),a)})}onFragParsed(e,i){let{frag:n,part:s}=i,a=[],o=s?s.elementaryStreams:n.elementaryStreams;o[Ft]?a.push("audiovideo"):(o[ot]&&a.push("audio"),o[St]&&a.push("video")),a.length===0&&this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${n.type} level: ${n.level} sn: ${n.sn}`),this.blockBuffers(()=>{let c=self.performance.now();n.stats.buffering.end=c,s&&(s.stats.buffering.end=c);let u=s?s.stats:n.stats;this.hls.trigger(b.FRAG_BUFFERED,{frag:n,part:s,stats:u,id:n.type})},a)}onFragChanged(e,i){this.trimBuffers()}onBufferEos(e,i){this.getSourceBufferTypes().reduce((n,s)=>{let a=this.sourceBuffer[s];return!a||i.type&&i.type!==s||(a.ending=!0,a.ended||(a.ended=!0,this.log(s+" sourceBuffer now EOS"))),n&&!(a&&!a.ended)},!0)&&(this.log("Queueing mediaSource.endOfStream()"),this.blockBuffers(()=>{this.getSourceBufferTypes().forEach((s)=>{let a=this.sourceBuffer[s];a&&(a.ending=!1)});let{mediaSource:n}=this;n&&n.readyState==="open"?(this.log("Calling mediaSource.endOfStream()"),n.endOfStream()):n&&this.log("Could not call mediaSource.endOfStream(). mediaSource.readyState: "+n.readyState)}))}onLevelUpdated(e,{details:i}){i.fragments.length&&(this.details=i,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())}trimBuffers(){let{hls:e,details:i,media:n}=this;if(!n||i===null)return;if(!this.getSourceBufferTypes().length)return;let s=e.config,a=n.currentTime,o=i.levelTargetDuration,c=i.live&&s.liveBackBufferLength!==null?s.liveBackBufferLength:s.backBufferLength;if(L(c)&&c>0){let u=Math.max(c,o),h=Math.floor(a/o)*o-u;this.flushBackBuffer(a,o,h)}if(L(s.frontBufferFlushThreshold)&&s.frontBufferFlushThreshold>0){let u=Math.max(s.maxBufferLength,s.frontBufferFlushThreshold),h=Math.max(u,o),m=Math.floor(a/o)*o+h;this.flushFrontBuffer(a,o,m)}}flushBackBuffer(e,i,n){let{details:s,sourceBuffer:a}=this;this.getSourceBufferTypes().forEach((o)=>{let c=a[o];if(c){let u=Jt.getBuffered(c);if(u.length>0&&n>u.start(0)){if(this.hls.trigger(b.BACK_BUFFER_REACHED,{bufferEnd:n}),s!=null&&s.live)this.hls.trigger(b.LIVE_BACK_BUFFER_REACHED,{bufferEnd:n});else if(c.ended&&u.end(u.length-1)-e<2*i)return void this.log(`Cannot flush ${o} back buffer while SourceBuffer is in ended state`);this.hls.trigger(b.BUFFER_FLUSHING,{startOffset:0,endOffset:n,type:o})}}})}flushFrontBuffer(e,i,n){let{sourceBuffer:s}=this;this.getSourceBufferTypes().forEach((a)=>{let o=s[a];if(o){let c=Jt.getBuffered(o),u=c.length;if(u<2)return;let h=c.start(u-1),m=c.end(u-1);if(n>h||e>=h&&e<=m)return;if(o.ended&&e-m<2*i)return void this.log(`Cannot flush ${a} front buffer while SourceBuffer is in ended state`);this.hls.trigger(b.BUFFER_FLUSHING,{startOffset:h,endOffset:1/0,type:a})}})}updateMediaElementDuration(){if(!this.details||!this.media||!this.mediaSource||this.mediaSource.readyState!=="open")return;let{details:e,hls:i,media:n,mediaSource:s}=this,a=e.fragments[0].start+e.totalduration,o=n.duration,c=L(s.duration)?s.duration:0;e.live&&i.config.liveDurationInfinity?(s.duration=1/0,this.updateSeekableRange(e)):(a>c&&a>o||!L(o))&&(this.log("Updating Media Source duration to "+a.toFixed(3)),s.duration=a)}updateSeekableRange(e){let i=this.mediaSource,n=e.fragments;if(n.length&&e.live&&i!=null&&i.setLiveSeekableRange){let s=Math.max(0,n[0].start),a=Math.max(s,s+e.totalduration);this.log(`Media Source duration is set to ${i.duration}. Setting seekable range to ${s}-${a}.`),i.setLiveSeekableRange(s,a)}}checkPendingTracks(){let{bufferCodecEventsExpected:e,operationQueue:i,pendingTracks:n}=this,s=Object.keys(n).length;if(s&&(!e||s===2||("audiovideo"in n))){this.createSourceBuffers(n),this.pendingTracks={};let a=this.getSourceBufferTypes();if(a.length)this.hls.trigger(b.BUFFER_CREATED,{tracks:this.tracks}),a.forEach((o)=>{i.executeNext(o)});else{let o=Error("could not create source buffer for media codec(s)");this.hls.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:o,reason:o.message})}}}createSourceBuffers(e){let{sourceBuffer:i,mediaSource:n}=this;if(!n)throw Error("createSourceBuffers called when mediaSource was null");for(let a in e)if(!i[a]){var s;let o=e[a];if(!o)throw Error(`source buffer exists for track ${a}, however track does not`);let c=((s=o.levelCodec)==null?void 0:s.indexOf(","))===-1?o.levelCodec:o.codec;c&&a.slice(0,5)==="audio"&&(c=Zn(c,this.appendSource));let u=`${o.container};codecs=${c}`;this.log(`creating sourceBuffer(${u})`);try{let h=i[a]=n.addSourceBuffer(u),m=a;this.addBufferListener(m,"updatestart",this._onSBUpdateStart),this.addBufferListener(m,"updateend",this._onSBUpdateEnd),this.addBufferListener(m,"error",this._onSBUpdateError),this.appendSource&&this.addBufferListener(m,"bufferedchange",(y,S)=>{let _=S.removedRanges;_!=null&&_.length&&this.hls.trigger(b.BUFFER_FLUSHED,{type:a})}),this.tracks[a]={buffer:h,codec:c,container:o.container,levelCodec:o.levelCodec,metadata:o.metadata,id:o.id}}catch(h){this.error("error while trying to add sourceBuffer: "+h.message),this.hls.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:h,sourceBufferName:a,mimeType:u})}}}get mediaSrc(){var e;let i=((e=this.media)==null?void 0:e.firstChild)||this.media;return i==null?void 0:i.src}_onSBUpdateStart(e){let{operationQueue:i}=this;i.current(e).onStart()}_onSBUpdateEnd(e){var i;if(((i=this.mediaSource)==null?void 0:i.readyState)==="closed")return void this.resetBuffer(e);let{operationQueue:n}=this;n.current(e).onComplete(),n.shiftAndExecuteNext(e)}_onSBUpdateError(e,i){var n;let s=Error(`${e} SourceBuffer error. MediaSource readyState: ${(n=this.mediaSource)==null?void 0:n.readyState}`);this.error(""+s,i),this.hls.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.BUFFER_APPENDING_ERROR,sourceBufferName:e,error:s,fatal:!1});let a=this.operationQueue.current(e);a&&a.onError(s)}removeExecutor(e,i,n){let{media:s,mediaSource:a,operationQueue:o,sourceBuffer:c}=this,u=c[e];if(!s||!a||!u)return this.warn(`Attempting to remove from the ${e} SourceBuffer, but it does not exist`),void o.shiftAndExecuteNext(e);let h=L(s.duration)?s.duration:1/0,m=L(a.duration)?a.duration:1/0,y=Math.max(0,i),S=Math.min(n,h,m);S>y&&(!u.ending||u.ended)?(u.ended=!1,this.log(`Removing [${y},${S}] from the ${e} SourceBuffer`),u.remove(y,S)):o.shiftAndExecuteNext(e)}appendExecutor(e,i){let n=this.sourceBuffer[i];if(n)n.ended=!1,n.appendBuffer(e);else if(!this.pendingTracks[i])throw Error(`Attempting to append to the ${i} SourceBuffer, but it does not exist`)}blockBuffers(e,i=this.getSourceBufferTypes()){if(!i.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),void Promise.resolve().then(e);let{operationQueue:n}=this,s=i.map((a)=>n.appendBlocker(a));Promise.all(s).then(()=>{e(),i.forEach((a)=>{let o=this.sourceBuffer[a];o!=null&&o.updating||n.shiftAndExecuteNext(a)})})}getSourceBufferTypes(){return Object.keys(this.sourceBuffer)}addBufferListener(e,i,n){let s=this.sourceBuffer[e];if(!s)return;let a=n.bind(this,e);this.listeners[e].push({event:i,listener:a}),s.addEventListener(i,a)}removeBufferListeners(e){let i=this.sourceBuffer[e];i&&this.listeners[e].forEach((n)=>{i.removeEventListener(n.event,n.listener)})}},capLevelController:Xl,errorController:class{constructor(e){this.hls=void 0,this.playlistError=0,this.penalizedRenditions={},this.log=void 0,this.warn=void 0,this.error=void 0,this.hls=e,this.log=C.log.bind(C,"[info]:"),this.warn=C.warn.bind(C,"[warning]:"),this.error=C.error.bind(C,"[error]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(b.ERROR,this.onError,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_UPDATED,this.onLevelUpdated,this)}unregisterListeners(){let e=this.hls;e&&(e.off(b.ERROR,this.onError,this),e.off(b.ERROR,this.onErrorOut,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_UPDATED,this.onLevelUpdated,this))}destroy(){this.unregisterListeners(),this.hls=null,this.penalizedRenditions={}}startLoad(e){}stopLoad(){this.playlistError=0}getVariantLevelIndex(e){return(e==null?void 0:e.type)===ie?e.level:this.hls.loadLevel}onManifestLoading(){this.playlistError=0,this.penalizedRenditions={}}onLevelUpdated(){this.playlistError=0}onError(e,i){var n,s;if(i.fatal)return;let a=this.hls,o=i.context;switch(i.details){case N.FRAG_LOAD_ERROR:case N.FRAG_LOAD_TIMEOUT:case N.KEY_LOAD_ERROR:case N.KEY_LOAD_TIMEOUT:return void(i.errorAction=this.getFragRetryOrSwitchAction(i));case N.FRAG_PARSING_ERROR:if((n=i.frag)!=null&&n.gap)return void(i.errorAction={action:Qs,flags:gn});case N.FRAG_GAP:case N.FRAG_DECRYPT_ERROR:return i.errorAction=this.getFragRetryOrSwitchAction(i),void(i.errorAction.action=Pi);case N.LEVEL_EMPTY_ERROR:case N.LEVEL_PARSING_ERROR:{var c,u;let h=i.parent===ie?i.level:a.loadLevel;i.details===N.LEVEL_EMPTY_ERROR&&(c=i.context)!=null&&(u=c.levelDetails)!=null&&u.live?i.errorAction=this.getPlaylistRetryOrSwitchAction(i,h):(i.levelRetry=!1,i.errorAction=this.getLevelSwitchAction(i,h))}return;case N.LEVEL_LOAD_ERROR:case N.LEVEL_LOAD_TIMEOUT:return void(typeof(o==null?void 0:o.level)=="number"&&(i.errorAction=this.getPlaylistRetryOrSwitchAction(i,o.level)));case N.AUDIO_TRACK_LOAD_ERROR:case N.AUDIO_TRACK_LOAD_TIMEOUT:case N.SUBTITLE_LOAD_ERROR:case N.SUBTITLE_TRACK_LOAD_TIMEOUT:if(o){let h=a.levels[a.loadLevel];if(h&&(o.type===ei&&h.hasAudioGroup(o.groupId)||o.type===pi&&h.hasSubtitleGroup(o.groupId)))return i.errorAction=this.getPlaylistRetryOrSwitchAction(i,a.loadLevel),i.errorAction.action=Pi,void(i.errorAction.flags=Zs)}return;case N.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:{let h=a.levels[a.loadLevel],m=h==null?void 0:h.attrs["HDCP-LEVEL"];m?i.errorAction={action:Pi,flags:ta,hdcpLevel:m}:this.keySystemError(i)}return;case N.BUFFER_ADD_CODEC_ERROR:case N.REMUX_ALLOC_ERROR:case N.BUFFER_APPEND_ERROR:return void(i.errorAction=this.getLevelSwitchAction(i,(s=i.level)!=null?s:a.loadLevel));case N.INTERNAL_EXCEPTION:case N.BUFFER_APPENDING_ERROR:case N.BUFFER_FULL_ERROR:case N.LEVEL_SWITCH_ERROR:case N.BUFFER_STALLED_ERROR:case N.BUFFER_SEEK_OVER_HOLE:case N.BUFFER_NUDGE_ON_STALL:return void(i.errorAction={action:Qs,flags:gn})}i.type===G.KEY_SYSTEM_ERROR&&this.keySystemError(i)}keySystemError(e){let i=this.getVariantLevelIndex(e.frag);e.levelRetry=!1,e.errorAction=this.getLevelSwitchAction(e,i)}getPlaylistRetryOrSwitchAction(e,i){let n=lo(this.hls.config.playlistLoadPolicy,e),s=this.playlistError++;if(Cn(n,s,Gr(e),e.response))return{action:Ce,flags:gn,retryConfig:n,retryCount:s};let a=this.getLevelSwitchAction(e,i);return n&&(a.retryConfig=n,a.retryCount=s),a}getFragRetryOrSwitchAction(e){let i=this.hls,n=this.getVariantLevelIndex(e.frag),s=i.levels[n],{fragLoadPolicy:a,keyLoadPolicy:o}=i.config,c=lo(e.details.startsWith("key")?o:a,e),u=i.levels.reduce((m,y)=>m+y.fragmentError,0);if(s){if(e.details!==N.FRAG_GAP&&s.fragmentError++,Cn(c,u,Gr(e),e.response))return{action:Ce,flags:gn,retryConfig:c,retryCount:u}}let h=this.getLevelSwitchAction(e,n);return c&&(h.retryConfig=c,h.retryCount=u),h}getLevelSwitchAction(e,i){let n=this.hls;i==null&&(i=n.loadLevel);let s=this.hls.levels[i];if(s){var a,o;let h=e.details;s.loadError++,h===N.BUFFER_APPEND_ERROR&&s.fragmentError++;let m=-1,{levels:y,loadLevel:S,minAutoLevel:_,maxAutoLevel:w}=n;n.autoLevelEnabled||(n.loadLevel=-1);let I=(a=e.frag)==null?void 0:a.type,D=(I===Ue&&h===N.FRAG_PARSING_ERROR||e.sourceBufferName==="audio"&&(h===N.BUFFER_ADD_CODEC_ERROR||h===N.BUFFER_APPEND_ERROR))&&y.some(({audioCodec:z})=>s.audioCodec!==z),F=e.sourceBufferName==="video"&&(h===N.BUFFER_ADD_CODEC_ERROR||h===N.BUFFER_APPEND_ERROR)&&y.some(({codecSet:z,audioCodec:lt})=>s.codecSet!==z&&s.audioCodec===lt),{type:x,groupId:W}=(o=e.context)!=null?o:{};for(let z=y.length;z--;){let lt=(z+S)%y.length;if(lt!==S&&lt>=_&&lt<=w&&y[lt].loadError===0){var c,u;let it=y[lt];if(h===N.FRAG_GAP&&e.frag){let ft=y[lt].details;if(ft){let mt=In(e.frag,ft.fragments,e.frag.start);if(mt!=null&&mt.gap)continue}}else{if(x===ei&&it.hasAudioGroup(W)||x===pi&&it.hasSubtitleGroup(W))continue;if(I===Ue&&(c=s.audioGroups)!=null&&c.some((ft)=>it.hasAudioGroup(ft))||I===bi&&(u=s.subtitleGroups)!=null&&u.some((ft)=>it.hasSubtitleGroup(ft))||D&&s.audioCodec===it.audioCodec||!D&&s.audioCodec!==it.audioCodec||F&&s.codecSet===it.codecSet)continue}m=lt;break}}if(m>-1&&n.loadLevel!==m)return e.levelRetry=!0,this.playlistError=0,{action:Pi,flags:gn,nextAutoLevel:m}}return{action:Pi,flags:Zs}}onErrorOut(e,i){var n;switch((n=i.errorAction)==null?void 0:n.action){case Qs:break;case Pi:this.sendAlternateToPenaltyBox(i),i.errorAction.resolved||i.details===N.FRAG_GAP?/MediaSource readyState: ended/.test(i.error.message)&&(this.warn(`MediaSource ended after "${i.sourceBufferName}" sourceBuffer append error. Attempting to recover from media error.`),this.hls.recoverMediaError()):i.fatal=!0}i.fatal&&this.hls.stopLoad()}sendAlternateToPenaltyBox(e){let i=this.hls,n=e.errorAction;if(!n)return;let{flags:s,hdcpLevel:a,nextAutoLevel:o}=n;switch(s){case gn:this.switchLevel(e,o);break;case ta:a&&(i.maxHdcpLevel=js[js.indexOf(a)-1],n.resolved=!0),this.warn(`Restricting playback to HDCP-LEVEL of "${i.maxHdcpLevel}" or lower`)}n.resolved||this.switchLevel(e,o)}switchLevel(e,i){i!==void 0&&e.errorAction&&(this.warn(`switching to level ${i} after ${e.details}`),this.hls.nextAutoLevel=i,e.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel)}},fpsController:class{constructor(e){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=e,this.registerListeners()}setStreamController(e){this.streamController=e}registerListeners(){this.hls.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this)}destroy(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(e,i){let n=this.hls.config;if(n.capLevelOnFPSDrop){let s=i.media instanceof self.HTMLVideoElement?i.media:null;this.media=s,s&&typeof s.getVideoPlaybackQuality=="function"&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),n.fpsDroppedMonitoringPeriod)}}checkFPS(e,i,n){let s=performance.now();if(i){if(this.lastTime){let a=s-this.lastTime,o=n-this.lastDroppedFrames,c=i-this.lastDecodedFrames,u=1000*o/a,h=this.hls;if(h.trigger(b.FPS_DROP,{currentDropped:o,currentDecoded:c,totalDroppedFrames:n}),u>0&&o>h.config.fpsDroppedMonitoringThreshold*c){let m=h.currentLevel;C.warn("drop FPS ratio greater than max allowed value for currentLevel: "+m),m>0&&(h.autoLevelCapping===-1||h.autoLevelCapping>=m)&&(m-=1,h.trigger(b.FPS_DROP_LEVEL_CAPPING,{level:m,droppedLevel:h.currentLevel}),h.autoLevelCapping=m,this.streamController.nextLevelSwitch())}}this.lastTime=s,this.lastDroppedFrames=n,this.lastDecodedFrames=i}}checkFPSInterval(){let e=this.media;if(e)if(this.isVideoPlaybackQualityAvailable){let i=e.getVideoPlaybackQuality();this.checkFPS(e,i.totalVideoFrames,i.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)}},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:Pe,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableID3MetadataCues:!0,useMediaCapabilities:!0,certLoadPolicy:{default:{maxTimeToFirstByteMs:8000,maxLoadTimeMs:20000,timeoutRetry:null,errorRetry:null}},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}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1000,manifestLoadingMaxRetryTimeout:64000,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1000,levelLoadingMaxRetryTimeout:64000,fragLoadingTimeOut:20000,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1000,fragLoadingMaxRetryTimeout:64000},{cueHandler:Nf,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}),{},{subtitleStreamController:class extends dr{constructor(e,i,n){super(e,i,n,"[subtitle-stream-controller]",bi),this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this._registerListeners()}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.ERROR,this.onError,this),e.on(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(b.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(b.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.ERROR,this.onError,this),e.off(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(b.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(b.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}startLoad(e){this.stopLoad(),this.state=Zt,this.setInterval(500),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}onManifestLoading(){this.mainDetails=null,this.fragmentTracker.removeAllFragments()}onMediaDetaching(){this.tracksBuffered=[],super.onMediaDetaching()}onLevelLoaded(e,i){this.mainDetails=i.details}onSubtitleFragProcessed(e,i){let{frag:n,success:s}=i;if(this.fragPrevious=n,this.state=Zt,!s)return;let a=this.tracksBuffered[this.currentTrackId];if(!a)return;let o,c=n.start;for(let h=0;h<a.length;h++)if(c>=a[h].start&&c<=a[h].end){o=a[h];break}let u=n.start+n.duration;o?o.end=u:(o={start:c,end:u},a.push(o)),this.fragmentTracker.fragBuffered(n),this.fragBufferedComplete(n,null)}onBufferFlushing(e,i){let{startOffset:n,endOffset:s}=i;if(n===0&&s!==Number.POSITIVE_INFINITY){let a=s-1;if(a<=0)return;i.endOffsetSubtitles=Math.max(0,a),this.tracksBuffered.forEach((o)=>{for(let c=0;c<o.length;)if(o[c].end<=a)o.shift();else{if(!(o[c].start<a))break;o[c].start=a,c++}}),this.fragmentTracker.removeFragmentsInRange(n,a,bi)}}onFragBuffered(e,i){var n;this.loadedmetadata||i.frag.type!==ie||(n=this.media)!=null&&n.buffered.length&&(this.loadedmetadata=!0)}onError(e,i){let n=i.frag;(n==null?void 0:n.type)===bi&&(this.fragCurrent&&this.fragCurrent.abortRequests(),this.state!==oi&&(this.state=Zt))}onSubtitleTracksUpdated(e,{subtitleTracks:i}){this.levels&&su(this.levels,i)?this.levels=i.map((n)=>new hn(n)):(this.tracksBuffered=[],this.levels=i.map((n)=>{let s=new hn(n);return this.tracksBuffered[s.id]=[],s}),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,bi),this.fragPrevious=null,this.mediaBuffer=null)}onSubtitleTrackSwitch(e,i){var n;if(this.currentTrackId=i.id,(n=this.levels)==null||!n.length||this.currentTrackId===-1)return void this.clearInterval();let s=this.levels[this.currentTrackId];s!=null&&s.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,s&&this.setInterval(500)}onSubtitleTrackLoaded(e,i){var n;let{currentTrackId:s,levels:a}=this,{details:o,id:c}=i;if(!a)return void this.warn("Subtitle tracks were reset while loading level "+c);let u=a[s];if(c>=a.length||c!==s||!u)return;this.log(`Subtitle track ${c} loaded [${o.startSN},${o.endSN}]${o.lastPartSn?`[part-${o.lastPartSn}-${o.lastPartIndex}]`:""},duration:${o.totalduration}`),this.mediaBuffer=this.mediaBufferTimeRanges;let h=0;if(o.live||(n=u.details)!=null&&n.live){let y=this.mainDetails;if(o.deltaUpdateFailed||!y)return;let S=y.fragments[0];var m;if(u.details)h=this.alignPlaylists(o,u.details,(m=this.levelLastLoaded)==null?void 0:m.details),h===0&&S&&(h=S.start,nr(o,h));else o.hasProgramDateTime&&y.hasProgramDateTime?(Wr(o,y),h=o.fragments[0].start):S&&(h=S.start,nr(o,h))}if(u.details=o,this.levelLastLoaded=u,this.startFragRequested||!this.mainDetails&&o.live||this.setStartPosition(this.mainDetails||o,h),this.tick(),o.live&&!this.fragCurrent&&this.media&&this.state===Zt)In(null,o.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),u.details=void 0)}_handleFragmentLoadComplete(e){let{frag:i,payload:n}=e,s=i.decryptdata,a=this.hls;if(!this.fragContextChanged(i)&&n&&n.byteLength>0&&s!=null&&s.key&&s.iv&&s.method==="AES-128"){let o=performance.now();this.decrypter.decrypt(new Uint8Array(n),s.key.buffer,s.iv.buffer).catch((c)=>{throw a.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.FRAG_DECRYPT_ERROR,fatal:!1,error:c,reason:c.message,frag:i}),c}).then((c)=>{let u=performance.now();a.trigger(b.FRAG_DECRYPTED,{frag:i,payload:c,stats:{tstart:o,tdecrypt:u}})}).catch((c)=>{this.warn(`${c.name}: ${c.message}`),this.state=Zt})}}doTick(){if(this.media){if(this.state===Zt){let{currentTrackId:e,levels:i}=this,n=i==null?void 0:i[e];if(!n||!i.length||!n.details)return;let{config:s}=this,a=this.getLoadPosition(),o=Jt.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],a,s.maxBufferHole),{end:c,len:u}=o,h=this.getFwdBufferInfo(this.media,ie),m=n.details;if(u>this.getMaxBufferLength(h==null?void 0:h.len)+m.levelTargetDuration)return;let y=m.fragments,S=y.length,_=m.edge,w=null,I=this.fragPrevious;if(c<_){let D=s.maxFragLookUpTolerance,F=c>_-D?0:D;w=In(I,y,Math.max(y[0].start,c),F),!w&&I&&I.start<y[0].start&&(w=y[0])}else w=y[S-1];if(!w)return;if(w=this.mapToInitFragWhenRequired(w),w.sn!=="initSegment"){let D=y[w.sn-m.startSN-1];D&&D.cc===w.cc&&this.fragmentTracker.getState(D)===ze&&(w=D)}this.fragmentTracker.getState(w)===ze&&this.loadFragment(w,n,c)}}else this.state=Zt}getMaxBufferLength(e){let i=super.getMaxBufferLength();return e?Math.max(i,e):i}loadFragment(e,i,n){this.fragCurrent=e,e.sn==="initSegment"?this._loadInitSegment(e,i):(this.startFragRequested=!0,super.loadFragment(e,i,n))}get mediaBufferTimeRanges(){return new au(this.tracksBuffered[this.currentTrackId]||[])}},subtitleTrackController:class extends Ae{constructor(e){super(e,"[subtitle-track-controller]"),this.media=null,this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.queuedDefaultTrack=-1,this.asyncPollTrackChange=()=>this.pollTrackChange(0),this.useTextTrackPolling=!1,this.subtitlePollingInterval=-1,this._subtitleDisplay=!0,this.onTextTracksChanged=()=>{if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!this.media||!this.hls.config.renderTextTracksNatively)return;let i=null,n=Pr(this.media.textTracks);for(let a=0;a<n.length;a++)if(n[a].mode==="hidden")i=n[a];else if(n[a].mode==="showing"){i=n[a];break}let s=this.findTrackForTextTrack(i);this.subtitleTrack!==s&&this.setSubtitleTrack(s)},this.registerListeners()}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,this.onTextTracksChanged=this.asyncPollTrackChange=null,super.destroy()}get subtitleDisplay(){return this._subtitleDisplay}set subtitleDisplay(e){this._subtitleDisplay=e,this.trackId>-1&&this.toggleTrackModes()}registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.LEVEL_LOADING,this.onLevelLoading,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(b.ERROR,this.onError,this)}onMediaAttached(e,i){this.media=i.media,this.media&&(this.queuedDefaultTrack>-1&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&("onchange"in this.media.textTracks)),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))}pollTrackChange(e){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.onTextTracksChanged,e)}onMediaDetaching(){if(!this.media)return;self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||this.media.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),Pr(this.media.textTracks).forEach((e)=>{dn(e)}),this.subtitleTrack=-1,this.media=null}onManifestLoading(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(e,i){this.tracks=i.subtitleTracks}onSubtitleTrackLoaded(e,i){let{id:n,groupId:s,details:a}=i,o=this.tracksInGroup[n];if(!o||o.groupId!==s)return void this.warn(`Subtitle track with id:${n} and group:${s} not found in active group ${o==null?void 0:o.groupId}`);let c=o.details;o.details=i.details,this.log(`Subtitle track ${n} "${o.name}" lang:${o.lang} group:${s} loaded [${a.startSN}-${a.endSN}]`),n===this.trackId&&this.playlistLoaded(n,i,c)}onLevelLoading(e,i){this.switchLevel(i.level)}onLevelSwitching(e,i){this.switchLevel(i.level)}switchLevel(e){let i=this.hls.levels[e];if(!i)return;let n=i.subtitleGroups||null,s=this.groupIds,a=this.currentTrack;if(!n||(s==null?void 0:s.length)!==(n==null?void 0:n.length)||n!=null&&n.some((o)=>(s==null?void 0:s.indexOf(o))===-1)){this.groupIds=n,this.trackId=-1,this.currentTrack=null;let o=this.tracks.filter((m)=>!n||n.indexOf(m.groupId)!==-1);if(o.length)this.selectDefaultTrack&&!o.some((m)=>m.default)&&(this.selectDefaultTrack=!1),o.forEach((m,y)=>{m.id=y});else if(!a&&!this.tracksInGroup.length)return;this.tracksInGroup=o;let c=this.hls.config.subtitlePreference;if(!a&&c){this.selectDefaultTrack=!1;let m=_i(c,o);if(m>-1)a=o[m];else{let y=_i(c,this.tracks);a=this.tracks[y]}}let u=this.findTrackId(a);u===-1&&a&&(u=this.findTrackId(null));let h={subtitleTracks:o};this.log(`Updating subtitle tracks, ${o.length} track(s) found in "${n==null?void 0:n.join(",")}" group-id`),this.hls.trigger(b.SUBTITLE_TRACKS_UPDATED,h),u!==-1&&this.trackId===-1&&this.setSubtitleTrack(u)}else this.shouldReloadPlaylist(a)&&this.setSubtitleTrack(this.trackId)}findTrackId(e){let i=this.tracksInGroup,n=this.selectDefaultTrack;for(let s=0;s<i.length;s++){let a=i[s];if((!n||a.default)&&(n||e)&&(!e||On(a,e)))return s}if(e){for(let s=0;s<i.length;s++){let a=i[s];if(is(e.attrs,a.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return s}for(let s=0;s<i.length;s++){let a=i[s];if(is(e.attrs,a.attrs,["LANGUAGE"]))return s}}return-1}findTrackForTextTrack(e){if(e){let i=this.tracksInGroup;for(let n=0;n<i.length;n++)if(Ul(i[n],e))return n}return-1}onError(e,i){!i.fatal&&i.context&&(i.context.type!==pi||i.context.id!==this.trackId||this.groupIds&&this.groupIds.indexOf(i.context.groupId)===-1||this.checkRetry(i))}get allSubtitleTracks(){return this.tracks}get subtitleTracks(){return this.tracksInGroup}get subtitleTrack(){return this.trackId}set subtitleTrack(e){this.selectDefaultTrack=!1,this.setSubtitleTrack(e)}setSubtitleOption(e){if(this.hls.config.subtitlePreference=e,e){let i=this.allSubtitleTracks;if(this.selectDefaultTrack=!1,i.length){let n=this.currentTrack;if(n&&On(e,n))return n;let s=_i(e,this.tracksInGroup);if(s>-1){let a=this.tracksInGroup[s];return this.setSubtitleTrack(s),a}if(n)return null;{let a=_i(e,i);if(a>-1)return i[a]}}}return null}loadPlaylist(e){super.loadPlaylist();let i=this.currentTrack;if(this.shouldLoadPlaylist(i)&&i){let{id:n,groupId:s,url:a}=i;if(e)try{a=e.addDirectives(a)}catch(o){this.warn("Could not construct new URL with HLS Delivery Directives: "+o)}this.log("Loading subtitle playlist for id "+n),this.hls.trigger(b.SUBTITLE_TRACK_LOADING,{url:a,id:n,groupId:s,deliveryDirectives:e||null})}}toggleTrackModes(){let{media:e}=this;if(!e)return;let i=Pr(e.textTracks),n=this.currentTrack,s;if(n&&(s=i.filter((a)=>Ul(n,a))[0],s||this.warn(`Unable to find subtitle TextTrack with name "${n.name}" and language "${n.lang}"`)),[].slice.call(i).forEach((a)=>{a.mode!=="disabled"&&a!==s&&(a.mode="disabled")}),s){let a=this.subtitleDisplay?"showing":"hidden";s.mode!==a&&(s.mode=a)}}setSubtitleTrack(e){let i=this.tracksInGroup;if(!this.media)return void(this.queuedDefaultTrack=e);if(e<-1||e>=i.length||!L(e))return void this.warn("Invalid subtitle track id: "+e);this.clearTimer(),this.selectDefaultTrack=!1;let n=this.currentTrack,s=i[e]||null;if(this.trackId=e,this.currentTrack=s,this.toggleTrackModes(),!s)return void this.hls.trigger(b.SUBTITLE_TRACK_SWITCH,{id:e});let a=!!s.details&&!s.details.live;if(e===this.trackId&&s===n&&a)return;this.log("Switching to subtitle-track "+e+(s?` "${s.name}" lang:${s.lang} group:${s.groupId}`:""));let{id:o,groupId:c="",name:u,type:h,url:m}=s;this.hls.trigger(b.SUBTITLE_TRACK_SWITCH,{id:o,groupId:c,name:u,type:h,url:m});let y=this.switchParams(s.url,n==null?void 0:n.details,s.details);this.loadPlaylist(y)}},timelineController:class{constructor(e){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={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this.captionsProperties=void 0,this.hls=e,this.config=e.config,this.Cues=e.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}},e.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(b.FRAG_LOADING,this.onFragLoading,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this),e.on(b.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(b.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(b.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){let{hls:e}=this;e.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(b.FRAG_LOADING,this.onFragLoading,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this),e.off(b.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(b.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(b.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=null,this.cea608Parser1=this.cea608Parser2=void 0}initCea608Parsers(){if(this.config.enableCEA708Captions&&(!this.cea608Parser1||!this.cea608Parser2)){let e=new Ea(this,"textTrack1"),i=new Ea(this,"textTrack2"),n=new Ea(this,"textTrack3"),s=new Ea(this,"textTrack4");this.cea608Parser1=new Gl(1,e,i),this.cea608Parser2=new Gl(3,n,s)}}addCues(e,i,n,s,a){let o=!1;for(let y=a.length;y--;){let S=a[y],_=(c=S[0],u=S[1],h=i,m=n,Math.min(u,m)-Math.max(c,h));if(_>=0&&(S[0]=Math.min(S[0],i),S[1]=Math.max(S[1],n),o=!0,_/(n-i)>0.5))return}var c,u,h,m;if(o||a.push([i,n]),this.config.renderTextTracksNatively){let y=this.captionsTracks[e];this.Cues.newCue(y,i,n,s)}else{let y=this.Cues.newCue(null,i,n,s);this.hls.trigger(b.CUES_PARSED,{type:"captions",cues:y,track:e})}}onInitPtsFound(e,{frag:i,id:n,initPTS:s,timescale:a}){let{unparsedVttFrags:o}=this;n==="main"&&(this.initPTS[i.cc]={baseTime:s,timescale:a}),o.length&&(this.unparsedVttFrags=[],o.forEach((c)=>{this.onFragLoaded(b.FRAG_LOADED,c)}))}getExistingTrack(e,i){let{media:n}=this;if(n)for(let s=0;s<n.textTracks.length;s++){let a=n.textTracks[s];if(ku(a,{name:e,lang:i,attrs:{}}))return a}return null}createCaptionsTrack(e){this.config.renderTextTracksNatively?this.createNativeTrack(e):this.createNonNativeTrack(e)}createNativeTrack(e){if(this.captionsTracks[e])return;let{captionsProperties:i,captionsTracks:n,media:s}=this,{label:a,languageCode:o}=i[e],c=this.getExistingTrack(a,o);if(c)n[e]=c,dn(n[e]),Ks(n[e],s);else{let u=this.createTextTrack("captions",a,o);u&&(u[e]=!0,n[e]=u)}}createNonNativeTrack(e){if(this.nonNativeCaptionsTracks[e])return;let i=this.captionsProperties[e];if(!i)return;let n={_id:e,label:i.label,kind:"captions",default:!!i.media&&!!i.media.default,closedCaptions:i.media};this.nonNativeCaptionsTracks[e]=n,this.hls.trigger(b.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[n]})}createTextTrack(e,i,n){let s=this.media;if(s)return s.addTextTrack(e,i,n)}onMediaAttaching(e,i){this.media=i.media,this._cleanTracks()}onMediaDetaching(){let{captionsTracks:e}=this;Object.keys(e).forEach((i)=>{dn(e[i]),delete e[i]}),this.nonNativeCaptionsTracks={}}onManifestLoading(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},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:e}=this;if(!e)return;let i=e.textTracks;if(i)for(let n=0;n<i.length;n++)dn(i[n])}onSubtitleTracksUpdated(e,i){let n=i.subtitleTracks||[],s=n.some((a)=>a.textCodec==="stpp.ttml.im1t");if(this.config.enableWebVTT||s&&this.config.enableIMSC1){if(su(this.tracks,n))return void(this.tracks=n);if(this.textTracks=[],this.tracks=n,this.config.renderTextTracksNatively){let a=this.media,o=a?Pr(a.textTracks):null;if(this.tracks.forEach((c,u)=>{let h;if(o){let m=null;for(let y=0;y<o.length;y++)if(o[y]&&ku(o[y],c)){m=o[y],o[y]=null;break}m&&(h=m)}if(h)dn(h);else{let m=Ru(c);h=this.createTextTrack(m,c.name,c.lang),h&&(h.mode="disabled")}h&&this.textTracks.push(h)}),o!=null&&o.length){let c=o.filter((u)=>u!==null).map((u)=>u.label);c.length&&C.warn(`Media element contains unused subtitle tracks: ${c.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`)}}else if(this.tracks.length){let a=this.tracks.map((o)=>({label:o.name,kind:o.type.toLowerCase(),default:o.default,subtitleTrack:o}));this.hls.trigger(b.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:a})}}}onManifestLoaded(e,i){this.config.enableCEA708Captions&&i.captions&&i.captions.forEach((n)=>{let s=/(?:CC|SERVICE)([1-4])/.exec(n.instreamId);if(!s)return;let a="textTrack"+s[1],o=this.captionsProperties[a];o&&(o.label=n.name,n.lang&&(o.languageCode=n.lang),o.media=n)})}closedCaptionsForLevel(e){let i=this.hls.levels[e.level];return i==null?void 0:i.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,i){this.initCea608Parsers();let{cea608Parser1:n,cea608Parser2:s,lastCc:a,lastSn:o,lastPartIndex:c}=this;if(this.enabled&&n&&s&&i.frag.type===ie){var u,h;let{cc:m,sn:y}=i.frag,S=(u=i==null||(h=i.part)==null?void 0:h.index)!=null?u:-1;y===o+1||y===o&&S===c+1||m===a||(n.reset(),s.reset()),this.lastCc=m,this.lastSn=y,this.lastPartIndex=S}}onFragLoaded(e,i){let{frag:n,payload:s}=i;if(n.type===bi)if(s.byteLength){let a=n.decryptdata,o="stats"in i;if(a==null||!a.encrypted||o){let c=this.tracks[n.level],u=this.vttCCs;u[n.cc]||(u[n.cc]={start:n.start,prevCC:this.prevCC,new:!0},this.prevCC=n.cc),c&&c.textCodec==="stpp.ttml.im1t"?this._parseIMSC1(n,s):this._parseVTTs(i)}}else this.hls.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:n,error:Error("Empty subtitle payload")})}_parseIMSC1(e,i){let n=this.hls;Au(i,this.initPTS[e.cc],(s)=>{this._appendCues(s,e.level),n.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})},(s)=>{C.log("Failed to parse IMSC1: "+s),n.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e,error:s})})}_parseVTTs(e){var i;let{frag:n,payload:s}=e,{initPTS:a,unparsedVttFrags:o}=this,c=a.length-1;if(!a[n.cc]&&c===-1)return void o.push(e);let u=this.hls;Ef((i=n.initSegment)!=null&&i.data?si(n.initSegment.data,new Uint8Array(s)):s,this.initPTS[n.cc],this.vttCCs,n.cc,n.start,(h)=>{this._appendCues(h,n.level),u.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:n})},(h)=>{let m=h.message==="Missing initPTS for VTT MPEGTS";m?o.push(e):this._fallbackToIMSC1(n,s),C.log("Failed to parse VTT cue: "+h),m&&c>n.cc||u.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:n,error:h})})}_fallbackToIMSC1(e,i){let n=this.tracks[e.level];n.textCodec||Au(i,this.initPTS[e.cc],()=>{n.textCodec="stpp.ttml.im1t",this._parseIMSC1(e,i)},()=>{n.textCodec="wvtt"})}_appendCues(e,i){let n=this.hls;if(this.config.renderTextTracksNatively){let s=this.textTracks[i];if(!s||s.mode==="disabled")return;e.forEach((a)=>io(s,a))}else{let s=this.tracks[i];if(!s)return;let a=s.default?"default":"subtitles"+i;n.trigger(b.CUES_PARSED,{type:"subtitles",cues:e,track:a})}}onFragDecrypted(e,i){let{frag:n}=i;n.type===bi&&this.onFragLoaded(b.FRAG_LOADED,i)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(e,i){this.initCea608Parsers();let{cea608Parser1:n,cea608Parser2:s}=this;if(!this.enabled||!n||!s)return;let{frag:a,samples:o}=i;if(a.type!==ie||this.closedCaptionsForLevel(a)!=="NONE")for(let c=0;c<o.length;c++){let u=o[c].bytes;if(u){let h=this.extractCea608Data(u);n.addData(o[c].pts,h[0]),s.addData(o[c].pts,h[1])}}}onBufferFlushing(e,{startOffset:i,endOffset:n,endOffsetSubtitles:s,type:a}){let{media:o}=this;if(o&&!(o.currentTime<n)){if(!a||a==="video"){let{captionsTracks:c}=this;Object.keys(c).forEach((u)=>Fr(c[u],i,n))}if(this.config.renderTextTracksNatively&&i===0&&s!==void 0){let{textTracks:c}=this;Object.keys(c).forEach((u)=>Fr(c[u],i,s))}}}extractCea608Data(e){let i=[[],[]],n=31&e[0],s=2;for(let a=0;a<n;a++){let o=e[s++],c=127&e[s++],u=127&e[s++];if(c===0&&u===0)continue;if((4&o)!=0){let h=3&o;h!==0&&h!==1||(i[h].push(c),i[h].push(u))}}return i}},audioStreamController:class extends dr{constructor(e,i,n){super(e,i,n,"[audio-stream-controller]",Ue),this.videoBuffer=null,this.videoTrackCC=-1,this.waitingVideoCC=-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.mainDetails=null,this.bufferedTrack=null,this.switchingTrack=null}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.on(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(b.ERROR,this.onError,this),e.on(b.BUFFER_RESET,this.onBufferReset,this),e.on(b.BUFFER_CREATED,this.onBufferCreated,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.off(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(b.ERROR,this.onError,this),e.off(b.BUFFER_RESET,this.onBufferReset,this),e.off(b.BUFFER_CREATED,this.onBufferCreated,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}onInitPtsFound(e,{frag:i,id:n,initPTS:s,timescale:a}){if(n==="main"){let o=i.cc;this.initPTS[i.cc]={baseTime:s,timescale:a},this.log(`InitPTS for cc: ${o} found from main: ${s}`),this.videoTrackCC=o,this.state===Li&&this.tick()}}startLoad(e){if(!this.levels)return this.startPosition=e,void(this.state=oi);let i=this.lastCurrentTime;this.stopLoad(),this.setInterval(100),i>0&&e===-1?(this.log("Override startPosition with lastCurrentTime @"+i.toFixed(3)),e=i,this.state=Zt):(this.loadedmetadata=!1,this.state=xn),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}doTick(){switch(this.state){case Zt:this.doTickIdle();break;case xn:{var e;let{levels:n,trackId:s}=this,a=n==null||(e=n[s])==null?void 0:e.details;if(a){if(this.waitForCdnTuneIn(a))break;this.state=Li}break}case Pn:{var i;let n=performance.now(),s=this.retryDate;if(!s||n>=s||(i=this.media)!=null&&i.seeking){let{levels:a,trackId:o}=this;this.log("RetryDate reached, switch back to IDLE state"),this.resetStartWhenNotLoaded((a==null?void 0:a[o])||null),this.state=Zt}break}case Li:{let n=this.waitingData;if(n){let{frag:s,part:a,cache:o,complete:c}=n;if(this.initPTS[s.cc]!==void 0){this.waitingData=null,this.waitingVideoCC=-1,this.state=Fn;let u={frag:s,part:a,payload:o.flush(),networkDetails:null};this._handleFragmentLoadProgress(u),c&&super._handleFragmentLoadComplete(u)}else if(this.videoTrackCC!==this.waitingVideoCC)this.log(`Waiting fragment cc (${s.cc}) cancelled because video is at cc ${this.videoTrackCC}`),this.clearWaitingFragment();else{let u=this.getLoadPosition(),h=Jt.bufferInfo(this.mediaBuffer,u,this.config.maxBufferHole);mn(h.end,this.config.maxFragLookUpTolerance,s)<0&&(this.log(`Waiting fragment cc (${s.cc}) @ ${s.start} cancelled because another fragment at ${h.end} is needed`),this.clearWaitingFragment())}}else this.state=Zt}}this.onTickEnd()}clearWaitingFragment(){let e=this.waitingData;e&&(this.fragmentTracker.removeFragment(e.frag),this.waitingData=null,this.waitingVideoCC=-1,this.state=Zt)}resetLoadingState(){this.clearWaitingFragment(),super.resetLoadingState()}onTickEnd(){let{media:e}=this;e!=null&&e.readyState&&(this.lastCurrentTime=e.currentTime)}doTickIdle(){let{hls:e,levels:i,media:n,trackId:s}=this,a=e.config;if(!n&&(this.startFragRequested||!a.startFragPrefetch)||i==null||!i[s])return;let o=i[s],c=o.details;if(!c||c.live&&this.levelLastLoaded!==o||this.waitForCdnTuneIn(c))return void(this.state=xn);let u=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&u&&(this.bufferFlushed=!1,this.afterBufferFlushed(u,ot,Ue));let h=this.getFwdBufferInfo(u,Ue);if(h===null)return;let{bufferedTrack:m,switchingTrack:y}=this;if(!y&&this._streamEnded(h,c))return e.trigger(b.BUFFER_EOS,{type:"audio"}),void(this.state=ur);let S=this.getFwdBufferInfo(this.videoBuffer?this.videoBuffer:this.media,ie),_=h.len,w=this.getMaxBufferLength(S==null?void 0:S.len),I=c.fragments,D=I[0].start,F=this.flushing?this.getLoadPosition():h.end;if(y&&n){let lt=this.getLoadPosition();m&&!is(y.attrs,m.attrs)&&(F=lt),c.PTSKnown&&lt<D&&(h.end>D||h.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),n.currentTime=D+0.05)}if(_>=w&&!y&&F<I[I.length-1].start)return;let x=this.getNextFragment(F,c),W=!1;if(x&&this.isLoopLoading(x,F)&&(W=!!x.gap,x=this.getNextFragmentLoopLoading(x,c,h,ie,w)),!x)return void(this.bufferFlushed=!0);let z=S&&x.start>S.end+c.targetduration;if(z||(S==null||!S.len)&&h.len){let lt=this.getAppendedFrag(x.start,ie);if(lt===null)return;if(W||(W=!!lt.gap||!!z&&S.len===0),z&&!W||W&&h.nextStart&&h.nextStart<lt.end)return}this.loadFragment(x,o,F)}getMaxBufferLength(e){let i=super.getMaxBufferLength();return e?Math.min(Math.max(i,e),this.config.maxMaxBufferLength):i}onMediaDetaching(){this.videoBuffer=null,this.bufferFlushed=this.flushing=!1,super.onMediaDetaching()}onAudioTracksUpdated(e,{audioTracks:i}){this.resetTransmuxer(),this.levels=i.map((n)=>new hn(n))}onAudioTrackSwitching(e,i){let n=!!i.url;this.trackId=i.id;let{fragCurrent:s}=this;s&&(s.abortRequests(),this.removeUnbufferedFrags(s.start)),this.resetLoadingState(),n?this.setInterval(100):this.resetTransmuxer(),n?(this.switchingTrack=i,this.state=Zt,this.flushAudioIfNeeded(i)):(this.switchingTrack=null,this.bufferedTrack=i,this.state=oi),this.tick()}onManifestLoading(){this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=this.flushing=!1,this.levels=this.mainDetails=this.waitingData=this.bufferedTrack=this.cachedTrackLoadedData=this.switchingTrack=null,this.startFragRequested=!1,this.trackId=this.videoTrackCC=this.waitingVideoCC=-1}onLevelLoaded(e,i){this.mainDetails=i.details,this.cachedTrackLoadedData!==null&&(this.hls.trigger(b.AUDIO_TRACK_LOADED,this.cachedTrackLoadedData),this.cachedTrackLoadedData=null)}onAudioTrackLoaded(e,i){var n;if(this.mainDetails==null)return void(this.cachedTrackLoadedData=i);let{levels:s}=this,{details:a,id:o}=i;if(!s)return void this.warn("Audio tracks were reset while loading level "+o);this.log(`Audio track ${o} loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""},duration:${a.totalduration}`);let c=s[o],u=0;if(a.live||(n=c.details)!=null&&n.live){this.checkLiveUpdate(a);let m=this.mainDetails;if(a.deltaUpdateFailed||!m)return;var h;if(!c.details&&a.hasProgramDateTime&&m.hasProgramDateTime)Wr(a,m),u=a.fragments[0].start;else u=this.alignPlaylists(a,c.details,(h=this.levelLastLoaded)==null?void 0:h.details)}c.details=a,this.levelLastLoaded=c,this.startFragRequested||!this.mainDetails&&a.live||this.setStartPosition(this.mainDetails||a,u),this.state!==xn||this.waitForCdnTuneIn(a)||(this.state=Zt),this.tick()}_handleFragmentLoadProgress(e){var i;let{frag:n,part:s,payload:a}=e,{config:o,trackId:c,levels:u}=this;if(!u)return void this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${n.sn} of level ${n.level} will not be buffered`);let h=u[c];if(!h)return void this.warn("Audio track is undefined on fragment load progress");let m=h.details;if(!m)return this.warn("Audio track details undefined on fragment load progress"),void this.removeUnbufferedFrags(n.start);let y=o.defaultAudioCodec||h.audioCodec||"mp4a.40.2",S=this.transmuxer;S||(S=this.transmuxer=new xl(this.hls,Ue,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));let _=this.initPTS[n.cc],w=(i=n.initSegment)==null?void 0:i.data;if(_!==void 0){let D=s?s.index:-1,F=D!==-1,x=new Nn(n.level,n.sn,n.stats.chunkCount,a.byteLength,D,F);S.push(a,w,y,"",n,s,m.totalduration,!1,x,_)}else{this.log(`Unknown video PTS for cc ${n.cc}, waiting for video PTS before demuxing audio frag ${n.sn} of [${m.startSN} ,${m.endSN}],track ${c}`);let{cache:I}=this.waitingData=this.waitingData||{frag:n,part:s,cache:new jr,complete:!1};I.push(new Uint8Array(a)),this.waitingVideoCC=this.videoTrackCC,this.state=Li}}_handleFragmentLoadComplete(e){this.waitingData?this.waitingData.complete=!0:super._handleFragmentLoadComplete(e)}onBufferReset(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1}onBufferCreated(e,i){let n=i.tracks.audio;n&&(this.mediaBuffer=n.buffer||null),i.tracks.video&&(this.videoBuffer=i.tracks.video.buffer||null)}onFragBuffered(e,i){let{frag:n,part:s}=i;if(n.type===Ue)if(this.fragContextChanged(n))this.warn(`Fragment ${n.sn}${s?" p: "+s.index:""} of level ${n.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack?this.switchingTrack.name:"false"}`);else{if(n.sn!=="initSegment"){this.fragPrevious=n;let a=this.switchingTrack;a&&(this.bufferedTrack=a,this.switchingTrack=null,this.hls.trigger(b.AUDIO_TRACK_SWITCHED,E({},a)))}this.fragBufferedComplete(n,s)}else if(!this.loadedmetadata&&n.type===ie){let a=this.videoBuffer||this.media;if(a)Jt.getBuffered(a).length&&(this.loadedmetadata=!0)}}onError(e,i){var n;if(i.fatal)this.state=Un;else switch(i.details){case N.FRAG_GAP:case N.FRAG_PARSING_ERROR:case N.FRAG_DECRYPT_ERROR:case N.FRAG_LOAD_ERROR:case N.FRAG_LOAD_TIMEOUT:case N.KEY_LOAD_ERROR:case N.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(Ue,i);break;case N.AUDIO_TRACK_LOAD_ERROR:case N.AUDIO_TRACK_LOAD_TIMEOUT:case N.LEVEL_PARSING_ERROR:i.levelRetry||this.state!==xn||((n=i.context)==null?void 0:n.type)!==ei||(this.state=Zt);break;case N.BUFFER_APPEND_ERROR:case N.BUFFER_FULL_ERROR:if(!i.parent||i.parent!=="audio")return;if(i.details===N.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(i)&&(this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"));break;case N.INTERNAL_EXCEPTION:this.recoverWorkerError(i)}}onBufferFlushing(e,{type:i}){i!==St&&(this.flushing=!0)}onBufferFlushed(e,{type:i}){if(i!==St){this.flushing=!1,this.bufferFlushed=!0,this.state===ur&&(this.state=Zt);let n=this.mediaBuffer||this.media;n&&(this.afterBufferFlushed(n,i,Ue),this.tick())}}_handleTransmuxComplete(e){var i;let n="audio",{hls:s}=this,{remuxResult:a,chunkMeta:o}=e,c=this.getCurrentContext(o);if(!c)return void this.resetWhenMissingContext(o);let{frag:u,part:h,level:m}=c,{details:y}=m,{audio:S,text:_,id3:w,initSegment:I}=a;if(!this.fragContextChanged(u)&&y){if(this.state=xi,this.switchingTrack&&S&&this.completeAudioSwitch(this.switchingTrack),I!=null&&I.tracks){let D=u.initSegment||u;this._bufferInitSegment(m,I.tracks,D,o),s.trigger(b.FRAG_PARSING_INIT_SEGMENT,{frag:D,id:"audio",tracks:I.tracks})}if(S){let{startPTS:D,endPTS:F,startDTS:x,endDTS:W}=S;h&&(h.elementaryStreams[ot]={startPTS:D,endPTS:F,startDTS:x,endDTS:W}),u.setElementaryStreamInfo(ot,D,F,x,W),this.bufferFragmentData(S,u,h,o)}if(w!=null&&(i=w.samples)!=null&&i.length){let D=T({id:"audio",frag:u,details:y},w);s.trigger(b.FRAG_PARSING_METADATA,D)}if(_){let D=T({id:"audio",frag:u,details:y},_);s.trigger(b.FRAG_PARSING_USERDATA,D)}}else this.fragmentTracker.removeFragment(u)}_bufferInitSegment(e,i,n,s){if(this.state!==xi)return;i.video&&delete i.video;let a=i.audio;if(!a)return;a.id="audio";let o=e.audioCodec;this.log(`Init audio buffer, container:${a.container}, codecs[level/parsed]=[${o}/${a.codec}]`),o&&o.split(",").length===1&&(a.levelCodec=o),this.hls.trigger(b.BUFFER_CODECS,i);let c=a.initSegment;if(c!=null&&c.byteLength){let u={type:"audio",frag:n,part:null,chunkMeta:s,parent:n.type,data:c};this.hls.trigger(b.BUFFER_APPENDING,u)}this.tickImmediate()}loadFragment(e,i,n){let s=this.fragmentTracker.getState(e);var a;if(this.fragCurrent=e,this.switchingTrack||s===ze||s===vn)if(e.sn==="initSegment")this._loadInitSegment(e,i);else if((a=i.details)!=null&&a.live&&!this.initPTS[e.cc]){this.log(`Waiting for video PTS in continuity counter ${e.cc} of live stream before loading audio fragment ${e.sn} of level ${this.trackId}`),this.state=Li;let o=this.mainDetails;o&&o.fragments[0].start!==i.details.fragments[0].start&&Wr(i.details,o)}else this.startFragRequested=!0,super.loadFragment(e,i,n);else this.clearTrackerIfNeeded(e)}flushAudioIfNeeded(e){let{media:i,bufferedTrack:n}=this,s=n==null?void 0:n.attrs,a=e.attrs;i&&s&&(s.CHANNELS!==a.CHANNELS||n.name!==e.name||n.lang!==e.lang)&&(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null)}completeAudioSwitch(e){let{hls:i}=this;this.flushAudioIfNeeded(e),this.bufferedTrack=e,this.switchingTrack=null,i.trigger(b.AUDIO_TRACK_SWITCHED,E({},e))}},audioTrackController:class extends Ae{constructor(e){super(e,"[audio-track-controller]"),this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){let{hls:e}=this;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.LEVEL_LOADING,this.onLevelLoading,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(b.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(e,i){this.tracks=i.audioTracks||[]}onAudioTrackLoaded(e,i){let{id:n,groupId:s,details:a}=i,o=this.tracksInGroup[n];if(!o||o.groupId!==s)return void this.warn(`Audio track with id:${n} and group:${s} not found in active group ${o==null?void 0:o.groupId}`);let c=o.details;o.details=i.details,this.log(`Audio track ${n} "${o.name}" lang:${o.lang} group:${s} loaded [${a.startSN}-${a.endSN}]`),n===this.trackId&&this.playlistLoaded(n,i,c)}onLevelLoading(e,i){this.switchLevel(i.level)}onLevelSwitching(e,i){this.switchLevel(i.level)}switchLevel(e){let i=this.hls.levels[e];if(!i)return;let n=i.audioGroups||null,s=this.groupIds,a=this.currentTrack;if(!n||(s==null?void 0:s.length)!==(n==null?void 0:n.length)||n!=null&&n.some((c)=>(s==null?void 0:s.indexOf(c))===-1)){this.groupIds=n,this.trackId=-1,this.currentTrack=null;let c=this.tracks.filter((S)=>!n||n.indexOf(S.groupId)!==-1);if(c.length)this.selectDefaultTrack&&!c.some((S)=>S.default)&&(this.selectDefaultTrack=!1),c.forEach((S,_)=>{S.id=_});else if(!a&&!this.tracksInGroup.length)return;this.tracksInGroup=c;let u=this.hls.config.audioPreference;if(!a&&u){let S=_i(u,c,Mn);if(S>-1)a=c[S];else{let _=_i(u,this.tracks);a=this.tracks[_]}}let h=this.findTrackId(a);h===-1&&a&&(h=this.findTrackId(null));let m={audioTracks:c};this.log(`Updating audio tracks, ${c.length} track(s) found in group(s): ${n==null?void 0:n.join(",")}`),this.hls.trigger(b.AUDIO_TRACKS_UPDATED,m);let y=this.trackId;if(h!==-1&&y===-1)this.setAudioTrack(h);else if(c.length&&y===-1){var o;let S=Error(`No audio track selected for current audio group-ID(s): ${(o=this.groupIds)==null?void 0:o.join(",")} track count: ${c.length}`);this.warn(S.message),this.hls.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:S})}}else this.shouldReloadPlaylist(a)&&this.setAudioTrack(this.trackId)}onError(e,i){!i.fatal&&i.context&&(i.context.type!==ei||i.context.id!==this.trackId||this.groupIds&&this.groupIds.indexOf(i.context.groupId)===-1||(this.requestScheduled=-1,this.checkRetry(i)))}get allAudioTracks(){return this.tracks}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}setAudioOption(e){let i=this.hls;if(i.config.audioPreference=e,e){let n=this.allAudioTracks;if(this.selectDefaultTrack=!1,n.length){let s=this.currentTrack;if(s&&On(e,s,Mn))return s;let a=_i(e,this.tracksInGroup,Mn);if(a>-1){let o=this.tracksInGroup[a];return this.setAudioTrack(a),o}if(s){let o=i.loadLevel;o===-1&&(o=i.firstAutoLevel);let c=function(u,h,m,y,S){let _=h[y],w=h.reduce((W,z,lt)=>{let it=z.uri;return(W[it]||(W[it]=[])).push(lt),W},{})[_.uri];w.length>1&&(y=Math.max.apply(Math,w));let{videoRange:I,frameRate:D}=_,F=_.codecSet.substring(0,4),x=uo(h,y,(W)=>{if(W.videoRange!==I||W.frameRate!==D||W.codecSet.substring(0,4)!==F)return!1;let z=W.audioGroups,lt=m.filter((it)=>!z||z.indexOf(it.groupId)!==-1);return _i(u,lt,S)>-1});return x>-1?x:uo(h,y,(W)=>{let z=W.audioGroups,lt=m.filter((it)=>!z||z.indexOf(it.groupId)!==-1);return _i(u,lt,S)>-1})}(e,i.levels,n,o,Mn);if(c===-1)return null;i.nextLoadLevel=c}if(e.channels||e.audioCodec){let o=_i(e,n);if(o>-1)return n[o]}}}return null}setAudioTrack(e){let i=this.tracksInGroup;if(e<0||e>=i.length)return void this.warn("Invalid audio track id: "+e);this.clearTimer(),this.selectDefaultTrack=!1;let n=this.currentTrack,s=i[e],a=s.details&&!s.details.live;if(e===this.trackId&&s===n&&a)return;if(this.log(`Switching to audio-track ${e} "${s.name}" lang:${s.lang} group:${s.groupId} channels:${s.channels}`),this.trackId=e,this.currentTrack=s,this.hls.trigger(b.AUDIO_TRACK_SWITCHING,E({},s)),a)return;let o=this.switchParams(s.url,n==null?void 0:n.details,s.details);this.loadPlaylist(o)}findTrackId(e){let i=this.tracksInGroup;for(let n=0;n<i.length;n++){let s=i[n];if((!this.selectDefaultTrack||s.default)&&(!e||On(e,s,Mn)))return n}if(e){let{name:n,lang:s,assocLang:a,characteristics:o,audioCodec:c,channels:u}=e;for(let h=0;h<i.length;h++)if(On({name:n,lang:s,assocLang:a,characteristics:o,audioCodec:c,channels:u},i[h],Mn))return h;for(let h=0;h<i.length;h++){let m=i[h];if(is(e.attrs,m.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return h}for(let h=0;h<i.length;h++){let m=i[h];if(is(e.attrs,m.attrs,["LANGUAGE"]))return h}}return-1}loadPlaylist(e){let i=this.currentTrack;if(this.shouldLoadPlaylist(i)&&i){super.loadPlaylist();let{id:n,groupId:s,url:a}=i;if(e)try{a=e.addDirectives(a)}catch(o){this.warn("Could not construct new URL with HLS Delivery Directives: "+o)}this.log(`loading audio-track playlist ${n} "${i.name}" lang:${i.lang} group:${s}`),this.clearTimer(),this.hls.trigger(b.AUDIO_TRACK_LOADING,{url:a,id:n,groupId:s,deliveryDirectives:e||null})}}},emeController:rs,cmcdController:class{constructor(e){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=()=>{this.initialized&&(this.starved=!0),this.buffering=!0},this.onPlaying=()=>{this.initialized||(this.initialized=!0),this.buffering=!1},this.applyPlaylistData=(s)=>{try{this.apply(s,{ot:qe.MANIFEST,su:!this.initialized})}catch(a){C.warn("Could not generate manifest CMCD data.",a)}},this.applyFragmentData=(s)=>{try{let a=s.frag,o=this.hls.levels[a.level],c=this.getObjectType(a),u={d:1000*a.duration,ot:c};c!==qe.VIDEO&&c!==qe.AUDIO&&c!=qe.MUXED||(u.br=o.bitrate/1000,u.tb=this.getTopBandwidth(c)/1000,u.bl=this.getBufferLength(c)),this.apply(s,u)}catch(a){C.warn("Could not generate segment CMCD data.",a)}},this.hls=e;let i=this.config=e.config,{cmcd:n}=i;n!=null&&(i.pLoader=this.createPlaylistLoader(),i.fLoader=this.createFragmentLoader(),this.sid=n.sessionId||function(){try{return crypto.randomUUID()}catch(s){try{let a=URL.createObjectURL(new Blob),o=a.toString();return URL.revokeObjectURL(a),o.slice(o.lastIndexOf("/")+1)}catch(a){let o=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(c)=>{let u=(o+16*Math.random())%16|0;return o=Math.floor(o/16),(c=="x"?u:3&u|8).toString(16)})}}}(),this.cid=n.contentId,this.useHeaders=n.useHeaders===!0,this.includeKeys=n.includeKeys,this.registerListeners())}registerListeners(){let e=this.hls;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHED,this.onMediaDetached,this),e.on(b.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){let e=this.hls;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHED,this.onMediaDetached,this),e.off(b.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=null}onMediaAttached(e,i){this.media=i.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}onBufferCreated(e,i){var n,s;this.audioBuffer=(n=i.tracks.audio)==null?void 0:n.buffer,this.videoBuffer=(s=i.tracks.video)==null?void 0:s.buffer}createData(){var e;return{v:1,sf:Jl.HLS,sid:this.sid,cid:this.cid,pr:(e=this.media)==null?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1000}}apply(e,i={}){T(i,this.createData());let n=i.ot===qe.INIT||i.ot===qe.VIDEO||i.ot===qe.MUXED;this.starved&&n&&(i.bs=!0,i.su=!0,this.starved=!1),i.su==null&&(i.su=this.buffering);let{includeKeys:s}=this;s&&(i=Object.keys(i).reduce((a,o)=>(s.includes(o)&&(a[o]=i[o]),a),{})),this.useHeaders?(e.headers||(e.headers={}),kf(e.headers,i)):e.url=Df(e.url,i)}getObjectType(e){let{type:i}=e;return i==="subtitle"?qe.TIMED_TEXT:e.sn==="initSegment"?qe.INIT:i==="audio"?qe.AUDIO:i==="main"?this.hls.audioTracks.length?qe.VIDEO:qe.MUXED:void 0}getTopBandwidth(e){let i,n=0,s=this.hls;if(e===qe.AUDIO)i=s.audioTracks;else{let a=s.maxAutoLevel,o=a>-1?a+1:s.levels.length;i=s.levels.slice(0,o)}for(let a of i)a.bitrate>n&&(n=a.bitrate);return n>0?n:NaN}getBufferLength(e){let i=this.hls.media,n=e===qe.AUDIO?this.audioBuffer:this.videoBuffer;if(!n||!i)return NaN;return 1000*Jt.bufferInfo(n,i.currentTime,this.config.maxBufferHole).len}createPlaylistLoader(){let{pLoader:e}=this.config,i=this.applyPlaylistData,n=e||this.config.loader;return class{constructor(a){this.loader=void 0,this.loader=new n(a)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(a,o,c){i(a),this.loader.load(a,o,c)}}}createFragmentLoader(){let{fLoader:e}=this.config,i=this.applyFragmentData,n=e||this.config.loader;return class{constructor(a){this.loader=void 0,this.loader=new n(a)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(a,o,c){i(a),this.loader.load(a,o,c)}}}},contentSteeringController:class{constructor(e){this.hls=void 0,this.log=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=e,this.log=C.log.bind(C,"[content-steering]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let e=this.hls;e&&(e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.ERROR,this.onError,this))}startLoad(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){let e=1000*this.timeToLoad-(performance.now()-this.updated);if(e>0)return void this.scheduleRefresh(this.uri,e)}this.loadSteeringManifest(this.uri)}}stopLoad(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout()}clearTimeout(){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(e){let i=this.levels;i&&(this.levels=i.filter((n)=>n!==e))}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(e,i){let{contentSteering:n}=i;n!==null&&(this.pathwayId=n.pathwayId,this.uri=n.uri,this.started&&this.startLoad())}onManifestParsed(e,i){this.audioTracks=i.audioTracks,this.subtitleTracks=i.subtitleTracks}onError(e,i){let{errorAction:n}=i;if((n==null?void 0:n.action)===Pi&&n.flags===Zs){let s=this.levels,a=this.pathwayPriority,o=this.pathwayId;if(i.context){let{groupId:c,pathwayId:u,type:h}=i.context;c&&s?o=this.getPathwayForGroupId(c,h,o):u&&(o=u)}o in this.penalizedPathways||(this.penalizedPathways[o]=performance.now()),!a&&s&&(a=s.reduce((c,u)=>(c.indexOf(u.pathwayId)===-1&&c.push(u.pathwayId),c),[])),a&&a.length>1&&(this.updatePathwayPriority(a),n.resolved=this.pathwayId!==o),n.resolved||C.warn(`Could not resolve ${i.details} ("${i.error.message}") with content-steering for Pathway: ${o} levels: ${s?s.length:s} priorities: ${JSON.stringify(a)} penalized: ${JSON.stringify(this.penalizedPathways)}`)}}filterParsedLevels(e){this.levels=e;let i=this.getLevelsForPathway(this.pathwayId);if(i.length===0){let n=e[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${n}"`),i=this.getLevelsForPathway(n),this.pathwayId=n}return i.length!==e.length?(this.log(`Found ${i.length}/${e.length} levels in Pathway "${this.pathwayId}"`),i):e}getLevelsForPathway(e){return this.levels===null?[]:this.levels.filter((i)=>e===i.pathwayId)}updatePathwayPriority(e){let i;this.pathwayPriority=e;let n=this.penalizedPathways,s=performance.now();Object.keys(n).forEach((a)=>{s-n[a]>300000&&delete n[a]});for(let a=0;a<e.length;a++){let o=e[a];if(o in n)continue;if(o===this.pathwayId)return;let c=this.hls.nextLoadLevel,u=this.hls.levels[c];if(i=this.getLevelsForPathway(o),i.length>0){this.log(`Setting Pathway to "${o}"`),this.pathwayId=o,Xs(i),this.hls.trigger(b.LEVELS_UPDATED,{levels:i});let h=this.hls.levels[c];u&&h&&this.levels&&(h.attrs["STABLE-VARIANT-ID"]!==u.attrs["STABLE-VARIANT-ID"]&&h.bitrate!==u.bitrate&&this.log(`Unstable Pathways change from bitrate ${u.bitrate} to ${h.bitrate}`),this.hls.nextLoadLevel=c);break}}}getPathwayForGroupId(e,i,n){let s=this.getLevelsForPathway(n).concat(this.levels||[]);for(let a=0;a<s.length;a++)if(i===ei&&s[a].hasAudioGroup(e)||i===pi&&s[a].hasSubtitleGroup(e))return s[a].pathwayId;return n}clonePathways(e){let i=this.levels;if(!i)return;let n={},s={};e.forEach((a)=>{let{ID:o,"BASE-ID":c,"URI-REPLACEMENT":u}=a;if(i.some((m)=>m.pathwayId===o))return;let h=this.getLevelsForPathway(c).map((m)=>{let y=new Y(m.attrs);y["PATHWAY-ID"]=o;let S=y.AUDIO&&`${y.AUDIO}_clone_${o}`,_=y.SUBTITLES&&`${y.SUBTITLES}_clone_${o}`;S&&(n[y.AUDIO]=S,y.AUDIO=S),_&&(s[y.SUBTITLES]=_,y.SUBTITLES=_);let w=Fu(m.uri,y["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",u),I=new hn({attrs:y,audioCodec:m.audioCodec,bitrate:m.bitrate,height:m.height,name:m.name,url:w,videoCodec:m.videoCodec,width:m.width});if(m.audioGroups)for(let D=1;D<m.audioGroups.length;D++)I.addGroupId("audio",`${m.audioGroups[D]}_clone_${o}`);if(m.subtitleGroups)for(let D=1;D<m.subtitleGroups.length;D++)I.addGroupId("text",`${m.subtitleGroups[D]}_clone_${o}`);return I});i.push(...h),Nu(this.audioTracks,n,u,o),Nu(this.subtitleTracks,s,u,o)})}loadSteeringManifest(e){let i=this.hls.config,n=i.loader,s;this.loader&&this.loader.destroy(),this.loader=new n(i);try{s=new self.URL(e)}catch(m){return this.enabled=!1,void this.log("Failed to parse Steering Manifest URI: "+e)}if(s.protocol!=="data:"){let m=0|(this.hls.bandwidthEstimate||i.abrEwmaDefaultEstimate);s.searchParams.set("_HLS_pathway",this.pathwayId),s.searchParams.set("_HLS_throughput",""+m)}let a={responseType:"json",url:s.href},o=i.steeringManifestLoadPolicy.default,c=o.errorRetry||o.timeoutRetry||{},u={loadPolicy:o,timeout:o.maxLoadTimeMs,maxRetry:c.maxNumRetry||0,retryDelay:c.retryDelayMs||0,maxRetryDelay:c.maxRetryDelayMs||0},h={onSuccess:(m,y,S,_)=>{this.log(`Loaded steering manifest: "${s}"`);let w=m.data;if(w.VERSION!==1)return void this.log(`Steering VERSION ${w.VERSION} not supported!`);this.updated=performance.now(),this.timeToLoad=w.TTL;let{"RELOAD-URI":I,"PATHWAY-CLONES":D,"PATHWAY-PRIORITY":F}=w;if(I)try{this.uri=new self.URL(I,s).href}catch(W){return this.enabled=!1,void this.log("Failed to parse Steering Manifest RELOAD-URI: "+I)}this.scheduleRefresh(this.uri||S.url),D&&this.clonePathways(D);let x={steeringManifest:w,url:s.toString()};this.hls.trigger(b.STEERING_MANIFEST_LOADED,x),F&&this.updatePathwayPriority(F)},onError:(m,y,S,_)=>{if(this.log(`Error loading steering manifest: ${m.code} ${m.text} (${y.url})`),this.stopLoad(),m.code===410)return this.enabled=!1,void this.log(`Steering manifest ${y.url} no longer available`);let w=1000*this.timeToLoad;if(m.code!==429)this.scheduleRefresh(this.uri||y.url,w);else{let I=this.loader;if(typeof(I==null?void 0:I.getResponseHeader)=="function"){let D=I.getResponseHeader("Retry-After");D&&(w=1000*parseFloat(D))}this.log(`Steering manifest ${y.url} rate limited`)}},onTimeout:(m,y,S)=>{this.log(`Timeout loading steering manifest (${y.url})`),this.scheduleRefresh(this.uri||y.url)}};this.log("Requesting steering manifest: "+s),this.loader.load(a,u,h)}scheduleRefresh(e,i=1000*this.timeToLoad){this.clearTimeout(),this.reloadTimer=self.setTimeout(()=>{var n;let s=(n=this.hls)==null?void 0:n.media;!s||s.ended?this.scheduleRefresh(e,1000*this.timeToLoad):this.loadSteeringManifest(e)},i)}}});function rc(t){return t&&typeof t=="object"?Array.isArray(t)?t.map(rc):Object.keys(t).reduce((e,i)=>(e[i]=rc(t[i]),e),{}):t}function Ff(t){let e=t.loader;if(e!==nc&&e!==ic)C.log("[config]: Custom loader detected, cannot enable progressive streaming"),t.progressive=!1;else(function(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(i){}return!1})()&&(t.loader=nc,t.progressive=!0,t.enableSoftwareAES=!0,C.log("[config]: Progressive streaming enabled, using FetchLoader"))}let sc;class Uu extends Ae{constructor(t,e){super(t,"[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=e,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(b.MANIFEST_LOADING,this.onManifestLoading,this),t.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),t.on(b.LEVEL_LOADED,this.onLevelLoaded,this),t.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(b.FRAG_BUFFERED,this.onFragBuffered,this),t.on(b.ERROR,this.onError,this)}_unregisterListeners(){let{hls:t}=this;t.off(b.MANIFEST_LOADING,this.onManifestLoading,this),t.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),t.off(b.LEVEL_LOADED,this.onLevelLoaded,this),t.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(b.FRAG_BUFFERED,this.onFragBuffered,this),t.off(b.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}stopLoad(){this._levels.forEach((t)=>{t.loadError=0,t.fragmentError=0}),super.stopLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1}onManifestLoading(t,e){this.resetLevels()}onManifestLoaded(t,e){let i=this.hls.config.preferManagedMediaSource,n=[],s={},a={},o=!1,c=!1,u=!1;e.levels.forEach((h)=>{var m,y;let S=h.attrs,{audioCodec:_,videoCodec:w}=h;((m=_)==null?void 0:m.indexOf("mp4a.40.34"))!==-1&&(sc||(sc=/chrome|firefox/i.test(navigator.userAgent)),sc&&(h.audioCodec=_=void 0)),_&&(h.audioCodec=_=Zn(_,i)),((y=w)==null?void 0:y.indexOf("avc1"))===0&&(w=h.videoCodec=function(Z){let J=Z.split(".");if(J.length>2){let kt=J.shift()+".";return kt+=parseInt(J.shift()).toString(16),kt+=("000"+parseInt(J.shift()).toString(16)).slice(-4),kt}return Z}(w));let{width:I,height:D,unknownCodecs:F}=h;if(o||(o=!(!I||!D)),c||(c=!!w),u||(u=!!_),F!=null&&F.length||_&&!Cr(_,"audio",i)||w&&!Cr(w,"video",i))return;let{CODECS:x,"FRAME-RATE":W,"HDCP-LEVEL":z,"PATHWAY-ID":lt,RESOLUTION:it,"VIDEO-RANGE":ft}=S,mt=`${(lt||".")+"-"}${h.bitrate}-${it}-${W}-${x}-${ft}-${z}`;if(s[mt])if(s[mt].uri===h.url||h.attrs["PATHWAY-ID"])s[mt].addGroupId("audio",S.AUDIO),s[mt].addGroupId("text",S.SUBTITLES);else{let Z=a[mt]+=1;h.attrs["PATHWAY-ID"]=Array(Z+1).join(".");let J=new hn(h);s[mt]=J,n.push(J)}else{let Z=new hn(h);s[mt]=Z,a[mt]=1,n.push(Z)}}),this.filterAndSortMediaOptions(n,e,o,c,u)}filterAndSortMediaOptions(t,e,i,n,s){let a=[],o=[],c=t;if((i||n)&&s&&(c=c.filter(({videoCodec:_,videoRange:w,width:I,height:D})=>{return(!!_||!(!I||!D))&&(!!(F=w)&&Ur.indexOf(F)>-1);var F})),c.length===0)return void Promise.resolve().then(()=>{if(this.hls){e.levels.length&&this.warn("One or more CODECS in variant not supported: "+JSON.stringify(e.levels[0].attrs));let _=Error("no level with compatible codecs found in manifest");this.hls.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:e.url,error:_,reason:_.message})}});if(e.audioTracks){let{preferManagedMediaSource:_}=this.hls.config;a=e.audioTracks.filter((w)=>!w.audioCodec||Cr(w.audioCodec,"audio",_)),Bu(a)}e.subtitles&&(o=e.subtitles,Bu(o));let u=c.slice(0);c.sort((_,w)=>{if(_.attrs["HDCP-LEVEL"]!==w.attrs["HDCP-LEVEL"])return(_.attrs["HDCP-LEVEL"]||"")>(w.attrs["HDCP-LEVEL"]||"")?1:-1;if(i&&_.height!==w.height)return _.height-w.height;if(_.frameRate!==w.frameRate)return _.frameRate-w.frameRate;if(_.videoRange!==w.videoRange)return Ur.indexOf(_.videoRange)-Ur.indexOf(w.videoRange);if(_.videoCodec!==w.videoCodec){let I=Ee(_.videoCodec),D=Ee(w.videoCodec);if(I!==D)return D-I}if(_.uri===w.uri&&_.codecSet!==w.codecSet){let I=Qn(_.codecSet),D=Qn(w.codecSet);if(I!==D)return D-I}return _.averageBitrate!==w.averageBitrate?_.averageBitrate-w.averageBitrate:0});let h=u[0];if(this.steering&&(c=this.steering.filterParsedLevels(c),c.length!==u.length)){for(let _=0;_<u.length;_++)if(u[_].pathwayId===c[0].pathwayId){h=u[_];break}}this._levels=c;for(let _=0;_<c.length;_++)if(c[_]===h){var m;this._firstLevel=_;let w=h.bitrate,I=this.hls.bandwidthEstimate;if(this.log(`manifest loaded, ${c.length} level(s) found, first bitrate: ${w}`),((m=this.hls.userConfig)==null?void 0:m.abrEwmaDefaultEstimate)===void 0){let D=Math.min(w,this.hls.config.abrEwmaDefaultEstimateMax);D>I&&I===xu.abrEwmaDefaultEstimate&&(this.hls.bandwidthEstimate=D)}break}let y=s&&!n,S={levels:c,audioTracks:a,subtitleTracks:o,sessionData:e.sessionData,sessionKeys:e.sessionKeys,firstLevel:this._firstLevel,stats:e.stats,audio:s,video:n,altAudio:!y&&a.some((_)=>!!_.url)};this.hls.trigger(b.MANIFEST_PARSED,S),(this.hls.config.autoStartLoad||this.hls.forceStartLoad)&&this.hls.startLoad(this.hls.config.startPosition)}get levels(){return this._levels.length===0?null:this._levels}get level(){return this.currentLevelIndex}set level(t){let e=this._levels;if(e.length===0)return;if(t<0||t>=e.length){let h=Error("invalid level idx"),m=t<0;if(this.hls.trigger(b.ERROR,{type:G.OTHER_ERROR,details:N.LEVEL_SWITCH_ERROR,level:t,fatal:m,error:h,reason:h.message}),m)return;t=Math.min(t,e.length-1)}let i=this.currentLevelIndex,n=this.currentLevel,s=n?n.attrs["PATHWAY-ID"]:void 0,a=e[t],o=a.attrs["PATHWAY-ID"];if(this.currentLevelIndex=t,this.currentLevel=a,i===t&&a.details&&n&&s===o)return;this.log(`Switching to level ${t} (${a.height?a.height+"p ":""}${a.videoRange?a.videoRange+" ":""}${a.codecSet?a.codecSet+" ":""}@${a.bitrate})${o?" with Pathway "+o:""} from level ${i}${s?" with Pathway "+s:""}`);let c={level:t,attrs:a.attrs,details:a.details,bitrate:a.bitrate,averageBitrate:a.averageBitrate,maxBitrate:a.maxBitrate,realBitrate:a.realBitrate,width:a.width,height:a.height,codecSet:a.codecSet,audioCodec:a.audioCodec,videoCodec:a.videoCodec,audioGroups:a.audioGroups,subtitleGroups:a.subtitleGroups,loaded:a.loaded,loadError:a.loadError,fragmentError:a.fragmentError,name:a.name,id:a.id,uri:a.uri,url:a.url,urlId:0,audioGroupIds:a.audioGroupIds,textGroupIds:a.textGroupIds};this.hls.trigger(b.LEVEL_SWITCHING,c);let u=a.details;if(!u||u.live){let h=this.switchParams(a.uri,n==null?void 0:n.details,u);this.loadPlaylist(h)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(t){this.manualLevelIndex=t,this._startLevel===void 0&&(this._startLevel=t),t!==-1&&(this.level=t)}get firstLevel(){return this._firstLevel}set firstLevel(t){this._firstLevel=t}get startLevel(){if(this._startLevel===void 0){let t=this.hls.config.startLevel;return t!==void 0?t:this.hls.firstAutoLevel}return this._startLevel}set startLevel(t){this._startLevel=t}onError(t,e){!e.fatal&&e.context&&e.context.type===Fi&&e.context.level===this.level&&this.checkRetry(e)}onFragBuffered(t,{frag:e}){if(e!==void 0&&e.type===ie){let i=e.elementaryStreams;if(!Object.keys(i).some((s)=>!!i[s]))return;let n=this._levels[e.level];n!=null&&n.loadError&&(this.log(`Resetting level error count of ${n.loadError} on frag buffered`),n.loadError=0)}}onLevelLoaded(t,e){var i;let{level:n,details:s}=e,a=this._levels[n];var o;if(!a)return this.warn("Invalid level index "+n),void((o=e.deliveryDirectives)!=null&&o.skip&&(s.deltaUpdateFailed=!0));n===this.currentLevelIndex?(a.fragmentError===0&&(a.loadError=0),this.playlistLoaded(n,e,a.details)):(i=e.deliveryDirectives)!=null&&i.skip&&(s.deltaUpdateFailed=!0)}loadPlaylist(t){super.loadPlaylist();let e=this.currentLevelIndex,i=this.currentLevel;if(i&&this.shouldLoadPlaylist(i)){let n=i.uri;if(t)try{n=t.addDirectives(n)}catch(a){this.warn("Could not construct new URL with HLS Delivery Directives: "+a)}let s=i.attrs["PATHWAY-ID"];this.log(`Loading level index ${e}${(t==null?void 0:t.msn)!==void 0?" at sn "+t.msn+" part "+t.part:""} with${s?" Pathway "+s:""} ${n}`),this.clearTimer(),this.hls.trigger(b.LEVEL_LOADING,{url:n,level:e,pathwayId:i.attrs["PATHWAY-ID"],id:0,deliveryDirectives:t||null})}}get nextLoadLevel(){return this.manualLevelIndex!==-1?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(t){this.level=t,this.manualLevelIndex===-1&&(this.hls.nextAutoLevel=t)}removeLevel(t){var e;let i=this._levels.filter((n,s)=>s!==t||(this.steering&&this.steering.removeLevel(n),n===this.currentLevel&&(this.currentLevel=null,this.currentLevelIndex=-1,n.details&&n.details.fragments.forEach((a)=>a.level=-1)),!1));Xs(i),this._levels=i,this.currentLevelIndex>-1&&(e=this.currentLevel)!=null&&e.details&&(this.currentLevelIndex=this.currentLevel.details.fragments[0].level),this.hls.trigger(b.LEVELS_UPDATED,{levels:i})}onLevelsUpdated(t,{levels:e}){this._levels=e}checkMaxAutoUpdated(){let{autoLevelCapping:t,maxAutoLevel:e,maxHdcpLevel:i}=this.hls;this._maxAutoLevel!==e&&(this._maxAutoLevel=e,this.hls.trigger(b.MAX_AUTO_LEVEL_UPDATED,{autoLevelCapping:t,levels:this.levels,maxAutoLevel:e,minAutoLevel:this.hls.minAutoLevel,maxHdcpLevel:i}))}}function Bu(t){let e={};t.forEach((i)=>{let n=i.groupId||"";i.id=e[n]=e[n]||0,e[n]++})}class $u{constructor(t){this.config=void 0,this.keyUriToKeyInfo={},this.emeController=null,this.config=t}abort(t){for(let i in this.keyUriToKeyInfo){let n=this.keyUriToKeyInfo[i].loader;if(n){var e;if(t&&t!==((e=n.context)==null?void 0:e.frag.type))return;n.abort()}}}detach(){for(let t in this.keyUriToKeyInfo){let e=this.keyUriToKeyInfo[t];(e.mediaKeySessionContext||e.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[t]}}destroy(){this.detach();for(let t in this.keyUriToKeyInfo){let e=this.keyUriToKeyInfo[t].loader;e&&e.destroy()}this.keyUriToKeyInfo={}}createKeyLoadError(t,e=N.KEY_LOAD_ERROR,i,n,s){return new Ai({type:G.NETWORK_ERROR,details:e,fatal:!1,frag:t,response:s,error:i,networkDetails:n})}loadClear(t,e){if(this.emeController&&this.config.emeEnabled){let{sn:i,cc:n}=t;for(let s=0;s<e.length;s++){let a=e[s];if(n<=a.cc&&(i==="initSegment"||a.sn==="initSegment"||i<a.sn)){this.emeController.selectKeySystemFormat(a).then((o)=>{a.setKeyFormat(o)});break}}}}load(t){return!t.decryptdata&&t.encrypted&&this.emeController?this.emeController.selectKeySystemFormat(t).then((e)=>this.loadInternal(t,e)):this.loadInternal(t)}loadInternal(t,e){var i,n;e&&t.setKeyFormat(e);let s=t.decryptdata;if(!s){let u=Error(e?"Expected frag.decryptdata to be defined after setting format "+e:"Missing decryption data on fragment in onKeyLoading");return Promise.reject(this.createKeyLoadError(t,N.KEY_LOAD_ERROR,u))}let a=s.uri;if(!a)return Promise.reject(this.createKeyLoadError(t,N.KEY_LOAD_ERROR,Error(`Invalid key URI: "${a}"`)));let o=this.keyUriToKeyInfo[a];if((i=o)!=null&&i.decryptdata.key)return s.key=o.decryptdata.key,Promise.resolve({frag:t,keyInfo:o});var c;if((n=o)!=null&&n.keyLoadPromise)switch((c=o.mediaKeySessionContext)==null?void 0:c.keyStatus){case void 0:case"status-pending":case"usable":case"usable-in-future":return o.keyLoadPromise.then((u)=>(s.key=u.keyInfo.decryptdata.key,{frag:t,keyInfo:o}))}switch(o=this.keyUriToKeyInfo[a]={decryptdata:s,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},s.method){case"ISO-23001-7":case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return s.keyFormat==="identity"?this.loadKeyHTTP(o,t):this.loadKeyEME(o,t);case"AES-128":return this.loadKeyHTTP(o,t);default:return Promise.reject(this.createKeyLoadError(t,N.KEY_LOAD_ERROR,Error(`Key supplied with unsupported METHOD: "${s.method}"`)))}}loadKeyEME(t,e){let i={frag:e,keyInfo:t};if(this.emeController&&this.config.emeEnabled){let n=this.emeController.loadKey(i);if(n)return(t.keyLoadPromise=n.then((s)=>(t.mediaKeySessionContext=s,i))).catch((s)=>{throw t.keyLoadPromise=null,s})}return Promise.resolve(i)}loadKeyHTTP(t,e){let i=this.config,n=new i.loader(i);return e.keyLoader=t.loader=n,t.keyLoadPromise=new Promise((s,a)=>{let o={keyInfo:t,frag:e,responseType:"arraybuffer",url:t.decryptdata.uri},c=i.keyLoadPolicy.default,u={loadPolicy:c,timeout:c.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},h={onSuccess:(m,y,S,_)=>{let{frag:w,keyInfo:I,url:D}=S;if(!w.decryptdata||I!==this.keyUriToKeyInfo[D])return a(this.createKeyLoadError(w,N.KEY_LOAD_ERROR,Error("after key load, decryptdata unset or changed"),_));I.decryptdata.key=w.decryptdata.key=new Uint8Array(m.data),w.keyLoader=null,I.loader=null,s({frag:w,keyInfo:I})},onError:(m,y,S,_)=>{this.resetLoader(y),a(this.createKeyLoadError(e,N.KEY_LOAD_ERROR,Error(`HTTP Error ${m.code} loading key ${m.text}`),S,E({url:o.url,data:void 0},m)))},onTimeout:(m,y,S)=>{this.resetLoader(y),a(this.createKeyLoadError(e,N.KEY_LOAD_TIMEOUT,Error("key loading timed out"),S))},onAbort:(m,y,S)=>{this.resetLoader(y),a(this.createKeyLoadError(e,N.INTERNAL_ABORTED,Error("key loading aborted"),S))}};n.load(o,u,h)})}resetLoader(t){let{frag:e,keyInfo:i,url:n}=t,s=i.loader;e.keyLoader===s&&(e.keyLoader=null,i.loader=null),delete this.keyUriToKeyInfo[n],s&&s.destroy()}}function Gu(){return self.SourceBuffer||self.WebKitSourceBuffer}function Hu(){if(!Ni())return!1;let t=Gu();return!t||t.prototype&&typeof t.prototype.appendBuffer=="function"&&typeof t.prototype.remove=="function"}class Ku{constructor(t,e,i,n){this.config=void 0,this.media=null,this.fragmentTracker=void 0,this.hls=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.config=t,this.media=e,this.fragmentTracker=i,this.hls=n}destroy(){this.media=null,this.hls=this.fragmentTracker=null}poll(t,e){let{config:i,media:n,stalled:s}=this;if(n===null)return;let{currentTime:a,seeking:o}=n,c=this.seeking&&!o,u=!this.seeking&&o;if(this.seeking=o,a!==t){if(this.moved=!0,o||(this.nudgeRetry=0),s!==null){if(this.stallReported){let I=self.performance.now()-s;C.warn(`playback not stuck anymore @${a}, after ${Math.round(I)}ms`),this.stallReported=!1}this.stalled=null}return}if(u||c)return void(this.stalled=null);if(n.paused&&!o||n.ended||n.playbackRate===0||!Jt.getBuffered(n).length)return void(this.nudgeRetry=0);let h=Jt.bufferInfo(n,a,0),m=h.nextStart||0;if(o){let I=h.len>2,D=!m||e&&e.start<=a||m-a>2&&!this.fragmentTracker.getPartialFragment(a);if(I||D)return;this.moved=!1}if(!this.moved&&this.stalled!==null){var y;if(!(h.len>0)&&!m)return;let I=Math.max(m,h.start||0)-a,D=this.hls.levels?this.hls.levels[this.hls.currentLevel]:null,F=(D==null||(y=D.details)==null?void 0:y.live)?2*D.details.targetduration:2,x=this.fragmentTracker.getPartialFragment(a);if(I>0&&(I<=F||x))return void(n.paused||this._trySkipBufferHole(x))}let S=self.performance.now();if(s===null)return void(this.stalled=S);let _=S-s;if(!o&&_>=250&&(this._reportStall(h),!this.media))return;let w=Jt.bufferInfo(n,a,i.maxBufferHole);this._tryFixBufferStall(w,_)}_tryFixBufferStall(t,e){let{config:i,fragmentTracker:n,media:s}=this;if(s===null)return;let a=s.currentTime,o=n.getPartialFragment(a);if(o){if(this._trySkipBufferHole(o)||!this.media)return}(t.len>i.maxBufferHole||t.nextStart&&t.nextStart-a<i.maxBufferHole)&&e>1000*i.highBufferWatchdogPeriod&&(C.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())}_reportStall(t){let{hls:e,media:i,stallReported:n}=this;if(!n&&i){this.stallReported=!0;let s=Error(`Playback stalling at @${i.currentTime} due to low buffer (${JSON.stringify(t)})`);C.warn(s.message),e.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.BUFFER_STALLED_ERROR,fatal:!1,error:s,buffer:t.len})}}_trySkipBufferHole(t){let{config:e,hls:i,media:n}=this;if(n===null)return 0;let s=n.currentTime,a=Jt.bufferInfo(n,s,0),o=s<a.start?a.start:a.nextStart;if(o){let c=a.len<=e.maxBufferHole,u=a.len>0&&a.len<1&&n.readyState<3,h=o-s;if(h>0&&(c||u)){if(h>e.maxBufferHole){let{fragmentTracker:y}=this,S=!1;if(s===0){let _=y.getAppendedFrag(0,ie);_&&o<_.end&&(S=!0)}if(!S){let _=t||y.getAppendedFrag(s,ie);if(_){let w=!1,I=_.end;for(;I<o;){let D=y.getPartialFragment(I);if(!D){w=!0;break}I+=D.duration}if(w)return 0}}}let m=Math.max(o+0.05,s+0.1);if(C.warn(`skipping hole, adjusting currentTime from ${s} to ${m}`),this.moved=!0,this.stalled=null,n.currentTime=m,t&&!t.gap){let y=Error(`fragment loaded with buffer holes, seeking from ${s} to ${m}`);i.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:y,reason:y.message,frag:t})}return m}}return 0}_tryNudgeBuffer(){let{config:t,hls:e,media:i,nudgeRetry:n}=this;if(i===null)return;let s=i.currentTime;if(this.nudgeRetry++,n<t.nudgeMaxRetry){let a=s+(n+1)*t.nudgeOffset,o=Error(`Nudging 'currentTime' from ${s} to ${a}`);C.warn(o.message),i.currentTime=a,e.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.BUFFER_NUDGE_ON_STALL,error:o,fatal:!1})}else{let a=Error(`Playhead still not moving while enough data buffered @${s} after ${t.nudgeMaxRetry} nudges`);C.error(a.message),e.trigger(b.ERROR,{type:G.MEDIA_ERROR,details:N.BUFFER_STALLED_ERROR,error:a,fatal:!0})}}}class Vu extends dr{constructor(t,e,i){super(t,e,i,"[stream-controller]",ie),this.audioCodecSwap=!1,this.gapController=null,this.level=-1,this._forceStartLoad=!1,this.altAudio=!1,this.audioOnly=!1,this.fragPlaying=null,this.onvplaying=null,this.onvseeked=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(b.MANIFEST_LOADING,this.onManifestLoading,this),t.on(b.MANIFEST_PARSED,this.onManifestParsed,this),t.on(b.LEVEL_LOADING,this.onLevelLoading,this),t.on(b.LEVEL_LOADED,this.onLevelLoaded,this),t.on(b.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.on(b.ERROR,this.onError,this),t.on(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.on(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.on(b.BUFFER_CREATED,this.onBufferCreated,this),t.on(b.BUFFER_FLUSHED,this.onBufferFlushed,this),t.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:t}=this;t.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(b.MANIFEST_LOADING,this.onManifestLoading,this),t.off(b.MANIFEST_PARSED,this.onManifestParsed,this),t.off(b.LEVEL_LOADED,this.onLevelLoaded,this),t.off(b.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.off(b.ERROR,this.onError,this),t.off(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.off(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.off(b.BUFFER_CREATED,this.onBufferCreated,this),t.off(b.BUFFER_FLUSHED,this.onBufferFlushed,this),t.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying()}startLoad(t){if(this.levels){let{lastCurrentTime:e,hls:i}=this;if(this.stopLoad(),this.setInterval(100),this.level=-1,!this.startFragRequested){let n=i.startLevel;n===-1&&(i.config.testBandwidth&&this.levels.length>1?(n=0,this.bitrateTest=!0):n=i.firstAutoLevel),i.nextLoadLevel=n,this.level=i.loadLevel,this.loadedmetadata=!1}e>0&&t===-1&&(this.log("Override startPosition with lastCurrentTime @"+e.toFixed(3)),t=e),this.state=Zt,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=t,this.tick()}else this._forceStartLoad=!0,this.state=oi}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case fe:{let{levels:e,level:i}=this,n=e==null?void 0:e[i],s=n==null?void 0:n.details;if(s&&(!s.live||this.levelLastLoaded===n)){if(this.waitForCdnTuneIn(s))break;this.state=Zt;break}if(this.hls.nextLoadLevel!==this.level){this.state=Zt;break}break}case Pn:{var t;let e=self.performance.now(),i=this.retryDate;if(!i||e>=i||(t=this.media)!=null&&t.seeking){let{levels:n,level:s}=this,a=n==null?void 0:n[s];this.resetStartWhenNotLoaded(a||null),this.state=Zt}}}this.state===Zt&&this.doTickIdle(),this.onTickEnd()}onTickEnd(){super.onTickEnd(),this.checkBuffer(),this.checkFragmentChanged()}doTickIdle(){let{hls:t,levelLastLoaded:e,levels:i,media:n}=this;if(e===null||!n&&(this.startFragRequested||!t.config.startFragPrefetch))return;if(this.altAudio&&this.audioOnly)return;let s=t.nextLoadLevel;if(i==null||!i[s])return;let a=i[s],o=this.getMainFwdBufferInfo();if(o===null)return;let c=this.getLevelDetails();if(c&&this._streamEnded(o,c)){let w={};return this.altAudio&&(w.type="video"),this.hls.trigger(b.BUFFER_EOS,w),void(this.state=ur)}t.loadLevel!==s&&t.manualLevel===-1&&this.log(`Adapting to level ${s} from level ${this.level}`),this.level=t.nextLoadLevel=s;let u=a.details;if(!u||this.state===fe||u.live&&this.levelLastLoaded!==a)return this.level=s,void(this.state=fe);let h=o.len,m=this.getMaxBufferLength(a.maxBitrate);if(h>=m)return;this.backtrackFragment&&this.backtrackFragment.start>o.end&&(this.backtrackFragment=null);let y=this.backtrackFragment?this.backtrackFragment.start:o.end,S=this.getNextFragment(y,u);if(this.couldBacktrack&&!this.fragPrevious&&S&&S.sn!=="initSegment"&&this.fragmentTracker.getState(S)!==de){var _;let w=((_=this.backtrackFragment)!=null?_:S).sn-u.startSN,I=u.fragments[w-1];I&&S.cc===I.cc&&(S=I,this.fragmentTracker.removeFragment(I))}else this.backtrackFragment&&o.len&&(this.backtrackFragment=null);if(S&&this.isLoopLoading(S,y)){if(!S.gap){let w=this.audioOnly&&!this.altAudio?ot:St,I=(w===St?this.videoBuffer:this.mediaBuffer)||this.media;I&&this.afterBufferFlushed(I,w,ie)}S=this.getNextFragmentLoopLoading(S,u,o,ie,m)}S&&(!S.initSegment||S.initSegment.data||this.bitrateTest||(S=S.initSegment),this.loadFragment(S,a,y))}loadFragment(t,e,i){let n=this.fragmentTracker.getState(t);this.fragCurrent=t,n===ze||n===vn?t.sn==="initSegment"?this._loadInitSegment(t,e):this.bitrateTest?(this.log(`Fragment ${t.sn} of level ${t.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(t,e)):(this.startFragRequested=!0,super.loadFragment(t,e,i)):this.clearTrackerIfNeeded(t)}getBufferedFrag(t){return this.fragmentTracker.getBufferedFrag(t,ie)}followingBufferedFrag(t){return t?this.getBufferedFrag(t.end+0.5):null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}nextLevelSwitch(){let{levels:t,media:e}=this;if(e!=null&&e.readyState){let i,n=this.getAppendedFrag(e.currentTime);n&&n.start>1&&this.flushMainBuffer(0,n.start-1);let s=this.getLevelDetails();if(s!=null&&s.live){let o=this.getMainFwdBufferInfo();if(!o||o.len<2*s.targetduration)return}if(!e.paused&&t){let o=t[this.hls.nextLoadLevel],c=this.fragLastKbps;i=c&&this.fragCurrent?this.fragCurrent.duration*o.maxBitrate/(1000*c)+1:0}else i=0;let a=this.getBufferedFrag(e.currentTime+i);if(a){let o=this.followingBufferedFrag(a);if(o){this.abortCurrentFrag();let c=o.maxStartPTS?o.maxStartPTS:o.start,u=o.duration,h=Math.max(a.end,c+Math.min(Math.max(u-this.config.maxFragLookUpTolerance,u*(this.couldBacktrack?0.5:0.125)),u*(this.couldBacktrack?0.75:0.25)));this.flushMainBuffer(h,Number.POSITIVE_INFINITY)}}}}abortCurrentFrag(){let t=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,t&&(t.abortRequests(),this.fragmentTracker.removeFragment(t)),this.state){case la:case Fn:case Pn:case xi:case cr:this.state=Zt}this.nextLoadPosition=this.getLoadPosition()}flushMainBuffer(t,e){super.flushMainBuffer(t,e,this.altAudio?"video":null)}onMediaAttached(t,e){super.onMediaAttached(t,e);let i=e.media;this.onvplaying=this.onMediaPlaying.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),i.addEventListener("playing",this.onvplaying),i.addEventListener("seeked",this.onvseeked),this.gapController=new Ku(this.config,i,this.fragmentTracker,this.hls)}onMediaDetaching(){let{media:t}=this;t&&this.onvplaying&&this.onvseeked&&(t.removeEventListener("playing",this.onvplaying),t.removeEventListener("seeked",this.onvseeked),this.onvplaying=this.onvseeked=null,this.videoBuffer=null),this.fragPlaying=null,this.gapController&&(this.gapController.destroy(),this.gapController=null),super.onMediaDetaching()}onMediaPlaying(){this.tick()}onMediaSeeked(){let t=this.media,e=t?t.currentTime:null;L(e)&&this.log("Media seeked to "+e.toFixed(3));let i=this.getMainFwdBufferInfo();i!==null&&i.len!==0?this.tick():this.warn(`Main forward buffer length on "seeked" event ${i?i.len:"empty"})`)}onManifestLoading(){this.log("Trigger BUFFER_RESET"),this.hls.trigger(b.BUFFER_RESET,void 0),this.fragmentTracker.removeAllFragments(),this.couldBacktrack=!1,this.startPosition=this.lastCurrentTime=this.fragLastKbps=0,this.levels=this.fragPlaying=this.backtrackFragment=this.levelLastLoaded=null,this.altAudio=this.audioOnly=this.startFragRequested=!1}onManifestParsed(t,e){let i=!1,n=!1;e.levels.forEach((s)=>{let a=s.audioCodec;a&&(i=i||a.indexOf("mp4a.40.2")!==-1,n=n||a.indexOf("mp4a.40.5")!==-1)}),this.audioCodecSwitch=i&&n&&!function(){var s;let a=Gu();return typeof(a==null||(s=a.prototype)==null?void 0:s.changeType)=="function"}(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=e.levels,this.startFragRequested=!1}onLevelLoading(t,e){let{levels:i}=this;if(!i||this.state!==Zt)return;let n=i[e.level];(!n.details||n.details.live&&this.levelLastLoaded!==n||this.waitForCdnTuneIn(n.details))&&(this.state=fe)}onLevelLoaded(t,e){var i;let{levels:n}=this,s=e.level,a=e.details,o=a.totalduration;if(!n)return void this.warn("Levels were reset while loading level "+s);this.log(`Level ${s} loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""}, cc [${a.startCC}, ${a.endCC}] duration:${o}`);let c=n[s],u=this.fragCurrent;!u||this.state!==Fn&&this.state!==Pn||u.level!==e.level&&u.loader&&this.abortCurrentFrag();let h=0;if(a.live||(i=c.details)!=null&&i.live){var m;if(this.checkLiveUpdate(a),a.deltaUpdateFailed)return;h=this.alignPlaylists(a,c.details,(m=this.levelLastLoaded)==null?void 0:m.details)}if(c.details=a,this.levelLastLoaded=c,this.hls.trigger(b.LEVEL_UPDATED,{details:a,level:s}),this.state===fe){if(this.waitForCdnTuneIn(a))return;this.state=Zt}this.startFragRequested?a.live&&this.synchronizeToLiveEdge(a):this.setStartPosition(a,h),this.tick()}_handleFragmentLoadProgress(t){var e;let{frag:i,part:n,payload:s}=t,{levels:a}=this;if(!a)return void this.warn(`Levels were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);let o=a[i.level],c=o.details;if(!c)return this.warn(`Dropping fragment ${i.sn} of level ${i.level} after level details were reset`),void this.fragmentTracker.removeFragment(i);let u=o.videoCodec,h=c.PTSKnown||!c.live,m=(e=i.initSegment)==null?void 0:e.data,y=this._getAudioCodec(o),S=this.transmuxer=this.transmuxer||new xl(this.hls,ie,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),_=n?n.index:-1,w=_!==-1,I=new Nn(i.level,i.sn,i.stats.chunkCount,s.byteLength,_,w),D=this.initPTS[i.cc];S.push(s,m,y,u,i,n,c.totalduration,h,I,D)}onAudioTrackSwitching(t,e){let i=this.altAudio;if(!e.url){if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;let s=this.fragCurrent;s&&(this.log("Switching to main audio track, cancel main fragment load"),s.abortRequests(),this.fragmentTracker.removeFragment(s)),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();let n=this.hls;i&&(n.trigger(b.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null}),this.fragmentTracker.removeAllFragments()),n.trigger(b.AUDIO_TRACK_SWITCHED,e)}}onAudioTrackSwitched(t,e){let i=e.id,n=!!this.hls.audioTracks[i].url;if(n){let s=this.videoBuffer;s&&this.mediaBuffer!==s&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=s)}this.altAudio=n,this.tick()}onBufferCreated(t,e){let i=e.tracks,n,s,a=!1;for(let o in i){let c=i[o];if(c.id==="main"){if(s=o,n=c,o==="video"){let u=i[o];u&&(this.videoBuffer=u.buffer)}}else a=!0}a&&n?(this.log(`Alternate track found, use ${s}.buffered to schedule main fragment loading`),this.mediaBuffer=n.buffer):this.mediaBuffer=this.media}onFragBuffered(t,e){let{frag:i,part:n}=e;if(i&&i.type!==ie)return;if(this.fragContextChanged(i))return this.warn(`Fragment ${i.sn}${n?" p: "+n.index:""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}`),void(this.state===cr&&(this.state=Zt));let s=n?n.stats:i.stats;this.fragLastKbps=Math.round(8*s.total/(s.buffering.end-s.loading.first)),i.sn!=="initSegment"&&(this.fragPrevious=i),this.fragBufferedComplete(i,n)}onError(t,e){var i;if(e.fatal)this.state=Un;else switch(e.details){case N.FRAG_GAP:case N.FRAG_PARSING_ERROR:case N.FRAG_DECRYPT_ERROR:case N.FRAG_LOAD_ERROR:case N.FRAG_LOAD_TIMEOUT:case N.KEY_LOAD_ERROR:case N.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(ie,e);break;case N.LEVEL_LOAD_ERROR:case N.LEVEL_LOAD_TIMEOUT:case N.LEVEL_PARSING_ERROR:e.levelRetry||this.state!==fe||((i=e.context)==null?void 0:i.type)!==Fi||(this.state=Zt);break;case N.BUFFER_APPEND_ERROR:case N.BUFFER_FULL_ERROR:if(!e.parent||e.parent!=="main")return;if(e.details===N.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(e)&&this.flushMainBuffer(0,Number.POSITIVE_INFINITY);break;case N.INTERNAL_EXCEPTION:this.recoverWorkerError(e)}}checkBuffer(){let{media:t,gapController:e}=this;if(t&&e&&t.readyState){if(this.loadedmetadata||!Jt.getBuffered(t).length){let i=this.state!==Zt?this.fragCurrent:null;e.poll(this.lastCurrentTime,i)}this.lastCurrentTime=t.currentTime}}onFragLoadEmergencyAborted(){this.state=Zt,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tickImmediate()}onBufferFlushed(t,{type:e}){if(e!==ot||this.audioOnly&&!this.altAudio){let i=(e===St?this.videoBuffer:this.mediaBuffer)||this.media;this.afterBufferFlushed(i,e,ie),this.tick()}}onLevelsUpdated(t,e){this.level>-1&&this.fragCurrent&&(this.level=this.fragCurrent.level),this.levels=e.levels}swapAudioCodec(){this.audioCodecSwap=!this.audioCodecSwap}seekToStartPos(){let{media:t}=this;if(!t)return;let e=t.currentTime,i=this.startPosition;if(i>=0&&e<i){if(t.seeking)return void this.log(`could not seek to ${i}, already seeking at ${e}`);let n=Jt.getBuffered(t),s=(n.length?n.start(0):0)-i;s>0&&(s<this.config.maxBufferHole||s<this.config.maxFragLookUpTolerance)&&(this.log(`adjusting start position by ${s} to match buffer start`),i+=s,this.startPosition=i),this.log(`seek to target start position ${i} from current time ${e}`),t.currentTime=i}}_getAudioCodec(t){let e=this.config.defaultAudioCodec||t.audioCodec;return this.audioCodecSwap&&e&&(this.log("Swapping audio codec"),e=e.indexOf("mp4a.40.5")!==-1?"mp4a.40.2":"mp4a.40.5"),e}_loadBitrateTestFrag(t,e){t.bitrateTest=!0,this._doFragLoad(t,e).then((i)=>{let{hls:n}=this;if(!i||this.fragContextChanged(t))return;e.fragmentError=0,this.state=Zt,this.startFragRequested=!1,this.bitrateTest=!1;let s=t.stats;s.parsing.start=s.parsing.end=s.buffering.start=s.buffering.end=self.performance.now(),n.trigger(b.FRAG_LOADED,i),t.bitrateTest=!1})}_handleTransmuxComplete(t){var e;let i="main",{hls:n}=this,{remuxResult:s,chunkMeta:a}=t,o=this.getCurrentContext(a);if(!o)return void this.resetWhenMissingContext(a);let{frag:c,part:u,level:h}=o,{video:m,text:y,id3:S,initSegment:_}=s,{details:w}=h,I=this.altAudio?void 0:s.audio;if(this.fragContextChanged(c))this.fragmentTracker.removeFragment(c);else{if(this.state=xi,_){if(_!=null&&_.tracks){let x=c.initSegment||c;this._bufferInitSegment(h,_.tracks,x,a),n.trigger(b.FRAG_PARSING_INIT_SEGMENT,{frag:x,id:"main",tracks:_.tracks})}let{initPTS:D,timescale:F}=_;L(D)&&(this.initPTS[c.cc]={baseTime:D,timescale:F},n.trigger(b.INIT_PTS_FOUND,{frag:c,id:"main",initPTS:D,timescale:F}))}if(m&&w&&c.sn!=="initSegment"){let D=w.fragments[c.sn-1-w.startSN],F=c.sn===w.startSN,x=!D||c.cc>D.cc;if(s.independent!==!1){let{startPTS:W,endPTS:z,startDTS:lt,endDTS:it}=m;if(u)u.elementaryStreams[m.type]={startPTS:W,endPTS:z,startDTS:lt,endDTS:it};else if(m.firstKeyFrame&&m.independent&&a.id===1&&!x&&(this.couldBacktrack=!0),m.dropped&&m.independent){let ft=this.getMainFwdBufferInfo(),mt=(ft?ft.end:this.getLoadPosition())+this.config.maxBufferHole,Z=m.firstKeyFramePTS?m.firstKeyFramePTS:W;if(!F&&mt<Z-this.config.maxBufferHole&&!x)return void this.backtrack(c);x&&(c.gap=!0),c.setElementaryStreamInfo(m.type,c.start,z,c.start,it,!0)}else F&&W>2&&(c.gap=!0);c.setElementaryStreamInfo(m.type,W,z,lt,it),this.backtrackFragment&&(this.backtrackFragment=c),this.bufferFragmentData(m,c,u,a,F||x)}else{if(!F&&!x)return void this.backtrack(c);c.gap=!0}}if(I){let{startPTS:D,endPTS:F,startDTS:x,endDTS:W}=I;u&&(u.elementaryStreams[ot]={startPTS:D,endPTS:F,startDTS:x,endDTS:W}),c.setElementaryStreamInfo(ot,D,F,x,W),this.bufferFragmentData(I,c,u,a)}if(w&&S!=null&&(e=S.samples)!=null&&e.length){let D={id:"main",frag:c,details:w,samples:S.samples};n.trigger(b.FRAG_PARSING_METADATA,D)}if(w&&y){let D={id:"main",frag:c,details:w,samples:y.samples};n.trigger(b.FRAG_PARSING_USERDATA,D)}}}_bufferInitSegment(t,e,i,n){if(this.state!==xi)return;this.audioOnly=!!e.audio&&!e.video,this.altAudio&&!this.audioOnly&&delete e.audio;let{audio:s,video:a,audiovideo:o}=e;if(s){let c=t.audioCodec,u=navigator.userAgent.toLowerCase();this.audioCodecSwitch&&(c&&(c=c.indexOf("mp4a.40.5")!==-1?"mp4a.40.2":"mp4a.40.5"),s.metadata.channelCount!==1&&u.indexOf("firefox")===-1&&(c="mp4a.40.5")),c&&c.indexOf("mp4a.40.5")!==-1&&u.indexOf("android")!==-1&&s.container!=="audio/mpeg"&&(c="mp4a.40.2",this.log("Android: force audio codec to "+c)),t.audioCodec&&t.audioCodec!==c&&this.log(`Swapping manifest audio codec "${t.audioCodec}" for "${c}"`),s.levelCodec=c,s.id="main",this.log(`Init audio buffer, container:${s.container}, codecs[selected/level/parsed]=[${c||""}/${t.audioCodec||""}/${s.codec}]`)}a&&(a.levelCodec=t.videoCodec,a.id="main",this.log(`Init video buffer, container:${a.container}, codecs[level/parsed]=[${t.videoCodec||""}/${a.codec}]`)),o&&this.log(`Init audiovideo buffer, container:${o.container}, codecs[level/parsed]=[${t.codecs}/${o.codec}]`),this.hls.trigger(b.BUFFER_CODECS,e),Object.keys(e).forEach((c)=>{let u=e[c].initSegment;u!=null&&u.byteLength&&this.hls.trigger(b.BUFFER_APPENDING,{type:c,data:u,frag:i,part:null,chunkMeta:n,parent:i.type})}),this.tickImmediate()}getMainFwdBufferInfo(){return this.getFwdBufferInfo(this.mediaBuffer?this.mediaBuffer:this.media,ie)}backtrack(t){this.couldBacktrack=!0,this.backtrackFragment=t,this.resetTransmuxer(),this.flushBufferGap(t),this.fragmentTracker.removeFragment(t),this.fragPrevious=null,this.nextLoadPosition=t.start,this.state=Zt}checkFragmentChanged(){let t=this.media,e=null;if(t&&t.readyState>1&&t.seeking===!1){let i=t.currentTime;if(Jt.isBuffered(t,i)?e=this.getAppendedFrag(i):Jt.isBuffered(t,i+0.1)&&(e=this.getAppendedFrag(i+0.1)),e){this.backtrackFragment=null;let n=this.fragPlaying,s=e.level;n&&e.sn===n.sn&&n.level===s||(this.fragPlaying=e,this.hls.trigger(b.FRAG_CHANGED,{frag:e}),n&&n.level===s||this.hls.trigger(b.LEVEL_SWITCHED,{level:s}))}}}get nextLevel(){let t=this.nextBufferedFrag;return t?t.level:-1}get currentFrag(){let t=this.media;return t?this.fragPlaying||this.getAppendedFrag(t.currentTime):null}get currentProgramDateTime(){let t=this.media;if(t){let e=t.currentTime,i=this.currentFrag;if(i&&L(e)&&L(i.programDateTime)){let n=i.programDateTime+1000*(e-i.start);return new Date(n)}}return null}get currentLevel(){let t=this.currentFrag;return t?t.level:-1}get nextBufferedFrag(){let t=this.currentFrag;return t?this.followingBufferedFrag(t):null}get forceStartLoad(){return this._forceStartLoad}}class Le{static get version(){return"1.5.8"}static isMSESupported(){return Hu()}static isSupported(){return function(){if(!Hu())return!1;let t=Ni();return typeof(t==null?void 0:t.isTypeSupported)=="function"&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some((e)=>t.isTypeSupported(kn(e,"video")))||["mp4a.40.2","fLaC"].some((e)=>t.isTypeSupported(kn(e,"audio"))))}()}static getMediaSource(){return Ni()}static get Events(){return b}static get ErrorTypes(){return G}static get ErrorDetails(){return N}static get DefaultConfig(){return Le.defaultConfig?Le.defaultConfig:xu}static set DefaultConfig(t){Le.defaultConfig=t}constructor(t={}){this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this.started=!1,this._emitter=new Pl,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.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null,this.triggeringException=void 0,function(Z,J){if(typeof console=="object"&&Z===!0||typeof Z=="object"){q(Z,"debug","log","info","warn","error");try{Et.log(`Debug logs enabled for "${J}" in hls.js version 1.5.8`)}catch(kt){Et=nt}}else Et=nt}(t.debug||!1,"Hls instance");let e=this.config=function(Z,J){if((J.liveSyncDurationCount||J.liveMaxLatencyDurationCount)&&(J.liveSyncDuration||J.liveMaxLatencyDuration))throw Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(J.liveMaxLatencyDurationCount!==void 0&&(J.liveSyncDurationCount===void 0||J.liveMaxLatencyDurationCount<=J.liveSyncDurationCount))throw Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(J.liveMaxLatencyDuration!==void 0&&(J.liveSyncDuration===void 0||J.liveMaxLatencyDuration<=J.liveSyncDuration))throw Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');let kt=rc(Z),ht=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return["manifest","level","frag"].forEach((wt)=>{let It=(wt==="level"?"playlist":wt)+"LoadPolicy",Mt=J[It]===void 0,at=[];ht.forEach((vt)=>{let Ct=`${wt}Loading${vt}`,Ot=J[Ct];if(Ot!==void 0&&Mt){at.push(Ct);let Gt=kt[It].default;switch(J[It]={default:Gt},vt){case"TimeOut":Gt.maxLoadTimeMs=Ot,Gt.maxTimeToFirstByteMs=Ot;break;case"MaxRetry":Gt.errorRetry.maxNumRetry=Ot,Gt.timeoutRetry.maxNumRetry=Ot;break;case"RetryDelay":Gt.errorRetry.retryDelayMs=Ot,Gt.timeoutRetry.retryDelayMs=Ot;break;case"MaxRetryTimeout":Gt.errorRetry.maxRetryDelayMs=Ot,Gt.timeoutRetry.maxRetryDelayMs=Ot}}}),at.length&&C.warn(`hls.js config: "${at.join('", "')}" setting(s) are deprecated, use "${It}": ${JSON.stringify(J[It])}`)}),E(E({},kt),J)}(Le.DefaultConfig,t);this.userConfig=t,e.progressive&&Ff(e);let{abrController:i,bufferController:n,capLevelController:s,errorController:a,fpsController:o}=e,c=new a(this),u=this.abrController=new i(this),h=this.bufferController=new n(this),m=this.capLevelController=new s(this),y=new o(this),S=new eo(this),_=new no(this),w=e.contentSteeringController,I=w?new w(this):null,D=this.levelController=new Uu(this,I),F=new na(this),x=new $u(this.config),W=this.streamController=new Vu(this,F,x);m.setStreamController(W),y.setStreamController(W);let z=[S,D,W];I&&z.splice(1,0,I),this.networkControllers=z;let lt=[u,h,m,y,_,F];this.audioTrackController=this.createController(e.audioTrackController,z);let it=e.audioStreamController;it&&z.push(new it(this,F,x)),this.subtitleTrackController=this.createController(e.subtitleTrackController,z);let ft=e.subtitleStreamController;ft&&z.push(new ft(this,F,x)),this.createController(e.timelineController,lt),x.emeController=this.emeController=this.createController(e.emeController,lt),this.cmcdController=this.createController(e.cmcdController,lt),this.latencyController=this.createController(Ys,lt),this.coreComponents=lt,z.push(c);let mt=c.onErrorOut;typeof mt=="function"&&this.on(b.ERROR,mt,c)}createController(t,e){if(t){let i=new t(this);return e&&e.push(i),i}return null}on(t,e,i=this){this._emitter.on(t,e,i)}once(t,e,i=this){this._emitter.once(t,e,i)}removeAllListeners(t){this._emitter.removeAllListeners(t)}off(t,e,i=this,n){this._emitter.off(t,e,i,n)}listeners(t){return this._emitter.listeners(t)}emit(t,e,i){return this._emitter.emit(t,e,i)}trigger(t,e){if(this.config.debug)return this.emit(t,t,e);try{return this.emit(t,t,e)}catch(i){if(C.error("An internal error happened while handling event "+t+'. Error message: "'+i.message+'". Here is a stacktrace:',i),!this.triggeringException){this.triggeringException=!0;let n=t===b.ERROR;this.trigger(b.ERROR,{type:G.OTHER_ERROR,details:N.INTERNAL_EXCEPTION,fatal:n,event:t,error:i}),this.triggeringException=!1}}return!1}listenerCount(t){return this._emitter.listenerCount(t)}destroy(){C.log("destroy"),this.trigger(b.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this.url=null,this.networkControllers.forEach((e)=>e.destroy()),this.networkControllers.length=0,this.coreComponents.forEach((e)=>e.destroy()),this.coreComponents.length=0;let t=this.config;t.xhrSetup=t.fetchSetup=void 0,this.userConfig=null}attachMedia(t){C.log("attachMedia"),this._media=t,this.trigger(b.MEDIA_ATTACHING,{media:t})}detachMedia(){C.log("detachMedia"),this.trigger(b.MEDIA_DETACHING,void 0),this._media=null}loadSource(t){this.stopLoad();let e=this.media,i=this.url,n=this.url=d.buildAbsoluteURL(self.location.href,t,{alwaysNormalize:!0});this._autoLevelCapping=-1,this._maxHdcpLevel=null,C.log("loadSource:"+n),e&&i&&(i!==n||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(e)),this.trigger(b.MANIFEST_LOADING,{url:t})}startLoad(t=-1){C.log(`startLoad(${t})`),this.started=!0,this.networkControllers.forEach((e)=>{e.startLoad(t)})}stopLoad(){C.log("stopLoad"),this.started=!1,this.networkControllers.forEach((t)=>{t.stopLoad()})}resumeBuffering(){this.started&&this.networkControllers.forEach((t)=>{"fragmentLoader"in t&&t.startLoad(-1)})}pauseBuffering(){this.networkControllers.forEach((t)=>{"fragmentLoader"in t&&t.stopLoad()})}swapAudioCodec(){C.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){C.log("recoverMediaError");let t=this._media;this.detachMedia(),t&&this.attachMedia(t)}removeLevel(t){this.levelController.removeLevel(t)}get levels(){return this.levelController.levels||[]}get currentLevel(){return this.streamController.currentLevel}set currentLevel(t){C.log("set currentLevel:"+t),this.levelController.manualLevel=t,this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(t){C.log("set nextLevel:"+t),this.levelController.manualLevel=t,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(t){C.log("set loadLevel:"+t),this.levelController.manualLevel=t}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(t){this.levelController.nextLoadLevel=t}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(t){C.log("set firstLevel:"+t),this.levelController.firstLevel=t}get startLevel(){let t=this.levelController.startLevel;return t===-1&&this.abrController.forcedAutoLevel>-1?this.abrController.forcedAutoLevel:t}set startLevel(t){C.log("set startLevel:"+t),t!==-1&&(t=Math.max(t,this.minAutoLevel)),this.levelController.startLevel=t}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(t){let e=!!t;e!==this.config.capLevelToPlayerSize&&(e?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=e)}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){let{bwEstimator:t}=this.abrController;return t?t.getEstimate():NaN}set bandwidthEstimate(t){this.abrController.resetEstimator(t)}get ttfbEstimate(){let{bwEstimator:t}=this.abrController;return t?t.getEstimateTTFB():NaN}set autoLevelCapping(t){this._autoLevelCapping!==t&&(C.log("set autoLevelCapping:"+t),this._autoLevelCapping=t,this.levelController.checkMaxAutoUpdated())}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(t){(function(e){return js.indexOf(e)>-1})(t)&&this._maxHdcpLevel!==t&&(this._maxHdcpLevel=t,this.levelController.checkMaxAutoUpdated())}get autoLevelEnabled(){return this.levelController.manualLevel===-1}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){let{levels:t,config:{minAutoBitrate:e}}=this;if(!t)return 0;let i=t.length;for(let n=0;n<i;n++)if(t[n].maxBitrate>=e)return n;return 0}get maxAutoLevel(){let{levels:t,autoLevelCapping:e,maxHdcpLevel:i}=this,n;if(n=e===-1&&t!=null&&t.length?t.length-1:e,i)for(let s=n;s--;){let a=t[s].attrs["HDCP-LEVEL"];if(a&&a<=i)return s}return n}get firstAutoLevel(){return this.abrController.firstAutoLevel}get nextAutoLevel(){return this.abrController.nextAutoLevel}set nextAutoLevel(t){this.abrController.nextAutoLevel=t}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}setAudioOption(t){var e;return(e=this.audioTrackController)==null?void 0:e.setAudioOption(t)}setSubtitleOption(t){var e;return(e=this.subtitleTrackController)==null||e.setSubtitleOption(t),null}get allAudioTracks(){let t=this.audioTrackController;return t?t.allAudioTracks:[]}get audioTracks(){let t=this.audioTrackController;return t?t.audioTracks:[]}get audioTrack(){let t=this.audioTrackController;return t?t.audioTrack:-1}set audioTrack(t){let e=this.audioTrackController;e&&(e.audioTrack=t)}get allSubtitleTracks(){let t=this.subtitleTrackController;return t?t.allSubtitleTracks:[]}get subtitleTracks(){let t=this.subtitleTrackController;return t?t.subtitleTracks:[]}get subtitleTrack(){let t=this.subtitleTrackController;return t?t.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(t){let e=this.subtitleTrackController;e&&(e.subtitleTrack=t)}get subtitleDisplay(){let t=this.subtitleTrackController;return!!t&&t.subtitleDisplay}set subtitleDisplay(t){let e=this.subtitleTrackController;e&&(e.subtitleDisplay=t)}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(t){this.config.lowLatencyMode=t}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}}Le.defaultConfig=void 0;var Pf=Object.freeze({__proto__:null,ATTACHED:"hls:attached",BUFFER_CHECK_TICK:"hls:buffer_check"});function xf(t){let e=function(){let i=typeof document<"u"&&typeof window<"u",n=i?navigator.userAgent:"",s=/iP(hone|od)/i.test(n)&&!/iPad/.test(n)&&!/IEMobile/i.test(n),a=/Android/.test(n)&&!/Firefox/.test(n),o=/^((?!chrome|android).)*safari/i.test(n),c=/chrome|crios/i.test(n)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(n),u=/firefox|fxios/i.test(n)&&!/seamonkey/i.test(n),h=/edg/i.test(n),m=/opr|opera/i.test(n),y=/SamsungBrowser/.test(n),S=y&&/SMART-TV/.test(n);return{controls:!s,video:function(_){return i&&document.createElement("video").canPlayType(_)},lang:i&&window.navigator.language,android:a,iphone:s,safari:o,edge:h,opera:m,chrome:c,firefox:u,ios:i&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,samsung:y,samsung_tv:y&&S,touch:"ontouchstart"in window,tizen:"tizen"in window,webOS:"webos"in window}}();switch(t){case"com.widevine.alpha":return e.chrome||e.firefox||e.edge||e.opera;case"org.w3.clearkey":return e.chrome||e.firefox;case"com.apple.fps.1_0":return e.safari;case"com.microsoft.playready":return e.edge}}let Wu="application/vnd.apple.mpegURL",Uf=[Wu,"application/x-mpegurl"],Bf=document.createElement("video").canPlayType(Wu);function $f(t){let{pathname:e}=function(i){let n=document.createElement("a");return n.href=i,n}(t);return e.endsWith(".m3u8")}let Ri=window&&window.Hls||Le;function Yu(t,e){let i=function(){try{return localStorage.getItem("flowplayer/debug")}catch(s){return""}}(),n=(s,...a)=>{try{let o=(e==null?void 0:e.debug)||i;o&&t.match(o)&&console.log(`flowplayer/${t} -- ${s}`,...a)}catch(o){console.warn(o)}};return n.log=n,n}var ya;(function(t){t[t.FRAGMENT_ERRORS=0]="FRAGMENT_ERRORS",t[t.STALE_MANIFEST=1]="STALE_MANIFEST"})(ya||(ya={}));let Gf=Yu("hls:failover");class ju{constructor(){this.playlistCounts={},this.fragmentFailures={},this.ttlMilliseconds=3000}setHls(t){this.hls=t}reset(){return this.playlistCounts={},this.fragmentFailures={},this}failover(t){var e,i;this.reset();let n=this.hls;if(!n)return;let{levelController:s,streamController:a}=n,o=s.steering;if(!s||!a||!o)return;let c=s.currentLevel;if(!c)return;let u=o.levels.filter((h)=>h.pathwayId!==c.pathwayId);u.length&&((e=n.media)===null||e===void 0||e.dispatchEvent(new CustomEvent("hls/failover",{detail:{reason:t,from:(i=c.details)===null||i===void 0?void 0:i.url}})),s._levels=a.levels=u)}currentLevel(){var t;return(t=this.hls)===null||t===void 0?void 0:t.levels[this.hls.currentLevel]}nextTTL(){var t;let e=Date.now()+this.ttlMilliseconds,i=this.currentLevel();if(!i)return e;let n=(t=i.details)===null||t===void 0?void 0:t.averagetargetduration;return n?Date.now()+500*n:e}ensurePlaylistUpdating(t,e){this.playlistCounts[t]||(this.playlistCounts[t]={checksum:e,count:0,ttl:this.nextTTL()});let i=this.playlistCounts[t];Date.now()<i.ttl||(i.count=i.checksum===e?i.count+1:0,i.ttl=this.nextTTL(),i.checksum=e,i.count<3||(Gf(`${t} / no change in ${i.count} tries`,this.playlistCounts),this.failover(ya.STALE_MANIFEST)))}trackFragmentError(t){let e=this.fragmentFailures[t]||0;this.fragmentFailures[t]=e+1,this.fragmentFailures[t]>2&&this.failover(ya.FRAGMENT_ERRORS)}createPlaylistLoader(t){let e=this;return class extends Le.DefaultConfig.loader{load(i,n,s){let a=s.onSuccess;s.onSuccess=({data:o,url:c},...u)=>{(i==null?void 0:i.type)==="manifest"&&(t.manifest=o),e.ensurePlaylistUpdating(c,o),a({data:o,url:c},...u)},super.load(i,n,s)}}}createFragmentLoader(){let t=this;return class extends Le.DefaultConfig.loader{load(e,i,n){let s=n.onError;n.onError=(a)=>{t.trackFragmentError(a.url),s(...arguments)},super.load(e,i,n)}}}}let qt={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},ac=Object.fromEntries(Object.entries(qt).map(([t,e])=>[e,t])),Hf=[1e7]+"-1000-4000-8000-100000000000",zu="on",ko="off";class Sa extends Error{static getErrorKey(t){return t in ac?ac[t]:ac["00-00"]}constructor(t,e,i={}){super(t),this.message=t,this.flowplayerErrorCode=e,this.config=i,this.id=typeof crypto>"u"?"":Hf.replace(/[018]/g,(n)=>(n^crypto.getRandomValues(new Uint8Array(1))[0]&15>>n/4).toString(16)),this.isFatal=!!i.isFatal,this.errorKey=Sa.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}let as=Yu("hls");function Kf(t){switch(t){case N.KEY_SYSTEM_NO_KEYS:return qt.ContentProtectionKeySystemNoKeys;case N.KEY_SYSTEM_NO_ACCESS:return qt.ContentProtectionKeySystemNoAccess;case N.KEY_SYSTEM_NO_SESSION:return qt.ContentProtectionKeySystemNoSession;case N.KEY_SYSTEM_NO_CONFIGURED_LICENSE:return qt.ContentProtectionKeySystemNoConfiguredLicense;case N.KEY_SYSTEM_LICENSE_REQUEST_FAILED:return qt.ContentProtectionCDMLicenseRequestFailed;case N.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED:return qt.ContentProtectionServerCertificateRequestFailed;case N.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED:return qt.ContentProtectionKeySystemCertificateUpdateFailed;case N.KEY_SYSTEM_SESSION_UPDATE_FAILED:return qt.ContentProtectionKeySystemSessionUpdateFailed;case N.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:return qt.ContentProtectionKeySystemStatusOutputRestricted;case N.KEY_SYSTEM_STATUS_INTERNAL_ERROR:return qt.ContentProtectionKeySystemStatusInternalError;case N.MANIFEST_LOAD_ERROR:return qt.PlaybackManifestLoadError;case N.MANIFEST_LOAD_TIMEOUT:return qt.PlaybackManifestLoadTimeout;case N.MANIFEST_PARSING_ERROR:return qt.PlaybackManifestParsingError;case N.MANIFEST_INCOMPATIBLE_CODECS_ERROR:return qt.PlaybackManifestIncompatibleCodecs;case N.LEVEL_EMPTY_ERROR:return qt.PlaybackLevelEmptyError;case N.LEVEL_LOAD_ERROR:return qt.PlaybackLevelLoadError;case N.LEVEL_LOAD_TIMEOUT:return qt.PlaybackLevelLoadTimeout;case N.LEVEL_PARSING_ERROR:return qt.PlaybackManifestParsingError;case N.LEVEL_SWITCH_ERROR:return qt.PlaybackLevelSwitchError;case N.AUDIO_TRACK_LOAD_ERROR:return qt.PlaybackAudioTrackLoadError;case N.AUDIO_TRACK_LOAD_TIMEOUT:return qt.PlaybackAudioTrackLoadTimeout;case N.SUBTITLE_LOAD_ERROR:return qt.NetworkDownloadErrorIdContent;case N.SUBTITLE_TRACK_LOAD_TIMEOUT:return qt.NetworkRequestTimeout;case N.FRAG_LOAD_ERROR:return qt.PlaybackFragLoadError;case N.FRAG_LOAD_TIMEOUT:return qt.PlaybackFragLoadTimeout;case N.FRAG_DECRYPT_ERROR:return qt.PlaybackFragDecryptError;case N.FRAG_PARSING_ERROR:return qt.PlaybackFragParsingError;case N.FRAG_GAP:return qt.PlaybackFragGap;case N.REMUX_ALLOC_ERROR:return qt.PlaybackRemuxAllocError;case N.KEY_LOAD_ERROR:return qt.ContentProtectionKeyLoadError;case N.KEY_LOAD_TIMEOUT:return qt.ContentProtectionKeyLoadTimeout;case N.BUFFER_ADD_CODEC_ERROR:return qt.PlaybackBufferAddCodecError;case N.BUFFER_INCOMPATIBLE_CODECS_ERROR:return qt.PlaybackBufferIncompatibleCodecs;case N.BUFFER_APPEND_ERROR:return qt.PlaybackBufferAppendError;case N.BUFFER_APPENDING_ERROR:return qt.PlaybackAppendError;case N.BUFFER_STALLED_ERROR:return qt.PlaybackBufferStalledError;case N.BUFFER_FULL_ERROR:return qt.PlaybackBufferFullError;case N.BUFFER_SEEK_OVER_HOLE:return qt.PlaybackBufferSeekOverHole;case N.BUFFER_NUDGE_ON_STALL:return qt.PlaybackBufferNudgeOnStall;case N.INTERNAL_EXCEPTION:return qt.PlaybackInternalException;case N.INTERNAL_ABORTED:return qt.PlaybackInternalAborted;case N.UNKNOWN:default:return qt.Unknown}}function Vf(t,e,i){let n={},s={error_type:e.type,resource:e.url||t.original_src,isFatal:e.fatal};return e.fatal?(e.type===i.ErrorTypes.MEDIA_ERROR&&(s.showErrorUI=!1,n.retry=zu,n.retryTimeout=0),[i.ErrorTypes.KEY_SYSTEM_ERROR,i.ErrorTypes.MUX_ERROR,i.ErrorTypes.OTHER_ERROR].includes(e.type)&&(n.retry=ko),Object.assign(s,{retryOpts:n})):(n.retry=ko,Object.assign(s,{retryOpts:n}))}function Wf(t,e){e.on(Ri.Events.ERROR,function(i,n){var s;t.reaper!=0&&(function(a,o,c){a.emit("flowplayer:error",{error:new Sa(o.error.message,Kf(o.details),Vf(a,o,c))})}(t,n,Ri),n.fatal&&([Ri.ErrorTypes.NETWORK_ERROR,Ri.ErrorTypes.MEDIA_ERROR].includes(n.type)||(s=t.hls)===null||s===void 0||s.destroy()))})}function Yf(t,e){let i=t.seekable;if(typeof t.opts!="object"||i.length==0)return{head:0,tail:0};let n=function(a){var o;let c=a.seekable;return c.length?a.hasState("is-chromecast-playing")||!((o=a.hls)===null||o===void 0?void 0:o.liveSyncPosition)?c.end(c.length-1):a.hls.liveSyncPosition:0}(t),s=e||t.live_state.dvr_window;return{head:n,tail:typeof s!="number"||n-s<0?i.start(0):n-s}}function ba(t,e){var i;!t.hasState("is-loaded")&&t.setState("is-loading",!0),(i=t.hls)===null||i===void 0||i.startLoad(e)}function jf(t){t.on("remotesession:started",()=>{t.hls&&(t.hls.stopLoad(),delete t.opts.start_time)}),t.on("remotesession:ended",(e)=>{var i;if(!t.hls)return;if(!t.opts.live)return ba(t,e.detail.currentTime);e.preventDefault();let n=function(a){let o=a.currentTime,c=Yf(a);return{progress:Math.min(100,Math.max(0,(o-c.tail)/(c.head-c.tail)*100)),is_live:o-c.head>=-10}}(t).progress,s=t.hls;(i=t.hls)===null||i===void 0||i.once(Ri.Events.LEVEL_LOADED,()=>{if(t.hls!==s)return;let a=t.live_state.dvr_window||0,o=(s==null?void 0:s.liveSyncPosition)||t.seekable.end(0);if(t.hasState("no-timeline")||isNaN(n))return t.currentTime=o;t.currentTime=o-a*((100-n)/100)}),ba(t)})}var Ta;function zf(t,e){if(typeof t=="object"&&typeof e=="object"&&typeof t.bitrate=="number"&&typeof e.bitrate=="number")return t.bitrate<e.bitrate}function qu(t){let e=t.map((i,n)=>Object.assign(i,{level:n})).sort((i,n)=>n.width-i.width);return t.length>1&&t.every((i)=>i.bitrate!==void 0)&&e.push({name:"AUTO",level:-1,width:0,height:0}),e}function qf(t,e,i,n,s){let a;t.once(Le.Events.LEVEL_LOADING,function(){e.emit("content:loadstart")}),t.on(Ri.Events.MANIFEST_PARSED,function(o,c){let u=qu(c.levels);e.emit("qualities",u),e.emit("parse:video:tracks",{url:s.src,manifest:n.manifest}),function(h,m,y){if(!h.hls)return;as("Initializer::maybe_start_load_with_quality (start_quality, preload): (%d, %s)",m.start_quality,m.preload),m.start_quality!==void 0&&y.length&&(Ta.HIGH&m.start_quality&&(h.hls.startLevel=y[0].level),Ta.LOW&m.start_quality&&(h.hls.startLevel=y[y.length-1].level),Ta.MEDIUM&m.start_quality&&(h.hls.startLevel=y[Math.ceil(y.length/2)-1].level)),function(S,_){var w,I,D,F,x,W;if(!_.hls)return;if((w=S.hls)===null||w===void 0?void 0:w.adaptive_buffer_control){let it=S.hls.adaptive_buffer_control!==!0&&S.hls.adaptive_buffer_control.initial_buffer_length?S.hls.adaptive_buffer_control.initial_buffer_length:10,ft=((F=S.hls)===null||F===void 0?void 0:F.adaptive_buffer_control)!==!0&&S.hls.adaptive_buffer_control.restore_buffer_player_time_threshold?(x=S.hls)===null||x===void 0?void 0:x.adaptive_buffer_control.restore_buffer_player_time_threshold:10;(function(mt,Z){var J;let kt=(J=mt.hls)===null||J===void 0?void 0:J.config.maxBufferLength,ht=!1,wt=setInterval(()=>{mt.emit("hls:buffer_check")},500),It=()=>{ht||mt.currentTime>Z&&(ht=!0,mt.hls&&kt&&(mt.hls.config.maxBufferLength=kt))};mt.on("src",()=>{clearInterval(wt),mt.off("hls:buffer_check",It)}),mt.on("hls:buffer_check",It)})(_,ft),Xu(S,_,{maxBufferLength:it,maxBufferSize:(W=S.hls)===null||W===void 0?void 0:W.maxBufferSize})}else Xu(S,_,{maxBufferLength:(I=S.hls)===null||I===void 0?void 0:I.maxBufferLength,maxBufferSize:(D=S.hls)===null||D===void 0?void 0:D.maxBufferSize})}(m,h),(m.preload!=="none"||m.autoplay&&h.hasState("is-in-viewport"))&&ba(h,m.start_time||-1)}(e,i,u.slice(0,-1))}),t.on(Ri.Events.LEVEL_SWITCHING,(o,c)=>{if(t.nextLoadLevel===a)return;a=t.nextLoadLevel;let u=t.levels[t.currentLevel],h=t.levels[c.level];e.emit("qualitychange",{before:u,after:h,plugin:"hls",automatic:t.autoLevelEnabled,downscale:zf(h,u)})})}function Xu(t,e,i){if(!e.hls)return;let n=(i==null?void 0:i.maxBufferSize)||1024,s=(i==null?void 0:i.maxBufferLength)||30;as("Setting maxBufferSize to %d",n),e.hls.config.maxBufferSize=n,t.preload==="metadata"&&as("preload === metadata, setting maxBufferLength to 1sec"),e.hls.config.maxBufferLength=t.preload==="metadata"?1:s,e.once("playing",()=>{as("Playback started, set maxBufferLenght to %d",s),e.hls&&(e.hls.config.maxBufferLength=s)})}(function(t){t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=4]="HIGH"})(Ta||(Ta={}));function Xf(t,e,i,n,s){(function(a,o){a.on(Le.Events.AUDIO_TRACKS_UPDATED,function(c,u){o.emit("audio:tracks",u.audioTracks)}),a.on(Le.Events.AUDIO_TRACK_SWITCHING,function(c,u){o.emit("audio:update",u)}),a.on(Le.Events.MANIFEST_PARSED,function(c,u){u.audioTracks&&o.emit("audio:tracks",u.audioTracks)})})(t,n),function(a,o){a.on(Le.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(c,u)=>{a.subtitleTracks.length||o.emit("tracks:text:all",u)}),a.on(Le.Events.SUBTITLE_TRACKS_UPDATED,(c,u)=>{o.emit("tracks:text:all",{tracks:u.subtitleTracks.map((h)=>Object.assign({},{subtitleTrack:h}))})}),a.on(Le.Events.CUES_PARSED,(c,u)=>{o.emit("cues:parsed",u)})}(t,n),Wf(n,t),qf(t,n,e,i,s),function(a,o){a.on(Le.Events.FRAG_PARSING_METADATA,function(c,u){o.emit("ssai:hls:metadata",u)})}(t,n),function(a,o){a.on(Le.Events.BUFFER_CREATED,(c,u)=>{let h=u.tracks.video||u.tracks.audiovideo;if(!h)return o.emit("audioonlysource");let m=h==null?void 0:h.metadata.height,y=h==null?void 0:h.metadata.width;!o.opt("ratio")&&m&&y&&o.setOpts({ratio:y+":"+m})})}(t,n),function(a,o,c){let u="live"in c==0;o.on(Ri.Events.LEVEL_LOADED,function(h,m){var y,S,_,w,I;u&&a.setOpts({live:(y=m==null?void 0:m.details)===null||y===void 0?void 0:y.live});let D=(_=(S=o.levels[m.level])===null||S===void 0?void 0:S.details)===null||_===void 0?void 0:_.fragments;if(!D)return;let F=((w=D[1])===null||w===void 0?void 0:w.start)||0,x=o.liveSyncPosition||((I=D[D.length-1])===null||I===void 0?void 0:I.end)||0;a.emit("dvr/window",x-F)})}(n,t,e)}function Jf(t,e,i){(function(n){n.on("audio:set",function(s){var a,o;let c=(a=s.data)===null||a===void 0?void 0:a.id;typeof c=="number"&&c!=((o=n==null?void 0:n.hls)===null||o===void 0?void 0:o.audioTrack)&&setTimeout(function(){(n==null?void 0:n.hls)&&(n.hls.audioTrack=c)},0)})})(t),function(n,s){n.on("src",function(){n.hls&&(n.hls.destroy(),delete n.hls,s.manifest=void 0)}),n.on("reap",function(){var a;(a=n.hls)===null||a===void 0||a.destroy()})}(t,e),function(n){let s={media_recovers:0,audio_swaps:0},a=0;n.on("error",(o)=>{var c,u,h;n.hls&&((c=n==null?void 0:n.error)===null||c===void 0?void 0:c.code)===MediaError.MEDIA_ERR_DECODE&&(o.preventDefault(),++a,n.emit("flowplayer:error",{error:new Sa((h=(u=n==null?void 0:n.error)===null||u===void 0?void 0:u.message)!==null&&h!==void 0?h:"An error occurred while decoding the media.",qt.PlaybackVideoDecodeError,{isFatal:!0,showErrorUI:a>=5,retryOpts:{retry:a<5?zu:ko,retryTimeout:0}})}))}),n.on("canplay",()=>a=0),n.on("retry",(o)=>{var c,u,h,m;if(!n.hls)return;o.preventDefault();let y=o.detail.error,S=y.config;return y.flowplayerErrorCode===qt.PlaybackVideoDecodeError?(n.hls.config.autoStartLoad=!0,n.hls.recoverMediaError(),n.setState("is-waiting",!1)):S.error_type?S.error_type===Ri.ErrorTypes.NETWORK_ERROR?(((c=n.normalizedSrc)===null||c===void 0?void 0:c.src)&&n.hls.loadSource(n.original_src),S.autoplay?n.togglePlay(!0):(n.setState("is-waiting",!1),n.emit("retry/done"))):S.error_type===Ri.ErrorTypes.MEDIA_ERROR?(as("recovering from "+S.error_type),s.media_recovers+5000>Date.now()&&s.audio_swaps==0?((u=n.hls)===null||u===void 0||u.swapAudioCodec(),as(`calling swapAudioCodec() : {count=${s.audio_swaps}}`),s.audio_swaps++,s.media_recovers=Date.now(),(h=n.hls)===null||h===void 0||h.recoverMediaError(),n.setState("is-waiting",!1)):(s.media_recovers=Date.now(),s.audio_swaps=0,(m=n.hls)===null||m===void 0||m.recoverMediaError(),n.setState("is-waiting",!1))):void 0:void 0})}(t),jf(t),function(n,s){n.on(["beforeplay","viewenter"],(o)=>{if(n.hls&&!n.hasState("is-casting")&&!n.hasState("is-loaded")&&s.preload==="none"&&(o.type!=="viewenter"||s.autoplay))return n.hls.levels.length?ba(n,s.start_time||-1):void n.hls.once(Ri.Events.MANIFEST_PARSED,()=>{setTimeout(()=>{ba(n,s.start_time||-1)},0)})}),n.on("quality:set",function(o){var c;if(!n.hls)return;let u=(c=o.data)===null||c===void 0?void 0:c.level;typeof u=="number"&&(n.hls.levels[u]||u===-1?n.hls.nextLevel=u:console.error(Error("skipping invalid quality: "+o.data)))}),n.on("tracks:video:select",function(o){var c,u;let h=o.detail.track,m=(c=n.tracks)===null||c===void 0?void 0:c.find((_)=>_.selected&&_!==h),y=n.hls;if(!m||!h||!y)return;m.selected=!1;let S=(u=h.data)===null||u===void 0?void 0:u.slice(0).map((_)=>(_.details=void 0,_));y.stopLoad(),y.levelController._levels=y.streamController.levels=S,y.currentLevel=-1,n.emit("qualities",qu(S)),n.hasState("is-starting")&&!n.hasState("is-loading")||y.startLoad()});let a=n.opt("start_time");a&&n.once("loadedmetadata",function(){n.currentTime=a})}(t,i)}function Qf(t,e){if(t.drm&&location.protocol!=="https:"&&location.hostname!=="localhost"&&location.hostname!=="127.0.0.1"){let i=new Sa("drm is unavailable in http contexts",qt.ContentProtectionKeySystemUnavailable,{resource:t.src,isFatal:!0,retryOpts:{retry:ko}});return e.emit("flowplayer:error",{error:i}),!1}return!0}function Zf(t,e,i,n){if(!t.reaper||!(i==null?void 0:i.src))return;if(t.hls&&t.hls.destroy(),!Qf(i,t))return;Xf(function(s,a,o,c){var u,h,m,y,S,_,w,I;let D=new ju,F=function(W){return Object.assign(Object.assign({autoStartLoad:!1,levelLoadingMaxRetry:1},W.hls),{startPosition:W.start_time||-1})}(s);F.renderTextTracksNatively=!1,F.captionsTextTrack1Label=(h=(u=s==null?void 0:s.hls)===null||u===void 0?void 0:u.captionsTextTrack1Label)!==null&&h!==void 0?h:"CC1",F.captionsTextTrack2Label=(y=(m=s==null?void 0:s.hls)===null||m===void 0?void 0:m.captionsTextTrack2Label)!==null&&y!==void 0?y:"CC2",F.captionsTextTrack3Label=(_=(S=s==null?void 0:s.hls)===null||S===void 0?void 0:S.captionsTextTrack3Label)!==null&&_!==void 0?_:"CC3",F.captionsTextTrack4Label=(I=(w=s==null?void 0:s.hls)===null||w===void 0?void 0:w.captionsTextTrack4Label)!==null&&I!==void 0?I:"CC4",F.pLoader=D.createPlaylistLoader(a),F.fLoader=D.createFragmentLoader();let x=o.hls=new Ri(F);return D.setHls(x),x.subtitleDisplay=!1,x.attachMedia(o),x.loadSource(c.src),setTimeout(()=>o.emit("hls:attached",{hls:o.hls})),x}(e,n,t,i),e,n,t,i)}var _a;let tm=((_a=class{init(e,i,n){Jf(n,this,e)}onload(e,i,n,s){n.normalizedSrc=s,Zf(n,e,s,this)}wants(e,i,n){return Le.isSupported()&&function({src:s="",type:a="",drm:o},c){let u=c==null?void 0:c.hls,h=Boolean(u==null?void 0:u.native);return(!Bf||!h)&&(!(o&&!Object.keys(o).find((m)=>xf(m)))&&(!(!a||!Uf.includes(a))||$f(s)))}(i,n)}}).pluginName="hls",_a.events=Pf,_a.version=Le.version,_a.failover={Reasons:ya},_a);return function(t,e){if(typeof Yo=="object"&&typeof jo<"u")return e;if(document.currentScript===null)return e;"flowplayer"in t||(t.flowplayer={extensions:[]});let i=t.flowplayer;return typeof i=="function"?(i(e),e):(Array.isArray(i.extensions)||(i.extensions=[]),~i.extensions.indexOf(e)||i.extensions.push(e),e)}(window,tm)})});var Pd=De((zo,qo)=>{(function(r,l){typeof zo=="object"&&typeof qo<"u"?qo.exports=l():typeof define=="function"&&define.amd?define(l):((r=typeof globalThis<"u"?globalThis:r||self).flowplayer=r.flowplayer||{},r.flowplayer.qsel=l())})(zo,function(){function r(K,nt,Et){let q=function(C){return Array.isArray(C)?C.slice(0):C.split(".")}(nt);for(;q.length;){if(K==null)return Et;let C=q.shift();if(typeof C!="string")return Et;K=K[C]}return K==null?Et:K}let l=(K,nt)=>new(((Et,q)=>{let C=Et.get(q);if(!C)throw Error(`no flowplayer component with the name ${q} exists`);let B=window.customElements.get(q);if(!B)throw Error(`no default flowplayer component with the name ${q} exists`);let P=window.customElements.get(C);return typeof P!="function"?B:P})(K._customElements,nt))(K);class d extends HTMLElement{constructor(K){super(),this.player=K}}let v="fp-on",E="fp-invis";class A extends d{constructor(K){super(K),this.player=K,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=T(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(nt)=>{if(nt.defaultPrevented)return;nt.preventDefault();let Et=this.menuContainer.open;Et||(R(),document.active_menu=this.menuContainer),this.menuContainer.open=!Et,K.root.classList.toggle("has-menu-opened",!Et),this.summaryEle.setAttribute("aria-expanded",Et?"false":"true")}),this.addEventListener("focusin",(nt)=>{let Et=nt.target;Et instanceof HTMLLIElement&&Et.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(nt)=>{let Et=nt.target;Et instanceof HTMLLIElement&&Et.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(K){if(this.className=K.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=K.id||T()),this.summaryEle.setAttribute("aria-label",K.menuTitle||"Menu"),K.summaryTitle&&(this.summaryEle.textContent=K.summaryTitle),K.summaryIcon){let nt=l(this.player,K.summaryIcon);nt.setAttribute("tabindex",""),this.summaryEle.append(nt)}K.menuTitle&&(this.menuTitle.textContent=K.menuTitle),this.menu.classList.toggle("fp-icons",!!K.icons),this.addEventListener(K.options_event,(nt)=>{this.render(nt.data)}),K.item_selected_event&&this.addEventListener(K.item_selected_event,(nt)=>{nt.data!==void 0&&this.select_item(nt.data.selected_index)})}render(K){this.olEle&&(this.olEle.innerHTML="",K&&K.forEach(this.menuOption,this),this.toggle_visibility(!(K==null?void 0:K.length)))}menuOption(K,nt){let Et=document.createElement("li");Et.setAttribute("role","menuitem"),Et.setAttribute("aria-selected","false"),Et.setAttribute("tabindex","0"),K.icon&&Et.append(K.icon);let q=document.createElement("span");q.textContent=K.text,Et.append(q),Et.addEventListener("click",()=>{this.select_item(nt),typeof K.onclick=="function"&&K.onclick()}),this.olEle.appendChild(Et),K.selected&&this.select_item(nt)}select_item(K){this.options.forEach((nt,Et)=>{nt.classList.toggle(v,Et===K)})}unselect_item(){this.options.forEach((K)=>{K.classList.remove(v)})}toggle_visibility(K){this.classList.toggle(E,K),this.menu.style.setProperty("display",K?"none":"flex")}}function R(){Array.from(document.querySelectorAll(".fp-engine")).forEach((K)=>{var nt;let Et=K.root.querySelector("details[open].fp-menu-container");Et&&(Et.open=!1,(nt=Et.querySelector("summary"))===null||nt===void 0||nt.removeAttribute("aria-expanded"),K.root.classList.toggle("has-menu-opened",!1))})}function T(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function L(K,nt,Et){let q=function(C,B){let P=new CustomEvent(C,{detail:B,cancelable:!0});return B&&Object.defineProperty(P,"data",{get:()=>B}),P}(nt,Et);return K.dispatchEvent(q),K}document.addEventListener("click",function(K){this.active_menu&&!K.composedPath().includes(this.active_menu)&&(R(),this.active_menu=void 0)}),function(){let K=!1;try{let nt=Object.defineProperty({},"passive",{get:function(){K=!0}});window.addEventListener("testPassive",null,nt),window.removeEventListener("testPassive",null,nt)}catch(nt){}}();var O,X=Object.freeze({__proto__:null,SET_QUALITY:"quality:set",TRACKS:"quality:tracks",SWITCH:"quality:update",QUALITIES:"qualities"});let b=((O=class{constructor(nt){((Et,q,C)=>{window.customElements.get(q)||window.customElements.define(q,C),Et.customElements.get(q)||Et.customElements.set(q,q)})(nt,"flowplayer-quality-menu",A)}init(nt,Et,q){if(nt.qsel===!1)return;let C=l(q,"flowplayer-quality-menu");C instanceof A&&C.setMenuAttrs({summaryTitle:"HD",menuTitle:q.i18n("qsel.menu_title"),class:"fp-qsel",options_event:O.events.TRACKS,item_selected_event:O.events.SWITCH}),q.on("mount",function(){var B;(B=function(P,Y){let Q=P._customElements.get(Y);return Q&&P.root.querySelector(Q)||void 0}(q,q.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||B===void 0||B.append(C)}),q.on("qualities",(B)=>{if(!Array.isArray(B.detail))return;let P=B.detail,Y=r(nt,"qsel.labels",[]);L(C,O.events.TRACKS,P.flatMap((Q,ct)=>typeof Y[ct]!="boolean"||Y[ct]?{text:N(Q,Y[ct]),onclick:G.bind(0,q,Q)}:[])),C instanceof A&&C.toggle_visibility(P.length<2)})}}).pluginName="qsel",O.events=X,O);function G(K,nt){K.emit("quality:set",nt)}function N(K,nt){return nt||(K.height?`${K.height}p${K.height>719?" HD":""}`:K.width?`${K.width}p${K.height>1279?" HD":""}`:("name"in K)&&K.name?K.name:"0p")}return function(K,nt){if(typeof zo=="object"&&typeof qo<"u")return nt;if(document.currentScript===null)return nt;"flowplayer"in K||(K.flowplayer={extensions:[]});let Et=K.flowplayer;return typeof Et=="function"?(Et(nt),nt):(Array.isArray(Et.extensions)||(Et.extensions=[]),~Et.extensions.indexOf(nt)||Et.extensions.push(nt),nt)}(window,b)})});var xd=De((Xo,Jo)=>{(function(r,l){typeof Xo=="object"&&typeof Jo<"u"?Jo.exports=l():typeof define=="function"&&define.amd?define(l):((r=typeof globalThis<"u"?globalThis:r||self).flowplayer=r.flowplayer||{},r.flowplayer.share=l())})(Xo,function(){let r={name:"fp-facebook"},l={name:"fp-link"},d={name:"fp-share"},v={name:"fp-embed"},E={name:"fp-twitter"};function A(rt,ut,bt){let Bt=function(Vt){return Array.isArray(Vt)?Vt.slice(0):Vt.split(".")}(ut);for(;Bt.length;){if(rt==null)return bt;let Vt=Bt.shift();if(typeof Vt!="string")return bt;rt=rt[Vt]}return rt==null?bt:rt}function R(){try{return(document.querySelector("meta[name='description']")||{content:""}).content}catch(rt){return""}}function T(rt){if(typeof rt.link=="string")return rt.link;let ut=document.querySelector("link[rel=canonical]");return ut?ut.href:window.location.toString()}class L extends HTMLElement{constructor(rt){super(),this.player=rt}}class O extends L{constructor(rt,ut){super(rt),this.classList.add("fp-icon",ut.name),ut.title&&this.setAttribute("title",ut.title),ut.title&&this.setAttribute("aria-label",ut.title),ut.translation_key&&this.setAttribute("aria-label",rt.i18n(ut.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}let X=(rt,ut)=>new(((bt,Bt)=>{let Vt=bt.get(Bt);if(!Vt)throw Error(`no flowplayer component with the name ${Bt} exists`);let ce=window.customElements.get(Bt);if(!ce)throw Error(`no default flowplayer component with the name ${Bt} exists`);let jt=window.customElements.get(Vt);return typeof jt!="function"?ce:jt})(rt._customElements,ut))(rt),b=(rt,ut,bt)=>{window.customElements.get(ut)||window.customElements.define(ut,bt),rt.customElements.get(ut)||rt.customElements.set(ut,ut)},G="fp-on",N="fp-invis";class K extends L{constructor(rt){super(rt),this.player=rt,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=Et(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(ut)=>{if(ut.defaultPrevented)return;ut.preventDefault();let bt=this.menuContainer.open;bt||(nt(),document.active_menu=this.menuContainer),this.menuContainer.open=!bt,rt.root.classList.toggle("has-menu-opened",!bt),this.summaryEle.setAttribute("aria-expanded",bt?"false":"true")}),this.addEventListener("focusin",(ut)=>{let bt=ut.target;bt instanceof HTMLLIElement&&bt.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(ut)=>{let bt=ut.target;bt instanceof HTMLLIElement&&bt.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(rt){if(this.className=rt.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=rt.id||Et()),this.summaryEle.setAttribute("aria-label",rt.menuTitle||"Menu"),rt.summaryTitle&&(this.summaryEle.textContent=rt.summaryTitle),rt.summaryIcon){let ut=X(this.player,rt.summaryIcon);ut.setAttribute("tabindex",""),this.summaryEle.append(ut)}rt.menuTitle&&(this.menuTitle.textContent=rt.menuTitle),this.menu.classList.toggle("fp-icons",!!rt.icons),this.addEventListener(rt.options_event,(ut)=>{this.render(ut.data)}),rt.item_selected_event&&this.addEventListener(rt.item_selected_event,(ut)=>{ut.data!==void 0&&this.select_item(ut.data.selected_index)})}render(rt){this.olEle&&(this.olEle.innerHTML="",rt&&rt.forEach(this.menuOption,this),this.toggle_visibility(!(rt==null?void 0:rt.length)))}menuOption(rt,ut){let bt=document.createElement("li");bt.setAttribute("role","menuitem"),bt.setAttribute("aria-selected","false"),bt.setAttribute("tabindex","0"),rt.icon&&bt.append(rt.icon);let Bt=document.createElement("span");Bt.textContent=rt.text,bt.append(Bt),bt.addEventListener("click",()=>{this.select_item(ut),typeof rt.onclick=="function"&&rt.onclick()}),this.olEle.appendChild(bt),rt.selected&&this.select_item(ut)}select_item(rt){this.options.forEach((ut,bt)=>{ut.classList.toggle(G,bt===rt)})}unselect_item(){this.options.forEach((rt)=>{rt.classList.remove(G)})}toggle_visibility(rt){this.classList.toggle(N,rt),this.menu.style.setProperty("display",rt?"none":"flex")}}function nt(){Array.from(document.querySelectorAll(".fp-engine")).forEach((rt)=>{var ut;let bt=rt.root.querySelector("details[open].fp-menu-container");bt&&(bt.open=!1,(ut=bt.querySelector("summary"))===null||ut===void 0||ut.removeAttribute("aria-expanded"),rt.root.classList.toggle("has-menu-opened",!1))})}function Et(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function q(rt,ut,bt){let Bt=function(Vt,ce){let jt=new CustomEvent(Vt,{detail:ce,cancelable:!0});return ce&&Object.defineProperty(jt,"data",{get:()=>ce}),jt}(ut,bt);return rt.dispatchEvent(Bt),rt}function C(rt,ut){let bt=rt._customElements.get(ut);return bt&&rt.root.querySelector(bt)||void 0}document.addEventListener("click",function(rt){this.active_menu&&!rt.composedPath().includes(this.active_menu)&&(nt(),this.active_menu=void 0)}),function(){let rt=!1;try{let ut=Object.defineProperty({},"passive",{get:function(){rt=!0}});window.addEventListener("testPassive",null,ut),window.removeEventListener("testPassive",null,ut)}catch(ut){}}();let B="flowplayer-share-menu";var P;let Y=((P=class{constructor(ut){this.umd=ut,this.share_options=[],b(ut,B,K),b(this.umd,"flowplayer-facebook-icon",class extends O{constructor(bt){super(bt,r)}}),b(this.umd,"flowplayer-twitter-icon",class extends O{constructor(bt){super(bt,E)}}),b(this.umd,"flowplayer-link-icon",class extends O{constructor(bt){super(bt,l)}}),b(this.umd,"flowplayer-embed-icon",class extends O{constructor(bt){super(bt,v)}}),b(this.umd,"flowplayer-share-icon",class extends O{constructor(bt){super(bt,d)}})}init(ut,bt,Bt){let Vt=X(Bt,B);Vt instanceof K&&Vt.setMenuAttrs({menuTitle:Bt.i18n("share.menu_title"),class:"fp-share-menu fp-togglable",summaryIcon:"flowplayer-share-icon",icons:!0,options_event:P.events.OPTIONS});let ce={prev_config:0,webshare_listener:0};Bt.on("mount",function(){var jt;(jt=C(Bt,"flowplayer-header-left-zone"))===null||jt===void 0||jt.append(Vt),Vt instanceof K&&Vt.menuContainer.addEventListener("toggle",function(){bt.classList.toggle("is-share-menu",this.open);let V=C(Bt,"flowplayer-control");this.open&&(bt.classList.contains("is-small")?Bt.pause():V&&function(et,pt){if(!pt)return;et.menu.style.maxHeight=pt.getBoundingClientRect().top+parseFloat(window.getComputedStyle(pt).getPropertyValue("padding"))-et.menuContainer.getBoundingClientRect().bottom+"px"}(Vt,V))})}),Bt.on("config",(jt)=>{let V=A(jt,"data.share",{});if(V===!1)return Vt instanceof K&&void Vt.classList.remove("webshare-enabled");if(ce.prev_config===V)return;if(ce.prev_config=V,Vt instanceof K&&function(){try{return window.location.protocol==="https:"&&typeof navigator.share=="function"}catch(pt){return!1}}()&&A(V,"web_share",!0))return function(pt){pt.classList.add("webshare-enabled")}(Vt),ce.webshare_listener||function(pt,gt,Lt){Lt.webshare_listener=!0,gt.addEventListener("click",function(){if(!gt.classList.contains("webshare-enabled"))return;gt.menuContainer.open=!1,navigator.share({title:A(pt,"share.title",document.title),text:A(pt,"share.text",R()),url:T(A(pt,"share",{}))}).catch(function(){})})}(ut,Vt,ce);this.share_options=[];let et=typeof V.link=="string"?V.link:window.location.toString();if(V.iframe){let pt=typeof V.iframe=="string"?V.iframe:et;this.share_options.push(Q(Bt,Vt,"share.embed",ot.bind(null,pt,Bt),X(Bt,"flowplayer-embed-icon")))}V.link&&this.share_options.push(Q(Bt,Vt,"share.link",St.bind(null,et),X(Bt,"flowplayer-link-icon"))),V.facebook&&this.share_options.push(Q(Bt,Vt,"Facebook",Ft.bind(null,et),X(Bt,"flowplayer-facebook-icon"))),V.twitter&&this.share_options.push(Q(Bt,Vt,"Twitter",$t.bind(null,et),X(Bt,"flowplayer-twitter-icon"))),q(Vt,P.events.OPTIONS,this.share_options)})}add_options(ut,...bt){let Bt=ut.root.querySelector(B);Bt&&bt.forEach((Vt)=>{let ce=Q(ut,Bt,Vt.text,Vt.onclick,Vt.icon);Bt.menuOption(ce,Bt.options.length)})}}).pluginName="share",P.events={OPTIONS:"share:options"},P);function Q(rt,ut,bt,Bt,Vt){return{text:ct(rt,bt),icon:Vt,onclick:st.bind(null,rt,ut,Bt)}}function ct(rt,ut){return ut.indexOf("share.")===0?rt.i18n(ut):ut}function st(rt,ut,bt){ut instanceof K&&ut.unselect_item();let Bt=bt();Bt.success&&Bt.message&&rt.message&&rt.emit(rt.message.events.SHOW_MESSAGE,{message:Bt.message})}function ot(rt,ut){let bt=ut.videoHeight/ut.videoWidth;return St('<div style="position:relative;width:100%;display:inline-block;"><iframe src="__IFRAME_SRC__" allowfullscreen style="border:none;position:absolute;top:0;left:0;width:100%;height:100%;"></iframe><div style="padding-top: __RATIO__%;"></div></div>'.replace("__IFRAME_SRC__",encodeURI(rt)).replace("__RATIO__",""+100*bt))}function St(rt){let ut=document.createElement("textarea");ut.setAttribute("style","position:absolute;opacity:0"),ut.value=rt;let bt=document.body;bt.append(ut),ut.select();let Bt=document.execCommand("copy");return bt.removeChild(ut),{success:Bt,message:Bt?"<trans share.clipboard_success trans>":"<trans share.clipboard_failure trans>"}}function Ft(rt){return zt("https://www.facebook.com/sharer.php?u="+encodeURIComponent(rt)),{success:!0}}function $t(rt){return zt("https://twitter.com/intent/tweet?url="+encodeURIComponent(rt)),{success:!0}}function zt(rt){let ut,bt=screen.height,Bt=screen.width,Vt=Math.round(Bt/2-275);ut=0,bt>420&&(ut=Math.round(bt/2-210)),window.open(rt,"sharer","scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,left="+Vt+",top="+ut)}return function(rt,ut){if(typeof Xo=="object"&&typeof Jo<"u")return ut;if(document.currentScript===null)return ut;"flowplayer"in rt||(rt.flowplayer={extensions:[]});let bt=rt.flowplayer;return typeof bt=="function"?(bt(ut),ut):(Array.isArray(bt.extensions)||(bt.extensions=[]),~bt.extensions.indexOf(ut)||bt.extensions.push(ut),ut)}(window,Y)})});var Ud=De((Qo,Zo)=>{(function(r,l){typeof Qo=="object"&&typeof Zo<"u"?Zo.exports=l():typeof define=="function"&&define.amd?define(l):((r=typeof globalThis<"u"?globalThis:r||self).flowplayer=r.flowplayer||{},r.flowplayer.subtitles=l())})(Qo,function(){function r(V,et,pt){let gt=function(Lt){return Array.isArray(Lt)?Lt.slice(0):Lt.split(".")}(et);for(;gt.length;){if(V==null)return pt;let Lt=gt.shift();if(typeof Lt!="string")return pt;V=V[Lt]}return V==null?pt:V}function l(V,et){V.innerHTML="",et.forEach(function(pt){let gt=document.createElement("pre");gt.classList.add("fp-cue"),function(Lt,ve){let ue=Lt.style,Je=ve.size;ue.setProperty("--caption-size",Je.toString());let Pe=ve.position;Pe&&Pe!=="auto"&&ve?ue.setProperty("--caption-position",Pe.toString()):ue.removeProperty("--caption-position");let ke="captions-align-"+ve.align;Array.from(Lt.classList).forEach(function(re){re!=ke&&(re=="captions-vertical"&&ve.vertical||re.startsWith("captions")&&Lt.classList.remove(re))}),Lt.classList.add(ke),Lt.classList.toggle("captions-vertical",!!ve.vertical)}(V,pt),gt.appendChild(pt.getCueAsHTML()),V.appendChild(gt)})}function d(){}let v="is-source-processing",E=(V,et)=>new(((pt,gt)=>{let Lt=pt.get(gt);if(!Lt)throw Error(`no flowplayer component with the name ${gt} exists`);let ve=window.customElements.get(gt);if(!ve)throw Error(`no default flowplayer component with the name ${gt} exists`);let ue=window.customElements.get(Lt);return typeof ue!="function"?ve:ue})(V._customElements,et))(V),A=(V,et,pt)=>{window.customElements.get(et)||window.customElements.define(et,pt),V.customElements.get(et)||V.customElements.set(et,et)};function R(V,et,pt){let gt=function(Lt,ve){let ue=new CustomEvent(Lt,{detail:ve,cancelable:!0});return ve&&Object.defineProperty(ue,"data",{get:()=>ve}),ue}(et,pt);return V.dispatchEvent(gt),V}function T(V,et){let pt=V._customElements.get(et);return pt&&V.root.querySelector(pt)||void 0}(function(){let V=!1;try{let et=Object.defineProperty({},"passive",{get:function(){V=!0}});window.addEventListener("testPassive",null,et),window.removeEventListener("testPassive",null,et)}catch(et){}})();class L extends HTMLElement{constructor(V){super(),this.player=V}}let O="fp-on",X="fp-invis";class b extends L{constructor(V){super(V),this.player=V,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=N(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(et)=>{if(et.defaultPrevented)return;et.preventDefault();let pt=this.menuContainer.open;pt||(G(),document.active_menu=this.menuContainer),this.menuContainer.open=!pt,V.root.classList.toggle("has-menu-opened",!pt),this.summaryEle.setAttribute("aria-expanded",pt?"false":"true")}),this.addEventListener("focusin",(et)=>{let pt=et.target;pt instanceof HTMLLIElement&&pt.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(et)=>{let pt=et.target;pt instanceof HTMLLIElement&&pt.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(V){if(this.className=V.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=V.id||N()),this.summaryEle.setAttribute("aria-label",V.menuTitle||"Menu"),V.summaryTitle&&(this.summaryEle.textContent=V.summaryTitle),V.summaryIcon){let et=E(this.player,V.summaryIcon);et.setAttribute("tabindex",""),this.summaryEle.append(et)}V.menuTitle&&(this.menuTitle.textContent=V.menuTitle),this.menu.classList.toggle("fp-icons",!!V.icons),this.addEventListener(V.options_event,(et)=>{this.render(et.data)}),V.item_selected_event&&this.addEventListener(V.item_selected_event,(et)=>{et.data!==void 0&&this.select_item(et.data.selected_index)})}render(V){this.olEle&&(this.olEle.innerHTML="",V&&V.forEach(this.menuOption,this),this.toggle_visibility(!(V==null?void 0:V.length)))}menuOption(V,et){let pt=document.createElement("li");pt.setAttribute("role","menuitem"),pt.setAttribute("aria-selected","false"),pt.setAttribute("tabindex","0"),V.icon&&pt.append(V.icon);let gt=document.createElement("span");gt.textContent=V.text,pt.append(gt),pt.addEventListener("click",()=>{this.select_item(et),typeof V.onclick=="function"&&V.onclick()}),this.olEle.appendChild(pt),V.selected&&this.select_item(et)}select_item(V){this.options.forEach((et,pt)=>{et.classList.toggle(O,pt===V)})}unselect_item(){this.options.forEach((V)=>{V.classList.remove(O)})}toggle_visibility(V){this.classList.toggle(X,V),this.menu.style.setProperty("display",V?"none":"flex")}}function G(){Array.from(document.querySelectorAll(".fp-engine")).forEach((V)=>{var et;let pt=V.root.querySelector("details[open].fp-menu-container");pt&&(pt.open=!1,(et=pt.querySelector("summary"))===null||et===void 0||et.removeAttribute("aria-expanded"),V.root.classList.toggle("has-menu-opened",!1))})}function N(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener("click",function(V){this.active_menu&&!V.composedPath().includes(this.active_menu)&&(G(),this.active_menu=void 0)});let K=["255, 255, 255","255, 255, 0","0, 255, 0","0, 255, 255","0, 0, 255","255, 0, 255","255, 0, 0","0, 0, 0"],nt=[0.25,0.5,0.75,1,1.25,1.5,1.75,2,3,4],Et=["White","Yellow","Green","Cyan","Blue","Magenta","Red","Black"],q=["Monospaced Serif","Proportional Serif","Monospaced Sans-Serif","Proportional Sans-Serif","Casual","Cursive"],C=["Courier New, monospace","serif","Andale Mono, Lucida Console, monospace","sans-serif","Comic Sans MS, Impact, fantasy","Monotype Corsiva, cursive"],B=["None","Drop shadow","Raised","Depressed","Outline"],P=["","rgb(34, 34, 34) 2px 2px 3px, rgb(34, 34, 34) 2px 2px 4px, rgb(34, 34, 34) 2px 2px 5px","rgb(34, 34, 34) 1px 1px, rgb(34, 34, 34) 2px 2px, rgb(34, 34, 34) 3px 3px","rgb(204, 204, 204) 1px 1px, rgb(204, 204, 204) 0px 1px, rgb(34, 34, 34) -1px -1px, rgb(34, 34, 34) 0px -1px","rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px"];class Y{constructor(V,et,pt,gt,Lt){this.player=V,this.labels=et,this.values=pt,this.css_variable=gt,this.default_value=Lt,this.selected=V._storage.getItem(gt)||Lt}set selected(V){document.documentElement.style.setProperty(this.css_variable,V),this.player._storage.setItem(this.css_variable,V)}get selected(){return document.documentElement.style.getPropertyValue(this.css_variable)}}var Q;(function(V){V[V.main=0]="main",V[V.tracks=1]="tracks",V[V.style=2]="style",V[V.styleOpt=3]="styleOpt"})(Q||(Q={}));class ct extends b{constructor(V){if(super(V),this.state=Q.main,this.selectedTrackIdx=-1,this.isTV=!1,this.styleOpts=function(gt){return{[gt.i18n("cc.properties.fontSize","Font size")]:new Y(gt,nt.map((Lt)=>100*Lt+"%"),nt.map((Lt)=>100*Lt+"%"),"--fp-sub-font-size","100%"),[gt.i18n("cc.properties.fontFamily","Font family")]:new Y(gt,q.map((Lt)=>gt.i18n("cc.fontFamily."+Lt,Lt)),C,"--fp-sub-font-family","sans-serif"),[gt.i18n("cc.properties.fontColor","Font color")]:new Y(gt,Et.map((Lt)=>gt.i18n("cc.colors."+Lt,Lt)),K,"--fp-sub-font-color",K[0]),[gt.i18n("cc.properties.fontOpacity","Font opacity")]:new Y(gt,nt.flatMap((Lt)=>Lt>1?[]:100*Lt+"%"),nt.flatMap((Lt)=>Lt>1?[]:Lt+""),"--fp-sub-font-opacity","1"),[gt.i18n("cc.properties.backgroundColor","Background color")]:new Y(gt,Et.map((Lt)=>gt.i18n("cc.colors."+Lt,Lt)),K,"--fp-sub-background-color",K[7]),[gt.i18n("cc.properties.backgroundOpacity","Background opacity")]:new Y(gt,nt.flatMap((Lt)=>Lt>1?[]:100*Lt+"%"),nt.flatMap((Lt)=>Lt>1?[]:Lt+""),"--fp-sub-background-opacity","0.5"),[gt.i18n("cc.properties.characterEdgeStyle","Character edge style")]:new Y(gt,B.map((Lt)=>gt.i18n("cc.edgeStyle."+Lt,Lt)),P,"--fp-sub-edge-style","")}}(V),V.on("mount",()=>{setTimeout(()=>this.isTV=V.hasState("is-tv"),0),this.classList.toggle("subs-native",!!V.opt("subtitles.native"))}),V.on(jt.events.TRACK_UPDATED,(gt)=>this.summaryEle.classList.toggle("fp-color-text",!!gt.detail)),V.opt("subtitles.native"))return;let et=E(this.player,"flowplayer-menu-back");et.setAttribute("aria-label","Back to previous menu"),this.menuHeader.prepend(et),et.addEventListener("click",()=>this.navigateBack());let pt=E(this.player,"flowplayer-subs-menu-icon");pt.setAttribute("aria-label","Open style menu"),pt.addEventListener("click",()=>this.createMenu(Q.style)),this.menuHeader.insertBefore(pt,this.menuTitle),this.summaryEle.addEventListener("click",()=>{this.menuContainer.open||this.createMenu(Q.main)}),this.menu.addEventListener("click",(gt)=>{(gt.target===pt||gt.target===et||this.state!==Q.main&&gt.target!==this.closeEle)&&gt.preventDefault()}),this.addEventListener(jt.events.TRACKS,(gt)=>{var Lt;this.tracks=gt.detail,this.selectedTrackIdx=-1,this.toggle_visibility(!((Lt=this==null?void 0:this.tracks)===null||Lt===void 0?void 0:Lt.length)),this.state===(this.isTV?Q.tracks:Q.main)&&this.createMenu(this.isTV?Q.tracks:Q.main)}),this.addEventListener(jt.events.SWITCH,(gt)=>{this.selectedTrackIdx=gt.detail.selected_index,this.state===(this.isTV?Q.tracks:Q.main)&&this.select_item(this.selectedTrackIdx)}),this.player.addEventListener("tv-menu:will-open",()=>{var gt;((gt=this.tracks)===null||gt===void 0?void 0:gt.length)&&this.createMenu(Q.main)}),this.player.on(["tv-menu:will-close","keyboard:close:menus"],(gt)=>{var Lt;this.state!==Q.main&&((Lt=document.activeElement)===null||Lt===void 0?void 0:Lt.closest(".fp-menu"))===this.menu&&(this.navigateBack(),gt.preventDefault())})}navigateBack(){switch(this.state){case Q.style:case Q.tracks:return this.createMenu(Q.main);case Q.styleOpt:return this.createMenu(Q.style)}}getMenuTitle(){switch(this.state){case Q.main:return this.player.i18n("cc.menu_title","Subtitles");case Q.tracks:return this.player.i18n("cc.tracks","Tracks");case Q.style:return this.player.i18n("cc.options","Options");default:return""}}createMenuOpts(V){switch(this.state){case Q.main:return this.isTV?this.createTvMainMenuOpts():this.createTracksMenuOpts();case Q.tracks:return this.createTracksMenuOpts();case Q.style:return this.createStyleMenuOpts();case Q.styleOpt:return V?this.createStylePropertyMenuOpts(this.styleOpts[V]):[]}}createMenu(V,et){var pt;this.state=V,this.menu.classList.toggle("fp-submenu",V>0),this.menuTitle.textContent=et||this.getMenuTitle(),this.render(this.createMenuOpts(et)),(pt=this.menu.querySelector("li"))===null||pt===void 0||pt.focus()}createTvMainMenuOpts(){return[{text:this.player.i18n("cc.tracks","Tracks"),onclick:this.createMenu.bind(this,Q.tracks)},{text:this.player.i18n("cc.options","Options"),onclick:this.createMenu.bind(this,Q.style)}]}createTracksMenuOpts(){return Array.isArray(this==null?void 0:this.tracks)?this.tracks.map((V,et)=>({text:V.text,onclick:()=>{V.onclick(),this.selectedTrackIdx=this.selectedTrackIdx===et?-1:et},selected:this.selectedTrackIdx===et})):[]}createStyleMenuOpts(){let V=Object.keys(this.styleOpts).map((et)=>({text:et,onclick:this.createMenu.bind(this,Q.styleOpt,et)}));return V.push({text:this.player.i18n("cc.reset","Reset"),onclick:()=>Object.values(this.styleOpts).forEach((et)=>et.selected=et.default_value)}),V}createStylePropertyMenuOpts(V){return V.labels.map((et,pt)=>({text:et,onclick:()=>{V.selected=V.values[pt]},selected:pt===V.values.indexOf(V.selected)}))}select_item(V){if(this.state!==Q.style)return this.state===Q.styleOpt?super.select_item(V):void this.options.forEach((et,pt)=>{et.classList.toggle(O,pt===V&&!et.classList.contains(O))})}}class st extends L{constructor(V,et){super(V),this.classList.add("fp-icon",et.name),et.title&&this.setAttribute("title",et.title),et.title&&this.setAttribute("aria-label",et.title),et.translation_key&&this.setAttribute("aria-label",V.i18n(et.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}function ot(V){return!document.fullscreenEnabled&&typeof V.webkitEnterFullScreen=="function"&&typeof V.webkitExitFullScreen=="function"}let St="subs:tracks",Ft="subs:change";var $t,zt=Object.freeze({__proto__:null,TRACK_UPDATED:"tracks:text:updated",TRACKS:St,SWITCH:Ft,CUES_PARSED:"cues:parsed",TEXT_TRACKS:"tracks:text:all"});function rt(V,et){if(function(pt){return Object.values($t).includes(pt)}(et=et||$t.Anonymous))return V instanceof HTMLVideoElement&&(V.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in V?V.crossOrigin=et:V.setAttribute("crossorigin",et),V}function ut(V){let et=document.createElement("a");return et.href=V,et.origin}function bt(V,et){let pt=document.createElement("track");pt.className="fp-track renderable",pt.kind=et.kind||"captions",pt.label=et.label||et.lang||"",pt.lang=et.lang||"",pt.id=["fp",et.lang].join("-");let gt=pt.track;return gt.removeCue=d,typeof et.crossorigin!="string"&&function(Lt,ve){try{return Lt.src.startsWith("blob:"),ut(Lt.src)!==ut(ve)}catch(ue){return console.error(ue),!0}}(V,et.src)&&(rt(V),et.crossorigin=V.getAttribute("crossorigin")),"crossorigin"in et&&rt(V,et.crossorigin),Object.keys(et).forEach((Lt)=>{Lt!=="default"&&(pt[Lt]=et[Lt])}),gt.mode=et.default?"hidden":"disabled",V.appendChild(pt),pt}(function(V){V.Anonymous="anonymous",V.UseCredentials="use-credentials",V.Empty=""})($t||($t={}));let Bt={translation_key:"cc.menu_title",name:"fp-subtitles-menu"},Vt={name:"fp-menu-back"};var ce;let jt=((ce=class{constructor(et){A(et,"flowplayer-subtitles-menu",ct),A(et,"flowplayer-subs-menu-icon",class extends st{constructor(pt){super(pt,Bt)}}),A(et,"flowplayer-menu-back",class extends st{constructor(pt){super(pt,Vt)}})}init(et,pt,gt){var Lt,ve;let ue=E(gt,"flowplayer-subtitles-menu");ue instanceof ct&&ue.setMenuAttrs({class:"fp-cc",summaryTitle:gt.i18n("cc.button","CC"),menuTitle:gt.i18n("cc.menu_title","Subtitles"),options_event:((Lt=et.subtitles)===null||Lt===void 0?void 0:Lt.native)?St:void 0,item_selected_event:((ve=et.subtitles)===null||ve===void 0?void 0:ve.native)?Ft:void 0});let Je=function(Pt){let Nt=document.createElement("div");return Nt.classList.add("fp-captions"),Nt.ontouchend=(At)=>Pt.emit(At.type),Nt.onclick=(At)=>Pt.emit(At.type),Nt}(gt),Pe,ke=[],re=[];function Ke(){return Array.from(gt.textTracks).filter((Pt)=>~["captions","subtitles","descriptions"].indexOf(Pt.kind)&&!Pt.removed&&Pt.label)}function Qe(){return Ke().find((Pt)=>Pt.is_active)}function ui(Pt){Array.from(Pt.querySelectorAll("track")).forEach((Nt)=>{["captions","subtitles","descriptions"].includes(Nt.kind)&&Pt.removeChild(Nt)})}function Ve(Pt,Nt,At){R(Nt,St,At.map(function(se){return{text:se.label,onclick:Di.bind(0,Pt,se)}}));let Xt=Qe();return Xt?Ke().find((se)=>se===Xt)?void R(Nt,Ft,{selected_index:At.indexOf(Xt)}):We():Pt.emit("tracks:text:updated")}function Di(Pt,Nt){var At,Xt;if(Nt==Qe())return We();We(),Nt.is_hls_embedded&&typeof Nt.track_id=="number"&&Pt.hls&&(Pt.hls.subtitleTrack=Nt.track_id),Nt.mode=((At=Pt.opts.subtitles)===null||At===void 0?void 0:At.native)?"showing":"hidden",Nt.is_active=!0,Pt.emit("tracks:text:updated",Nt),((Xt=Pt.opts.subtitles)===null||Xt===void 0?void 0:Xt.native)||Pt.emit("cuechange",{track:Nt})}function We(){let Pt=Qe();Pt&&(gt.emit("tracks:text:updated"),Pt.mode="disabled",Pt.is_active=!1,l(Je,[]))}(function(Pt){if(!ot(Pt))return;Pt.on("webkitbeginfullscreen",()=>{let Nt=Qe();Nt&&(Nt.mode="showing")}),Pt.on("webkitendfullscreen",()=>{var Nt;let At=Ke().find((Xt)=>Xt.mode==="showing");At&&!((Nt=Pt.opts.subtitles)===null||Nt===void 0?void 0:Nt.native)&&(At.mode="hidden"),At!==Qe()&&(At?Di(Pt,At):We(),R(ue,Ft,{selected_index:At?re.indexOf(At):-1}))})})(gt),gt.on("mount",function(){var Pt,Nt;let At=T(gt,"flowplayer-control");if(!At)return(Pt=T(gt,"flowplayer-ui"))===null||Pt===void 0?void 0:Pt.appendChild(Je);At.insertAdjacentElement("beforebegin",Je),(Nt=gt.hasState("is-tv")?T(gt,"flowplayer-tv-menu"):At)===null||Nt===void 0||Nt.append(ue)}),gt.on("config",function(Pt){var Nt,At;let Xt=(At=(Nt=Pt.data)===null||Nt===void 0?void 0:Nt.subtitles)===null||At===void 0?void 0:At.tracks;Xt&&ke!==Xt&&(ke=Xt,ui(gt),re=Ke(),Ve(gt,ue,re),ke.forEach((se)=>bt(gt,se)))}),gt.on("tracks:text:all",(Pt)=>{let Nt=Pt.detail.tracks;Nt!==Pe&&(Pe=Nt,re=re.flatMap((At)=>At.is_hls_embedded?(At.removed=!0,[]):At),Ve(gt,ue,re),Nt.filter((At)=>{var Xt,se;return~["subtitles","captions"].indexOf((At==null?void 0:At.kind)||((se=(Xt=At==null?void 0:At.subtitleTrack)===null||Xt===void 0?void 0:Xt.type)===null||se===void 0?void 0:se.toLocaleLowerCase())||"")}).forEach((At)=>{var Xt,se,di,ln,Ci,xe,cn;let Ze=gt.addTextTrack(At.kind==="captions"?"captions":"subtitles",((Xt=At.subtitleTrack)===null||Xt===void 0?void 0:Xt.name)||At.label,(se=At.subtitleTrack)===null||se===void 0?void 0:se.lang);Ze.is_hls_embedded=!0,Ze.default=((di=At.subtitleTrack)===null||di===void 0?void 0:di.default)!==void 0?(ln=At.subtitleTrack)===null||ln===void 0?void 0:ln.default:At.default,Ze.track_id=(xe=(Ci=At.subtitleTrack)===null||Ci===void 0?void 0:Ci.id)!==null&&xe!==void 0?xe:At._id,Ze.mode=Ze.default?"hidden":"disabled",Ze.removeCue=d,Ze.attr=(cn=At.subtitleTrack)===null||cn===void 0?void 0:cn.attrs}))}),gt.on("cues:parsed",(Pt)=>{let Nt=Pt.detail,At=re.find((Xt)=>Xt.is_hls_embedded&&!Xt.removed&&(Xt.default&&Nt.track==="default"||Xt.track_id===Nt.track||"subtitles"+Xt.track_id===Nt.track||"captions"+Xt.track_id===Nt.track));At&&Nt.cues.forEach((Xt)=>At.addCue(Xt))}),gt.textTracks.addEventListener("addtrack",()=>{let Pt=Ke();if(re.length===Pt.length&&re.every((At,Xt)=>At===Pt[Xt]))return;let Nt=Qe();if(Pt.map(function(At){return~["showing","hidden"].indexOf(At.mode)&&(Nt=At,At.mode="disabled",At.is_active=!1),At.oncuechange=function(Xt){var se;if(!(At===Qe()||ot(gt)&&gt.hasState("is-fullscreen")))return At.mode="disabled";((se=et.subtitles)===null||se===void 0?void 0:se.native)||gt.emit(Xt.type,{track:Xt.target})},At}),R(ue,St,Pt.map(function(At){return{text:At.label,onclick:Di.bind(0,gt,At)}})),re=Pt,!Nt)return We();Di(gt,Nt),R(ue,Ft,{selected_index:re.indexOf(Nt)})}),gt.on("cuechange",function(Pt){var Nt;let At=(Nt=Pt.data)===null||Nt===void 0?void 0:Nt.track;if(!At||!["captions","subtitles","descriptions"].includes(At.kind))return;let Xt=Array.from(r(At,"activeCues",[])).filter((se,di,ln)=>di===ln.findIndex((Ci)=>se.id===Ci.id)).sort((se,di)=>typeof se.line!="number"||typeof di.line!="number"?0:se.line-di.line);l(Je,Xt)}),gt.on(["playlist/advance","src"],(Pt)=>{gt.currentSrc&&(Pt.type==="src"&&["is-playlist",v].some((Nt)=>gt.root.classList.contains(Nt))||(delete gt.opts.subtitles,ui(gt),ke=[],We(),re=[],Pe=[],Ke().forEach((Nt)=>Nt.removed=!0),R(ue,St,[])))})}}).pluginName="subtitles",ce.events=zt,ce);return function(V,et){if(typeof Qo=="object"&&typeof Zo<"u")return et;if(document.currentScript===null)return et;"flowplayer"in V||(V.flowplayer={extensions:[]});let pt=V.flowplayer;return typeof pt=="function"?(pt(et),et):(Array.isArray(pt.extensions)||(pt.extensions=[]),~pt.extensions.indexOf(et)||pt.extensions.push(et),et)}(window,jt)})});var Bd=De((tl,el)=>{(function(r,l){typeof tl=="object"&&typeof el<"u"?el.exports=l():typeof define=="function"&&define.amd?define(l):((r=typeof globalThis<"u"?globalThis:r||self).flowplayer=r.flowplayer||{},r.flowplayer.thumbnails=l())})(tl,function(){var r;function l(B,P){if(function(Y){return Object.values(r).includes(Y)}(P=P||r.Anonymous))return B instanceof HTMLVideoElement&&(B.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in B?B.crossOrigin=P:B.setAttribute("crossorigin",P),B}function d(B){let P=document.createElement("a");return P.href=B,P.origin}(function(B){B.Anonymous="anonymous",B.UseCredentials="use-credentials",B.Empty=""})(r||(r={}));function v(B,P){return B.querySelector("track[id='"+P+"']")}function E(B,P){let Y=document.createElement("track");return Y.src=P,function(Q,ct){try{return Q.src.startsWith("blob:"),d(Q.src)!==d(ct)}catch(st){return console.error(st),!0}}(B,P)&&(l(B),l(Y)),Y}var A=Object.freeze({__proto__:null,THUMBNAILS_RENDER:"thumbnails:render",THUMBNAILS_HIDE:"thumbnails:hide"});function R(B,P){let Y=B._customElements.get(P);return Y&&B.root.querySelector(Y)||void 0}let T=(B,P)=>new(((Y,Q)=>{let ct=Y.get(Q);if(!ct)throw Error(`no flowplayer component with the name ${Q} exists`);let st=window.customElements.get(Q);if(!st)throw Error(`no default flowplayer component with the name ${Q} exists`);let ot=window.customElements.get(ct);return typeof ot!="function"?st:ot})(B._customElements,P))(B);class L extends HTMLElement{constructor(B){super(),this.player=B}}class O extends L{constructor(B){super(B),this.className="fp-thumbnail-carousel",this.carousel=this.makeCarousel(),this.addEventListener("thumbnails:render",this.renderCarousel.bind(this,B)),this.addEventListener("thumbnails:hide",()=>B.root.classList.remove("with-thumbnails"))}renderCarousel(B,P){let{previous:Y,current:Q,next:ct}=P.detail;B.root.classList.add("with-thumbnails"),Y&&this.renderCarouselItem(this.carousel.previous,Y),Q&&this.renderCarouselItem(this.carousel.current,Q),ct&&this.renderCarouselItem(this.carousel.next,ct)}makeCarousel(){return{previous:this.makeCarouselItem("previous"),current:this.makeCarouselItem("current"),next:this.makeCarouselItem("next")}}makeCarouselItem(B){let P=document.createElement("div");return P.classList.add("thumbnail",B),this.append(P),P}renderCarouselItem(B,P){let Y=B.style;Y.backgroundImage=`url("${P.url}")`,Y.backgroundPositionX="-"+P.x+"px ",Y.backgroundPositionY="-"+P.y+"px",Y.height=P.h+"px",Y.width=P.w+"px"}}function X(B){let P=document.createElement("a");return P.href=B,P}let b=/#xywh=(\d+),(\d+),(\d+),(\d+)$/,G=/^(https:|https:|\/)/;function N(B,P){let Y=X(B.src),Q=X(P),[ct,st,ot,St,Ft]=(Q.hash.match(b)||[]).map(($t)=>parseInt($t,10));return{x:st,y:ot,w:St,h:Ft,url:K(P,Y)}}function K(B,P){if(B.match(G))return B;try{return new URL(B,P.href).toString()}catch(Y){return""}}let nt="is-source-processing";function Et(B,P,Y){let Q=function(ct,st){let ot=new CustomEvent(ct,{detail:st,cancelable:!0});return st&&Object.defineProperty(ot,"data",{get:()=>st}),ot}(P,Y);return B.dispatchEvent(Q),B}var q;(function(){let B=!1;try{let P=Object.defineProperty({},"passive",{get:function(){B=!0}});window.addEventListener("testPassive",null,P),window.removeEventListener("testPassive",null,P)}catch(P){}})();let C=((q=class{static activeThumbnails(P,Y){var Q,ct;let st=v(P,"thumbnails");if(!st)return;let ot=Array.from(st.track.cues||{length:0}),St=ot.find(($t)=>$t.startTime<=Y&&Y<=$t.endTime);if(!St)return{};let Ft=ot.indexOf(St);return{previous:N(st,((Q=ot[Ft-1])===null||Q===void 0?void 0:Q.text)||""),current:N(st,(St==null?void 0:St.text)||""),next:N(st,((ct=ot[Ft+1])===null||ct===void 0?void 0:ct.text)||"")}}constructor(P){((Y,Q,ct)=>{window.customElements.get(Q)||window.customElements.define(Q,ct),Y.customElements.get(Q)||Y.customElements.set(Q,Q)})(P,"flowplayer-thumbnails-carousel",O)}init(P,Y,Q){let ct=R(Q,"flowplayer-ui"),st=T(Q,"flowplayer-thumbnails-carousel"),ot=R(Q,"flowplayer-control");Q.reaper&&ct&&ot&&(ct.insertBefore(st,ot),Q.once("mount",()=>{this.attachTimelineListeners(Q,st)}),Q.textTracks.addEventListener("addtrack",function(St){let Ft=St.track;(Ft==null?void 0:Ft.id)==="thumbnails"&&(Ft.mode="hidden")}),Q.on("config",function(){var St;let Ft=(St=P==null?void 0:P.thumbnails)===null||St===void 0?void 0:St.src;if(typeof Ft=="string")return function($t,zt){if(function(ut,bt){return ut.querySelector("track[src='"+bt+"']")}($t,zt))return;let rt=E($t,zt);return rt.kind="metadata",rt.id="thumbnails",rt.src=zt,$t.append(rt),rt}(Q,Ft)}),Q.on(["playlist/advance","src"],(St)=>{Q.currentSrc&&(St.type==="src"&&["is-playlist",nt].some((Ft)=>Q.root.classList.contains(Ft))||(delete P.thumbnails,function(Ft){let $t=v(Ft,"thumbnails");$t&&$t.remove()}(Q)))}))}attachTimelineListeners(P,Y){P.on("timeline/gesture/move",({data:Q})=>{let ct=Q==null?void 0:Q.percent;if(typeof ct!="number")return;if(!Number.isFinite(P.duration))return;let st=Math.max(0,Math.min(P.duration,P.duration*(ct/100))),ot=q.activeThumbnails(P,st);ot&&requestAnimationFrame(()=>Et(Y,"thumbnails:render",Object.assign(Object.assign({},ot),{timestamp:st})))}),P.on("timeline/gesture/end",()=>{P.root.classList.contains("with-thumbnails")&&Et(Y,"thumbnails:hide")})}}).pluginName="thumbnails",q.events=A,q);return function(B,P){if(typeof tl=="object"&&typeof el<"u")return P;if(document.currentScript===null)return P;"flowplayer"in B||(B.flowplayer={extensions:[]});let Y=B.flowplayer;return typeof Y=="function"?(Y(P),P):(Array.isArray(Y.extensions)||(Y.extensions=[]),~Y.extensions.indexOf(P)||Y.extensions.push(P),P)}(window,C)})});var $d=De((il,nl)=>{(function(r,l){typeof il=="object"&&typeof nl<"u"?nl.exports=l():typeof define=="function"&&define.amd?define(l):((r=typeof globalThis<"u"?globalThis:r||self).flowplayer=r.flowplayer||{},r.flowplayer.vtsel=l())})(il,function(){let r=(q,C)=>new(((B,P)=>{let Y=B.get(P);if(!Y)throw Error(`no flowplayer component with the name ${P} exists`);let Q=window.customElements.get(P);if(!Q)throw Error(`no default flowplayer component with the name ${P} exists`);let ct=window.customElements.get(Y);return typeof ct!="function"?Q:ct})(q._customElements,C))(q);class l extends HTMLElement{constructor(q){super(),this.player=q}}let d="fp-on",v="fp-invis";class E extends l{constructor(q){super(q),this.player=q,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=R(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(C)=>{if(C.defaultPrevented)return;C.preventDefault();let B=this.menuContainer.open;B||(A(),document.active_menu=this.menuContainer),this.menuContainer.open=!B,q.root.classList.toggle("has-menu-opened",!B),this.summaryEle.setAttribute("aria-expanded",B?"false":"true")}),this.addEventListener("focusin",(C)=>{let B=C.target;B instanceof HTMLLIElement&&B.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(C)=>{let B=C.target;B instanceof HTMLLIElement&&B.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(q){if(this.className=q.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=q.id||R()),this.summaryEle.setAttribute("aria-label",q.menuTitle||"Menu"),q.summaryTitle&&(this.summaryEle.textContent=q.summaryTitle),q.summaryIcon){let C=r(this.player,q.summaryIcon);C.setAttribute("tabindex",""),this.summaryEle.append(C)}q.menuTitle&&(this.menuTitle.textContent=q.menuTitle),this.menu.classList.toggle("fp-icons",!!q.icons),this.addEventListener(q.options_event,(C)=>{this.render(C.data)}),q.item_selected_event&&this.addEventListener(q.item_selected_event,(C)=>{C.data!==void 0&&this.select_item(C.data.selected_index)})}render(q){this.olEle&&(this.olEle.innerHTML="",q&&q.forEach(this.menuOption,this),this.toggle_visibility(!(q==null?void 0:q.length)))}menuOption(q,C){let B=document.createElement("li");B.setAttribute("role","menuitem"),B.setAttribute("aria-selected","false"),B.setAttribute("tabindex","0"),q.icon&&B.append(q.icon);let P=document.createElement("span");P.textContent=q.text,B.append(P),B.addEventListener("click",()=>{this.select_item(C),typeof q.onclick=="function"&&q.onclick()}),this.olEle.appendChild(B),q.selected&&this.select_item(C)}select_item(q){this.options.forEach((C,B)=>{C.classList.toggle(d,B===q)})}unselect_item(){this.options.forEach((q)=>{q.classList.remove(d)})}toggle_visibility(q){this.classList.toggle(v,q),this.menu.style.setProperty("display",q?"none":"flex")}}function A(){Array.from(document.querySelectorAll(".fp-engine")).forEach((q)=>{var C;let B=q.root.querySelector("details[open].fp-menu-container");B&&(B.open=!1,(C=B.querySelector("summary"))===null||C===void 0||C.removeAttribute("aria-expanded"),q.root.classList.toggle("has-menu-opened",!1))})}function R(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener("click",function(q){this.active_menu&&!q.composedPath().includes(this.active_menu)&&(A(),this.active_menu=void 0)});function T(q,C,B){let P=function(Y,Q){let ct=new CustomEvent(Y,{detail:Q,cancelable:!0});return Q&&Object.defineProperty(ct,"data",{get:()=>Q}),ct}(C,B);return q.dispatchEvent(P),q}var L;(function(){let q=!1;try{let C=Object.defineProperty({},"passive",{get:function(){q=!0}});window.addEventListener("testPassive",null,C),window.removeEventListener("testPassive",null,C)}catch(C){}})(),function(q){q[q.Idle=0]="Idle",q[q.Receiving=1]="Receiving",q[q.Starting=2]="Starting"}(L||(L={}));var O=function(q){var C={exports:{}};return q(C,C.exports),C.exports}(function(q,C){var B,P,Y,Q,ct;B=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,P=/^(?=([^\/?#]*))\1([^]*)$/,Y=/(?:\/|^)\.(?=\/)/g,Q=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,ct={buildAbsoluteURL:function(st,ot,St){if(St=St||{},st=st.trim(),!(ot=ot.trim())){if(!St.alwaysNormalize)return st;var Ft=ct.parseURL(st);if(!Ft)throw Error("Error trying to parse base URL.");return Ft.path=ct.normalizePath(Ft.path),ct.buildURLFromParts(Ft)}var $t=ct.parseURL(ot);if(!$t)throw Error("Error trying to parse relative URL.");if($t.scheme)return St.alwaysNormalize?($t.path=ct.normalizePath($t.path),ct.buildURLFromParts($t)):ot;var zt=ct.parseURL(st);if(!zt)throw Error("Error trying to parse base URL.");if(!zt.netLoc&&zt.path&&zt.path[0]!=="/"){var rt=P.exec(zt.path);zt.netLoc=rt[1],zt.path=rt[2]}zt.netLoc&&!zt.path&&(zt.path="/");var ut={scheme:zt.scheme,netLoc:$t.netLoc,path:null,params:$t.params,query:$t.query,fragment:$t.fragment};if(!$t.netLoc&&(ut.netLoc=zt.netLoc,$t.path[0]!=="/"))if($t.path){var bt=zt.path,Bt=bt.substring(0,bt.lastIndexOf("/")+1)+$t.path;ut.path=ct.normalizePath(Bt)}else ut.path=zt.path,$t.params||(ut.params=zt.params,$t.query||(ut.query=zt.query));return ut.path===null&&(ut.path=St.alwaysNormalize?ct.normalizePath($t.path):$t.path),ct.buildURLFromParts(ut)},parseURL:function(st){var ot=B.exec(st);return ot?{scheme:ot[1]||"",netLoc:ot[2]||"",path:ot[3]||"",params:ot[4]||"",query:ot[5]||"",fragment:ot[6]||""}:null},normalizePath:function(st){for(st=st.split("").reverse().join("").replace(Y,"");st.length!==(st=st.replace(Q,"")).length;);return st.split("").reverse().join("")},buildURLFromParts:function(st){return st.scheme+st.netLoc+st.path+st.params+st.query+st.fragment}},q.exports=ct});let X=/#EXT-X-MEDIA:(.*)/g,b=/(.+?)=(".*?"|.*?)(?:,|$)/g;function G(q,C,B,P){let Y=B,Q={label:q,default:B,data:P||[]};return Object.defineProperty(Q,"selected",{get:()=>Y,set(ct){var st;typeof ct=="boolean"&&Y!==ct&&(Y&&((st=C.tracks)===null||st===void 0?void 0:st.filter((ot)=>ot.selected).length)===1||(Y=ct,ct&&C.emit("tracks:video:select",{track:Q})))}})}class N{constructor(q){typeof q=="string"&&(q=N.parseAttrList(q)),Object.keys(q).forEach((C)=>{q.hasOwnProperty(C)&&(C.substring(0,2)==="X-"&&(this.clientAttrs=this.clientAttrs||[],this.clientAttrs.push(C)),this[C]=q[C])})}bool(q){return this[q]==="YES"}static parseAttrList(q){let C,B={};for(b.lastIndex=0;(C=b.exec(q))!==null;){let P=C[2];P.indexOf('"')===0&&P.lastIndexOf('"')===P.length-1&&(P=P.slice(1,-1)),B[C[1].trim()]=P}return B}}var K,nt=Object.freeze({__proto__:null,PARSE_TRACKS:"parse:video:tracks",VIDEO_TRACK_SELECT:"tracks:video:select",VIDEO_TRACKS:"videoTracks",TRACKS:"video:tracks",SWITCH:"video:update"});let Et=((K=class{constructor(C){((B,P,Y)=>{window.customElements.get(P)||window.customElements.define(P,Y),B.customElements.get(P)||B.customElements.set(P,P)})(C,"flowplayer-video-menu",E)}init(C,B,P){var Y;let Q=r(P,"flowplayer-video-menu");Q instanceof E&&Q.setMenuAttrs({summaryTitle:P.i18n("vtsel.button_txt","Video"),menuTitle:P.i18n("vtsel.menu_title","Video Track"),class:"fp-vsel",options_event:K.events.TRACKS,item_selected_event:K.events.SWITCH}),P.on("mount",function(){var ct;(ct=function(st,ot){let St=st._customElements.get(ot);return St&&st.root.querySelector(St)||void 0}(P,P.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||ct===void 0||ct.append(Q)}),P.on("src",()=>{P.tracks=[],T(Q,K.events.TRACKS,[])}),P.on("parse:video:tracks",(ct)=>{let st=ct.detail;st&&function(ot,St,Ft){var $t,zt,rt,ut,bt,Bt,Vt;let ce,jt=0;for(X.lastIndex=0;(ce=X.exec(St))!==null;){let V=new N(ce[1]);if(V.TYPE==="VIDEO"){let et=($t=ot.tracks)===null||$t===void 0?void 0:$t.find((gt)=>gt.label===(V.NAME||V.LANGUAGE||"Track "+jt));if(et||(et=G(V.NAME||V.LANGUAGE||jt+++"",ot,V.bool("DEFAULT")),V.bool("DEFAULT")&&(et.data=(zt=ot.hls)===null||zt===void 0?void 0:zt.levels.slice(0)),(rt=ot.tracks)===null||rt===void 0||rt.push(et)),V.bool("DEFAULT"))continue;let pt={details:void 0,audioGroupIds:(ut=ot.hls)===null||ut===void 0?void 0:ut.levels[0].audioGroupIds,attrs:{},urlId:0,url:[V.URI?O.buildAbsoluteURL(Ft,V.URI,{alwaysNormalize:!0}):""],uri:V.URI?O.buildAbsoluteURL(Ft,V.URI,{alwaysNormalize:!0}):"",level:(bt=et.data)===null||bt===void 0?void 0:bt.length,name:"level "+((Bt=et.data)===null||Bt===void 0?void 0:Bt.length)};(Vt=et.data)===null||Vt===void 0||Vt.push(pt)}}}(P,st.manifest,st.url)}),(Y=P.videoTracks)===null||Y===void 0||Y.addEventListener("addtrack",()=>{C.is_native&&(P.tracks=Array.from(P.videoTracks||[]).map((ct,st)=>G(ct.label?ct.label:"track "+st,P,ct.selected)),P.emit("videoTracks",P.tracks))}),P.on("loadeddata",()=>{var ct;if(!C.is_native||!P.videoTracks){if((ct=P.tracks)===null||ct===void 0?void 0:ct.length)return P.emit("videoTracks",P.tracks);P.tracks=[G("default",P,!0)],P.emit("videoTracks",P.tracks)}}),P.on("videoTracks",()=>{let ct=P.tracks;ct&&Array.isArray(ct)&&(T(Q,K.events.TRACKS,ct.map((st)=>({text:st.label,onclick:()=>st.selected=!0}))),T(Q,K.events.SWITCH,{selected_index:ct.findIndex((st)=>st.default)}),Q instanceof E&&Q.toggle_visibility((ct==null?void 0:ct.length)<2))}),P.on("tracks:video:select",(ct)=>{let st=ct.detail.track,ot=P.tracks;if(!st||!ot||!Array.isArray(ot))return;if(T(Q,K.events.SWITCH,{selected_index:ot.indexOf(st)}),!P.opts.is_native||!P.videoTracks)return;P.videoTracks[ot.indexOf(st)].selected=!0;let St=ot.find((Ft)=>Ft.selected&&Ft!==st);St&&(St.selected=!1,P.videoTracks[ot.indexOf(St)].selected=!1)}),P.on("rts/status",(ct)=>{var st;let ot=ct.detail.status,St=ct.detail.data;if(ot===L.Idle)return T(Q,K.events.TRACKS,[]),P.tracks=[];ot===L.Receiving&&((st=P==null?void 0:P.tracks)===null||st===void 0||st.push(G((St==null?void 0:St.sourceId)||"Main",P,!(St==null?void 0:St.sourceId),St)))})}}).pluginName="vtsel",K.events=nt,K);return function(q,C){if(typeof il=="object"&&typeof nl<"u")return C;if(document.currentScript===null)return C;"flowplayer"in q||(q.flowplayer={extensions:[]});let B=q.flowplayer;return typeof B=="function"?(B(C),C):(Array.isArray(B.extensions)||(B.extensions=[]),~B.extensions.indexOf(C)||B.extensions.push(C),C)}(window,Et)})});var gh=De((Ba,Ic)=>{(function(r,l){typeof Ba=="object"&&typeof Ic=="object"?Ic.exports=l():typeof define=="function"&&define.amd?define([],l):typeof Ba=="object"?Ba.bowser=l():r.bowser=l()})(Ba,function(){return function(r){var l={};function d(v){if(l[v])return l[v].exports;var E=l[v]={i:v,l:!1,exports:{}};return r[v].call(E.exports,E,E.exports,d),E.l=!0,E.exports}return d.m=r,d.c=l,d.d=function(v,E,A){d.o(v,E)||Object.defineProperty(v,E,{enumerable:!0,get:A})},d.r=function(v){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})},d.t=function(v,E){if(1&E&&(v=d(v)),8&E)return v;if(4&E&&typeof v=="object"&&v&&v.__esModule)return v;var A=Object.create(null);if(d.r(A),Object.defineProperty(A,"default",{enumerable:!0,value:v}),2&E&&typeof v!="string")for(var R in v)d.d(A,R,function(T){return v[T]}.bind(null,R));return A},d.n=function(v){var E=v&&v.__esModule?function(){return v.default}:function(){return v};return d.d(E,"a",E),E},d.o=function(v,E){return Object.prototype.hasOwnProperty.call(v,E)},d.p="",d(d.s=90)}({17:function(r,l,d){l.__esModule=!0,l.default=void 0;var v=d(18),E=function(){function A(){}return A.getFirstMatch=function(R,T){var L=T.match(R);return L&&L.length>0&&L[1]||""},A.getSecondMatch=function(R,T){var L=T.match(R);return L&&L.length>1&&L[2]||""},A.matchAndReturnConst=function(R,T,L){if(R.test(T))return L},A.getWindowsVersionName=function(R){switch(R){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},A.getMacOSVersionName=function(R){var T=R.split(".").splice(0,2).map(function(L){return parseInt(L,10)||0});if(T.push(0),T[0]===10)switch(T[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},A.getAndroidVersionName=function(R){var T=R.split(".").splice(0,2).map(function(L){return parseInt(L,10)||0});if(T.push(0),!(T[0]===1&&T[1]<5))return T[0]===1&&T[1]<6?"Cupcake":T[0]===1&&T[1]>=6?"Donut":T[0]===2&&T[1]<2?"Eclair":T[0]===2&&T[1]===2?"Froyo":T[0]===2&&T[1]>2?"Gingerbread":T[0]===3?"Honeycomb":T[0]===4&&T[1]<1?"Ice Cream Sandwich":T[0]===4&&T[1]<4?"Jelly Bean":T[0]===4&&T[1]>=4?"KitKat":T[0]===5?"Lollipop":T[0]===6?"Marshmallow":T[0]===7?"Nougat":T[0]===8?"Oreo":T[0]===9?"Pie":void 0},A.getVersionPrecision=function(R){return R.split(".").length},A.compareVersions=function(R,T,L){L===void 0&&(L=!1);var O=A.getVersionPrecision(R),X=A.getVersionPrecision(T),b=Math.max(O,X),G=0,N=A.map([R,T],function(K){var nt=b-A.getVersionPrecision(K),Et=K+Array(nt+1).join(".0");return A.map(Et.split("."),function(q){return Array(20-q.length).join("0")+q}).reverse()});for(L&&(G=b-Math.min(O,X)),b-=1;b>=G;){if(N[0][b]>N[1][b])return 1;if(N[0][b]===N[1][b]){if(b===G)return 0;b-=1}else if(N[0][b]<N[1][b])return-1}},A.map=function(R,T){var L,O=[];if(Array.prototype.map)return Array.prototype.map.call(R,T);for(L=0;L<R.length;L+=1)O.push(T(R[L]));return O},A.find=function(R,T){var L,O;if(Array.prototype.find)return Array.prototype.find.call(R,T);for(L=0,O=R.length;L<O;L+=1){var X=R[L];if(T(X,L))return X}},A.assign=function(R){for(var T,L,O=R,X=arguments.length,b=Array(X>1?X-1:0),G=1;G<X;G++)b[G-1]=arguments[G];if(Object.assign)return Object.assign.apply(Object,[R].concat(b));var N=function(){var K=b[T];typeof K=="object"&&K!==null&&Object.keys(K).forEach(function(nt){O[nt]=K[nt]})};for(T=0,L=b.length;T<L;T+=1)N();return R},A.getBrowserAlias=function(R){return v.BROWSER_ALIASES_MAP[R]},A.getBrowserTypeByAlias=function(R){return v.BROWSER_MAP[R]||""},A}();l.default=E,r.exports=l.default},18:function(r,l,d){l.__esModule=!0,l.ENGINE_MAP=l.OS_MAP=l.PLATFORMS_MAP=l.BROWSER_MAP=l.BROWSER_ALIASES_MAP=void 0,l.BROWSER_ALIASES_MAP={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast","Pale Moon":"pale_moon",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},l.BROWSER_MAP={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",pale_moon:"Pale Moon",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},l.PLATFORMS_MAP={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv",bot:"bot"},l.OS_MAP={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},l.ENGINE_MAP={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"}},90:function(r,l,d){l.__esModule=!0,l.default=void 0;var v,E=(v=d(91))&&v.__esModule?v:{default:v},A=d(18);function R(L,O){for(var X=0;X<O.length;X++){var b=O[X];b.enumerable=b.enumerable||!1,b.configurable=!0,"value"in b&&(b.writable=!0),Object.defineProperty(L,b.key,b)}}var T=function(){function L(){}var O,X,b;return L.getParser=function(G,N){if(N===void 0&&(N=!1),typeof G!="string")throw Error("UserAgent should be a string");return new E.default(G,N)},L.parse=function(G){return new E.default(G).getResult()},O=L,b=[{key:"BROWSER_MAP",get:function(){return A.BROWSER_MAP}},{key:"ENGINE_MAP",get:function(){return A.ENGINE_MAP}},{key:"OS_MAP",get:function(){return A.OS_MAP}},{key:"PLATFORMS_MAP",get:function(){return A.PLATFORMS_MAP}}],(X=null)&&R(O.prototype,X),b&&R(O,b),L}();l.default=T,r.exports=l.default},91:function(r,l,d){l.__esModule=!0,l.default=void 0;var v=L(d(92)),E=L(d(93)),A=L(d(94)),R=L(d(95)),T=L(d(17));function L(X){return X&&X.__esModule?X:{default:X}}var O=function(){function X(G,N){if(N===void 0&&(N=!1),G==null||G==="")throw Error("UserAgent parameter can't be empty");this._ua=G,this.parsedResult={},N!==!0&&this.parse()}var b=X.prototype;return b.getUA=function(){return this._ua},b.test=function(G){return G.test(this._ua)},b.parseBrowser=function(){var G=this;this.parsedResult.browser={};var N=T.default.find(v.default,function(K){if(typeof K.test=="function")return K.test(G);if(Array.isArray(K.test))return K.test.some(function(nt){return G.test(nt)});throw Error("Browser's test function is not valid")});return N&&(this.parsedResult.browser=N.describe(this.getUA())),this.parsedResult.browser},b.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},b.getBrowserName=function(G){return G?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""},b.getBrowserVersion=function(){return this.getBrowser().version},b.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},b.parseOS=function(){var G=this;this.parsedResult.os={};var N=T.default.find(E.default,function(K){if(typeof K.test=="function")return K.test(G);if(Array.isArray(K.test))return K.test.some(function(nt){return G.test(nt)});throw Error("Browser's test function is not valid")});return N&&(this.parsedResult.os=N.describe(this.getUA())),this.parsedResult.os},b.getOSName=function(G){var N=this.getOS().name;return G?String(N).toLowerCase()||"":N||""},b.getOSVersion=function(){return this.getOS().version},b.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},b.getPlatformType=function(G){G===void 0&&(G=!1);var N=this.getPlatform().type;return G?String(N).toLowerCase()||"":N||""},b.parsePlatform=function(){var G=this;this.parsedResult.platform={};var N=T.default.find(A.default,function(K){if(typeof K.test=="function")return K.test(G);if(Array.isArray(K.test))return K.test.some(function(nt){return G.test(nt)});throw Error("Browser's test function is not valid")});return N&&(this.parsedResult.platform=N.describe(this.getUA())),this.parsedResult.platform},b.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},b.getEngineName=function(G){return G?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""},b.parseEngine=function(){var G=this;this.parsedResult.engine={};var N=T.default.find(R.default,function(K){if(typeof K.test=="function")return K.test(G);if(Array.isArray(K.test))return K.test.some(function(nt){return G.test(nt)});throw Error("Browser's test function is not valid")});return N&&(this.parsedResult.engine=N.describe(this.getUA())),this.parsedResult.engine},b.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},b.getResult=function(){return T.default.assign({},this.parsedResult)},b.satisfies=function(G){var N=this,K={},nt=0,Et={},q=0;if(Object.keys(G).forEach(function(ot){var St=G[ot];typeof St=="string"?(Et[ot]=St,q+=1):typeof St=="object"&&(K[ot]=St,nt+=1)}),nt>0){var C=Object.keys(K),B=T.default.find(C,function(ot){return N.isOS(ot)});if(B){var P=this.satisfies(K[B]);if(P!==void 0)return P}var Y=T.default.find(C,function(ot){return N.isPlatform(ot)});if(Y){var Q=this.satisfies(K[Y]);if(Q!==void 0)return Q}}if(q>0){var ct=Object.keys(Et),st=T.default.find(ct,function(ot){return N.isBrowser(ot,!0)});if(st!==void 0)return this.compareVersion(Et[st])}},b.isBrowser=function(G,N){N===void 0&&(N=!1);var K=this.getBrowserName().toLowerCase(),nt=G.toLowerCase(),Et=T.default.getBrowserTypeByAlias(nt);return N&&Et&&(nt=Et.toLowerCase()),nt===K},b.compareVersion=function(G){var N=[0],K=G,nt=!1,Et=this.getBrowserVersion();if(typeof Et=="string")return G[0]===">"||G[0]==="<"?(K=G.substr(1),G[1]==="="?(nt=!0,K=G.substr(2)):N=[],G[0]===">"?N.push(1):N.push(-1)):G[0]==="="?K=G.substr(1):G[0]==="~"&&(nt=!0,K=G.substr(1)),N.indexOf(T.default.compareVersions(Et,K,nt))>-1},b.isOS=function(G){return this.getOSName(!0)===String(G).toLowerCase()},b.isPlatform=function(G){return this.getPlatformType(!0)===String(G).toLowerCase()},b.isEngine=function(G){return this.getEngineName(!0)===String(G).toLowerCase()},b.is=function(G,N){return N===void 0&&(N=!1),this.isBrowser(G,N)||this.isOS(G)||this.isPlatform(G)},b.some=function(G){var N=this;return G===void 0&&(G=[]),G.some(function(K){return N.is(K)})},X}();l.default=O,r.exports=l.default},92:function(r,l,d){l.__esModule=!0,l.default=void 0;var v,E=(v=d(17))&&v.__esModule?v:{default:v},A=/version\/(\d+(\.?_?\d+)+)/i,R=[{test:[/googlebot/i],describe:function(T){var L={name:"Googlebot"},O=E.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,T)||E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/opera/i],describe:function(T){var L={name:"Opera"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/opr\/|opios/i],describe:function(T){var L={name:"Opera"},O=E.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,T)||E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/SamsungBrowser/i],describe:function(T){var L={name:"Samsung Internet for Android"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/Whale/i],describe:function(T){var L={name:"NAVER Whale Browser"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/PaleMoon/i],describe:function(T){var L={name:"Pale Moon"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:PaleMoon)[\s/](\d+(?:\.\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/MZBrowser/i],describe:function(T){var L={name:"MZ Browser"},O=E.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,T)||E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/focus/i],describe:function(T){var L={name:"Focus"},O=E.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,T)||E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/swing/i],describe:function(T){var L={name:"Swing"},O=E.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,T)||E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/coast/i],describe:function(T){var L={name:"Opera Coast"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(T){var L={name:"Opera Touch"},O=E.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/yabrowser/i],describe:function(T){var L={name:"Yandex Browser"},O=E.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/ucbrowser/i],describe:function(T){var L={name:"UC Browser"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/Maxthon|mxios/i],describe:function(T){var L={name:"Maxthon"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/epiphany/i],describe:function(T){var L={name:"Epiphany"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/puffin/i],describe:function(T){var L={name:"Puffin"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/sleipnir/i],describe:function(T){var L={name:"Sleipnir"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/k-meleon/i],describe:function(T){var L={name:"K-Meleon"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/micromessenger/i],describe:function(T){var L={name:"WeChat"},O=E.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/qqbrowser/i],describe:function(T){var L={name:/qqbrowserlite/i.test(T)?"QQ Browser Lite":"QQ Browser"},O=E.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/msie|trident/i],describe:function(T){var L={name:"Internet Explorer"},O=E.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/\sedg\//i],describe:function(T){var L={name:"Microsoft Edge"},O=E.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/edg([ea]|ios)/i],describe:function(T){var L={name:"Microsoft Edge"},O=E.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/vivaldi/i],describe:function(T){var L={name:"Vivaldi"},O=E.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/seamonkey/i],describe:function(T){var L={name:"SeaMonkey"},O=E.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/sailfish/i],describe:function(T){var L={name:"Sailfish"},O=E.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,T);return O&&(L.version=O),L}},{test:[/silk/i],describe:function(T){var L={name:"Amazon Silk"},O=E.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/phantom/i],describe:function(T){var L={name:"PhantomJS"},O=E.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/slimerjs/i],describe:function(T){var L={name:"SlimerJS"},O=E.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(T){var L={name:"BlackBerry"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/(web|hpw)[o0]s/i],describe:function(T){var L={name:"WebOS Browser"},O=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/bada/i],describe:function(T){var L={name:"Bada"},O=E.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/tizen/i],describe:function(T){var L={name:"Tizen"},O=E.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/qupzilla/i],describe:function(T){var L={name:"QupZilla"},O=E.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/firefox|iceweasel|fxios/i],describe:function(T){var L={name:"Firefox"},O=E.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/electron/i],describe:function(T){var L={name:"Electron"},O=E.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/MiuiBrowser/i],describe:function(T){var L={name:"Miui"},O=E.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/chromium/i],describe:function(T){var L={name:"Chromium"},O=E.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/chrome|crios|crmo/i],describe:function(T){var L={name:"Chrome"},O=E.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/GSA/i],describe:function(T){var L={name:"Google Search"},O=E.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:function(T){var L=!T.test(/like android/i),O=T.test(/android/i);return L&&O},describe:function(T){var L={name:"Android Browser"},O=E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/playstation 4/i],describe:function(T){var L={name:"PlayStation 4"},O=E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/safari|applewebkit/i],describe:function(T){var L={name:"Safari"},O=E.default.getFirstMatch(A,T);return O&&(L.version=O),L}},{test:[/.*/i],describe:function(T){var L=T.search("\\(")!==-1?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:E.default.getFirstMatch(L,T),version:E.default.getSecondMatch(L,T)}}}];l.default=R,r.exports=l.default},93:function(r,l,d){l.__esModule=!0,l.default=void 0;var v,E=(v=d(17))&&v.__esModule?v:{default:v},A=d(18),R=[{test:[/Roku\/DVP/],describe:function(T){var L=E.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,T);return{name:A.OS_MAP.Roku,version:L}}},{test:[/windows phone/i],describe:function(T){var L=E.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,T);return{name:A.OS_MAP.WindowsPhone,version:L}}},{test:[/windows /i],describe:function(T){var L=E.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,T),O=E.default.getWindowsVersionName(L);return{name:A.OS_MAP.Windows,version:L,versionName:O}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(T){var L={name:A.OS_MAP.iOS},O=E.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,T);return O&&(L.version=O),L}},{test:[/macintosh/i],describe:function(T){var L=E.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,T).replace(/[_\s]/g,"."),O=E.default.getMacOSVersionName(L),X={name:A.OS_MAP.MacOS,version:L};return O&&(X.versionName=O),X}},{test:[/(ipod|iphone|ipad)/i],describe:function(T){var L=E.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,T).replace(/[_\s]/g,".");return{name:A.OS_MAP.iOS,version:L}}},{test:function(T){var L=!T.test(/like android/i),O=T.test(/android/i);return L&&O},describe:function(T){var L=E.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,T),O=E.default.getAndroidVersionName(L),X={name:A.OS_MAP.Android,version:L};return O&&(X.versionName=O),X}},{test:[/(web|hpw)[o0]s/i],describe:function(T){var L=E.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,T),O={name:A.OS_MAP.WebOS};return L&&L.length&&(O.version=L),O}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(T){var L=E.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,T)||E.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,T)||E.default.getFirstMatch(/\bbb(\d+)/i,T);return{name:A.OS_MAP.BlackBerry,version:L}}},{test:[/bada/i],describe:function(T){var L=E.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,T);return{name:A.OS_MAP.Bada,version:L}}},{test:[/tizen/i],describe:function(T){var L=E.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,T);return{name:A.OS_MAP.Tizen,version:L}}},{test:[/linux/i],describe:function(){return{name:A.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:A.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(T){var L=E.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,T);return{name:A.OS_MAP.PlayStation4,version:L}}}];l.default=R,r.exports=l.default},94:function(r,l,d){l.__esModule=!0,l.default=void 0;var v,E=(v=d(17))&&v.__esModule?v:{default:v},A=d(18),R=[{test:[/googlebot/i],describe:function(){return{type:A.PLATFORMS_MAP.bot,vendor:"Google"}}},{test:[/huawei/i],describe:function(T){var L=E.default.getFirstMatch(/(can-l01)/i,T)&&"Nova",O={type:A.PLATFORMS_MAP.mobile,vendor:"Huawei"};return L&&(O.model=L),O}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:A.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:A.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:A.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:A.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:A.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:A.PLATFORMS_MAP.tablet}}},{test:function(T){var L=T.test(/ipod|iphone/i),O=T.test(/like (ipod|iphone)/i);return L&&!O},describe:function(T){var L=E.default.getFirstMatch(/(ipod|iphone)/i,T);return{type:A.PLATFORMS_MAP.mobile,vendor:"Apple",model:L}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:A.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/Nokia/i],describe:function(T){var L=E.default.getFirstMatch(/Nokia\s+([0-9]+(\.[0-9]+)?)/i,T),O={type:A.PLATFORMS_MAP.mobile,vendor:"Nokia"};return L&&(O.model=L),O}},{test:[/[^-]mobi/i],describe:function(){return{type:A.PLATFORMS_MAP.mobile}}},{test:function(T){return T.getBrowserName(!0)==="blackberry"},describe:function(){return{type:A.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(T){return T.getBrowserName(!0)==="bada"},describe:function(){return{type:A.PLATFORMS_MAP.mobile}}},{test:function(T){return T.getBrowserName()==="windows phone"},describe:function(){return{type:A.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(T){var L=Number(String(T.getOSVersion()).split(".")[0]);return T.getOSName(!0)==="android"&&L>=3},describe:function(){return{type:A.PLATFORMS_MAP.tablet}}},{test:function(T){return T.getOSName(!0)==="android"},describe:function(){return{type:A.PLATFORMS_MAP.mobile}}},{test:function(T){return T.getOSName(!0)==="macos"},describe:function(){return{type:A.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(T){return T.getOSName(!0)==="windows"},describe:function(){return{type:A.PLATFORMS_MAP.desktop}}},{test:function(T){return T.getOSName(!0)==="linux"},describe:function(){return{type:A.PLATFORMS_MAP.desktop}}},{test:function(T){return T.getOSName(!0)==="playstation 4"},describe:function(){return{type:A.PLATFORMS_MAP.tv}}},{test:function(T){return T.getOSName(!0)==="roku"},describe:function(){return{type:A.PLATFORMS_MAP.tv}}}];l.default=R,r.exports=l.default},95:function(r,l,d){l.__esModule=!0,l.default=void 0;var v,E=(v=d(17))&&v.__esModule?v:{default:v},A=d(18),R=[{test:function(T){return T.getBrowserName(!0)==="microsoft edge"},describe:function(T){if(/\sedg\//i.test(T))return{name:A.ENGINE_MAP.Blink};var L=E.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,T);return{name:A.ENGINE_MAP.EdgeHTML,version:L}}},{test:[/trident/i],describe:function(T){var L={name:A.ENGINE_MAP.Trident},O=E.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:function(T){return T.test(/presto/i)},describe:function(T){var L={name:A.ENGINE_MAP.Presto},O=E.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:function(T){var L=T.test(/gecko/i),O=T.test(/like gecko/i);return L&&!O},describe:function(T){var L={name:A.ENGINE_MAP.Gecko},O=E.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:A.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(T){var L={name:A.ENGINE_MAP.WebKit},O=E.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,T);return O&&(L.version=O),L}}];l.default=R,r.exports=l.default}})})});var Uc=De((W1,Sh)=>{var xc=Object.prototype.hasOwnProperty,an=function(){var r=[];for(var l=0;l<256;++l)r.push("%"+((l<16?"0":"")+l.toString(16)).toUpperCase());return r}(),qv=function(l){var d;while(l.length){var v=l.pop();if(d=v.obj[v.prop],Array.isArray(d)){var E=[];for(var A=0;A<d.length;++A)if(typeof d[A]<"u")E.push(d[A]);v.obj[v.prop]=E}}return d},yh=function(l,d){var v=d&&d.plainObjects?Object.create(null):{};for(var E=0;E<l.length;++E)if(typeof l[E]<"u")v[E]=l[E];return v},Xv=function r(l,d,v){if(!d)return l;if(typeof d!=="object"){if(Array.isArray(l))l.push(d);else if(l&&typeof l==="object"){if(v&&(v.plainObjects||v.allowPrototypes)||!xc.call(Object.prototype,d))l[d]=!0}else return[l,d];return l}if(!l||typeof l!=="object")return[l].concat(d);var E=l;if(Array.isArray(l)&&!Array.isArray(d))E=yh(l,v);if(Array.isArray(l)&&Array.isArray(d))return d.forEach(function(A,R){if(xc.call(l,R)){var T=l[R];if(T&&typeof T==="object"&&A&&typeof A==="object")l[R]=r(T,A,v);else l.push(A)}else l[R]=A}),l;return Object.keys(d).reduce(function(A,R){var T=d[R];if(xc.call(A,R))A[R]=r(A[R],T,v);else A[R]=T;return A},E)},Jv=function(l,d){return Object.keys(d).reduce(function(v,E){return v[E]=d[E],v},l)},Qv=function(r){try{return decodeURIComponent(r.replace(/\+/g," "))}catch(l){return r}},Zv=function(l){if(l.length===0)return l;var d=typeof l==="string"?l:String(l),v="";for(var E=0;E<d.length;++E){var A=d.charCodeAt(E);if(A===45||A===46||A===95||A===126||A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122){v+=d.charAt(E);continue}if(A<128){v=v+an[A];continue}if(A<2048){v=v+(an[192|A>>6]+an[128|A&63]);continue}if(A<55296||A>=57344){v=v+(an[224|A>>12]+an[128|A>>6&63]+an[128|A&63]);continue}E+=1,A=65536+((A&1023)<<10|d.charCodeAt(E)&1023),v+=an[240|A>>18]+an[128|A>>12&63]+an[128|A>>6&63]+an[128|A&63]}return v},tE=function(l){var d=[{obj:{o:l},prop:"o"}],v=[];for(var E=0;E<d.length;++E){var A=d[E],R=A.obj[A.prop],T=Object.keys(R);for(var L=0;L<T.length;++L){var O=T[L],X=R[O];if(typeof X==="object"&&X!==null&&v.indexOf(X)===-1)d.push({obj:R,prop:O}),v.push(X)}}return qv(d)},eE=function(l){return Object.prototype.toString.call(l)==="[object RegExp]"},iE=function(l){if(l===null||typeof l>"u")return!1;return!!(l.constructor&&l.constructor.isBuffer&&l.constructor.isBuffer(l))};Sh.exports={arrayToObject:yh,assign:Jv,compact:tE,decode:Qv,encode:Zv,isBuffer:iE,isRegExp:eE,merge:Xv}});var Bc=De((Y1,bh)=>{var nE=String.prototype.replace,rE=/%20/g;bh.exports={default:"RFC3986",formatters:{RFC1738:function(r){return nE.call(r,rE,"+")},RFC3986:function(r){return String(r)}},RFC1738:"RFC1738",RFC3986:"RFC3986"}});var Ah=De((j1,_h)=>{var Hc=Uc(),$c=Bc(),Th={brackets:function(l){return l+"[]"},indices:function(l,d){return l+"["+d+"]"},repeat:function(l){return l}},Sl=Array.isArray,sE=Array.prototype.push,Gc=function(r,l){sE.apply(r,Sl(l)?l:[l])},aE=Date.prototype.toISOString,on={delimiter:"&",encode:!0,encoder:Hc.encode,encodeValuesOnly:!1,serializeDate:function(l){return aE.call(l)},skipNulls:!1,strictNullHandling:!1},oE=function r(l,d,v,E,A,R,T,L,O,X,b,G){var N=l;if(typeof T==="function")N=T(d,N);else if(N instanceof Date)N=X(N);if(N===null){if(E)return R&&!G?R(d,on.encoder):d;N=""}if(typeof N==="string"||typeof N==="number"||typeof N==="boolean"||Hc.isBuffer(N)){if(R){var K=G?d:R(d,on.encoder);return[b(K)+"="+b(R(N,on.encoder))]}return[b(d)+"="+b(String(N))]}var nt=[];if(typeof N>"u")return nt;var Et;if(Sl(T))Et=T;else{var q=Object.keys(N);Et=L?q.sort(L):q}for(var C=0;C<Et.length;++C){var B=Et[C];if(A&&N[B]===null)continue;if(Sl(N))Gc(nt,r(N[B],v(d,B),v,E,A,R,T,L,O,X,b,G));else Gc(nt,r(N[B],d+(O?"."+B:"["+B+"]"),v,E,A,R,T,L,O,X,b,G))}return nt};_h.exports=function(r,l){var d=r,v=l?Hc.assign({},l):{};if(v.encoder!==null&&typeof v.encoder<"u"&&typeof v.encoder!=="function")throw TypeError("Encoder has to be a function.");var E=typeof v.delimiter>"u"?on.delimiter:v.delimiter,A=typeof v.strictNullHandling==="boolean"?v.strictNullHandling:on.strictNullHandling,R=typeof v.skipNulls==="boolean"?v.skipNulls:on.skipNulls,T=typeof v.encode==="boolean"?v.encode:on.encode,L=typeof v.encoder==="function"?v.encoder:on.encoder,O=typeof v.sort==="function"?v.sort:null,X=typeof v.allowDots>"u"?!1:v.allowDots,b=typeof v.serializeDate==="function"?v.serializeDate:on.serializeDate,G=typeof v.encodeValuesOnly==="boolean"?v.encodeValuesOnly:on.encodeValuesOnly;if(typeof v.format>"u")v.format=$c.default;else if(!Object.prototype.hasOwnProperty.call($c.formatters,v.format))throw TypeError("Unknown format option provided.");var N=$c.formatters[v.format],K,nt;if(typeof v.filter==="function")nt=v.filter,d=nt("",d);else if(Sl(v.filter))nt=v.filter,K=nt;var Et=[];if(typeof d!=="object"||d===null)return"";var q;if(v.arrayFormat in Th)q=v.arrayFormat;else if("indices"in v)q=v.indices?"indices":"repeat";else q="indices";var C=Th[q];if(!K)K=Object.keys(d);if(O)K.sort(O);for(var B=0;B<K.length;++B){var P=K[B];if(R&&d[P]===null)continue;Gc(Et,oE(d[P],P,C,A,R,T?L:null,nt,O,X,b,N,G))}var Y=Et.join(E),Q=v.addQueryPrefix===!0?"?":"";return Y.length>0?Q+Y:""}});var wh=De((z1,Lh)=>{var $a=Uc(),Kc=Object.prototype.hasOwnProperty,ki={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:$a.decode,delimiter:"&",depth:5,parameterLimit:1000,plainObjects:!1,strictNullHandling:!1},lE=function(l,d){var v={},E=d.ignoreQueryPrefix?l.replace(/^\?/,""):l,A=d.parameterLimit===1/0?void 0:d.parameterLimit,R=E.split(d.delimiter,A);for(var T=0;T<R.length;++T){var L=R[T],O=L.indexOf("]="),X=O===-1?L.indexOf("="):O+1,b,G;if(X===-1)b=d.decoder(L,ki.decoder),G=d.strictNullHandling?null:"";else b=d.decoder(L.slice(0,X),ki.decoder),G=d.decoder(L.slice(X+1),ki.decoder);if(Kc.call(v,b))v[b]=[].concat(v[b]).concat(G);else v[b]=G}return v},cE=function(r,l,d){var v=l;for(var E=r.length-1;E>=0;--E){var A,R=r[E];if(R==="[]"&&d.parseArrays)A=[].concat(v);else{A=d.plainObjects?Object.create(null):{};var T=R.charAt(0)==="["&&R.charAt(R.length-1)==="]"?R.slice(1,-1):R,L=parseInt(T,10);if(!d.parseArrays&&T==="")A={0:v};else if(!isNaN(L)&&R!==T&&String(L)===T&&L>=0&&(d.parseArrays&&L<=d.arrayLimit))A=[],A[L]=v;else if(T!=="__proto__")A[T]=v}v=A}return v},uE=function(l,d,v){if(!l)return;var E=v.allowDots?l.replace(/\.([^.[]+)/g,"[$1]"):l,A=/(\[[^[\]]*])/,R=/(\[[^[\]]*])/g,T=A.exec(E),L=T?E.slice(0,T.index):E,O=[];if(L){if(!v.plainObjects&&Kc.call(Object.prototype,L)){if(!v.allowPrototypes)return}O.push(L)}var X=0;while((T=R.exec(E))!==null&&X<v.depth){if(X+=1,!v.plainObjects&&Kc.call(Object.prototype,T[1].slice(1,-1))){if(!v.allowPrototypes)return}O.push(T[1])}if(T)O.push("["+E.slice(T.index)+"]");return cE(O,d,v)};Lh.exports=function(r,l){var d=l?$a.assign({},l):{};if(d.decoder!==null&&d.decoder!==void 0&&typeof d.decoder!=="function")throw TypeError("Decoder has to be a function.");if(d.ignoreQueryPrefix=d.ignoreQueryPrefix===!0,d.delimiter=typeof d.delimiter==="string"||$a.isRegExp(d.delimiter)?d.delimiter:ki.delimiter,d.depth=typeof d.depth==="number"?d.depth:ki.depth,d.arrayLimit=typeof d.arrayLimit==="number"?d.arrayLimit:ki.arrayLimit,d.parseArrays=d.parseArrays!==!1,d.decoder=typeof d.decoder==="function"?d.decoder:ki.decoder,d.allowDots=typeof d.allowDots==="boolean"?d.allowDots:ki.allowDots,d.plainObjects=typeof d.plainObjects==="boolean"?d.plainObjects:ki.plainObjects,d.allowPrototypes=typeof d.allowPrototypes==="boolean"?d.allowPrototypes:ki.allowPrototypes,d.parameterLimit=typeof d.parameterLimit==="number"?d.parameterLimit:ki.parameterLimit,d.strictNullHandling=typeof d.strictNullHandling==="boolean"?d.strictNullHandling:ki.strictNullHandling,r===""||r===null||typeof r>"u")return d.plainObjects?Object.create(null):{};var v=typeof r==="string"?lE(r,d):r,E=d.plainObjects?Object.create(null):{},A=Object.keys(v);for(var R=0;R<A.length;++R){var T=A[R],L=uE(T,v[T],d);E=$a.merge(E,L,d)}return $a.compact(E)}});var kh=De((q1,Rh)=>{var dE=Ah(),hE=wh(),fE=Bc();Rh.exports={formats:fE,parse:hE,stringify:dE}});var Zu=document.createElement("style");Zu.textContent=`.fp-spins-container {
33
+ Switching to level ${X} @ ${0|ht} bps`),s.trigger(b.FRAG_LOAD_EMERGENCY_ABORTED,{frag:i,part:r,stats:u})},this.hls=e,this.bwEstimator=this.initEstimator(),this.registerListeners()}resetEstimator(e){e&&(D.log("setting initial bwe to "+e),this.hls.config.abrEwmaDefaultEstimate=e),this.firstSelection=-1,this.bwEstimator=this.initEstimator()}initEstimator(){let e=this.hls.config;return new ea(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate)}registerListeners(){let{hls:e}=this;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.FRAG_LOADING,this.onFragLoading,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(b.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e&&(e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.FRAG_LOADING,this.onFragLoading,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(b.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.off(b.ERROR,this.onError,this))}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=null,this.fragCurrent=this.partCurrent=null}onManifestLoading(e,i){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}onLevelsUpdated(){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(e,i){let r=i.frag;if(!this.ignoreFragment(r)){var s;if(!r.bitrateTest)this.fragCurrent=r,this.partCurrent=(s=i.part)!=null?s:null;this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100)}}onLevelSwitching(e,i){this.clearTimer()}onError(e,i){if(!i.fatal)switch(i.details){case N.BUFFER_ADD_CODEC_ERROR:case N.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case N.FRAG_LOAD_TIMEOUT:{let r=i.frag,{fragCurrent:s,partCurrent:a}=this;if(r&&s&&r.sn===s.sn&&r.level===s.level){let l=performance.now(),c=a?a.stats:r.stats,u=l-c.loading.start,h=c.loading.first?c.loading.first-c.loading.start:-1;if(c.loaded&&h>-1){let m=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(u-Math.min(m,h),c.loaded)}else this.bwEstimator.sampleTTFB(u)}break}}}getTimeToLoadFrag(e,i,r,s){return e+r/i+(s?this.lastLevelLoadSec:0)}onLevelLoaded(e,i){let r=this.hls.config,{loading:s}=i.stats,a=s.end-s.start;L(a)&&(this.lastLevelLoadSec=a/1000),i.details.live?this.bwEstimator.update(r.abrEwmaSlowLive,r.abrEwmaFastLive):this.bwEstimator.update(r.abrEwmaSlowVoD,r.abrEwmaFastVoD)}onFragLoaded(e,{frag:i,part:r}){let s=r?r.stats:i.stats;if(i.type===ie&&this.bwEstimator.sampleTTFB(s.loading.first-s.loading.start),!this.ignoreFragment(i)){if(this.clearTimer(),i.level===this._nextAutoLevel&&(this._nextAutoLevel=-1),this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){let a=r?r.duration:i.duration,l=this.hls.levels[i.level],c=(l.loaded?l.loaded.bytes:0)+s.loaded,u=(l.loaded?l.loaded.duration:0)+a;l.loaded={bytes:c,duration:u},l.realBitrate=Math.round(8*c/u)}if(i.bitrateTest){let a={stats:s,frag:i,part:r,id:i.type};this.onFragBuffered(b.FRAG_BUFFERED,a),i.bitrateTest=!1}else this.lastLoadedFragLevel=i.level}}onFragBuffered(e,i){let{frag:r,part:s}=i,a=s!=null&&s.stats.loaded?s.stats:r.stats;if(a.aborted)return;if(this.ignoreFragment(r))return;let l=a.parsing.end-a.loading.start-Math.min(a.loading.first-a.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(l,a.loaded),a.bwEstimate=this.getBwEstimate(),r.bitrateTest?this.bitrateTestDelay=l/1000:this.bitrateTestDelay=0}ignoreFragment(e){return e.type!==ie||e.sn==="initSegment"}clearTimer(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1)}get firstAutoLevel(){let{maxAutoLevel:e,minAutoLevel:i}=this.hls,r=this.getBwEstimate(),s=this.hls.config.maxStarvationDelay,a=this.findBestLevel(r,i,e,0,s,1,1);if(a>-1)return a;let l=this.hls.firstLevel,c=Math.min(Math.max(l,i),e);return D.warn(`[abr] Could not find best starting auto level. Defaulting to first in playlist ${l} clamped to ${c}`),c}get forcedAutoLevel(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}get nextAutoLevel(){let e=this.forcedAutoLevel,i=this.bwEstimator.canEstimate(),r=this.lastLoadedFragLevel>-1;if(!(e===-1||i&&r&&this.nextAutoLevelKey!==this.getAutoLevelKey()))return e;let s=i&&r?this.getNextABRAutoLevel():this.firstAutoLevel;if(e!==-1){let a=this.hls.levels;if(a.length>Math.max(e,s)&&a[e].loadError<=a[s].loadError)return e}return this._nextAutoLevel=s,this.nextAutoLevelKey=this.getAutoLevelKey(),s}getAutoLevelKey(){return`${this.getBwEstimate()}_${this.getStarvationDelay().toFixed(2)}`}getNextABRAutoLevel(){let{fragCurrent:e,partCurrent:i,hls:r}=this,{maxAutoLevel:s,config:a,minAutoLevel:l}=r,c=i?i.duration:e?e.duration:0,u=this.getBwEstimate(),h=this.getStarvationDelay(),m=a.abrBandWidthFactor,y=a.abrBandWidthUpFactor;if(h){let C=this.findBestLevel(u,l,s,h,0,m,y);if(C>=0)return C}let S=c?Math.min(c,a.maxStarvationDelay):a.maxStarvationDelay;if(!h){let C=this.bitrateTestDelay;if(C)S=(c?Math.min(c,a.maxLoadingDelay):a.maxLoadingDelay)-C,D.info(`[abr] bitrate test took ${Math.round(1000*C)}ms, set first fragment max fetchDuration to ${Math.round(1000*S)} ms`),m=y=1}let _=this.findBestLevel(u,l,s,h,S,m,y);if(D.info(`[abr] ${h?"rebuffering expected":"buffer is empty"}, optimal quality level ${_}`),_>-1)return _;let w=r.levels[l],I=r.levels[r.loadLevel];return(w==null?void 0:w.bitrate)<(I==null?void 0:I.bitrate)?l:r.loadLevel}getStarvationDelay(){let e=this.hls,i=e.media;if(!i)return 1/0;let r=i&&i.playbackRate!==0?Math.abs(i.playbackRate):1,s=e.mainForwardBufferInfo;return(s?s.len:0)/r}getBwEstimate(){return this.bwEstimator.canEstimate()?this.bwEstimator.getEstimate():this.hls.config.abrEwmaDefaultEstimate}findBestLevel(e,i,r,s,a,l,c){var u;let h=s+a,m=this.lastLoadedFragLevel,y=m===-1?this.hls.firstLevel:m,{fragCurrent:S,partCurrent:_}=this,{levels:w,allAudioTracks:I,loadLevel:C,config:P}=this.hls;if(w.length===1)return 0;let F=w[y],W=!(F==null||(u=F.details)==null||!u.live),z=C===-1||m===-1,lt,it="SDR",ft=(F==null?void 0:F.frameRate)||0,{audioPreference:mt,videoPreference:Q}=P,X=this.audioTracksByGroup||(this.audioTracksByGroup=function(Mt){return Mt.reduce((at,vt)=>{let Dt=at.groups[vt.groupId];Dt||(Dt=at.groups[vt.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1}),Dt.tracks.push(vt);let Ot=vt.channels||"2";return Dt.channels[Ot]=(Dt.channels[Ot]||0)+1,Dt.hasDefault=Dt.hasDefault||vt.default,Dt.hasAutoSelect=Dt.hasAutoSelect||vt.autoselect,Dt.hasDefault&&(at.hasDefaultAudio=!0),Dt.hasAutoSelect&&(at.hasAutoSelectAudio=!0),at},{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}(I));if(z){if(this.firstSelection!==-1)return this.firstSelection;let Mt=function(le,me,he,Ie,ri){let pe=Object.keys(le),Sr=Ie==null?void 0:Ie.channels,Te=Ie==null?void 0:Ie.audioCodec,Do=Sr&&parseInt(Sr)===2,Aa=!0,Br=!1,Qi=1/0,gn=1/0,pn=1/0,hc=0,La=[],{preferHDR:lm,allowedVideoRanges:cm}=xl(me,ri);for(let Oe=pe.length;Oe--;){let we=le[pe[Oe]];Aa=we.channels[2]>0,Qi=Math.min(Qi,we.minHeight),gn=Math.min(gn,we.minFramerate),pn=Math.min(pn,we.minBitrate);let Me=cm.filter((fc)=>we.videoRanges[fc]>0);Me.length>0&&(Br=!0,La=Me)}Qi=L(Qi)?Qi:0,gn=L(gn)?gn:0;let ed=Math.max(1080,Qi),id=Math.max(30,gn);return pn=L(pn)?pn:he,he=Math.max(pn,he),Br||(me=void 0,La=[]),{codecSet:pe.reduce((Oe,we)=>{let Me=le[we];if(we===Oe)return Oe;if(Me.minBitrate>he)return Be(we,`min bitrate of ${Me.minBitrate} > current estimate of ${he}`),Oe;if(!Me.hasDefaultAudio)return Be(we,"no renditions with default or auto-select sound found"),Oe;if(Te&&we.indexOf(Te.substring(0,4))%5!=0)return Be(we,`audio codec preference "${Te}" not found`),Oe;if(Sr&&!Do){if(!Me.channels[Sr])return Be(we,`no renditions with ${Sr} channel sound found (channels options: ${Object.keys(Me.channels)})`),Oe}else if((!Te||Do)&&Aa&&Me.channels[2]===0)return Be(we,"no renditions with stereo sound found"),Oe;return Me.minHeight>ed?(Be(we,`min resolution of ${Me.minHeight} > maximum of ${ed}`),Oe):Me.minFramerate>id?(Be(we,`min framerate of ${Me.minFramerate} > maximum of ${id}`),Oe):La.some((fc)=>Me.videoRanges[fc]>0)?Me.maxScore<hc?(Be(we,`max score of ${Me.maxScore} < selected max of ${hc}`),Oe):Oe&&(Jr(we)>=Jr(Oe)||Me.fragmentError>le[Oe].fragmentError)?Oe:(hc=Me.maxScore,we):(Be(we,`no variants with VIDEO-RANGE of ${JSON.stringify(La)} found`),Oe)},void 0),videoRanges:La,preferHDR:lm,minFramerate:gn,minBitrate:pn}}(this.codecTiers||(this.codecTiers=function(le,me,he,Ie){return le.slice(he,Ie+1).reduce((ri,pe)=>{if(!pe.codecSet)return ri;let Sr=pe.audioGroups,Te=ri[pe.codecSet];Te||(ri[pe.codecSet]=Te={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!Sr,fragmentError:0}),Te.minBitrate=Math.min(Te.minBitrate,pe.bitrate);let Do=Math.min(pe.height,pe.width);return Te.minHeight=Math.min(Te.minHeight,Do),Te.minFramerate=Math.min(Te.minFramerate,pe.frameRate),Te.maxScore=Math.max(Te.maxScore,pe.score),Te.fragmentError+=pe.fragmentError,Te.videoRanges[pe.videoRange]=(Te.videoRanges[pe.videoRange]||0)+1,Sr&&Sr.forEach((Aa)=>{if(!Aa)return;let Br=me.groups[Aa];Br&&(Te.hasDefaultAudio=Te.hasDefaultAudio||me.hasDefaultAudio?Br.hasDefault:Br.hasAutoSelect||!me.hasDefaultAudio&&!me.hasAutoSelectAudio,Object.keys(Br.channels).forEach((Qi)=>{Te.channels[Qi]=(Te.channels[Qi]||0)+Br.channels[Qi]}))}),ri},{})}(w,X,i,r)),it,e,mt,Q),{codecSet:at,videoRanges:vt,minFramerate:Dt,minBitrate:Ot,preferHDR:Gt}=Mt;lt=at,it=Gt?vt[vt.length-1]:vt[0],ft=Dt,e=Math.max(e,Ot),D.log("[abr] picked start tier "+JSON.stringify(Mt))}else lt=F==null?void 0:F.codecSet,it=F==null?void 0:F.videoRange;let kt=_?_.duration:S?S.duration:0,ht=this.bwEstimator.getEstimateTTFB()/1000,wt=[];for(let Mt=r;Mt>=i;Mt--){var It;let at=w[Mt],vt=Mt>y;if(!at)continue;if(P.useMediaCapabilities&&!at.supportedResult&&!at.supportedPromise){let he=navigator.mediaCapabilities;typeof(he==null?void 0:he.decodingInfo)=="function"&&Pl(at,X,it,ft,e,mt)?(at.supportedPromise=Xi(at,X,he),at.supportedPromise.then((Ie)=>{if(!this.hls)return;at.supportedResult=Ie;let ri=this.hls.levels,pe=ri.indexOf(at);Ie.error?D.warn(`[abr] MediaCapabilities decodingInfo error: "${Ie.error}" for level ${pe} ${JSON.stringify(Ie)}`):Ie.supported||(D.warn(`[abr] Unsupported MediaCapabilities decodingInfo result for level ${pe} ${JSON.stringify(Ie)}`),pe>-1&&ri.length>1&&(D.log("[abr] Removing unsupported level "+pe),this.hls.removeLevel(pe)))})):at.supportedResult=Hn}if(lt&&at.codecSet!==lt||it&&at.videoRange!==it||vt&&ft>at.frameRate||!vt&&ft>0&&ft<at.frameRate||at.supportedResult&&((It=at.supportedResult.decodingInfoResults)==null||!It[0].smooth)){wt.push(Mt);continue}let Dt=at.details,Ot=(_?Dt==null?void 0:Dt.partTarget:Dt==null?void 0:Dt.averagetargetduration)||kt,Gt;Gt=vt?c*e:l*e;let le=kt&&s>=2*kt&&a===0?w[Mt].averageBitrate:w[Mt].maxBitrate,me=this.getTimeToLoadFrag(ht,Gt,le*Ot,Dt===void 0);if(Gt>=le&&(Mt===m||at.loadError===0&&at.fragmentError===0)&&(me<=ht||!L(me)||W&&!this.bitrateTestDelay||me<h)){let he=this.forcedAutoLevel;return Mt===C||he!==-1&&he===C||(wt.length&&D.trace(`[abr] Skipped level(s) ${wt.join(",")} of ${r} max with CODECS and VIDEO-RANGE:"${w[wt[0]].codecs}" ${w[wt[0]].videoRange}; not compatible with "${F.codecs}" ${it}`),D.info(`[abr] switch candidate:${y}->${Mt} adjustedbw(${Math.round(Gt)})-bitrate=${Math.round(Gt-le)} ttfb:${ht.toFixed(1)} avgDuration:${Ot.toFixed(1)} maxFetchDuration:${h.toFixed(1)} fetchDuration:${me.toFixed(1)} firstSelection:${z} codecSet:${lt} videoRange:${it} hls.loadLevel:${C}`)),z&&(this.firstSelection=Mt),Mt}}return-1}set nextAutoLevel(e){let{maxAutoLevel:i,minAutoLevel:r}=this.hls,s=Math.min(Math.max(e,r),i);this._nextAutoLevel!==s&&(this.nextAutoLevelKey="",this._nextAutoLevel=s)}},bufferController:class{constructor(e){this.details=null,this._objectUrl=null,this.operationQueue=void 0,this.listeners=void 0,this.hls=void 0,this.bufferCodecEventsExpected=0,this._bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.appendSource=void 0,this.appendErrors={audio:0,video:0,audiovideo:0},this.tracks={},this.pendingTracks={},this.sourceBuffer=void 0,this.log=void 0,this.warn=void 0,this.error=void 0,this._onEndStreaming=(s)=>{this.hls&&this.hls.pauseBuffering()},this._onStartStreaming=(s)=>{this.hls&&this.hls.resumeBuffering()},this._onMediaSourceOpen=()=>{let{media:s,mediaSource:a}=this;this.log("Media source opened"),s&&(s.removeEventListener("emptied",this._onMediaEmptied),this.updateMediaElementDuration(),this.hls.trigger(b.MEDIA_ATTACHED,{media:s,mediaSource:a})),a&&a.removeEventListener("sourceopen",this._onMediaSourceOpen),this.checkPendingTracks()},this._onMediaSourceClose=()=>{this.log("Media source closed")},this._onMediaSourceEnded=()=>{this.log("Media source ended")},this._onMediaEmptied=()=>{let{mediaSrc:s,_objectUrl:a}=this;s!==a&&D.error(`Media element src was set while attaching MediaSource (${a} > ${s})`)},this.hls=e;let i="[buffer-controller]";var r;this.appendSource=(r=Pi(e.config.preferManagedMediaSource),typeof self<"u"&&r===self.ManagedMediaSource),this.log=D.log.bind(D,i),this.warn=D.warn.bind(D,i),this.error=D.error.bind(D,i),this._initSourceBuffer(),this.registerListeners()}hasSourceTypes(){return this.getSourceBufferTypes().length>0||Object.keys(this.pendingTracks).length>0}destroy(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=null,this.hls=null}registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.BUFFER_RESET,this.onBufferReset,this),e.on(b.BUFFER_APPENDING,this.onBufferAppending,this),e.on(b.BUFFER_CODECS,this.onBufferCodecs,this),e.on(b.BUFFER_EOS,this.onBufferEos,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(b.FRAG_PARSED,this.onFragParsed,this),e.on(b.FRAG_CHANGED,this.onFragChanged,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.BUFFER_RESET,this.onBufferReset,this),e.off(b.BUFFER_APPENDING,this.onBufferAppending,this),e.off(b.BUFFER_CODECS,this.onBufferCodecs,this),e.off(b.BUFFER_EOS,this.onBufferEos,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(b.FRAG_PARSED,this.onFragParsed,this),e.off(b.FRAG_CHANGED,this.onFragChanged,this)}_initSourceBuffer(){this.sourceBuffer={},this.operationQueue=new du(this.sourceBuffer),this.listeners={audio:[],video:[],audiovideo:[]},this.appendErrors={audio:0,video:0,audiovideo:0},this.lastMpegAudioChunk=null}onManifestLoading(){this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=0,this.details=null}onManifestParsed(e,i){let r=2;(i.audio&&!i.video||!i.altAudio)&&(r=1),this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=r,this.log(this.bufferCodecEventsExpected+" bufferCodec event(s) expected")}onMediaAttaching(e,i){let r=this.media=i.media,s=Pi(this.appendSource);if(r&&s){var a;let l=this.mediaSource=new s;this.log("created media source: "+((a=l.constructor)==null?void 0:a.name)),l.addEventListener("sourceopen",this._onMediaSourceOpen),l.addEventListener("sourceended",this._onMediaSourceEnded),l.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(l.addEventListener("startstreaming",this._onStartStreaming),l.addEventListener("endstreaming",this._onEndStreaming));let c=this._objectUrl=self.URL.createObjectURL(l);if(this.appendSource)try{r.removeAttribute("src");let u=self.ManagedMediaSource;r.disableRemotePlayback=r.disableRemotePlayback||u&&l instanceof u,fu(r),function(h,m){let y=self.document.createElement("source");y.type="video/mp4",y.src=m,h.appendChild(y)}(r,c),r.load()}catch(u){r.src=c}else r.src=c;r.addEventListener("emptied",this._onMediaEmptied)}}onMediaDetaching(){let{media:e,mediaSource:i,_objectUrl:r}=this;if(i){if(this.log("media source detaching"),i.readyState==="open")try{i.endOfStream()}catch(s){this.warn(`onMediaDetaching: ${s.message} while calling endOfStream`)}this.onBufferReset(),i.removeEventListener("sourceopen",this._onMediaSourceOpen),i.removeEventListener("sourceended",this._onMediaSourceEnded),i.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(i.removeEventListener("startstreaming",this._onStartStreaming),i.removeEventListener("endstreaming",this._onEndStreaming)),e&&(e.removeEventListener("emptied",this._onMediaEmptied),r&&self.URL.revokeObjectURL(r),this.mediaSrc===r?(e.removeAttribute("src"),this.appendSource&&fu(e),e.load()):this.warn("media|source.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={}}this.hls.trigger(b.MEDIA_DETACHED,void 0)}onBufferReset(){this.getSourceBufferTypes().forEach((e)=>{this.resetBuffer(e)}),this._initSourceBuffer()}resetBuffer(e){let i=this.sourceBuffer[e];try{var r;if(i)this.removeBufferListeners(e),this.sourceBuffer[e]=void 0,(r=this.mediaSource)!=null&&r.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(i)}catch(s){this.warn("onBufferReset "+e,s)}}onBufferCodecs(e,i){let r=this.getSourceBufferTypes().length,s=Object.keys(i);if(s.forEach((l)=>{if(r){let u=this.tracks[l];if(u&&typeof u.buffer.changeType=="function"){var c;let{id:h,codec:m,levelCodec:y,container:S,metadata:_}=i[l],w=Ja(u.codec,u.levelCodec),I=w==null?void 0:w.replace(hu,"$1"),C=Ja(m,y),P=(c=C)==null?void 0:c.replace(hu,"$1");if(C&&I!==P){l.slice(0,5)==="audio"&&(C=Qr(C,this.appendSource));let F=`${S};codecs=${C}`;this.appendChangeType(l,F),this.log(`switching codec ${w} to ${C}`),this.tracks[l]={buffer:u.buffer,codec:m,container:S,levelCodec:y,metadata:_,id:h}}}}else this.pendingTracks[l]=i[l]}),r)return;let a=Math.max(this.bufferCodecEventsExpected-1,0);this.bufferCodecEventsExpected!==a&&(this.log(`${a} bufferCodec event(s) expected ${s.join(",")}`),this.bufferCodecEventsExpected=a),this.mediaSource&&this.mediaSource.readyState==="open"&&this.checkPendingTracks()}appendChangeType(e,i){let{operationQueue:r}=this,s={execute:()=>{let a=this.sourceBuffer[e];a&&(this.log(`changing ${e} sourceBuffer type to ${i}`),a.changeType(i)),r.shiftAndExecuteNext(e)},onStart:()=>{},onComplete:()=>{},onError:(a)=>{this.warn(`Failed to change ${e} SourceBuffer type`,a)}};r.append(s,e,!!this.pendingTracks[e])}onBufferAppending(e,i){let{hls:r,operationQueue:s,tracks:a}=this,{data:l,type:c,frag:u,part:h,chunkMeta:m}=i,y=m.buffering[c],S=self.performance.now();y.start=S;let _=u.stats.buffering,w=h?h.stats.buffering:null;_.start===0&&(_.start=S),w&&w.start===0&&(w.start=S);let I=a.audio,C=!1;c==="audio"&&(I==null?void 0:I.container)==="audio/mpeg"&&(C=!this.lastMpegAudioChunk||m.id===1||this.lastMpegAudioChunk.sn!==m.sn,this.lastMpegAudioChunk=m);let P=u.start,F={execute:()=>{if(y.executeStart=self.performance.now(),C){let W=this.sourceBuffer[c];if(W){let z=P-W.timestampOffset;Math.abs(z)>=0.1&&(this.log(`Updating audio SourceBuffer timestampOffset to ${P} (delta: ${z}) sn: ${u.sn})`),W.timestampOffset=P)}}this.appendExecutor(l,c)},onStart:()=>{},onComplete:()=>{let W=self.performance.now();y.executeEnd=y.end=W,_.first===0&&(_.first=W),w&&w.first===0&&(w.first=W);let{sourceBuffer:z}=this,lt={};for(let it in z)lt[it]=Jt.getBuffered(z[it]);this.appendErrors[c]=0,c==="audio"||c==="video"?this.appendErrors.audiovideo=0:(this.appendErrors.audio=0,this.appendErrors.video=0),this.hls.trigger(b.BUFFER_APPENDED,{type:c,frag:u,part:h,chunkMeta:m,parent:u.type,timeRanges:lt})},onError:(W)=>{let z={type:H.MEDIA_ERROR,parent:u.type,details:N.BUFFER_APPEND_ERROR,sourceBufferName:c,frag:u,part:h,chunkMeta:m,error:W,err:W,fatal:!1};if(W.code===DOMException.QUOTA_EXCEEDED_ERR)z.details=N.BUFFER_FULL_ERROR;else{let lt=++this.appendErrors[c];z.details=N.BUFFER_APPEND_ERROR,this.warn(`Failed ${lt}/${r.config.appendErrorMaxRetry} times to append segment in "${c}" sourceBuffer`),lt>=r.config.appendErrorMaxRetry&&(z.fatal=!0)}r.trigger(b.ERROR,z)}};s.append(F,c,!!this.pendingTracks[c])}onBufferFlushing(e,i){let{operationQueue:r}=this,s=(a)=>({execute:this.removeExecutor.bind(this,a,i.startOffset,i.endOffset),onStart:()=>{},onComplete:()=>{this.hls.trigger(b.BUFFER_FLUSHED,{type:a})},onError:(l)=>{this.warn(`Failed to remove from ${a} SourceBuffer`,l)}});i.type?r.append(s(i.type),i.type):this.getSourceBufferTypes().forEach((a)=>{r.append(s(a),a)})}onFragParsed(e,i){let{frag:r,part:s}=i,a=[],l=s?s.elementaryStreams:r.elementaryStreams;l[Pt]?a.push("audiovideo"):(l[ot]&&a.push("audio"),l[St]&&a.push("video")),a.length===0&&this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${r.type} level: ${r.level} sn: ${r.sn}`),this.blockBuffers(()=>{let c=self.performance.now();r.stats.buffering.end=c,s&&(s.stats.buffering.end=c);let u=s?s.stats:r.stats;this.hls.trigger(b.FRAG_BUFFERED,{frag:r,part:s,stats:u,id:r.type})},a)}onFragChanged(e,i){this.trimBuffers()}onBufferEos(e,i){this.getSourceBufferTypes().reduce((r,s)=>{let a=this.sourceBuffer[s];return!a||i.type&&i.type!==s||(a.ending=!0,a.ended||(a.ended=!0,this.log(s+" sourceBuffer now EOS"))),r&&!(a&&!a.ended)},!0)&&(this.log("Queueing mediaSource.endOfStream()"),this.blockBuffers(()=>{this.getSourceBufferTypes().forEach((s)=>{let a=this.sourceBuffer[s];a&&(a.ending=!1)});let{mediaSource:r}=this;r&&r.readyState==="open"?(this.log("Calling mediaSource.endOfStream()"),r.endOfStream()):r&&this.log("Could not call mediaSource.endOfStream(). mediaSource.readyState: "+r.readyState)}))}onLevelUpdated(e,{details:i}){i.fragments.length&&(this.details=i,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())}trimBuffers(){let{hls:e,details:i,media:r}=this;if(!r||i===null)return;if(!this.getSourceBufferTypes().length)return;let s=e.config,a=r.currentTime,l=i.levelTargetDuration,c=i.live&&s.liveBackBufferLength!==null?s.liveBackBufferLength:s.backBufferLength;if(L(c)&&c>0){let u=Math.max(c,l),h=Math.floor(a/l)*l-u;this.flushBackBuffer(a,l,h)}if(L(s.frontBufferFlushThreshold)&&s.frontBufferFlushThreshold>0){let u=Math.max(s.maxBufferLength,s.frontBufferFlushThreshold),h=Math.max(u,l),m=Math.floor(a/l)*l+h;this.flushFrontBuffer(a,l,m)}}flushBackBuffer(e,i,r){let{details:s,sourceBuffer:a}=this;this.getSourceBufferTypes().forEach((l)=>{let c=a[l];if(c){let u=Jt.getBuffered(c);if(u.length>0&&r>u.start(0)){if(this.hls.trigger(b.BACK_BUFFER_REACHED,{bufferEnd:r}),s!=null&&s.live)this.hls.trigger(b.LIVE_BACK_BUFFER_REACHED,{bufferEnd:r});else if(c.ended&&u.end(u.length-1)-e<2*i)return void this.log(`Cannot flush ${l} back buffer while SourceBuffer is in ended state`);this.hls.trigger(b.BUFFER_FLUSHING,{startOffset:0,endOffset:r,type:l})}}})}flushFrontBuffer(e,i,r){let{sourceBuffer:s}=this;this.getSourceBufferTypes().forEach((a)=>{let l=s[a];if(l){let c=Jt.getBuffered(l),u=c.length;if(u<2)return;let h=c.start(u-1),m=c.end(u-1);if(r>h||e>=h&&e<=m)return;if(l.ended&&e-m<2*i)return void this.log(`Cannot flush ${a} front buffer while SourceBuffer is in ended state`);this.hls.trigger(b.BUFFER_FLUSHING,{startOffset:h,endOffset:1/0,type:a})}})}updateMediaElementDuration(){if(!this.details||!this.media||!this.mediaSource||this.mediaSource.readyState!=="open")return;let{details:e,hls:i,media:r,mediaSource:s}=this,a=e.fragments[0].start+e.totalduration,l=r.duration,c=L(s.duration)?s.duration:0;e.live&&i.config.liveDurationInfinity?(s.duration=1/0,this.updateSeekableRange(e)):(a>c&&a>l||!L(l))&&(this.log("Updating Media Source duration to "+a.toFixed(3)),s.duration=a)}updateSeekableRange(e){let i=this.mediaSource,r=e.fragments;if(r.length&&e.live&&i!=null&&i.setLiveSeekableRange){let s=Math.max(0,r[0].start),a=Math.max(s,s+e.totalduration);this.log(`Media Source duration is set to ${i.duration}. Setting seekable range to ${s}-${a}.`),i.setLiveSeekableRange(s,a)}}checkPendingTracks(){let{bufferCodecEventsExpected:e,operationQueue:i,pendingTracks:r}=this,s=Object.keys(r).length;if(s&&(!e||s===2||("audiovideo"in r))){this.createSourceBuffers(r),this.pendingTracks={};let a=this.getSourceBufferTypes();if(a.length)this.hls.trigger(b.BUFFER_CREATED,{tracks:this.tracks}),a.forEach((l)=>{i.executeNext(l)});else{let l=Error("could not create source buffer for media codec(s)");this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:l,reason:l.message})}}}createSourceBuffers(e){let{sourceBuffer:i,mediaSource:r}=this;if(!r)throw Error("createSourceBuffers called when mediaSource was null");for(let a in e)if(!i[a]){var s;let l=e[a];if(!l)throw Error(`source buffer exists for track ${a}, however track does not`);let c=((s=l.levelCodec)==null?void 0:s.indexOf(","))===-1?l.levelCodec:l.codec;c&&a.slice(0,5)==="audio"&&(c=Qr(c,this.appendSource));let u=`${l.container};codecs=${c}`;this.log(`creating sourceBuffer(${u})`);try{let h=i[a]=r.addSourceBuffer(u),m=a;this.addBufferListener(m,"updatestart",this._onSBUpdateStart),this.addBufferListener(m,"updateend",this._onSBUpdateEnd),this.addBufferListener(m,"error",this._onSBUpdateError),this.appendSource&&this.addBufferListener(m,"bufferedchange",(y,S)=>{let _=S.removedRanges;_!=null&&_.length&&this.hls.trigger(b.BUFFER_FLUSHED,{type:a})}),this.tracks[a]={buffer:h,codec:c,container:l.container,levelCodec:l.levelCodec,metadata:l.metadata,id:l.id}}catch(h){this.error("error while trying to add sourceBuffer: "+h.message),this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:h,sourceBufferName:a,mimeType:u})}}}get mediaSrc(){var e;let i=((e=this.media)==null?void 0:e.firstChild)||this.media;return i==null?void 0:i.src}_onSBUpdateStart(e){let{operationQueue:i}=this;i.current(e).onStart()}_onSBUpdateEnd(e){var i;if(((i=this.mediaSource)==null?void 0:i.readyState)==="closed")return void this.resetBuffer(e);let{operationQueue:r}=this;r.current(e).onComplete(),r.shiftAndExecuteNext(e)}_onSBUpdateError(e,i){var r;let s=Error(`${e} SourceBuffer error. MediaSource readyState: ${(r=this.mediaSource)==null?void 0:r.readyState}`);this.error(""+s,i),this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.BUFFER_APPENDING_ERROR,sourceBufferName:e,error:s,fatal:!1});let a=this.operationQueue.current(e);a&&a.onError(s)}removeExecutor(e,i,r){let{media:s,mediaSource:a,operationQueue:l,sourceBuffer:c}=this,u=c[e];if(!s||!a||!u)return this.warn(`Attempting to remove from the ${e} SourceBuffer, but it does not exist`),void l.shiftAndExecuteNext(e);let h=L(s.duration)?s.duration:1/0,m=L(a.duration)?a.duration:1/0,y=Math.max(0,i),S=Math.min(r,h,m);S>y&&(!u.ending||u.ended)?(u.ended=!1,this.log(`Removing [${y},${S}] from the ${e} SourceBuffer`),u.remove(y,S)):l.shiftAndExecuteNext(e)}appendExecutor(e,i){let r=this.sourceBuffer[i];if(r)r.ended=!1,r.appendBuffer(e);else if(!this.pendingTracks[i])throw Error(`Attempting to append to the ${i} SourceBuffer, but it does not exist`)}blockBuffers(e,i=this.getSourceBufferTypes()){if(!i.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),void Promise.resolve().then(e);let{operationQueue:r}=this,s=i.map((a)=>r.appendBlocker(a));Promise.all(s).then(()=>{e(),i.forEach((a)=>{let l=this.sourceBuffer[a];l!=null&&l.updating||r.shiftAndExecuteNext(a)})})}getSourceBufferTypes(){return Object.keys(this.sourceBuffer)}addBufferListener(e,i,r){let s=this.sourceBuffer[e];if(!s)return;let a=r.bind(this,e);this.listeners[e].push({event:i,listener:a}),s.addEventListener(i,a)}removeBufferListeners(e){let i=this.sourceBuffer[e];i&&this.listeners[e].forEach((r)=>{i.removeEventListener(r.event,r.listener)})}},capLevelController:ec,errorController:class{constructor(e){this.hls=void 0,this.playlistError=0,this.penalizedRenditions={},this.log=void 0,this.warn=void 0,this.error=void 0,this.hls=e,this.log=D.log.bind(D,"[info]:"),this.warn=D.warn.bind(D,"[warning]:"),this.error=D.error.bind(D,"[error]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(b.ERROR,this.onError,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_UPDATED,this.onLevelUpdated,this)}unregisterListeners(){let e=this.hls;e&&(e.off(b.ERROR,this.onError,this),e.off(b.ERROR,this.onErrorOut,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_UPDATED,this.onLevelUpdated,this))}destroy(){this.unregisterListeners(),this.hls=null,this.penalizedRenditions={}}startLoad(e){}stopLoad(){this.playlistError=0}getVariantLevelIndex(e){return(e==null?void 0:e.type)===ie?e.level:this.hls.loadLevel}onManifestLoading(){this.playlistError=0,this.penalizedRenditions={}}onLevelUpdated(){this.playlistError=0}onError(e,i){var r,s;if(i.fatal)return;let a=this.hls,l=i.context;switch(i.details){case N.FRAG_LOAD_ERROR:case N.FRAG_LOAD_TIMEOUT:case N.KEY_LOAD_ERROR:case N.KEY_LOAD_TIMEOUT:return void(i.errorAction=this.getFragRetryOrSwitchAction(i));case N.FRAG_PARSING_ERROR:if((r=i.frag)!=null&&r.gap)return void(i.errorAction={action:Qs,flags:mr});case N.FRAG_GAP:case N.FRAG_DECRYPT_ERROR:return i.errorAction=this.getFragRetryOrSwitchAction(i),void(i.errorAction.action=Fi);case N.LEVEL_EMPTY_ERROR:case N.LEVEL_PARSING_ERROR:{var c,u;let h=i.parent===ie?i.level:a.loadLevel;i.details===N.LEVEL_EMPTY_ERROR&&(c=i.context)!=null&&(u=c.levelDetails)!=null&&u.live?i.errorAction=this.getPlaylistRetryOrSwitchAction(i,h):(i.levelRetry=!1,i.errorAction=this.getLevelSwitchAction(i,h))}return;case N.LEVEL_LOAD_ERROR:case N.LEVEL_LOAD_TIMEOUT:return void(typeof(l==null?void 0:l.level)=="number"&&(i.errorAction=this.getPlaylistRetryOrSwitchAction(i,l.level)));case N.AUDIO_TRACK_LOAD_ERROR:case N.AUDIO_TRACK_LOAD_TIMEOUT:case N.SUBTITLE_LOAD_ERROR:case N.SUBTITLE_TRACK_LOAD_TIMEOUT:if(l){let h=a.levels[a.loadLevel];if(h&&(l.type===ei&&h.hasAudioGroup(l.groupId)||l.type===pi&&h.hasSubtitleGroup(l.groupId)))return i.errorAction=this.getPlaylistRetryOrSwitchAction(i,a.loadLevel),i.errorAction.action=Fi,void(i.errorAction.flags=Zs)}return;case N.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:{let h=a.levels[a.loadLevel],m=h==null?void 0:h.attrs["HDCP-LEVEL"];m?i.errorAction={action:Fi,flags:ta,hdcpLevel:m}:this.keySystemError(i)}return;case N.BUFFER_ADD_CODEC_ERROR:case N.REMUX_ALLOC_ERROR:case N.BUFFER_APPEND_ERROR:return void(i.errorAction=this.getLevelSwitchAction(i,(s=i.level)!=null?s:a.loadLevel));case N.INTERNAL_EXCEPTION:case N.BUFFER_APPENDING_ERROR:case N.BUFFER_FULL_ERROR:case N.LEVEL_SWITCH_ERROR:case N.BUFFER_STALLED_ERROR:case N.BUFFER_SEEK_OVER_HOLE:case N.BUFFER_NUDGE_ON_STALL:return void(i.errorAction={action:Qs,flags:mr})}i.type===H.KEY_SYSTEM_ERROR&&this.keySystemError(i)}keySystemError(e){let i=this.getVariantLevelIndex(e.frag);e.levelRetry=!1,e.errorAction=this.getLevelSwitchAction(e,i)}getPlaylistRetryOrSwitchAction(e,i){let r=co(this.hls.config.playlistLoadPolicy,e),s=this.playlistError++;if(Cr(r,s,Gn(e),e.response))return{action:De,flags:mr,retryConfig:r,retryCount:s};let a=this.getLevelSwitchAction(e,i);return r&&(a.retryConfig=r,a.retryCount=s),a}getFragRetryOrSwitchAction(e){let i=this.hls,r=this.getVariantLevelIndex(e.frag),s=i.levels[r],{fragLoadPolicy:a,keyLoadPolicy:l}=i.config,c=co(e.details.startsWith("key")?l:a,e),u=i.levels.reduce((m,y)=>m+y.fragmentError,0);if(s){if(e.details!==N.FRAG_GAP&&s.fragmentError++,Cr(c,u,Gn(e),e.response))return{action:De,flags:mr,retryConfig:c,retryCount:u}}let h=this.getLevelSwitchAction(e,r);return c&&(h.retryConfig=c,h.retryCount=u),h}getLevelSwitchAction(e,i){let r=this.hls;i==null&&(i=r.loadLevel);let s=this.hls.levels[i];if(s){var a,l;let h=e.details;s.loadError++,h===N.BUFFER_APPEND_ERROR&&s.fragmentError++;let m=-1,{levels:y,loadLevel:S,minAutoLevel:_,maxAutoLevel:w}=r;r.autoLevelEnabled||(r.loadLevel=-1);let I=(a=e.frag)==null?void 0:a.type,C=(I===Ue&&h===N.FRAG_PARSING_ERROR||e.sourceBufferName==="audio"&&(h===N.BUFFER_ADD_CODEC_ERROR||h===N.BUFFER_APPEND_ERROR))&&y.some(({audioCodec:z})=>s.audioCodec!==z),P=e.sourceBufferName==="video"&&(h===N.BUFFER_ADD_CODEC_ERROR||h===N.BUFFER_APPEND_ERROR)&&y.some(({codecSet:z,audioCodec:lt})=>s.codecSet!==z&&s.audioCodec===lt),{type:F,groupId:W}=(l=e.context)!=null?l:{};for(let z=y.length;z--;){let lt=(z+S)%y.length;if(lt!==S&&lt>=_&&lt<=w&&y[lt].loadError===0){var c,u;let it=y[lt];if(h===N.FRAG_GAP&&e.frag){let ft=y[lt].details;if(ft){let mt=Dr(e.frag,ft.fragments,e.frag.start);if(mt!=null&&mt.gap)continue}}else{if(F===ei&&it.hasAudioGroup(W)||F===pi&&it.hasSubtitleGroup(W))continue;if(I===Ue&&(c=s.audioGroups)!=null&&c.some((ft)=>it.hasAudioGroup(ft))||I===bi&&(u=s.subtitleGroups)!=null&&u.some((ft)=>it.hasSubtitleGroup(ft))||C&&s.audioCodec===it.audioCodec||!C&&s.audioCodec!==it.audioCodec||P&&s.codecSet===it.codecSet)continue}m=lt;break}}if(m>-1&&r.loadLevel!==m)return e.levelRetry=!0,this.playlistError=0,{action:Fi,flags:mr,nextAutoLevel:m}}return{action:Fi,flags:Zs}}onErrorOut(e,i){var r;switch((r=i.errorAction)==null?void 0:r.action){case Qs:break;case Fi:this.sendAlternateToPenaltyBox(i),i.errorAction.resolved||i.details===N.FRAG_GAP?/MediaSource readyState: ended/.test(i.error.message)&&(this.warn(`MediaSource ended after "${i.sourceBufferName}" sourceBuffer append error. Attempting to recover from media error.`),this.hls.recoverMediaError()):i.fatal=!0}i.fatal&&this.hls.stopLoad()}sendAlternateToPenaltyBox(e){let i=this.hls,r=e.errorAction;if(!r)return;let{flags:s,hdcpLevel:a,nextAutoLevel:l}=r;switch(s){case mr:this.switchLevel(e,l);break;case ta:a&&(i.maxHdcpLevel=js[js.indexOf(a)-1],r.resolved=!0),this.warn(`Restricting playback to HDCP-LEVEL of "${i.maxHdcpLevel}" or lower`)}r.resolved||this.switchLevel(e,l)}switchLevel(e,i){i!==void 0&&e.errorAction&&(this.warn(`switching to level ${i} after ${e.details}`),this.hls.nextAutoLevel=i,e.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel)}},fpsController:class{constructor(e){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=e,this.registerListeners()}setStreamController(e){this.streamController=e}registerListeners(){this.hls.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this)}unregisterListeners(){this.hls.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this)}destroy(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(e,i){let r=this.hls.config;if(r.capLevelOnFPSDrop){let s=i.media instanceof self.HTMLVideoElement?i.media:null;this.media=s,s&&typeof s.getVideoPlaybackQuality=="function"&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),r.fpsDroppedMonitoringPeriod)}}checkFPS(e,i,r){let s=performance.now();if(i){if(this.lastTime){let a=s-this.lastTime,l=r-this.lastDroppedFrames,c=i-this.lastDecodedFrames,u=1000*l/a,h=this.hls;if(h.trigger(b.FPS_DROP,{currentDropped:l,currentDecoded:c,totalDroppedFrames:r}),u>0&&l>h.config.fpsDroppedMonitoringThreshold*c){let m=h.currentLevel;D.warn("drop FPS ratio greater than max allowed value for currentLevel: "+m),m>0&&(h.autoLevelCapping===-1||h.autoLevelCapping>=m)&&(m-=1,h.trigger(b.FPS_DROP_LEVEL_CAPPING,{level:m,droppedLevel:h.currentLevel}),h.autoLevelCapping=m,this.streamController.nextLevelSwitch())}}this.lastTime=s,this.lastDroppedFrames=r,this.lastDecodedFrames=i}}checkFPSInterval(){let e=this.media;if(e)if(this.isVideoPlaybackQualityAvailable){let i=e.getVideoPlaybackQuality();this.checkFPS(e,i.totalVideoFrames,i.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)}},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:xe,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableID3MetadataCues:!0,useMediaCapabilities:!0,certLoadPolicy:{default:{maxTimeToFirstByteMs:8000,maxLoadTimeMs:20000,timeoutRetry:null,errorRetry:null}},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}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1000,manifestLoadingMaxRetryTimeout:64000,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1000,levelLoadingMaxRetryTimeout:64000,fragLoadingTimeOut:20000,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1000,fragLoadingMaxRetryTimeout:64000},{cueHandler:Gf,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}),{},{subtitleStreamController:class extends dn{constructor(e,i,r){super(e,i,r,"[subtitle-stream-controller]",bi),this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this._registerListeners()}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.ERROR,this.onError,this),e.on(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(b.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(b.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.ERROR,this.onError,this),e.off(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(b.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(b.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}startLoad(e){this.stopLoad(),this.state=Zt,this.setInterval(500),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}onManifestLoading(){this.mainDetails=null,this.fragmentTracker.removeAllFragments()}onMediaDetaching(){this.tracksBuffered=[],super.onMediaDetaching()}onLevelLoaded(e,i){this.mainDetails=i.details}onSubtitleFragProcessed(e,i){let{frag:r,success:s}=i;if(this.fragPrevious=r,this.state=Zt,!s)return;let a=this.tracksBuffered[this.currentTrackId];if(!a)return;let l,c=r.start;for(let h=0;h<a.length;h++)if(c>=a[h].start&&c<=a[h].end){l=a[h];break}let u=r.start+r.duration;l?l.end=u:(l={start:c,end:u},a.push(l)),this.fragmentTracker.fragBuffered(r),this.fragBufferedComplete(r,null)}onBufferFlushing(e,i){let{startOffset:r,endOffset:s}=i;if(r===0&&s!==Number.POSITIVE_INFINITY){let a=s-1;if(a<=0)return;i.endOffsetSubtitles=Math.max(0,a),this.tracksBuffered.forEach((l)=>{for(let c=0;c<l.length;)if(l[c].end<=a)l.shift();else{if(!(l[c].start<a))break;l[c].start=a,c++}}),this.fragmentTracker.removeFragmentsInRange(r,a,bi)}}onFragBuffered(e,i){var r;this.loadedmetadata||i.frag.type!==ie||(r=this.media)!=null&&r.buffered.length&&(this.loadedmetadata=!0)}onError(e,i){let r=i.frag;(r==null?void 0:r.type)===bi&&(this.fragCurrent&&this.fragCurrent.abortRequests(),this.state!==oi&&(this.state=Zt))}onSubtitleTracksUpdated(e,{subtitleTracks:i}){this.levels&&cu(this.levels,i)?this.levels=i.map((r)=>new dr(r)):(this.tracksBuffered=[],this.levels=i.map((r)=>{let s=new dr(r);return this.tracksBuffered[s.id]=[],s}),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,bi),this.fragPrevious=null,this.mediaBuffer=null)}onSubtitleTrackSwitch(e,i){var r;if(this.currentTrackId=i.id,(r=this.levels)==null||!r.length||this.currentTrackId===-1)return void this.clearInterval();let s=this.levels[this.currentTrackId];s!=null&&s.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,s&&this.setInterval(500)}onSubtitleTrackLoaded(e,i){var r;let{currentTrackId:s,levels:a}=this,{details:l,id:c}=i;if(!a)return void this.warn("Subtitle tracks were reset while loading level "+c);let u=a[s];if(c>=a.length||c!==s||!u)return;this.log(`Subtitle track ${c} loaded [${l.startSN},${l.endSN}]${l.lastPartSn?`[part-${l.lastPartSn}-${l.lastPartIndex}]`:""},duration:${l.totalduration}`),this.mediaBuffer=this.mediaBufferTimeRanges;let h=0;if(l.live||(r=u.details)!=null&&r.live){let y=this.mainDetails;if(l.deltaUpdateFailed||!y)return;let S=y.fragments[0];var m;if(u.details)h=this.alignPlaylists(l,u.details,(m=this.levelLastLoaded)==null?void 0:m.details),h===0&&S&&(h=S.start,rn(l,h));else l.hasProgramDateTime&&y.hasProgramDateTime?(Wn(l,y),h=l.fragments[0].start):S&&(h=S.start,rn(l,h))}if(u.details=l,this.levelLastLoaded=u,this.startFragRequested||!this.mainDetails&&l.live||this.setStartPosition(this.mainDetails||l,h),this.tick(),l.live&&!this.fragCurrent&&this.media&&this.state===Zt)Dr(null,l.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),u.details=void 0)}_handleFragmentLoadComplete(e){let{frag:i,payload:r}=e,s=i.decryptdata,a=this.hls;if(!this.fragContextChanged(i)&&r&&r.byteLength>0&&s!=null&&s.key&&s.iv&&s.method==="AES-128"){let l=performance.now();this.decrypter.decrypt(new Uint8Array(r),s.key.buffer,s.iv.buffer).catch((c)=>{throw a.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.FRAG_DECRYPT_ERROR,fatal:!1,error:c,reason:c.message,frag:i}),c}).then((c)=>{let u=performance.now();a.trigger(b.FRAG_DECRYPTED,{frag:i,payload:c,stats:{tstart:l,tdecrypt:u}})}).catch((c)=>{this.warn(`${c.name}: ${c.message}`),this.state=Zt})}}doTick(){if(this.media){if(this.state===Zt){let{currentTrackId:e,levels:i}=this,r=i==null?void 0:i[e];if(!r||!i.length||!r.details)return;let{config:s}=this,a=this.getLoadPosition(),l=Jt.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],a,s.maxBufferHole),{end:c,len:u}=l,h=this.getFwdBufferInfo(this.media,ie),m=r.details;if(u>this.getMaxBufferLength(h==null?void 0:h.len)+m.levelTargetDuration)return;let y=m.fragments,S=y.length,_=m.edge,w=null,I=this.fragPrevious;if(c<_){let C=s.maxFragLookUpTolerance,P=c>_-C?0:C;w=Dr(I,y,Math.max(y[0].start,c),P),!w&&I&&I.start<y[0].start&&(w=y[0])}else w=y[S-1];if(!w)return;if(w=this.mapToInitFragWhenRequired(w),w.sn!=="initSegment"){let C=y[w.sn-m.startSN-1];C&&C.cc===w.cc&&this.fragmentTracker.getState(C)===ze&&(w=C)}this.fragmentTracker.getState(w)===ze&&this.loadFragment(w,r,c)}}else this.state=Zt}getMaxBufferLength(e){let i=super.getMaxBufferLength();return e?Math.max(i,e):i}loadFragment(e,i,r){this.fragCurrent=e,e.sn==="initSegment"?this._loadInitSegment(e,i):(this.startFragRequested=!0,super.loadFragment(e,i,r))}get mediaBufferTimeRanges(){return new uu(this.tracksBuffered[this.currentTrackId]||[])}},subtitleTrackController:class extends Ae{constructor(e){super(e,"[subtitle-track-controller]"),this.media=null,this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.queuedDefaultTrack=-1,this.asyncPollTrackChange=()=>this.pollTrackChange(0),this.useTextTrackPolling=!1,this.subtitlePollingInterval=-1,this._subtitleDisplay=!0,this.onTextTracksChanged=()=>{if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!this.media||!this.hls.config.renderTextTracksNatively)return;let i=null,r=xn(this.media.textTracks);for(let a=0;a<r.length;a++)if(r[a].mode==="hidden")i=r[a];else if(r[a].mode==="showing"){i=r[a];break}let s=this.findTrackForTextTrack(i);this.subtitleTrack!==s&&this.setSubtitleTrack(s)},this.registerListeners()}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,this.onTextTracksChanged=this.asyncPollTrackChange=null,super.destroy()}get subtitleDisplay(){return this._subtitleDisplay}set subtitleDisplay(e){this._subtitleDisplay=e,this.trackId>-1&&this.toggleTrackModes()}registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.LEVEL_LOADING,this.onLevelLoading,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(b.ERROR,this.onError,this)}onMediaAttached(e,i){this.media=i.media,this.media&&(this.queuedDefaultTrack>-1&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&("onchange"in this.media.textTracks)),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))}pollTrackChange(e){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.onTextTracksChanged,e)}onMediaDetaching(){if(!this.media)return;self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||this.media.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),xn(this.media.textTracks).forEach((e)=>{ur(e)}),this.subtitleTrack=-1,this.media=null}onManifestLoading(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(e,i){this.tracks=i.subtitleTracks}onSubtitleTrackLoaded(e,i){let{id:r,groupId:s,details:a}=i,l=this.tracksInGroup[r];if(!l||l.groupId!==s)return void this.warn(`Subtitle track with id:${r} and group:${s} not found in active group ${l==null?void 0:l.groupId}`);let c=l.details;l.details=i.details,this.log(`Subtitle track ${r} "${l.name}" lang:${l.lang} group:${s} loaded [${a.startSN}-${a.endSN}]`),r===this.trackId&&this.playlistLoaded(r,i,c)}onLevelLoading(e,i){this.switchLevel(i.level)}onLevelSwitching(e,i){this.switchLevel(i.level)}switchLevel(e){let i=this.hls.levels[e];if(!i)return;let r=i.subtitleGroups||null,s=this.groupIds,a=this.currentTrack;if(!r||(s==null?void 0:s.length)!==(r==null?void 0:r.length)||r!=null&&r.some((l)=>(s==null?void 0:s.indexOf(l))===-1)){this.groupIds=r,this.trackId=-1,this.currentTrack=null;let l=this.tracks.filter((m)=>!r||r.indexOf(m.groupId)!==-1);if(l.length)this.selectDefaultTrack&&!l.some((m)=>m.default)&&(this.selectDefaultTrack=!1),l.forEach((m,y)=>{m.id=y});else if(!a&&!this.tracksInGroup.length)return;this.tracksInGroup=l;let c=this.hls.config.subtitlePreference;if(!a&&c){this.selectDefaultTrack=!1;let m=_i(c,l);if(m>-1)a=l[m];else{let y=_i(c,this.tracks);a=this.tracks[y]}}let u=this.findTrackId(a);u===-1&&a&&(u=this.findTrackId(null));let h={subtitleTracks:l};this.log(`Updating subtitle tracks, ${l.length} track(s) found in "${r==null?void 0:r.join(",")}" group-id`),this.hls.trigger(b.SUBTITLE_TRACKS_UPDATED,h),u!==-1&&this.trackId===-1&&this.setSubtitleTrack(u)}else this.shouldReloadPlaylist(a)&&this.setSubtitleTrack(this.trackId)}findTrackId(e){let i=this.tracksInGroup,r=this.selectDefaultTrack;for(let s=0;s<i.length;s++){let a=i[s];if((!r||a.default)&&(r||e)&&(!e||Ir(a,e)))return s}if(e){for(let s=0;s<i.length;s++){let a=i[s];if(is(e.attrs,a.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return s}for(let s=0;s<i.length;s++){let a=i[s];if(is(e.attrs,a.attrs,["LANGUAGE"]))return s}}return-1}findTrackForTextTrack(e){if(e){let i=this.tracksInGroup;for(let r=0;r<i.length;r++)if(Vl(i[r],e))return r}return-1}onError(e,i){!i.fatal&&i.context&&(i.context.type!==pi||i.context.id!==this.trackId||this.groupIds&&this.groupIds.indexOf(i.context.groupId)===-1||this.checkRetry(i))}get allSubtitleTracks(){return this.tracks}get subtitleTracks(){return this.tracksInGroup}get subtitleTrack(){return this.trackId}set subtitleTrack(e){this.selectDefaultTrack=!1,this.setSubtitleTrack(e)}setSubtitleOption(e){if(this.hls.config.subtitlePreference=e,e){let i=this.allSubtitleTracks;if(this.selectDefaultTrack=!1,i.length){let r=this.currentTrack;if(r&&Ir(e,r))return r;let s=_i(e,this.tracksInGroup);if(s>-1){let a=this.tracksInGroup[s];return this.setSubtitleTrack(s),a}if(r)return null;{let a=_i(e,i);if(a>-1)return i[a]}}}return null}loadPlaylist(e){super.loadPlaylist();let i=this.currentTrack;if(this.shouldLoadPlaylist(i)&&i){let{id:r,groupId:s,url:a}=i;if(e)try{a=e.addDirectives(a)}catch(l){this.warn("Could not construct new URL with HLS Delivery Directives: "+l)}this.log("Loading subtitle playlist for id "+r),this.hls.trigger(b.SUBTITLE_TRACK_LOADING,{url:a,id:r,groupId:s,deliveryDirectives:e||null})}}toggleTrackModes(){let{media:e}=this;if(!e)return;let i=xn(e.textTracks),r=this.currentTrack,s;if(r&&(s=i.filter((a)=>Vl(r,a))[0],s||this.warn(`Unable to find subtitle TextTrack with name "${r.name}" and language "${r.lang}"`)),[].slice.call(i).forEach((a)=>{a.mode!=="disabled"&&a!==s&&(a.mode="disabled")}),s){let a=this.subtitleDisplay?"showing":"hidden";s.mode!==a&&(s.mode=a)}}setSubtitleTrack(e){let i=this.tracksInGroup;if(!this.media)return void(this.queuedDefaultTrack=e);if(e<-1||e>=i.length||!L(e))return void this.warn("Invalid subtitle track id: "+e);this.clearTimer(),this.selectDefaultTrack=!1;let r=this.currentTrack,s=i[e]||null;if(this.trackId=e,this.currentTrack=s,this.toggleTrackModes(),!s)return void this.hls.trigger(b.SUBTITLE_TRACK_SWITCH,{id:e});let a=!!s.details&&!s.details.live;if(e===this.trackId&&s===r&&a)return;this.log("Switching to subtitle-track "+e+(s?` "${s.name}" lang:${s.lang} group:${s.groupId}`:""));let{id:l,groupId:c="",name:u,type:h,url:m}=s;this.hls.trigger(b.SUBTITLE_TRACK_SWITCH,{id:l,groupId:c,name:u,type:h,url:m});let y=this.switchParams(s.url,r==null?void 0:r.details,s.details);this.loadPlaylist(y)}},timelineController:class{constructor(e){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={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this.captionsProperties=void 0,this.hls=e,this.config=e.config,this.Cues=e.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}},e.on(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(b.FRAG_LOADING,this.onFragLoading,this),e.on(b.FRAG_LOADED,this.onFragLoaded,this),e.on(b.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(b.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(b.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){let{hls:e}=this;e.off(b.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(b.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(b.FRAG_LOADING,this.onFragLoading,this),e.off(b.FRAG_LOADED,this.onFragLoaded,this),e.off(b.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(b.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(b.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=null,this.cea608Parser1=this.cea608Parser2=void 0}initCea608Parsers(){if(this.config.enableCEA708Captions&&(!this.cea608Parser1||!this.cea608Parser2)){let e=new Ea(this,"textTrack1"),i=new Ea(this,"textTrack2"),r=new Ea(this,"textTrack3"),s=new Ea(this,"textTrack4");this.cea608Parser1=new Yl(1,e,i),this.cea608Parser2=new Yl(3,r,s)}}addCues(e,i,r,s,a){let l=!1;for(let y=a.length;y--;){let S=a[y],_=(c=S[0],u=S[1],h=i,m=r,Math.min(u,m)-Math.max(c,h));if(_>=0&&(S[0]=Math.min(S[0],i),S[1]=Math.max(S[1],r),l=!0,_/(r-i)>0.5))return}var c,u,h,m;if(l||a.push([i,r]),this.config.renderTextTracksNatively){let y=this.captionsTracks[e];this.Cues.newCue(y,i,r,s)}else{let y=this.Cues.newCue(null,i,r,s);this.hls.trigger(b.CUES_PARSED,{type:"captions",cues:y,track:e})}}onInitPtsFound(e,{frag:i,id:r,initPTS:s,timescale:a}){let{unparsedVttFrags:l}=this;r==="main"&&(this.initPTS[i.cc]={baseTime:s,timescale:a}),l.length&&(this.unparsedVttFrags=[],l.forEach((c)=>{this.onFragLoaded(b.FRAG_LOADED,c)}))}getExistingTrack(e,i){let{media:r}=this;if(r)for(let s=0;s<r.textTracks.length;s++){let a=r.textTracks[s];if(Ou(a,{name:e,lang:i,attrs:{}}))return a}return null}createCaptionsTrack(e){this.config.renderTextTracksNatively?this.createNativeTrack(e):this.createNonNativeTrack(e)}createNativeTrack(e){if(this.captionsTracks[e])return;let{captionsProperties:i,captionsTracks:r,media:s}=this,{label:a,languageCode:l}=i[e],c=this.getExistingTrack(a,l);if(c)r[e]=c,ur(r[e]),Vs(r[e],s);else{let u=this.createTextTrack("captions",a,l);u&&(u[e]=!0,r[e]=u)}}createNonNativeTrack(e){if(this.nonNativeCaptionsTracks[e])return;let i=this.captionsProperties[e];if(!i)return;let r={_id:e,label:i.label,kind:"captions",default:!!i.media&&!!i.media.default,closedCaptions:i.media};this.nonNativeCaptionsTracks[e]=r,this.hls.trigger(b.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[r]})}createTextTrack(e,i,r){let s=this.media;if(s)return s.addTextTrack(e,i,r)}onMediaAttaching(e,i){this.media=i.media,this._cleanTracks()}onMediaDetaching(){let{captionsTracks:e}=this;Object.keys(e).forEach((i)=>{ur(e[i]),delete e[i]}),this.nonNativeCaptionsTracks={}}onManifestLoading(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},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:e}=this;if(!e)return;let i=e.textTracks;if(i)for(let r=0;r<i.length;r++)ur(i[r])}onSubtitleTracksUpdated(e,i){let r=i.subtitleTracks||[],s=r.some((a)=>a.textCodec==="stpp.ttml.im1t");if(this.config.enableWebVTT||s&&this.config.enableIMSC1){if(cu(this.tracks,r))return void(this.tracks=r);if(this.textTracks=[],this.tracks=r,this.config.renderTextTracksNatively){let a=this.media,l=a?xn(a.textTracks):null;if(this.tracks.forEach((c,u)=>{let h;if(l){let m=null;for(let y=0;y<l.length;y++)if(l[y]&&Ou(l[y],c)){m=l[y],l[y]=null;break}m&&(h=m)}if(h)ur(h);else{let m=Iu(c);h=this.createTextTrack(m,c.name,c.lang),h&&(h.mode="disabled")}h&&this.textTracks.push(h)}),l!=null&&l.length){let c=l.filter((u)=>u!==null).map((u)=>u.label);c.length&&D.warn(`Media element contains unused subtitle tracks: ${c.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`)}}else if(this.tracks.length){let a=this.tracks.map((l)=>({label:l.name,kind:l.type.toLowerCase(),default:l.default,subtitleTrack:l}));this.hls.trigger(b.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:a})}}}onManifestLoaded(e,i){this.config.enableCEA708Captions&&i.captions&&i.captions.forEach((r)=>{let s=/(?:CC|SERVICE)([1-4])/.exec(r.instreamId);if(!s)return;let a="textTrack"+s[1],l=this.captionsProperties[a];l&&(l.label=r.name,r.lang&&(l.languageCode=r.lang),l.media=r)})}closedCaptionsForLevel(e){let i=this.hls.levels[e.level];return i==null?void 0:i.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,i){this.initCea608Parsers();let{cea608Parser1:r,cea608Parser2:s,lastCc:a,lastSn:l,lastPartIndex:c}=this;if(this.enabled&&r&&s&&i.frag.type===ie){var u,h;let{cc:m,sn:y}=i.frag,S=(u=i==null||(h=i.part)==null?void 0:h.index)!=null?u:-1;y===l+1||y===l&&S===c+1||m===a||(r.reset(),s.reset()),this.lastCc=m,this.lastSn=y,this.lastPartIndex=S}}onFragLoaded(e,i){let{frag:r,payload:s}=i;if(r.type===bi)if(s.byteLength){let a=r.decryptdata,l="stats"in i;if(a==null||!a.encrypted||l){let c=this.tracks[r.level],u=this.vttCCs;u[r.cc]||(u[r.cc]={start:r.start,prevCC:this.prevCC,new:!0},this.prevCC=r.cc),c&&c.textCodec==="stpp.ttml.im1t"?this._parseIMSC1(r,s):this._parseVTTs(i)}}else this.hls.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:r,error:Error("Empty subtitle payload")})}_parseIMSC1(e,i){let r=this.hls;ku(i,this.initPTS[e.cc],(s)=>{this._appendCues(s,e.level),r.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})},(s)=>{D.log("Failed to parse IMSC1: "+s),r.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e,error:s})})}_parseVTTs(e){var i;let{frag:r,payload:s}=e,{initPTS:a,unparsedVttFrags:l}=this,c=a.length-1;if(!a[r.cc]&&c===-1)return void l.push(e);let u=this.hls;Lf((i=r.initSegment)!=null&&i.data?si(r.initSegment.data,new Uint8Array(s)):s,this.initPTS[r.cc],this.vttCCs,r.cc,r.start,(h)=>{this._appendCues(h,r.level),u.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:r})},(h)=>{let m=h.message==="Missing initPTS for VTT MPEGTS";m?l.push(e):this._fallbackToIMSC1(r,s),D.log("Failed to parse VTT cue: "+h),m&&c>r.cc||u.trigger(b.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:r,error:h})})}_fallbackToIMSC1(e,i){let r=this.tracks[e.level];r.textCodec||ku(i,this.initPTS[e.cc],()=>{r.textCodec="stpp.ttml.im1t",this._parseIMSC1(e,i)},()=>{r.textCodec="wvtt"})}_appendCues(e,i){let r=this.hls;if(this.config.renderTextTracksNatively){let s=this.textTracks[i];if(!s||s.mode==="disabled")return;e.forEach((a)=>ro(s,a))}else{let s=this.tracks[i];if(!s)return;let a=s.default?"default":"subtitles"+i;r.trigger(b.CUES_PARSED,{type:"subtitles",cues:e,track:a})}}onFragDecrypted(e,i){let{frag:r}=i;r.type===bi&&this.onFragLoaded(b.FRAG_LOADED,i)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(e,i){this.initCea608Parsers();let{cea608Parser1:r,cea608Parser2:s}=this;if(!this.enabled||!r||!s)return;let{frag:a,samples:l}=i;if(a.type!==ie||this.closedCaptionsForLevel(a)!=="NONE")for(let c=0;c<l.length;c++){let u=l[c].bytes;if(u){let h=this.extractCea608Data(u);r.addData(l[c].pts,h[0]),s.addData(l[c].pts,h[1])}}}onBufferFlushing(e,{startOffset:i,endOffset:r,endOffsetSubtitles:s,type:a}){let{media:l}=this;if(l&&!(l.currentTime<r)){if(!a||a==="video"){let{captionsTracks:c}=this;Object.keys(c).forEach((u)=>Pn(c[u],i,r))}if(this.config.renderTextTracksNatively&&i===0&&s!==void 0){let{textTracks:c}=this;Object.keys(c).forEach((u)=>Pn(c[u],i,s))}}}extractCea608Data(e){let i=[[],[]],r=31&e[0],s=2;for(let a=0;a<r;a++){let l=e[s++],c=127&e[s++],u=127&e[s++];if(c===0&&u===0)continue;if((4&l)!=0){let h=3&l;h!==0&&h!==1||(i[h].push(c),i[h].push(u))}}return i}},audioStreamController:class extends dn{constructor(e,i,r){super(e,i,r,"[audio-stream-controller]",Ue),this.videoBuffer=null,this.videoTrackCC=-1,this.waitingVideoCC=-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.mainDetails=null,this.bufferedTrack=null,this.switchingTrack=null}_registerListeners(){let{hls:e}=this;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.LEVEL_LOADED,this.onLevelLoaded,this),e.on(b.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.on(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(b.ERROR,this.onError,this),e.on(b.BUFFER_RESET,this.onBufferReset,this),e.on(b.BUFFER_CREATED,this.onBufferCreated,this),e.on(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.LEVEL_LOADED,this.onLevelLoaded,this),e.off(b.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.off(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(b.ERROR,this.onError,this),e.off(b.BUFFER_RESET,this.onBufferReset,this),e.off(b.BUFFER_CREATED,this.onBufferCreated,this),e.off(b.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(b.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(b.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}onInitPtsFound(e,{frag:i,id:r,initPTS:s,timescale:a}){if(r==="main"){let l=i.cc;this.initPTS[i.cc]={baseTime:s,timescale:a},this.log(`InitPTS for cc: ${l} found from main: ${s}`),this.videoTrackCC=l,this.state===Li&&this.tick()}}startLoad(e){if(!this.levels)return this.startPosition=e,void(this.state=oi);let i=this.lastCurrentTime;this.stopLoad(),this.setInterval(100),i>0&&e===-1?(this.log("Override startPosition with lastCurrentTime @"+i.toFixed(3)),e=i,this.state=Zt):(this.loadedmetadata=!1,this.state=xr),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}doTick(){switch(this.state){case Zt:this.doTickIdle();break;case xr:{var e;let{levels:r,trackId:s}=this,a=r==null||(e=r[s])==null?void 0:e.details;if(a){if(this.waitForCdnTuneIn(a))break;this.state=Li}break}case Pr:{var i;let r=performance.now(),s=this.retryDate;if(!s||r>=s||(i=this.media)!=null&&i.seeking){let{levels:a,trackId:l}=this;this.log("RetryDate reached, switch back to IDLE state"),this.resetStartWhenNotLoaded((a==null?void 0:a[l])||null),this.state=Zt}break}case Li:{let r=this.waitingData;if(r){let{frag:s,part:a,cache:l,complete:c}=r;if(this.initPTS[s.cc]!==void 0){this.waitingData=null,this.waitingVideoCC=-1,this.state=Nr;let u={frag:s,part:a,payload:l.flush(),networkDetails:null};this._handleFragmentLoadProgress(u),c&&super._handleFragmentLoadComplete(u)}else if(this.videoTrackCC!==this.waitingVideoCC)this.log(`Waiting fragment cc (${s.cc}) cancelled because video is at cc ${this.videoTrackCC}`),this.clearWaitingFragment();else{let u=this.getLoadPosition(),h=Jt.bufferInfo(this.mediaBuffer,u,this.config.maxBufferHole);fr(h.end,this.config.maxFragLookUpTolerance,s)<0&&(this.log(`Waiting fragment cc (${s.cc}) @ ${s.start} cancelled because another fragment at ${h.end} is needed`),this.clearWaitingFragment())}}else this.state=Zt}}this.onTickEnd()}clearWaitingFragment(){let e=this.waitingData;e&&(this.fragmentTracker.removeFragment(e.frag),this.waitingData=null,this.waitingVideoCC=-1,this.state=Zt)}resetLoadingState(){this.clearWaitingFragment(),super.resetLoadingState()}onTickEnd(){let{media:e}=this;e!=null&&e.readyState&&(this.lastCurrentTime=e.currentTime)}doTickIdle(){let{hls:e,levels:i,media:r,trackId:s}=this,a=e.config;if(!r&&(this.startFragRequested||!a.startFragPrefetch)||i==null||!i[s])return;let l=i[s],c=l.details;if(!c||c.live&&this.levelLastLoaded!==l||this.waitForCdnTuneIn(c))return void(this.state=xr);let u=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&u&&(this.bufferFlushed=!1,this.afterBufferFlushed(u,ot,Ue));let h=this.getFwdBufferInfo(u,Ue);if(h===null)return;let{bufferedTrack:m,switchingTrack:y}=this;if(!y&&this._streamEnded(h,c))return e.trigger(b.BUFFER_EOS,{type:"audio"}),void(this.state=un);let S=this.getFwdBufferInfo(this.videoBuffer?this.videoBuffer:this.media,ie),_=h.len,w=this.getMaxBufferLength(S==null?void 0:S.len),I=c.fragments,C=I[0].start,P=this.flushing?this.getLoadPosition():h.end;if(y&&r){let lt=this.getLoadPosition();m&&!is(y.attrs,m.attrs)&&(P=lt),c.PTSKnown&&lt<C&&(h.end>C||h.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),r.currentTime=C+0.05)}if(_>=w&&!y&&P<I[I.length-1].start)return;let F=this.getNextFragment(P,c),W=!1;if(F&&this.isLoopLoading(F,P)&&(W=!!F.gap,F=this.getNextFragmentLoopLoading(F,c,h,ie,w)),!F)return void(this.bufferFlushed=!0);let z=S&&F.start>S.end+c.targetduration;if(z||(S==null||!S.len)&&h.len){let lt=this.getAppendedFrag(F.start,ie);if(lt===null)return;if(W||(W=!!lt.gap||!!z&&S.len===0),z&&!W||W&&h.nextStart&&h.nextStart<lt.end)return}this.loadFragment(F,l,P)}getMaxBufferLength(e){let i=super.getMaxBufferLength();return e?Math.min(Math.max(i,e),this.config.maxMaxBufferLength):i}onMediaDetaching(){this.videoBuffer=null,this.bufferFlushed=this.flushing=!1,super.onMediaDetaching()}onAudioTracksUpdated(e,{audioTracks:i}){this.resetTransmuxer(),this.levels=i.map((r)=>new dr(r))}onAudioTrackSwitching(e,i){let r=!!i.url;this.trackId=i.id;let{fragCurrent:s}=this;s&&(s.abortRequests(),this.removeUnbufferedFrags(s.start)),this.resetLoadingState(),r?this.setInterval(100):this.resetTransmuxer(),r?(this.switchingTrack=i,this.state=Zt,this.flushAudioIfNeeded(i)):(this.switchingTrack=null,this.bufferedTrack=i,this.state=oi),this.tick()}onManifestLoading(){this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=this.flushing=!1,this.levels=this.mainDetails=this.waitingData=this.bufferedTrack=this.cachedTrackLoadedData=this.switchingTrack=null,this.startFragRequested=!1,this.trackId=this.videoTrackCC=this.waitingVideoCC=-1}onLevelLoaded(e,i){this.mainDetails=i.details,this.cachedTrackLoadedData!==null&&(this.hls.trigger(b.AUDIO_TRACK_LOADED,this.cachedTrackLoadedData),this.cachedTrackLoadedData=null)}onAudioTrackLoaded(e,i){var r;if(this.mainDetails==null)return void(this.cachedTrackLoadedData=i);let{levels:s}=this,{details:a,id:l}=i;if(!s)return void this.warn("Audio tracks were reset while loading level "+l);this.log(`Audio track ${l} loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""},duration:${a.totalduration}`);let c=s[l],u=0;if(a.live||(r=c.details)!=null&&r.live){this.checkLiveUpdate(a);let m=this.mainDetails;if(a.deltaUpdateFailed||!m)return;var h;if(!c.details&&a.hasProgramDateTime&&m.hasProgramDateTime)Wn(a,m),u=a.fragments[0].start;else u=this.alignPlaylists(a,c.details,(h=this.levelLastLoaded)==null?void 0:h.details)}c.details=a,this.levelLastLoaded=c,this.startFragRequested||!this.mainDetails&&a.live||this.setStartPosition(this.mainDetails||a,u),this.state!==xr||this.waitForCdnTuneIn(a)||(this.state=Zt),this.tick()}_handleFragmentLoadProgress(e){var i;let{frag:r,part:s,payload:a}=e,{config:l,trackId:c,levels:u}=this;if(!u)return void this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${r.sn} of level ${r.level} will not be buffered`);let h=u[c];if(!h)return void this.warn("Audio track is undefined on fragment load progress");let m=h.details;if(!m)return this.warn("Audio track details undefined on fragment load progress"),void this.removeUnbufferedFrags(r.start);let y=l.defaultAudioCodec||h.audioCodec||"mp4a.40.2",S=this.transmuxer;S||(S=this.transmuxer=new Hl(this.hls,Ue,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));let _=this.initPTS[r.cc],w=(i=r.initSegment)==null?void 0:i.data;if(_!==void 0){let C=s?s.index:-1,P=C!==-1,F=new Mr(r.level,r.sn,r.stats.chunkCount,a.byteLength,C,P);S.push(a,w,y,"",r,s,m.totalduration,!1,F,_)}else{this.log(`Unknown video PTS for cc ${r.cc}, waiting for video PTS before demuxing audio frag ${r.sn} of [${m.startSN} ,${m.endSN}],track ${c}`);let{cache:I}=this.waitingData=this.waitingData||{frag:r,part:s,cache:new jn,complete:!1};I.push(new Uint8Array(a)),this.waitingVideoCC=this.videoTrackCC,this.state=Li}}_handleFragmentLoadComplete(e){this.waitingData?this.waitingData.complete=!0:super._handleFragmentLoadComplete(e)}onBufferReset(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1}onBufferCreated(e,i){let r=i.tracks.audio;r&&(this.mediaBuffer=r.buffer||null),i.tracks.video&&(this.videoBuffer=i.tracks.video.buffer||null)}onFragBuffered(e,i){let{frag:r,part:s}=i;if(r.type===Ue)if(this.fragContextChanged(r))this.warn(`Fragment ${r.sn}${s?" p: "+s.index:""} of level ${r.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack?this.switchingTrack.name:"false"}`);else{if(r.sn!=="initSegment"){this.fragPrevious=r;let a=this.switchingTrack;a&&(this.bufferedTrack=a,this.switchingTrack=null,this.hls.trigger(b.AUDIO_TRACK_SWITCHED,E({},a)))}this.fragBufferedComplete(r,s)}else if(!this.loadedmetadata&&r.type===ie){let a=this.videoBuffer||this.media;if(a)Jt.getBuffered(a).length&&(this.loadedmetadata=!0)}}onError(e,i){var r;if(i.fatal)this.state=Fr;else switch(i.details){case N.FRAG_GAP:case N.FRAG_PARSING_ERROR:case N.FRAG_DECRYPT_ERROR:case N.FRAG_LOAD_ERROR:case N.FRAG_LOAD_TIMEOUT:case N.KEY_LOAD_ERROR:case N.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(Ue,i);break;case N.AUDIO_TRACK_LOAD_ERROR:case N.AUDIO_TRACK_LOAD_TIMEOUT:case N.LEVEL_PARSING_ERROR:i.levelRetry||this.state!==xr||((r=i.context)==null?void 0:r.type)!==ei||(this.state=Zt);break;case N.BUFFER_APPEND_ERROR:case N.BUFFER_FULL_ERROR:if(!i.parent||i.parent!=="audio")return;if(i.details===N.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(i)&&(this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"));break;case N.INTERNAL_EXCEPTION:this.recoverWorkerError(i)}}onBufferFlushing(e,{type:i}){i!==St&&(this.flushing=!0)}onBufferFlushed(e,{type:i}){if(i!==St){this.flushing=!1,this.bufferFlushed=!0,this.state===un&&(this.state=Zt);let r=this.mediaBuffer||this.media;r&&(this.afterBufferFlushed(r,i,Ue),this.tick())}}_handleTransmuxComplete(e){var i;let r="audio",{hls:s}=this,{remuxResult:a,chunkMeta:l}=e,c=this.getCurrentContext(l);if(!c)return void this.resetWhenMissingContext(l);let{frag:u,part:h,level:m}=c,{details:y}=m,{audio:S,text:_,id3:w,initSegment:I}=a;if(!this.fragContextChanged(u)&&y){if(this.state=Ui,this.switchingTrack&&S&&this.completeAudioSwitch(this.switchingTrack),I!=null&&I.tracks){let C=u.initSegment||u;this._bufferInitSegment(m,I.tracks,C,l),s.trigger(b.FRAG_PARSING_INIT_SEGMENT,{frag:C,id:"audio",tracks:I.tracks})}if(S){let{startPTS:C,endPTS:P,startDTS:F,endDTS:W}=S;h&&(h.elementaryStreams[ot]={startPTS:C,endPTS:P,startDTS:F,endDTS:W}),u.setElementaryStreamInfo(ot,C,P,F,W),this.bufferFragmentData(S,u,h,l)}if(w!=null&&(i=w.samples)!=null&&i.length){let C=T({id:"audio",frag:u,details:y},w);s.trigger(b.FRAG_PARSING_METADATA,C)}if(_){let C=T({id:"audio",frag:u,details:y},_);s.trigger(b.FRAG_PARSING_USERDATA,C)}}else this.fragmentTracker.removeFragment(u)}_bufferInitSegment(e,i,r,s){if(this.state!==Ui)return;i.video&&delete i.video;let a=i.audio;if(!a)return;a.id="audio";let l=e.audioCodec;this.log(`Init audio buffer, container:${a.container}, codecs[level/parsed]=[${l}/${a.codec}]`),l&&l.split(",").length===1&&(a.levelCodec=l),this.hls.trigger(b.BUFFER_CODECS,i);let c=a.initSegment;if(c!=null&&c.byteLength){let u={type:"audio",frag:r,part:null,chunkMeta:s,parent:r.type,data:c};this.hls.trigger(b.BUFFER_APPENDING,u)}this.tickImmediate()}loadFragment(e,i,r){let s=this.fragmentTracker.getState(e);var a;if(this.fragCurrent=e,this.switchingTrack||s===ze||s===pr)if(e.sn==="initSegment")this._loadInitSegment(e,i);else if((a=i.details)!=null&&a.live&&!this.initPTS[e.cc]){this.log(`Waiting for video PTS in continuity counter ${e.cc} of live stream before loading audio fragment ${e.sn} of level ${this.trackId}`),this.state=Li;let l=this.mainDetails;l&&l.fragments[0].start!==i.details.fragments[0].start&&Wn(i.details,l)}else this.startFragRequested=!0,super.loadFragment(e,i,r);else this.clearTrackerIfNeeded(e)}flushAudioIfNeeded(e){let{media:i,bufferedTrack:r}=this,s=r==null?void 0:r.attrs,a=e.attrs;i&&s&&(s.CHANNELS!==a.CHANNELS||r.name!==e.name||r.lang!==e.lang)&&(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null)}completeAudioSwitch(e){let{hls:i}=this;this.flushAudioIfNeeded(e),this.bufferedTrack=e,this.switchingTrack=null,i.trigger(b.AUDIO_TRACK_SWITCHED,E({},e))}},audioTrackController:class extends Ae{constructor(e){super(e,"[audio-track-controller]"),this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){let{hls:e}=this;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.LEVEL_LOADING,this.onLevelLoading,this),e.on(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.LEVEL_LOADING,this.onLevelLoading,this),e.off(b.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(b.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(b.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(e,i){this.tracks=i.audioTracks||[]}onAudioTrackLoaded(e,i){let{id:r,groupId:s,details:a}=i,l=this.tracksInGroup[r];if(!l||l.groupId!==s)return void this.warn(`Audio track with id:${r} and group:${s} not found in active group ${l==null?void 0:l.groupId}`);let c=l.details;l.details=i.details,this.log(`Audio track ${r} "${l.name}" lang:${l.lang} group:${s} loaded [${a.startSN}-${a.endSN}]`),r===this.trackId&&this.playlistLoaded(r,i,c)}onLevelLoading(e,i){this.switchLevel(i.level)}onLevelSwitching(e,i){this.switchLevel(i.level)}switchLevel(e){let i=this.hls.levels[e];if(!i)return;let r=i.audioGroups||null,s=this.groupIds,a=this.currentTrack;if(!r||(s==null?void 0:s.length)!==(r==null?void 0:r.length)||r!=null&&r.some((c)=>(s==null?void 0:s.indexOf(c))===-1)){this.groupIds=r,this.trackId=-1,this.currentTrack=null;let c=this.tracks.filter((S)=>!r||r.indexOf(S.groupId)!==-1);if(c.length)this.selectDefaultTrack&&!c.some((S)=>S.default)&&(this.selectDefaultTrack=!1),c.forEach((S,_)=>{S.id=_});else if(!a&&!this.tracksInGroup.length)return;this.tracksInGroup=c;let u=this.hls.config.audioPreference;if(!a&&u){let S=_i(u,c,Or);if(S>-1)a=c[S];else{let _=_i(u,this.tracks);a=this.tracks[_]}}let h=this.findTrackId(a);h===-1&&a&&(h=this.findTrackId(null));let m={audioTracks:c};this.log(`Updating audio tracks, ${c.length} track(s) found in group(s): ${r==null?void 0:r.join(",")}`),this.hls.trigger(b.AUDIO_TRACKS_UPDATED,m);let y=this.trackId;if(h!==-1&&y===-1)this.setAudioTrack(h);else if(c.length&&y===-1){var l;let S=Error(`No audio track selected for current audio group-ID(s): ${(l=this.groupIds)==null?void 0:l.join(",")} track count: ${c.length}`);this.warn(S.message),this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:S})}}else this.shouldReloadPlaylist(a)&&this.setAudioTrack(this.trackId)}onError(e,i){!i.fatal&&i.context&&(i.context.type!==ei||i.context.id!==this.trackId||this.groupIds&&this.groupIds.indexOf(i.context.groupId)===-1||(this.requestScheduled=-1,this.checkRetry(i)))}get allAudioTracks(){return this.tracks}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}setAudioOption(e){let i=this.hls;if(i.config.audioPreference=e,e){let r=this.allAudioTracks;if(this.selectDefaultTrack=!1,r.length){let s=this.currentTrack;if(s&&Ir(e,s,Or))return s;let a=_i(e,this.tracksInGroup,Or);if(a>-1){let l=this.tracksInGroup[a];return this.setAudioTrack(a),l}if(s){let l=i.loadLevel;l===-1&&(l=i.firstAutoLevel);let c=function(u,h,m,y,S){let _=h[y],w=h.reduce((W,z,lt)=>{let it=z.uri;return(W[it]||(W[it]=[])).push(lt),W},{})[_.uri];w.length>1&&(y=Math.max.apply(Math,w));let{videoRange:I,frameRate:C}=_,P=_.codecSet.substring(0,4),F=ho(h,y,(W)=>{if(W.videoRange!==I||W.frameRate!==C||W.codecSet.substring(0,4)!==P)return!1;let z=W.audioGroups,lt=m.filter((it)=>!z||z.indexOf(it.groupId)!==-1);return _i(u,lt,S)>-1});return F>-1?F:ho(h,y,(W)=>{let z=W.audioGroups,lt=m.filter((it)=>!z||z.indexOf(it.groupId)!==-1);return _i(u,lt,S)>-1})}(e,i.levels,r,l,Or);if(c===-1)return null;i.nextLoadLevel=c}if(e.channels||e.audioCodec){let l=_i(e,r);if(l>-1)return r[l]}}}return null}setAudioTrack(e){let i=this.tracksInGroup;if(e<0||e>=i.length)return void this.warn("Invalid audio track id: "+e);this.clearTimer(),this.selectDefaultTrack=!1;let r=this.currentTrack,s=i[e],a=s.details&&!s.details.live;if(e===this.trackId&&s===r&&a)return;if(this.log(`Switching to audio-track ${e} "${s.name}" lang:${s.lang} group:${s.groupId} channels:${s.channels}`),this.trackId=e,this.currentTrack=s,this.hls.trigger(b.AUDIO_TRACK_SWITCHING,E({},s)),a)return;let l=this.switchParams(s.url,r==null?void 0:r.details,s.details);this.loadPlaylist(l)}findTrackId(e){let i=this.tracksInGroup;for(let r=0;r<i.length;r++){let s=i[r];if((!this.selectDefaultTrack||s.default)&&(!e||Ir(e,s,Or)))return r}if(e){let{name:r,lang:s,assocLang:a,characteristics:l,audioCodec:c,channels:u}=e;for(let h=0;h<i.length;h++)if(Ir({name:r,lang:s,assocLang:a,characteristics:l,audioCodec:c,channels:u},i[h],Or))return h;for(let h=0;h<i.length;h++){let m=i[h];if(is(e.attrs,m.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return h}for(let h=0;h<i.length;h++){let m=i[h];if(is(e.attrs,m.attrs,["LANGUAGE"]))return h}}return-1}loadPlaylist(e){let i=this.currentTrack;if(this.shouldLoadPlaylist(i)&&i){super.loadPlaylist();let{id:r,groupId:s,url:a}=i;if(e)try{a=e.addDirectives(a)}catch(l){this.warn("Could not construct new URL with HLS Delivery Directives: "+l)}this.log(`loading audio-track playlist ${r} "${i.name}" lang:${i.lang} group:${s}`),this.clearTimer(),this.hls.trigger(b.AUDIO_TRACK_LOADING,{url:a,id:r,groupId:s,deliveryDirectives:e||null})}}},emeController:ns,cmcdController:class{constructor(e){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=()=>{this.initialized&&(this.starved=!0),this.buffering=!0},this.onPlaying=()=>{this.initialized||(this.initialized=!0),this.buffering=!1},this.applyPlaylistData=(s)=>{try{this.apply(s,{ot:qe.MANIFEST,su:!this.initialized})}catch(a){D.warn("Could not generate manifest CMCD data.",a)}},this.applyFragmentData=(s)=>{try{let a=s.frag,l=this.hls.levels[a.level],c=this.getObjectType(a),u={d:1000*a.duration,ot:c};c!==qe.VIDEO&&c!==qe.AUDIO&&c!=qe.MUXED||(u.br=l.bitrate/1000,u.tb=this.getTopBandwidth(c)/1000,u.bl=this.getBufferLength(c)),this.apply(s,u)}catch(a){D.warn("Could not generate segment CMCD data.",a)}},this.hls=e;let i=this.config=e.config,{cmcd:r}=i;r!=null&&(i.pLoader=this.createPlaylistLoader(),i.fLoader=this.createFragmentLoader(),this.sid=r.sessionId||function(){try{return crypto.randomUUID()}catch(s){try{let a=URL.createObjectURL(new Blob),l=a.toString();return URL.revokeObjectURL(a),l.slice(l.lastIndexOf("/")+1)}catch(a){let l=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(c)=>{let u=(l+16*Math.random())%16|0;return l=Math.floor(l/16),(c=="x"?u:3&u|8).toString(16)})}}}(),this.cid=r.contentId,this.useHeaders=r.useHeaders===!0,this.includeKeys=r.includeKeys,this.registerListeners())}registerListeners(){let e=this.hls;e.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(b.MEDIA_DETACHED,this.onMediaDetached,this),e.on(b.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){let e=this.hls;e.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(b.MEDIA_DETACHED,this.onMediaDetached,this),e.off(b.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=null}onMediaAttached(e,i){this.media=i.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}onBufferCreated(e,i){var r,s;this.audioBuffer=(r=i.tracks.audio)==null?void 0:r.buffer,this.videoBuffer=(s=i.tracks.video)==null?void 0:s.buffer}createData(){var e;return{v:1,sf:ic.HLS,sid:this.sid,cid:this.cid,pr:(e=this.media)==null?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1000}}apply(e,i={}){T(i,this.createData());let r=i.ot===qe.INIT||i.ot===qe.VIDEO||i.ot===qe.MUXED;this.starved&&r&&(i.bs=!0,i.su=!0,this.starved=!1),i.su==null&&(i.su=this.buffering);let{includeKeys:s}=this;s&&(i=Object.keys(i).reduce((a,l)=>(s.includes(l)&&(a[l]=i[l]),a),{})),this.useHeaders?(e.headers||(e.headers={}),Pf(e.headers,i)):e.url=xf(e.url,i)}getObjectType(e){let{type:i}=e;return i==="subtitle"?qe.TIMED_TEXT:e.sn==="initSegment"?qe.INIT:i==="audio"?qe.AUDIO:i==="main"?this.hls.audioTracks.length?qe.VIDEO:qe.MUXED:void 0}getTopBandwidth(e){let i,r=0,s=this.hls;if(e===qe.AUDIO)i=s.audioTracks;else{let a=s.maxAutoLevel,l=a>-1?a+1:s.levels.length;i=s.levels.slice(0,l)}for(let a of i)a.bitrate>r&&(r=a.bitrate);return r>0?r:NaN}getBufferLength(e){let i=this.hls.media,r=e===qe.AUDIO?this.audioBuffer:this.videoBuffer;if(!r||!i)return NaN;return 1000*Jt.bufferInfo(r,i.currentTime,this.config.maxBufferHole).len}createPlaylistLoader(){let{pLoader:e}=this.config,i=this.applyPlaylistData,r=e||this.config.loader;return class{constructor(a){this.loader=void 0,this.loader=new r(a)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(a,l,c){i(a),this.loader.load(a,l,c)}}}createFragmentLoader(){let{fLoader:e}=this.config,i=this.applyFragmentData,r=e||this.config.loader;return class{constructor(a){this.loader=void 0,this.loader=new r(a)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(a,l,c){i(a),this.loader.load(a,l,c)}}}},contentSteeringController:class{constructor(e){this.hls=void 0,this.log=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=e,this.log=D.log.bind(D,"[content-steering]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(b.MANIFEST_LOADING,this.onManifestLoading,this),e.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(b.MANIFEST_PARSED,this.onManifestParsed,this),e.on(b.ERROR,this.onError,this)}unregisterListeners(){let e=this.hls;e&&(e.off(b.MANIFEST_LOADING,this.onManifestLoading,this),e.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(b.MANIFEST_PARSED,this.onManifestParsed,this),e.off(b.ERROR,this.onError,this))}startLoad(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){let e=1000*this.timeToLoad-(performance.now()-this.updated);if(e>0)return void this.scheduleRefresh(this.uri,e)}this.loadSteeringManifest(this.uri)}}stopLoad(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout()}clearTimeout(){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(e){let i=this.levels;i&&(this.levels=i.filter((r)=>r!==e))}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(e,i){let{contentSteering:r}=i;r!==null&&(this.pathwayId=r.pathwayId,this.uri=r.uri,this.started&&this.startLoad())}onManifestParsed(e,i){this.audioTracks=i.audioTracks,this.subtitleTracks=i.subtitleTracks}onError(e,i){let{errorAction:r}=i;if((r==null?void 0:r.action)===Fi&&r.flags===Zs){let s=this.levels,a=this.pathwayPriority,l=this.pathwayId;if(i.context){let{groupId:c,pathwayId:u,type:h}=i.context;c&&s?l=this.getPathwayForGroupId(c,h,l):u&&(l=u)}l in this.penalizedPathways||(this.penalizedPathways[l]=performance.now()),!a&&s&&(a=s.reduce((c,u)=>(c.indexOf(u.pathwayId)===-1&&c.push(u.pathwayId),c),[])),a&&a.length>1&&(this.updatePathwayPriority(a),r.resolved=this.pathwayId!==l),r.resolved||D.warn(`Could not resolve ${i.details} ("${i.error.message}") with content-steering for Pathway: ${l} levels: ${s?s.length:s} priorities: ${JSON.stringify(a)} penalized: ${JSON.stringify(this.penalizedPathways)}`)}}filterParsedLevels(e){this.levels=e;let i=this.getLevelsForPathway(this.pathwayId);if(i.length===0){let r=e[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${r}"`),i=this.getLevelsForPathway(r),this.pathwayId=r}return i.length!==e.length?(this.log(`Found ${i.length}/${e.length} levels in Pathway "${this.pathwayId}"`),i):e}getLevelsForPathway(e){return this.levels===null?[]:this.levels.filter((i)=>e===i.pathwayId)}updatePathwayPriority(e){let i;this.pathwayPriority=e;let r=this.penalizedPathways,s=performance.now();Object.keys(r).forEach((a)=>{s-r[a]>300000&&delete r[a]});for(let a=0;a<e.length;a++){let l=e[a];if(l in r)continue;if(l===this.pathwayId)return;let c=this.hls.nextLoadLevel,u=this.hls.levels[c];if(i=this.getLevelsForPathway(l),i.length>0){this.log(`Setting Pathway to "${l}"`),this.pathwayId=l,Xs(i),this.hls.trigger(b.LEVELS_UPDATED,{levels:i});let h=this.hls.levels[c];u&&h&&this.levels&&(h.attrs["STABLE-VARIANT-ID"]!==u.attrs["STABLE-VARIANT-ID"]&&h.bitrate!==u.bitrate&&this.log(`Unstable Pathways change from bitrate ${u.bitrate} to ${h.bitrate}`),this.hls.nextLoadLevel=c);break}}}getPathwayForGroupId(e,i,r){let s=this.getLevelsForPathway(r).concat(this.levels||[]);for(let a=0;a<s.length;a++)if(i===ei&&s[a].hasAudioGroup(e)||i===pi&&s[a].hasSubtitleGroup(e))return s[a].pathwayId;return r}clonePathways(e){let i=this.levels;if(!i)return;let r={},s={};e.forEach((a)=>{let{ID:l,"BASE-ID":c,"URI-REPLACEMENT":u}=a;if(i.some((m)=>m.pathwayId===l))return;let h=this.getLevelsForPathway(c).map((m)=>{let y=new Y(m.attrs);y["PATHWAY-ID"]=l;let S=y.AUDIO&&`${y.AUDIO}_clone_${l}`,_=y.SUBTITLES&&`${y.SUBTITLES}_clone_${l}`;S&&(r[y.AUDIO]=S,y.AUDIO=S),_&&(s[y.SUBTITLES]=_,y.SUBTITLES=_);let w=Bu(m.uri,y["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",u),I=new dr({attrs:y,audioCodec:m.audioCodec,bitrate:m.bitrate,height:m.height,name:m.name,url:w,videoCodec:m.videoCodec,width:m.width});if(m.audioGroups)for(let C=1;C<m.audioGroups.length;C++)I.addGroupId("audio",`${m.audioGroups[C]}_clone_${l}`);if(m.subtitleGroups)for(let C=1;C<m.subtitleGroups.length;C++)I.addGroupId("text",`${m.subtitleGroups[C]}_clone_${l}`);return I});i.push(...h),Uu(this.audioTracks,r,u,l),Uu(this.subtitleTracks,s,u,l)})}loadSteeringManifest(e){let i=this.hls.config,r=i.loader,s;this.loader&&this.loader.destroy(),this.loader=new r(i);try{s=new self.URL(e)}catch(m){return this.enabled=!1,void this.log("Failed to parse Steering Manifest URI: "+e)}if(s.protocol!=="data:"){let m=0|(this.hls.bandwidthEstimate||i.abrEwmaDefaultEstimate);s.searchParams.set("_HLS_pathway",this.pathwayId),s.searchParams.set("_HLS_throughput",""+m)}let a={responseType:"json",url:s.href},l=i.steeringManifestLoadPolicy.default,c=l.errorRetry||l.timeoutRetry||{},u={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:c.maxNumRetry||0,retryDelay:c.retryDelayMs||0,maxRetryDelay:c.maxRetryDelayMs||0},h={onSuccess:(m,y,S,_)=>{this.log(`Loaded steering manifest: "${s}"`);let w=m.data;if(w.VERSION!==1)return void this.log(`Steering VERSION ${w.VERSION} not supported!`);this.updated=performance.now(),this.timeToLoad=w.TTL;let{"RELOAD-URI":I,"PATHWAY-CLONES":C,"PATHWAY-PRIORITY":P}=w;if(I)try{this.uri=new self.URL(I,s).href}catch(W){return this.enabled=!1,void this.log("Failed to parse Steering Manifest RELOAD-URI: "+I)}this.scheduleRefresh(this.uri||S.url),C&&this.clonePathways(C);let F={steeringManifest:w,url:s.toString()};this.hls.trigger(b.STEERING_MANIFEST_LOADED,F),P&&this.updatePathwayPriority(P)},onError:(m,y,S,_)=>{if(this.log(`Error loading steering manifest: ${m.code} ${m.text} (${y.url})`),this.stopLoad(),m.code===410)return this.enabled=!1,void this.log(`Steering manifest ${y.url} no longer available`);let w=1000*this.timeToLoad;if(m.code!==429)this.scheduleRefresh(this.uri||y.url,w);else{let I=this.loader;if(typeof(I==null?void 0:I.getResponseHeader)=="function"){let C=I.getResponseHeader("Retry-After");C&&(w=1000*parseFloat(C))}this.log(`Steering manifest ${y.url} rate limited`)}},onTimeout:(m,y,S)=>{this.log(`Timeout loading steering manifest (${y.url})`),this.scheduleRefresh(this.uri||y.url)}};this.log("Requesting steering manifest: "+s),this.loader.load(a,u,h)}scheduleRefresh(e,i=1000*this.timeToLoad){this.clearTimeout(),this.reloadTimer=self.setTimeout(()=>{var r;let s=(r=this.hls)==null?void 0:r.media;!s||s.ended?this.scheduleRefresh(e,1000*this.timeToLoad):this.loadSteeringManifest(e)},i)}}});function cc(t){return t&&typeof t=="object"?Array.isArray(t)?t.map(cc):Object.keys(t).reduce((e,i)=>(e[i]=cc(t[i]),e),{}):t}function Hf(t){let e=t.loader;if(e!==lc&&e!==oc)D.log("[config]: Custom loader detected, cannot enable progressive streaming"),t.progressive=!1;else(function(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(i){}return!1})()&&(t.loader=lc,t.progressive=!0,t.enableSoftwareAES=!0,D.log("[config]: Progressive streaming enabled, using FetchLoader"))}let uc;class Hu extends Ae{constructor(t,e){super(t,"[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=e,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(b.MANIFEST_LOADING,this.onManifestLoading,this),t.on(b.MANIFEST_LOADED,this.onManifestLoaded,this),t.on(b.LEVEL_LOADED,this.onLevelLoaded,this),t.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(b.FRAG_BUFFERED,this.onFragBuffered,this),t.on(b.ERROR,this.onError,this)}_unregisterListeners(){let{hls:t}=this;t.off(b.MANIFEST_LOADING,this.onManifestLoading,this),t.off(b.MANIFEST_LOADED,this.onManifestLoaded,this),t.off(b.LEVEL_LOADED,this.onLevelLoaded,this),t.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(b.FRAG_BUFFERED,this.onFragBuffered,this),t.off(b.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}stopLoad(){this._levels.forEach((t)=>{t.loadError=0,t.fragmentError=0}),super.stopLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1}onManifestLoading(t,e){this.resetLevels()}onManifestLoaded(t,e){let i=this.hls.config.preferManagedMediaSource,r=[],s={},a={},l=!1,c=!1,u=!1;e.levels.forEach((h)=>{var m,y;let S=h.attrs,{audioCodec:_,videoCodec:w}=h;((m=_)==null?void 0:m.indexOf("mp4a.40.34"))!==-1&&(uc||(uc=/chrome|firefox/i.test(navigator.userAgent)),uc&&(h.audioCodec=_=void 0)),_&&(h.audioCodec=_=Qr(_,i)),((y=w)==null?void 0:y.indexOf("avc1"))===0&&(w=h.videoCodec=function(Q){let X=Q.split(".");if(X.length>2){let kt=X.shift()+".";return kt+=parseInt(X.shift()).toString(16),kt+=("000"+parseInt(X.shift()).toString(16)).slice(-4),kt}return Q}(w));let{width:I,height:C,unknownCodecs:P}=h;if(l||(l=!(!I||!C)),c||(c=!!w),u||(u=!!_),P!=null&&P.length||_&&!Dn(_,"audio",i)||w&&!Dn(w,"video",i))return;let{CODECS:F,"FRAME-RATE":W,"HDCP-LEVEL":z,"PATHWAY-ID":lt,RESOLUTION:it,"VIDEO-RANGE":ft}=S,mt=`${(lt||".")+"-"}${h.bitrate}-${it}-${W}-${F}-${ft}-${z}`;if(s[mt])if(s[mt].uri===h.url||h.attrs["PATHWAY-ID"])s[mt].addGroupId("audio",S.AUDIO),s[mt].addGroupId("text",S.SUBTITLES);else{let Q=a[mt]+=1;h.attrs["PATHWAY-ID"]=Array(Q+1).join(".");let X=new dr(h);s[mt]=X,r.push(X)}else{let Q=new dr(h);s[mt]=Q,a[mt]=1,r.push(Q)}}),this.filterAndSortMediaOptions(r,e,l,c,u)}filterAndSortMediaOptions(t,e,i,r,s){let a=[],l=[],c=t;if((i||r)&&s&&(c=c.filter(({videoCodec:_,videoRange:w,width:I,height:C})=>{return(!!_||!(!I||!C))&&(!!(P=w)&&Un.indexOf(P)>-1);var P})),c.length===0)return void Promise.resolve().then(()=>{if(this.hls){e.levels.length&&this.warn("One or more CODECS in variant not supported: "+JSON.stringify(e.levels[0].attrs));let _=Error("no level with compatible codecs found in manifest");this.hls.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:e.url,error:_,reason:_.message})}});if(e.audioTracks){let{preferManagedMediaSource:_}=this.hls.config;a=e.audioTracks.filter((w)=>!w.audioCodec||Dn(w.audioCodec,"audio",_)),Vu(a)}e.subtitles&&(l=e.subtitles,Vu(l));let u=c.slice(0);c.sort((_,w)=>{if(_.attrs["HDCP-LEVEL"]!==w.attrs["HDCP-LEVEL"])return(_.attrs["HDCP-LEVEL"]||"")>(w.attrs["HDCP-LEVEL"]||"")?1:-1;if(i&&_.height!==w.height)return _.height-w.height;if(_.frameRate!==w.frameRate)return _.frameRate-w.frameRate;if(_.videoRange!==w.videoRange)return Un.indexOf(_.videoRange)-Un.indexOf(w.videoRange);if(_.videoCodec!==w.videoCodec){let I=Ee(_.videoCodec),C=Ee(w.videoCodec);if(I!==C)return C-I}if(_.uri===w.uri&&_.codecSet!==w.codecSet){let I=Jr(_.codecSet),C=Jr(w.codecSet);if(I!==C)return C-I}return _.averageBitrate!==w.averageBitrate?_.averageBitrate-w.averageBitrate:0});let h=u[0];if(this.steering&&(c=this.steering.filterParsedLevels(c),c.length!==u.length)){for(let _=0;_<u.length;_++)if(u[_].pathwayId===c[0].pathwayId){h=u[_];break}}this._levels=c;for(let _=0;_<c.length;_++)if(c[_]===h){var m;this._firstLevel=_;let w=h.bitrate,I=this.hls.bandwidthEstimate;if(this.log(`manifest loaded, ${c.length} level(s) found, first bitrate: ${w}`),((m=this.hls.userConfig)==null?void 0:m.abrEwmaDefaultEstimate)===void 0){let C=Math.min(w,this.hls.config.abrEwmaDefaultEstimateMax);C>I&&I===Gu.abrEwmaDefaultEstimate&&(this.hls.bandwidthEstimate=C)}break}let y=s&&!r,S={levels:c,audioTracks:a,subtitleTracks:l,sessionData:e.sessionData,sessionKeys:e.sessionKeys,firstLevel:this._firstLevel,stats:e.stats,audio:s,video:r,altAudio:!y&&a.some((_)=>!!_.url)};this.hls.trigger(b.MANIFEST_PARSED,S),(this.hls.config.autoStartLoad||this.hls.forceStartLoad)&&this.hls.startLoad(this.hls.config.startPosition)}get levels(){return this._levels.length===0?null:this._levels}get level(){return this.currentLevelIndex}set level(t){let e=this._levels;if(e.length===0)return;if(t<0||t>=e.length){let h=Error("invalid level idx"),m=t<0;if(this.hls.trigger(b.ERROR,{type:H.OTHER_ERROR,details:N.LEVEL_SWITCH_ERROR,level:t,fatal:m,error:h,reason:h.message}),m)return;t=Math.min(t,e.length-1)}let i=this.currentLevelIndex,r=this.currentLevel,s=r?r.attrs["PATHWAY-ID"]:void 0,a=e[t],l=a.attrs["PATHWAY-ID"];if(this.currentLevelIndex=t,this.currentLevel=a,i===t&&a.details&&r&&s===l)return;this.log(`Switching to level ${t} (${a.height?a.height+"p ":""}${a.videoRange?a.videoRange+" ":""}${a.codecSet?a.codecSet+" ":""}@${a.bitrate})${l?" with Pathway "+l:""} from level ${i}${s?" with Pathway "+s:""}`);let c={level:t,attrs:a.attrs,details:a.details,bitrate:a.bitrate,averageBitrate:a.averageBitrate,maxBitrate:a.maxBitrate,realBitrate:a.realBitrate,width:a.width,height:a.height,codecSet:a.codecSet,audioCodec:a.audioCodec,videoCodec:a.videoCodec,audioGroups:a.audioGroups,subtitleGroups:a.subtitleGroups,loaded:a.loaded,loadError:a.loadError,fragmentError:a.fragmentError,name:a.name,id:a.id,uri:a.uri,url:a.url,urlId:0,audioGroupIds:a.audioGroupIds,textGroupIds:a.textGroupIds};this.hls.trigger(b.LEVEL_SWITCHING,c);let u=a.details;if(!u||u.live){let h=this.switchParams(a.uri,r==null?void 0:r.details,u);this.loadPlaylist(h)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(t){this.manualLevelIndex=t,this._startLevel===void 0&&(this._startLevel=t),t!==-1&&(this.level=t)}get firstLevel(){return this._firstLevel}set firstLevel(t){this._firstLevel=t}get startLevel(){if(this._startLevel===void 0){let t=this.hls.config.startLevel;return t!==void 0?t:this.hls.firstAutoLevel}return this._startLevel}set startLevel(t){this._startLevel=t}onError(t,e){!e.fatal&&e.context&&e.context.type===xi&&e.context.level===this.level&&this.checkRetry(e)}onFragBuffered(t,{frag:e}){if(e!==void 0&&e.type===ie){let i=e.elementaryStreams;if(!Object.keys(i).some((s)=>!!i[s]))return;let r=this._levels[e.level];r!=null&&r.loadError&&(this.log(`Resetting level error count of ${r.loadError} on frag buffered`),r.loadError=0)}}onLevelLoaded(t,e){var i;let{level:r,details:s}=e,a=this._levels[r];var l;if(!a)return this.warn("Invalid level index "+r),void((l=e.deliveryDirectives)!=null&&l.skip&&(s.deltaUpdateFailed=!0));r===this.currentLevelIndex?(a.fragmentError===0&&(a.loadError=0),this.playlistLoaded(r,e,a.details)):(i=e.deliveryDirectives)!=null&&i.skip&&(s.deltaUpdateFailed=!0)}loadPlaylist(t){super.loadPlaylist();let e=this.currentLevelIndex,i=this.currentLevel;if(i&&this.shouldLoadPlaylist(i)){let r=i.uri;if(t)try{r=t.addDirectives(r)}catch(a){this.warn("Could not construct new URL with HLS Delivery Directives: "+a)}let s=i.attrs["PATHWAY-ID"];this.log(`Loading level index ${e}${(t==null?void 0:t.msn)!==void 0?" at sn "+t.msn+" part "+t.part:""} with${s?" Pathway "+s:""} ${r}`),this.clearTimer(),this.hls.trigger(b.LEVEL_LOADING,{url:r,level:e,pathwayId:i.attrs["PATHWAY-ID"],id:0,deliveryDirectives:t||null})}}get nextLoadLevel(){return this.manualLevelIndex!==-1?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(t){this.level=t,this.manualLevelIndex===-1&&(this.hls.nextAutoLevel=t)}removeLevel(t){var e;let i=this._levels.filter((r,s)=>s!==t||(this.steering&&this.steering.removeLevel(r),r===this.currentLevel&&(this.currentLevel=null,this.currentLevelIndex=-1,r.details&&r.details.fragments.forEach((a)=>a.level=-1)),!1));Xs(i),this._levels=i,this.currentLevelIndex>-1&&(e=this.currentLevel)!=null&&e.details&&(this.currentLevelIndex=this.currentLevel.details.fragments[0].level),this.hls.trigger(b.LEVELS_UPDATED,{levels:i})}onLevelsUpdated(t,{levels:e}){this._levels=e}checkMaxAutoUpdated(){let{autoLevelCapping:t,maxAutoLevel:e,maxHdcpLevel:i}=this.hls;this._maxAutoLevel!==e&&(this._maxAutoLevel=e,this.hls.trigger(b.MAX_AUTO_LEVEL_UPDATED,{autoLevelCapping:t,levels:this.levels,maxAutoLevel:e,minAutoLevel:this.hls.minAutoLevel,maxHdcpLevel:i}))}}function Vu(t){let e={};t.forEach((i)=>{let r=i.groupId||"";i.id=e[r]=e[r]||0,e[r]++})}class Ku{constructor(t){this.config=void 0,this.keyUriToKeyInfo={},this.emeController=null,this.config=t}abort(t){for(let i in this.keyUriToKeyInfo){let r=this.keyUriToKeyInfo[i].loader;if(r){var e;if(t&&t!==((e=r.context)==null?void 0:e.frag.type))return;r.abort()}}}detach(){for(let t in this.keyUriToKeyInfo){let e=this.keyUriToKeyInfo[t];(e.mediaKeySessionContext||e.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[t]}}destroy(){this.detach();for(let t in this.keyUriToKeyInfo){let e=this.keyUriToKeyInfo[t].loader;e&&e.destroy()}this.keyUriToKeyInfo={}}createKeyLoadError(t,e=N.KEY_LOAD_ERROR,i,r,s){return new Ai({type:H.NETWORK_ERROR,details:e,fatal:!1,frag:t,response:s,error:i,networkDetails:r})}loadClear(t,e){if(this.emeController&&this.config.emeEnabled){let{sn:i,cc:r}=t;for(let s=0;s<e.length;s++){let a=e[s];if(r<=a.cc&&(i==="initSegment"||a.sn==="initSegment"||i<a.sn)){this.emeController.selectKeySystemFormat(a).then((l)=>{a.setKeyFormat(l)});break}}}}load(t){return!t.decryptdata&&t.encrypted&&this.emeController?this.emeController.selectKeySystemFormat(t).then((e)=>this.loadInternal(t,e)):this.loadInternal(t)}loadInternal(t,e){var i,r;e&&t.setKeyFormat(e);let s=t.decryptdata;if(!s){let u=Error(e?"Expected frag.decryptdata to be defined after setting format "+e:"Missing decryption data on fragment in onKeyLoading");return Promise.reject(this.createKeyLoadError(t,N.KEY_LOAD_ERROR,u))}let a=s.uri;if(!a)return Promise.reject(this.createKeyLoadError(t,N.KEY_LOAD_ERROR,Error(`Invalid key URI: "${a}"`)));let l=this.keyUriToKeyInfo[a];if((i=l)!=null&&i.decryptdata.key)return s.key=l.decryptdata.key,Promise.resolve({frag:t,keyInfo:l});var c;if((r=l)!=null&&r.keyLoadPromise)switch((c=l.mediaKeySessionContext)==null?void 0:c.keyStatus){case void 0:case"status-pending":case"usable":case"usable-in-future":return l.keyLoadPromise.then((u)=>(s.key=u.keyInfo.decryptdata.key,{frag:t,keyInfo:l}))}switch(l=this.keyUriToKeyInfo[a]={decryptdata:s,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},s.method){case"ISO-23001-7":case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return s.keyFormat==="identity"?this.loadKeyHTTP(l,t):this.loadKeyEME(l,t);case"AES-128":return this.loadKeyHTTP(l,t);default:return Promise.reject(this.createKeyLoadError(t,N.KEY_LOAD_ERROR,Error(`Key supplied with unsupported METHOD: "${s.method}"`)))}}loadKeyEME(t,e){let i={frag:e,keyInfo:t};if(this.emeController&&this.config.emeEnabled){let r=this.emeController.loadKey(i);if(r)return(t.keyLoadPromise=r.then((s)=>(t.mediaKeySessionContext=s,i))).catch((s)=>{throw t.keyLoadPromise=null,s})}return Promise.resolve(i)}loadKeyHTTP(t,e){let i=this.config,r=new i.loader(i);return e.keyLoader=t.loader=r,t.keyLoadPromise=new Promise((s,a)=>{let l={keyInfo:t,frag:e,responseType:"arraybuffer",url:t.decryptdata.uri},c=i.keyLoadPolicy.default,u={loadPolicy:c,timeout:c.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},h={onSuccess:(m,y,S,_)=>{let{frag:w,keyInfo:I,url:C}=S;if(!w.decryptdata||I!==this.keyUriToKeyInfo[C])return a(this.createKeyLoadError(w,N.KEY_LOAD_ERROR,Error("after key load, decryptdata unset or changed"),_));I.decryptdata.key=w.decryptdata.key=new Uint8Array(m.data),w.keyLoader=null,I.loader=null,s({frag:w,keyInfo:I})},onError:(m,y,S,_)=>{this.resetLoader(y),a(this.createKeyLoadError(e,N.KEY_LOAD_ERROR,Error(`HTTP Error ${m.code} loading key ${m.text}`),S,E({url:l.url,data:void 0},m)))},onTimeout:(m,y,S)=>{this.resetLoader(y),a(this.createKeyLoadError(e,N.KEY_LOAD_TIMEOUT,Error("key loading timed out"),S))},onAbort:(m,y,S)=>{this.resetLoader(y),a(this.createKeyLoadError(e,N.INTERNAL_ABORTED,Error("key loading aborted"),S))}};r.load(l,u,h)})}resetLoader(t){let{frag:e,keyInfo:i,url:r}=t,s=i.loader;e.keyLoader===s&&(e.keyLoader=null,i.loader=null),delete this.keyUriToKeyInfo[r],s&&s.destroy()}}function Wu(){return self.SourceBuffer||self.WebKitSourceBuffer}function Yu(){if(!Pi())return!1;let t=Wu();return!t||t.prototype&&typeof t.prototype.appendBuffer=="function"&&typeof t.prototype.remove=="function"}class ju{constructor(t,e,i,r){this.config=void 0,this.media=null,this.fragmentTracker=void 0,this.hls=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.config=t,this.media=e,this.fragmentTracker=i,this.hls=r}destroy(){this.media=null,this.hls=this.fragmentTracker=null}poll(t,e){let{config:i,media:r,stalled:s}=this;if(r===null)return;let{currentTime:a,seeking:l}=r,c=this.seeking&&!l,u=!this.seeking&&l;if(this.seeking=l,a!==t){if(this.moved=!0,l||(this.nudgeRetry=0),s!==null){if(this.stallReported){let I=self.performance.now()-s;D.warn(`playback not stuck anymore @${a}, after ${Math.round(I)}ms`),this.stallReported=!1}this.stalled=null}return}if(u||c)return void(this.stalled=null);if(r.paused&&!l||r.ended||r.playbackRate===0||!Jt.getBuffered(r).length)return void(this.nudgeRetry=0);let h=Jt.bufferInfo(r,a,0),m=h.nextStart||0;if(l){let I=h.len>2,C=!m||e&&e.start<=a||m-a>2&&!this.fragmentTracker.getPartialFragment(a);if(I||C)return;this.moved=!1}if(!this.moved&&this.stalled!==null){var y;if(!(h.len>0)&&!m)return;let I=Math.max(m,h.start||0)-a,C=this.hls.levels?this.hls.levels[this.hls.currentLevel]:null,P=(C==null||(y=C.details)==null?void 0:y.live)?2*C.details.targetduration:2,F=this.fragmentTracker.getPartialFragment(a);if(I>0&&(I<=P||F))return void(r.paused||this._trySkipBufferHole(F))}let S=self.performance.now();if(s===null)return void(this.stalled=S);let _=S-s;if(!l&&_>=250&&(this._reportStall(h),!this.media))return;let w=Jt.bufferInfo(r,a,i.maxBufferHole);this._tryFixBufferStall(w,_)}_tryFixBufferStall(t,e){let{config:i,fragmentTracker:r,media:s}=this;if(s===null)return;let a=s.currentTime,l=r.getPartialFragment(a);if(l){if(this._trySkipBufferHole(l)||!this.media)return}(t.len>i.maxBufferHole||t.nextStart&&t.nextStart-a<i.maxBufferHole)&&e>1000*i.highBufferWatchdogPeriod&&(D.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())}_reportStall(t){let{hls:e,media:i,stallReported:r}=this;if(!r&&i){this.stallReported=!0;let s=Error(`Playback stalling at @${i.currentTime} due to low buffer (${JSON.stringify(t)})`);D.warn(s.message),e.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.BUFFER_STALLED_ERROR,fatal:!1,error:s,buffer:t.len})}}_trySkipBufferHole(t){let{config:e,hls:i,media:r}=this;if(r===null)return 0;let s=r.currentTime,a=Jt.bufferInfo(r,s,0),l=s<a.start?a.start:a.nextStart;if(l){let c=a.len<=e.maxBufferHole,u=a.len>0&&a.len<1&&r.readyState<3,h=l-s;if(h>0&&(c||u)){if(h>e.maxBufferHole){let{fragmentTracker:y}=this,S=!1;if(s===0){let _=y.getAppendedFrag(0,ie);_&&l<_.end&&(S=!0)}if(!S){let _=t||y.getAppendedFrag(s,ie);if(_){let w=!1,I=_.end;for(;I<l;){let C=y.getPartialFragment(I);if(!C){w=!0;break}I+=C.duration}if(w)return 0}}}let m=Math.max(l+0.05,s+0.1);if(D.warn(`skipping hole, adjusting currentTime from ${s} to ${m}`),this.moved=!0,this.stalled=null,r.currentTime=m,t&&!t.gap){let y=Error(`fragment loaded with buffer holes, seeking from ${s} to ${m}`);i.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:y,reason:y.message,frag:t})}return m}}return 0}_tryNudgeBuffer(){let{config:t,hls:e,media:i,nudgeRetry:r}=this;if(i===null)return;let s=i.currentTime;if(this.nudgeRetry++,r<t.nudgeMaxRetry){let a=s+(r+1)*t.nudgeOffset,l=Error(`Nudging 'currentTime' from ${s} to ${a}`);D.warn(l.message),i.currentTime=a,e.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.BUFFER_NUDGE_ON_STALL,error:l,fatal:!1})}else{let a=Error(`Playhead still not moving while enough data buffered @${s} after ${t.nudgeMaxRetry} nudges`);D.error(a.message),e.trigger(b.ERROR,{type:H.MEDIA_ERROR,details:N.BUFFER_STALLED_ERROR,error:a,fatal:!0})}}}class zu extends dn{constructor(t,e,i){super(t,e,i,"[stream-controller]",ie),this.audioCodecSwap=!1,this.gapController=null,this.level=-1,this._forceStartLoad=!1,this.altAudio=!1,this.audioOnly=!1,this.fragPlaying=null,this.onvplaying=null,this.onvseeked=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(b.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(b.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(b.MANIFEST_LOADING,this.onManifestLoading,this),t.on(b.MANIFEST_PARSED,this.onManifestParsed,this),t.on(b.LEVEL_LOADING,this.onLevelLoading,this),t.on(b.LEVEL_LOADED,this.onLevelLoaded,this),t.on(b.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.on(b.ERROR,this.onError,this),t.on(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.on(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.on(b.BUFFER_CREATED,this.onBufferCreated,this),t.on(b.BUFFER_FLUSHED,this.onBufferFlushed,this),t.on(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(b.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:t}=this;t.off(b.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(b.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(b.MANIFEST_LOADING,this.onManifestLoading,this),t.off(b.MANIFEST_PARSED,this.onManifestParsed,this),t.off(b.LEVEL_LOADED,this.onLevelLoaded,this),t.off(b.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.off(b.ERROR,this.onError,this),t.off(b.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.off(b.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.off(b.BUFFER_CREATED,this.onBufferCreated,this),t.off(b.BUFFER_FLUSHED,this.onBufferFlushed,this),t.off(b.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(b.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying()}startLoad(t){if(this.levels){let{lastCurrentTime:e,hls:i}=this;if(this.stopLoad(),this.setInterval(100),this.level=-1,!this.startFragRequested){let r=i.startLevel;r===-1&&(i.config.testBandwidth&&this.levels.length>1?(r=0,this.bitrateTest=!0):r=i.firstAutoLevel),i.nextLoadLevel=r,this.level=i.loadLevel,this.loadedmetadata=!1}e>0&&t===-1&&(this.log("Override startPosition with lastCurrentTime @"+e.toFixed(3)),t=e),this.state=Zt,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=t,this.tick()}else this._forceStartLoad=!0,this.state=oi}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case fe:{let{levels:e,level:i}=this,r=e==null?void 0:e[i],s=r==null?void 0:r.details;if(s&&(!s.live||this.levelLastLoaded===r)){if(this.waitForCdnTuneIn(s))break;this.state=Zt;break}if(this.hls.nextLoadLevel!==this.level){this.state=Zt;break}break}case Pr:{var t;let e=self.performance.now(),i=this.retryDate;if(!i||e>=i||(t=this.media)!=null&&t.seeking){let{levels:r,level:s}=this,a=r==null?void 0:r[s];this.resetStartWhenNotLoaded(a||null),this.state=Zt}}}this.state===Zt&&this.doTickIdle(),this.onTickEnd()}onTickEnd(){super.onTickEnd(),this.checkBuffer(),this.checkFragmentChanged()}doTickIdle(){let{hls:t,levelLastLoaded:e,levels:i,media:r}=this;if(e===null||!r&&(this.startFragRequested||!t.config.startFragPrefetch))return;if(this.altAudio&&this.audioOnly)return;let s=t.nextLoadLevel;if(i==null||!i[s])return;let a=i[s],l=this.getMainFwdBufferInfo();if(l===null)return;let c=this.getLevelDetails();if(c&&this._streamEnded(l,c)){let w={};return this.altAudio&&(w.type="video"),this.hls.trigger(b.BUFFER_EOS,w),void(this.state=un)}t.loadLevel!==s&&t.manualLevel===-1&&this.log(`Adapting to level ${s} from level ${this.level}`),this.level=t.nextLoadLevel=s;let u=a.details;if(!u||this.state===fe||u.live&&this.levelLastLoaded!==a)return this.level=s,void(this.state=fe);let h=l.len,m=this.getMaxBufferLength(a.maxBitrate);if(h>=m)return;this.backtrackFragment&&this.backtrackFragment.start>l.end&&(this.backtrackFragment=null);let y=this.backtrackFragment?this.backtrackFragment.start:l.end,S=this.getNextFragment(y,u);if(this.couldBacktrack&&!this.fragPrevious&&S&&S.sn!=="initSegment"&&this.fragmentTracker.getState(S)!==de){var _;let w=((_=this.backtrackFragment)!=null?_:S).sn-u.startSN,I=u.fragments[w-1];I&&S.cc===I.cc&&(S=I,this.fragmentTracker.removeFragment(I))}else this.backtrackFragment&&l.len&&(this.backtrackFragment=null);if(S&&this.isLoopLoading(S,y)){if(!S.gap){let w=this.audioOnly&&!this.altAudio?ot:St,I=(w===St?this.videoBuffer:this.mediaBuffer)||this.media;I&&this.afterBufferFlushed(I,w,ie)}S=this.getNextFragmentLoopLoading(S,u,l,ie,m)}S&&(!S.initSegment||S.initSegment.data||this.bitrateTest||(S=S.initSegment),this.loadFragment(S,a,y))}loadFragment(t,e,i){let r=this.fragmentTracker.getState(t);this.fragCurrent=t,r===ze||r===pr?t.sn==="initSegment"?this._loadInitSegment(t,e):this.bitrateTest?(this.log(`Fragment ${t.sn} of level ${t.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(t,e)):(this.startFragRequested=!0,super.loadFragment(t,e,i)):this.clearTrackerIfNeeded(t)}getBufferedFrag(t){return this.fragmentTracker.getBufferedFrag(t,ie)}followingBufferedFrag(t){return t?this.getBufferedFrag(t.end+0.5):null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}nextLevelSwitch(){let{levels:t,media:e}=this;if(e!=null&&e.readyState){let i,r=this.getAppendedFrag(e.currentTime);r&&r.start>1&&this.flushMainBuffer(0,r.start-1);let s=this.getLevelDetails();if(s!=null&&s.live){let l=this.getMainFwdBufferInfo();if(!l||l.len<2*s.targetduration)return}if(!e.paused&&t){let l=t[this.hls.nextLoadLevel],c=this.fragLastKbps;i=c&&this.fragCurrent?this.fragCurrent.duration*l.maxBitrate/(1000*c)+1:0}else i=0;let a=this.getBufferedFrag(e.currentTime+i);if(a){let l=this.followingBufferedFrag(a);if(l){this.abortCurrentFrag();let c=l.maxStartPTS?l.maxStartPTS:l.start,u=l.duration,h=Math.max(a.end,c+Math.min(Math.max(u-this.config.maxFragLookUpTolerance,u*(this.couldBacktrack?0.5:0.125)),u*(this.couldBacktrack?0.75:0.25)));this.flushMainBuffer(h,Number.POSITIVE_INFINITY)}}}}abortCurrentFrag(){let t=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,t&&(t.abortRequests(),this.fragmentTracker.removeFragment(t)),this.state){case la:case Nr:case Pr:case Ui:case cn:this.state=Zt}this.nextLoadPosition=this.getLoadPosition()}flushMainBuffer(t,e){super.flushMainBuffer(t,e,this.altAudio?"video":null)}onMediaAttached(t,e){super.onMediaAttached(t,e);let i=e.media;this.onvplaying=this.onMediaPlaying.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),i.addEventListener("playing",this.onvplaying),i.addEventListener("seeked",this.onvseeked),this.gapController=new ju(this.config,i,this.fragmentTracker,this.hls)}onMediaDetaching(){let{media:t}=this;t&&this.onvplaying&&this.onvseeked&&(t.removeEventListener("playing",this.onvplaying),t.removeEventListener("seeked",this.onvseeked),this.onvplaying=this.onvseeked=null,this.videoBuffer=null),this.fragPlaying=null,this.gapController&&(this.gapController.destroy(),this.gapController=null),super.onMediaDetaching()}onMediaPlaying(){this.tick()}onMediaSeeked(){let t=this.media,e=t?t.currentTime:null;L(e)&&this.log("Media seeked to "+e.toFixed(3));let i=this.getMainFwdBufferInfo();i!==null&&i.len!==0?this.tick():this.warn(`Main forward buffer length on "seeked" event ${i?i.len:"empty"})`)}onManifestLoading(){this.log("Trigger BUFFER_RESET"),this.hls.trigger(b.BUFFER_RESET,void 0),this.fragmentTracker.removeAllFragments(),this.couldBacktrack=!1,this.startPosition=this.lastCurrentTime=this.fragLastKbps=0,this.levels=this.fragPlaying=this.backtrackFragment=this.levelLastLoaded=null,this.altAudio=this.audioOnly=this.startFragRequested=!1}onManifestParsed(t,e){let i=!1,r=!1;e.levels.forEach((s)=>{let a=s.audioCodec;a&&(i=i||a.indexOf("mp4a.40.2")!==-1,r=r||a.indexOf("mp4a.40.5")!==-1)}),this.audioCodecSwitch=i&&r&&!function(){var s;let a=Wu();return typeof(a==null||(s=a.prototype)==null?void 0:s.changeType)=="function"}(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=e.levels,this.startFragRequested=!1}onLevelLoading(t,e){let{levels:i}=this;if(!i||this.state!==Zt)return;let r=i[e.level];(!r.details||r.details.live&&this.levelLastLoaded!==r||this.waitForCdnTuneIn(r.details))&&(this.state=fe)}onLevelLoaded(t,e){var i;let{levels:r}=this,s=e.level,a=e.details,l=a.totalduration;if(!r)return void this.warn("Levels were reset while loading level "+s);this.log(`Level ${s} loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""}, cc [${a.startCC}, ${a.endCC}] duration:${l}`);let c=r[s],u=this.fragCurrent;!u||this.state!==Nr&&this.state!==Pr||u.level!==e.level&&u.loader&&this.abortCurrentFrag();let h=0;if(a.live||(i=c.details)!=null&&i.live){var m;if(this.checkLiveUpdate(a),a.deltaUpdateFailed)return;h=this.alignPlaylists(a,c.details,(m=this.levelLastLoaded)==null?void 0:m.details)}if(c.details=a,this.levelLastLoaded=c,this.hls.trigger(b.LEVEL_UPDATED,{details:a,level:s}),this.state===fe){if(this.waitForCdnTuneIn(a))return;this.state=Zt}this.startFragRequested?a.live&&this.synchronizeToLiveEdge(a):this.setStartPosition(a,h),this.tick()}_handleFragmentLoadProgress(t){var e;let{frag:i,part:r,payload:s}=t,{levels:a}=this;if(!a)return void this.warn(`Levels were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);let l=a[i.level],c=l.details;if(!c)return this.warn(`Dropping fragment ${i.sn} of level ${i.level} after level details were reset`),void this.fragmentTracker.removeFragment(i);let u=l.videoCodec,h=c.PTSKnown||!c.live,m=(e=i.initSegment)==null?void 0:e.data,y=this._getAudioCodec(l),S=this.transmuxer=this.transmuxer||new Hl(this.hls,ie,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),_=r?r.index:-1,w=_!==-1,I=new Mr(i.level,i.sn,i.stats.chunkCount,s.byteLength,_,w),C=this.initPTS[i.cc];S.push(s,m,y,u,i,r,c.totalduration,h,I,C)}onAudioTrackSwitching(t,e){let i=this.altAudio;if(!e.url){if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;let s=this.fragCurrent;s&&(this.log("Switching to main audio track, cancel main fragment load"),s.abortRequests(),this.fragmentTracker.removeFragment(s)),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();let r=this.hls;i&&(r.trigger(b.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null}),this.fragmentTracker.removeAllFragments()),r.trigger(b.AUDIO_TRACK_SWITCHED,e)}}onAudioTrackSwitched(t,e){let i=e.id,r=!!this.hls.audioTracks[i].url;if(r){let s=this.videoBuffer;s&&this.mediaBuffer!==s&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=s)}this.altAudio=r,this.tick()}onBufferCreated(t,e){let i=e.tracks,r,s,a=!1;for(let l in i){let c=i[l];if(c.id==="main"){if(s=l,r=c,l==="video"){let u=i[l];u&&(this.videoBuffer=u.buffer)}}else a=!0}a&&r?(this.log(`Alternate track found, use ${s}.buffered to schedule main fragment loading`),this.mediaBuffer=r.buffer):this.mediaBuffer=this.media}onFragBuffered(t,e){let{frag:i,part:r}=e;if(i&&i.type!==ie)return;if(this.fragContextChanged(i))return this.warn(`Fragment ${i.sn}${r?" p: "+r.index:""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}`),void(this.state===cn&&(this.state=Zt));let s=r?r.stats:i.stats;this.fragLastKbps=Math.round(8*s.total/(s.buffering.end-s.loading.first)),i.sn!=="initSegment"&&(this.fragPrevious=i),this.fragBufferedComplete(i,r)}onError(t,e){var i;if(e.fatal)this.state=Fr;else switch(e.details){case N.FRAG_GAP:case N.FRAG_PARSING_ERROR:case N.FRAG_DECRYPT_ERROR:case N.FRAG_LOAD_ERROR:case N.FRAG_LOAD_TIMEOUT:case N.KEY_LOAD_ERROR:case N.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(ie,e);break;case N.LEVEL_LOAD_ERROR:case N.LEVEL_LOAD_TIMEOUT:case N.LEVEL_PARSING_ERROR:e.levelRetry||this.state!==fe||((i=e.context)==null?void 0:i.type)!==xi||(this.state=Zt);break;case N.BUFFER_APPEND_ERROR:case N.BUFFER_FULL_ERROR:if(!e.parent||e.parent!=="main")return;if(e.details===N.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(e)&&this.flushMainBuffer(0,Number.POSITIVE_INFINITY);break;case N.INTERNAL_EXCEPTION:this.recoverWorkerError(e)}}checkBuffer(){let{media:t,gapController:e}=this;if(t&&e&&t.readyState){if(this.loadedmetadata||!Jt.getBuffered(t).length){let i=this.state!==Zt?this.fragCurrent:null;e.poll(this.lastCurrentTime,i)}this.lastCurrentTime=t.currentTime}}onFragLoadEmergencyAborted(){this.state=Zt,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tickImmediate()}onBufferFlushed(t,{type:e}){if(e!==ot||this.audioOnly&&!this.altAudio){let i=(e===St?this.videoBuffer:this.mediaBuffer)||this.media;this.afterBufferFlushed(i,e,ie),this.tick()}}onLevelsUpdated(t,e){this.level>-1&&this.fragCurrent&&(this.level=this.fragCurrent.level),this.levels=e.levels}swapAudioCodec(){this.audioCodecSwap=!this.audioCodecSwap}seekToStartPos(){let{media:t}=this;if(!t)return;let e=t.currentTime,i=this.startPosition;if(i>=0&&e<i){if(t.seeking)return void this.log(`could not seek to ${i}, already seeking at ${e}`);let r=Jt.getBuffered(t),s=(r.length?r.start(0):0)-i;s>0&&(s<this.config.maxBufferHole||s<this.config.maxFragLookUpTolerance)&&(this.log(`adjusting start position by ${s} to match buffer start`),i+=s,this.startPosition=i),this.log(`seek to target start position ${i} from current time ${e}`),t.currentTime=i}}_getAudioCodec(t){let e=this.config.defaultAudioCodec||t.audioCodec;return this.audioCodecSwap&&e&&(this.log("Swapping audio codec"),e=e.indexOf("mp4a.40.5")!==-1?"mp4a.40.2":"mp4a.40.5"),e}_loadBitrateTestFrag(t,e){t.bitrateTest=!0,this._doFragLoad(t,e).then((i)=>{let{hls:r}=this;if(!i||this.fragContextChanged(t))return;e.fragmentError=0,this.state=Zt,this.startFragRequested=!1,this.bitrateTest=!1;let s=t.stats;s.parsing.start=s.parsing.end=s.buffering.start=s.buffering.end=self.performance.now(),r.trigger(b.FRAG_LOADED,i),t.bitrateTest=!1})}_handleTransmuxComplete(t){var e;let i="main",{hls:r}=this,{remuxResult:s,chunkMeta:a}=t,l=this.getCurrentContext(a);if(!l)return void this.resetWhenMissingContext(a);let{frag:c,part:u,level:h}=l,{video:m,text:y,id3:S,initSegment:_}=s,{details:w}=h,I=this.altAudio?void 0:s.audio;if(this.fragContextChanged(c))this.fragmentTracker.removeFragment(c);else{if(this.state=Ui,_){if(_!=null&&_.tracks){let F=c.initSegment||c;this._bufferInitSegment(h,_.tracks,F,a),r.trigger(b.FRAG_PARSING_INIT_SEGMENT,{frag:F,id:"main",tracks:_.tracks})}let{initPTS:C,timescale:P}=_;L(C)&&(this.initPTS[c.cc]={baseTime:C,timescale:P},r.trigger(b.INIT_PTS_FOUND,{frag:c,id:"main",initPTS:C,timescale:P}))}if(m&&w&&c.sn!=="initSegment"){let C=w.fragments[c.sn-1-w.startSN],P=c.sn===w.startSN,F=!C||c.cc>C.cc;if(s.independent!==!1){let{startPTS:W,endPTS:z,startDTS:lt,endDTS:it}=m;if(u)u.elementaryStreams[m.type]={startPTS:W,endPTS:z,startDTS:lt,endDTS:it};else if(m.firstKeyFrame&&m.independent&&a.id===1&&!F&&(this.couldBacktrack=!0),m.dropped&&m.independent){let ft=this.getMainFwdBufferInfo(),mt=(ft?ft.end:this.getLoadPosition())+this.config.maxBufferHole,Q=m.firstKeyFramePTS?m.firstKeyFramePTS:W;if(!P&&mt<Q-this.config.maxBufferHole&&!F)return void this.backtrack(c);F&&(c.gap=!0),c.setElementaryStreamInfo(m.type,c.start,z,c.start,it,!0)}else P&&W>2&&(c.gap=!0);c.setElementaryStreamInfo(m.type,W,z,lt,it),this.backtrackFragment&&(this.backtrackFragment=c),this.bufferFragmentData(m,c,u,a,P||F)}else{if(!P&&!F)return void this.backtrack(c);c.gap=!0}}if(I){let{startPTS:C,endPTS:P,startDTS:F,endDTS:W}=I;u&&(u.elementaryStreams[ot]={startPTS:C,endPTS:P,startDTS:F,endDTS:W}),c.setElementaryStreamInfo(ot,C,P,F,W),this.bufferFragmentData(I,c,u,a)}if(w&&S!=null&&(e=S.samples)!=null&&e.length){let C={id:"main",frag:c,details:w,samples:S.samples};r.trigger(b.FRAG_PARSING_METADATA,C)}if(w&&y){let C={id:"main",frag:c,details:w,samples:y.samples};r.trigger(b.FRAG_PARSING_USERDATA,C)}}}_bufferInitSegment(t,e,i,r){if(this.state!==Ui)return;this.audioOnly=!!e.audio&&!e.video,this.altAudio&&!this.audioOnly&&delete e.audio;let{audio:s,video:a,audiovideo:l}=e;if(s){let c=t.audioCodec,u=navigator.userAgent.toLowerCase();this.audioCodecSwitch&&(c&&(c=c.indexOf("mp4a.40.5")!==-1?"mp4a.40.2":"mp4a.40.5"),s.metadata.channelCount!==1&&u.indexOf("firefox")===-1&&(c="mp4a.40.5")),c&&c.indexOf("mp4a.40.5")!==-1&&u.indexOf("android")!==-1&&s.container!=="audio/mpeg"&&(c="mp4a.40.2",this.log("Android: force audio codec to "+c)),t.audioCodec&&t.audioCodec!==c&&this.log(`Swapping manifest audio codec "${t.audioCodec}" for "${c}"`),s.levelCodec=c,s.id="main",this.log(`Init audio buffer, container:${s.container}, codecs[selected/level/parsed]=[${c||""}/${t.audioCodec||""}/${s.codec}]`)}a&&(a.levelCodec=t.videoCodec,a.id="main",this.log(`Init video buffer, container:${a.container}, codecs[level/parsed]=[${t.videoCodec||""}/${a.codec}]`)),l&&this.log(`Init audiovideo buffer, container:${l.container}, codecs[level/parsed]=[${t.codecs}/${l.codec}]`),this.hls.trigger(b.BUFFER_CODECS,e),Object.keys(e).forEach((c)=>{let u=e[c].initSegment;u!=null&&u.byteLength&&this.hls.trigger(b.BUFFER_APPENDING,{type:c,data:u,frag:i,part:null,chunkMeta:r,parent:i.type})}),this.tickImmediate()}getMainFwdBufferInfo(){return this.getFwdBufferInfo(this.mediaBuffer?this.mediaBuffer:this.media,ie)}backtrack(t){this.couldBacktrack=!0,this.backtrackFragment=t,this.resetTransmuxer(),this.flushBufferGap(t),this.fragmentTracker.removeFragment(t),this.fragPrevious=null,this.nextLoadPosition=t.start,this.state=Zt}checkFragmentChanged(){let t=this.media,e=null;if(t&&t.readyState>1&&t.seeking===!1){let i=t.currentTime;if(Jt.isBuffered(t,i)?e=this.getAppendedFrag(i):Jt.isBuffered(t,i+0.1)&&(e=this.getAppendedFrag(i+0.1)),e){this.backtrackFragment=null;let r=this.fragPlaying,s=e.level;r&&e.sn===r.sn&&r.level===s||(this.fragPlaying=e,this.hls.trigger(b.FRAG_CHANGED,{frag:e}),r&&r.level===s||this.hls.trigger(b.LEVEL_SWITCHED,{level:s}))}}}get nextLevel(){let t=this.nextBufferedFrag;return t?t.level:-1}get currentFrag(){let t=this.media;return t?this.fragPlaying||this.getAppendedFrag(t.currentTime):null}get currentProgramDateTime(){let t=this.media;if(t){let e=t.currentTime,i=this.currentFrag;if(i&&L(e)&&L(i.programDateTime)){let r=i.programDateTime+1000*(e-i.start);return new Date(r)}}return null}get currentLevel(){let t=this.currentFrag;return t?t.level:-1}get nextBufferedFrag(){let t=this.currentFrag;return t?this.followingBufferedFrag(t):null}get forceStartLoad(){return this._forceStartLoad}}class Le{static get version(){return"1.5.8"}static isMSESupported(){return Yu()}static isSupported(){return function(){if(!Yu())return!1;let t=Pi();return typeof(t==null?void 0:t.isTypeSupported)=="function"&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some((e)=>t.isTypeSupported(Rr(e,"video")))||["mp4a.40.2","fLaC"].some((e)=>t.isTypeSupported(Rr(e,"audio"))))}()}static getMediaSource(){return Pi()}static get Events(){return b}static get ErrorTypes(){return H}static get ErrorDetails(){return N}static get DefaultConfig(){return Le.defaultConfig?Le.defaultConfig:Gu}static set DefaultConfig(t){Le.defaultConfig=t}constructor(t={}){this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this.started=!1,this._emitter=new Gl,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.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null,this.triggeringException=void 0,function(Q,X){if(typeof console=="object"&&Q===!0||typeof Q=="object"){q(Q,"debug","log","info","warn","error");try{Et.log(`Debug logs enabled for "${X}" in hls.js version 1.5.8`)}catch(kt){Et=st}}else Et=st}(t.debug||!1,"Hls instance");let e=this.config=function(Q,X){if((X.liveSyncDurationCount||X.liveMaxLatencyDurationCount)&&(X.liveSyncDuration||X.liveMaxLatencyDuration))throw Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(X.liveMaxLatencyDurationCount!==void 0&&(X.liveSyncDurationCount===void 0||X.liveMaxLatencyDurationCount<=X.liveSyncDurationCount))throw Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(X.liveMaxLatencyDuration!==void 0&&(X.liveSyncDuration===void 0||X.liveMaxLatencyDuration<=X.liveSyncDuration))throw Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');let kt=cc(Q),ht=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return["manifest","level","frag"].forEach((wt)=>{let It=(wt==="level"?"playlist":wt)+"LoadPolicy",Mt=X[It]===void 0,at=[];ht.forEach((vt)=>{let Dt=`${wt}Loading${vt}`,Ot=X[Dt];if(Ot!==void 0&&Mt){at.push(Dt);let Gt=kt[It].default;switch(X[It]={default:Gt},vt){case"TimeOut":Gt.maxLoadTimeMs=Ot,Gt.maxTimeToFirstByteMs=Ot;break;case"MaxRetry":Gt.errorRetry.maxNumRetry=Ot,Gt.timeoutRetry.maxNumRetry=Ot;break;case"RetryDelay":Gt.errorRetry.retryDelayMs=Ot,Gt.timeoutRetry.retryDelayMs=Ot;break;case"MaxRetryTimeout":Gt.errorRetry.maxRetryDelayMs=Ot,Gt.timeoutRetry.maxRetryDelayMs=Ot}}}),at.length&&D.warn(`hls.js config: "${at.join('", "')}" setting(s) are deprecated, use "${It}": ${JSON.stringify(X[It])}`)}),E(E({},kt),X)}(Le.DefaultConfig,t);this.userConfig=t,e.progressive&&Hf(e);let{abrController:i,bufferController:r,capLevelController:s,errorController:a,fpsController:l}=e,c=new a(this),u=this.abrController=new i(this),h=this.bufferController=new r(this),m=this.capLevelController=new s(this),y=new l(this),S=new io(this),_=new no(this),w=e.contentSteeringController,I=w?new w(this):null,C=this.levelController=new Hu(this,I),P=new ra(this),F=new Ku(this.config),W=this.streamController=new zu(this,P,F);m.setStreamController(W),y.setStreamController(W);let z=[S,C,W];I&&z.splice(1,0,I),this.networkControllers=z;let lt=[u,h,m,y,_,P];this.audioTrackController=this.createController(e.audioTrackController,z);let it=e.audioStreamController;it&&z.push(new it(this,P,F)),this.subtitleTrackController=this.createController(e.subtitleTrackController,z);let ft=e.subtitleStreamController;ft&&z.push(new ft(this,P,F)),this.createController(e.timelineController,lt),F.emeController=this.emeController=this.createController(e.emeController,lt),this.cmcdController=this.createController(e.cmcdController,lt),this.latencyController=this.createController(Ys,lt),this.coreComponents=lt,z.push(c);let mt=c.onErrorOut;typeof mt=="function"&&this.on(b.ERROR,mt,c)}createController(t,e){if(t){let i=new t(this);return e&&e.push(i),i}return null}on(t,e,i=this){this._emitter.on(t,e,i)}once(t,e,i=this){this._emitter.once(t,e,i)}removeAllListeners(t){this._emitter.removeAllListeners(t)}off(t,e,i=this,r){this._emitter.off(t,e,i,r)}listeners(t){return this._emitter.listeners(t)}emit(t,e,i){return this._emitter.emit(t,e,i)}trigger(t,e){if(this.config.debug)return this.emit(t,t,e);try{return this.emit(t,t,e)}catch(i){if(D.error("An internal error happened while handling event "+t+'. Error message: "'+i.message+'". Here is a stacktrace:',i),!this.triggeringException){this.triggeringException=!0;let r=t===b.ERROR;this.trigger(b.ERROR,{type:H.OTHER_ERROR,details:N.INTERNAL_EXCEPTION,fatal:r,event:t,error:i}),this.triggeringException=!1}}return!1}listenerCount(t){return this._emitter.listenerCount(t)}destroy(){D.log("destroy"),this.trigger(b.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this.url=null,this.networkControllers.forEach((e)=>e.destroy()),this.networkControllers.length=0,this.coreComponents.forEach((e)=>e.destroy()),this.coreComponents.length=0;let t=this.config;t.xhrSetup=t.fetchSetup=void 0,this.userConfig=null}attachMedia(t){D.log("attachMedia"),this._media=t,this.trigger(b.MEDIA_ATTACHING,{media:t})}detachMedia(){D.log("detachMedia"),this.trigger(b.MEDIA_DETACHING,void 0),this._media=null}loadSource(t){this.stopLoad();let e=this.media,i=this.url,r=this.url=d.buildAbsoluteURL(self.location.href,t,{alwaysNormalize:!0});this._autoLevelCapping=-1,this._maxHdcpLevel=null,D.log("loadSource:"+r),e&&i&&(i!==r||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(e)),this.trigger(b.MANIFEST_LOADING,{url:t})}startLoad(t=-1){D.log(`startLoad(${t})`),this.started=!0,this.networkControllers.forEach((e)=>{e.startLoad(t)})}stopLoad(){D.log("stopLoad"),this.started=!1,this.networkControllers.forEach((t)=>{t.stopLoad()})}resumeBuffering(){this.started&&this.networkControllers.forEach((t)=>{"fragmentLoader"in t&&t.startLoad(-1)})}pauseBuffering(){this.networkControllers.forEach((t)=>{"fragmentLoader"in t&&t.stopLoad()})}swapAudioCodec(){D.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){D.log("recoverMediaError");let t=this._media;this.detachMedia(),t&&this.attachMedia(t)}removeLevel(t){this.levelController.removeLevel(t)}get levels(){return this.levelController.levels||[]}get currentLevel(){return this.streamController.currentLevel}set currentLevel(t){D.log("set currentLevel:"+t),this.levelController.manualLevel=t,this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(t){D.log("set nextLevel:"+t),this.levelController.manualLevel=t,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(t){D.log("set loadLevel:"+t),this.levelController.manualLevel=t}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(t){this.levelController.nextLoadLevel=t}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(t){D.log("set firstLevel:"+t),this.levelController.firstLevel=t}get startLevel(){let t=this.levelController.startLevel;return t===-1&&this.abrController.forcedAutoLevel>-1?this.abrController.forcedAutoLevel:t}set startLevel(t){D.log("set startLevel:"+t),t!==-1&&(t=Math.max(t,this.minAutoLevel)),this.levelController.startLevel=t}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(t){let e=!!t;e!==this.config.capLevelToPlayerSize&&(e?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=e)}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){let{bwEstimator:t}=this.abrController;return t?t.getEstimate():NaN}set bandwidthEstimate(t){this.abrController.resetEstimator(t)}get ttfbEstimate(){let{bwEstimator:t}=this.abrController;return t?t.getEstimateTTFB():NaN}set autoLevelCapping(t){this._autoLevelCapping!==t&&(D.log("set autoLevelCapping:"+t),this._autoLevelCapping=t,this.levelController.checkMaxAutoUpdated())}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(t){(function(e){return js.indexOf(e)>-1})(t)&&this._maxHdcpLevel!==t&&(this._maxHdcpLevel=t,this.levelController.checkMaxAutoUpdated())}get autoLevelEnabled(){return this.levelController.manualLevel===-1}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){let{levels:t,config:{minAutoBitrate:e}}=this;if(!t)return 0;let i=t.length;for(let r=0;r<i;r++)if(t[r].maxBitrate>=e)return r;return 0}get maxAutoLevel(){let{levels:t,autoLevelCapping:e,maxHdcpLevel:i}=this,r;if(r=e===-1&&t!=null&&t.length?t.length-1:e,i)for(let s=r;s--;){let a=t[s].attrs["HDCP-LEVEL"];if(a&&a<=i)return s}return r}get firstAutoLevel(){return this.abrController.firstAutoLevel}get nextAutoLevel(){return this.abrController.nextAutoLevel}set nextAutoLevel(t){this.abrController.nextAutoLevel=t}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}setAudioOption(t){var e;return(e=this.audioTrackController)==null?void 0:e.setAudioOption(t)}setSubtitleOption(t){var e;return(e=this.subtitleTrackController)==null||e.setSubtitleOption(t),null}get allAudioTracks(){let t=this.audioTrackController;return t?t.allAudioTracks:[]}get audioTracks(){let t=this.audioTrackController;return t?t.audioTracks:[]}get audioTrack(){let t=this.audioTrackController;return t?t.audioTrack:-1}set audioTrack(t){let e=this.audioTrackController;e&&(e.audioTrack=t)}get allSubtitleTracks(){let t=this.subtitleTrackController;return t?t.allSubtitleTracks:[]}get subtitleTracks(){let t=this.subtitleTrackController;return t?t.subtitleTracks:[]}get subtitleTrack(){let t=this.subtitleTrackController;return t?t.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(t){let e=this.subtitleTrackController;e&&(e.subtitleTrack=t)}get subtitleDisplay(){let t=this.subtitleTrackController;return!!t&&t.subtitleDisplay}set subtitleDisplay(t){let e=this.subtitleTrackController;e&&(e.subtitleDisplay=t)}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(t){this.config.lowLatencyMode=t}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}}Le.defaultConfig=void 0;var Vf=Object.freeze({__proto__:null,ATTACHED:"hls:attached",BUFFER_CHECK_TICK:"hls:buffer_check"});function Kf(t){let e=function(){let i=typeof document<"u"&&typeof window<"u",r=i?navigator.userAgent:"",s=/iP(hone|od)/i.test(r)&&!/iPad/.test(r)&&!/IEMobile/i.test(r),a=/Android/.test(r)&&!/Firefox/.test(r),l=/^((?!chrome|android).)*safari/i.test(r),c=/chrome|crios/i.test(r)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(r),u=/firefox|fxios/i.test(r)&&!/seamonkey/i.test(r),h=/edg/i.test(r),m=/opr|opera/i.test(r),y=/SamsungBrowser/.test(r),S=y&&/SMART-TV/.test(r);return{controls:!s,video:function(_){return i&&document.createElement("video").canPlayType(_)},lang:i&&window.navigator.language,android:a,iphone:s,safari:l,edge:h,opera:m,chrome:c,firefox:u,ios:i&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,samsung:y,samsung_tv:y&&S,touch:"ontouchstart"in window,tizen:"tizen"in window,webOS:"webos"in window}}();switch(t){case"com.widevine.alpha":return e.chrome||e.firefox||e.edge||e.opera;case"org.w3.clearkey":return e.chrome||e.firefox;case"com.apple.fps.1_0":return e.safari;case"com.microsoft.playready":return e.edge}}let qu="application/vnd.apple.mpegURL",Wf=[qu,"application/x-mpegurl"],Yf=document.createElement("video").canPlayType(qu);function jf(t){let{pathname:e}=function(i){let r=document.createElement("a");return r.href=i,r}(t);return e.endsWith(".m3u8")}let Ri=window&&window.Hls||Le;function Xu(t,e){let i=function(){try{return localStorage.getItem("flowplayer/debug")}catch(s){return""}}(),r=(s,...a)=>{try{let l=(e==null?void 0:e.debug)||i;l&&t.match(l)&&console.log(`flowplayer/${t} -- ${s}`,...a)}catch(l){console.warn(l)}};return r.log=r,r}var ya;(function(t){t[t.FRAGMENT_ERRORS=0]="FRAGMENT_ERRORS",t[t.STALE_MANIFEST=1]="STALE_MANIFEST"})(ya||(ya={}));let zf=Xu("hls:failover");class Ju{constructor(){this.playlistCounts={},this.fragmentFailures={},this.ttlMilliseconds=3000}setHls(t){this.hls=t}reset(){return this.playlistCounts={},this.fragmentFailures={},this}failover(t){var e,i;this.reset();let r=this.hls;if(!r)return;let{levelController:s,streamController:a}=r,l=s.steering;if(!s||!a||!l)return;let c=s.currentLevel;if(!c)return;let u=l.levels.filter((h)=>h.pathwayId!==c.pathwayId);u.length&&((e=r.media)===null||e===void 0||e.dispatchEvent(new CustomEvent("hls/failover",{detail:{reason:t,from:(i=c.details)===null||i===void 0?void 0:i.url}})),s._levels=a.levels=u)}currentLevel(){var t;return(t=this.hls)===null||t===void 0?void 0:t.levels[this.hls.currentLevel]}nextTTL(){var t;let e=Date.now()+this.ttlMilliseconds,i=this.currentLevel();if(!i)return e;let r=(t=i.details)===null||t===void 0?void 0:t.averagetargetduration;return r?Date.now()+500*r:e}ensurePlaylistUpdating(t,e){this.playlistCounts[t]||(this.playlistCounts[t]={checksum:e,count:0,ttl:this.nextTTL()});let i=this.playlistCounts[t];Date.now()<i.ttl||(i.count=i.checksum===e?i.count+1:0,i.ttl=this.nextTTL(),i.checksum=e,i.count<3||(zf(`${t} / no change in ${i.count} tries`,this.playlistCounts),this.failover(ya.STALE_MANIFEST)))}trackFragmentError(t){let e=this.fragmentFailures[t]||0;this.fragmentFailures[t]=e+1,this.fragmentFailures[t]>2&&this.failover(ya.FRAGMENT_ERRORS)}createPlaylistLoader(t){let e=this;return class extends Le.DefaultConfig.loader{load(i,r,s){let a=s.onSuccess;s.onSuccess=({data:l,url:c},...u)=>{(i==null?void 0:i.type)==="manifest"&&(t.manifest=l),e.ensurePlaylistUpdating(c,l),a({data:l,url:c},...u)},super.load(i,r,s)}}}createFragmentLoader(){let t=this;return class extends Le.DefaultConfig.loader{load(e,i,r){let s=r.onError;r.onError=(a)=>{t.trackFragmentError(a.url),s(...arguments)},super.load(e,i,r)}}}}let qt={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},dc=Object.fromEntries(Object.entries(qt).map(([t,e])=>[e,t])),qf=[1e7]+"-1000-4000-8000-100000000000",Qu="on",Co="off";class Sa extends Error{static getErrorKey(t){return t in dc?dc[t]:dc["00-00"]}constructor(t,e,i={}){super(t),this.message=t,this.flowplayerErrorCode=e,this.config=i,this.id=typeof crypto>"u"?"":qf.replace(/[018]/g,(r)=>(r^crypto.getRandomValues(new Uint8Array(1))[0]&15>>r/4).toString(16)),this.isFatal=!!i.isFatal,this.errorKey=Sa.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}let as=Xu("hls");function Xf(t){switch(t){case N.KEY_SYSTEM_NO_KEYS:return qt.ContentProtectionKeySystemNoKeys;case N.KEY_SYSTEM_NO_ACCESS:return qt.ContentProtectionKeySystemNoAccess;case N.KEY_SYSTEM_NO_SESSION:return qt.ContentProtectionKeySystemNoSession;case N.KEY_SYSTEM_NO_CONFIGURED_LICENSE:return qt.ContentProtectionKeySystemNoConfiguredLicense;case N.KEY_SYSTEM_LICENSE_REQUEST_FAILED:return qt.ContentProtectionCDMLicenseRequestFailed;case N.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED:return qt.ContentProtectionServerCertificateRequestFailed;case N.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED:return qt.ContentProtectionKeySystemCertificateUpdateFailed;case N.KEY_SYSTEM_SESSION_UPDATE_FAILED:return qt.ContentProtectionKeySystemSessionUpdateFailed;case N.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:return qt.ContentProtectionKeySystemStatusOutputRestricted;case N.KEY_SYSTEM_STATUS_INTERNAL_ERROR:return qt.ContentProtectionKeySystemStatusInternalError;case N.MANIFEST_LOAD_ERROR:return qt.PlaybackManifestLoadError;case N.MANIFEST_LOAD_TIMEOUT:return qt.PlaybackManifestLoadTimeout;case N.MANIFEST_PARSING_ERROR:return qt.PlaybackManifestParsingError;case N.MANIFEST_INCOMPATIBLE_CODECS_ERROR:return qt.PlaybackManifestIncompatibleCodecs;case N.LEVEL_EMPTY_ERROR:return qt.PlaybackLevelEmptyError;case N.LEVEL_LOAD_ERROR:return qt.PlaybackLevelLoadError;case N.LEVEL_LOAD_TIMEOUT:return qt.PlaybackLevelLoadTimeout;case N.LEVEL_PARSING_ERROR:return qt.PlaybackManifestParsingError;case N.LEVEL_SWITCH_ERROR:return qt.PlaybackLevelSwitchError;case N.AUDIO_TRACK_LOAD_ERROR:return qt.PlaybackAudioTrackLoadError;case N.AUDIO_TRACK_LOAD_TIMEOUT:return qt.PlaybackAudioTrackLoadTimeout;case N.SUBTITLE_LOAD_ERROR:return qt.NetworkDownloadErrorIdContent;case N.SUBTITLE_TRACK_LOAD_TIMEOUT:return qt.NetworkRequestTimeout;case N.FRAG_LOAD_ERROR:return qt.PlaybackFragLoadError;case N.FRAG_LOAD_TIMEOUT:return qt.PlaybackFragLoadTimeout;case N.FRAG_DECRYPT_ERROR:return qt.PlaybackFragDecryptError;case N.FRAG_PARSING_ERROR:return qt.PlaybackFragParsingError;case N.FRAG_GAP:return qt.PlaybackFragGap;case N.REMUX_ALLOC_ERROR:return qt.PlaybackRemuxAllocError;case N.KEY_LOAD_ERROR:return qt.ContentProtectionKeyLoadError;case N.KEY_LOAD_TIMEOUT:return qt.ContentProtectionKeyLoadTimeout;case N.BUFFER_ADD_CODEC_ERROR:return qt.PlaybackBufferAddCodecError;case N.BUFFER_INCOMPATIBLE_CODECS_ERROR:return qt.PlaybackBufferIncompatibleCodecs;case N.BUFFER_APPEND_ERROR:return qt.PlaybackBufferAppendError;case N.BUFFER_APPENDING_ERROR:return qt.PlaybackAppendError;case N.BUFFER_STALLED_ERROR:return qt.PlaybackBufferStalledError;case N.BUFFER_FULL_ERROR:return qt.PlaybackBufferFullError;case N.BUFFER_SEEK_OVER_HOLE:return qt.PlaybackBufferSeekOverHole;case N.BUFFER_NUDGE_ON_STALL:return qt.PlaybackBufferNudgeOnStall;case N.INTERNAL_EXCEPTION:return qt.PlaybackInternalException;case N.INTERNAL_ABORTED:return qt.PlaybackInternalAborted;case N.UNKNOWN:default:return qt.Unknown}}function Jf(t,e,i){let r={},s={error_type:e.type,resource:e.url||t.original_src,isFatal:e.fatal};return e.fatal?(e.type===i.ErrorTypes.MEDIA_ERROR&&(s.showErrorUI=!1,r.retry=Qu,r.retryTimeout=0),[i.ErrorTypes.KEY_SYSTEM_ERROR,i.ErrorTypes.MUX_ERROR,i.ErrorTypes.OTHER_ERROR].includes(e.type)&&(r.retry=Co),Object.assign(s,{retryOpts:r})):(r.retry=Co,Object.assign(s,{retryOpts:r}))}function Qf(t,e){e.on(Ri.Events.ERROR,function(i,r){var s;t.reaper!=0&&(function(a,l,c){a.emit("flowplayer:error",{error:new Sa(l.error.message,Xf(l.details),Jf(a,l,c))})}(t,r,Ri),r.fatal&&([Ri.ErrorTypes.NETWORK_ERROR,Ri.ErrorTypes.MEDIA_ERROR].includes(r.type)||(s=t.hls)===null||s===void 0||s.destroy()))})}function Zf(t,e){let i=t.seekable;if(typeof t.opts!="object"||i.length==0)return{head:0,tail:0};let r=function(a){var l;let c=a.seekable;return c.length?a.hasState("is-chromecast-playing")||!((l=a.hls)===null||l===void 0?void 0:l.liveSyncPosition)?c.end(c.length-1):a.hls.liveSyncPosition:0}(t),s=e||t.live_state.dvr_window;return{head:r,tail:typeof s!="number"||r-s<0?i.start(0):r-s}}function ba(t,e){var i;!t.hasState("is-loaded")&&t.setState("is-loading",!0),(i=t.hls)===null||i===void 0||i.startLoad(e)}function tm(t){t.on("remotesession:started",()=>{t.hls&&(t.hls.stopLoad(),delete t.opts.start_time)}),t.on("remotesession:ended",(e)=>{var i;if(!t.hls)return;if(!t.opts.live)return ba(t,e.detail.currentTime);e.preventDefault();let r=function(a){let l=a.currentTime,c=Zf(a);return{progress:Math.min(100,Math.max(0,(l-c.tail)/(c.head-c.tail)*100)),is_live:l-c.head>=-10}}(t).progress,s=t.hls;(i=t.hls)===null||i===void 0||i.once(Ri.Events.LEVEL_LOADED,()=>{if(t.hls!==s)return;let a=t.live_state.dvr_window||0,l=(s==null?void 0:s.liveSyncPosition)||t.seekable.end(0);if(t.hasState("no-timeline")||isNaN(r))return t.currentTime=l;t.currentTime=l-a*((100-r)/100)}),ba(t)})}var Ta;function em(t,e){if(typeof t=="object"&&typeof e=="object"&&typeof t.bitrate=="number"&&typeof e.bitrate=="number")return t.bitrate<e.bitrate}function Zu(t){let e=t.map((i,r)=>Object.assign(i,{level:r})).sort((i,r)=>r.width-i.width);return t.length>1&&t.every((i)=>i.bitrate!==void 0)&&e.push({name:"AUTO",level:-1,width:0,height:0}),e}function im(t,e,i,r,s){let a;t.once(Le.Events.LEVEL_LOADING,function(){e.emit("content:loadstart")}),t.on(Ri.Events.MANIFEST_PARSED,function(l,c){let u=Zu(c.levels);e.emit("qualities",u),e.emit("parse:video:tracks",{url:s.src,manifest:r.manifest}),function(h,m,y){if(!h.hls)return;as("Initializer::maybe_start_load_with_quality (start_quality, preload): (%d, %s)",m.start_quality,m.preload),m.start_quality!==void 0&&y.length&&(Ta.HIGH&m.start_quality&&(h.hls.startLevel=y[0].level),Ta.LOW&m.start_quality&&(h.hls.startLevel=y[y.length-1].level),Ta.MEDIUM&m.start_quality&&(h.hls.startLevel=y[Math.ceil(y.length/2)-1].level)),function(S,_){var w,I,C,P,F,W;if(!_.hls)return;if((w=S.hls)===null||w===void 0?void 0:w.adaptive_buffer_control){let it=S.hls.adaptive_buffer_control!==!0&&S.hls.adaptive_buffer_control.initial_buffer_length?S.hls.adaptive_buffer_control.initial_buffer_length:10,ft=((P=S.hls)===null||P===void 0?void 0:P.adaptive_buffer_control)!==!0&&S.hls.adaptive_buffer_control.restore_buffer_player_time_threshold?(F=S.hls)===null||F===void 0?void 0:F.adaptive_buffer_control.restore_buffer_player_time_threshold:10;(function(mt,Q){var X;let kt=(X=mt.hls)===null||X===void 0?void 0:X.config.maxBufferLength,ht=!1,wt=setInterval(()=>{mt.emit("hls:buffer_check")},500),It=()=>{ht||mt.currentTime>Q&&(ht=!0,mt.hls&&kt&&(mt.hls.config.maxBufferLength=kt))};mt.on("src",()=>{clearInterval(wt),mt.off("hls:buffer_check",It)}),mt.on("hls:buffer_check",It)})(_,ft),td(S,_,{maxBufferLength:it,maxBufferSize:(W=S.hls)===null||W===void 0?void 0:W.maxBufferSize})}else td(S,_,{maxBufferLength:(I=S.hls)===null||I===void 0?void 0:I.maxBufferLength,maxBufferSize:(C=S.hls)===null||C===void 0?void 0:C.maxBufferSize})}(m,h),(m.preload!=="none"||m.autoplay&&h.hasState("is-in-viewport"))&&ba(h,m.start_time||-1)}(e,i,u.slice(0,-1))}),t.on(Ri.Events.LEVEL_SWITCHING,(l,c)=>{if(t.nextLoadLevel===a)return;a=t.nextLoadLevel;let u=t.levels[t.currentLevel],h=t.levels[c.level];e.emit("qualitychange",{before:u,after:h,plugin:"hls",automatic:t.autoLevelEnabled,downscale:em(h,u)})})}function td(t,e,i){if(!e.hls)return;let r=(i==null?void 0:i.maxBufferSize)||1024,s=(i==null?void 0:i.maxBufferLength)||30;as("Setting maxBufferSize to %d",r),e.hls.config.maxBufferSize=r,t.preload==="metadata"&&as("preload === metadata, setting maxBufferLength to 1sec"),e.hls.config.maxBufferLength=t.preload==="metadata"?1:s,e.once("playing",()=>{as("Playback started, set maxBufferLenght to %d",s),e.hls&&(e.hls.config.maxBufferLength=s)})}(function(t){t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=4]="HIGH"})(Ta||(Ta={}));function rm(t,e,i,r,s){(function(a,l){a.on(Le.Events.AUDIO_TRACKS_UPDATED,function(c,u){l.emit("audio:tracks",u.audioTracks)}),a.on(Le.Events.AUDIO_TRACK_SWITCHING,function(c,u){l.emit("audio:update",u)}),a.on(Le.Events.MANIFEST_PARSED,function(c,u){u.audioTracks&&l.emit("audio:tracks",u.audioTracks)})})(t,r),function(a,l){a.on(Le.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(c,u)=>{a.subtitleTracks.length||l.emit("tracks:text:all",u)}),a.on(Le.Events.SUBTITLE_TRACKS_UPDATED,(c,u)=>{l.emit("tracks:text:all",{tracks:u.subtitleTracks.map((h)=>Object.assign({},{subtitleTrack:h}))})}),a.on(Le.Events.CUES_PARSED,(c,u)=>{l.emit("cues:parsed",u)})}(t,r),Qf(r,t),im(t,r,e,i,s),function(a,l){a.on(Le.Events.FRAG_PARSING_METADATA,function(c,u){l.emit("ssai:hls:metadata",u)})}(t,r),function(a,l){a.on(Le.Events.BUFFER_CREATED,(c,u)=>{let h=u.tracks.video||u.tracks.audiovideo;if(!h)return l.emit("audioonlysource");let m=h==null?void 0:h.metadata.height,y=h==null?void 0:h.metadata.width;!l.opt("ratio")&&m&&y&&l.setOpts({ratio:y+":"+m})})}(t,r),function(a,l,c){let u="live"in c==0;l.on(Ri.Events.LEVEL_LOADED,function(h,m){var y,S,_,w,I;u&&a.setOpts({live:(y=m==null?void 0:m.details)===null||y===void 0?void 0:y.live});let C=(_=(S=l.levels[m.level])===null||S===void 0?void 0:S.details)===null||_===void 0?void 0:_.fragments;if(!C)return;let P=((w=C[1])===null||w===void 0?void 0:w.start)||0,F=l.liveSyncPosition||((I=C[C.length-1])===null||I===void 0?void 0:I.end)||0;a.emit("dvr/window",F-P)})}(r,t,e)}function nm(t,e,i){(function(r){r.on("audio:set",function(s){var a,l;let c=(a=s.data)===null||a===void 0?void 0:a.id;typeof c=="number"&&c!=((l=r==null?void 0:r.hls)===null||l===void 0?void 0:l.audioTrack)&&setTimeout(function(){(r==null?void 0:r.hls)&&(r.hls.audioTrack=c)},0)})})(t),function(r,s){r.on("src",function(){r.hls&&(r.hls.destroy(),delete r.hls,s.manifest=void 0)}),r.on("reap",function(){var a;(a=r.hls)===null||a===void 0||a.destroy()})}(t,e),function(r){let s={media_recovers:0,audio_swaps:0},a=0;r.on("error",(l)=>{var c,u,h;r.hls&&((c=r==null?void 0:r.error)===null||c===void 0?void 0:c.code)===MediaError.MEDIA_ERR_DECODE&&(l.preventDefault(),++a,r.emit("flowplayer:error",{error:new Sa((h=(u=r==null?void 0:r.error)===null||u===void 0?void 0:u.message)!==null&&h!==void 0?h:"An error occurred while decoding the media.",qt.PlaybackVideoDecodeError,{isFatal:!0,showErrorUI:a>=5,retryOpts:{retry:a<5?Qu:Co,retryTimeout:0}})}))}),r.on("canplay",()=>a=0),r.on("retry",(l)=>{var c,u,h,m;if(!r.hls)return;l.preventDefault();let y=l.detail.error,S=y.config;return y.flowplayerErrorCode===qt.PlaybackVideoDecodeError?(r.hls.config.autoStartLoad=!0,r.hls.recoverMediaError(),r.setState("is-waiting",!1)):S.error_type?S.error_type===Ri.ErrorTypes.NETWORK_ERROR?(((c=r.normalizedSrc)===null||c===void 0?void 0:c.src)&&r.hls.loadSource(r.original_src),S.autoplay?r.togglePlay(!0):(r.setState("is-waiting",!1),r.emit("retry/done"))):S.error_type===Ri.ErrorTypes.MEDIA_ERROR?(as("recovering from "+S.error_type),s.media_recovers+5000>Date.now()&&s.audio_swaps==0?((u=r.hls)===null||u===void 0||u.swapAudioCodec(),as(`calling swapAudioCodec() : {count=${s.audio_swaps}}`),s.audio_swaps++,s.media_recovers=Date.now(),(h=r.hls)===null||h===void 0||h.recoverMediaError(),r.setState("is-waiting",!1)):(s.media_recovers=Date.now(),s.audio_swaps=0,(m=r.hls)===null||m===void 0||m.recoverMediaError(),r.setState("is-waiting",!1))):void 0:void 0})}(t),tm(t),function(r,s){r.on(["beforeplay","viewenter"],(l)=>{if(r.hls&&!r.hasState("is-casting")&&!r.hasState("is-loaded")&&s.preload==="none"&&(l.type!=="viewenter"||s.autoplay))return r.hls.levels.length?ba(r,s.start_time||-1):void r.hls.once(Ri.Events.MANIFEST_PARSED,()=>{setTimeout(()=>{ba(r,s.start_time||-1)},0)})}),r.on("quality:set",function(l){var c;if(!r.hls)return;let u=(c=l.data)===null||c===void 0?void 0:c.level;typeof u=="number"&&(r.hls.levels[u]||u===-1?r.hls.nextLevel=u:console.error(Error("skipping invalid quality: "+l.data)))}),r.on("tracks:video:select",function(l){var c,u;let h=l.detail.track,m=(c=r.tracks)===null||c===void 0?void 0:c.find((_)=>_.selected&&_!==h),y=r.hls;if(!m||!h||!y)return;m.selected=!1;let S=(u=h.data)===null||u===void 0?void 0:u.slice(0).map((_)=>(_.details=void 0,_));y.stopLoad(),y.levelController._levels=y.streamController.levels=S,y.currentLevel=-1,r.emit("qualities",Zu(S)),r.hasState("is-starting")&&!r.hasState("is-loading")||y.startLoad()});let a=r.opt("start_time");a&&r.once("loadedmetadata",function(){r.currentTime=a})}(t,i)}function sm(t,e){if(t.drm&&location.protocol!=="https:"&&location.hostname!=="localhost"&&location.hostname!=="127.0.0.1"){let i=new Sa("drm is unavailable in http contexts",qt.ContentProtectionKeySystemUnavailable,{resource:t.src,isFatal:!0,retryOpts:{retry:Co}});return e.emit("flowplayer:error",{error:i}),!1}return!0}function am(t,e,i,r){if(!t.reaper||!(i==null?void 0:i.src))return;if(t.hls&&t.hls.destroy(),!sm(i,t))return;rm(function(s,a,l,c){var u,h,m,y,S,_,w,I;let C=new Ju,P=function(W){return Object.assign(Object.assign({autoStartLoad:!1,levelLoadingMaxRetry:1},W.hls),{startPosition:W.start_time||-1})}(s);P.renderTextTracksNatively=!1,P.captionsTextTrack1Label=(h=(u=s==null?void 0:s.hls)===null||u===void 0?void 0:u.captionsTextTrack1Label)!==null&&h!==void 0?h:"CC1",P.captionsTextTrack2Label=(y=(m=s==null?void 0:s.hls)===null||m===void 0?void 0:m.captionsTextTrack2Label)!==null&&y!==void 0?y:"CC2",P.captionsTextTrack3Label=(_=(S=s==null?void 0:s.hls)===null||S===void 0?void 0:S.captionsTextTrack3Label)!==null&&_!==void 0?_:"CC3",P.captionsTextTrack4Label=(I=(w=s==null?void 0:s.hls)===null||w===void 0?void 0:w.captionsTextTrack4Label)!==null&&I!==void 0?I:"CC4",P.pLoader=C.createPlaylistLoader(a),P.fLoader=C.createFragmentLoader();let F=l.hls=new Ri(P);return C.setHls(F),F.subtitleDisplay=!1,F.attachMedia(l),F.loadSource(c.src),setTimeout(()=>l.emit("hls:attached",{hls:l.hls})),F}(e,r,t,i),e,r,t,i)}var _a;let om=((_a=class{init(e,i,r){nm(r,this,e)}onload(e,i,r,s){r.normalizedSrc=s,am(r,e,s,this)}wants(e,i,r){return Le.isSupported()&&function({src:s="",type:a="",drm:l},c){let u=c==null?void 0:c.hls,h=Boolean(u==null?void 0:u.native);return(!Yf||!h)&&(!(l&&!Object.keys(l).find((m)=>Kf(m)))&&(!(!a||!Wf.includes(a))||jf(s)))}(i,r)}}).pluginName="hls",_a.events=Vf,_a.version=Le.version,_a.failover={Reasons:ya},_a);return function(t,e){if(typeof al=="object"&&typeof ol<"u")return e;if(document.currentScript===null)return e;"flowplayer"in t||(t.flowplayer={extensions:[]});let i=t.flowplayer;return typeof i=="function"?(i(e),e):(Array.isArray(i.extensions)||(i.extensions=[]),~i.extensions.indexOf(e)||i.extensions.push(e),e)}(window,om)})});var th=Ce((ll,cl)=>{(function(n,o){typeof ll=="object"&&typeof cl<"u"?cl.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis<"u"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.qsel=o())})(ll,function(){function n(K,st,Et){let q=function(D){return Array.isArray(D)?D.slice(0):D.split(".")}(st);for(;q.length;){if(K==null)return Et;let D=q.shift();if(typeof D!="string")return Et;K=K[D]}return K==null?Et:K}let o=(K,st)=>new(((Et,q)=>{let D=Et.get(q);if(!D)throw Error(`no flowplayer component with the name ${q} exists`);let B=window.customElements.get(q);if(!B)throw Error(`no default flowplayer component with the name ${q} exists`);let x=window.customElements.get(D);return typeof x!="function"?B:x})(K._customElements,st))(K);class d extends HTMLElement{constructor(K){super(),this.player=K}}let v="fp-on",E="fp-invis";class A extends d{constructor(K){super(K),this.player=K,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=T(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(st)=>{if(st.defaultPrevented)return;st.preventDefault();let Et=this.menuContainer.open;Et||(R(),document.active_menu=this.menuContainer),this.menuContainer.open=!Et,K.root.classList.toggle("has-menu-opened",!Et),this.summaryEle.setAttribute("aria-expanded",Et?"false":"true")}),this.addEventListener("focusin",(st)=>{let Et=st.target;Et instanceof HTMLLIElement&&Et.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(st)=>{let Et=st.target;Et instanceof HTMLLIElement&&Et.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(K){if(this.className=K.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=K.id||T()),this.summaryEle.setAttribute("aria-label",K.menuTitle||"Menu"),K.summaryTitle&&(this.summaryEle.textContent=K.summaryTitle),K.summaryIcon){let st=o(this.player,K.summaryIcon);st.setAttribute("tabindex",""),this.summaryEle.append(st)}K.menuTitle&&(this.menuTitle.textContent=K.menuTitle),this.menu.classList.toggle("fp-icons",!!K.icons),this.addEventListener(K.options_event,(st)=>{this.render(st.data)}),K.item_selected_event&&this.addEventListener(K.item_selected_event,(st)=>{st.data!==void 0&&this.select_item(st.data.selected_index)})}render(K){this.olEle&&(this.olEle.innerHTML="",K&&K.forEach(this.menuOption,this),this.toggle_visibility(!(K==null?void 0:K.length)))}menuOption(K,st){let Et=document.createElement("li");Et.setAttribute("role","menuitem"),Et.setAttribute("aria-selected","false"),Et.setAttribute("tabindex","0"),K.icon&&Et.append(K.icon);let q=document.createElement("span");q.textContent=K.text,Et.append(q),Et.addEventListener("click",()=>{this.select_item(st),typeof K.onclick=="function"&&K.onclick()}),this.olEle.appendChild(Et),K.selected&&this.select_item(st)}select_item(K){this.options.forEach((st,Et)=>{st.classList.toggle(v,Et===K)})}unselect_item(){this.options.forEach((K)=>{K.classList.remove(v)})}toggle_visibility(K){this.classList.toggle(E,K),this.menu.style.setProperty("display",K?"none":"flex")}}function R(){Array.from(document.querySelectorAll(".fp-engine")).forEach((K)=>{var st;let Et=K.root.querySelector("details[open].fp-menu-container");Et&&(Et.open=!1,(st=Et.querySelector("summary"))===null||st===void 0||st.removeAttribute("aria-expanded"),K.root.classList.toggle("has-menu-opened",!1))})}function T(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function L(K,st,Et){let q=function(D,B){let x=new CustomEvent(D,{detail:B,cancelable:!0});return B&&Object.defineProperty(x,"data",{get:()=>B}),x}(st,Et);return K.dispatchEvent(q),K}document.addEventListener("click",function(K){this.active_menu&&!K.composedPath().includes(this.active_menu)&&(R(),this.active_menu=void 0)}),function(){let K=!1;try{let st=Object.defineProperty({},"passive",{get:function(){K=!0}});window.addEventListener("testPassive",null,st),window.removeEventListener("testPassive",null,st)}catch(st){}}();var M,tt=Object.freeze({__proto__:null,SET_QUALITY:"quality:set",TRACKS:"quality:tracks",SWITCH:"quality:update",QUALITIES:"qualities"});let b=((M=class{constructor(st){((Et,q,D)=>{window.customElements.get(q)||window.customElements.define(q,D),Et.customElements.get(q)||Et.customElements.set(q,q)})(st,"flowplayer-quality-menu",A)}init(st,Et,q){if(st.qsel===!1)return;let D=o(q,"flowplayer-quality-menu");D instanceof A&&D.setMenuAttrs({summaryTitle:"HD",menuTitle:q.i18n("qsel.menu_title"),class:"fp-qsel",options_event:M.events.TRACKS,item_selected_event:M.events.SWITCH}),q.on("mount",function(){var B;(B=function(x,Y){let J=x._customElements.get(Y);return J&&x.root.querySelector(J)||void 0}(q,q.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||B===void 0||B.append(D)}),q.on("qualities",(B)=>{if(!Array.isArray(B.detail))return;let x=B.detail,Y=n(st,"qsel.labels",[]);L(D,M.events.TRACKS,x.flatMap((J,ct)=>typeof Y[ct]!="boolean"||Y[ct]?{text:N(J,Y[ct]),onclick:H.bind(0,q,J)}:[])),D instanceof A&&D.toggle_visibility(x.length<2)})}}).pluginName="qsel",M.events=tt,M);function H(K,st){K.emit("quality:set",st)}function N(K,st){return st||(K.height?`${K.height}p${K.height>719?" HD":""}`:K.width?`${K.width}p${K.height>1279?" HD":""}`:("name"in K)&&K.name?K.name:"0p")}return function(K,st){if(typeof ll=="object"&&typeof cl<"u")return st;if(document.currentScript===null)return st;"flowplayer"in K||(K.flowplayer={extensions:[]});let Et=K.flowplayer;return typeof Et=="function"?(Et(st),st):(Array.isArray(Et.extensions)||(Et.extensions=[]),~Et.extensions.indexOf(st)||Et.extensions.push(st),st)}(window,b)})});var eh=Ce((ul,dl)=>{(function(n,o){typeof ul=="object"&&typeof dl<"u"?dl.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis<"u"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.share=o())})(ul,function(){let n={name:"fp-facebook"},o={name:"fp-link"},d={name:"fp-share"},v={name:"fp-embed"},E={name:"fp-twitter"};function A(rt,ut,bt){let Bt=function(Kt){return Array.isArray(Kt)?Kt.slice(0):Kt.split(".")}(ut);for(;Bt.length;){if(rt==null)return bt;let Kt=Bt.shift();if(typeof Kt!="string")return bt;rt=rt[Kt]}return rt==null?bt:rt}function R(){try{return(document.querySelector("meta[name='description']")||{content:""}).content}catch(rt){return""}}function T(rt){if(typeof rt.link=="string")return rt.link;let ut=document.querySelector("link[rel=canonical]");return ut?ut.href:window.location.toString()}class L extends HTMLElement{constructor(rt){super(),this.player=rt}}class M extends L{constructor(rt,ut){super(rt),this.classList.add("fp-icon",ut.name),ut.title&&this.setAttribute("title",ut.title),ut.title&&this.setAttribute("aria-label",ut.title),ut.translation_key&&this.setAttribute("aria-label",rt.i18n(ut.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}let tt=(rt,ut)=>new(((bt,Bt)=>{let Kt=bt.get(Bt);if(!Kt)throw Error(`no flowplayer component with the name ${Bt} exists`);let ce=window.customElements.get(Bt);if(!ce)throw Error(`no default flowplayer component with the name ${Bt} exists`);let jt=window.customElements.get(Kt);return typeof jt!="function"?ce:jt})(rt._customElements,ut))(rt),b=(rt,ut,bt)=>{window.customElements.get(ut)||window.customElements.define(ut,bt),rt.customElements.get(ut)||rt.customElements.set(ut,ut)},H="fp-on",N="fp-invis";class K extends L{constructor(rt){super(rt),this.player=rt,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=Et(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(ut)=>{if(ut.defaultPrevented)return;ut.preventDefault();let bt=this.menuContainer.open;bt||(st(),document.active_menu=this.menuContainer),this.menuContainer.open=!bt,rt.root.classList.toggle("has-menu-opened",!bt),this.summaryEle.setAttribute("aria-expanded",bt?"false":"true")}),this.addEventListener("focusin",(ut)=>{let bt=ut.target;bt instanceof HTMLLIElement&&bt.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(ut)=>{let bt=ut.target;bt instanceof HTMLLIElement&&bt.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(rt){if(this.className=rt.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=rt.id||Et()),this.summaryEle.setAttribute("aria-label",rt.menuTitle||"Menu"),rt.summaryTitle&&(this.summaryEle.textContent=rt.summaryTitle),rt.summaryIcon){let ut=tt(this.player,rt.summaryIcon);ut.setAttribute("tabindex",""),this.summaryEle.append(ut)}rt.menuTitle&&(this.menuTitle.textContent=rt.menuTitle),this.menu.classList.toggle("fp-icons",!!rt.icons),this.addEventListener(rt.options_event,(ut)=>{this.render(ut.data)}),rt.item_selected_event&&this.addEventListener(rt.item_selected_event,(ut)=>{ut.data!==void 0&&this.select_item(ut.data.selected_index)})}render(rt){this.olEle&&(this.olEle.innerHTML="",rt&&rt.forEach(this.menuOption,this),this.toggle_visibility(!(rt==null?void 0:rt.length)))}menuOption(rt,ut){let bt=document.createElement("li");bt.setAttribute("role","menuitem"),bt.setAttribute("aria-selected","false"),bt.setAttribute("tabindex","0"),rt.icon&&bt.append(rt.icon);let Bt=document.createElement("span");Bt.textContent=rt.text,bt.append(Bt),bt.addEventListener("click",()=>{this.select_item(ut),typeof rt.onclick=="function"&&rt.onclick()}),this.olEle.appendChild(bt),rt.selected&&this.select_item(ut)}select_item(rt){this.options.forEach((ut,bt)=>{ut.classList.toggle(H,bt===rt)})}unselect_item(){this.options.forEach((rt)=>{rt.classList.remove(H)})}toggle_visibility(rt){this.classList.toggle(N,rt),this.menu.style.setProperty("display",rt?"none":"flex")}}function st(){Array.from(document.querySelectorAll(".fp-engine")).forEach((rt)=>{var ut;let bt=rt.root.querySelector("details[open].fp-menu-container");bt&&(bt.open=!1,(ut=bt.querySelector("summary"))===null||ut===void 0||ut.removeAttribute("aria-expanded"),rt.root.classList.toggle("has-menu-opened",!1))})}function Et(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function q(rt,ut,bt){let Bt=function(Kt,ce){let jt=new CustomEvent(Kt,{detail:ce,cancelable:!0});return ce&&Object.defineProperty(jt,"data",{get:()=>ce}),jt}(ut,bt);return rt.dispatchEvent(Bt),rt}function D(rt,ut){let bt=rt._customElements.get(ut);return bt&&rt.root.querySelector(bt)||void 0}document.addEventListener("click",function(rt){this.active_menu&&!rt.composedPath().includes(this.active_menu)&&(st(),this.active_menu=void 0)}),function(){let rt=!1;try{let ut=Object.defineProperty({},"passive",{get:function(){rt=!0}});window.addEventListener("testPassive",null,ut),window.removeEventListener("testPassive",null,ut)}catch(ut){}}();let B="flowplayer-share-menu";var x;let Y=((x=class{constructor(ut){this.umd=ut,this.share_options=[],b(ut,B,K),b(this.umd,"flowplayer-facebook-icon",class extends M{constructor(bt){super(bt,n)}}),b(this.umd,"flowplayer-twitter-icon",class extends M{constructor(bt){super(bt,E)}}),b(this.umd,"flowplayer-link-icon",class extends M{constructor(bt){super(bt,o)}}),b(this.umd,"flowplayer-embed-icon",class extends M{constructor(bt){super(bt,v)}}),b(this.umd,"flowplayer-share-icon",class extends M{constructor(bt){super(bt,d)}})}init(ut,bt,Bt){let Kt=tt(Bt,B);Kt instanceof K&&Kt.setMenuAttrs({menuTitle:Bt.i18n("share.menu_title"),class:"fp-share-menu fp-togglable",summaryIcon:"flowplayer-share-icon",icons:!0,options_event:x.events.OPTIONS});let ce={prev_config:0,webshare_listener:0};Bt.on("mount",function(){var jt;(jt=D(Bt,"flowplayer-header-left-zone"))===null||jt===void 0||jt.append(Kt),Kt instanceof K&&Kt.menuContainer.addEventListener("toggle",function(){bt.classList.toggle("is-share-menu",this.open);let V=D(Bt,"flowplayer-control");this.open&&(bt.classList.contains("is-small")?Bt.pause():V&&function(et,pt){if(!pt)return;et.menu.style.maxHeight=pt.getBoundingClientRect().top+parseFloat(window.getComputedStyle(pt).getPropertyValue("padding"))-et.menuContainer.getBoundingClientRect().bottom+"px"}(Kt,V))})}),Bt.on("config",(jt)=>{let V=A(jt,"data.share",{});if(V===!1)return Kt instanceof K&&void Kt.classList.remove("webshare-enabled");if(ce.prev_config===V)return;if(ce.prev_config=V,Kt instanceof K&&function(){try{return window.location.protocol==="https:"&&typeof navigator.share=="function"}catch(pt){return!1}}()&&A(V,"web_share",!0))return function(pt){pt.classList.add("webshare-enabled")}(Kt),ce.webshare_listener||function(pt,gt,Lt){Lt.webshare_listener=!0,gt.addEventListener("click",function(){if(!gt.classList.contains("webshare-enabled"))return;gt.menuContainer.open=!1,navigator.share({title:A(pt,"share.title",document.title),text:A(pt,"share.text",R()),url:T(A(pt,"share",{}))}).catch(function(){})})}(ut,Kt,ce);this.share_options=[];let et=typeof V.link=="string"?V.link:window.location.toString();if(V.iframe){let pt=typeof V.iframe=="string"?V.iframe:et;this.share_options.push(J(Bt,Kt,"share.embed",ot.bind(null,pt,Bt),tt(Bt,"flowplayer-embed-icon")))}V.link&&this.share_options.push(J(Bt,Kt,"share.link",St.bind(null,et),tt(Bt,"flowplayer-link-icon"))),V.facebook&&this.share_options.push(J(Bt,Kt,"Facebook",Pt.bind(null,et),tt(Bt,"flowplayer-facebook-icon"))),V.twitter&&this.share_options.push(J(Bt,Kt,"Twitter",$t.bind(null,et),tt(Bt,"flowplayer-twitter-icon"))),q(Kt,x.events.OPTIONS,this.share_options)})}add_options(ut,...bt){let Bt=ut.root.querySelector(B);Bt&&bt.forEach((Kt)=>{let ce=J(ut,Bt,Kt.text,Kt.onclick,Kt.icon);Bt.menuOption(ce,Bt.options.length)})}}).pluginName="share",x.events={OPTIONS:"share:options"},x);function J(rt,ut,bt,Bt,Kt){return{text:ct(rt,bt),icon:Kt,onclick:nt.bind(null,rt,ut,Bt)}}function ct(rt,ut){return ut.indexOf("share.")===0?rt.i18n(ut):ut}function nt(rt,ut,bt){ut instanceof K&&ut.unselect_item();let Bt=bt();Bt.success&&Bt.message&&rt.message&&rt.emit(rt.message.events.SHOW_MESSAGE,{message:Bt.message})}function ot(rt,ut){let bt=ut.videoHeight/ut.videoWidth;return St('<div style="position:relative;width:100%;display:inline-block;"><iframe src="__IFRAME_SRC__" allowfullscreen style="border:none;position:absolute;top:0;left:0;width:100%;height:100%;"></iframe><div style="padding-top: __RATIO__%;"></div></div>'.replace("__IFRAME_SRC__",encodeURI(rt)).replace("__RATIO__",""+100*bt))}function St(rt){let ut=document.createElement("textarea");ut.setAttribute("style","position:absolute;opacity:0"),ut.value=rt;let bt=document.body;bt.append(ut),ut.select();let Bt=document.execCommand("copy");return bt.removeChild(ut),{success:Bt,message:Bt?"<trans share.clipboard_success trans>":"<trans share.clipboard_failure trans>"}}function Pt(rt){return zt("https://www.facebook.com/sharer.php?u="+encodeURIComponent(rt)),{success:!0}}function $t(rt){return zt("https://twitter.com/intent/tweet?url="+encodeURIComponent(rt)),{success:!0}}function zt(rt){let ut,bt=screen.height,Bt=screen.width,Kt=Math.round(Bt/2-275);ut=0,bt>420&&(ut=Math.round(bt/2-210)),window.open(rt,"sharer","scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,left="+Kt+",top="+ut)}return function(rt,ut){if(typeof ul=="object"&&typeof dl<"u")return ut;if(document.currentScript===null)return ut;"flowplayer"in rt||(rt.flowplayer={extensions:[]});let bt=rt.flowplayer;return typeof bt=="function"?(bt(ut),ut):(Array.isArray(bt.extensions)||(bt.extensions=[]),~bt.extensions.indexOf(ut)||bt.extensions.push(ut),ut)}(window,Y)})});var ih=Ce((hl,fl)=>{(function(n,o){typeof hl=="object"&&typeof fl<"u"?fl.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis<"u"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.subtitles=o())})(hl,function(){function n(V,et,pt){let gt=function(Lt){return Array.isArray(Lt)?Lt.slice(0):Lt.split(".")}(et);for(;gt.length;){if(V==null)return pt;let Lt=gt.shift();if(typeof Lt!="string")return pt;V=V[Lt]}return V==null?pt:V}function o(V,et){V.innerHTML="",et.forEach(function(pt){let gt=document.createElement("pre");gt.classList.add("fp-cue"),function(Lt,ve){let ue=Lt.style,Je=ve.size;ue.setProperty("--caption-size",Je.toString());let xe=ve.position;xe&&xe!=="auto"&&ve?ue.setProperty("--caption-position",xe.toString()):ue.removeProperty("--caption-position");let ke="captions-align-"+ve.align;Array.from(Lt.classList).forEach(function(ne){ne!=ke&&(ne=="captions-vertical"&&ve.vertical||ne.startsWith("captions")&&Lt.classList.remove(ne))}),Lt.classList.add(ke),Lt.classList.toggle("captions-vertical",!!ve.vertical)}(V,pt),gt.appendChild(pt.getCueAsHTML()),V.appendChild(gt)})}function d(){}let v="is-source-processing",E=(V,et)=>new(((pt,gt)=>{let Lt=pt.get(gt);if(!Lt)throw Error(`no flowplayer component with the name ${gt} exists`);let ve=window.customElements.get(gt);if(!ve)throw Error(`no default flowplayer component with the name ${gt} exists`);let ue=window.customElements.get(Lt);return typeof ue!="function"?ve:ue})(V._customElements,et))(V),A=(V,et,pt)=>{window.customElements.get(et)||window.customElements.define(et,pt),V.customElements.get(et)||V.customElements.set(et,et)};function R(V,et,pt){let gt=function(Lt,ve){let ue=new CustomEvent(Lt,{detail:ve,cancelable:!0});return ve&&Object.defineProperty(ue,"data",{get:()=>ve}),ue}(et,pt);return V.dispatchEvent(gt),V}function T(V,et){let pt=V._customElements.get(et);return pt&&V.root.querySelector(pt)||void 0}(function(){let V=!1;try{let et=Object.defineProperty({},"passive",{get:function(){V=!0}});window.addEventListener("testPassive",null,et),window.removeEventListener("testPassive",null,et)}catch(et){}})();class L extends HTMLElement{constructor(V){super(),this.player=V}}let M="fp-on",tt="fp-invis";class b extends L{constructor(V){super(V),this.player=V,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=N(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(et)=>{if(et.defaultPrevented)return;et.preventDefault();let pt=this.menuContainer.open;pt||(H(),document.active_menu=this.menuContainer),this.menuContainer.open=!pt,V.root.classList.toggle("has-menu-opened",!pt),this.summaryEle.setAttribute("aria-expanded",pt?"false":"true")}),this.addEventListener("focusin",(et)=>{let pt=et.target;pt instanceof HTMLLIElement&&pt.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(et)=>{let pt=et.target;pt instanceof HTMLLIElement&&pt.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(V){if(this.className=V.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=V.id||N()),this.summaryEle.setAttribute("aria-label",V.menuTitle||"Menu"),V.summaryTitle&&(this.summaryEle.textContent=V.summaryTitle),V.summaryIcon){let et=E(this.player,V.summaryIcon);et.setAttribute("tabindex",""),this.summaryEle.append(et)}V.menuTitle&&(this.menuTitle.textContent=V.menuTitle),this.menu.classList.toggle("fp-icons",!!V.icons),this.addEventListener(V.options_event,(et)=>{this.render(et.data)}),V.item_selected_event&&this.addEventListener(V.item_selected_event,(et)=>{et.data!==void 0&&this.select_item(et.data.selected_index)})}render(V){this.olEle&&(this.olEle.innerHTML="",V&&V.forEach(this.menuOption,this),this.toggle_visibility(!(V==null?void 0:V.length)))}menuOption(V,et){let pt=document.createElement("li");pt.setAttribute("role","menuitem"),pt.setAttribute("aria-selected","false"),pt.setAttribute("tabindex","0"),V.icon&&pt.append(V.icon);let gt=document.createElement("span");gt.textContent=V.text,pt.append(gt),pt.addEventListener("click",()=>{this.select_item(et),typeof V.onclick=="function"&&V.onclick()}),this.olEle.appendChild(pt),V.selected&&this.select_item(et)}select_item(V){this.options.forEach((et,pt)=>{et.classList.toggle(M,pt===V)})}unselect_item(){this.options.forEach((V)=>{V.classList.remove(M)})}toggle_visibility(V){this.classList.toggle(tt,V),this.menu.style.setProperty("display",V?"none":"flex")}}function H(){Array.from(document.querySelectorAll(".fp-engine")).forEach((V)=>{var et;let pt=V.root.querySelector("details[open].fp-menu-container");pt&&(pt.open=!1,(et=pt.querySelector("summary"))===null||et===void 0||et.removeAttribute("aria-expanded"),V.root.classList.toggle("has-menu-opened",!1))})}function N(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener("click",function(V){this.active_menu&&!V.composedPath().includes(this.active_menu)&&(H(),this.active_menu=void 0)});let K=["255, 255, 255","255, 255, 0","0, 255, 0","0, 255, 255","0, 0, 255","255, 0, 255","255, 0, 0","0, 0, 0"],st=[0.25,0.5,0.75,1,1.25,1.5,1.75,2,3,4],Et=["White","Yellow","Green","Cyan","Blue","Magenta","Red","Black"],q=["Monospaced Serif","Proportional Serif","Monospaced Sans-Serif","Proportional Sans-Serif","Casual","Cursive"],D=["Courier New, monospace","serif","Andale Mono, Lucida Console, monospace","sans-serif","Comic Sans MS, Impact, fantasy","Monotype Corsiva, cursive"],B=["None","Drop shadow","Raised","Depressed","Outline"],x=["","rgb(34, 34, 34) 2px 2px 3px, rgb(34, 34, 34) 2px 2px 4px, rgb(34, 34, 34) 2px 2px 5px","rgb(34, 34, 34) 1px 1px, rgb(34, 34, 34) 2px 2px, rgb(34, 34, 34) 3px 3px","rgb(204, 204, 204) 1px 1px, rgb(204, 204, 204) 0px 1px, rgb(34, 34, 34) -1px -1px, rgb(34, 34, 34) 0px -1px","rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px"];class Y{constructor(V,et,pt,gt,Lt){this.player=V,this.labels=et,this.values=pt,this.css_variable=gt,this.default_value=Lt,this.selected=V._storage.getItem(gt)||Lt}set selected(V){document.documentElement.style.setProperty(this.css_variable,V),this.player._storage.setItem(this.css_variable,V)}get selected(){return document.documentElement.style.getPropertyValue(this.css_variable)}}var J;(function(V){V[V.main=0]="main",V[V.tracks=1]="tracks",V[V.style=2]="style",V[V.styleOpt=3]="styleOpt"})(J||(J={}));class ct extends b{constructor(V){if(super(V),this.state=J.main,this.selectedTrackIdx=-1,this.isTV=!1,this.styleOpts=function(gt){return{[gt.i18n("cc.properties.fontSize","Font size")]:new Y(gt,st.map((Lt)=>100*Lt+"%"),st.map((Lt)=>100*Lt+"%"),"--fp-sub-font-size","100%"),[gt.i18n("cc.properties.fontFamily","Font family")]:new Y(gt,q.map((Lt)=>gt.i18n("cc.fontFamily."+Lt,Lt)),D,"--fp-sub-font-family","sans-serif"),[gt.i18n("cc.properties.fontColor","Font color")]:new Y(gt,Et.map((Lt)=>gt.i18n("cc.colors."+Lt,Lt)),K,"--fp-sub-font-color",K[0]),[gt.i18n("cc.properties.fontOpacity","Font opacity")]:new Y(gt,st.flatMap((Lt)=>Lt>1?[]:100*Lt+"%"),st.flatMap((Lt)=>Lt>1?[]:Lt+""),"--fp-sub-font-opacity","1"),[gt.i18n("cc.properties.backgroundColor","Background color")]:new Y(gt,Et.map((Lt)=>gt.i18n("cc.colors."+Lt,Lt)),K,"--fp-sub-background-color",K[7]),[gt.i18n("cc.properties.backgroundOpacity","Background opacity")]:new Y(gt,st.flatMap((Lt)=>Lt>1?[]:100*Lt+"%"),st.flatMap((Lt)=>Lt>1?[]:Lt+""),"--fp-sub-background-opacity","0.5"),[gt.i18n("cc.properties.characterEdgeStyle","Character edge style")]:new Y(gt,B.map((Lt)=>gt.i18n("cc.edgeStyle."+Lt,Lt)),x,"--fp-sub-edge-style","")}}(V),V.on("mount",()=>{setTimeout(()=>this.isTV=V.hasState("is-tv"),0),this.classList.toggle("subs-native",!!V.opt("subtitles.native"))}),V.on(jt.events.TRACK_UPDATED,(gt)=>this.summaryEle.classList.toggle("fp-color-text",!!gt.detail)),V.opt("subtitles.native"))return;let et=E(this.player,"flowplayer-menu-back");et.setAttribute("aria-label","Back to previous menu"),this.menuHeader.prepend(et),et.addEventListener("click",()=>this.navigateBack());let pt=E(this.player,"flowplayer-subs-menu-icon");pt.setAttribute("aria-label","Open style menu"),pt.addEventListener("click",()=>this.createMenu(J.style)),this.menuHeader.insertBefore(pt,this.menuTitle),this.summaryEle.addEventListener("click",()=>{this.menuContainer.open||this.createMenu(J.main)}),this.menu.addEventListener("click",(gt)=>{(gt.target===pt||gt.target===et||this.state!==J.main&&gt.target!==this.closeEle)&&gt.preventDefault()}),this.addEventListener(jt.events.TRACKS,(gt)=>{var Lt;this.tracks=gt.detail,this.selectedTrackIdx=-1,this.toggle_visibility(!((Lt=this==null?void 0:this.tracks)===null||Lt===void 0?void 0:Lt.length)),this.state===(this.isTV?J.tracks:J.main)&&this.createMenu(this.isTV?J.tracks:J.main)}),this.addEventListener(jt.events.SWITCH,(gt)=>{this.selectedTrackIdx=gt.detail.selected_index,this.state===(this.isTV?J.tracks:J.main)&&this.select_item(this.selectedTrackIdx)}),this.player.addEventListener("tv-menu:will-open",()=>{var gt;((gt=this.tracks)===null||gt===void 0?void 0:gt.length)&&this.createMenu(J.main)}),this.player.on(["tv-menu:will-close","keyboard:close:menus"],(gt)=>{var Lt;this.state!==J.main&&((Lt=document.activeElement)===null||Lt===void 0?void 0:Lt.closest(".fp-menu"))===this.menu&&(this.navigateBack(),gt.preventDefault())})}navigateBack(){switch(this.state){case J.style:case J.tracks:return this.createMenu(J.main);case J.styleOpt:return this.createMenu(J.style)}}getMenuTitle(){switch(this.state){case J.main:return this.player.i18n("cc.menu_title","Subtitles");case J.tracks:return this.player.i18n("cc.tracks","Tracks");case J.style:return this.player.i18n("cc.options","Options");default:return""}}createMenuOpts(V){switch(this.state){case J.main:return this.isTV?this.createTvMainMenuOpts():this.createTracksMenuOpts();case J.tracks:return this.createTracksMenuOpts();case J.style:return this.createStyleMenuOpts();case J.styleOpt:return V?this.createStylePropertyMenuOpts(this.styleOpts[V]):[]}}createMenu(V,et){var pt;this.state=V,this.menu.classList.toggle("fp-submenu",V>0),this.menuTitle.textContent=et||this.getMenuTitle(),this.render(this.createMenuOpts(et)),(pt=this.menu.querySelector("li"))===null||pt===void 0||pt.focus()}createTvMainMenuOpts(){return[{text:this.player.i18n("cc.tracks","Tracks"),onclick:this.createMenu.bind(this,J.tracks)},{text:this.player.i18n("cc.options","Options"),onclick:this.createMenu.bind(this,J.style)}]}createTracksMenuOpts(){return Array.isArray(this==null?void 0:this.tracks)?this.tracks.map((V,et)=>({text:V.text,onclick:()=>{V.onclick(),this.selectedTrackIdx=this.selectedTrackIdx===et?-1:et},selected:this.selectedTrackIdx===et})):[]}createStyleMenuOpts(){let V=Object.keys(this.styleOpts).map((et)=>({text:et,onclick:this.createMenu.bind(this,J.styleOpt,et)}));return V.push({text:this.player.i18n("cc.reset","Reset"),onclick:()=>Object.values(this.styleOpts).forEach((et)=>et.selected=et.default_value)}),V}createStylePropertyMenuOpts(V){return V.labels.map((et,pt)=>({text:et,onclick:()=>{V.selected=V.values[pt]},selected:pt===V.values.indexOf(V.selected)}))}select_item(V){if(this.state!==J.style)return this.state===J.styleOpt?super.select_item(V):void this.options.forEach((et,pt)=>{et.classList.toggle(M,pt===V&&!et.classList.contains(M))})}}class nt extends L{constructor(V,et){super(V),this.classList.add("fp-icon",et.name),et.title&&this.setAttribute("title",et.title),et.title&&this.setAttribute("aria-label",et.title),et.translation_key&&this.setAttribute("aria-label",V.i18n(et.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}function ot(V){return!document.fullscreenEnabled&&typeof V.webkitEnterFullScreen=="function"&&typeof V.webkitExitFullScreen=="function"}let St="subs:tracks",Pt="subs:change";var $t,zt=Object.freeze({__proto__:null,TRACK_UPDATED:"tracks:text:updated",TRACKS:St,SWITCH:Pt,CUES_PARSED:"cues:parsed",TEXT_TRACKS:"tracks:text:all"});function rt(V,et){if(function(pt){return Object.values($t).includes(pt)}(et=et||$t.Anonymous))return V instanceof HTMLVideoElement&&(V.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in V?V.crossOrigin=et:V.setAttribute("crossorigin",et),V}function ut(V){let et=document.createElement("a");return et.href=V,et.origin}function bt(V,et){let pt=document.createElement("track");pt.className="fp-track renderable",pt.kind=et.kind||"captions",pt.label=et.label||et.lang||"",pt.lang=et.lang||"",pt.id=["fp",et.lang].join("-");let gt=pt.track;return gt.removeCue=d,typeof et.crossorigin!="string"&&function(Lt,ve){try{return Lt.src.startsWith("blob:"),ut(Lt.src)!==ut(ve)}catch(ue){return console.error(ue),!0}}(V,et.src)&&(rt(V),et.crossorigin=V.getAttribute("crossorigin")),"crossorigin"in et&&rt(V,et.crossorigin),Object.keys(et).forEach((Lt)=>{Lt!=="default"&&(pt[Lt]=et[Lt])}),gt.mode=et.default?"hidden":"disabled",V.appendChild(pt),pt}(function(V){V.Anonymous="anonymous",V.UseCredentials="use-credentials",V.Empty=""})($t||($t={}));let Bt={translation_key:"cc.menu_title",name:"fp-subtitles-menu"},Kt={name:"fp-menu-back"};var ce;let jt=((ce=class{constructor(et){A(et,"flowplayer-subtitles-menu",ct),A(et,"flowplayer-subs-menu-icon",class extends nt{constructor(pt){super(pt,Bt)}}),A(et,"flowplayer-menu-back",class extends nt{constructor(pt){super(pt,Kt)}})}init(et,pt,gt){var Lt,ve;let ue=E(gt,"flowplayer-subtitles-menu");ue instanceof ct&&ue.setMenuAttrs({class:"fp-cc",summaryTitle:gt.i18n("cc.button","CC"),menuTitle:gt.i18n("cc.menu_title","Subtitles"),options_event:((Lt=et.subtitles)===null||Lt===void 0?void 0:Lt.native)?St:void 0,item_selected_event:((ve=et.subtitles)===null||ve===void 0?void 0:ve.native)?Pt:void 0});let Je=function(xt){let Nt=document.createElement("div");return Nt.classList.add("fp-captions"),Nt.ontouchend=(At)=>xt.emit(At.type),Nt.onclick=(At)=>xt.emit(At.type),Nt}(gt),xe,ke=[],ne=[];function Ve(){return Array.from(gt.textTracks).filter((xt)=>~["captions","subtitles","descriptions"].indexOf(xt.kind)&&!xt.removed&&xt.label)}function Qe(){return Ve().find((xt)=>xt.is_active)}function ui(xt){Array.from(xt.querySelectorAll("track")).forEach((Nt)=>{["captions","subtitles","descriptions"].includes(Nt.kind)&&xt.removeChild(Nt)})}function Ke(xt,Nt,At){R(Nt,St,At.map(function(se){return{text:se.label,onclick:Di.bind(0,xt,se)}}));let Xt=Qe();return Xt?Ve().find((se)=>se===Xt)?void R(Nt,Pt,{selected_index:At.indexOf(Xt)}):We():xt.emit("tracks:text:updated")}function Di(xt,Nt){var At,Xt;if(Nt==Qe())return We();We(),Nt.is_hls_embedded&&typeof Nt.track_id=="number"&&xt.hls&&(xt.hls.subtitleTrack=Nt.track_id),Nt.mode=((At=xt.opts.subtitles)===null||At===void 0?void 0:At.native)?"showing":"hidden",Nt.is_active=!0,xt.emit("tracks:text:updated",Nt),((Xt=xt.opts.subtitles)===null||Xt===void 0?void 0:Xt.native)||xt.emit("cuechange",{track:Nt})}function We(){let xt=Qe();xt&&(gt.emit("tracks:text:updated"),xt.mode="disabled",xt.is_active=!1,o(Je,[]))}(function(xt){if(!ot(xt))return;xt.on("webkitbeginfullscreen",()=>{let Nt=Qe();Nt&&(Nt.mode="showing")}),xt.on("webkitendfullscreen",()=>{var Nt;let At=Ve().find((Xt)=>Xt.mode==="showing");At&&!((Nt=xt.opts.subtitles)===null||Nt===void 0?void 0:Nt.native)&&(At.mode="hidden"),At!==Qe()&&(At?Di(xt,At):We(),R(ue,Pt,{selected_index:At?ne.indexOf(At):-1}))})})(gt),gt.on("mount",function(){var xt,Nt;let At=T(gt,"flowplayer-control");if(!At)return(xt=T(gt,"flowplayer-ui"))===null||xt===void 0?void 0:xt.appendChild(Je);At.insertAdjacentElement("beforebegin",Je),(Nt=gt.hasState("is-tv")?T(gt,"flowplayer-tv-menu"):At)===null||Nt===void 0||Nt.append(ue)}),gt.on("config",function(xt){var Nt,At;let Xt=(At=(Nt=xt.data)===null||Nt===void 0?void 0:Nt.subtitles)===null||At===void 0?void 0:At.tracks;Xt&&ke!==Xt&&(ke=Xt,ui(gt),ne=Ve(),Ke(gt,ue,ne),ke.forEach((se)=>bt(gt,se)))}),gt.on("tracks:text:all",(xt)=>{let Nt=xt.detail.tracks;Nt!==xe&&(xe=Nt,ne=ne.flatMap((At)=>At.is_hls_embedded?(At.removed=!0,[]):At),Ke(gt,ue,ne),Nt.filter((At)=>{var Xt,se;return~["subtitles","captions"].indexOf((At==null?void 0:At.kind)||((se=(Xt=At==null?void 0:At.subtitleTrack)===null||Xt===void 0?void 0:Xt.type)===null||se===void 0?void 0:se.toLocaleLowerCase())||"")}).forEach((At)=>{var Xt,se,di,or,Ii,Fe,lr;let Ze=gt.addTextTrack(At.kind==="captions"?"captions":"subtitles",((Xt=At.subtitleTrack)===null||Xt===void 0?void 0:Xt.name)||At.label,(se=At.subtitleTrack)===null||se===void 0?void 0:se.lang);Ze.is_hls_embedded=!0,Ze.default=((di=At.subtitleTrack)===null||di===void 0?void 0:di.default)!==void 0?(or=At.subtitleTrack)===null||or===void 0?void 0:or.default:At.default,Ze.track_id=(Fe=(Ii=At.subtitleTrack)===null||Ii===void 0?void 0:Ii.id)!==null&&Fe!==void 0?Fe:At._id,Ze.mode=Ze.default?"hidden":"disabled",Ze.removeCue=d,Ze.attr=(lr=At.subtitleTrack)===null||lr===void 0?void 0:lr.attrs}))}),gt.on("cues:parsed",(xt)=>{let Nt=xt.detail,At=ne.find((Xt)=>Xt.is_hls_embedded&&!Xt.removed&&(Xt.default&&Nt.track==="default"||Xt.track_id===Nt.track||"subtitles"+Xt.track_id===Nt.track||"captions"+Xt.track_id===Nt.track));At&&Nt.cues.forEach((Xt)=>At.addCue(Xt))}),gt.textTracks.addEventListener("addtrack",()=>{let xt=Ve();if(ne.length===xt.length&&ne.every((At,Xt)=>At===xt[Xt]))return;let Nt=Qe();if(xt.map(function(At){return~["showing","hidden"].indexOf(At.mode)&&(Nt=At,At.mode="disabled",At.is_active=!1),At.oncuechange=function(Xt){var se;if(!(At===Qe()||ot(gt)&&gt.hasState("is-fullscreen")))return At.mode="disabled";((se=et.subtitles)===null||se===void 0?void 0:se.native)||gt.emit(Xt.type,{track:Xt.target})},At}),R(ue,St,xt.map(function(At){return{text:At.label,onclick:Di.bind(0,gt,At)}})),ne=xt,!Nt)return We();Di(gt,Nt),R(ue,Pt,{selected_index:ne.indexOf(Nt)})}),gt.on("cuechange",function(xt){var Nt;let At=(Nt=xt.data)===null||Nt===void 0?void 0:Nt.track;if(!At||!["captions","subtitles","descriptions"].includes(At.kind))return;let Xt=Array.from(n(At,"activeCues",[])).filter((se,di,or)=>di===or.findIndex((Ii)=>se.id===Ii.id)).sort((se,di)=>typeof se.line!="number"||typeof di.line!="number"?0:se.line-di.line);o(Je,Xt)}),gt.on(["playlist/advance","src"],(xt)=>{gt.currentSrc&&(xt.type==="src"&&["is-playlist",v].some((Nt)=>gt.root.classList.contains(Nt))||(delete gt.opts.subtitles,ui(gt),ke=[],We(),ne=[],xe=[],Ve().forEach((Nt)=>Nt.removed=!0),R(ue,St,[])))})}}).pluginName="subtitles",ce.events=zt,ce);return function(V,et){if(typeof hl=="object"&&typeof fl<"u")return et;if(document.currentScript===null)return et;"flowplayer"in V||(V.flowplayer={extensions:[]});let pt=V.flowplayer;return typeof pt=="function"?(pt(et),et):(Array.isArray(pt.extensions)||(pt.extensions=[]),~pt.extensions.indexOf(et)||pt.extensions.push(et),et)}(window,jt)})});var rh=Ce((ml,gl)=>{(function(n,o){typeof ml=="object"&&typeof gl<"u"?gl.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis<"u"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.thumbnails=o())})(ml,function(){var n;function o(B,x){if(function(Y){return Object.values(n).includes(Y)}(x=x||n.Anonymous))return B instanceof HTMLVideoElement&&(B.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in B?B.crossOrigin=x:B.setAttribute("crossorigin",x),B}function d(B){let x=document.createElement("a");return x.href=B,x.origin}(function(B){B.Anonymous="anonymous",B.UseCredentials="use-credentials",B.Empty=""})(n||(n={}));function v(B,x){return B.querySelector("track[id='"+x+"']")}function E(B,x){let Y=document.createElement("track");return Y.src=x,function(J,ct){try{return J.src.startsWith("blob:"),d(J.src)!==d(ct)}catch(nt){return console.error(nt),!0}}(B,x)&&(o(B),o(Y)),Y}var A=Object.freeze({__proto__:null,THUMBNAILS_RENDER:"thumbnails:render",THUMBNAILS_HIDE:"thumbnails:hide"});function R(B,x){let Y=B._customElements.get(x);return Y&&B.root.querySelector(Y)||void 0}let T=(B,x)=>new(((Y,J)=>{let ct=Y.get(J);if(!ct)throw Error(`no flowplayer component with the name ${J} exists`);let nt=window.customElements.get(J);if(!nt)throw Error(`no default flowplayer component with the name ${J} exists`);let ot=window.customElements.get(ct);return typeof ot!="function"?nt:ot})(B._customElements,x))(B);class L extends HTMLElement{constructor(B){super(),this.player=B}}class M extends L{constructor(B){super(B),this.className="fp-thumbnail-carousel",this.carousel=this.makeCarousel(),this.addEventListener("thumbnails:render",this.renderCarousel.bind(this,B)),this.addEventListener("thumbnails:hide",()=>B.root.classList.remove("with-thumbnails"))}renderCarousel(B,x){let{previous:Y,current:J,next:ct}=x.detail;B.root.classList.add("with-thumbnails"),Y&&this.renderCarouselItem(this.carousel.previous,Y),J&&this.renderCarouselItem(this.carousel.current,J),ct&&this.renderCarouselItem(this.carousel.next,ct)}makeCarousel(){return{previous:this.makeCarouselItem("previous"),current:this.makeCarouselItem("current"),next:this.makeCarouselItem("next")}}makeCarouselItem(B){let x=document.createElement("div");return x.classList.add("thumbnail",B),this.append(x),x}renderCarouselItem(B,x){let Y=B.style;Y.backgroundImage=`url("${x.url}")`,Y.backgroundPositionX="-"+x.x+"px ",Y.backgroundPositionY="-"+x.y+"px",Y.height=x.h+"px",Y.width=x.w+"px"}}function tt(B){let x=document.createElement("a");return x.href=B,x}let b=/#xywh=(\d+),(\d+),(\d+),(\d+)$/,H=/^(https:|https:|\/)/;function N(B,x){let Y=tt(B.src),J=tt(x),[ct,nt,ot,St,Pt]=(J.hash.match(b)||[]).map(($t)=>parseInt($t,10));return{x:nt,y:ot,w:St,h:Pt,url:K(x,Y)}}function K(B,x){if(B.match(H))return B;try{return new URL(B,x.href).toString()}catch(Y){return""}}let st="is-source-processing";function Et(B,x,Y){let J=function(ct,nt){let ot=new CustomEvent(ct,{detail:nt,cancelable:!0});return nt&&Object.defineProperty(ot,"data",{get:()=>nt}),ot}(x,Y);return B.dispatchEvent(J),B}var q;(function(){let B=!1;try{let x=Object.defineProperty({},"passive",{get:function(){B=!0}});window.addEventListener("testPassive",null,x),window.removeEventListener("testPassive",null,x)}catch(x){}})();let D=((q=class{static activeThumbnails(x,Y){var J,ct;let nt=v(x,"thumbnails");if(!nt)return;let ot=Array.from(nt.track.cues||{length:0}),St=ot.find(($t)=>$t.startTime<=Y&&Y<=$t.endTime);if(!St)return{};let Pt=ot.indexOf(St);return{previous:N(nt,((J=ot[Pt-1])===null||J===void 0?void 0:J.text)||""),current:N(nt,(St==null?void 0:St.text)||""),next:N(nt,((ct=ot[Pt+1])===null||ct===void 0?void 0:ct.text)||"")}}constructor(x){((Y,J,ct)=>{window.customElements.get(J)||window.customElements.define(J,ct),Y.customElements.get(J)||Y.customElements.set(J,J)})(x,"flowplayer-thumbnails-carousel",M)}init(x,Y,J){let ct=R(J,"flowplayer-ui"),nt=T(J,"flowplayer-thumbnails-carousel"),ot=R(J,"flowplayer-control");J.reaper&&ct&&ot&&(ct.insertBefore(nt,ot),J.once("mount",()=>{this.attachTimelineListeners(J,nt)}),J.textTracks.addEventListener("addtrack",function(St){let Pt=St.track;(Pt==null?void 0:Pt.id)==="thumbnails"&&(Pt.mode="hidden")}),J.on("config",function(){var St;let Pt=(St=x==null?void 0:x.thumbnails)===null||St===void 0?void 0:St.src;if(typeof Pt=="string")return function($t,zt){if(function(ut,bt){return ut.querySelector("track[src='"+bt+"']")}($t,zt))return;let rt=E($t,zt);return rt.kind="metadata",rt.id="thumbnails",rt.src=zt,$t.append(rt),rt}(J,Pt)}),J.on(["playlist/advance","src"],(St)=>{J.currentSrc&&(St.type==="src"&&["is-playlist",st].some((Pt)=>J.root.classList.contains(Pt))||(delete x.thumbnails,function(Pt){let $t=v(Pt,"thumbnails");$t&&$t.remove()}(J)))}))}attachTimelineListeners(x,Y){x.on("timeline/gesture/move",({data:J})=>{let ct=J==null?void 0:J.percent;if(typeof ct!="number")return;if(!Number.isFinite(x.duration))return;let nt=Math.max(0,Math.min(x.duration,x.duration*(ct/100))),ot=q.activeThumbnails(x,nt);ot&&requestAnimationFrame(()=>Et(Y,"thumbnails:render",Object.assign(Object.assign({},ot),{timestamp:nt})))}),x.on("timeline/gesture/end",()=>{x.root.classList.contains("with-thumbnails")&&Et(Y,"thumbnails:hide")})}}).pluginName="thumbnails",q.events=A,q);return function(B,x){if(typeof ml=="object"&&typeof gl<"u")return x;if(document.currentScript===null)return x;"flowplayer"in B||(B.flowplayer={extensions:[]});let Y=B.flowplayer;return typeof Y=="function"?(Y(x),x):(Array.isArray(Y.extensions)||(Y.extensions=[]),~Y.extensions.indexOf(x)||Y.extensions.push(x),x)}(window,D)})});var nh=Ce((pl,vl)=>{(function(n,o){typeof pl=="object"&&typeof vl<"u"?vl.exports=o():typeof define=="function"&&define.amd?define(o):((n=typeof globalThis<"u"?globalThis:n||self).flowplayer=n.flowplayer||{},n.flowplayer.vtsel=o())})(pl,function(){let n=(q,D)=>new(((B,x)=>{let Y=B.get(x);if(!Y)throw Error(`no flowplayer component with the name ${x} exists`);let J=window.customElements.get(x);if(!J)throw Error(`no default flowplayer component with the name ${x} exists`);let ct=window.customElements.get(Y);return typeof ct!="function"?J:ct})(q._customElements,D))(q);class o extends HTMLElement{constructor(q){super(),this.player=q}}let d="fp-on",v="fp-invis";class E extends o{constructor(q){super(q),this.player=q,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=R(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(D)=>{if(D.defaultPrevented)return;D.preventDefault();let B=this.menuContainer.open;B||(A(),document.active_menu=this.menuContainer),this.menuContainer.open=!B,q.root.classList.toggle("has-menu-opened",!B),this.summaryEle.setAttribute("aria-expanded",B?"false":"true")}),this.addEventListener("focusin",(D)=>{let B=D.target;B instanceof HTMLLIElement&&B.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(D)=>{let B=D.target;B instanceof HTMLLIElement&&B.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(q){if(this.className=q.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=q.id||R()),this.summaryEle.setAttribute("aria-label",q.menuTitle||"Menu"),q.summaryTitle&&(this.summaryEle.textContent=q.summaryTitle),q.summaryIcon){let D=n(this.player,q.summaryIcon);D.setAttribute("tabindex",""),this.summaryEle.append(D)}q.menuTitle&&(this.menuTitle.textContent=q.menuTitle),this.menu.classList.toggle("fp-icons",!!q.icons),this.addEventListener(q.options_event,(D)=>{this.render(D.data)}),q.item_selected_event&&this.addEventListener(q.item_selected_event,(D)=>{D.data!==void 0&&this.select_item(D.data.selected_index)})}render(q){this.olEle&&(this.olEle.innerHTML="",q&&q.forEach(this.menuOption,this),this.toggle_visibility(!(q==null?void 0:q.length)))}menuOption(q,D){let B=document.createElement("li");B.setAttribute("role","menuitem"),B.setAttribute("aria-selected","false"),B.setAttribute("tabindex","0"),q.icon&&B.append(q.icon);let x=document.createElement("span");x.textContent=q.text,B.append(x),B.addEventListener("click",()=>{this.select_item(D),typeof q.onclick=="function"&&q.onclick()}),this.olEle.appendChild(B),q.selected&&this.select_item(D)}select_item(q){this.options.forEach((D,B)=>{D.classList.toggle(d,B===q)})}unselect_item(){this.options.forEach((q)=>{q.classList.remove(d)})}toggle_visibility(q){this.classList.toggle(v,q),this.menu.style.setProperty("display",q?"none":"flex")}}function A(){Array.from(document.querySelectorAll(".fp-engine")).forEach((q)=>{var D;let B=q.root.querySelector("details[open].fp-menu-container");B&&(B.open=!1,(D=B.querySelector("summary"))===null||D===void 0||D.removeAttribute("aria-expanded"),q.root.classList.toggle("has-menu-opened",!1))})}function R(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener("click",function(q){this.active_menu&&!q.composedPath().includes(this.active_menu)&&(A(),this.active_menu=void 0)});function T(q,D,B){let x=function(Y,J){let ct=new CustomEvent(Y,{detail:J,cancelable:!0});return J&&Object.defineProperty(ct,"data",{get:()=>J}),ct}(D,B);return q.dispatchEvent(x),q}var L;(function(){let q=!1;try{let D=Object.defineProperty({},"passive",{get:function(){q=!0}});window.addEventListener("testPassive",null,D),window.removeEventListener("testPassive",null,D)}catch(D){}})(),function(q){q[q.Idle=0]="Idle",q[q.Receiving=1]="Receiving",q[q.Starting=2]="Starting"}(L||(L={}));var M=function(q){var D={exports:{}};return q(D,D.exports),D.exports}(function(q,D){var B,x,Y,J,ct;B=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,x=/^(?=([^\/?#]*))\1([^]*)$/,Y=/(?:\/|^)\.(?=\/)/g,J=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,ct={buildAbsoluteURL:function(nt,ot,St){if(St=St||{},nt=nt.trim(),!(ot=ot.trim())){if(!St.alwaysNormalize)return nt;var Pt=ct.parseURL(nt);if(!Pt)throw Error("Error trying to parse base URL.");return Pt.path=ct.normalizePath(Pt.path),ct.buildURLFromParts(Pt)}var $t=ct.parseURL(ot);if(!$t)throw Error("Error trying to parse relative URL.");if($t.scheme)return St.alwaysNormalize?($t.path=ct.normalizePath($t.path),ct.buildURLFromParts($t)):ot;var zt=ct.parseURL(nt);if(!zt)throw Error("Error trying to parse base URL.");if(!zt.netLoc&&zt.path&&zt.path[0]!=="/"){var rt=x.exec(zt.path);zt.netLoc=rt[1],zt.path=rt[2]}zt.netLoc&&!zt.path&&(zt.path="/");var ut={scheme:zt.scheme,netLoc:$t.netLoc,path:null,params:$t.params,query:$t.query,fragment:$t.fragment};if(!$t.netLoc&&(ut.netLoc=zt.netLoc,$t.path[0]!=="/"))if($t.path){var bt=zt.path,Bt=bt.substring(0,bt.lastIndexOf("/")+1)+$t.path;ut.path=ct.normalizePath(Bt)}else ut.path=zt.path,$t.params||(ut.params=zt.params,$t.query||(ut.query=zt.query));return ut.path===null&&(ut.path=St.alwaysNormalize?ct.normalizePath($t.path):$t.path),ct.buildURLFromParts(ut)},parseURL:function(nt){var ot=B.exec(nt);return ot?{scheme:ot[1]||"",netLoc:ot[2]||"",path:ot[3]||"",params:ot[4]||"",query:ot[5]||"",fragment:ot[6]||""}:null},normalizePath:function(nt){for(nt=nt.split("").reverse().join("").replace(Y,"");nt.length!==(nt=nt.replace(J,"")).length;);return nt.split("").reverse().join("")},buildURLFromParts:function(nt){return nt.scheme+nt.netLoc+nt.path+nt.params+nt.query+nt.fragment}},q.exports=ct});let tt=/#EXT-X-MEDIA:(.*)/g,b=/(.+?)=(".*?"|.*?)(?:,|$)/g;function H(q,D,B,x){let Y=B,J={label:q,default:B,data:x||[]};return Object.defineProperty(J,"selected",{get:()=>Y,set(ct){var nt;typeof ct=="boolean"&&Y!==ct&&(Y&&((nt=D.tracks)===null||nt===void 0?void 0:nt.filter((ot)=>ot.selected).length)===1||(Y=ct,ct&&D.emit("tracks:video:select",{track:J})))}})}class N{constructor(q){typeof q=="string"&&(q=N.parseAttrList(q)),Object.keys(q).forEach((D)=>{q.hasOwnProperty(D)&&(D.substring(0,2)==="X-"&&(this.clientAttrs=this.clientAttrs||[],this.clientAttrs.push(D)),this[D]=q[D])})}bool(q){return this[q]==="YES"}static parseAttrList(q){let D,B={};for(b.lastIndex=0;(D=b.exec(q))!==null;){let x=D[2];x.indexOf('"')===0&&x.lastIndexOf('"')===x.length-1&&(x=x.slice(1,-1)),B[D[1].trim()]=x}return B}}var K,st=Object.freeze({__proto__:null,PARSE_TRACKS:"parse:video:tracks",VIDEO_TRACK_SELECT:"tracks:video:select",VIDEO_TRACKS:"videoTracks",TRACKS:"video:tracks",SWITCH:"video:update"});let Et=((K=class{constructor(D){((B,x,Y)=>{window.customElements.get(x)||window.customElements.define(x,Y),B.customElements.get(x)||B.customElements.set(x,x)})(D,"flowplayer-video-menu",E)}init(D,B,x){var Y;let J=n(x,"flowplayer-video-menu");J instanceof E&&J.setMenuAttrs({summaryTitle:x.i18n("vtsel.button_txt","Video"),menuTitle:x.i18n("vtsel.menu_title","Video Track"),class:"fp-vsel",options_event:K.events.TRACKS,item_selected_event:K.events.SWITCH}),x.on("mount",function(){var ct;(ct=function(nt,ot){let St=nt._customElements.get(ot);return St&&nt.root.querySelector(St)||void 0}(x,x.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||ct===void 0||ct.append(J)}),x.on("src",()=>{x.tracks=[],T(J,K.events.TRACKS,[])}),x.on("parse:video:tracks",(ct)=>{let nt=ct.detail;nt&&function(ot,St,Pt){var $t,zt,rt,ut,bt,Bt,Kt;let ce,jt=0;for(tt.lastIndex=0;(ce=tt.exec(St))!==null;){let V=new N(ce[1]);if(V.TYPE==="VIDEO"){let et=($t=ot.tracks)===null||$t===void 0?void 0:$t.find((gt)=>gt.label===(V.NAME||V.LANGUAGE||"Track "+jt));if(et||(et=H(V.NAME||V.LANGUAGE||jt+++"",ot,V.bool("DEFAULT")),V.bool("DEFAULT")&&(et.data=(zt=ot.hls)===null||zt===void 0?void 0:zt.levels.slice(0)),(rt=ot.tracks)===null||rt===void 0||rt.push(et)),V.bool("DEFAULT"))continue;let pt={details:void 0,audioGroupIds:(ut=ot.hls)===null||ut===void 0?void 0:ut.levels[0].audioGroupIds,attrs:{},urlId:0,url:[V.URI?M.buildAbsoluteURL(Pt,V.URI,{alwaysNormalize:!0}):""],uri:V.URI?M.buildAbsoluteURL(Pt,V.URI,{alwaysNormalize:!0}):"",level:(bt=et.data)===null||bt===void 0?void 0:bt.length,name:"level "+((Bt=et.data)===null||Bt===void 0?void 0:Bt.length)};(Kt=et.data)===null||Kt===void 0||Kt.push(pt)}}}(x,nt.manifest,nt.url)}),(Y=x.videoTracks)===null||Y===void 0||Y.addEventListener("addtrack",()=>{D.is_native&&(x.tracks=Array.from(x.videoTracks||[]).map((ct,nt)=>H(ct.label?ct.label:"track "+nt,x,ct.selected)),x.emit("videoTracks",x.tracks))}),x.on("loadeddata",()=>{var ct;if(!D.is_native||!x.videoTracks){if((ct=x.tracks)===null||ct===void 0?void 0:ct.length)return x.emit("videoTracks",x.tracks);x.tracks=[H("default",x,!0)],x.emit("videoTracks",x.tracks)}}),x.on("videoTracks",()=>{let ct=x.tracks;ct&&Array.isArray(ct)&&(T(J,K.events.TRACKS,ct.map((nt)=>({text:nt.label,onclick:()=>nt.selected=!0}))),T(J,K.events.SWITCH,{selected_index:ct.findIndex((nt)=>nt.default)}),J instanceof E&&J.toggle_visibility((ct==null?void 0:ct.length)<2))}),x.on("tracks:video:select",(ct)=>{let nt=ct.detail.track,ot=x.tracks;if(!nt||!ot||!Array.isArray(ot))return;if(T(J,K.events.SWITCH,{selected_index:ot.indexOf(nt)}),!x.opts.is_native||!x.videoTracks)return;x.videoTracks[ot.indexOf(nt)].selected=!0;let St=ot.find((Pt)=>Pt.selected&&Pt!==nt);St&&(St.selected=!1,x.videoTracks[ot.indexOf(St)].selected=!1)}),x.on("rts/status",(ct)=>{var nt;let ot=ct.detail.status,St=ct.detail.data;if(ot===L.Idle)return T(J,K.events.TRACKS,[]),x.tracks=[];ot===L.Receiving&&((nt=x==null?void 0:x.tracks)===null||nt===void 0||nt.push(H((St==null?void 0:St.sourceId)||"Main",x,!(St==null?void 0:St.sourceId),St)))})}}).pluginName="vtsel",K.events=st,K);return function(q,D){if(typeof pl=="object"&&typeof vl<"u")return D;if(document.currentScript===null)return D;"flowplayer"in q||(q.flowplayer={extensions:[]});let B=q.flowplayer;return typeof B=="function"?(B(D),D):(Array.isArray(B.extensions)||(B.extensions=[]),~B.extensions.indexOf(D)||B.extensions.push(D),D)}(window,Et)})});var vh=Ce((Ua,Oc)=>{(function(n,o){typeof Ua=="object"&&typeof Oc=="object"?Oc.exports=o():typeof define=="function"&&define.amd?define([],o):typeof Ua=="object"?Ua.bowser=o():n.bowser=o()})(Ua,function(){return function(n){var o={};function d(v){if(o[v])return o[v].exports;var E=o[v]={i:v,l:!1,exports:{}};return n[v].call(E.exports,E,E.exports,d),E.l=!0,E.exports}return d.m=n,d.c=o,d.d=function(v,E,A){d.o(v,E)||Object.defineProperty(v,E,{enumerable:!0,get:A})},d.r=function(v){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(v,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(v,"__esModule",{value:!0})},d.t=function(v,E){if(1&E&&(v=d(v)),8&E)return v;if(4&E&&typeof v=="object"&&v&&v.__esModule)return v;var A=Object.create(null);if(d.r(A),Object.defineProperty(A,"default",{enumerable:!0,value:v}),2&E&&typeof v!="string")for(var R in v)d.d(A,R,function(T){return v[T]}.bind(null,R));return A},d.n=function(v){var E=v&&v.__esModule?function(){return v.default}:function(){return v};return d.d(E,"a",E),E},d.o=function(v,E){return Object.prototype.hasOwnProperty.call(v,E)},d.p="",d(d.s=90)}({17:function(n,o,d){o.__esModule=!0,o.default=void 0;var v=d(18),E=function(){function A(){}return A.getFirstMatch=function(R,T){var L=T.match(R);return L&&L.length>0&&L[1]||""},A.getSecondMatch=function(R,T){var L=T.match(R);return L&&L.length>1&&L[2]||""},A.matchAndReturnConst=function(R,T,L){if(R.test(T))return L},A.getWindowsVersionName=function(R){switch(R){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},A.getMacOSVersionName=function(R){var T=R.split(".").splice(0,2).map(function(L){return parseInt(L,10)||0});if(T.push(0),T[0]===10)switch(T[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},A.getAndroidVersionName=function(R){var T=R.split(".").splice(0,2).map(function(L){return parseInt(L,10)||0});if(T.push(0),!(T[0]===1&&T[1]<5))return T[0]===1&&T[1]<6?"Cupcake":T[0]===1&&T[1]>=6?"Donut":T[0]===2&&T[1]<2?"Eclair":T[0]===2&&T[1]===2?"Froyo":T[0]===2&&T[1]>2?"Gingerbread":T[0]===3?"Honeycomb":T[0]===4&&T[1]<1?"Ice Cream Sandwich":T[0]===4&&T[1]<4?"Jelly Bean":T[0]===4&&T[1]>=4?"KitKat":T[0]===5?"Lollipop":T[0]===6?"Marshmallow":T[0]===7?"Nougat":T[0]===8?"Oreo":T[0]===9?"Pie":void 0},A.getVersionPrecision=function(R){return R.split(".").length},A.compareVersions=function(R,T,L){L===void 0&&(L=!1);var M=A.getVersionPrecision(R),tt=A.getVersionPrecision(T),b=Math.max(M,tt),H=0,N=A.map([R,T],function(K){var st=b-A.getVersionPrecision(K),Et=K+Array(st+1).join(".0");return A.map(Et.split("."),function(q){return Array(20-q.length).join("0")+q}).reverse()});for(L&&(H=b-Math.min(M,tt)),b-=1;b>=H;){if(N[0][b]>N[1][b])return 1;if(N[0][b]===N[1][b]){if(b===H)return 0;b-=1}else if(N[0][b]<N[1][b])return-1}},A.map=function(R,T){var L,M=[];if(Array.prototype.map)return Array.prototype.map.call(R,T);for(L=0;L<R.length;L+=1)M.push(T(R[L]));return M},A.find=function(R,T){var L,M;if(Array.prototype.find)return Array.prototype.find.call(R,T);for(L=0,M=R.length;L<M;L+=1){var tt=R[L];if(T(tt,L))return tt}},A.assign=function(R){for(var T,L,M=R,tt=arguments.length,b=Array(tt>1?tt-1:0),H=1;H<tt;H++)b[H-1]=arguments[H];if(Object.assign)return Object.assign.apply(Object,[R].concat(b));var N=function(){var K=b[T];typeof K=="object"&&K!==null&&Object.keys(K).forEach(function(st){M[st]=K[st]})};for(T=0,L=b.length;T<L;T+=1)N();return R},A.getBrowserAlias=function(R){return v.BROWSER_ALIASES_MAP[R]},A.getBrowserTypeByAlias=function(R){return v.BROWSER_MAP[R]||""},A}();o.default=E,n.exports=o.default},18:function(n,o,d){o.__esModule=!0,o.ENGINE_MAP=o.OS_MAP=o.PLATFORMS_MAP=o.BROWSER_MAP=o.BROWSER_ALIASES_MAP=void 0,o.BROWSER_ALIASES_MAP={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast","Pale Moon":"pale_moon",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},o.BROWSER_MAP={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",pale_moon:"Pale Moon",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},o.PLATFORMS_MAP={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv",bot:"bot"},o.OS_MAP={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},o.ENGINE_MAP={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"}},90:function(n,o,d){o.__esModule=!0,o.default=void 0;var v,E=(v=d(91))&&v.__esModule?v:{default:v},A=d(18);function R(L,M){for(var tt=0;tt<M.length;tt++){var b=M[tt];b.enumerable=b.enumerable||!1,b.configurable=!0,"value"in b&&(b.writable=!0),Object.defineProperty(L,b.key,b)}}var T=function(){function L(){}var M,tt,b;return L.getParser=function(H,N){if(N===void 0&&(N=!1),typeof H!="string")throw Error("UserAgent should be a string");return new E.default(H,N)},L.parse=function(H){return new E.default(H).getResult()},M=L,b=[{key:"BROWSER_MAP",get:function(){return A.BROWSER_MAP}},{key:"ENGINE_MAP",get:function(){return A.ENGINE_MAP}},{key:"OS_MAP",get:function(){return A.OS_MAP}},{key:"PLATFORMS_MAP",get:function(){return A.PLATFORMS_MAP}}],(tt=null)&&R(M.prototype,tt),b&&R(M,b),L}();o.default=T,n.exports=o.default},91:function(n,o,d){o.__esModule=!0,o.default=void 0;var v=L(d(92)),E=L(d(93)),A=L(d(94)),R=L(d(95)),T=L(d(17));function L(tt){return tt&&tt.__esModule?tt:{default:tt}}var M=function(){function tt(H,N){if(N===void 0&&(N=!1),H==null||H==="")throw Error("UserAgent parameter can't be empty");this._ua=H,this.parsedResult={},N!==!0&&this.parse()}var b=tt.prototype;return b.getUA=function(){return this._ua},b.test=function(H){return H.test(this._ua)},b.parseBrowser=function(){var H=this;this.parsedResult.browser={};var N=T.default.find(v.default,function(K){if(typeof K.test=="function")return K.test(H);if(Array.isArray(K.test))return K.test.some(function(st){return H.test(st)});throw Error("Browser's test function is not valid")});return N&&(this.parsedResult.browser=N.describe(this.getUA())),this.parsedResult.browser},b.getBrowser=function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()},b.getBrowserName=function(H){return H?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""},b.getBrowserVersion=function(){return this.getBrowser().version},b.getOS=function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()},b.parseOS=function(){var H=this;this.parsedResult.os={};var N=T.default.find(E.default,function(K){if(typeof K.test=="function")return K.test(H);if(Array.isArray(K.test))return K.test.some(function(st){return H.test(st)});throw Error("Browser's test function is not valid")});return N&&(this.parsedResult.os=N.describe(this.getUA())),this.parsedResult.os},b.getOSName=function(H){var N=this.getOS().name;return H?String(N).toLowerCase()||"":N||""},b.getOSVersion=function(){return this.getOS().version},b.getPlatform=function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()},b.getPlatformType=function(H){H===void 0&&(H=!1);var N=this.getPlatform().type;return H?String(N).toLowerCase()||"":N||""},b.parsePlatform=function(){var H=this;this.parsedResult.platform={};var N=T.default.find(A.default,function(K){if(typeof K.test=="function")return K.test(H);if(Array.isArray(K.test))return K.test.some(function(st){return H.test(st)});throw Error("Browser's test function is not valid")});return N&&(this.parsedResult.platform=N.describe(this.getUA())),this.parsedResult.platform},b.getEngine=function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()},b.getEngineName=function(H){return H?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""},b.parseEngine=function(){var H=this;this.parsedResult.engine={};var N=T.default.find(R.default,function(K){if(typeof K.test=="function")return K.test(H);if(Array.isArray(K.test))return K.test.some(function(st){return H.test(st)});throw Error("Browser's test function is not valid")});return N&&(this.parsedResult.engine=N.describe(this.getUA())),this.parsedResult.engine},b.parse=function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this},b.getResult=function(){return T.default.assign({},this.parsedResult)},b.satisfies=function(H){var N=this,K={},st=0,Et={},q=0;if(Object.keys(H).forEach(function(ot){var St=H[ot];typeof St=="string"?(Et[ot]=St,q+=1):typeof St=="object"&&(K[ot]=St,st+=1)}),st>0){var D=Object.keys(K),B=T.default.find(D,function(ot){return N.isOS(ot)});if(B){var x=this.satisfies(K[B]);if(x!==void 0)return x}var Y=T.default.find(D,function(ot){return N.isPlatform(ot)});if(Y){var J=this.satisfies(K[Y]);if(J!==void 0)return J}}if(q>0){var ct=Object.keys(Et),nt=T.default.find(ct,function(ot){return N.isBrowser(ot,!0)});if(nt!==void 0)return this.compareVersion(Et[nt])}},b.isBrowser=function(H,N){N===void 0&&(N=!1);var K=this.getBrowserName().toLowerCase(),st=H.toLowerCase(),Et=T.default.getBrowserTypeByAlias(st);return N&&Et&&(st=Et.toLowerCase()),st===K},b.compareVersion=function(H){var N=[0],K=H,st=!1,Et=this.getBrowserVersion();if(typeof Et=="string")return H[0]===">"||H[0]==="<"?(K=H.substr(1),H[1]==="="?(st=!0,K=H.substr(2)):N=[],H[0]===">"?N.push(1):N.push(-1)):H[0]==="="?K=H.substr(1):H[0]==="~"&&(st=!0,K=H.substr(1)),N.indexOf(T.default.compareVersions(Et,K,st))>-1},b.isOS=function(H){return this.getOSName(!0)===String(H).toLowerCase()},b.isPlatform=function(H){return this.getPlatformType(!0)===String(H).toLowerCase()},b.isEngine=function(H){return this.getEngineName(!0)===String(H).toLowerCase()},b.is=function(H,N){return N===void 0&&(N=!1),this.isBrowser(H,N)||this.isOS(H)||this.isPlatform(H)},b.some=function(H){var N=this;return H===void 0&&(H=[]),H.some(function(K){return N.is(K)})},tt}();o.default=M,n.exports=o.default},92:function(n,o,d){o.__esModule=!0,o.default=void 0;var v,E=(v=d(17))&&v.__esModule?v:{default:v},A=/version\/(\d+(\.?_?\d+)+)/i,R=[{test:[/googlebot/i],describe:function(T){var L={name:"Googlebot"},M=E.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,T)||E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/opera/i],describe:function(T){var L={name:"Opera"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/opr\/|opios/i],describe:function(T){var L={name:"Opera"},M=E.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,T)||E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/SamsungBrowser/i],describe:function(T){var L={name:"Samsung Internet for Android"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/Whale/i],describe:function(T){var L={name:"NAVER Whale Browser"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/PaleMoon/i],describe:function(T){var L={name:"Pale Moon"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:PaleMoon)[\s/](\d+(?:\.\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/MZBrowser/i],describe:function(T){var L={name:"MZ Browser"},M=E.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,T)||E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/focus/i],describe:function(T){var L={name:"Focus"},M=E.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,T)||E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/swing/i],describe:function(T){var L={name:"Swing"},M=E.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,T)||E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/coast/i],describe:function(T){var L={name:"Opera Coast"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(T){var L={name:"Opera Touch"},M=E.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/yabrowser/i],describe:function(T){var L={name:"Yandex Browser"},M=E.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/ucbrowser/i],describe:function(T){var L={name:"UC Browser"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/Maxthon|mxios/i],describe:function(T){var L={name:"Maxthon"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/epiphany/i],describe:function(T){var L={name:"Epiphany"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/puffin/i],describe:function(T){var L={name:"Puffin"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/sleipnir/i],describe:function(T){var L={name:"Sleipnir"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/k-meleon/i],describe:function(T){var L={name:"K-Meleon"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/micromessenger/i],describe:function(T){var L={name:"WeChat"},M=E.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/qqbrowser/i],describe:function(T){var L={name:/qqbrowserlite/i.test(T)?"QQ Browser Lite":"QQ Browser"},M=E.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/msie|trident/i],describe:function(T){var L={name:"Internet Explorer"},M=E.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/\sedg\//i],describe:function(T){var L={name:"Microsoft Edge"},M=E.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/edg([ea]|ios)/i],describe:function(T){var L={name:"Microsoft Edge"},M=E.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/vivaldi/i],describe:function(T){var L={name:"Vivaldi"},M=E.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/seamonkey/i],describe:function(T){var L={name:"SeaMonkey"},M=E.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/sailfish/i],describe:function(T){var L={name:"Sailfish"},M=E.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,T);return M&&(L.version=M),L}},{test:[/silk/i],describe:function(T){var L={name:"Amazon Silk"},M=E.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/phantom/i],describe:function(T){var L={name:"PhantomJS"},M=E.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/slimerjs/i],describe:function(T){var L={name:"SlimerJS"},M=E.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(T){var L={name:"BlackBerry"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/(web|hpw)[o0]s/i],describe:function(T){var L={name:"WebOS Browser"},M=E.default.getFirstMatch(A,T)||E.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/bada/i],describe:function(T){var L={name:"Bada"},M=E.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/tizen/i],describe:function(T){var L={name:"Tizen"},M=E.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/qupzilla/i],describe:function(T){var L={name:"QupZilla"},M=E.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/firefox|iceweasel|fxios/i],describe:function(T){var L={name:"Firefox"},M=E.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/electron/i],describe:function(T){var L={name:"Electron"},M=E.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/MiuiBrowser/i],describe:function(T){var L={name:"Miui"},M=E.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/chromium/i],describe:function(T){var L={name:"Chromium"},M=E.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,T)||E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/chrome|crios|crmo/i],describe:function(T){var L={name:"Chrome"},M=E.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/GSA/i],describe:function(T){var L={name:"Google Search"},M=E.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:function(T){var L=!T.test(/like android/i),M=T.test(/android/i);return L&&M},describe:function(T){var L={name:"Android Browser"},M=E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/playstation 4/i],describe:function(T){var L={name:"PlayStation 4"},M=E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/safari|applewebkit/i],describe:function(T){var L={name:"Safari"},M=E.default.getFirstMatch(A,T);return M&&(L.version=M),L}},{test:[/.*/i],describe:function(T){var L=T.search("\\(")!==-1?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:E.default.getFirstMatch(L,T),version:E.default.getSecondMatch(L,T)}}}];o.default=R,n.exports=o.default},93:function(n,o,d){o.__esModule=!0,o.default=void 0;var v,E=(v=d(17))&&v.__esModule?v:{default:v},A=d(18),R=[{test:[/Roku\/DVP/],describe:function(T){var L=E.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,T);return{name:A.OS_MAP.Roku,version:L}}},{test:[/windows phone/i],describe:function(T){var L=E.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,T);return{name:A.OS_MAP.WindowsPhone,version:L}}},{test:[/windows /i],describe:function(T){var L=E.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,T),M=E.default.getWindowsVersionName(L);return{name:A.OS_MAP.Windows,version:L,versionName:M}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(T){var L={name:A.OS_MAP.iOS},M=E.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,T);return M&&(L.version=M),L}},{test:[/macintosh/i],describe:function(T){var L=E.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,T).replace(/[_\s]/g,"."),M=E.default.getMacOSVersionName(L),tt={name:A.OS_MAP.MacOS,version:L};return M&&(tt.versionName=M),tt}},{test:[/(ipod|iphone|ipad)/i],describe:function(T){var L=E.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,T).replace(/[_\s]/g,".");return{name:A.OS_MAP.iOS,version:L}}},{test:function(T){var L=!T.test(/like android/i),M=T.test(/android/i);return L&&M},describe:function(T){var L=E.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,T),M=E.default.getAndroidVersionName(L),tt={name:A.OS_MAP.Android,version:L};return M&&(tt.versionName=M),tt}},{test:[/(web|hpw)[o0]s/i],describe:function(T){var L=E.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,T),M={name:A.OS_MAP.WebOS};return L&&L.length&&(M.version=L),M}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(T){var L=E.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,T)||E.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,T)||E.default.getFirstMatch(/\bbb(\d+)/i,T);return{name:A.OS_MAP.BlackBerry,version:L}}},{test:[/bada/i],describe:function(T){var L=E.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,T);return{name:A.OS_MAP.Bada,version:L}}},{test:[/tizen/i],describe:function(T){var L=E.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,T);return{name:A.OS_MAP.Tizen,version:L}}},{test:[/linux/i],describe:function(){return{name:A.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:A.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(T){var L=E.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,T);return{name:A.OS_MAP.PlayStation4,version:L}}}];o.default=R,n.exports=o.default},94:function(n,o,d){o.__esModule=!0,o.default=void 0;var v,E=(v=d(17))&&v.__esModule?v:{default:v},A=d(18),R=[{test:[/googlebot/i],describe:function(){return{type:A.PLATFORMS_MAP.bot,vendor:"Google"}}},{test:[/huawei/i],describe:function(T){var L=E.default.getFirstMatch(/(can-l01)/i,T)&&"Nova",M={type:A.PLATFORMS_MAP.mobile,vendor:"Huawei"};return L&&(M.model=L),M}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:A.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:A.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:A.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:A.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:A.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:A.PLATFORMS_MAP.tablet}}},{test:function(T){var L=T.test(/ipod|iphone/i),M=T.test(/like (ipod|iphone)/i);return L&&!M},describe:function(T){var L=E.default.getFirstMatch(/(ipod|iphone)/i,T);return{type:A.PLATFORMS_MAP.mobile,vendor:"Apple",model:L}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:A.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/Nokia/i],describe:function(T){var L=E.default.getFirstMatch(/Nokia\s+([0-9]+(\.[0-9]+)?)/i,T),M={type:A.PLATFORMS_MAP.mobile,vendor:"Nokia"};return L&&(M.model=L),M}},{test:[/[^-]mobi/i],describe:function(){return{type:A.PLATFORMS_MAP.mobile}}},{test:function(T){return T.getBrowserName(!0)==="blackberry"},describe:function(){return{type:A.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(T){return T.getBrowserName(!0)==="bada"},describe:function(){return{type:A.PLATFORMS_MAP.mobile}}},{test:function(T){return T.getBrowserName()==="windows phone"},describe:function(){return{type:A.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(T){var L=Number(String(T.getOSVersion()).split(".")[0]);return T.getOSName(!0)==="android"&&L>=3},describe:function(){return{type:A.PLATFORMS_MAP.tablet}}},{test:function(T){return T.getOSName(!0)==="android"},describe:function(){return{type:A.PLATFORMS_MAP.mobile}}},{test:function(T){return T.getOSName(!0)==="macos"},describe:function(){return{type:A.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(T){return T.getOSName(!0)==="windows"},describe:function(){return{type:A.PLATFORMS_MAP.desktop}}},{test:function(T){return T.getOSName(!0)==="linux"},describe:function(){return{type:A.PLATFORMS_MAP.desktop}}},{test:function(T){return T.getOSName(!0)==="playstation 4"},describe:function(){return{type:A.PLATFORMS_MAP.tv}}},{test:function(T){return T.getOSName(!0)==="roku"},describe:function(){return{type:A.PLATFORMS_MAP.tv}}}];o.default=R,n.exports=o.default},95:function(n,o,d){o.__esModule=!0,o.default=void 0;var v,E=(v=d(17))&&v.__esModule?v:{default:v},A=d(18),R=[{test:function(T){return T.getBrowserName(!0)==="microsoft edge"},describe:function(T){if(/\sedg\//i.test(T))return{name:A.ENGINE_MAP.Blink};var L=E.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,T);return{name:A.ENGINE_MAP.EdgeHTML,version:L}}},{test:[/trident/i],describe:function(T){var L={name:A.ENGINE_MAP.Trident},M=E.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:function(T){return T.test(/presto/i)},describe:function(T){var L={name:A.ENGINE_MAP.Presto},M=E.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:function(T){var L=T.test(/gecko/i),M=T.test(/like gecko/i);return L&&!M},describe:function(T){var L={name:A.ENGINE_MAP.Gecko},M=E.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:A.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(T){var L={name:A.ENGINE_MAP.WebKit},M=E.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,T);return M&&(L.version=M),L}}];o.default=R,n.exports=o.default}})})});var Bc=Ce((H1,Th)=>{var Uc=Object.prototype.hasOwnProperty,sr=function(){var n=[];for(var o=0;o<256;++o)n.push("%"+((o<16?"0":"")+o.toString(16)).toUpperCase());return n}(),tE=function(o){var d;while(o.length){var v=o.pop();if(d=v.obj[v.prop],Array.isArray(d)){var E=[];for(var A=0;A<d.length;++A)if(typeof d[A]<"u")E.push(d[A]);v.obj[v.prop]=E}}return d},bh=function(o,d){var v=d&&d.plainObjects?Object.create(null):{};for(var E=0;E<o.length;++E)if(typeof o[E]<"u")v[E]=o[E];return v},eE=function n(o,d,v){if(!d)return o;if(typeof d!=="object"){if(Array.isArray(o))o.push(d);else if(o&&typeof o==="object"){if(v&&(v.plainObjects||v.allowPrototypes)||!Uc.call(Object.prototype,d))o[d]=!0}else return[o,d];return o}if(!o||typeof o!=="object")return[o].concat(d);var E=o;if(Array.isArray(o)&&!Array.isArray(d))E=bh(o,v);if(Array.isArray(o)&&Array.isArray(d))return d.forEach(function(A,R){if(Uc.call(o,R)){var T=o[R];if(T&&typeof T==="object"&&A&&typeof A==="object")o[R]=n(T,A,v);else o.push(A)}else o[R]=A}),o;return Object.keys(d).reduce(function(A,R){var T=d[R];if(Uc.call(A,R))A[R]=n(A[R],T,v);else A[R]=T;return A},E)},iE=function(o,d){return Object.keys(d).reduce(function(v,E){return v[E]=d[E],v},o)},rE=function(n){try{return decodeURIComponent(n.replace(/\+/g," "))}catch(o){return n}},nE=function(o){if(o.length===0)return o;var d=typeof o==="string"?o:String(o),v="";for(var E=0;E<d.length;++E){var A=d.charCodeAt(E);if(A===45||A===46||A===95||A===126||A>=48&&A<=57||A>=65&&A<=90||A>=97&&A<=122){v+=d.charAt(E);continue}if(A<128){v=v+sr[A];continue}if(A<2048){v=v+(sr[192|A>>6]+sr[128|A&63]);continue}if(A<55296||A>=57344){v=v+(sr[224|A>>12]+sr[128|A>>6&63]+sr[128|A&63]);continue}E+=1,A=65536+((A&1023)<<10|d.charCodeAt(E)&1023),v+=sr[240|A>>18]+sr[128|A>>12&63]+sr[128|A>>6&63]+sr[128|A&63]}return v},sE=function(o){var d=[{obj:{o},prop:"o"}],v=[];for(var E=0;E<d.length;++E){var A=d[E],R=A.obj[A.prop],T=Object.keys(R);for(var L=0;L<T.length;++L){var M=T[L],tt=R[M];if(typeof tt==="object"&&tt!==null&&v.indexOf(tt)===-1)d.push({obj:R,prop:M}),v.push(tt)}}return tE(d)},aE=function(o){return Object.prototype.toString.call(o)==="[object RegExp]"},oE=function(o){if(o===null||typeof o>"u")return!1;return!!(o.constructor&&o.constructor.isBuffer&&o.constructor.isBuffer(o))};Th.exports={arrayToObject:bh,assign:iE,compact:sE,decode:rE,encode:nE,isBuffer:oE,isRegExp:aE,merge:eE}});var $c=Ce((V1,_h)=>{var lE=String.prototype.replace,cE=/%20/g;_h.exports={default:"RFC3986",formatters:{RFC1738:function(n){return lE.call(n,cE,"+")},RFC3986:function(n){return String(n)}},RFC1738:"RFC1738",RFC3986:"RFC3986"}});var wh=Ce((K1,Lh)=>{var Vc=Bc(),Gc=$c(),Ah={brackets:function(o){return o+"[]"},indices:function(o,d){return o+"["+d+"]"},repeat:function(o){return o}},Sl=Array.isArray,uE=Array.prototype.push,Hc=function(n,o){uE.apply(n,Sl(o)?o:[o])},dE=Date.prototype.toISOString,ar={delimiter:"&",encode:!0,encoder:Vc.encode,encodeValuesOnly:!1,serializeDate:function(o){return dE.call(o)},skipNulls:!1,strictNullHandling:!1},hE=function n(o,d,v,E,A,R,T,L,M,tt,b,H){var N=o;if(typeof T==="function")N=T(d,N);else if(N instanceof Date)N=tt(N);if(N===null){if(E)return R&&!H?R(d,ar.encoder):d;N=""}if(typeof N==="string"||typeof N==="number"||typeof N==="boolean"||Vc.isBuffer(N)){if(R){var K=H?d:R(d,ar.encoder);return[b(K)+"="+b(R(N,ar.encoder))]}return[b(d)+"="+b(String(N))]}var st=[];if(typeof N>"u")return st;var Et;if(Sl(T))Et=T;else{var q=Object.keys(N);Et=L?q.sort(L):q}for(var D=0;D<Et.length;++D){var B=Et[D];if(A&&N[B]===null)continue;if(Sl(N))Hc(st,n(N[B],v(d,B),v,E,A,R,T,L,M,tt,b,H));else Hc(st,n(N[B],d+(M?"."+B:"["+B+"]"),v,E,A,R,T,L,M,tt,b,H))}return st};Lh.exports=function(n,o){var d=n,v=o?Vc.assign({},o):{};if(v.encoder!==null&&typeof v.encoder<"u"&&typeof v.encoder!=="function")throw TypeError("Encoder has to be a function.");var E=typeof v.delimiter>"u"?ar.delimiter:v.delimiter,A=typeof v.strictNullHandling==="boolean"?v.strictNullHandling:ar.strictNullHandling,R=typeof v.skipNulls==="boolean"?v.skipNulls:ar.skipNulls,T=typeof v.encode==="boolean"?v.encode:ar.encode,L=typeof v.encoder==="function"?v.encoder:ar.encoder,M=typeof v.sort==="function"?v.sort:null,tt=typeof v.allowDots>"u"?!1:v.allowDots,b=typeof v.serializeDate==="function"?v.serializeDate:ar.serializeDate,H=typeof v.encodeValuesOnly==="boolean"?v.encodeValuesOnly:ar.encodeValuesOnly;if(typeof v.format>"u")v.format=Gc.default;else if(!Object.prototype.hasOwnProperty.call(Gc.formatters,v.format))throw TypeError("Unknown format option provided.");var N=Gc.formatters[v.format],K,st;if(typeof v.filter==="function")st=v.filter,d=st("",d);else if(Sl(v.filter))st=v.filter,K=st;var Et=[];if(typeof d!=="object"||d===null)return"";var q;if(v.arrayFormat in Ah)q=v.arrayFormat;else if("indices"in v)q=v.indices?"indices":"repeat";else q="indices";var D=Ah[q];if(!K)K=Object.keys(d);if(M)K.sort(M);for(var B=0;B<K.length;++B){var x=K[B];if(R&&d[x]===null)continue;Hc(Et,hE(d[x],x,D,A,R,T?L:null,st,M,tt,b,N,H))}var Y=Et.join(E),J=v.addQueryPrefix===!0?"?":"";return Y.length>0?J+Y:""}});var kh=Ce((W1,Rh)=>{var Ba=Bc(),Kc=Object.prototype.hasOwnProperty,Ci={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:Ba.decode,delimiter:"&",depth:5,parameterLimit:1000,plainObjects:!1,strictNullHandling:!1},fE=function(o,d){var v={},E=d.ignoreQueryPrefix?o.replace(/^\?/,""):o,A=d.parameterLimit===1/0?void 0:d.parameterLimit,R=E.split(d.delimiter,A);for(var T=0;T<R.length;++T){var L=R[T],M=L.indexOf("]="),tt=M===-1?L.indexOf("="):M+1,b,H;if(tt===-1)b=d.decoder(L,Ci.decoder),H=d.strictNullHandling?null:"";else b=d.decoder(L.slice(0,tt),Ci.decoder),H=d.decoder(L.slice(tt+1),Ci.decoder);if(Kc.call(v,b))v[b]=[].concat(v[b]).concat(H);else v[b]=H}return v},mE=function(n,o,d){var v=o;for(var E=n.length-1;E>=0;--E){var A,R=n[E];if(R==="[]"&&d.parseArrays)A=[].concat(v);else{A=d.plainObjects?Object.create(null):{};var T=R.charAt(0)==="["&&R.charAt(R.length-1)==="]"?R.slice(1,-1):R,L=parseInt(T,10);if(!d.parseArrays&&T==="")A={0:v};else if(!isNaN(L)&&R!==T&&String(L)===T&&L>=0&&(d.parseArrays&&L<=d.arrayLimit))A=[],A[L]=v;else if(T!=="__proto__")A[T]=v}v=A}return v},gE=function(o,d,v){if(!o)return;var E=v.allowDots?o.replace(/\.([^.[]+)/g,"[$1]"):o,A=/(\[[^[\]]*])/,R=/(\[[^[\]]*])/g,T=A.exec(E),L=T?E.slice(0,T.index):E,M=[];if(L){if(!v.plainObjects&&Kc.call(Object.prototype,L)){if(!v.allowPrototypes)return}M.push(L)}var tt=0;while((T=R.exec(E))!==null&&tt<v.depth){if(tt+=1,!v.plainObjects&&Kc.call(Object.prototype,T[1].slice(1,-1))){if(!v.allowPrototypes)return}M.push(T[1])}if(T)M.push("["+E.slice(T.index)+"]");return mE(M,d,v)};Rh.exports=function(n,o){var d=o?Ba.assign({},o):{};if(d.decoder!==null&&d.decoder!==void 0&&typeof d.decoder!=="function")throw TypeError("Decoder has to be a function.");if(d.ignoreQueryPrefix=d.ignoreQueryPrefix===!0,d.delimiter=typeof d.delimiter==="string"||Ba.isRegExp(d.delimiter)?d.delimiter:Ci.delimiter,d.depth=typeof d.depth==="number"?d.depth:Ci.depth,d.arrayLimit=typeof d.arrayLimit==="number"?d.arrayLimit:Ci.arrayLimit,d.parseArrays=d.parseArrays!==!1,d.decoder=typeof d.decoder==="function"?d.decoder:Ci.decoder,d.allowDots=typeof d.allowDots==="boolean"?d.allowDots:Ci.allowDots,d.plainObjects=typeof d.plainObjects==="boolean"?d.plainObjects:Ci.plainObjects,d.allowPrototypes=typeof d.allowPrototypes==="boolean"?d.allowPrototypes:Ci.allowPrototypes,d.parameterLimit=typeof d.parameterLimit==="number"?d.parameterLimit:Ci.parameterLimit,d.strictNullHandling=typeof d.strictNullHandling==="boolean"?d.strictNullHandling:Ci.strictNullHandling,n===""||n===null||typeof n>"u")return d.plainObjects?Object.create(null):{};var v=typeof n==="string"?fE(n,d):n,E=d.plainObjects?Object.create(null):{},A=Object.keys(v);for(var R=0;R<A.length;++R){var T=A[R],L=gE(T,v[T],d);E=Ba.merge(E,L,d)}return Ba.compact(E)}});var Dh=Ce((Y1,Ch)=>{var pE=wh(),vE=kh(),EE=$c();Ch.exports={formats:EE,parse:vE,stringify:pE}});var nd=document.createElement("style");nd.textContent=`.fp-spins-container {
34
34
  container-type: inline-size;
35
35
  container-name: spins-container;
36
36
  display: flex;
37
37
  position: relative;
38
38
  flex-direction: column;
39
39
  overflow-y: auto;
40
- scroll-snap-type: y mandatory;
41
40
  -webkit-overflow-scrolling: touch;
42
41
  scrollbar-width: none;
43
42
  -ms-overflow-style: none;
@@ -70,8 +69,6 @@ instance:`,$),H&&!U)return $.muted=!0,$.play()})}(f)):(f.setState(Nt,!1),!f.hasS
70
69
 
71
70
  .fp-spin {
72
71
  min-height: 100%;
73
- scroll-snap-align: start;
74
- scroll-snap-stop: always;
75
72
  max-width: 100%;
76
73
  background: #333 no-repeat center;
77
74
  background-size: cover;
@@ -192,16 +189,16 @@ instance:`,$),H&&!U)return $.muted=!0,$.play()})}(f)):(f.setState(Nt,!1),!f.hasS
192
189
  .is-spins.is-paused:not(.has-menu-opened) .fp-controls {
193
190
  transform: translateY(-2em);
194
191
  }
195
- `;document.head.prepend(Zu);var td={};uc(td,{SPIN_IN_VIEWPORT:()=>Zi,SPIN_CREATED:()=>dc});var dc="spin:created",Zi="spin:viewport";function hc(...r){let l=[].join.call(r,"/");if(l[0]!=="/")l="/"+l;return"https://ljsp.lwcdn.com/web/public/native/config"+l}function fc(r){return~r.indexOf("/")?r:"/media/"+r}var om=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,lm=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,cm=/^[A-Za-z0-9]{8}$/,um=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[A-Za-z0-9]{8}$/;function dm(r,l){if(om.test(r)||lm.test(r))return l.type="video/ovp",!0;return!1}function hm(r,l){if(cm.test(r)||um.test(r)){if(l)l.type="video/ovp";return!0}return!1}function fm(r){return typeof r==="object"&&r.type==="ovp/base64"}function ed(r,l){return dm(r,l)||hm(r,l)||fm(l)}var dt={};uc(dt,{void:()=>Jm,util:()=>ne,unknown:()=>qm,union:()=>e0,undefined:()=>Ym,tuple:()=>r0,transformer:()=>m0,symbol:()=>Wm,string:()=>ud,strictObject:()=>t0,setErrorMap:()=>pm,set:()=>o0,record:()=>s0,quotelessJson:()=>mm,promise:()=>f0,preprocess:()=>v0,pipeline:()=>E0,ostring:()=>y0,optional:()=>g0,onumber:()=>S0,oboolean:()=>b0,objectUtil:()=>mc,object:()=>Zm,number:()=>dd,nullable:()=>p0,null:()=>jm,never:()=>Xm,nativeEnum:()=>h0,nan:()=>Hm,map:()=>a0,makeIssue:()=>wa,literal:()=>u0,lazy:()=>c0,late:()=>$m,isValid:()=>Gn,isDirty:()=>Io,isAsync:()=>ls,isAborted:()=>Co,intersection:()=>n0,instanceof:()=>Gm,getParsedType:()=>tn,getErrorMap:()=>os,function:()=>l0,enum:()=>d0,effect:()=>m0,discriminatedUnion:()=>i0,defaultErrorMap:()=>Tn,datetimeRegex:()=>od,date:()=>Vm,custom:()=>cd,coerce:()=>T0,boolean:()=>hd,bigint:()=>Km,array:()=>Qm,any:()=>zm,addIssueToContext:()=>Rt,ZodVoid:()=>ka,ZodUnknown:()=>Hn,ZodUnion:()=>ms,ZodUndefined:()=>hs,ZodType:()=>ee,ZodTuple:()=>nn,ZodTransformer:()=>Ki,ZodSymbol:()=>Ra,ZodString:()=>Bi,ZodSet:()=>Sr,ZodSchema:()=>ee,ZodRecord:()=>Da,ZodReadonly:()=>bs,ZodPromise:()=>br,ZodPipeline:()=>Oa,ZodParsedType:()=>_t,ZodOptional:()=>Gi,ZodObject:()=>Se,ZodNumber:()=>Kn,ZodNullable:()=>An,ZodNull:()=>fs,ZodNever:()=>en,ZodNativeEnum:()=>Es,ZodNaN:()=>Ia,ZodMap:()=>Ca,ZodLiteral:()=>vs,ZodLazy:()=>ps,ZodIssueCode:()=>yt,ZodIntersection:()=>gs,ZodFunction:()=>us,ZodFirstPartyTypeKind:()=>Yt,ZodError:()=>li,ZodEnum:()=>Wn,ZodEffects:()=>Ki,ZodDiscriminatedUnion:()=>Oo,ZodDefault:()=>ys,ZodDate:()=>Er,ZodCatch:()=>Ss,ZodBranded:()=>Mo,ZodBoolean:()=>ds,ZodBigInt:()=>Vn,ZodArray:()=>$i,ZodAny:()=>yr,Schema:()=>ee,ParseStatus:()=>He,OK:()=>Xe,NEVER:()=>_0,INVALID:()=>Kt,EMPTY_PATH:()=>vm,DIRTY:()=>vr,BRAND:()=>Bm});var ne;(function(r){r.assertEqual=(E)=>{};function l(E){}r.assertIs=l;function d(E){throw Error()}r.assertNever=d,r.arrayToEnum=(E)=>{let A={};for(let R of E)A[R]=R;return A},r.getValidEnumValues=(E)=>{let A=r.objectKeys(E).filter((T)=>typeof E[E[T]]!=="number"),R={};for(let T of A)R[T]=E[T];return r.objectValues(R)},r.objectValues=(E)=>{return r.objectKeys(E).map(function(A){return E[A]})},r.objectKeys=typeof Object.keys==="function"?(E)=>Object.keys(E):(E)=>{let A=[];for(let R in E)if(Object.prototype.hasOwnProperty.call(E,R))A.push(R);return A},r.find=(E,A)=>{for(let R of E)if(A(R))return R;return},r.isInteger=typeof Number.isInteger==="function"?(E)=>Number.isInteger(E):(E)=>typeof E==="number"&&Number.isFinite(E)&&Math.floor(E)===E;function v(E,A=" | "){return E.map((R)=>typeof R==="string"?`'${R}'`:R).join(A)}r.joinValues=v,r.jsonStringifyReplacer=(E,A)=>{if(typeof A==="bigint")return A.toString();return A}})(ne||(ne={}));var mc;(function(r){r.mergeShapes=(l,d)=>{return{...l,...d}}})(mc||(mc={}));var _t=ne.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),tn=(r)=>{switch(typeof r){case"undefined":return _t.undefined;case"string":return _t.string;case"number":return Number.isNaN(r)?_t.nan:_t.number;case"boolean":return _t.boolean;case"function":return _t.function;case"bigint":return _t.bigint;case"symbol":return _t.symbol;case"object":if(Array.isArray(r))return _t.array;if(r===null)return _t.null;if(r.then&&typeof r.then==="function"&&r.catch&&typeof r.catch==="function")return _t.promise;if(typeof Map<"u"&&r instanceof Map)return _t.map;if(typeof Set<"u"&&r instanceof Set)return _t.set;if(typeof Date<"u"&&r instanceof Date)return _t.date;return _t.object;default:return _t.unknown}};var yt=ne.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),mm=(r)=>{return JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:")};class li extends Error{get errors(){return this.issues}constructor(r){super();this.issues=[],this.addIssue=(d)=>{this.issues=[...this.issues,d]},this.addIssues=(d=[])=>{this.issues=[...this.issues,...d]};let l=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,l);else this.__proto__=l;this.name="ZodError",this.issues=r}format(r){let l=r||function(E){return E.message},d={_errors:[]},v=(E)=>{for(let A of E.issues)if(A.code==="invalid_union")A.unionErrors.map(v);else if(A.code==="invalid_return_type")v(A.returnTypeError);else if(A.code==="invalid_arguments")v(A.argumentsError);else if(A.path.length===0)d._errors.push(l(A));else{let R=d,T=0;while(T<A.path.length){let L=A.path[T];if(T!==A.path.length-1)R[L]=R[L]||{_errors:[]};else R[L]=R[L]||{_errors:[]},R[L]._errors.push(l(A));R=R[L],T++}}};return v(this),d}static assert(r){if(!(r instanceof li))throw Error(`Not a ZodError: ${r}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,ne.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(r=(l)=>l.message){let l={},d=[];for(let v of this.issues)if(v.path.length>0){let E=v.path[0];l[E]=l[E]||[],l[E].push(r(v))}else d.push(r(v));return{formErrors:d,fieldErrors:l}}get formErrors(){return this.flatten()}}li.create=(r)=>{return new li(r)};var gm=(r,l)=>{let d;switch(r.code){case yt.invalid_type:if(r.received===_t.undefined)d="Required";else d=`Expected ${r.expected}, received ${r.received}`;break;case yt.invalid_literal:d=`Invalid literal value, expected ${JSON.stringify(r.expected,ne.jsonStringifyReplacer)}`;break;case yt.unrecognized_keys:d=`Unrecognized key(s) in object: ${ne.joinValues(r.keys,", ")}`;break;case yt.invalid_union:d="Invalid input";break;case yt.invalid_union_discriminator:d=`Invalid discriminator value. Expected ${ne.joinValues(r.options)}`;break;case yt.invalid_enum_value:d=`Invalid enum value. Expected ${ne.joinValues(r.options)}, received '${r.received}'`;break;case yt.invalid_arguments:d="Invalid function arguments";break;case yt.invalid_return_type:d="Invalid function return type";break;case yt.invalid_date:d="Invalid date";break;case yt.invalid_string:if(typeof r.validation==="object")if("includes"in r.validation){if(d=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position==="number")d=`${d} at one or more positions greater than or equal to ${r.validation.position}`}else if("startsWith"in r.validation)d=`Invalid input: must start with "${r.validation.startsWith}"`;else if("endsWith"in r.validation)d=`Invalid input: must end with "${r.validation.endsWith}"`;else ne.assertNever(r.validation);else if(r.validation!=="regex")d=`Invalid ${r.validation}`;else d="Invalid";break;case yt.too_small:if(r.type==="array")d=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`;else if(r.type==="string")d=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`;else if(r.type==="number")d=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`;else if(r.type==="bigint")d=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`;else if(r.type==="date")d=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`;else d="Invalid input";break;case yt.too_big:if(r.type==="array")d=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`;else if(r.type==="string")d=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`;else if(r.type==="number")d=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`;else if(r.type==="bigint")d=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`;else if(r.type==="date")d=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`;else d="Invalid input";break;case yt.custom:d="Invalid input";break;case yt.invalid_intersection_types:d="Intersection results could not be merged";break;case yt.not_multiple_of:d=`Number must be a multiple of ${r.multipleOf}`;break;case yt.not_finite:d="Number must be finite";break;default:d=l.defaultError,ne.assertNever(r)}return{message:d}},Tn=gm;var id=Tn;function pm(r){id=r}function os(){return id}var wa=(r)=>{let{data:l,path:d,errorMaps:v,issueData:E}=r,A=[...d,...E.path||[]],R={...E,path:A};if(E.message!==void 0)return{...E,path:A,message:E.message};let T="",L=v.filter((O)=>!!O).slice().reverse();for(let O of L)T=O(R,{data:l,defaultError:T}).message;return{...E,path:A,message:T}},vm=[];function Rt(r,l){let d=os(),v=wa({issueData:l,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,d,d===Tn?void 0:Tn].filter((E)=>!!E)});r.common.issues.push(v)}class He{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(r,l){let d=[];for(let v of l){if(v.status==="aborted")return Kt;if(v.status==="dirty")r.dirty();d.push(v.value)}return{status:r.value,value:d}}static async mergeObjectAsync(r,l){let d=[];for(let v of l){let E=await v.key,A=await v.value;d.push({key:E,value:A})}return He.mergeObjectSync(r,d)}static mergeObjectSync(r,l){let d={};for(let v of l){let{key:E,value:A}=v;if(E.status==="aborted")return Kt;if(A.status==="aborted")return Kt;if(E.status==="dirty")r.dirty();if(A.status==="dirty")r.dirty();if(E.value!=="__proto__"&&(typeof A.value<"u"||v.alwaysSet))d[E.value]=A.value}return{status:r.value,value:d}}}var Kt=Object.freeze({status:"aborted"}),vr=(r)=>({status:"dirty",value:r}),Xe=(r)=>({status:"valid",value:r}),Co=(r)=>r.status==="aborted",Io=(r)=>r.status==="dirty",Gn=(r)=>r.status==="valid",ls=(r)=>typeof Promise<"u"&&r instanceof Promise;var Ut;(function(r){r.errToObj=(l)=>typeof l==="string"?{message:l}:l||{},r.toString=(l)=>typeof l==="string"?l:l?.message})(Ut||(Ut={}));class Hi{constructor(r,l,d,v){this._cachedPath=[],this.parent=r,this.data=l,this._path=d,this._key=v}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var nd=(r,l)=>{if(Gn(l))return{success:!0,data:l.value};else{if(!r.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let d=new li(r.common.issues);return this._error=d,this._error}}}};function Qt(r){if(!r)return{};let{errorMap:l,invalid_type_error:d,required_error:v,description:E}=r;if(l&&(d||v))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(l)return{errorMap:l,description:E};return{errorMap:(R,T)=>{let{message:L}=r;if(R.code==="invalid_enum_value")return{message:L??T.defaultError};if(typeof T.data>"u")return{message:L??v??T.defaultError};if(R.code!=="invalid_type")return{message:T.defaultError};return{message:L??d??T.defaultError}},description:E}}class ee{get description(){return this._def.description}_getType(r){return tn(r.data)}_getOrReturnCtx(r,l){return l||{common:r.parent.common,data:r.data,parsedType:tn(r.data),schemaErrorMap:this._def.errorMap,path:r.path,parent:r.parent}}_processInputParams(r){return{status:new He,ctx:{common:r.parent.common,data:r.data,parsedType:tn(r.data),schemaErrorMap:this._def.errorMap,path:r.path,parent:r.parent}}}_parseSync(r){let l=this._parse(r);if(ls(l))throw Error("Synchronous parse encountered promise.");return l}_parseAsync(r){let l=this._parse(r);return Promise.resolve(l)}parse(r,l){let d=this.safeParse(r,l);if(d.success)return d.data;throw d.error}safeParse(r,l){let d={common:{issues:[],async:l?.async??!1,contextualErrorMap:l?.errorMap},path:l?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:tn(r)},v=this._parseSync({data:r,path:d.path,parent:d});return nd(d,v)}"~validate"(r){let l={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:tn(r)};if(!this["~standard"].async)try{let d=this._parseSync({data:r,path:[],parent:l});return Gn(d)?{value:d.value}:{issues:l.common.issues}}catch(d){if(d?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;l.common={issues:[],async:!0}}return this._parseAsync({data:r,path:[],parent:l}).then((d)=>Gn(d)?{value:d.value}:{issues:l.common.issues})}async parseAsync(r,l){let d=await this.safeParseAsync(r,l);if(d.success)return d.data;throw d.error}async safeParseAsync(r,l){let d={common:{issues:[],contextualErrorMap:l?.errorMap,async:!0},path:l?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:r,parsedType:tn(r)},v=this._parse({data:r,path:d.path,parent:d}),E=await(ls(v)?v:Promise.resolve(v));return nd(d,E)}refine(r,l){let d=(v)=>{if(typeof l==="string"||typeof l>"u")return{message:l};else if(typeof l==="function")return l(v);else return l};return this._refinement((v,E)=>{let A=r(v),R=()=>E.addIssue({code:yt.custom,...d(v)});if(typeof Promise<"u"&&A instanceof Promise)return A.then((T)=>{if(!T)return R(),!1;else return!0});if(!A)return R(),!1;else return!0})}refinement(r,l){return this._refinement((d,v)=>{if(!r(d))return v.addIssue(typeof l==="function"?l(d,v):l),!1;else return!0})}_refinement(r){return new Ki({schema:this,typeName:Yt.ZodEffects,effect:{type:"refinement",refinement:r}})}superRefine(r){return this._refinement(r)}constructor(r){this.spa=this.safeParseAsync,this._def=r,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(l)=>this["~validate"](l)}}optional(){return Gi.create(this,this._def)}nullable(){return An.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return $i.create(this)}promise(){return br.create(this,this._def)}or(r){return ms.create([this,r],this._def)}and(r){return gs.create(this,r,this._def)}transform(r){return new Ki({...Qt(this._def),schema:this,typeName:Yt.ZodEffects,effect:{type:"transform",transform:r}})}default(r){let l=typeof r==="function"?r:()=>r;return new ys({...Qt(this._def),innerType:this,defaultValue:l,typeName:Yt.ZodDefault})}brand(){return new Mo({typeName:Yt.ZodBranded,type:this,...Qt(this._def)})}catch(r){let l=typeof r==="function"?r:()=>r;return new Ss({...Qt(this._def),innerType:this,catchValue:l,typeName:Yt.ZodCatch})}describe(r){return new this.constructor({...this._def,description:r})}pipe(r){return Oa.create(this,r)}readonly(){return bs.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var Em=/^c[^\s-]{8,}$/i,ym=/^[0-9a-z]+$/,Sm=/^[0-9A-HJKMNP-TV-Z]{26}$/i,bm=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Tm=/^[a-z0-9_-]{21}$/i,_m=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Am=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Lm=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,wm="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",gc,Rm=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,km=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Dm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Cm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Im=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Om=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,sd="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Mm=new RegExp(`^${sd}$`);function ad(r){let l="[0-5]\\d";if(r.precision)l=`${l}\\.\\d{${r.precision}}`;else if(r.precision==null)l=`${l}(\\.\\d+)?`;let d=r.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${l})${d}`}function Nm(r){return new RegExp(`^${ad(r)}$`)}function od(r){let l=`${sd}T${ad(r)}`,d=[];if(d.push(r.local?"Z?":"Z"),r.offset)d.push("([+-]\\d{2}:?\\d{2})");return l=`${l}(${d.join("|")})`,new RegExp(`^${l}$`)}function Fm(r,l){if((l==="v4"||!l)&&Rm.test(r))return!0;if((l==="v6"||!l)&&Dm.test(r))return!0;return!1}function Pm(r,l){if(!_m.test(r))return!1;try{let[d]=r.split(".");if(!d)return!1;let v=d.replace(/-/g,"+").replace(/_/g,"/").padEnd(d.length+(4-d.length%4)%4,"="),E=JSON.parse(atob(v));if(typeof E!=="object"||E===null)return!1;if("typ"in E&&E?.typ!=="JWT")return!1;if(!E.alg)return!1;if(l&&E.alg!==l)return!1;return!0}catch{return!1}}function xm(r,l){if((l==="v4"||!l)&&km.test(r))return!0;if((l==="v6"||!l)&&Cm.test(r))return!0;return!1}class Bi extends ee{_parse(r){if(this._def.coerce)r.data=String(r.data);if(this._getType(r)!==_t.string){let E=this._getOrReturnCtx(r);return Rt(E,{code:yt.invalid_type,expected:_t.string,received:E.parsedType}),Kt}let d=new He,v=void 0;for(let E of this._def.checks)if(E.kind==="min"){if(r.data.length<E.value)v=this._getOrReturnCtx(r,v),Rt(v,{code:yt.too_small,minimum:E.value,type:"string",inclusive:!0,exact:!1,message:E.message}),d.dirty()}else if(E.kind==="max"){if(r.data.length>E.value)v=this._getOrReturnCtx(r,v),Rt(v,{code:yt.too_big,maximum:E.value,type:"string",inclusive:!0,exact:!1,message:E.message}),d.dirty()}else if(E.kind==="length"){let A=r.data.length>E.value,R=r.data.length<E.value;if(A||R){if(v=this._getOrReturnCtx(r,v),A)Rt(v,{code:yt.too_big,maximum:E.value,type:"string",inclusive:!0,exact:!0,message:E.message});else if(R)Rt(v,{code:yt.too_small,minimum:E.value,type:"string",inclusive:!0,exact:!0,message:E.message});d.dirty()}}else if(E.kind==="email"){if(!Lm.test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"email",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="emoji"){if(!gc)gc=new RegExp(wm,"u");if(!gc.test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"emoji",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="uuid"){if(!bm.test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"uuid",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="nanoid"){if(!Tm.test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"nanoid",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="cuid"){if(!Em.test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"cuid",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="cuid2"){if(!ym.test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"cuid2",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="ulid"){if(!Sm.test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"ulid",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="url")try{new URL(r.data)}catch{v=this._getOrReturnCtx(r,v),Rt(v,{validation:"url",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="regex"){if(E.regex.lastIndex=0,!E.regex.test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"regex",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="trim")r.data=r.data.trim();else if(E.kind==="includes"){if(!r.data.includes(E.value,E.position))v=this._getOrReturnCtx(r,v),Rt(v,{code:yt.invalid_string,validation:{includes:E.value,position:E.position},message:E.message}),d.dirty()}else if(E.kind==="toLowerCase")r.data=r.data.toLowerCase();else if(E.kind==="toUpperCase")r.data=r.data.toUpperCase();else if(E.kind==="startsWith"){if(!r.data.startsWith(E.value))v=this._getOrReturnCtx(r,v),Rt(v,{code:yt.invalid_string,validation:{startsWith:E.value},message:E.message}),d.dirty()}else if(E.kind==="endsWith"){if(!r.data.endsWith(E.value))v=this._getOrReturnCtx(r,v),Rt(v,{code:yt.invalid_string,validation:{endsWith:E.value},message:E.message}),d.dirty()}else if(E.kind==="datetime"){if(!od(E).test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{code:yt.invalid_string,validation:"datetime",message:E.message}),d.dirty()}else if(E.kind==="date"){if(!Mm.test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{code:yt.invalid_string,validation:"date",message:E.message}),d.dirty()}else if(E.kind==="time"){if(!Nm(E).test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{code:yt.invalid_string,validation:"time",message:E.message}),d.dirty()}else if(E.kind==="duration"){if(!Am.test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"duration",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="ip"){if(!Fm(r.data,E.version))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"ip",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="jwt"){if(!Pm(r.data,E.alg))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"jwt",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="cidr"){if(!xm(r.data,E.version))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"cidr",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="base64"){if(!Im.test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"base64",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="base64url"){if(!Om.test(r.data))v=this._getOrReturnCtx(r,v),Rt(v,{validation:"base64url",code:yt.invalid_string,message:E.message}),d.dirty()}else ne.assertNever(E);return{status:d.value,value:r.data}}_regex(r,l,d){return this.refinement((v)=>r.test(v),{validation:l,code:yt.invalid_string,...Ut.errToObj(d)})}_addCheck(r){return new Bi({...this._def,checks:[...this._def.checks,r]})}email(r){return this._addCheck({kind:"email",...Ut.errToObj(r)})}url(r){return this._addCheck({kind:"url",...Ut.errToObj(r)})}emoji(r){return this._addCheck({kind:"emoji",...Ut.errToObj(r)})}uuid(r){return this._addCheck({kind:"uuid",...Ut.errToObj(r)})}nanoid(r){return this._addCheck({kind:"nanoid",...Ut.errToObj(r)})}cuid(r){return this._addCheck({kind:"cuid",...Ut.errToObj(r)})}cuid2(r){return this._addCheck({kind:"cuid2",...Ut.errToObj(r)})}ulid(r){return this._addCheck({kind:"ulid",...Ut.errToObj(r)})}base64(r){return this._addCheck({kind:"base64",...Ut.errToObj(r)})}base64url(r){return this._addCheck({kind:"base64url",...Ut.errToObj(r)})}jwt(r){return this._addCheck({kind:"jwt",...Ut.errToObj(r)})}ip(r){return this._addCheck({kind:"ip",...Ut.errToObj(r)})}cidr(r){return this._addCheck({kind:"cidr",...Ut.errToObj(r)})}datetime(r){if(typeof r==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:r});return this._addCheck({kind:"datetime",precision:typeof r?.precision>"u"?null:r?.precision,offset:r?.offset??!1,local:r?.local??!1,...Ut.errToObj(r?.message)})}date(r){return this._addCheck({kind:"date",message:r})}time(r){if(typeof r==="string")return this._addCheck({kind:"time",precision:null,message:r});return this._addCheck({kind:"time",precision:typeof r?.precision>"u"?null:r?.precision,...Ut.errToObj(r?.message)})}duration(r){return this._addCheck({kind:"duration",...Ut.errToObj(r)})}regex(r,l){return this._addCheck({kind:"regex",regex:r,...Ut.errToObj(l)})}includes(r,l){return this._addCheck({kind:"includes",value:r,position:l?.position,...Ut.errToObj(l?.message)})}startsWith(r,l){return this._addCheck({kind:"startsWith",value:r,...Ut.errToObj(l)})}endsWith(r,l){return this._addCheck({kind:"endsWith",value:r,...Ut.errToObj(l)})}min(r,l){return this._addCheck({kind:"min",value:r,...Ut.errToObj(l)})}max(r,l){return this._addCheck({kind:"max",value:r,...Ut.errToObj(l)})}length(r,l){return this._addCheck({kind:"length",value:r,...Ut.errToObj(l)})}nonempty(r){return this.min(1,Ut.errToObj(r))}trim(){return new Bi({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new Bi({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new Bi({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((r)=>r.kind==="datetime")}get isDate(){return!!this._def.checks.find((r)=>r.kind==="date")}get isTime(){return!!this._def.checks.find((r)=>r.kind==="time")}get isDuration(){return!!this._def.checks.find((r)=>r.kind==="duration")}get isEmail(){return!!this._def.checks.find((r)=>r.kind==="email")}get isURL(){return!!this._def.checks.find((r)=>r.kind==="url")}get isEmoji(){return!!this._def.checks.find((r)=>r.kind==="emoji")}get isUUID(){return!!this._def.checks.find((r)=>r.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((r)=>r.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((r)=>r.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((r)=>r.kind==="cuid2")}get isULID(){return!!this._def.checks.find((r)=>r.kind==="ulid")}get isIP(){return!!this._def.checks.find((r)=>r.kind==="ip")}get isCIDR(){return!!this._def.checks.find((r)=>r.kind==="cidr")}get isBase64(){return!!this._def.checks.find((r)=>r.kind==="base64")}get isBase64url(){return!!this._def.checks.find((r)=>r.kind==="base64url")}get minLength(){let r=null;for(let l of this._def.checks)if(l.kind==="min"){if(r===null||l.value>r)r=l.value}return r}get maxLength(){let r=null;for(let l of this._def.checks)if(l.kind==="max"){if(r===null||l.value<r)r=l.value}return r}}Bi.create=(r)=>{return new Bi({checks:[],typeName:Yt.ZodString,coerce:r?.coerce??!1,...Qt(r)})};function Um(r,l){let d=(r.toString().split(".")[1]||"").length,v=(l.toString().split(".")[1]||"").length,E=d>v?d:v,A=Number.parseInt(r.toFixed(E).replace(".","")),R=Number.parseInt(l.toFixed(E).replace(".",""));return A%R/10**E}class Kn extends ee{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(r){if(this._def.coerce)r.data=Number(r.data);if(this._getType(r)!==_t.number){let E=this._getOrReturnCtx(r);return Rt(E,{code:yt.invalid_type,expected:_t.number,received:E.parsedType}),Kt}let d=void 0,v=new He;for(let E of this._def.checks)if(E.kind==="int"){if(!ne.isInteger(r.data))d=this._getOrReturnCtx(r,d),Rt(d,{code:yt.invalid_type,expected:"integer",received:"float",message:E.message}),v.dirty()}else if(E.kind==="min"){if(E.inclusive?r.data<E.value:r.data<=E.value)d=this._getOrReturnCtx(r,d),Rt(d,{code:yt.too_small,minimum:E.value,type:"number",inclusive:E.inclusive,exact:!1,message:E.message}),v.dirty()}else if(E.kind==="max"){if(E.inclusive?r.data>E.value:r.data>=E.value)d=this._getOrReturnCtx(r,d),Rt(d,{code:yt.too_big,maximum:E.value,type:"number",inclusive:E.inclusive,exact:!1,message:E.message}),v.dirty()}else if(E.kind==="multipleOf"){if(Um(r.data,E.value)!==0)d=this._getOrReturnCtx(r,d),Rt(d,{code:yt.not_multiple_of,multipleOf:E.value,message:E.message}),v.dirty()}else if(E.kind==="finite"){if(!Number.isFinite(r.data))d=this._getOrReturnCtx(r,d),Rt(d,{code:yt.not_finite,message:E.message}),v.dirty()}else ne.assertNever(E);return{status:v.value,value:r.data}}gte(r,l){return this.setLimit("min",r,!0,Ut.toString(l))}gt(r,l){return this.setLimit("min",r,!1,Ut.toString(l))}lte(r,l){return this.setLimit("max",r,!0,Ut.toString(l))}lt(r,l){return this.setLimit("max",r,!1,Ut.toString(l))}setLimit(r,l,d,v){return new Kn({...this._def,checks:[...this._def.checks,{kind:r,value:l,inclusive:d,message:Ut.toString(v)}]})}_addCheck(r){return new Kn({...this._def,checks:[...this._def.checks,r]})}int(r){return this._addCheck({kind:"int",message:Ut.toString(r)})}positive(r){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ut.toString(r)})}negative(r){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ut.toString(r)})}nonpositive(r){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ut.toString(r)})}nonnegative(r){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ut.toString(r)})}multipleOf(r,l){return this._addCheck({kind:"multipleOf",value:r,message:Ut.toString(l)})}finite(r){return this._addCheck({kind:"finite",message:Ut.toString(r)})}safe(r){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ut.toString(r)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ut.toString(r)})}get minValue(){let r=null;for(let l of this._def.checks)if(l.kind==="min"){if(r===null||l.value>r)r=l.value}return r}get maxValue(){let r=null;for(let l of this._def.checks)if(l.kind==="max"){if(r===null||l.value<r)r=l.value}return r}get isInt(){return!!this._def.checks.find((r)=>r.kind==="int"||r.kind==="multipleOf"&&ne.isInteger(r.value))}get isFinite(){let r=null,l=null;for(let d of this._def.checks)if(d.kind==="finite"||d.kind==="int"||d.kind==="multipleOf")return!0;else if(d.kind==="min"){if(l===null||d.value>l)l=d.value}else if(d.kind==="max"){if(r===null||d.value<r)r=d.value}return Number.isFinite(l)&&Number.isFinite(r)}}Kn.create=(r)=>{return new Kn({checks:[],typeName:Yt.ZodNumber,coerce:r?.coerce||!1,...Qt(r)})};class Vn extends ee{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(r){if(this._def.coerce)try{r.data=BigInt(r.data)}catch{return this._getInvalidInput(r)}if(this._getType(r)!==_t.bigint)return this._getInvalidInput(r);let d=void 0,v=new He;for(let E of this._def.checks)if(E.kind==="min"){if(E.inclusive?r.data<E.value:r.data<=E.value)d=this._getOrReturnCtx(r,d),Rt(d,{code:yt.too_small,type:"bigint",minimum:E.value,inclusive:E.inclusive,message:E.message}),v.dirty()}else if(E.kind==="max"){if(E.inclusive?r.data>E.value:r.data>=E.value)d=this._getOrReturnCtx(r,d),Rt(d,{code:yt.too_big,type:"bigint",maximum:E.value,inclusive:E.inclusive,message:E.message}),v.dirty()}else if(E.kind==="multipleOf"){if(r.data%E.value!==BigInt(0))d=this._getOrReturnCtx(r,d),Rt(d,{code:yt.not_multiple_of,multipleOf:E.value,message:E.message}),v.dirty()}else ne.assertNever(E);return{status:v.value,value:r.data}}_getInvalidInput(r){let l=this._getOrReturnCtx(r);return Rt(l,{code:yt.invalid_type,expected:_t.bigint,received:l.parsedType}),Kt}gte(r,l){return this.setLimit("min",r,!0,Ut.toString(l))}gt(r,l){return this.setLimit("min",r,!1,Ut.toString(l))}lte(r,l){return this.setLimit("max",r,!0,Ut.toString(l))}lt(r,l){return this.setLimit("max",r,!1,Ut.toString(l))}setLimit(r,l,d,v){return new Vn({...this._def,checks:[...this._def.checks,{kind:r,value:l,inclusive:d,message:Ut.toString(v)}]})}_addCheck(r){return new Vn({...this._def,checks:[...this._def.checks,r]})}positive(r){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ut.toString(r)})}negative(r){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ut.toString(r)})}nonpositive(r){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ut.toString(r)})}nonnegative(r){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ut.toString(r)})}multipleOf(r,l){return this._addCheck({kind:"multipleOf",value:r,message:Ut.toString(l)})}get minValue(){let r=null;for(let l of this._def.checks)if(l.kind==="min"){if(r===null||l.value>r)r=l.value}return r}get maxValue(){let r=null;for(let l of this._def.checks)if(l.kind==="max"){if(r===null||l.value<r)r=l.value}return r}}Vn.create=(r)=>{return new Vn({checks:[],typeName:Yt.ZodBigInt,coerce:r?.coerce??!1,...Qt(r)})};class ds extends ee{_parse(r){if(this._def.coerce)r.data=Boolean(r.data);if(this._getType(r)!==_t.boolean){let d=this._getOrReturnCtx(r);return Rt(d,{code:yt.invalid_type,expected:_t.boolean,received:d.parsedType}),Kt}return Xe(r.data)}}ds.create=(r)=>{return new ds({typeName:Yt.ZodBoolean,coerce:r?.coerce||!1,...Qt(r)})};class Er extends ee{_parse(r){if(this._def.coerce)r.data=new Date(r.data);if(this._getType(r)!==_t.date){let E=this._getOrReturnCtx(r);return Rt(E,{code:yt.invalid_type,expected:_t.date,received:E.parsedType}),Kt}if(Number.isNaN(r.data.getTime())){let E=this._getOrReturnCtx(r);return Rt(E,{code:yt.invalid_date}),Kt}let d=new He,v=void 0;for(let E of this._def.checks)if(E.kind==="min"){if(r.data.getTime()<E.value)v=this._getOrReturnCtx(r,v),Rt(v,{code:yt.too_small,message:E.message,inclusive:!0,exact:!1,minimum:E.value,type:"date"}),d.dirty()}else if(E.kind==="max"){if(r.data.getTime()>E.value)v=this._getOrReturnCtx(r,v),Rt(v,{code:yt.too_big,message:E.message,inclusive:!0,exact:!1,maximum:E.value,type:"date"}),d.dirty()}else ne.assertNever(E);return{status:d.value,value:new Date(r.data.getTime())}}_addCheck(r){return new Er({...this._def,checks:[...this._def.checks,r]})}min(r,l){return this._addCheck({kind:"min",value:r.getTime(),message:Ut.toString(l)})}max(r,l){return this._addCheck({kind:"max",value:r.getTime(),message:Ut.toString(l)})}get minDate(){let r=null;for(let l of this._def.checks)if(l.kind==="min"){if(r===null||l.value>r)r=l.value}return r!=null?new Date(r):null}get maxDate(){let r=null;for(let l of this._def.checks)if(l.kind==="max"){if(r===null||l.value<r)r=l.value}return r!=null?new Date(r):null}}Er.create=(r)=>{return new Er({checks:[],coerce:r?.coerce||!1,typeName:Yt.ZodDate,...Qt(r)})};class Ra extends ee{_parse(r){if(this._getType(r)!==_t.symbol){let d=this._getOrReturnCtx(r);return Rt(d,{code:yt.invalid_type,expected:_t.symbol,received:d.parsedType}),Kt}return Xe(r.data)}}Ra.create=(r)=>{return new Ra({typeName:Yt.ZodSymbol,...Qt(r)})};class hs extends ee{_parse(r){if(this._getType(r)!==_t.undefined){let d=this._getOrReturnCtx(r);return Rt(d,{code:yt.invalid_type,expected:_t.undefined,received:d.parsedType}),Kt}return Xe(r.data)}}hs.create=(r)=>{return new hs({typeName:Yt.ZodUndefined,...Qt(r)})};class fs extends ee{_parse(r){if(this._getType(r)!==_t.null){let d=this._getOrReturnCtx(r);return Rt(d,{code:yt.invalid_type,expected:_t.null,received:d.parsedType}),Kt}return Xe(r.data)}}fs.create=(r)=>{return new fs({typeName:Yt.ZodNull,...Qt(r)})};class yr extends ee{constructor(){super(...arguments);this._any=!0}_parse(r){return Xe(r.data)}}yr.create=(r)=>{return new yr({typeName:Yt.ZodAny,...Qt(r)})};class Hn extends ee{constructor(){super(...arguments);this._unknown=!0}_parse(r){return Xe(r.data)}}Hn.create=(r)=>{return new Hn({typeName:Yt.ZodUnknown,...Qt(r)})};class en extends ee{_parse(r){let l=this._getOrReturnCtx(r);return Rt(l,{code:yt.invalid_type,expected:_t.never,received:l.parsedType}),Kt}}en.create=(r)=>{return new en({typeName:Yt.ZodNever,...Qt(r)})};class ka extends ee{_parse(r){if(this._getType(r)!==_t.undefined){let d=this._getOrReturnCtx(r);return Rt(d,{code:yt.invalid_type,expected:_t.void,received:d.parsedType}),Kt}return Xe(r.data)}}ka.create=(r)=>{return new ka({typeName:Yt.ZodVoid,...Qt(r)})};class $i extends ee{_parse(r){let{ctx:l,status:d}=this._processInputParams(r),v=this._def;if(l.parsedType!==_t.array)return Rt(l,{code:yt.invalid_type,expected:_t.array,received:l.parsedType}),Kt;if(v.exactLength!==null){let A=l.data.length>v.exactLength.value,R=l.data.length<v.exactLength.value;if(A||R)Rt(l,{code:A?yt.too_big:yt.too_small,minimum:R?v.exactLength.value:void 0,maximum:A?v.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:v.exactLength.message}),d.dirty()}if(v.minLength!==null){if(l.data.length<v.minLength.value)Rt(l,{code:yt.too_small,minimum:v.minLength.value,type:"array",inclusive:!0,exact:!1,message:v.minLength.message}),d.dirty()}if(v.maxLength!==null){if(l.data.length>v.maxLength.value)Rt(l,{code:yt.too_big,maximum:v.maxLength.value,type:"array",inclusive:!0,exact:!1,message:v.maxLength.message}),d.dirty()}if(l.common.async)return Promise.all([...l.data].map((A,R)=>{return v.type._parseAsync(new Hi(l,A,l.path,R))})).then((A)=>{return He.mergeArray(d,A)});let E=[...l.data].map((A,R)=>{return v.type._parseSync(new Hi(l,A,l.path,R))});return He.mergeArray(d,E)}get element(){return this._def.type}min(r,l){return new $i({...this._def,minLength:{value:r,message:Ut.toString(l)}})}max(r,l){return new $i({...this._def,maxLength:{value:r,message:Ut.toString(l)}})}length(r,l){return new $i({...this._def,exactLength:{value:r,message:Ut.toString(l)}})}nonempty(r){return this.min(1,r)}}$i.create=(r,l)=>{return new $i({type:r,minLength:null,maxLength:null,exactLength:null,typeName:Yt.ZodArray,...Qt(l)})};function cs(r){if(r instanceof Se){let l={};for(let d in r.shape){let v=r.shape[d];l[d]=Gi.create(cs(v))}return new Se({...r._def,shape:()=>l})}else if(r instanceof $i)return new $i({...r._def,type:cs(r.element)});else if(r instanceof Gi)return Gi.create(cs(r.unwrap()));else if(r instanceof An)return An.create(cs(r.unwrap()));else if(r instanceof nn)return nn.create(r.items.map((l)=>cs(l)));else return r}class Se extends ee{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let r=this._def.shape(),l=ne.objectKeys(r);return this._cached={shape:r,keys:l},this._cached}_parse(r){if(this._getType(r)!==_t.object){let L=this._getOrReturnCtx(r);return Rt(L,{code:yt.invalid_type,expected:_t.object,received:L.parsedType}),Kt}let{status:d,ctx:v}=this._processInputParams(r),{shape:E,keys:A}=this._getCached(),R=[];if(!(this._def.catchall instanceof en&&this._def.unknownKeys==="strip")){for(let L in v.data)if(!A.includes(L))R.push(L)}let T=[];for(let L of A){let O=E[L],X=v.data[L];T.push({key:{status:"valid",value:L},value:O._parse(new Hi(v,X,v.path,L)),alwaysSet:L in v.data})}if(this._def.catchall instanceof en){let L=this._def.unknownKeys;if(L==="passthrough")for(let O of R)T.push({key:{status:"valid",value:O},value:{status:"valid",value:v.data[O]}});else if(L==="strict"){if(R.length>0)Rt(v,{code:yt.unrecognized_keys,keys:R}),d.dirty()}else if(L==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let L=this._def.catchall;for(let O of R){let X=v.data[O];T.push({key:{status:"valid",value:O},value:L._parse(new Hi(v,X,v.path,O)),alwaysSet:O in v.data})}}if(v.common.async)return Promise.resolve().then(async()=>{let L=[];for(let O of T){let X=await O.key,b=await O.value;L.push({key:X,value:b,alwaysSet:O.alwaysSet})}return L}).then((L)=>{return He.mergeObjectSync(d,L)});else return He.mergeObjectSync(d,T)}get shape(){return this._def.shape()}strict(r){return Ut.errToObj,new Se({...this._def,unknownKeys:"strict",...r!==void 0?{errorMap:(l,d)=>{let v=this._def.errorMap?.(l,d).message??d.defaultError;if(l.code==="unrecognized_keys")return{message:Ut.errToObj(r).message??v};return{message:v}}}:{}})}strip(){return new Se({...this._def,unknownKeys:"strip"})}passthrough(){return new Se({...this._def,unknownKeys:"passthrough"})}extend(r){return new Se({...this._def,shape:()=>({...this._def.shape(),...r})})}merge(r){return new Se({unknownKeys:r._def.unknownKeys,catchall:r._def.catchall,shape:()=>({...this._def.shape(),...r._def.shape()}),typeName:Yt.ZodObject})}setKey(r,l){return this.augment({[r]:l})}catchall(r){return new Se({...this._def,catchall:r})}pick(r){let l={};for(let d of ne.objectKeys(r))if(r[d]&&this.shape[d])l[d]=this.shape[d];return new Se({...this._def,shape:()=>l})}omit(r){let l={};for(let d of ne.objectKeys(this.shape))if(!r[d])l[d]=this.shape[d];return new Se({...this._def,shape:()=>l})}deepPartial(){return cs(this)}partial(r){let l={};for(let d of ne.objectKeys(this.shape)){let v=this.shape[d];if(r&&!r[d])l[d]=v;else l[d]=v.optional()}return new Se({...this._def,shape:()=>l})}required(r){let l={};for(let d of ne.objectKeys(this.shape))if(r&&!r[d])l[d]=this.shape[d];else{let E=this.shape[d];while(E instanceof Gi)E=E._def.innerType;l[d]=E}return new Se({...this._def,shape:()=>l})}keyof(){return ld(ne.objectKeys(this.shape))}}Se.create=(r,l)=>{return new Se({shape:()=>r,unknownKeys:"strip",catchall:en.create(),typeName:Yt.ZodObject,...Qt(l)})};Se.strictCreate=(r,l)=>{return new Se({shape:()=>r,unknownKeys:"strict",catchall:en.create(),typeName:Yt.ZodObject,...Qt(l)})};Se.lazycreate=(r,l)=>{return new Se({shape:r,unknownKeys:"strip",catchall:en.create(),typeName:Yt.ZodObject,...Qt(l)})};class ms extends ee{_parse(r){let{ctx:l}=this._processInputParams(r),d=this._def.options;function v(E){for(let R of E)if(R.result.status==="valid")return R.result;for(let R of E)if(R.result.status==="dirty")return l.common.issues.push(...R.ctx.common.issues),R.result;let A=E.map((R)=>new li(R.ctx.common.issues));return Rt(l,{code:yt.invalid_union,unionErrors:A}),Kt}if(l.common.async)return Promise.all(d.map(async(E)=>{let A={...l,common:{...l.common,issues:[]},parent:null};return{result:await E._parseAsync({data:l.data,path:l.path,parent:A}),ctx:A}})).then(v);else{let E=void 0,A=[];for(let T of d){let L={...l,common:{...l.common,issues:[]},parent:null},O=T._parseSync({data:l.data,path:l.path,parent:L});if(O.status==="valid")return O;else if(O.status==="dirty"&&!E)E={result:O,ctx:L};if(L.common.issues.length)A.push(L.common.issues)}if(E)return l.common.issues.push(...E.ctx.common.issues),E.result;let R=A.map((T)=>new li(T));return Rt(l,{code:yt.invalid_union,unionErrors:R}),Kt}}get options(){return this._def.options}}ms.create=(r,l)=>{return new ms({options:r,typeName:Yt.ZodUnion,...Qt(l)})};var _n=(r)=>{if(r instanceof ps)return _n(r.schema);else if(r instanceof Ki)return _n(r.innerType());else if(r instanceof vs)return[r.value];else if(r instanceof Wn)return r.options;else if(r instanceof Es)return ne.objectValues(r.enum);else if(r instanceof ys)return _n(r._def.innerType);else if(r instanceof hs)return[void 0];else if(r instanceof fs)return[null];else if(r instanceof Gi)return[void 0,..._n(r.unwrap())];else if(r instanceof An)return[null,..._n(r.unwrap())];else if(r instanceof Mo)return _n(r.unwrap());else if(r instanceof bs)return _n(r.unwrap());else if(r instanceof Ss)return _n(r._def.innerType);else return[]};class Oo extends ee{_parse(r){let{ctx:l}=this._processInputParams(r);if(l.parsedType!==_t.object)return Rt(l,{code:yt.invalid_type,expected:_t.object,received:l.parsedType}),Kt;let d=this.discriminator,v=l.data[d],E=this.optionsMap.get(v);if(!E)return Rt(l,{code:yt.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[d]}),Kt;if(l.common.async)return E._parseAsync({data:l.data,path:l.path,parent:l});else return E._parseSync({data:l.data,path:l.path,parent:l})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(r,l,d){let v=new Map;for(let E of l){let A=_n(E.shape[r]);if(!A.length)throw Error(`A discriminator value for key \`${r}\` could not be extracted from all schema options`);for(let R of A){if(v.has(R))throw Error(`Discriminator property ${String(r)} has duplicate value ${String(R)}`);v.set(R,E)}}return new Oo({typeName:Yt.ZodDiscriminatedUnion,discriminator:r,options:l,optionsMap:v,...Qt(d)})}}function pc(r,l){let d=tn(r),v=tn(l);if(r===l)return{valid:!0,data:r};else if(d===_t.object&&v===_t.object){let E=ne.objectKeys(l),A=ne.objectKeys(r).filter((T)=>E.indexOf(T)!==-1),R={...r,...l};for(let T of A){let L=pc(r[T],l[T]);if(!L.valid)return{valid:!1};R[T]=L.data}return{valid:!0,data:R}}else if(d===_t.array&&v===_t.array){if(r.length!==l.length)return{valid:!1};let E=[];for(let A=0;A<r.length;A++){let R=r[A],T=l[A],L=pc(R,T);if(!L.valid)return{valid:!1};E.push(L.data)}return{valid:!0,data:E}}else if(d===_t.date&&v===_t.date&&+r===+l)return{valid:!0,data:r};else return{valid:!1}}class gs extends ee{_parse(r){let{status:l,ctx:d}=this._processInputParams(r),v=(E,A)=>{if(Co(E)||Co(A))return Kt;let R=pc(E.value,A.value);if(!R.valid)return Rt(d,{code:yt.invalid_intersection_types}),Kt;if(Io(E)||Io(A))l.dirty();return{status:l.value,value:R.data}};if(d.common.async)return Promise.all([this._def.left._parseAsync({data:d.data,path:d.path,parent:d}),this._def.right._parseAsync({data:d.data,path:d.path,parent:d})]).then(([E,A])=>v(E,A));else return v(this._def.left._parseSync({data:d.data,path:d.path,parent:d}),this._def.right._parseSync({data:d.data,path:d.path,parent:d}))}}gs.create=(r,l,d)=>{return new gs({left:r,right:l,typeName:Yt.ZodIntersection,...Qt(d)})};class nn extends ee{_parse(r){let{status:l,ctx:d}=this._processInputParams(r);if(d.parsedType!==_t.array)return Rt(d,{code:yt.invalid_type,expected:_t.array,received:d.parsedType}),Kt;if(d.data.length<this._def.items.length)return Rt(d,{code:yt.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Kt;if(!this._def.rest&&d.data.length>this._def.items.length)Rt(d,{code:yt.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),l.dirty();let E=[...d.data].map((A,R)=>{let T=this._def.items[R]||this._def.rest;if(!T)return null;return T._parse(new Hi(d,A,d.path,R))}).filter((A)=>!!A);if(d.common.async)return Promise.all(E).then((A)=>{return He.mergeArray(l,A)});else return He.mergeArray(l,E)}get items(){return this._def.items}rest(r){return new nn({...this._def,rest:r})}}nn.create=(r,l)=>{if(!Array.isArray(r))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new nn({items:r,typeName:Yt.ZodTuple,rest:null,...Qt(l)})};class Da extends ee{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(r){let{status:l,ctx:d}=this._processInputParams(r);if(d.parsedType!==_t.object)return Rt(d,{code:yt.invalid_type,expected:_t.object,received:d.parsedType}),Kt;let v=[],E=this._def.keyType,A=this._def.valueType;for(let R in d.data)v.push({key:E._parse(new Hi(d,R,d.path,R)),value:A._parse(new Hi(d,d.data[R],d.path,R)),alwaysSet:R in d.data});if(d.common.async)return He.mergeObjectAsync(l,v);else return He.mergeObjectSync(l,v)}get element(){return this._def.valueType}static create(r,l,d){if(l instanceof ee)return new Da({keyType:r,valueType:l,typeName:Yt.ZodRecord,...Qt(d)});return new Da({keyType:Bi.create(),valueType:r,typeName:Yt.ZodRecord,...Qt(l)})}}class Ca extends ee{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(r){let{status:l,ctx:d}=this._processInputParams(r);if(d.parsedType!==_t.map)return Rt(d,{code:yt.invalid_type,expected:_t.map,received:d.parsedType}),Kt;let v=this._def.keyType,E=this._def.valueType,A=[...d.data.entries()].map(([R,T],L)=>{return{key:v._parse(new Hi(d,R,d.path,[L,"key"])),value:E._parse(new Hi(d,T,d.path,[L,"value"]))}});if(d.common.async){let R=new Map;return Promise.resolve().then(async()=>{for(let T of A){let L=await T.key,O=await T.value;if(L.status==="aborted"||O.status==="aborted")return Kt;if(L.status==="dirty"||O.status==="dirty")l.dirty();R.set(L.value,O.value)}return{status:l.value,value:R}})}else{let R=new Map;for(let T of A){let{key:L,value:O}=T;if(L.status==="aborted"||O.status==="aborted")return Kt;if(L.status==="dirty"||O.status==="dirty")l.dirty();R.set(L.value,O.value)}return{status:l.value,value:R}}}}Ca.create=(r,l,d)=>{return new Ca({valueType:l,keyType:r,typeName:Yt.ZodMap,...Qt(d)})};class Sr extends ee{_parse(r){let{status:l,ctx:d}=this._processInputParams(r);if(d.parsedType!==_t.set)return Rt(d,{code:yt.invalid_type,expected:_t.set,received:d.parsedType}),Kt;let v=this._def;if(v.minSize!==null){if(d.data.size<v.minSize.value)Rt(d,{code:yt.too_small,minimum:v.minSize.value,type:"set",inclusive:!0,exact:!1,message:v.minSize.message}),l.dirty()}if(v.maxSize!==null){if(d.data.size>v.maxSize.value)Rt(d,{code:yt.too_big,maximum:v.maxSize.value,type:"set",inclusive:!0,exact:!1,message:v.maxSize.message}),l.dirty()}let E=this._def.valueType;function A(T){let L=new Set;for(let O of T){if(O.status==="aborted")return Kt;if(O.status==="dirty")l.dirty();L.add(O.value)}return{status:l.value,value:L}}let R=[...d.data.values()].map((T,L)=>E._parse(new Hi(d,T,d.path,L)));if(d.common.async)return Promise.all(R).then((T)=>A(T));else return A(R)}min(r,l){return new Sr({...this._def,minSize:{value:r,message:Ut.toString(l)}})}max(r,l){return new Sr({...this._def,maxSize:{value:r,message:Ut.toString(l)}})}size(r,l){return this.min(r,l).max(r,l)}nonempty(r){return this.min(1,r)}}Sr.create=(r,l)=>{return new Sr({valueType:r,minSize:null,maxSize:null,typeName:Yt.ZodSet,...Qt(l)})};class us extends ee{constructor(){super(...arguments);this.validate=this.implement}_parse(r){let{ctx:l}=this._processInputParams(r);if(l.parsedType!==_t.function)return Rt(l,{code:yt.invalid_type,expected:_t.function,received:l.parsedType}),Kt;function d(R,T){return wa({data:R,path:l.path,errorMaps:[l.common.contextualErrorMap,l.schemaErrorMap,os(),Tn].filter((L)=>!!L),issueData:{code:yt.invalid_arguments,argumentsError:T}})}function v(R,T){return wa({data:R,path:l.path,errorMaps:[l.common.contextualErrorMap,l.schemaErrorMap,os(),Tn].filter((L)=>!!L),issueData:{code:yt.invalid_return_type,returnTypeError:T}})}let E={errorMap:l.common.contextualErrorMap},A=l.data;if(this._def.returns instanceof br){let R=this;return Xe(async function(...T){let L=new li([]),O=await R._def.args.parseAsync(T,E).catch((G)=>{throw L.addIssue(d(T,G)),L}),X=await Reflect.apply(A,this,O);return await R._def.returns._def.type.parseAsync(X,E).catch((G)=>{throw L.addIssue(v(X,G)),L})})}else{let R=this;return Xe(function(...T){let L=R._def.args.safeParse(T,E);if(!L.success)throw new li([d(T,L.error)]);let O=Reflect.apply(A,this,L.data),X=R._def.returns.safeParse(O,E);if(!X.success)throw new li([v(O,X.error)]);return X.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...r){return new us({...this._def,args:nn.create(r).rest(Hn.create())})}returns(r){return new us({...this._def,returns:r})}implement(r){return this.parse(r)}strictImplement(r){return this.parse(r)}static create(r,l,d){return new us({args:r?r:nn.create([]).rest(Hn.create()),returns:l||Hn.create(),typeName:Yt.ZodFunction,...Qt(d)})}}class ps extends ee{get schema(){return this._def.getter()}_parse(r){let{ctx:l}=this._processInputParams(r);return this._def.getter()._parse({data:l.data,path:l.path,parent:l})}}ps.create=(r,l)=>{return new ps({getter:r,typeName:Yt.ZodLazy,...Qt(l)})};class vs extends ee{_parse(r){if(r.data!==this._def.value){let l=this._getOrReturnCtx(r);return Rt(l,{received:l.data,code:yt.invalid_literal,expected:this._def.value}),Kt}return{status:"valid",value:r.data}}get value(){return this._def.value}}vs.create=(r,l)=>{return new vs({value:r,typeName:Yt.ZodLiteral,...Qt(l)})};function ld(r,l){return new Wn({values:r,typeName:Yt.ZodEnum,...Qt(l)})}class Wn extends ee{_parse(r){if(typeof r.data!=="string"){let l=this._getOrReturnCtx(r),d=this._def.values;return Rt(l,{expected:ne.joinValues(d),received:l.parsedType,code:yt.invalid_type}),Kt}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(r.data)){let l=this._getOrReturnCtx(r),d=this._def.values;return Rt(l,{received:l.data,code:yt.invalid_enum_value,options:d}),Kt}return Xe(r.data)}get options(){return this._def.values}get enum(){let r={};for(let l of this._def.values)r[l]=l;return r}get Values(){let r={};for(let l of this._def.values)r[l]=l;return r}get Enum(){let r={};for(let l of this._def.values)r[l]=l;return r}extract(r,l=this._def){return Wn.create(r,{...this._def,...l})}exclude(r,l=this._def){return Wn.create(this.options.filter((d)=>!r.includes(d)),{...this._def,...l})}}Wn.create=ld;class Es extends ee{_parse(r){let l=ne.getValidEnumValues(this._def.values),d=this._getOrReturnCtx(r);if(d.parsedType!==_t.string&&d.parsedType!==_t.number){let v=ne.objectValues(l);return Rt(d,{expected:ne.joinValues(v),received:d.parsedType,code:yt.invalid_type}),Kt}if(!this._cache)this._cache=new Set(ne.getValidEnumValues(this._def.values));if(!this._cache.has(r.data)){let v=ne.objectValues(l);return Rt(d,{received:d.data,code:yt.invalid_enum_value,options:v}),Kt}return Xe(r.data)}get enum(){return this._def.values}}Es.create=(r,l)=>{return new Es({values:r,typeName:Yt.ZodNativeEnum,...Qt(l)})};class br extends ee{unwrap(){return this._def.type}_parse(r){let{ctx:l}=this._processInputParams(r);if(l.parsedType!==_t.promise&&l.common.async===!1)return Rt(l,{code:yt.invalid_type,expected:_t.promise,received:l.parsedType}),Kt;let d=l.parsedType===_t.promise?l.data:Promise.resolve(l.data);return Xe(d.then((v)=>{return this._def.type.parseAsync(v,{path:l.path,errorMap:l.common.contextualErrorMap})}))}}br.create=(r,l)=>{return new br({type:r,typeName:Yt.ZodPromise,...Qt(l)})};class Ki extends ee{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Yt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(r){let{status:l,ctx:d}=this._processInputParams(r),v=this._def.effect||null,E={addIssue:(A)=>{if(Rt(d,A),A.fatal)l.abort();else l.dirty()},get path(){return d.path}};if(E.addIssue=E.addIssue.bind(E),v.type==="preprocess"){let A=v.transform(d.data,E);if(d.common.async)return Promise.resolve(A).then(async(R)=>{if(l.value==="aborted")return Kt;let T=await this._def.schema._parseAsync({data:R,path:d.path,parent:d});if(T.status==="aborted")return Kt;if(T.status==="dirty")return vr(T.value);if(l.value==="dirty")return vr(T.value);return T});else{if(l.value==="aborted")return Kt;let R=this._def.schema._parseSync({data:A,path:d.path,parent:d});if(R.status==="aborted")return Kt;if(R.status==="dirty")return vr(R.value);if(l.value==="dirty")return vr(R.value);return R}}if(v.type==="refinement"){let A=(R)=>{let T=v.refinement(R,E);if(d.common.async)return Promise.resolve(T);if(T instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return R};if(d.common.async===!1){let R=this._def.schema._parseSync({data:d.data,path:d.path,parent:d});if(R.status==="aborted")return Kt;if(R.status==="dirty")l.dirty();return A(R.value),{status:l.value,value:R.value}}else return this._def.schema._parseAsync({data:d.data,path:d.path,parent:d}).then((R)=>{if(R.status==="aborted")return Kt;if(R.status==="dirty")l.dirty();return A(R.value).then(()=>{return{status:l.value,value:R.value}})})}if(v.type==="transform")if(d.common.async===!1){let A=this._def.schema._parseSync({data:d.data,path:d.path,parent:d});if(!Gn(A))return Kt;let R=v.transform(A.value,E);if(R instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:l.value,value:R}}else return this._def.schema._parseAsync({data:d.data,path:d.path,parent:d}).then((A)=>{if(!Gn(A))return Kt;return Promise.resolve(v.transform(A.value,E)).then((R)=>({status:l.value,value:R}))});ne.assertNever(v)}}Ki.create=(r,l,d)=>{return new Ki({schema:r,typeName:Yt.ZodEffects,effect:l,...Qt(d)})};Ki.createWithPreprocess=(r,l,d)=>{return new Ki({schema:l,effect:{type:"preprocess",transform:r},typeName:Yt.ZodEffects,...Qt(d)})};class Gi extends ee{_parse(r){if(this._getType(r)===_t.undefined)return Xe(void 0);return this._def.innerType._parse(r)}unwrap(){return this._def.innerType}}Gi.create=(r,l)=>{return new Gi({innerType:r,typeName:Yt.ZodOptional,...Qt(l)})};class An extends ee{_parse(r){if(this._getType(r)===_t.null)return Xe(null);return this._def.innerType._parse(r)}unwrap(){return this._def.innerType}}An.create=(r,l)=>{return new An({innerType:r,typeName:Yt.ZodNullable,...Qt(l)})};class ys extends ee{_parse(r){let{ctx:l}=this._processInputParams(r),d=l.data;if(l.parsedType===_t.undefined)d=this._def.defaultValue();return this._def.innerType._parse({data:d,path:l.path,parent:l})}removeDefault(){return this._def.innerType}}ys.create=(r,l)=>{return new ys({innerType:r,typeName:Yt.ZodDefault,defaultValue:typeof l.default==="function"?l.default:()=>l.default,...Qt(l)})};class Ss extends ee{_parse(r){let{ctx:l}=this._processInputParams(r),d={...l,common:{...l.common,issues:[]}},v=this._def.innerType._parse({data:d.data,path:d.path,parent:{...d}});if(ls(v))return v.then((E)=>{return{status:"valid",value:E.status==="valid"?E.value:this._def.catchValue({get error(){return new li(d.common.issues)},input:d.data})}});else return{status:"valid",value:v.status==="valid"?v.value:this._def.catchValue({get error(){return new li(d.common.issues)},input:d.data})}}removeCatch(){return this._def.innerType}}Ss.create=(r,l)=>{return new Ss({innerType:r,typeName:Yt.ZodCatch,catchValue:typeof l.catch==="function"?l.catch:()=>l.catch,...Qt(l)})};class Ia extends ee{_parse(r){if(this._getType(r)!==_t.nan){let d=this._getOrReturnCtx(r);return Rt(d,{code:yt.invalid_type,expected:_t.nan,received:d.parsedType}),Kt}return{status:"valid",value:r.data}}}Ia.create=(r)=>{return new Ia({typeName:Yt.ZodNaN,...Qt(r)})};var Bm=Symbol("zod_brand");class Mo extends ee{_parse(r){let{ctx:l}=this._processInputParams(r),d=l.data;return this._def.type._parse({data:d,path:l.path,parent:l})}unwrap(){return this._def.type}}class Oa extends ee{_parse(r){let{status:l,ctx:d}=this._processInputParams(r);if(d.common.async)return(async()=>{let E=await this._def.in._parseAsync({data:d.data,path:d.path,parent:d});if(E.status==="aborted")return Kt;if(E.status==="dirty")return l.dirty(),vr(E.value);else return this._def.out._parseAsync({data:E.value,path:d.path,parent:d})})();else{let v=this._def.in._parseSync({data:d.data,path:d.path,parent:d});if(v.status==="aborted")return Kt;if(v.status==="dirty")return l.dirty(),{status:"dirty",value:v.value};else return this._def.out._parseSync({data:v.value,path:d.path,parent:d})}}static create(r,l){return new Oa({in:r,out:l,typeName:Yt.ZodPipeline})}}class bs extends ee{_parse(r){let l=this._def.innerType._parse(r),d=(v)=>{if(Gn(v))v.value=Object.freeze(v.value);return v};return ls(l)?l.then((v)=>d(v)):d(l)}unwrap(){return this._def.innerType}}bs.create=(r,l)=>{return new bs({innerType:r,typeName:Yt.ZodReadonly,...Qt(l)})};function rd(r,l){let d=typeof r==="function"?r(l):typeof r==="string"?{message:r}:r;return typeof d==="string"?{message:d}:d}function cd(r,l={},d){if(r)return yr.create().superRefine((v,E)=>{let A=r(v);if(A instanceof Promise)return A.then((R)=>{if(!R){let T=rd(l,v),L=T.fatal??d??!0;E.addIssue({code:"custom",...T,fatal:L})}});if(!A){let R=rd(l,v),T=R.fatal??d??!0;E.addIssue({code:"custom",...R,fatal:T})}return});return yr.create()}var $m={object:Se.lazycreate},Yt;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(Yt||(Yt={}));var Gm=(r,l={message:`Input not instance of ${r.name}`})=>cd((d)=>d instanceof r,l),ud=Bi.create,dd=Kn.create,Hm=Ia.create,Km=Vn.create,hd=ds.create,Vm=Er.create,Wm=Ra.create,Ym=hs.create,jm=fs.create,zm=yr.create,qm=Hn.create,Xm=en.create,Jm=ka.create,Qm=$i.create,Zm=Se.create,t0=Se.strictCreate,e0=ms.create,i0=Oo.create,n0=gs.create,r0=nn.create,s0=Da.create,a0=Ca.create,o0=Sr.create,l0=us.create,c0=ps.create,u0=vs.create,d0=Wn.create,h0=Es.create,f0=br.create,m0=Ki.create,g0=Gi.create,p0=An.create,v0=Ki.createWithPreprocess,E0=Oa.create,y0=()=>ud().optional(),S0=()=>dd().optional(),b0=()=>hd().optional(),T0={string:(r)=>Bi.create({...r,coerce:!0}),number:(r)=>Kn.create({...r,coerce:!0}),boolean:(r)=>ds.create({...r,coerce:!0}),bigint:(r)=>Vn.create({...r,coerce:!0}),date:(r)=>Er.create({...r,coerce:!0})};var _0=Kt;var vc=["subtitles","vtsel","ads","share","thumbnails","asel","qsel"];var fd=dt.object({url:dt.union([dt.string(),dt.array(dt.string()),dt.object({src:dt.string(),type:dt.string()}),dt.array(dt.object({src:dt.string(),type:dt.string()}))]).optional(),title:dt.string().optional(),poster:dt.string().optional(),description:dt.string().optional(),subtitles:dt.object({native:dt.boolean().optional(),show:dt.boolean().optional(),tracks:dt.array(dt.object({src:dt.string(),lang:dt.string().optional(),label:dt.string().optional(),crossorigin:dt.string().optional().nullable(),default:dt.boolean().optional(),kind:dt.union([dt.literal("captions"),dt.literal("chapters"),dt.literal("subtitles")]).optional(),mode:dt.union([dt.literal("hidden"),dt.literal("showing"),dt.literal("disabled")]).optional(),id:dt.string().optional()})).optional()}).optional(),thumbnails:dt.object({src:dt.string()}).optional(),metadata:dt.object({id:dt.string().optional(),media_id:dt.string().optional(),title:dt.string().optional(),description:dt.string().optional(),site_id:dt.string().optional(),sitegroup_id:dt.string().optional(),no_ads:dt.boolean().optional(),ad_keywords:dt.string().optional(),category_id:dt.string().optional(),category_name:dt.string().optional(),tags:dt.string().optional(),duration:dt.number().optional(),player_id:dt.string().optional()}).optional()}),Ec=fd.transform(({url:r,...l})=>({src:r,...l})),No=dt.object({playlist:dt.union([dt.string(),dt.object({src:dt.string(),type:dt.string()}),dt.array(Ec)]),lang:dt.string().optional(),consent:dt.number().default(9),token:dt.string().optional(),ui:dt.number().optional(),plugins:dt.array(dt.enum(vc)).default([...vc].filter((r)=>r!=="qsel")),brand_color:dt.string().optional(),recommendations:dt.boolean().optional(),metadata:dt.object({playlist_title:dt.string().optional(),player_id:dt.string().optional()}).optional(),adsFrequency:dt.number().int().nonnegative().optional().default(10),share:dt.object({share_type:dt.string(),iframe:dt.boolean(),link:dt.boolean(),facebook:dt.boolean(),twitter:dt.boolean()}).optional(),ima:dt.object({NumRedirects:dt.number().optional(),timeout:dt.number().optional(),total_loading_timeout:dt.number().optional(),show_all_ads_on_seek:dt.boolean().optional(),ads:dt.array(dt.object({adTag:dt.union([dt.string(),dt.array(dt.string()),dt.function().args().returns(dt.promise(dt.string()))]),restart:dt.boolean().optional(),time:dt.number()})),Locale:dt.string().optional(),locale:dt.string().optional(),parameters:dt.record(dt.any()).optional(),autopause:dt.boolean().optional()}).optional()}),Ay=No.omit({playlist:!0}).extend({playlist:dt.array(Ec)}),yc=fd.omit({url:!0}).and(dt.object({src:dt.union([dt.string(),dt.array(dt.string()),dt.object({src:dt.string(),type:dt.string()}),dt.array(dt.object({src:dt.string(),type:dt.string()}))])})),md=No.omit({plugins:!0}).omit({playlist:!0}).extend({playlist:dt.array(yc)}),gd=dt.array(Ec);function A0(r){let l=document.createElement("a");l.href=r;let d=l.pathname?.split(".");return d.length>1&&d[d.length-1]}function L0(r){switch(r){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return r}}var Ed=({src:r,...l})=>[{src:r,type:r?L0(`video/${A0(r)}`):"",...l}];function pd(r){return Ed({src:r})}function vd({src:r,type:l,...d}){if(r&&l)return[{src:r,type:l,...d}];if(l&&!r)return[{type:l,...d}];return Ed({src:r,...d})}function yd(r){if(typeof r==="string")return pd(r);if(!Array.isArray(r)&&typeof r==="object")return vd(r);return r.reduce((l,d)=>{if(typeof d==="string")d=pd(d);if(typeof d==="object"&&!Array.isArray(d))d=vd(d);return l.concat(d)},[])}async function Sd(r){if(Array.isArray(r.playlist))return r;let l=typeof r.playlist==="object"?r.playlist.src:r.playlist,d=hc(fc(l)),v=await fetch(d);if(!v.ok)throw Error(`Failed to fetch playlist: ${v.status} ${v.statusText}`);let E=await v.json(),A=md.parse(E);return A.playlist.forEach((R)=>{Object.assign(R,{...R.metadata})}),Object.assign(r,{...A,...r,playlist:A.playlist})}async function Fo(r,l,d){(await Promise.all(l.map(w0))).forEach((E,A)=>{let R=d.length+A,T=new(window.customElements.get("flowplayer-spin"))(r,E);r.emit(dc,{spin:T,config:E,index:R}),r.append(T),r.maybeCreateAdPlayer(R,T)})}async function w0(r){let l=yd(r.src||"");if(l.length!==1||!ed(l[0].src||"",l[0]))return r;try{let d=hc(fc(l[0].src??"")),v=await fetch(d);if(!v.ok)return r;let E=await v.json(),A=yc.parse(E);return delete r.src,Object.assign(r,{...A,...A.metadata??{},...r})}catch{return r}}var kd=Ne(wd(),1);var Rd=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function Na(r,l){if(~Rd.indexOf(r))return!0;return r.indexOf(l)===r.length-l.length}Na.check_whitelist=(r)=>!!~Rd.indexOf(r);function Tr(r,l){let d={valid_jwt:!1,raw:"",data:{acl:0},exp:0},v={c:"{}",exp:0};l=l||{};try{v=kd.default(r),d.valid_jwt=!0}catch(E){}if(d.raw=r,d.data=JSON.parse(v.c),d.exp=v.exp,l.require_valid_token)Tr.validate(d);return d}Tr.validate=(r)=>{if(typeof r==="string")r=Tr(r);if(!r||!r.raw){if(Na.check_whitelist(window.location.hostname))return!0;throw Error("No token provided in configuration")}if(!r.valid_jwt)throw Error("Invalid token provided");let l=window.location.hostname,d=Na.bind(null,l);if(r.data.domain?.length&&!r.data.domain.some(d))throw Error("Domain not allowed");if(r.exp*1000-Date.now()<0)throw Error("Expired token");return!0};Tr.id=(r)=>{if(!r)return;if(typeof r==="string")r=Tr(r);return r.data.id};var Tc;((A)=>{A[A.ADS=2]="ADS";A[A.ANALYTICS=4]="ANALYTICS";A[A.NO_METERING=8]="NO_METERING";A[A.DEVELOPER_PLAN=16]="DEVELOPER_PLAN";A[A.WOWZA_VIDEO=32]="WOWZA_VIDEO"})(Tc||={});function Ln(r){return{grant:r,is_granted:(d)=>(r&d)===d}}Ln.of=Ln;Ln.from_token=(r)=>{let l=Tr(r,{require_valid_token:!0});return Ln.of(l.data.acl)};Ln.permissions=Tc;var Vi=Ne(_r(),1);function Yn(){let r=document.querySelectorAll("flowplayer-spin");return Array.from(r)}function fv(r){let l=r.root.getAttribute("spin-index");return parseFloat(l)}function Po(r,l){if(l.length===1)return 0;let d=l[0].getBoundingClientRect().height,v=l[1].getBoundingClientRect().top-l[0].getBoundingClientRect().bottom;return Math.round(r.scrollTop/(d+v))}function wn(r,l){return document.querySelector(`${l?"flowplayer-ad-player":"flowplayer-spin-player"}[spin-index="${r}"] video`)}function _c(r,l){let[d,v]=Array.from(r.querySelectorAll("flowplayer-spin-player .fp-engine")),E=d.root.getAttribute("spin-index")===l;return{primaryPlayer:E?d:v,secondaryPlayer:E?v:d}}function xo(r,l,d,v){if(v.spinsLoading)return;let E=v.primarySpinIndex>=l.length-2;if(!(l.length<d.length)||!E)return;let R=d.slice(l.length,l.length+5);v.spinsLoading=Fo(r,R,l).then(()=>{mv(r,l,v),v.spinsLoading=void 0})}function mv(r,l,d){if(d.primarySpinIndex!==l.length-1)return;let{primaryPlayer:v,secondaryPlayer:E}=_c(r,String(d.primarySpinIndex));if(fv(E)>d.primarySpinIndex)return;return Ar(r,v,E,d.primarySpinIndex+1)}function Uo(r){if(r.hasState("is-loaded"))return;if(r.hls)return r.hls.startLoad();if(r.opts.is_native)return r.load()}function Cd(r,l,d,v){let E=Yn()[v],A=l[v];return d.setSrc(A.src??""),d.setOpts(A),d.root.setAttribute("spin-index",String(v)),E.appendChild(d.root),{spin:E,config:A,index:v}}function Id(r,l){if(r.hasState("is-loaded"))return Uo(l);let d=()=>{Uo(l),v()},v=()=>{r.off("ad-request-completed",d),l.off(Vi.SOURCE,v),l.off(Vi.PLAY,v)};r.once("ad-request-completed",d),l.once(Vi.SOURCE,v),l.once(Vi.PLAY,v)}function Fa(r,l,d){let v=wn(d,!0);if(r.emit(Zi,Cd(r,r.items,l,d)),!v||!l.paused||l.hasState("will-play"))return;Id(v,l)}function Ar(r,l,d,v){Cd(r,r.items,d,v);let E=wn(v,!0);if(!E){if(l.hasState("is-loaded"))return Uo(d);let A=()=>Uo(d),R=()=>l.off(Vi.CAN_PLAY,A);l.once(Vi.CAN_PLAY,A),l.once(Vi.SOURCE,R),d.once(Vi.SOURCE,R);return}Id(E,d)}function Bo(r,l,d=1){r.emit("flowplayer:feature",{feature_name:"spins",behavior:l,sample_rate:d})}var Gd=Ne(Od(),1),Hd=Ne(Md(),1),Kd=Ne(Nd(),1),Vd=Ne(Fd(),1),Wd=Ne(Pd(),1),Yd=Ne(xd(),1),jd=Ne(Ud(),1),zd=Ne(Bd(),1),qd=Ne($d(),1);var Ac={};uc(Ac,{zh:()=>Mv,tr:()=>Ov,tlh:()=>Iv,sv:()=>Cv,sk:()=>Dv,pt:()=>kv,pl:()=>Rv,oc:()=>wv,nn:()=>Lv,nl:()=>Av,nb:()=>_v,he:()=>Tv,gr:()=>bv,fr:()=>Sv,fi:()=>yv,es:()=>Ev,en:()=>vv,de:()=>pv,cs:()=>gv});var gv={ads:{ad:"Reklama",ads:"Reklamy",advertisement:"Reklama",indicator:"Reklamy"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Titulky"},core:{exit_fullscreen:"Vypnout režim celé obrazovky",fullscreen:"Zapnout režim celé obrazovky",mute:"Vypnout zvuk",pause:"Pauza",play:"Přehrát",unmute:"Zapnout zvuk",volume:"Hlasitost"},ovp:{starting_in:"Odpočítavání"},playlist:{cancel:"Cancel",up_next:"Další"},qsel:{menu_title:"Kvalita"},share:{clipboard_failure:"Přístup do schránky se nezdařil",clipboard_success:"Kód na stránku je nyní ve vaší schránce",embed:"Kód na stránku",link:"Odkaz",menu_title:"Sdílet"},speed:{menu_title:"Rychlost"}},pv={ads:{ad:"Werbung",ads:"Werbung",advertisement:"Werbung",indicator:"Werbung"},audio:{button_txt:"Ton",menu_title:"Ton"},cc:{button:"CC",menu_title:"Untertitel"},core:{exit_fullscreen:"Vollbild verlassen",fullscreen:"Vollbild",mute:"Ton aus",pause:"Pause",play:"Abspielen",unmute:"Ton ein",volume:"Lautstärke"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Abbrechen",up_next:"Nächste"},qsel:{menu_title:"Qualität"},share:{clipboard_failure:"Zugriff auf Zwischenablage fehlgeschlagen",clipboard_success:"Embedcode in die Zwischenablage kopiert",embed:"Einbetten",link:"Link",menu_title:"Teilen"},speed:{menu_title:"Geschwindigkeit"}},vv={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertisement",indicator:"Ads"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Subtitles",options:"Options",tracks:"Tracks",reset:"Reset",colors:{Black:"Black",Blue:"Blue",Cyan:"Cyan",Green:"Green",Magenta:"Magenta",Red:"Red",White:"White",Yellow:"Yellow"},edgeStyle:{None:"None","Drop shadow":"Drop shadow",Raised:"Raised",Depressed:"Depressed",Outline:"Outline"},fontFamily:{"Monospaced Serif":"Monospaced Serif","Proportional Serif":"Proportional Serif","Monospaced Sans-Serif":"Monospaced Sans-Serif","Proportional Sans-Serif":"Proportional Sans-Serif",Casual:"Casual",Cursive:"Cursive"},properties:{fontFamily:"Font family",fontSize:"Font size",fontColor:"Font color",fontOpacity:"Font opacity",backgroundColor:"Background color",backgroundOpacity:"Background opacity",characterEdgeStyle:"Character edge style"}},chromecast:{start:"start casting",stop:"stop casting"},core:{exit_fullscreen:"Exit fullscreen",fullscreen:"Fullscreen",mute:"Mute",pause:"Pause",play:"Play",seconds:"Seconds",timeline_aria_label:"Seek slider",unmute:"Unmute",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Up next"},qsel:{menu_title:"Quality"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"The text is now on your clipboard",embed:"Embed",link:"Link",menu_title:"Share"},speed:{menu_title:"Speed"},vtsel:{button_txt:"Video",menu_title:"Video Track"}},Ev={ads:{ad:"Anúncio",ads:"Anúncios",advertisement:"Anúncio",indicator:"Anúncios"},audio:{button_txt:"Áudio",menu_title:"Áudio"},cc:{button:"CC",menu_title:"Subtítulos"},core:{exit_fullscreen:"Pantalla no completa",fullscreen:"Pantalla completa",mute:"Silenciar",pause:"Pausa",play:"Reproducir",unmute:"No silenciado",volume:"Volumen"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancelar",up_next:"Siguiente"},qsel:{menu_title:"Calidad"},share:{clipboard_failure:"Fallo en el acceso al portapapeles",clipboard_success:"El código de insercíon ahora está en tu portapapeles",embed:"Insertar",link:"Enlace",menu_title:"Compartir"},speed:{menu_title:"Velocidad"}},yv={ads:{ad:"Mainos",ads:"Mainos",advertisement:"Mainos",indicator:"Mainos"},audio:{button_txt:"Kieli",menu_title:"Kieli"},cc:{button:"CC",menu_title:"Tekstitys"},core:{exit_fullscreen:"Poistu kokonäytön tilasta",fullscreen:"Koko näytön tila",mute:"Vaimenna",pause:"Keskeytä",play:"Toista",unmute:"Poista vaimennus",volume:"Äänenvoimakkuus"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Peruuta",up_next:"Seuraavaksi"},qsel:{menu_title:"Laatu"},share:{clipboard_failure:"Leikepöydän käyttö epäonnistui",clipboard_success:"Kopioitu leikepöydälle",embed:"Upota",link:"Linkki",menu_title:"Jaa"},speed:{menu_title:"Nopeus"}},Sv={ads:{ad:"Annonce",ads:"Annonces",advertisement:"Annonce",indicator:"Annonces"},audio:{button_txt:"Son",menu_title:"Son"},cc:{button:"CC",menu_title:"Sous-titres"},core:{exit_fullscreen:"Quitter le mode plein écran",fullscreen:"Plein écran",mute:"Sourdine",pause:"Pause",play:"Lecture",unmute:"Son activé",volume:"Volume"},ovp:{starting_in:"Compte à rebours"},playlist:{cancel:"Annuler",up_next:"Suivant"},qsel:{menu_title:"Qualité"},share:{clipboard_failure:"L'accès au presse-papier a échoué",clipboard_success:"Le code embed est maintenant dans votre presse-papiers",embed:"Embed",link:"Lien",menu_title:"Partager"},speed:{menu_title:"Vitesse"}},bv={ads:{ad:"Διαφήμιση",ads:"Διαφήμισεις",advertisement:"Διαφήμιση",indicator:"Διαφήμισεις"},audio:{button_txt:"Ηχος",menu_title:"Κομμάτι ήχου"},cc:{button:"ΥΠ",menu_title:"Υπότιτλοι",options:"Επιλογες",tracks:"Κομματια",reset:"Επαναφορα",colors:{Black:"Μαυρο",Blue:"Μπλε",Cyan:"Γαλαζιο",Green:"Πρασσινο",Magenta:"Ροζ",Red:"Κοκκινο",White:"Λευκο",Yellow:"Κιτρινο"},edgeStyle:{None:"Κανενα","Drop shadow":"Αναπτυσσομενη σκια",Raised:"Αναγλυφο",Depressed:"Πεπλατυσμενο",Outline:"Περιγραμμα"},fontFamily:{"Monospaced Serif":"Serif σταθερου πλατους","Proportional Serif":"Serif αναλογικου πλατους","Monospaced Sans-Serif":"Sans-Serif σταθερου πλατους","Proportional Sans-Serif":"Sans-Serif αναλογικου πλατους",Casual:"Απλες",Cursive:"Λοξες"},properties:{fontFamily:"Οικογενεια γραμματοσειρων",fontSize:"Μεγεθος γραμματοσειρας",fontColor:"Χρωμα γραμματοσειρας",fontOpacity:"Αδιαφανεια γραμματοσειρας",backgroundColor:"Χρωμα φοντου",backgroundOpacity:"Αδιαφανεια φοντου",characterEdgeStyle:"Στιλ ακρων χαρακτηρα"}},core:{exit_fullscreen:"Έξοδος πλήρους οθονης",fullscreen:"Πλήρης οθόνη",mute:"Σίγαση",pause:"Παύση",play:"Αναπαραγωγή",unmute:"Κατάργηση σίγασης",volume:"Ενταση ήχου"},ovp:{starting_in:"Αντίστροφη μέτρηση"},playlist:{cancel:"Ακύρωση",up_next:"Επόμενο Βίντεο"},qsel:{menu_title:"Ανάλυση εικόνας"},share:{clipboard_failure:"Η αντιγραφη της επιλογής απέτυχε",clipboard_success:"H επιλογή αντιγράφηκε επιτυχώς",embed:"Κώδικας Ενσωμάτωσης",link:"Σύνδεσμος",menu_title:"Κοινοποίηση"},speed:{menu_title:"Ταχύτητα"}},Tv={ads:{ad:"מודעה",ads:"מודעה",advertisement:"מודעה",indicator:"מודעה"},audio:{button_txt:"שֶׁמַע",menu_title:"שֶׁמַע"},cc:{button:"CC",menu_title:"כתוביות"},core:{exit_fullscreen:"צא ממסך מלא",fullscreen:"מסך מלא",mute:"לְהַשְׁתִיק",pause:"עצור",play:"נגן",unmute:"בטל השתקה",volume:"עוצמת שמע"},ovp:{starting_in:"ספירה לאחור"},playlist:{cancel:"לְבַטֵל",up_next:"הבא"},qsel:{menu_title:"איכות"},share:{clipboard_failure:"הגישה ללוח נכשלה",clipboard_success:"הטקסט נמצא כעת על הלוח שלך",embed:"לְשַׁבֵּץ",link:"קישור",menu_title:"לַחֲלוֹק"},speed:{menu_title:"מְהִירוּת"}},_v={ads:{ad:"Reklame",ads:"Reklame",advertisement:"Reklame",indicator:"Reklame"},audio:{button_txt:"Lydspor",menu_title:"Lydspor"},cc:{button:"CC",menu_title:"Teksting"},core:{exit_fullscreen:"Avslutt fullskjerm",fullscreen:"Fullskjerm",mute:"Skru av lyd",pause:"Pause",play:"Spill av",unmute:"Skru på lyd",volume:"Volum"},ovp:{starting_in:"Sendingen starter om"},playlist:{cancel:"Cancel",up_next:"Neste video"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Tilgang til utklippstavlen mislyktes",clipboard_success:"Teksten er nå på utklippstavlen din",embed:"Embed",link:"Link",menu_title:"Del"},speed:{menu_title:"Hastighet"}},Av={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertentie",indicator:"Ads"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Ondertiteling"},core:{exit_fullscreen:"Sluit fullscreen",fullscreen:"Fullscreen",mute:"Dempen",pause:"Pause",play:"Play",unmute:"Dempen opheffen",volume:"Volume"},ovp:{starting_in:"Start over"},playlist:{cancel:"Annuleren",up_next:"Volgende"},qsel:{menu_title:"Kwaliteit"},share:{clipboard_failure:"Toegang tot klembord mislukt",clipboard_success:"De tekst staat nu op je klembord",embed:"Embed",link:"Link",menu_title:"Deel"},speed:{menu_title:"Snelheid"}},Lv={ads:{ad:"Reklame",ads:"Reklame",advertisement:"Reklame",indicator:"Reklame"},audio:{button_txt:"Lydspor",menu_title:"Lydspor"},cc:{button:"CC",menu_title:"Teksting"},core:{exit_fullscreen:"Avslutt fullskjerm",fullscreen:"Fullskjerm",mute:"Skru av lyd",pause:"Pause",play:"Spel av",unmute:"Skru på lyd",volume:"Volum"},ovp:{starting_in:"Nedteljing"},playlist:{cancel:"Cancel",up_next:"Neste video"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Tilgang til utklippstavlen mislyktes",clipboard_success:"Teksten er no på utklippstavlen din",embed:"Embed",link:"Link",menu_title:"Del"},speed:{menu_title:"Hastighet"}},wv={ads:{ad:"Publicitat",ads:"Publicitats",advertisement:"Publicitat",indicator:"Pubs"},audio:{button_txt:"Àudio",menu_title:"Àudio"},cc:{button:"ST",menu_title:"Sostítol"},core:{exit_fullscreen:"Sortir de l’ecran complèt",fullscreen:"Ecran complèt",mute:"Amudir",pause:"Pausa",play:"Lectura",unmute:"Restablir lo son",volume:"Volum"},ovp:{starting_in:"Descompte"},playlist:{cancel:"Anullar",up_next:"Seguent"},qsel:{menu_title:"Qualitat"},share:{clipboard_failure:"Fracàs de l’accès al quichapapièrs",clipboard_success:"Lo tèxt es copiat al quichapapièrs",embed:"Integrar",link:"Ligam",menu_title:"Partejar"},speed:{menu_title:"Velocitat"}},Rv={ads:{ad:"Reklama",ads:"Reklama",advertisement:"Reklama",indicator:"Reklama"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Napisy"},core:{exit_fullscreen:"Wyjdź z pełnego ekranu",fullscreen:"Pełny ekran",mute:"Wyciszenie",pause:"Pauza",play:"Odtwarzaj",unmute:"Wyłącz wyciszenie",volume:"Głośność"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Anuluj",up_next:"Następny"},qsel:{menu_title:"Jakość"},share:{clipboard_failure:"Błąd dostępu do schowka",clipboard_success:"Kod embedu jest teraz w twoim schowku.",embed:"Osadź",link:"Link",menu_title:"Share"},speed:{menu_title:"Prędkość"}},kv={ads:{ad:"Anúncio",ads:"Anúncios",advertisement:"Anúncio",indicator:"Anúncios"},audio:{button_txt:"Áudio",menu_title:"Áudio"},cc:{button:"CC",menu_title:"Subtítulos"},core:{exit_fullscreen:"Tela não cheia",fullscreen:"Tela cheia",mute:"Silenciar",pause:"Pausa",play:"Reproduzir",unmute:"Não silenciado",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancelar",up_next:"A seguir"},qsel:{menu_title:"Qualidade"},share:{clipboard_failure:"Falha no acesso à área de transferência",clipboard_success:"O código de inserção está agora na sua área de transferência",embed:"Embutir",link:"Link",menu_title:"Compartilhar"},speed:{menu_title:"Velocidade"}},Dv={ads:{ad:"Reklama",ads:"Reklamy",advertisement:"Reklama",indicator:"Reklamy"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Titulky"},core:{exit_fullscreen:"Vypnúť režim celej obrazovky",fullscreen:"Zapnúť režim celej obrazovky",mute:"Vypnúť zvuk",pause:"Pauza",play:"Prehrať",unmute:"Zapnúť zvuk",volume:"Hlasitosť"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Ďalšie"},qsel:{menu_title:"Kvalita"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"Kód na stránku je teraz vo vašej schránke",embed:"Kód na stránku",link:"Odkaz",menu_title:"Zdieľať"},speed:{menu_title:"rRýchlosť"}},Cv={ads:{ad:"Reklam",ads:"Reklam",advertisement:"Reklam",indicator:"Reklam"},audio:{button_txt:"Ljud",menu_title:"Ljud"},cc:{button:"CC",menu_title:"Undertexter"},core:{exit_fullscreen:"Avsluta helskärm",fullscreen:"Helskärm",mute:"Ljud av",pause:"Paus",play:"Spela",unmute:"Ljud på",volume:"Volym"},ovp:{starting_in:"Börjar om"},playlist:{cancel:"Avbryt",up_next:"Nästa"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Åtkomst till Urklipp misslyckades",clipboard_success:"Inbäddningskoden är nu kopierad",embed:"Bädda in",link:"Länk",menu_title:"Dela"},speed:{menu_title:"Hastighet"}},Iv={ads:{ad:"'chel",ads:"tlhaw'DIyuS",advertisement:"'uQ'a'",indicator:"chel"},audio:{button_txt:"qaStaHvIS",menu_title:"qaStaHvIS"},cc:{button:"CC",menu_title:"qeylIS"},core:{exit_fullscreen:"tlhoy'",fullscreen:"che'",mute:"jaS",pause:"yev",play:"chu'",unmute:"Huy'vam",volume:"muq"},ovp:{starting_in:"qornel"},playlist:{cancel:"qil",up_next:"Hu'"},qsel:{menu_title:"boqral"},share:{clipboard_failure:"SengDaj LopmeH mIv'a'",clipboard_success:"che'rup neH 'oH buStaHvIS.",embed:"tlhIlwI'",link:"Hol",menu_title:"SaH"},speed:{menu_title:"pIp"}},Ov={ads:{ad:"Reklam",ads:"Reklamlar",advertisement:"Reklam",indicator:"Reklamlar"},audio:{button_txt:"Ses",menu_title:"Ses"},cc:{button:"CC",menu_title:"Altyazılar"},core:{exit_fullscreen:"Tam ekrandan çık",fullscreen:"Tam ekran",mute:"Sessiz",pause:"Duraklat",play:"Oynat",unmute:"Sesi aç",volume:"Ses"},ovp:{starting_in:"Geri sayım"},playlist:{cancel:"İptal",up_next:"Sonraki"},qsel:{menu_title:"Kalite"},share:{clipboard_failure:"Panoya erişim başarısız oldu",clipboard_success:"Metin panoya kopyalandı",embed:"Yerleştir",link:"Bağlantı",menu_title:"Paylaş"},speed:{menu_title:"Hız"}},Mv={ads:{ad:"广告",ads:"广告",advertisement:"广告",indicator:"广告"},audio:{button_txt:"声音",menu_title:"声音"},cc:{button:"字幕",menu_title:"字幕"},core:{exit_fullscreen:"退出全屏",fullscreen:"全屏",mute:"静音",pause:"暂停",play:"播放",unmute:"取消静音",volume:"音量"},ovp:{starting_in:"倒计时"},playlist:{cancel:"取消",up_next:"即将播放"},qsel:{menu_title:"清晰度"},share:{clipboard_failure:"无法复制到剪贴板",clipboard_success:"已复制到剪贴板",embed:"嵌入",link:"链接",menu_title:"分享"},speed:{menu_title:"倍速"},vtsel:{button_txt:"视频",menu_title:"视频轨道"}};var Ts=Gd.default(Vd.default,Kd.default),Nv=Ts.extensions,rl=Ts.version;Object.assign(Ts.i18n,Ac);function Lc(r){return Ts.extensions=Nv.slice(),[jd.default,zd.default,qd.default,Hd.default,Yd.default,Wd.default].forEach((l)=>{if(!r.includes(l.pluginName))return;Ts.extensions.push(l)}),Ts}var Ns=Ne(_r(),1);var nf=Ne(_r(),1);var Xd="flowplayer-ad-ui",sl="flowplayer-ad-controls",al="flowplayer-ad-countdown",ol="flowplayer-ad-indicator";var Tl=Ne(_r(),1);function Pv(){try{return localStorage.getItem("flowplayer/debug")}catch(r){return""}}function Re(r,l){let d=Pv(),v=(E,...A)=>{try{let R=l?.debug||d;if(R&&r.match(R))console.log(`flowplayer/${r} -- ${E}`,...A)}catch(R){console.warn(R)}};return v.log=v,v}var ll="ad-initialized",_s="ad-playback-error",As="ad-teardown",wc="ad-videotag-attached";var jn="ad-request-error",cl="ad-requested",ul="ad-request-completed",Pa="ad-pause-content",rn="ad-started",Ls="ad-completed",xa="ad-paused",dl="ad-resumed";var zn="ad-progress",ws="ad-skipped",Jd="ad-muted",Rc="ad-volume-changed";var Qd="ad-timeout",Wi="ad-break-completed",Zd="ad-postroll-finished",th="ad-preroll-finished";var eh="vpaid-init",ih="ad-ima-adapter-init",nh="ad-ima-before-ads-request",rh="ad-ima-rendering-settings",hl="ad-adapter-init-failed",fl="ad-play-requested",Ua="reload-ad-requested",ml="ad-error",gl="request/ad/pause",pl="request/ad/play",vl="request/ad/muteunmute";var Rs="ad/set-ui-flags";class ks{_ads;_opts;_nextIndex;_postroll;_loadPending;_postrollActive;constructor(r,l={}){this._ads=r;this._opts=l;this._nextIndex=0,this._postroll=void 0,this._loadPending=!1,this._postrollActive=!1,this.reset(this._ads)}toJSON(){let r=(this._ads||[]).slice(this._nextIndex);if(this._postroll)r.push(this._postroll);return r}reset(r){this.setAds(r),this._nextIndex=0,this._postrollActive=!1}resetCounter(){this._nextIndex=0,this._postrollActive=!1}setAds(r){this._ads=r||[],this.sort()}getAds(){return this._ads}getNextAd(r){return this._ads[this._nextIndex]||r}getCurrentAd(){if(this._postrollActive)return this._postroll;if(this._loadPending)return 0;return this._ads[this._nextIndex-1]}getPostroll(){return this._postroll}isDrained(){return this._nextIndex+1>this._ads.length}setPostrollActive(){this._postrollActive=!0}updateContentDuration(r){this._opts.content_duration=r}increment(){++this._nextIndex}decrement(){this._nextIndex>0&&--this._nextIndex}getNextIndex(){return this._nextIndex}getCurrentType(){let r=this.getCurrentAd();if(!r)return;return ks.kindOf(r.time)}sort(){this._postroll=this._ads.find((r)=>r.time===-1),this._ads=this._ads.filter((r)=>r!==this._postroll).sort((r,l)=>{if(r.time===l.time)return this._ads.indexOf(r)-this._ads.indexOf(l);return r.time-l.time})}shallPlayAd(r){if(this._loadPending)return!1;let l=this.getCurrentAd()||this.getNextAd();return!!(l&&l.time<=r&&l.time!==-1)}shallPlayNext(){let r=this.getNextAd(),l=this.getCurrentAd();return!!(r&&l&&r.time===l.time)}waitForLoad(r,l,d){if(this._loadPending=!1,!l)return!1;let v=d?this._opts.preload_advance:0;if(l.time>=0)this._loadPending=r<l.time-v;else if(l.time===-1)this._loadPending=this._opts.content_duration>0&&r!==-1?r<this._opts.content_duration-v:r!==-1;return this._loadPending}static hasPreroll(r){return!!r.find((l)=>l.time===0)}static isOutstream(r){return ks.hasPreroll(r)&&!!r[0].outstream}static kindOf(r){switch(r){case 0:return"preroll";case-1:return"postroll";default:return"midroll"}}}var uh=Ne(_r(),1);class kc{requestStart;adRequestStart(r){if(typeof r!=="number")return;if(typeof this.requestStart==="number")return;this.requestStart=performance.now()}adRequestEnd(){this.requestStart=void 0}getRemainingAdLoadTime(r,l){return typeof l!=="number"||typeof this.requestStart!=="number"?r:Math.max(0,l-(performance.now()-this.requestStart))}}function sh(r,l,d){let v=(E)=>{d(E),r.removeEventListener(l,v)};return r.addEventListener(l,v),()=>r.removeEventListener(l,v)}function ah(r){try{return r.getAdPodInfo().getPodIndex()}catch(l){return}}function oh(r){try{return r.getAdPodInfo().getAdPosition()}catch(l){return}}function lh(r){try{return r.getAdPodInfo().getTotalAds()}catch(l){return}}var El=Re("ads/timers");class Dc{intervals;timers;constructor(r={},l={}){this.intervals=r;this.timers=l}}var Bv=-1;function $v(){return++Bv}function Gv(r,l){return El(`TimerRegistry.removeTimeout() -> ${l}`,r.timers),clearTimeout(r.timers[l]),delete r.timers[l],r}function ch(r,l,d){let v=setInterval(d,l);if(El(`TimerRegistry.createInterval() -> ${v}`,r.intervals),typeof v==="object"){let E=$v();return r.intervals[E]=E,E}return r.intervals[v]=v,v}function Hv(r,l){return El(`TimerRegistry.removeInterval() -> ${l}`,r.intervals),clearInterval(r.intervals[l]),delete r.intervals[l],r}function Ds(r){if(!r)return;return El("TimerRegistry.empty()",Object.keys(r.timers),Object.keys(r.intervals)),Object.keys(r.intervals).forEach((l)=>Hv(r,l)),Object.keys(r.timers).forEach((l)=>Gv(r,l)),r}class wr{eventHandler;log;_timers;_started;_volumeLevel;_adLoaded;_currentDuration;_currentRemaining;_currentDisplayTs;_adLinear;_dimensions;_adHandlers;opts;_adsManager;_adsLoader;_adDisplayContainer;videoTag;customPlaybackEnabled;_paused;loadingController;_all_ads_completed;google;_isInitialized;_adBreakTime;_prepared;constructor(r){this.eventHandler=r;this.log=Re("ads/adapter/ima"),this.google=window.google,this._adHandlers=[],this._timers=new Dc,this._started=!1,this._volumeLevel=0,this._adLoaded=!1,this.customPlaybackEnabled=!1,this._paused=!1,this._all_ads_completed=!1,this._currentDuration=0,this._currentRemaining=0,this._currentDisplayTs=0,this._isInitialized=!1,this._adBreakTime=0,this._prepared=!1,this.opts={},this.loadingController=new kc}async init(r){if(this.log("init",this.videoTag,r),this.opts=r,this._dimensions={width:r.width,height:r.height,linear:r.linear},this._prepared=!0,!this._isInitialized&&this.videoTag)await this.initAdapter()}async initAdapter(){this.log("initAdapter",this.opts);try{await this.initialize(this.opts),this._isInitialized=!0}catch(r){this.log("initAdapter failed:",r),this._prepared=!1,this.eventHandler.trigger(hl)}}isReady(){return!!this._isInitialized}setVideoTag(r){this.videoTag=r,this.customPlaybackEnabled=!1,r.root.classList.toggle("ads-custom-playback-enabled",this.customPlaybackEnabled)}setAdBreakTime(r){this._adBreakTime=r}getAdBreakTime(){return this._adBreakTime}isCustomPlaybackEnabled(){return this.customPlaybackEnabled}isAttemptingPrerollOnIOS(){return!!this?.videoTag?.root.classList.contains("preroll-ios")}setAttemptingPrerollOnIOS(r){this?.videoTag?.root.classList.toggle("preroll-ios",r)}isLinearAd(){return!!this._adLinear}getVideoTag(){return this.videoTag}getDimensions(){return this._dimensions||{}}getOpts(){return this.opts}isPaused(){return this._paused}destroy(){let r=this;Ds(this._timers),this._adHandlers?.forEach((l)=>l()),r._adHandlers=void 0,this._adDisplayContainer?.destroy(),r._adDisplayContainer=void 0,this._adsLoader?.destroy(),r._adsLoader=void 0,this._adsManager?.destroy(),r._adsManager=void 0}stop(){this._adsManager?.stop()}initialize(r){let l=this.isAdPod(),d=this._adLoaded||l;if(this.cleanup(),!this.videoTag)return console.warn("videoTag not set during initialization");this.opts=r,this._volumeLevel=r.volume;let v=this.google.ima.settings;try{}catch(E){}if(r.NumRedirects=r.NumRedirects||r.redirects,v.setVpaidMode(r.VpaidMode||this.google.ima.ImaSdkSettings.VpaidMode.INSECURE),v.setDisableCustomPlaybackForIOS10Plus(!this.customPlaybackEnabled),v.setAutoPlayAdBreaks(!1),"NumRedirects"in r)v.setNumRedirects(r.NumRedirects);if("Locale"in r)v.setLocale(r.Locale);if("Ppid"in r)v.setPpid(r.Ppid);if(!document.body.contains(r.container))throw Error("AdDisplayContainer was not found in the document.body");if(this._adDisplayContainer=new this.google.ima.AdDisplayContainer(r.container,this.videoTag),this._adDisplayContainer.initialize(),this._adsLoader=new this.google.ima.AdsLoader(this._adDisplayContainer),this.log("ima.initialise(:wait -> ADS_MANAGER_LOADED)",{...r,volume:this.videoTag.volume,muted:this.videoTag.muted}),this._adsLoader.addEventListener(this.google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,(E)=>{if(!this.videoTag)return;this.log(`ima.initialise(:done -> ADS_MANAGER_LOADED)
196
- %o`,{...r,volume:this.videoTag.volume,muted:this.videoTag.muted});let A=new this.google.ima.AdsRenderingSettings;this.log("ima.rendering(preload: %s)",!!r.preload_ads),A.useStyledNonLinearAds=!0,A.enablePreloading=!!r.preload_ads,A.loadVideoTimeout=r.media_timeout||-1,A.restoreCustomPlaybackStateOnAdBreakComplete=this.customPlaybackEnabled,this.customPlaybackEnabled&&(A.playAdsAfterTime=this.videoTag.currentTime),this.eventHandler.trigger(rh,A);let R=this._adsManager=E.getAdsManager(this.videoTag,A);this.eventHandler.trigger(ih,R),R.addEventListener(this.google.ima.AdEvent.Type.LOADED,()=>{this.log("debug(ima.adsManager): google.ima.AdEvent.Type.LOADED")}),R.addEventListener(this.google.ima.AdErrorEvent.Type.AD_ERROR,()=>{this.log("debug(ima.adsManager): google.ima.AdErrorEvent.Type.AD_ERROR")}),R.addEventListener(this.google.ima.AdEvent.Type.STARTED,()=>{this.log("debug(ima.adsManager): google.ima.AdEvent.Type.STARTED")}),R.addEventListener(this.google.ima.AdEvent.Type.AD_PROGRESS,(X)=>{let b=X.getAdData()?.duration,G=X.getAdData()?.currentTime;if(Number.isNaN(b)||Number.isNaN(G))return;this._currentRemaining=b-G,this.eventHandler.trigger(zn,{remaining:this._currentRemaining,duration:b})}),R.addEventListener(this.google.ima.AdEvent.Type.STARTED,(X)=>{this._currentRemaining=-1,this.debugEvent(X);let b=X.getAd();if(!b)return;if(this._currentDuration=b.getDuration(),this._currentDisplayTs=Date.now(),this.emitWithAd(rn,b),b.isLinear())wr.pollRemaining({ima:this,adsManager:R})}),R.addEventListener(this.google.ima.AdEvent.Type.COMPLETE,(X)=>{this.debugEvent(X);let b=X.getAd();if(b)this.emitWithAd(Ls,b);Ds(this._timers)}),R.addEventListener(this.google.ima.AdEvent.Type.SKIPPED,(X)=>{this.debugEvent(X);let b=X.getAd();if(b)this.emitWithAd(ws,b)}),R.addEventListener(this.google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED,(X)=>{if(this.isAdPod()&&this.videoTag){let G=Math.abs(this.videoTag.currentTime-this.videoTag.duration)<1?-1:this.videoTag.currentTime;this.setAdBreakTime(G)}this.debugEvent(X);let b=X.getAd();if(b)this.emitWithAd(Pa,b)}),R.addEventListener(this.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,(X)=>{if(R.getRemainingTime()!==-1)return;this.debugEvent(X),this._started=!1,this._currentDisplayTs=0,this.eventHandler.trigger(Wi,{force:!0})}),R.addEventListener(this.google.ima.AdEvent.Type.VOLUME_CHANGED,(X)=>{this.log("IMA::volume(type: %s, event: %o)",X);let b=R.getVolume();this._volumeLevel=b,this.eventHandler.trigger(Rc,b)});let T=(X)=>{this._paused=X,this.eventHandler.trigger(X?xa:dl)};R.addEventListener(this.google.ima.AdEvent.Type.PAUSED,()=>T(!0)),R.addEventListener(this.google.ima.AdEvent.Type.RESUMED,()=>T(!1)),R.addEventListener(this.google.ima.AdEvent.Type.STARTED,()=>T(!1)),R.addEventListener(this.google.ima.AdEvent.Type.VOLUME_MUTED,(X)=>{this.log("IMA::volume(type: %s, event: %o)","mute",X),this.eventHandler.trigger(Jd)});let{width:L,height:O}=r;if(!L||!O)return;R.init(L,O,this.google.ima.ViewMode.NORMAL),this.log("ima.initialise: done initializing")}),d)this.log("Event(reload: %s)",Ua),this.eventHandler.trigger(Ua,l);this.eventHandler.trigger(ll,this)}destroyManager(r="unknown"){if(!this._adsManager)return this.log("ima::destroyManager(:skip, label: %s)",r);this.log("ima::destroyManager(:ok, label: %s)",r),this._adsManager.destroy()}reset(){this.destroyManager("reset"),Ds(this._timers),this.clearAdHandlers(),this._started=!1,this._adLoaded=!1}cleanup(){if(this.destroyManager("cleanup"),this._adsLoader)this._adsLoader.destroy();if(this._adDisplayContainer)this._adDisplayContainer.destroy();this._adLoaded=!1}waitForAdsManager(){return new Promise((r)=>{this.log("ima.waitForAdsManager:",this._adsManager),this.once(this._adsLoader,this.google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,()=>{this.log("ima.waitForAdsManager(:ok)",this._adsManager),r(this._adsManager)})})}async initAd(r,l=5000){if(this.log(`ima.initAd(adTag: ${r}, timeout: ${l})`),!this.customPlaybackEnabled)this.loadingController.adRequestStart(this.opts.total_loading_timeout);try{if(await this.requestAd(r,this.loadingController.getRemainingAdLoadTime(l,this.opts.total_loading_timeout)),this._adLoaded=!0,this.customPlaybackEnabled)return;this._adsManager?.updateAdsRenderingSettings({loadVideoTimeout:this.loadingController.getRemainingAdLoadTime(this.opts.media_timeout||-1,this.opts.total_loading_timeout)})}catch(d){throw this.log("ima.initAd:",d),this._adLoaded=!1,d}finally{Ds(this._timers)}}async requestAd(r,l){if(this.destroyManager("requestAd"),!this.videoTag)return;this.setAdBreakTime(this.videoTag.currentTime);let{autoplay:d=!1}=this.opts,v=Date.now(),E=this.videoTag.muted;this._volumeLevel=this.videoTag.volume;let A=E||this._volumeLevel===0;this._all_ads_completed=!1,this.log("ima.requestAd(%o)",{...this.opts,autoplay:d,muted:E,timeout:l,adTag:r,_volumeLevel:this._volumeLevel,manager:this._adsManager}),this.clearAdHandlers();let R=new this.google.ima.AdsRequest;R.adTagUrl=r;let{height:T,width:L}=this.opts;if(L)R.linearAdSlotWidth=L;if(T)R.linearAdSlotHeight=T;if(!this.opts.disable_non_linear_ads&&L)R.nonLinearAdSlotWidth=L;if(!this.opts.disable_non_linear_ads&&T)R.nonLinearAdSlotHeight=T-50;if(R.setAdWillAutoPlay(d),R.setAdWillPlayMuted(A),R.vastLoadTimeout=l,this.eventHandler.trigger(nh,{request:R}),!this._adsLoader)return;return new Promise(async(O,X)=>{let b=this.waitForAdsManager();this._adsLoader?.requestAds(R),this.once(this._adsLoader,this.google.ima.AdErrorEvent.Type.AD_ERROR,(G)=>{X(()=>{return this.emitError(jn,G),Promise.reject(Error("Ad load failed"))})}),setTimeout(()=>{X(()=>{b.then((N)=>{if(N.destroy(),this._adsManager===N)this._adsManager=void 0});let G=Error("Ad internal timeout reached");return this.eventHandler.trigger(Qd,G),Promise.reject(G)})},l),O(await b)}).then((O)=>{return new Promise((X,b)=>{this.volume(A?0:this._volumeLevel),this.eventHandler.trigger(Rc,this._volumeLevel);let G=this.cuepoints();if(G?.length&&G[0]!==0)return X({ad:!1,adsManager:O});this.once(O,this.google.ima.AdErrorEvent.Type.AD_ERROR,(N)=>{b(()=>{return this.emitError(jn,N),Promise.reject(N)})}),this.once(O,this.google.ima.AdEvent.Type.ALL_ADS_COMPLETED,()=>{this._all_ads_completed=!0,X(null)}),this.once(O,this.google.ima.AdEvent.Type.LOADED,(N)=>{this.eventHandler.trigger(ul,{request_load_time:Date.now()-v});let K=N.getAd();if(!K)return;if(this.log("ima.requestAd: AD_REQUEST_COMPLETED",K.getContentType()),K.getContentType()==="application/javascript")this.eventHandler.trigger(eh,K);X(null)}),this.once(O,this.google.ima.AdEvent.Type.CLICK,()=>{this.log("ima.requestAd: click event"),this.pause()})})},(O)=>O())}async playAd(){if(this.log("ima.playAd()",this),!this._adsManager||!this._adLoaded)return;let r=this.currentAd();if(!r)return;if(this.customPlaybackEnabled&&!r.isLinear())return;try{await this.startAndWaitForAdCompletion(this._adsManager,r.isLinear())}catch(l){throw this.log("ima.playAd",l),l}finally{this._adLoaded=!1,Ds(this._timers)}}startAndWaitForAdCompletion(r,l){if(this._started)return;return this.log("ima.startAndWaitForAdCompletion(manager: %o)",{volume:r.getVolume()}),new Promise((d,v)=>{let E=!1;this.once(r,this.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,()=>{if(this.log("ima.startAndWaitForAdCompletion: CONTENT_RESUME_REQUESTED <<< happened"),this._started=!1,E)return this.log("ima.startAndWaitForAdCompletion: Content resume requested, but trying to recover from ad error");d()}),this.once(r,this.google.ima.AdErrorEvent.Type.AD_ERROR,async(T)=>{this.log("ima.startAndWaitForAdCompletion: beginning error recovery ->",T),E=!0;try{let{ok:L}=await wr.pollForFatalError({err:T,ima:this});if(L)E=!1}catch(L){this._started=!1,v(T)}});let A=this.getVideoTag();if(!A)return;let R=()=>{if(l)this._started=!0;r.start(),this.eventHandler.trigger(fl)};if(!l||A.hasState("is-in-viewport"))return R();if(!A.paused)A.pause();A.once(uh.VIEW_ENTER,()=>R())})}pause(){this.log("ima.pause()"),this._adsManager?.pause()}resume(){this.log("ima.resume()"),this._adsManager?.resume()}volume(r){if(!this._adsManager)return;try{if(arguments.length>0&&typeof r==="number")this._adsManager.setVolume(r);return this._volumeLevel=this._adsManager.getVolume()}catch(l){this.log("ima.volume() failed (%o)",l)}}onResize({width:r,height:l,linear:d,silent:v,resize_non_linear:E}){if(!this._adsManager)return;if(this._adLinear=typeof d>"u"?this._adLinear:d,!this.opts)return;if(!r&&!l)return;if(d===!1)r=r+10,l=l+10;if(this._dimensions={width:r,height:l,linear:d},d)this.opts.width=r,this.opts.height=l;if(!this._adLinear&&!E)return;if(!v)this.log("ima.onResize %s x %s",r,l);this._adsManager.resize(r,l,this.google.ima.ViewMode.NORMAL)}onAdRequestEnd(){if(this.customPlaybackEnabled)return;this.loadingController.adRequestEnd(),this._adsManager?.updateAdsRenderingSettings({loadVideoTimeout:this.opts.media_timeout||-1})}getAdInfo(){let r=this.currentAd();if(!r)return;return{duration:r.getDuration(),currentTime:this._currentRemaining}}currentAd(){let r=this._adsManager;if(!r)return;return r.getCurrentAd()}isAdPod(){let r=this.cuepoints();return!!(r&&r.length>0)}cuepoints(){return this._adsManager?.getCuePoints()}async contentComplete(){this.log("ima.contentComplete() -> ",this),this._adsLoader?.contentComplete();let r=this.cuepoints();if(!r||r.indexOf(-1)===-1)return;await new Promise((l)=>{wr.race(this.eventHandler,[Wi,ml],l)})}isUiDisabled(){try{let r=this.currentAd();return r&&r.isUiDisabled()}catch(r){return null}}getAdPodInfo(){try{return this.currentAd()?.getAdPodInfo()}catch(r){return null}}canDismissNonLinear(){let r=this.currentAd();if(!r||r.isLinear()||!this._adsManager||!this._currentDisplayTs)return!0;let l=Date.now(),d=r.getMinSuggestedDuration();return l-this._currentDisplayTs>d*1000}static unwrapError(r,l){if(!r)return"";if(typeof r.getMessage==="function")return r.getMessage();if(r.message)return r.message;return l||""}static pollForFatalError({err:r,ima:l}){let d;try{let E=r.getError(),A=E.getInnerError();d={reason:A?wr.unwrapError(A,E.message):"",type:E.getType(),code:E.getErrorCode()}}catch(E){}let v=l._currentRemaining;return new Promise((E,A)=>{let R=setTimeout(()=>{if(l.eventHandler)l.eventHandler.trigger(_s,d);A(Error("Ad not progressing"))},2500);l.eventHandler.once(zn,(T)=>{let L=T.detail.remaining;if(L!==-1&&L<v)clearTimeout(R),E({ok:1})})})}static pollRemaining({ima:r,adsManager:l}){let d=-1;return ch(r._timers,250,()=>{let v=l.getRemainingTime();if(r._currentRemaining!==-1&&r._currentRemaining<=v)return;if(r._currentRemaining=l.getRemainingTime(),d===r._currentRemaining)return;d=r._currentRemaining,r.eventHandler.trigger(zn,{remaining:r._currentRemaining,duration:r._currentDuration})})}once(r,l,d){this._adHandlers.push(sh(r,l,d))}static race(r,l,d){l.forEach((v)=>{let E=(...A)=>{l.forEach((R)=>r.removeListener(R,E)),d(A)};r.on(v,E)})}clearAdHandlers(){this.log("ima.clearAdHandlers"),this._adHandlers.forEach((r)=>r()),this._adHandlers=[]}emitWithAd(r,l){if(this.log("ima.emitWithAd",r,l),!this._adsManager)return;let d=oh(l),v=lh(l),E={ad:{duration:l.getDuration(),width:l.getWidth(),height:l.getHeight(),position:d,totals:v},volume:this._adsManager.getVolume(),vast_ad_id:l.getAdId(),linear:l.isLinear(),mime_type:l.getContentType(),ima_event:!0};this.log(`emitWithAd::event(name: ${r}, data: %o, ad: %o)`,E,l),this.eventHandler.trigger(r,E)}emitError(r,l){let d={vast_error_type:l.getError().getType(),reason:l.getError().getMessage(),vast_error:l.getError().getErrorCode()};this.log(`ima.error(${r})`,d),this.eventHandler.trigger(r,d)}debugEvent(r){try{let l=r.getAd();if(!l)return;this.log(`ima.event.${r.type} ->`,{event:r,data:r.getAdData(),position:ah(l),ad:l})}catch(l){}}}function dh(r,l){return r.adapter?new r.adapter(l):new wr(l)}var Kv=Re("fpads:ads:state");class yl{_state;static of(){return new yl}constructor(r=0){this._state=r}reset(){this._state=0}toggleState(r,l){if(typeof r>"u")Kv(Error("AdState cannot toggleState for `undefined`"));if(typeof l>"u")return this._state^=r;if(!l)return this._state&=~r;this._state|=r}hasAll(r){return this._state===(this._state|r)}hasAny(r){return!!(this._state&r)}get state(){return this._state}}var Cc={URL:"https://fp-eu-w1-aai.flowplayer.com/in",METHOD:"POST"},hh=[cl,jn,ul,Ls,rn,ml,ws],fh=["event_type","ad_tag_id","media_id","player_id","site_id","sitegroup_id","rnd","os","device","browser","browser_version","plugin_version","player_version"],mh=["vast_error","reason","request_load_time","ad_type","vast_ad_id"];var ph=Ne(gh(),1);var Wv=ph.default.parse(window.navigator.userAgent),{platform:Yv,os:Oc,browser:Mc}=Wv,Nc=(r)=>r?.toLowerCase(),vh={rnd:Math.random().toString(36).substr(2,32),os:Nc(Oc.name+(Oc.versionName?` ${Oc.versionName}`:"")),device:Nc(Yv.type),browser:Nc(Mc.name),browser_version:((Mc?.version)?Mc.version:"unknown").split(".").shift(),plugin_version:rl};var Yi={ok:Re("fpads:analytics:request-queue"),err:Re("fpads:analytics:request-queue:err"),warn:Re("fpads:analytics:request-queue:warn")};class _e{pending;open;stats;static MAX_OPEN_REQUESTS=3;static REQUEST_TIMEOUT_MS=4000;static REQUEST_TTL_MS=5000;static MAX_FAILURE_COUNT=3;static of(){return new _e}static is_empty(r){return r.pending.length===0}static is_high_water(r){return r.open.length===_e.MAX_OPEN_REQUESTS}static maybe_spawn_req(r){if(_e.is_empty(r))return Yi.ok("maybe_spawn_req called Queue that is EMPTY"),r;if(_e.is_high_water(r))return Yi.warn("maybe_spawn_req called on Queue that is HIGH_WATER"),r;try{let l=_e.lpop(r);if(l)_e.request(r,l)}catch(l){Yi.err(l)}}static increment_failures(r){if(r.stats.failures++,r.stats.failures>_e.MAX_FAILURE_COUNT)r.stats.ttl=Date.now()+_e.REQUEST_TTL_MS;return r}static handle_error(r,l){_e.rm(r,l),_e.increment_failures(r)}static request(r,[l,d,v]){if(Yi.ok(`Request[${v.event_type}] request`,v,r.stats),Date.now()<r.stats.ttl)return Yi.warn(`Request[${v.event_type}] skipping because too many errors too quickly`,r.stats);let E=new XMLHttpRequest;r.open.push(E),E.timeout=_e.REQUEST_TIMEOUT_MS,E.ontimeout=()=>{_e.handle_error(r,E),Yi.warn(`Request[${v.event_type}] timed out in ${E.timeout}ms`,r.stats)},E.onerror=(A)=>{if(_e.handle_error(r,E),A)Yi.err(A);Yi.warn(`Request[${v.event_type}] encountered an Error`,E.responseText,r.stats)},E.onreadystatechange=()=>{if(E.readyState===XMLHttpRequest.DONE)_e.rm(r,E);if(Math.floor(E.status/100)===2)return},E.onload=()=>{if(_e.rm(r,E),r.stats.failures)r.stats.failures--;Yi.ok(`Request[${v.event_type}] :ok`,E.status)},E.open(d,l),E.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{E.send(JSON.stringify(v))}catch(A){Yi.err(A)}}static rpush(r,...l){return l.forEach((d)=>{if(_e.is_high_water(r))return Yi.warn("Too many open requests, skipping",r.stats);r.pending.push(d),_e.maybe_spawn_req(r)}),r}static lpop(r){return r.pending.shift()}static rm(r,l){let d=r.open.lastIndexOf(l);if(~d)r.open.splice(d,1);return r}constructor(r=[],l=[],d={failures:0,ttl:0}){this.pending=r;this.open=l;this.stats=d}}var Fc=Re("ads/analytics"),jv=_e.of(),Pc=(...r)=>Object.assign({},...r),zv=(r,...l)=>Object.keys(r).filter((d)=>~l.indexOf(d)).reduce((d,v)=>Object.assign(d,{[v]:r[v]}),{});class sn{emitter;static of(r,l){return new sn(r,l)}static ensure_required_keys(r,l){return r.required_keys.filter((d)=>!(d in l))}static pluck_valid_keys(r,l){return zv(l,...r.valid_keys)}static mergeMetadata(r,l={}){return r.metadata=sn.pluck_valid_keys(r,Pc(r.metadata,l,{player_version:rl})),r}events;required_keys;optional_keys;valid_keys;metadata;constructor(r,l={}){this.emitter=r;this.metadata=Pc(vh,l.metadata||{}),this.emitter=r,this.events=l.events||[],this.required_keys=l.required_keys||[],this.optional_keys=l.optional_keys||[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Fc(this),this.wireup()}wireup(){this.events.forEach((r)=>{this.emitter.on(r,(l)=>{let d=l.detail,v=Pc(this.metadata,{event_type:r},d),E=sn.pluck_valid_keys(this,v),A=sn.ensure_required_keys(this,E);if(Fc(`Event[${r}]`,{payload:E,observation:d}),A.length)return Fc(`Analytics.validate_metadata() failed for
197
- Event[${r}]
198
- missing keys: ${A}`,E);_e.rpush(jv,[Cc.URL,Cc.METHOD,E])})})}destroy(){let r=this;r.emitter=r.metadata=r.events=r.required_keys=r.optional_keys=r.valid_keys=void 0}}var Eh=(r)=>sn.of(r,{required_keys:fh,optional_keys:mh,events:hh});var Vc=Ne(kh(),1);var mE=Re("fpads:macros"),Dh=/\[([\s\S]+?)\]/g,gE=/\{([\s\S]+?)\}/g,pE=/__([\s\S]+?)__/g;class ci{vars;pattern;static patterns={BRACKETS:Dh,CURLY:gE,UNDERSCORE:pE};static run(r){try{return r()}catch(l){console.error(l);return}}static merge(...r){return r.reduce((l,d)=>{return Object.assign(l,d)},{})}static cast(r){if(typeof r>"u")return"";if(typeof r==="function")return encodeURIComponent(ci.run(r)||"");if(typeof r==="string")return encodeURIComponent(r);if(typeof r==="number")return r.toString();if(typeof r==="boolean")return r.toString();return""}static normalize(r){return r.trim()}static process_obj(r,l,d){return Object.keys(r).reduce((v,E)=>{let A=ci.process_str(E,l,d,!0),R=r[E];if(R===null)return v[A]=R,v;if(typeof R==="object")return v[A]=ci.process_obj(R,l,d),v;if(typeof R==="string")return v[A]=ci.process_str(R,l,d),v;return console.error(Error(`${R} at ${E} not a handled Macro type`)),v},{})}static process_str(r,l,d,v=!1){return r.replace(l.pattern,(E,A)=>{let R=ci.normalize(A);if(!(R in d)||typeof d[R]>"u")return E;let T=d[R],L=v?T:ci.cast(T);return mE("Macro.replace(raw: %s, macro: %s, value: %s)",v,A,L),L})}constructor(r={},l=Dh){this.vars=r;this.pattern=l}fork(r={},l=this.pattern){let d=ci.merge(this.vars,r);return new ci(d,l)}compile(r,l={}){let d=ci.merge(this.vars,l),[v,E]=r.split("?"),A=Vc.default.parse(E||"",{strictNullHandling:!0,decoder:(T)=>T}),R=Vc.default.stringify(ci.process_obj(A,this,d),{encode:!1,strictNullHandling:!0});return ci.process_str(v,this,d,!0)+"?"+R}}var Ch=/^flowplayer:\/\/(.+)/;async function bl(r){if(typeof r==="string"&&Ch.test(r)){let l=Ch.exec(r),d=l&&window[l[1]];if(d)return bl(d)}if(typeof r!=="function")return r;try{return await r()}catch(l){return""}}async function Wc(r){if(typeof r==="function")return[await bl(r)];if(typeof r==="string")return[await bl(r)];if(Array.isArray(r)){let l=r;return await Promise.all(l.map(bl))}if(typeof r==="object"&&r&&r.adTag)return await Wc(r.adTag);throw Error(`
199
- unhandled ads type ${typeof r}:
200
- ${JSON.stringify(r)}
192
+ `;document.head.prepend(nd);var ki={SPIN_CREATED:"spin:created",SPIN_IN_VIEWPORT:"spin:viewport"},Io={CAN_PLAY:"canplay",TIME_UPDATE:"timeupdate",PLAYING:"playing",WAITING:"waiting",PAUSE:"pause",PLAY:"play",SEEKING:"seeking",ENDED:"ended"},Oo={AD_TEARDOWN:"ad-teardown",AD_COMPLETED:"ad-completed",AD_REQUEST_ERROR:"ad-request-error",AD_STARTED:"ad-started",AD_ERROR:"ad-error",AD_PLAYBACK_ERROR:"ad-playback-error",AD_BREAK_COMPLETED:"ad-break-completed",AD_PROGRESS:"ad-progress",AD_PAUSED:"ad-paused",AD_RESUMED:"ad-resumed",AD_PREROLL_FINSIHED:"ad-preroll-finished",AD_SKIPPED:"ad-skipped",AD_MUTED:"ad-muted",AD_VOLUME_CHANGED:"ad-volume-changed"};function gc(...n){let o=[].join.call(n,"/");if(o[0]!=="/")o="/"+o;return"https://ljsp.lwcdn.com/web/public/native/config"+o}function pc(n){return~n.indexOf("/")?n:"/media/"+n}var mm=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,gm=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,pm=/^[A-Za-z0-9]{8}$/,vm=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[A-Za-z0-9]{8}$/;function Em(n,o){if(mm.test(n)||gm.test(n))return o.type="video/ovp",!0;return!1}function ym(n,o){if(pm.test(n)||vm.test(n)){if(o)o.type="video/ovp";return!0}return!1}function Sm(n){return typeof n==="object"&&n.type==="ovp/base64"}function sd(n,o){return Em(n,o)||ym(n,o)||Sm(o)}var dt={};rd(dt,{void:()=>ng,util:()=>re,unknown:()=>ig,union:()=>lg,undefined:()=>Zm,tuple:()=>dg,transformer:()=>bg,symbol:()=>Qm,string:()=>md,strictObject:()=>og,setErrorMap:()=>_m,set:()=>mg,record:()=>hg,quotelessJson:()=>bm,promise:()=>Sg,preprocess:()=>Ag,pipeline:()=>Lg,ostring:()=>wg,optional:()=>Tg,onumber:()=>Rg,oboolean:()=>kg,objectUtil:()=>vc,object:()=>ag,number:()=>gd,nullable:()=>_g,null:()=>tg,never:()=>rg,nativeEnum:()=>yg,nan:()=>qm,map:()=>fg,makeIssue:()=>wa,literal:()=>vg,lazy:()=>pg,late:()=>jm,isValid:()=>$r,isDirty:()=>No,isAsync:()=>ls,isAborted:()=>Mo,intersection:()=>ug,instanceof:()=>zm,getParsedType:()=>Zi,getErrorMap:()=>os,function:()=>gg,enum:()=>Eg,effect:()=>bg,discriminatedUnion:()=>cg,defaultErrorMap:()=>br,datetimeRegex:()=>dd,date:()=>Jm,custom:()=>fd,coerce:()=>Cg,boolean:()=>pd,bigint:()=>Xm,array:()=>sg,any:()=>eg,addIssueToContext:()=>Rt,ZodVoid:()=>ka,ZodUnknown:()=>Gr,ZodUnion:()=>ms,ZodUndefined:()=>hs,ZodType:()=>ee,ZodTuple:()=>er,ZodTransformer:()=>Ki,ZodSymbol:()=>Ra,ZodString:()=>$i,ZodSet:()=>Sn,ZodSchema:()=>ee,ZodRecord:()=>Ca,ZodReadonly:()=>bs,ZodPromise:()=>bn,ZodPipeline:()=>Oa,ZodParsedType:()=>_t,ZodOptional:()=>Hi,ZodObject:()=>Se,ZodNumber:()=>Hr,ZodNullable:()=>_r,ZodNull:()=>fs,ZodNever:()=>tr,ZodNativeEnum:()=>Es,ZodNaN:()=>Ia,ZodMap:()=>Da,ZodLiteral:()=>vs,ZodLazy:()=>ps,ZodIssueCode:()=>yt,ZodIntersection:()=>gs,ZodFunction:()=>us,ZodFirstPartyTypeKind:()=>Yt,ZodError:()=>li,ZodEnum:()=>Kr,ZodEffects:()=>Ki,ZodDiscriminatedUnion:()=>Po,ZodDefault:()=>ys,ZodDate:()=>En,ZodCatch:()=>Ss,ZodBranded:()=>xo,ZodBoolean:()=>ds,ZodBigInt:()=>Vr,ZodArray:()=>Gi,ZodAny:()=>yn,Schema:()=>ee,ParseStatus:()=>He,OK:()=>Xe,NEVER:()=>Dg,INVALID:()=>Vt,EMPTY_PATH:()=>Am,DIRTY:()=>vn,BRAND:()=>Ym});var re;(function(n){n.assertEqual=(E)=>{};function o(E){}n.assertIs=o;function d(E){throw Error()}n.assertNever=d,n.arrayToEnum=(E)=>{let A={};for(let R of E)A[R]=R;return A},n.getValidEnumValues=(E)=>{let A=n.objectKeys(E).filter((T)=>typeof E[E[T]]!=="number"),R={};for(let T of A)R[T]=E[T];return n.objectValues(R)},n.objectValues=(E)=>{return n.objectKeys(E).map(function(A){return E[A]})},n.objectKeys=typeof Object.keys==="function"?(E)=>Object.keys(E):(E)=>{let A=[];for(let R in E)if(Object.prototype.hasOwnProperty.call(E,R))A.push(R);return A},n.find=(E,A)=>{for(let R of E)if(A(R))return R;return},n.isInteger=typeof Number.isInteger==="function"?(E)=>Number.isInteger(E):(E)=>typeof E==="number"&&Number.isFinite(E)&&Math.floor(E)===E;function v(E,A=" | "){return E.map((R)=>typeof R==="string"?`'${R}'`:R).join(A)}n.joinValues=v,n.jsonStringifyReplacer=(E,A)=>{if(typeof A==="bigint")return A.toString();return A}})(re||(re={}));var vc;(function(n){n.mergeShapes=(o,d)=>{return{...o,...d}}})(vc||(vc={}));var _t=re.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Zi=(n)=>{switch(typeof n){case"undefined":return _t.undefined;case"string":return _t.string;case"number":return Number.isNaN(n)?_t.nan:_t.number;case"boolean":return _t.boolean;case"function":return _t.function;case"bigint":return _t.bigint;case"symbol":return _t.symbol;case"object":if(Array.isArray(n))return _t.array;if(n===null)return _t.null;if(n.then&&typeof n.then==="function"&&n.catch&&typeof n.catch==="function")return _t.promise;if(typeof Map<"u"&&n instanceof Map)return _t.map;if(typeof Set<"u"&&n instanceof Set)return _t.set;if(typeof Date<"u"&&n instanceof Date)return _t.date;return _t.object;default:return _t.unknown}};var yt=re.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),bm=(n)=>{return JSON.stringify(n,null,2).replace(/"([^"]+)":/g,"$1:")};class li extends Error{get errors(){return this.issues}constructor(n){super();this.issues=[],this.addIssue=(d)=>{this.issues=[...this.issues,d]},this.addIssues=(d=[])=>{this.issues=[...this.issues,...d]};let o=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,o);else this.__proto__=o;this.name="ZodError",this.issues=n}format(n){let o=n||function(E){return E.message},d={_errors:[]},v=(E)=>{for(let A of E.issues)if(A.code==="invalid_union")A.unionErrors.map(v);else if(A.code==="invalid_return_type")v(A.returnTypeError);else if(A.code==="invalid_arguments")v(A.argumentsError);else if(A.path.length===0)d._errors.push(o(A));else{let R=d,T=0;while(T<A.path.length){let L=A.path[T];if(T!==A.path.length-1)R[L]=R[L]||{_errors:[]};else R[L]=R[L]||{_errors:[]},R[L]._errors.push(o(A));R=R[L],T++}}};return v(this),d}static assert(n){if(!(n instanceof li))throw Error(`Not a ZodError: ${n}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,re.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(n=(o)=>o.message){let o={},d=[];for(let v of this.issues)if(v.path.length>0){let E=v.path[0];o[E]=o[E]||[],o[E].push(n(v))}else d.push(n(v));return{formErrors:d,fieldErrors:o}}get formErrors(){return this.flatten()}}li.create=(n)=>{return new li(n)};var Tm=(n,o)=>{let d;switch(n.code){case yt.invalid_type:if(n.received===_t.undefined)d="Required";else d=`Expected ${n.expected}, received ${n.received}`;break;case yt.invalid_literal:d=`Invalid literal value, expected ${JSON.stringify(n.expected,re.jsonStringifyReplacer)}`;break;case yt.unrecognized_keys:d=`Unrecognized key(s) in object: ${re.joinValues(n.keys,", ")}`;break;case yt.invalid_union:d="Invalid input";break;case yt.invalid_union_discriminator:d=`Invalid discriminator value. Expected ${re.joinValues(n.options)}`;break;case yt.invalid_enum_value:d=`Invalid enum value. Expected ${re.joinValues(n.options)}, received '${n.received}'`;break;case yt.invalid_arguments:d="Invalid function arguments";break;case yt.invalid_return_type:d="Invalid function return type";break;case yt.invalid_date:d="Invalid date";break;case yt.invalid_string:if(typeof n.validation==="object")if("includes"in n.validation){if(d=`Invalid input: must include "${n.validation.includes}"`,typeof n.validation.position==="number")d=`${d} at one or more positions greater than or equal to ${n.validation.position}`}else if("startsWith"in n.validation)d=`Invalid input: must start with "${n.validation.startsWith}"`;else if("endsWith"in n.validation)d=`Invalid input: must end with "${n.validation.endsWith}"`;else re.assertNever(n.validation);else if(n.validation!=="regex")d=`Invalid ${n.validation}`;else d="Invalid";break;case yt.too_small:if(n.type==="array")d=`Array must contain ${n.exact?"exactly":n.inclusive?"at least":"more than"} ${n.minimum} element(s)`;else if(n.type==="string")d=`String must contain ${n.exact?"exactly":n.inclusive?"at least":"over"} ${n.minimum} character(s)`;else if(n.type==="number")d=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`;else if(n.type==="bigint")d=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`;else if(n.type==="date")d=`Date must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(n.minimum))}`;else d="Invalid input";break;case yt.too_big:if(n.type==="array")d=`Array must contain ${n.exact?"exactly":n.inclusive?"at most":"less than"} ${n.maximum} element(s)`;else if(n.type==="string")d=`String must contain ${n.exact?"exactly":n.inclusive?"at most":"under"} ${n.maximum} character(s)`;else if(n.type==="number")d=`Number must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`;else if(n.type==="bigint")d=`BigInt must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`;else if(n.type==="date")d=`Date must be ${n.exact?"exactly":n.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(n.maximum))}`;else d="Invalid input";break;case yt.custom:d="Invalid input";break;case yt.invalid_intersection_types:d="Intersection results could not be merged";break;case yt.not_multiple_of:d=`Number must be a multiple of ${n.multipleOf}`;break;case yt.not_finite:d="Number must be finite";break;default:d=o.defaultError,re.assertNever(n)}return{message:d}},br=Tm;var ad=br;function _m(n){ad=n}function os(){return ad}var wa=(n)=>{let{data:o,path:d,errorMaps:v,issueData:E}=n,A=[...d,...E.path||[]],R={...E,path:A};if(E.message!==void 0)return{...E,path:A,message:E.message};let T="",L=v.filter((M)=>!!M).slice().reverse();for(let M of L)T=M(R,{data:o,defaultError:T}).message;return{...E,path:A,message:T}},Am=[];function Rt(n,o){let d=os(),v=wa({issueData:o,data:n.data,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,d,d===br?void 0:br].filter((E)=>!!E)});n.common.issues.push(v)}class He{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(n,o){let d=[];for(let v of o){if(v.status==="aborted")return Vt;if(v.status==="dirty")n.dirty();d.push(v.value)}return{status:n.value,value:d}}static async mergeObjectAsync(n,o){let d=[];for(let v of o){let E=await v.key,A=await v.value;d.push({key:E,value:A})}return He.mergeObjectSync(n,d)}static mergeObjectSync(n,o){let d={};for(let v of o){let{key:E,value:A}=v;if(E.status==="aborted")return Vt;if(A.status==="aborted")return Vt;if(E.status==="dirty")n.dirty();if(A.status==="dirty")n.dirty();if(E.value!=="__proto__"&&(typeof A.value<"u"||v.alwaysSet))d[E.value]=A.value}return{status:n.value,value:d}}}var Vt=Object.freeze({status:"aborted"}),vn=(n)=>({status:"dirty",value:n}),Xe=(n)=>({status:"valid",value:n}),Mo=(n)=>n.status==="aborted",No=(n)=>n.status==="dirty",$r=(n)=>n.status==="valid",ls=(n)=>typeof Promise<"u"&&n instanceof Promise;var Ut;(function(n){n.errToObj=(o)=>typeof o==="string"?{message:o}:o||{},n.toString=(o)=>typeof o==="string"?o:o?.message})(Ut||(Ut={}));class Vi{constructor(n,o,d,v){this._cachedPath=[],this.parent=n,this.data=o,this._path=d,this._key=v}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var od=(n,o)=>{if($r(o))return{success:!0,data:o.value};else{if(!n.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let d=new li(n.common.issues);return this._error=d,this._error}}}};function Qt(n){if(!n)return{};let{errorMap:o,invalid_type_error:d,required_error:v,description:E}=n;if(o&&(d||v))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(o)return{errorMap:o,description:E};return{errorMap:(R,T)=>{let{message:L}=n;if(R.code==="invalid_enum_value")return{message:L??T.defaultError};if(typeof T.data>"u")return{message:L??v??T.defaultError};if(R.code!=="invalid_type")return{message:T.defaultError};return{message:L??d??T.defaultError}},description:E}}class ee{get description(){return this._def.description}_getType(n){return Zi(n.data)}_getOrReturnCtx(n,o){return o||{common:n.parent.common,data:n.data,parsedType:Zi(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}_processInputParams(n){return{status:new He,ctx:{common:n.parent.common,data:n.data,parsedType:Zi(n.data),schemaErrorMap:this._def.errorMap,path:n.path,parent:n.parent}}}_parseSync(n){let o=this._parse(n);if(ls(o))throw Error("Synchronous parse encountered promise.");return o}_parseAsync(n){let o=this._parse(n);return Promise.resolve(o)}parse(n,o){let d=this.safeParse(n,o);if(d.success)return d.data;throw d.error}safeParse(n,o){let d={common:{issues:[],async:o?.async??!1,contextualErrorMap:o?.errorMap},path:o?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Zi(n)},v=this._parseSync({data:n,path:d.path,parent:d});return od(d,v)}"~validate"(n){let o={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Zi(n)};if(!this["~standard"].async)try{let d=this._parseSync({data:n,path:[],parent:o});return $r(d)?{value:d.value}:{issues:o.common.issues}}catch(d){if(d?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;o.common={issues:[],async:!0}}return this._parseAsync({data:n,path:[],parent:o}).then((d)=>$r(d)?{value:d.value}:{issues:o.common.issues})}async parseAsync(n,o){let d=await this.safeParseAsync(n,o);if(d.success)return d.data;throw d.error}async safeParseAsync(n,o){let d={common:{issues:[],contextualErrorMap:o?.errorMap,async:!0},path:o?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:n,parsedType:Zi(n)},v=this._parse({data:n,path:d.path,parent:d}),E=await(ls(v)?v:Promise.resolve(v));return od(d,E)}refine(n,o){let d=(v)=>{if(typeof o==="string"||typeof o>"u")return{message:o};else if(typeof o==="function")return o(v);else return o};return this._refinement((v,E)=>{let A=n(v),R=()=>E.addIssue({code:yt.custom,...d(v)});if(typeof Promise<"u"&&A instanceof Promise)return A.then((T)=>{if(!T)return R(),!1;else return!0});if(!A)return R(),!1;else return!0})}refinement(n,o){return this._refinement((d,v)=>{if(!n(d))return v.addIssue(typeof o==="function"?o(d,v):o),!1;else return!0})}_refinement(n){return new Ki({schema:this,typeName:Yt.ZodEffects,effect:{type:"refinement",refinement:n}})}superRefine(n){return this._refinement(n)}constructor(n){this.spa=this.safeParseAsync,this._def=n,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(o)=>this["~validate"](o)}}optional(){return Hi.create(this,this._def)}nullable(){return _r.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Gi.create(this)}promise(){return bn.create(this,this._def)}or(n){return ms.create([this,n],this._def)}and(n){return gs.create(this,n,this._def)}transform(n){return new Ki({...Qt(this._def),schema:this,typeName:Yt.ZodEffects,effect:{type:"transform",transform:n}})}default(n){let o=typeof n==="function"?n:()=>n;return new ys({...Qt(this._def),innerType:this,defaultValue:o,typeName:Yt.ZodDefault})}brand(){return new xo({typeName:Yt.ZodBranded,type:this,...Qt(this._def)})}catch(n){let o=typeof n==="function"?n:()=>n;return new Ss({...Qt(this._def),innerType:this,catchValue:o,typeName:Yt.ZodCatch})}describe(n){return new this.constructor({...this._def,description:n})}pipe(n){return Oa.create(this,n)}readonly(){return bs.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var Lm=/^c[^\s-]{8,}$/i,wm=/^[0-9a-z]+$/,Rm=/^[0-9A-HJKMNP-TV-Z]{26}$/i,km=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Cm=/^[a-z0-9_-]{21}$/i,Dm=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Im=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Om=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Mm="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Ec,Nm=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Pm=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,xm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Fm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Um=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Bm=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,cd="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",$m=new RegExp(`^${cd}$`);function ud(n){let o="[0-5]\\d";if(n.precision)o=`${o}\\.\\d{${n.precision}}`;else if(n.precision==null)o=`${o}(\\.\\d+)?`;let d=n.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${o})${d}`}function Gm(n){return new RegExp(`^${ud(n)}$`)}function dd(n){let o=`${cd}T${ud(n)}`,d=[];if(d.push(n.local?"Z?":"Z"),n.offset)d.push("([+-]\\d{2}:?\\d{2})");return o=`${o}(${d.join("|")})`,new RegExp(`^${o}$`)}function Hm(n,o){if((o==="v4"||!o)&&Nm.test(n))return!0;if((o==="v6"||!o)&&xm.test(n))return!0;return!1}function Vm(n,o){if(!Dm.test(n))return!1;try{let[d]=n.split(".");if(!d)return!1;let v=d.replace(/-/g,"+").replace(/_/g,"/").padEnd(d.length+(4-d.length%4)%4,"="),E=JSON.parse(atob(v));if(typeof E!=="object"||E===null)return!1;if("typ"in E&&E?.typ!=="JWT")return!1;if(!E.alg)return!1;if(o&&E.alg!==o)return!1;return!0}catch{return!1}}function Km(n,o){if((o==="v4"||!o)&&Pm.test(n))return!0;if((o==="v6"||!o)&&Fm.test(n))return!0;return!1}class $i extends ee{_parse(n){if(this._def.coerce)n.data=String(n.data);if(this._getType(n)!==_t.string){let E=this._getOrReturnCtx(n);return Rt(E,{code:yt.invalid_type,expected:_t.string,received:E.parsedType}),Vt}let d=new He,v=void 0;for(let E of this._def.checks)if(E.kind==="min"){if(n.data.length<E.value)v=this._getOrReturnCtx(n,v),Rt(v,{code:yt.too_small,minimum:E.value,type:"string",inclusive:!0,exact:!1,message:E.message}),d.dirty()}else if(E.kind==="max"){if(n.data.length>E.value)v=this._getOrReturnCtx(n,v),Rt(v,{code:yt.too_big,maximum:E.value,type:"string",inclusive:!0,exact:!1,message:E.message}),d.dirty()}else if(E.kind==="length"){let A=n.data.length>E.value,R=n.data.length<E.value;if(A||R){if(v=this._getOrReturnCtx(n,v),A)Rt(v,{code:yt.too_big,maximum:E.value,type:"string",inclusive:!0,exact:!0,message:E.message});else if(R)Rt(v,{code:yt.too_small,minimum:E.value,type:"string",inclusive:!0,exact:!0,message:E.message});d.dirty()}}else if(E.kind==="email"){if(!Om.test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"email",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="emoji"){if(!Ec)Ec=new RegExp(Mm,"u");if(!Ec.test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"emoji",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="uuid"){if(!km.test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"uuid",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="nanoid"){if(!Cm.test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"nanoid",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="cuid"){if(!Lm.test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"cuid",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="cuid2"){if(!wm.test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"cuid2",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="ulid"){if(!Rm.test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"ulid",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="url")try{new URL(n.data)}catch{v=this._getOrReturnCtx(n,v),Rt(v,{validation:"url",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="regex"){if(E.regex.lastIndex=0,!E.regex.test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"regex",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="trim")n.data=n.data.trim();else if(E.kind==="includes"){if(!n.data.includes(E.value,E.position))v=this._getOrReturnCtx(n,v),Rt(v,{code:yt.invalid_string,validation:{includes:E.value,position:E.position},message:E.message}),d.dirty()}else if(E.kind==="toLowerCase")n.data=n.data.toLowerCase();else if(E.kind==="toUpperCase")n.data=n.data.toUpperCase();else if(E.kind==="startsWith"){if(!n.data.startsWith(E.value))v=this._getOrReturnCtx(n,v),Rt(v,{code:yt.invalid_string,validation:{startsWith:E.value},message:E.message}),d.dirty()}else if(E.kind==="endsWith"){if(!n.data.endsWith(E.value))v=this._getOrReturnCtx(n,v),Rt(v,{code:yt.invalid_string,validation:{endsWith:E.value},message:E.message}),d.dirty()}else if(E.kind==="datetime"){if(!dd(E).test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{code:yt.invalid_string,validation:"datetime",message:E.message}),d.dirty()}else if(E.kind==="date"){if(!$m.test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{code:yt.invalid_string,validation:"date",message:E.message}),d.dirty()}else if(E.kind==="time"){if(!Gm(E).test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{code:yt.invalid_string,validation:"time",message:E.message}),d.dirty()}else if(E.kind==="duration"){if(!Im.test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"duration",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="ip"){if(!Hm(n.data,E.version))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"ip",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="jwt"){if(!Vm(n.data,E.alg))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"jwt",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="cidr"){if(!Km(n.data,E.version))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"cidr",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="base64"){if(!Um.test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"base64",code:yt.invalid_string,message:E.message}),d.dirty()}else if(E.kind==="base64url"){if(!Bm.test(n.data))v=this._getOrReturnCtx(n,v),Rt(v,{validation:"base64url",code:yt.invalid_string,message:E.message}),d.dirty()}else re.assertNever(E);return{status:d.value,value:n.data}}_regex(n,o,d){return this.refinement((v)=>n.test(v),{validation:o,code:yt.invalid_string,...Ut.errToObj(d)})}_addCheck(n){return new $i({...this._def,checks:[...this._def.checks,n]})}email(n){return this._addCheck({kind:"email",...Ut.errToObj(n)})}url(n){return this._addCheck({kind:"url",...Ut.errToObj(n)})}emoji(n){return this._addCheck({kind:"emoji",...Ut.errToObj(n)})}uuid(n){return this._addCheck({kind:"uuid",...Ut.errToObj(n)})}nanoid(n){return this._addCheck({kind:"nanoid",...Ut.errToObj(n)})}cuid(n){return this._addCheck({kind:"cuid",...Ut.errToObj(n)})}cuid2(n){return this._addCheck({kind:"cuid2",...Ut.errToObj(n)})}ulid(n){return this._addCheck({kind:"ulid",...Ut.errToObj(n)})}base64(n){return this._addCheck({kind:"base64",...Ut.errToObj(n)})}base64url(n){return this._addCheck({kind:"base64url",...Ut.errToObj(n)})}jwt(n){return this._addCheck({kind:"jwt",...Ut.errToObj(n)})}ip(n){return this._addCheck({kind:"ip",...Ut.errToObj(n)})}cidr(n){return this._addCheck({kind:"cidr",...Ut.errToObj(n)})}datetime(n){if(typeof n==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:n});return this._addCheck({kind:"datetime",precision:typeof n?.precision>"u"?null:n?.precision,offset:n?.offset??!1,local:n?.local??!1,...Ut.errToObj(n?.message)})}date(n){return this._addCheck({kind:"date",message:n})}time(n){if(typeof n==="string")return this._addCheck({kind:"time",precision:null,message:n});return this._addCheck({kind:"time",precision:typeof n?.precision>"u"?null:n?.precision,...Ut.errToObj(n?.message)})}duration(n){return this._addCheck({kind:"duration",...Ut.errToObj(n)})}regex(n,o){return this._addCheck({kind:"regex",regex:n,...Ut.errToObj(o)})}includes(n,o){return this._addCheck({kind:"includes",value:n,position:o?.position,...Ut.errToObj(o?.message)})}startsWith(n,o){return this._addCheck({kind:"startsWith",value:n,...Ut.errToObj(o)})}endsWith(n,o){return this._addCheck({kind:"endsWith",value:n,...Ut.errToObj(o)})}min(n,o){return this._addCheck({kind:"min",value:n,...Ut.errToObj(o)})}max(n,o){return this._addCheck({kind:"max",value:n,...Ut.errToObj(o)})}length(n,o){return this._addCheck({kind:"length",value:n,...Ut.errToObj(o)})}nonempty(n){return this.min(1,Ut.errToObj(n))}trim(){return new $i({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new $i({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new $i({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((n)=>n.kind==="datetime")}get isDate(){return!!this._def.checks.find((n)=>n.kind==="date")}get isTime(){return!!this._def.checks.find((n)=>n.kind==="time")}get isDuration(){return!!this._def.checks.find((n)=>n.kind==="duration")}get isEmail(){return!!this._def.checks.find((n)=>n.kind==="email")}get isURL(){return!!this._def.checks.find((n)=>n.kind==="url")}get isEmoji(){return!!this._def.checks.find((n)=>n.kind==="emoji")}get isUUID(){return!!this._def.checks.find((n)=>n.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((n)=>n.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((n)=>n.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((n)=>n.kind==="cuid2")}get isULID(){return!!this._def.checks.find((n)=>n.kind==="ulid")}get isIP(){return!!this._def.checks.find((n)=>n.kind==="ip")}get isCIDR(){return!!this._def.checks.find((n)=>n.kind==="cidr")}get isBase64(){return!!this._def.checks.find((n)=>n.kind==="base64")}get isBase64url(){return!!this._def.checks.find((n)=>n.kind==="base64url")}get minLength(){let n=null;for(let o of this._def.checks)if(o.kind==="min"){if(n===null||o.value>n)n=o.value}return n}get maxLength(){let n=null;for(let o of this._def.checks)if(o.kind==="max"){if(n===null||o.value<n)n=o.value}return n}}$i.create=(n)=>{return new $i({checks:[],typeName:Yt.ZodString,coerce:n?.coerce??!1,...Qt(n)})};function Wm(n,o){let d=(n.toString().split(".")[1]||"").length,v=(o.toString().split(".")[1]||"").length,E=d>v?d:v,A=Number.parseInt(n.toFixed(E).replace(".","")),R=Number.parseInt(o.toFixed(E).replace(".",""));return A%R/10**E}class Hr extends ee{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(n){if(this._def.coerce)n.data=Number(n.data);if(this._getType(n)!==_t.number){let E=this._getOrReturnCtx(n);return Rt(E,{code:yt.invalid_type,expected:_t.number,received:E.parsedType}),Vt}let d=void 0,v=new He;for(let E of this._def.checks)if(E.kind==="int"){if(!re.isInteger(n.data))d=this._getOrReturnCtx(n,d),Rt(d,{code:yt.invalid_type,expected:"integer",received:"float",message:E.message}),v.dirty()}else if(E.kind==="min"){if(E.inclusive?n.data<E.value:n.data<=E.value)d=this._getOrReturnCtx(n,d),Rt(d,{code:yt.too_small,minimum:E.value,type:"number",inclusive:E.inclusive,exact:!1,message:E.message}),v.dirty()}else if(E.kind==="max"){if(E.inclusive?n.data>E.value:n.data>=E.value)d=this._getOrReturnCtx(n,d),Rt(d,{code:yt.too_big,maximum:E.value,type:"number",inclusive:E.inclusive,exact:!1,message:E.message}),v.dirty()}else if(E.kind==="multipleOf"){if(Wm(n.data,E.value)!==0)d=this._getOrReturnCtx(n,d),Rt(d,{code:yt.not_multiple_of,multipleOf:E.value,message:E.message}),v.dirty()}else if(E.kind==="finite"){if(!Number.isFinite(n.data))d=this._getOrReturnCtx(n,d),Rt(d,{code:yt.not_finite,message:E.message}),v.dirty()}else re.assertNever(E);return{status:v.value,value:n.data}}gte(n,o){return this.setLimit("min",n,!0,Ut.toString(o))}gt(n,o){return this.setLimit("min",n,!1,Ut.toString(o))}lte(n,o){return this.setLimit("max",n,!0,Ut.toString(o))}lt(n,o){return this.setLimit("max",n,!1,Ut.toString(o))}setLimit(n,o,d,v){return new Hr({...this._def,checks:[...this._def.checks,{kind:n,value:o,inclusive:d,message:Ut.toString(v)}]})}_addCheck(n){return new Hr({...this._def,checks:[...this._def.checks,n]})}int(n){return this._addCheck({kind:"int",message:Ut.toString(n)})}positive(n){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ut.toString(n)})}negative(n){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ut.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ut.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ut.toString(n)})}multipleOf(n,o){return this._addCheck({kind:"multipleOf",value:n,message:Ut.toString(o)})}finite(n){return this._addCheck({kind:"finite",message:Ut.toString(n)})}safe(n){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ut.toString(n)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ut.toString(n)})}get minValue(){let n=null;for(let o of this._def.checks)if(o.kind==="min"){if(n===null||o.value>n)n=o.value}return n}get maxValue(){let n=null;for(let o of this._def.checks)if(o.kind==="max"){if(n===null||o.value<n)n=o.value}return n}get isInt(){return!!this._def.checks.find((n)=>n.kind==="int"||n.kind==="multipleOf"&&re.isInteger(n.value))}get isFinite(){let n=null,o=null;for(let d of this._def.checks)if(d.kind==="finite"||d.kind==="int"||d.kind==="multipleOf")return!0;else if(d.kind==="min"){if(o===null||d.value>o)o=d.value}else if(d.kind==="max"){if(n===null||d.value<n)n=d.value}return Number.isFinite(o)&&Number.isFinite(n)}}Hr.create=(n)=>{return new Hr({checks:[],typeName:Yt.ZodNumber,coerce:n?.coerce||!1,...Qt(n)})};class Vr extends ee{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(n){if(this._def.coerce)try{n.data=BigInt(n.data)}catch{return this._getInvalidInput(n)}if(this._getType(n)!==_t.bigint)return this._getInvalidInput(n);let d=void 0,v=new He;for(let E of this._def.checks)if(E.kind==="min"){if(E.inclusive?n.data<E.value:n.data<=E.value)d=this._getOrReturnCtx(n,d),Rt(d,{code:yt.too_small,type:"bigint",minimum:E.value,inclusive:E.inclusive,message:E.message}),v.dirty()}else if(E.kind==="max"){if(E.inclusive?n.data>E.value:n.data>=E.value)d=this._getOrReturnCtx(n,d),Rt(d,{code:yt.too_big,type:"bigint",maximum:E.value,inclusive:E.inclusive,message:E.message}),v.dirty()}else if(E.kind==="multipleOf"){if(n.data%E.value!==BigInt(0))d=this._getOrReturnCtx(n,d),Rt(d,{code:yt.not_multiple_of,multipleOf:E.value,message:E.message}),v.dirty()}else re.assertNever(E);return{status:v.value,value:n.data}}_getInvalidInput(n){let o=this._getOrReturnCtx(n);return Rt(o,{code:yt.invalid_type,expected:_t.bigint,received:o.parsedType}),Vt}gte(n,o){return this.setLimit("min",n,!0,Ut.toString(o))}gt(n,o){return this.setLimit("min",n,!1,Ut.toString(o))}lte(n,o){return this.setLimit("max",n,!0,Ut.toString(o))}lt(n,o){return this.setLimit("max",n,!1,Ut.toString(o))}setLimit(n,o,d,v){return new Vr({...this._def,checks:[...this._def.checks,{kind:n,value:o,inclusive:d,message:Ut.toString(v)}]})}_addCheck(n){return new Vr({...this._def,checks:[...this._def.checks,n]})}positive(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ut.toString(n)})}negative(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ut.toString(n)})}nonpositive(n){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ut.toString(n)})}nonnegative(n){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ut.toString(n)})}multipleOf(n,o){return this._addCheck({kind:"multipleOf",value:n,message:Ut.toString(o)})}get minValue(){let n=null;for(let o of this._def.checks)if(o.kind==="min"){if(n===null||o.value>n)n=o.value}return n}get maxValue(){let n=null;for(let o of this._def.checks)if(o.kind==="max"){if(n===null||o.value<n)n=o.value}return n}}Vr.create=(n)=>{return new Vr({checks:[],typeName:Yt.ZodBigInt,coerce:n?.coerce??!1,...Qt(n)})};class ds extends ee{_parse(n){if(this._def.coerce)n.data=Boolean(n.data);if(this._getType(n)!==_t.boolean){let d=this._getOrReturnCtx(n);return Rt(d,{code:yt.invalid_type,expected:_t.boolean,received:d.parsedType}),Vt}return Xe(n.data)}}ds.create=(n)=>{return new ds({typeName:Yt.ZodBoolean,coerce:n?.coerce||!1,...Qt(n)})};class En extends ee{_parse(n){if(this._def.coerce)n.data=new Date(n.data);if(this._getType(n)!==_t.date){let E=this._getOrReturnCtx(n);return Rt(E,{code:yt.invalid_type,expected:_t.date,received:E.parsedType}),Vt}if(Number.isNaN(n.data.getTime())){let E=this._getOrReturnCtx(n);return Rt(E,{code:yt.invalid_date}),Vt}let d=new He,v=void 0;for(let E of this._def.checks)if(E.kind==="min"){if(n.data.getTime()<E.value)v=this._getOrReturnCtx(n,v),Rt(v,{code:yt.too_small,message:E.message,inclusive:!0,exact:!1,minimum:E.value,type:"date"}),d.dirty()}else if(E.kind==="max"){if(n.data.getTime()>E.value)v=this._getOrReturnCtx(n,v),Rt(v,{code:yt.too_big,message:E.message,inclusive:!0,exact:!1,maximum:E.value,type:"date"}),d.dirty()}else re.assertNever(E);return{status:d.value,value:new Date(n.data.getTime())}}_addCheck(n){return new En({...this._def,checks:[...this._def.checks,n]})}min(n,o){return this._addCheck({kind:"min",value:n.getTime(),message:Ut.toString(o)})}max(n,o){return this._addCheck({kind:"max",value:n.getTime(),message:Ut.toString(o)})}get minDate(){let n=null;for(let o of this._def.checks)if(o.kind==="min"){if(n===null||o.value>n)n=o.value}return n!=null?new Date(n):null}get maxDate(){let n=null;for(let o of this._def.checks)if(o.kind==="max"){if(n===null||o.value<n)n=o.value}return n!=null?new Date(n):null}}En.create=(n)=>{return new En({checks:[],coerce:n?.coerce||!1,typeName:Yt.ZodDate,...Qt(n)})};class Ra extends ee{_parse(n){if(this._getType(n)!==_t.symbol){let d=this._getOrReturnCtx(n);return Rt(d,{code:yt.invalid_type,expected:_t.symbol,received:d.parsedType}),Vt}return Xe(n.data)}}Ra.create=(n)=>{return new Ra({typeName:Yt.ZodSymbol,...Qt(n)})};class hs extends ee{_parse(n){if(this._getType(n)!==_t.undefined){let d=this._getOrReturnCtx(n);return Rt(d,{code:yt.invalid_type,expected:_t.undefined,received:d.parsedType}),Vt}return Xe(n.data)}}hs.create=(n)=>{return new hs({typeName:Yt.ZodUndefined,...Qt(n)})};class fs extends ee{_parse(n){if(this._getType(n)!==_t.null){let d=this._getOrReturnCtx(n);return Rt(d,{code:yt.invalid_type,expected:_t.null,received:d.parsedType}),Vt}return Xe(n.data)}}fs.create=(n)=>{return new fs({typeName:Yt.ZodNull,...Qt(n)})};class yn extends ee{constructor(){super(...arguments);this._any=!0}_parse(n){return Xe(n.data)}}yn.create=(n)=>{return new yn({typeName:Yt.ZodAny,...Qt(n)})};class Gr extends ee{constructor(){super(...arguments);this._unknown=!0}_parse(n){return Xe(n.data)}}Gr.create=(n)=>{return new Gr({typeName:Yt.ZodUnknown,...Qt(n)})};class tr extends ee{_parse(n){let o=this._getOrReturnCtx(n);return Rt(o,{code:yt.invalid_type,expected:_t.never,received:o.parsedType}),Vt}}tr.create=(n)=>{return new tr({typeName:Yt.ZodNever,...Qt(n)})};class ka extends ee{_parse(n){if(this._getType(n)!==_t.undefined){let d=this._getOrReturnCtx(n);return Rt(d,{code:yt.invalid_type,expected:_t.void,received:d.parsedType}),Vt}return Xe(n.data)}}ka.create=(n)=>{return new ka({typeName:Yt.ZodVoid,...Qt(n)})};class Gi extends ee{_parse(n){let{ctx:o,status:d}=this._processInputParams(n),v=this._def;if(o.parsedType!==_t.array)return Rt(o,{code:yt.invalid_type,expected:_t.array,received:o.parsedType}),Vt;if(v.exactLength!==null){let A=o.data.length>v.exactLength.value,R=o.data.length<v.exactLength.value;if(A||R)Rt(o,{code:A?yt.too_big:yt.too_small,minimum:R?v.exactLength.value:void 0,maximum:A?v.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:v.exactLength.message}),d.dirty()}if(v.minLength!==null){if(o.data.length<v.minLength.value)Rt(o,{code:yt.too_small,minimum:v.minLength.value,type:"array",inclusive:!0,exact:!1,message:v.minLength.message}),d.dirty()}if(v.maxLength!==null){if(o.data.length>v.maxLength.value)Rt(o,{code:yt.too_big,maximum:v.maxLength.value,type:"array",inclusive:!0,exact:!1,message:v.maxLength.message}),d.dirty()}if(o.common.async)return Promise.all([...o.data].map((A,R)=>{return v.type._parseAsync(new Vi(o,A,o.path,R))})).then((A)=>{return He.mergeArray(d,A)});let E=[...o.data].map((A,R)=>{return v.type._parseSync(new Vi(o,A,o.path,R))});return He.mergeArray(d,E)}get element(){return this._def.type}min(n,o){return new Gi({...this._def,minLength:{value:n,message:Ut.toString(o)}})}max(n,o){return new Gi({...this._def,maxLength:{value:n,message:Ut.toString(o)}})}length(n,o){return new Gi({...this._def,exactLength:{value:n,message:Ut.toString(o)}})}nonempty(n){return this.min(1,n)}}Gi.create=(n,o)=>{return new Gi({type:n,minLength:null,maxLength:null,exactLength:null,typeName:Yt.ZodArray,...Qt(o)})};function cs(n){if(n instanceof Se){let o={};for(let d in n.shape){let v=n.shape[d];o[d]=Hi.create(cs(v))}return new Se({...n._def,shape:()=>o})}else if(n instanceof Gi)return new Gi({...n._def,type:cs(n.element)});else if(n instanceof Hi)return Hi.create(cs(n.unwrap()));else if(n instanceof _r)return _r.create(cs(n.unwrap()));else if(n instanceof er)return er.create(n.items.map((o)=>cs(o)));else return n}class Se extends ee{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let n=this._def.shape(),o=re.objectKeys(n);return this._cached={shape:n,keys:o},this._cached}_parse(n){if(this._getType(n)!==_t.object){let L=this._getOrReturnCtx(n);return Rt(L,{code:yt.invalid_type,expected:_t.object,received:L.parsedType}),Vt}let{status:d,ctx:v}=this._processInputParams(n),{shape:E,keys:A}=this._getCached(),R=[];if(!(this._def.catchall instanceof tr&&this._def.unknownKeys==="strip")){for(let L in v.data)if(!A.includes(L))R.push(L)}let T=[];for(let L of A){let M=E[L],tt=v.data[L];T.push({key:{status:"valid",value:L},value:M._parse(new Vi(v,tt,v.path,L)),alwaysSet:L in v.data})}if(this._def.catchall instanceof tr){let L=this._def.unknownKeys;if(L==="passthrough")for(let M of R)T.push({key:{status:"valid",value:M},value:{status:"valid",value:v.data[M]}});else if(L==="strict"){if(R.length>0)Rt(v,{code:yt.unrecognized_keys,keys:R}),d.dirty()}else if(L==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let L=this._def.catchall;for(let M of R){let tt=v.data[M];T.push({key:{status:"valid",value:M},value:L._parse(new Vi(v,tt,v.path,M)),alwaysSet:M in v.data})}}if(v.common.async)return Promise.resolve().then(async()=>{let L=[];for(let M of T){let tt=await M.key,b=await M.value;L.push({key:tt,value:b,alwaysSet:M.alwaysSet})}return L}).then((L)=>{return He.mergeObjectSync(d,L)});else return He.mergeObjectSync(d,T)}get shape(){return this._def.shape()}strict(n){return Ut.errToObj,new Se({...this._def,unknownKeys:"strict",...n!==void 0?{errorMap:(o,d)=>{let v=this._def.errorMap?.(o,d).message??d.defaultError;if(o.code==="unrecognized_keys")return{message:Ut.errToObj(n).message??v};return{message:v}}}:{}})}strip(){return new Se({...this._def,unknownKeys:"strip"})}passthrough(){return new Se({...this._def,unknownKeys:"passthrough"})}extend(n){return new Se({...this._def,shape:()=>({...this._def.shape(),...n})})}merge(n){return new Se({unknownKeys:n._def.unknownKeys,catchall:n._def.catchall,shape:()=>({...this._def.shape(),...n._def.shape()}),typeName:Yt.ZodObject})}setKey(n,o){return this.augment({[n]:o})}catchall(n){return new Se({...this._def,catchall:n})}pick(n){let o={};for(let d of re.objectKeys(n))if(n[d]&&this.shape[d])o[d]=this.shape[d];return new Se({...this._def,shape:()=>o})}omit(n){let o={};for(let d of re.objectKeys(this.shape))if(!n[d])o[d]=this.shape[d];return new Se({...this._def,shape:()=>o})}deepPartial(){return cs(this)}partial(n){let o={};for(let d of re.objectKeys(this.shape)){let v=this.shape[d];if(n&&!n[d])o[d]=v;else o[d]=v.optional()}return new Se({...this._def,shape:()=>o})}required(n){let o={};for(let d of re.objectKeys(this.shape))if(n&&!n[d])o[d]=this.shape[d];else{let E=this.shape[d];while(E instanceof Hi)E=E._def.innerType;o[d]=E}return new Se({...this._def,shape:()=>o})}keyof(){return hd(re.objectKeys(this.shape))}}Se.create=(n,o)=>{return new Se({shape:()=>n,unknownKeys:"strip",catchall:tr.create(),typeName:Yt.ZodObject,...Qt(o)})};Se.strictCreate=(n,o)=>{return new Se({shape:()=>n,unknownKeys:"strict",catchall:tr.create(),typeName:Yt.ZodObject,...Qt(o)})};Se.lazycreate=(n,o)=>{return new Se({shape:n,unknownKeys:"strip",catchall:tr.create(),typeName:Yt.ZodObject,...Qt(o)})};class ms extends ee{_parse(n){let{ctx:o}=this._processInputParams(n),d=this._def.options;function v(E){for(let R of E)if(R.result.status==="valid")return R.result;for(let R of E)if(R.result.status==="dirty")return o.common.issues.push(...R.ctx.common.issues),R.result;let A=E.map((R)=>new li(R.ctx.common.issues));return Rt(o,{code:yt.invalid_union,unionErrors:A}),Vt}if(o.common.async)return Promise.all(d.map(async(E)=>{let A={...o,common:{...o.common,issues:[]},parent:null};return{result:await E._parseAsync({data:o.data,path:o.path,parent:A}),ctx:A}})).then(v);else{let E=void 0,A=[];for(let T of d){let L={...o,common:{...o.common,issues:[]},parent:null},M=T._parseSync({data:o.data,path:o.path,parent:L});if(M.status==="valid")return M;else if(M.status==="dirty"&&!E)E={result:M,ctx:L};if(L.common.issues.length)A.push(L.common.issues)}if(E)return o.common.issues.push(...E.ctx.common.issues),E.result;let R=A.map((T)=>new li(T));return Rt(o,{code:yt.invalid_union,unionErrors:R}),Vt}}get options(){return this._def.options}}ms.create=(n,o)=>{return new ms({options:n,typeName:Yt.ZodUnion,...Qt(o)})};var Tr=(n)=>{if(n instanceof ps)return Tr(n.schema);else if(n instanceof Ki)return Tr(n.innerType());else if(n instanceof vs)return[n.value];else if(n instanceof Kr)return n.options;else if(n instanceof Es)return re.objectValues(n.enum);else if(n instanceof ys)return Tr(n._def.innerType);else if(n instanceof hs)return[void 0];else if(n instanceof fs)return[null];else if(n instanceof Hi)return[void 0,...Tr(n.unwrap())];else if(n instanceof _r)return[null,...Tr(n.unwrap())];else if(n instanceof xo)return Tr(n.unwrap());else if(n instanceof bs)return Tr(n.unwrap());else if(n instanceof Ss)return Tr(n._def.innerType);else return[]};class Po extends ee{_parse(n){let{ctx:o}=this._processInputParams(n);if(o.parsedType!==_t.object)return Rt(o,{code:yt.invalid_type,expected:_t.object,received:o.parsedType}),Vt;let d=this.discriminator,v=o.data[d],E=this.optionsMap.get(v);if(!E)return Rt(o,{code:yt.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[d]}),Vt;if(o.common.async)return E._parseAsync({data:o.data,path:o.path,parent:o});else return E._parseSync({data:o.data,path:o.path,parent:o})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(n,o,d){let v=new Map;for(let E of o){let A=Tr(E.shape[n]);if(!A.length)throw Error(`A discriminator value for key \`${n}\` could not be extracted from all schema options`);for(let R of A){if(v.has(R))throw Error(`Discriminator property ${String(n)} has duplicate value ${String(R)}`);v.set(R,E)}}return new Po({typeName:Yt.ZodDiscriminatedUnion,discriminator:n,options:o,optionsMap:v,...Qt(d)})}}function yc(n,o){let d=Zi(n),v=Zi(o);if(n===o)return{valid:!0,data:n};else if(d===_t.object&&v===_t.object){let E=re.objectKeys(o),A=re.objectKeys(n).filter((T)=>E.indexOf(T)!==-1),R={...n,...o};for(let T of A){let L=yc(n[T],o[T]);if(!L.valid)return{valid:!1};R[T]=L.data}return{valid:!0,data:R}}else if(d===_t.array&&v===_t.array){if(n.length!==o.length)return{valid:!1};let E=[];for(let A=0;A<n.length;A++){let R=n[A],T=o[A],L=yc(R,T);if(!L.valid)return{valid:!1};E.push(L.data)}return{valid:!0,data:E}}else if(d===_t.date&&v===_t.date&&+n===+o)return{valid:!0,data:n};else return{valid:!1}}class gs extends ee{_parse(n){let{status:o,ctx:d}=this._processInputParams(n),v=(E,A)=>{if(Mo(E)||Mo(A))return Vt;let R=yc(E.value,A.value);if(!R.valid)return Rt(d,{code:yt.invalid_intersection_types}),Vt;if(No(E)||No(A))o.dirty();return{status:o.value,value:R.data}};if(d.common.async)return Promise.all([this._def.left._parseAsync({data:d.data,path:d.path,parent:d}),this._def.right._parseAsync({data:d.data,path:d.path,parent:d})]).then(([E,A])=>v(E,A));else return v(this._def.left._parseSync({data:d.data,path:d.path,parent:d}),this._def.right._parseSync({data:d.data,path:d.path,parent:d}))}}gs.create=(n,o,d)=>{return new gs({left:n,right:o,typeName:Yt.ZodIntersection,...Qt(d)})};class er extends ee{_parse(n){let{status:o,ctx:d}=this._processInputParams(n);if(d.parsedType!==_t.array)return Rt(d,{code:yt.invalid_type,expected:_t.array,received:d.parsedType}),Vt;if(d.data.length<this._def.items.length)return Rt(d,{code:yt.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Vt;if(!this._def.rest&&d.data.length>this._def.items.length)Rt(d,{code:yt.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),o.dirty();let E=[...d.data].map((A,R)=>{let T=this._def.items[R]||this._def.rest;if(!T)return null;return T._parse(new Vi(d,A,d.path,R))}).filter((A)=>!!A);if(d.common.async)return Promise.all(E).then((A)=>{return He.mergeArray(o,A)});else return He.mergeArray(o,E)}get items(){return this._def.items}rest(n){return new er({...this._def,rest:n})}}er.create=(n,o)=>{if(!Array.isArray(n))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new er({items:n,typeName:Yt.ZodTuple,rest:null,...Qt(o)})};class Ca extends ee{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){let{status:o,ctx:d}=this._processInputParams(n);if(d.parsedType!==_t.object)return Rt(d,{code:yt.invalid_type,expected:_t.object,received:d.parsedType}),Vt;let v=[],E=this._def.keyType,A=this._def.valueType;for(let R in d.data)v.push({key:E._parse(new Vi(d,R,d.path,R)),value:A._parse(new Vi(d,d.data[R],d.path,R)),alwaysSet:R in d.data});if(d.common.async)return He.mergeObjectAsync(o,v);else return He.mergeObjectSync(o,v)}get element(){return this._def.valueType}static create(n,o,d){if(o instanceof ee)return new Ca({keyType:n,valueType:o,typeName:Yt.ZodRecord,...Qt(d)});return new Ca({keyType:$i.create(),valueType:n,typeName:Yt.ZodRecord,...Qt(o)})}}class Da extends ee{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(n){let{status:o,ctx:d}=this._processInputParams(n);if(d.parsedType!==_t.map)return Rt(d,{code:yt.invalid_type,expected:_t.map,received:d.parsedType}),Vt;let v=this._def.keyType,E=this._def.valueType,A=[...d.data.entries()].map(([R,T],L)=>{return{key:v._parse(new Vi(d,R,d.path,[L,"key"])),value:E._parse(new Vi(d,T,d.path,[L,"value"]))}});if(d.common.async){let R=new Map;return Promise.resolve().then(async()=>{for(let T of A){let L=await T.key,M=await T.value;if(L.status==="aborted"||M.status==="aborted")return Vt;if(L.status==="dirty"||M.status==="dirty")o.dirty();R.set(L.value,M.value)}return{status:o.value,value:R}})}else{let R=new Map;for(let T of A){let{key:L,value:M}=T;if(L.status==="aborted"||M.status==="aborted")return Vt;if(L.status==="dirty"||M.status==="dirty")o.dirty();R.set(L.value,M.value)}return{status:o.value,value:R}}}}Da.create=(n,o,d)=>{return new Da({valueType:o,keyType:n,typeName:Yt.ZodMap,...Qt(d)})};class Sn extends ee{_parse(n){let{status:o,ctx:d}=this._processInputParams(n);if(d.parsedType!==_t.set)return Rt(d,{code:yt.invalid_type,expected:_t.set,received:d.parsedType}),Vt;let v=this._def;if(v.minSize!==null){if(d.data.size<v.minSize.value)Rt(d,{code:yt.too_small,minimum:v.minSize.value,type:"set",inclusive:!0,exact:!1,message:v.minSize.message}),o.dirty()}if(v.maxSize!==null){if(d.data.size>v.maxSize.value)Rt(d,{code:yt.too_big,maximum:v.maxSize.value,type:"set",inclusive:!0,exact:!1,message:v.maxSize.message}),o.dirty()}let E=this._def.valueType;function A(T){let L=new Set;for(let M of T){if(M.status==="aborted")return Vt;if(M.status==="dirty")o.dirty();L.add(M.value)}return{status:o.value,value:L}}let R=[...d.data.values()].map((T,L)=>E._parse(new Vi(d,T,d.path,L)));if(d.common.async)return Promise.all(R).then((T)=>A(T));else return A(R)}min(n,o){return new Sn({...this._def,minSize:{value:n,message:Ut.toString(o)}})}max(n,o){return new Sn({...this._def,maxSize:{value:n,message:Ut.toString(o)}})}size(n,o){return this.min(n,o).max(n,o)}nonempty(n){return this.min(1,n)}}Sn.create=(n,o)=>{return new Sn({valueType:n,minSize:null,maxSize:null,typeName:Yt.ZodSet,...Qt(o)})};class us extends ee{constructor(){super(...arguments);this.validate=this.implement}_parse(n){let{ctx:o}=this._processInputParams(n);if(o.parsedType!==_t.function)return Rt(o,{code:yt.invalid_type,expected:_t.function,received:o.parsedType}),Vt;function d(R,T){return wa({data:R,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,os(),br].filter((L)=>!!L),issueData:{code:yt.invalid_arguments,argumentsError:T}})}function v(R,T){return wa({data:R,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,os(),br].filter((L)=>!!L),issueData:{code:yt.invalid_return_type,returnTypeError:T}})}let E={errorMap:o.common.contextualErrorMap},A=o.data;if(this._def.returns instanceof bn){let R=this;return Xe(async function(...T){let L=new li([]),M=await R._def.args.parseAsync(T,E).catch((H)=>{throw L.addIssue(d(T,H)),L}),tt=await Reflect.apply(A,this,M);return await R._def.returns._def.type.parseAsync(tt,E).catch((H)=>{throw L.addIssue(v(tt,H)),L})})}else{let R=this;return Xe(function(...T){let L=R._def.args.safeParse(T,E);if(!L.success)throw new li([d(T,L.error)]);let M=Reflect.apply(A,this,L.data),tt=R._def.returns.safeParse(M,E);if(!tt.success)throw new li([v(M,tt.error)]);return tt.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...n){return new us({...this._def,args:er.create(n).rest(Gr.create())})}returns(n){return new us({...this._def,returns:n})}implement(n){return this.parse(n)}strictImplement(n){return this.parse(n)}static create(n,o,d){return new us({args:n?n:er.create([]).rest(Gr.create()),returns:o||Gr.create(),typeName:Yt.ZodFunction,...Qt(d)})}}class ps extends ee{get schema(){return this._def.getter()}_parse(n){let{ctx:o}=this._processInputParams(n);return this._def.getter()._parse({data:o.data,path:o.path,parent:o})}}ps.create=(n,o)=>{return new ps({getter:n,typeName:Yt.ZodLazy,...Qt(o)})};class vs extends ee{_parse(n){if(n.data!==this._def.value){let o=this._getOrReturnCtx(n);return Rt(o,{received:o.data,code:yt.invalid_literal,expected:this._def.value}),Vt}return{status:"valid",value:n.data}}get value(){return this._def.value}}vs.create=(n,o)=>{return new vs({value:n,typeName:Yt.ZodLiteral,...Qt(o)})};function hd(n,o){return new Kr({values:n,typeName:Yt.ZodEnum,...Qt(o)})}class Kr extends ee{_parse(n){if(typeof n.data!=="string"){let o=this._getOrReturnCtx(n),d=this._def.values;return Rt(o,{expected:re.joinValues(d),received:o.parsedType,code:yt.invalid_type}),Vt}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(n.data)){let o=this._getOrReturnCtx(n),d=this._def.values;return Rt(o,{received:o.data,code:yt.invalid_enum_value,options:d}),Vt}return Xe(n.data)}get options(){return this._def.values}get enum(){let n={};for(let o of this._def.values)n[o]=o;return n}get Values(){let n={};for(let o of this._def.values)n[o]=o;return n}get Enum(){let n={};for(let o of this._def.values)n[o]=o;return n}extract(n,o=this._def){return Kr.create(n,{...this._def,...o})}exclude(n,o=this._def){return Kr.create(this.options.filter((d)=>!n.includes(d)),{...this._def,...o})}}Kr.create=hd;class Es extends ee{_parse(n){let o=re.getValidEnumValues(this._def.values),d=this._getOrReturnCtx(n);if(d.parsedType!==_t.string&&d.parsedType!==_t.number){let v=re.objectValues(o);return Rt(d,{expected:re.joinValues(v),received:d.parsedType,code:yt.invalid_type}),Vt}if(!this._cache)this._cache=new Set(re.getValidEnumValues(this._def.values));if(!this._cache.has(n.data)){let v=re.objectValues(o);return Rt(d,{received:d.data,code:yt.invalid_enum_value,options:v}),Vt}return Xe(n.data)}get enum(){return this._def.values}}Es.create=(n,o)=>{return new Es({values:n,typeName:Yt.ZodNativeEnum,...Qt(o)})};class bn extends ee{unwrap(){return this._def.type}_parse(n){let{ctx:o}=this._processInputParams(n);if(o.parsedType!==_t.promise&&o.common.async===!1)return Rt(o,{code:yt.invalid_type,expected:_t.promise,received:o.parsedType}),Vt;let d=o.parsedType===_t.promise?o.data:Promise.resolve(o.data);return Xe(d.then((v)=>{return this._def.type.parseAsync(v,{path:o.path,errorMap:o.common.contextualErrorMap})}))}}bn.create=(n,o)=>{return new bn({type:n,typeName:Yt.ZodPromise,...Qt(o)})};class Ki extends ee{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Yt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(n){let{status:o,ctx:d}=this._processInputParams(n),v=this._def.effect||null,E={addIssue:(A)=>{if(Rt(d,A),A.fatal)o.abort();else o.dirty()},get path(){return d.path}};if(E.addIssue=E.addIssue.bind(E),v.type==="preprocess"){let A=v.transform(d.data,E);if(d.common.async)return Promise.resolve(A).then(async(R)=>{if(o.value==="aborted")return Vt;let T=await this._def.schema._parseAsync({data:R,path:d.path,parent:d});if(T.status==="aborted")return Vt;if(T.status==="dirty")return vn(T.value);if(o.value==="dirty")return vn(T.value);return T});else{if(o.value==="aborted")return Vt;let R=this._def.schema._parseSync({data:A,path:d.path,parent:d});if(R.status==="aborted")return Vt;if(R.status==="dirty")return vn(R.value);if(o.value==="dirty")return vn(R.value);return R}}if(v.type==="refinement"){let A=(R)=>{let T=v.refinement(R,E);if(d.common.async)return Promise.resolve(T);if(T instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return R};if(d.common.async===!1){let R=this._def.schema._parseSync({data:d.data,path:d.path,parent:d});if(R.status==="aborted")return Vt;if(R.status==="dirty")o.dirty();return A(R.value),{status:o.value,value:R.value}}else return this._def.schema._parseAsync({data:d.data,path:d.path,parent:d}).then((R)=>{if(R.status==="aborted")return Vt;if(R.status==="dirty")o.dirty();return A(R.value).then(()=>{return{status:o.value,value:R.value}})})}if(v.type==="transform")if(d.common.async===!1){let A=this._def.schema._parseSync({data:d.data,path:d.path,parent:d});if(!$r(A))return Vt;let R=v.transform(A.value,E);if(R instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:o.value,value:R}}else return this._def.schema._parseAsync({data:d.data,path:d.path,parent:d}).then((A)=>{if(!$r(A))return Vt;return Promise.resolve(v.transform(A.value,E)).then((R)=>({status:o.value,value:R}))});re.assertNever(v)}}Ki.create=(n,o,d)=>{return new Ki({schema:n,typeName:Yt.ZodEffects,effect:o,...Qt(d)})};Ki.createWithPreprocess=(n,o,d)=>{return new Ki({schema:o,effect:{type:"preprocess",transform:n},typeName:Yt.ZodEffects,...Qt(d)})};class Hi extends ee{_parse(n){if(this._getType(n)===_t.undefined)return Xe(void 0);return this._def.innerType._parse(n)}unwrap(){return this._def.innerType}}Hi.create=(n,o)=>{return new Hi({innerType:n,typeName:Yt.ZodOptional,...Qt(o)})};class _r extends ee{_parse(n){if(this._getType(n)===_t.null)return Xe(null);return this._def.innerType._parse(n)}unwrap(){return this._def.innerType}}_r.create=(n,o)=>{return new _r({innerType:n,typeName:Yt.ZodNullable,...Qt(o)})};class ys extends ee{_parse(n){let{ctx:o}=this._processInputParams(n),d=o.data;if(o.parsedType===_t.undefined)d=this._def.defaultValue();return this._def.innerType._parse({data:d,path:o.path,parent:o})}removeDefault(){return this._def.innerType}}ys.create=(n,o)=>{return new ys({innerType:n,typeName:Yt.ZodDefault,defaultValue:typeof o.default==="function"?o.default:()=>o.default,...Qt(o)})};class Ss extends ee{_parse(n){let{ctx:o}=this._processInputParams(n),d={...o,common:{...o.common,issues:[]}},v=this._def.innerType._parse({data:d.data,path:d.path,parent:{...d}});if(ls(v))return v.then((E)=>{return{status:"valid",value:E.status==="valid"?E.value:this._def.catchValue({get error(){return new li(d.common.issues)},input:d.data})}});else return{status:"valid",value:v.status==="valid"?v.value:this._def.catchValue({get error(){return new li(d.common.issues)},input:d.data})}}removeCatch(){return this._def.innerType}}Ss.create=(n,o)=>{return new Ss({innerType:n,typeName:Yt.ZodCatch,catchValue:typeof o.catch==="function"?o.catch:()=>o.catch,...Qt(o)})};class Ia extends ee{_parse(n){if(this._getType(n)!==_t.nan){let d=this._getOrReturnCtx(n);return Rt(d,{code:yt.invalid_type,expected:_t.nan,received:d.parsedType}),Vt}return{status:"valid",value:n.data}}}Ia.create=(n)=>{return new Ia({typeName:Yt.ZodNaN,...Qt(n)})};var Ym=Symbol("zod_brand");class xo extends ee{_parse(n){let{ctx:o}=this._processInputParams(n),d=o.data;return this._def.type._parse({data:d,path:o.path,parent:o})}unwrap(){return this._def.type}}class Oa extends ee{_parse(n){let{status:o,ctx:d}=this._processInputParams(n);if(d.common.async)return(async()=>{let E=await this._def.in._parseAsync({data:d.data,path:d.path,parent:d});if(E.status==="aborted")return Vt;if(E.status==="dirty")return o.dirty(),vn(E.value);else return this._def.out._parseAsync({data:E.value,path:d.path,parent:d})})();else{let v=this._def.in._parseSync({data:d.data,path:d.path,parent:d});if(v.status==="aborted")return Vt;if(v.status==="dirty")return o.dirty(),{status:"dirty",value:v.value};else return this._def.out._parseSync({data:v.value,path:d.path,parent:d})}}static create(n,o){return new Oa({in:n,out:o,typeName:Yt.ZodPipeline})}}class bs extends ee{_parse(n){let o=this._def.innerType._parse(n),d=(v)=>{if($r(v))v.value=Object.freeze(v.value);return v};return ls(o)?o.then((v)=>d(v)):d(o)}unwrap(){return this._def.innerType}}bs.create=(n,o)=>{return new bs({innerType:n,typeName:Yt.ZodReadonly,...Qt(o)})};function ld(n,o){let d=typeof n==="function"?n(o):typeof n==="string"?{message:n}:n;return typeof d==="string"?{message:d}:d}function fd(n,o={},d){if(n)return yn.create().superRefine((v,E)=>{let A=n(v);if(A instanceof Promise)return A.then((R)=>{if(!R){let T=ld(o,v),L=T.fatal??d??!0;E.addIssue({code:"custom",...T,fatal:L})}});if(!A){let R=ld(o,v),T=R.fatal??d??!0;E.addIssue({code:"custom",...R,fatal:T})}return});return yn.create()}var jm={object:Se.lazycreate},Yt;(function(n){n.ZodString="ZodString",n.ZodNumber="ZodNumber",n.ZodNaN="ZodNaN",n.ZodBigInt="ZodBigInt",n.ZodBoolean="ZodBoolean",n.ZodDate="ZodDate",n.ZodSymbol="ZodSymbol",n.ZodUndefined="ZodUndefined",n.ZodNull="ZodNull",n.ZodAny="ZodAny",n.ZodUnknown="ZodUnknown",n.ZodNever="ZodNever",n.ZodVoid="ZodVoid",n.ZodArray="ZodArray",n.ZodObject="ZodObject",n.ZodUnion="ZodUnion",n.ZodDiscriminatedUnion="ZodDiscriminatedUnion",n.ZodIntersection="ZodIntersection",n.ZodTuple="ZodTuple",n.ZodRecord="ZodRecord",n.ZodMap="ZodMap",n.ZodSet="ZodSet",n.ZodFunction="ZodFunction",n.ZodLazy="ZodLazy",n.ZodLiteral="ZodLiteral",n.ZodEnum="ZodEnum",n.ZodEffects="ZodEffects",n.ZodNativeEnum="ZodNativeEnum",n.ZodOptional="ZodOptional",n.ZodNullable="ZodNullable",n.ZodDefault="ZodDefault",n.ZodCatch="ZodCatch",n.ZodPromise="ZodPromise",n.ZodBranded="ZodBranded",n.ZodPipeline="ZodPipeline",n.ZodReadonly="ZodReadonly"})(Yt||(Yt={}));var zm=(n,o={message:`Input not instance of ${n.name}`})=>fd((d)=>d instanceof n,o),md=$i.create,gd=Hr.create,qm=Ia.create,Xm=Vr.create,pd=ds.create,Jm=En.create,Qm=Ra.create,Zm=hs.create,tg=fs.create,eg=yn.create,ig=Gr.create,rg=tr.create,ng=ka.create,sg=Gi.create,ag=Se.create,og=Se.strictCreate,lg=ms.create,cg=Po.create,ug=gs.create,dg=er.create,hg=Ca.create,fg=Da.create,mg=Sn.create,gg=us.create,pg=ps.create,vg=vs.create,Eg=Kr.create,yg=Es.create,Sg=bn.create,bg=Ki.create,Tg=Hi.create,_g=_r.create,Ag=Ki.createWithPreprocess,Lg=Oa.create,wg=()=>md().optional(),Rg=()=>gd().optional(),kg=()=>pd().optional(),Cg={string:(n)=>$i.create({...n,coerce:!0}),number:(n)=>Hr.create({...n,coerce:!0}),boolean:(n)=>ds.create({...n,coerce:!0}),bigint:(n)=>Vr.create({...n,coerce:!0}),date:(n)=>En.create({...n,coerce:!0})};var Dg=Vt;var Sc=["subtitles","vtsel","ads","share","thumbnails","asel","qsel"];var vd=dt.object({url:dt.union([dt.string(),dt.array(dt.string()),dt.object({src:dt.string(),type:dt.string()}),dt.array(dt.object({src:dt.string(),type:dt.string()}))]).optional(),title:dt.string().optional(),poster:dt.string().optional(),description:dt.string().optional(),subtitles:dt.object({native:dt.boolean().optional(),show:dt.boolean().optional(),tracks:dt.array(dt.object({src:dt.string(),lang:dt.string().optional(),label:dt.string().optional(),crossorigin:dt.string().optional().nullable(),default:dt.boolean().optional(),kind:dt.union([dt.literal("captions"),dt.literal("chapters"),dt.literal("subtitles")]).optional(),mode:dt.union([dt.literal("hidden"),dt.literal("showing"),dt.literal("disabled")]).optional(),id:dt.string().optional()})).optional()}).optional(),thumbnails:dt.object({src:dt.string()}).optional(),metadata:dt.object({id:dt.string().optional(),media_id:dt.string().optional(),title:dt.string().optional(),description:dt.string().optional(),site_id:dt.string().optional(),sitegroup_id:dt.string().optional(),no_ads:dt.boolean().optional(),ad_keywords:dt.string().optional(),category_id:dt.string().optional(),category_name:dt.string().optional(),tags:dt.string().optional(),duration:dt.number().optional(),player_id:dt.string().optional()}).optional()}),bc=vd.transform(({url:n,...o})=>({src:n,...o})),Fo=dt.object({playlist:dt.union([dt.string(),dt.object({src:dt.string(),type:dt.string()}),dt.array(bc)]),lang:dt.string().optional(),consent:dt.number().default(9),token:dt.string().optional(),ui:dt.number().optional(),plugins:dt.array(dt.enum(Sc)).default([...Sc].filter((n)=>n!=="qsel")),brand_color:dt.string().optional(),recommendations:dt.boolean().optional(),metadata:dt.object({playlist_title:dt.string().optional(),player_id:dt.string().optional()}).optional(),adsFrequency:dt.number().int().nonnegative().optional().default(10),share:dt.object({share_type:dt.string(),iframe:dt.boolean(),link:dt.boolean(),facebook:dt.boolean(),twitter:dt.boolean()}).optional(),ima:dt.object({NumRedirects:dt.number().optional(),timeout:dt.number().optional(),total_loading_timeout:dt.number().optional(),show_all_ads_on_seek:dt.boolean().optional(),ads:dt.array(dt.object({adTag:dt.union([dt.string(),dt.array(dt.string()),dt.function().args().returns(dt.promise(dt.string()))]),restart:dt.boolean().optional(),time:dt.number()})),Locale:dt.string().optional(),locale:dt.string().optional(),parameters:dt.record(dt.any()).optional(),autopause:dt.boolean().optional()}).optional()}),ky=Fo.omit({playlist:!0}).extend({playlist:dt.array(bc)}),Tc=vd.omit({url:!0}).and(dt.object({src:dt.union([dt.string(),dt.array(dt.string()),dt.object({src:dt.string(),type:dt.string()}),dt.array(dt.object({src:dt.string(),type:dt.string()}))])})),Ed=Fo.omit({plugins:!0}).omit({playlist:!0}).extend({playlist:dt.array(Tc)}),yd=dt.array(bc);function Ig(n){let o=document.createElement("a");o.href=n;let d=o.pathname?.split(".");return d.length>1&&d[d.length-1]}function Og(n){switch(n){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return n}}var Td=({src:n,...o})=>[{src:n,type:n?Og(`video/${Ig(n)}`):"",...o}];function Sd(n){return Td({src:n})}function bd({src:n,type:o,...d}){if(n&&o)return[{src:n,type:o,...d}];if(o&&!n)return[{type:o,...d}];return Td({src:n,...d})}function _d(n){if(typeof n==="string")return Sd(n);if(!Array.isArray(n)&&typeof n==="object")return bd(n);return n.reduce((o,d)=>{if(typeof d==="string")d=Sd(d);if(typeof d==="object"&&!Array.isArray(d))d=bd(d);return o.concat(d)},[])}async function Ad(n){if(Array.isArray(n.playlist))return n;let o=typeof n.playlist==="object"?n.playlist.src:n.playlist,d=gc(pc(o)),v=await fetch(d);if(!v.ok)throw Error(`Failed to fetch playlist: ${v.status} ${v.statusText}`);let E=await v.json(),A=Ed.parse(E);return A.playlist.forEach((R)=>{Object.assign(R,{...R.metadata})}),Object.assign(n,{...A,...n,playlist:A.playlist})}async function Uo(n,o,d){(await Promise.all(o.map(Mg))).forEach((E,A)=>{let R=d.length+A,T=new(window.customElements.get("flowplayer-spin"))(n,E);n.emit(ki.SPIN_CREATED,{spin:T,config:E,index:R}),n.append(T),n.maybeCreateAdPlayer(R,T)})}async function Mg(n){let o=_d(n.src||"");if(o.length!==1||!sd(o[0].src||"",o[0]))return n;try{let d=gc(pc(o[0].src??"")),v=await fetch(d);if(!v.ok)return n;let E=await v.json(),A=Tc.parse(E);return delete n.src,Object.assign(n,{...A,...A.metadata??{},...n})}catch{return n}}var Ns=Ne(Tn(),1);var Md=Ne(Id(),1);var Od=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function Na(n,o){if(~Od.indexOf(n))return!0;return n.indexOf(o)===n.length-o.length}Na.check_whitelist=(n)=>!!~Od.indexOf(n);function _n(n,o){let d={valid_jwt:!1,raw:"",data:{acl:0},exp:0},v={c:"{}",exp:0};o=o||{};try{v=Md.default(n),d.valid_jwt=!0}catch(E){}if(d.raw=n,d.data=JSON.parse(v.c),d.exp=v.exp,o.require_valid_token)_n.validate(d);return d}_n.validate=(n)=>{if(typeof n==="string")n=_n(n);if(!n||!n.raw){if(Na.check_whitelist(window.location.hostname))return!0;throw Error("No token provided in configuration")}if(!n.valid_jwt)throw Error("Invalid token provided");let o=window.location.hostname,d=Na.bind(null,o);if(n.data.domain?.length&&!n.data.domain.some(d))throw Error("Domain not allowed");if(n.exp*1000-Date.now()<0)throw Error("Expired token");return!0};_n.id=(n)=>{if(!n)return;if(typeof n==="string")n=_n(n);return n.data.id};var Lc;((A)=>{A[A.ADS=2]="ADS";A[A.ANALYTICS=4]="ANALYTICS";A[A.NO_METERING=8]="NO_METERING";A[A.DEVELOPER_PLAN=16]="DEVELOPER_PLAN";A[A.WOWZA_VIDEO=32]="WOWZA_VIDEO"})(Lc||={});function Ar(n){return{grant:n,is_granted:(d)=>(n&d)===d}}Ar.of=Ar;Ar.from_token=(n)=>{let o=_n(n,{require_valid_token:!0});return Ar.of(o.data.acl)};Ar.permissions=Lc;var sf=Ne(Tn(),1);var Nd="flowplayer-ad-ui",Bo="flowplayer-ad-controls",$o="flowplayer-ad-countdown",Go="flowplayer-ad-indicator";var Tl=Ne(Tn(),1);function bv(){try{return localStorage.getItem("flowplayer/debug")}catch(n){return""}}function Re(n,o){let d=bv(),v=(E,...A)=>{try{let R=o?.debug||d;if(R&&n.match(R))console.log(`flowplayer/${n} -- ${E}`,...A)}catch(R){console.warn(R)}};return v.log=v,v}var Ho="ad-initialized",Ts="ad-playback-error",_s="ad-teardown",wc="ad-videotag-attached";var Wr="ad-request-error",Vo="ad-requested",Ko="ad-request-completed",Pa="ad-pause-content",ir="ad-started",As="ad-completed",xa="ad-paused",Wo="ad-resumed";var Yr="ad-progress",Ls="ad-skipped",Pd="ad-muted",Rc="ad-volume-changed";var xd="ad-timeout",rr="ad-break-completed",Fd="ad-postroll-finished",Ud="ad-preroll-finished";var Bd="vpaid-init",$d="ad-ima-adapter-init",Gd="ad-ima-before-ads-request",Hd="ad-ima-rendering-settings",Yo="ad-adapter-init-failed",jo="ad-play-requested",Fa="reload-ad-requested",zo="ad-error",qo="request/ad/pause",Xo="request/ad/play",Jo="request/ad/muteunmute";var ws="ad/set-ui-flags";class Rs{_ads;_opts;_nextIndex;_postroll;_loadPending;_postrollActive;constructor(n,o={}){this._ads=n;this._opts=o;this._nextIndex=0,this._postroll=void 0,this._loadPending=!1,this._postrollActive=!1,this.reset(this._ads)}toJSON(){let n=(this._ads||[]).slice(this._nextIndex);if(this._postroll)n.push(this._postroll);return n}reset(n){this.setAds(n),this._nextIndex=0,this._postrollActive=!1}resetCounter(){this._nextIndex=0,this._postrollActive=!1}setAds(n){this._ads=n||[],this.sort()}getAds(){return this._ads}getNextAd(n){return this._ads[this._nextIndex]||n}getCurrentAd(){if(this._postrollActive)return this._postroll;if(this._loadPending)return 0;return this._ads[this._nextIndex-1]}getPostroll(){return this._postroll}isDrained(){return this._nextIndex+1>this._ads.length}setPostrollActive(){this._postrollActive=!0}updateContentDuration(n){this._opts.content_duration=n}increment(){++this._nextIndex}decrement(){this._nextIndex>0&&--this._nextIndex}getNextIndex(){return this._nextIndex}getCurrentType(){let n=this.getCurrentAd();if(!n)return;return Rs.kindOf(n.time)}sort(){this._postroll=this._ads.find((n)=>n.time===-1),this._ads=this._ads.filter((n)=>n!==this._postroll).sort((n,o)=>{if(n.time===o.time)return this._ads.indexOf(n)-this._ads.indexOf(o);return n.time-o.time})}shallPlayAd(n){if(this._loadPending)return!1;let o=this.getCurrentAd()||this.getNextAd();return!!(o&&o.time<=n&&o.time!==-1)}shallPlayNext(){let n=this.getNextAd(),o=this.getCurrentAd();return!!(n&&o&&n.time===o.time)}waitForLoad(n,o,d){if(this._loadPending=!1,!o)return!1;let v=d?this._opts.preload_advance:0;if(o.time>=0)this._loadPending=n<o.time-v;else if(o.time===-1)this._loadPending=this._opts.content_duration>0&&n!==-1?n<this._opts.content_duration-v:n!==-1;return this._loadPending}static hasPreroll(n){return!!n.find((o)=>o.time===0)}static isOutstream(n){return Rs.hasPreroll(n)&&!!n[0].outstream}static kindOf(n){switch(n){case 0:return"preroll";case-1:return"postroll";default:return"midroll"}}}var zd=Ne(Tn(),1);class kc{requestStart;adRequestStart(n){if(typeof n!=="number")return;if(typeof this.requestStart==="number")return;this.requestStart=performance.now()}adRequestEnd(){this.requestStart=void 0}getRemainingAdLoadTime(n,o){return typeof o!=="number"||typeof this.requestStart!=="number"?n:Math.max(0,o-(performance.now()-this.requestStart))}}function Vd(n,o,d){let v=(E)=>{d(E),n.removeEventListener(o,v)};return n.addEventListener(o,v),()=>n.removeEventListener(o,v)}function Kd(n){try{return n.getAdPodInfo().getPodIndex()}catch(o){return}}function Wd(n){try{return n.getAdPodInfo().getAdPosition()}catch(o){return}}function Yd(n){try{return n.getAdPodInfo().getTotalAds()}catch(o){return}}var Qo=Re("ads/timers");class Cc{intervals;timers;constructor(n={},o={}){this.intervals=n;this.timers=o}}var Av=-1;function Lv(){return++Av}function wv(n,o){return Qo(`TimerRegistry.removeTimeout() -> ${o}`,n.timers),clearTimeout(n.timers[o]),delete n.timers[o],n}function jd(n,o,d){let v=setInterval(d,o);if(Qo(`TimerRegistry.createInterval() -> ${v}`,n.intervals),typeof v==="object"){let E=Lv();return n.intervals[E]=E,E}return n.intervals[v]=v,v}function Rv(n,o){return Qo(`TimerRegistry.removeInterval() -> ${o}`,n.intervals),clearInterval(n.intervals[o]),delete n.intervals[o],n}function ks(n){if(!n)return;return Qo("TimerRegistry.empty()",Object.keys(n.timers),Object.keys(n.intervals)),Object.keys(n.intervals).forEach((o)=>Rv(n,o)),Object.keys(n.timers).forEach((o)=>wv(n,o)),n}class Ln{eventHandler;log;_timers;_started;_volumeLevel;_adLoaded;_currentDuration;_currentRemaining;_currentDisplayTs;_adLinear;_dimensions;_adHandlers;opts;_adsManager;_adsLoader;_adDisplayContainer;videoTag;customPlaybackEnabled;_paused;loadingController;_all_ads_completed;google;_isInitialized;_adBreakTime;_prepared;constructor(n){this.eventHandler=n;this.log=Re("ads/adapter/ima"),this.google=window.google,this._adHandlers=[],this._timers=new Cc,this._started=!1,this._volumeLevel=0,this._adLoaded=!1,this.customPlaybackEnabled=!1,this._paused=!1,this._all_ads_completed=!1,this._currentDuration=0,this._currentRemaining=0,this._currentDisplayTs=0,this._isInitialized=!1,this._adBreakTime=0,this._prepared=!1,this.opts={},this.loadingController=new kc}async init(n){if(this.log("init",this.videoTag,n),this.opts=n,this._dimensions={width:n.width,height:n.height,linear:n.linear},this._prepared=!0,!this._isInitialized&&this.videoTag)await this.initAdapter()}async initAdapter(){this.log("initAdapter",this.opts);try{await this.initialize(this.opts),this._isInitialized=!0}catch(n){this.log("initAdapter failed:",n),this._prepared=!1,this.eventHandler.trigger(Yo)}}isReady(){return!!this._isInitialized}setVideoTag(n){this.videoTag=n,this.customPlaybackEnabled=!1,n.root.classList.toggle("ads-custom-playback-enabled",this.customPlaybackEnabled)}setAdBreakTime(n){this._adBreakTime=n}getAdBreakTime(){return this._adBreakTime}isCustomPlaybackEnabled(){return this.customPlaybackEnabled}isAttemptingPrerollOnIOS(){return!!this?.videoTag?.root.classList.contains("preroll-ios")}setAttemptingPrerollOnIOS(n){this?.videoTag?.root.classList.toggle("preroll-ios",n)}isLinearAd(){return!!this._adLinear}getVideoTag(){return this.videoTag}getDimensions(){return this._dimensions||{}}getOpts(){return this.opts}isPaused(){return this._paused}destroy(){let n=this;ks(this._timers),this._adHandlers?.forEach((o)=>o()),n._adHandlers=void 0,this._adDisplayContainer?.destroy(),n._adDisplayContainer=void 0,this._adsLoader?.destroy(),n._adsLoader=void 0,this._adsManager?.destroy(),n._adsManager=void 0}stop(){this._adsManager?.stop()}initialize(n){let o=this.isAdPod(),d=this._adLoaded||o;if(this.cleanup(),!this.videoTag)return console.warn("videoTag not set during initialization");this.opts=n,this._volumeLevel=n.volume;let v=this.google.ima.settings;try{}catch(E){}if(n.NumRedirects=n.NumRedirects||n.redirects,v.setVpaidMode(n.VpaidMode||this.google.ima.ImaSdkSettings.VpaidMode.INSECURE),v.setDisableCustomPlaybackForIOS10Plus(!this.customPlaybackEnabled),v.setAutoPlayAdBreaks(!1),"NumRedirects"in n)v.setNumRedirects(n.NumRedirects);if("Locale"in n)v.setLocale(n.Locale);if("Ppid"in n)v.setPpid(n.Ppid);if(!document.body.contains(n.container))throw Error("AdDisplayContainer was not found in the document.body");if(this._adDisplayContainer=new this.google.ima.AdDisplayContainer(n.container,this.videoTag),this._adDisplayContainer.initialize(),this._adsLoader=new this.google.ima.AdsLoader(this._adDisplayContainer),this.log("ima.initialise(:wait -> ADS_MANAGER_LOADED)",{...n,volume:this.videoTag.volume,muted:this.videoTag.muted}),this._adsLoader.addEventListener(this.google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,(E)=>{if(!this.videoTag)return;this.log(`ima.initialise(:done -> ADS_MANAGER_LOADED)
193
+ %o`,{...n,volume:this.videoTag.volume,muted:this.videoTag.muted});let A=new this.google.ima.AdsRenderingSettings;this.log("ima.rendering(preload: %s)",!!n.preload_ads),A.useStyledNonLinearAds=!0,A.enablePreloading=!!n.preload_ads,A.loadVideoTimeout=n.media_timeout||-1,A.restoreCustomPlaybackStateOnAdBreakComplete=this.customPlaybackEnabled,this.customPlaybackEnabled&&(A.playAdsAfterTime=this.videoTag.currentTime),this.eventHandler.trigger(Hd,A);let R=this._adsManager=E.getAdsManager(this.videoTag,A);this.eventHandler.trigger($d,R),R.addEventListener(this.google.ima.AdEvent.Type.LOADED,()=>{this.log("debug(ima.adsManager): google.ima.AdEvent.Type.LOADED")}),R.addEventListener(this.google.ima.AdErrorEvent.Type.AD_ERROR,()=>{this.log("debug(ima.adsManager): google.ima.AdErrorEvent.Type.AD_ERROR")}),R.addEventListener(this.google.ima.AdEvent.Type.STARTED,()=>{this.log("debug(ima.adsManager): google.ima.AdEvent.Type.STARTED")}),R.addEventListener(this.google.ima.AdEvent.Type.AD_PROGRESS,(tt)=>{let b=tt.getAdData()?.duration,H=tt.getAdData()?.currentTime;if(Number.isNaN(b)||Number.isNaN(H))return;this._currentRemaining=b-H,this.eventHandler.trigger(Yr,{remaining:this._currentRemaining,duration:b})}),R.addEventListener(this.google.ima.AdEvent.Type.STARTED,(tt)=>{this._currentRemaining=-1,this.debugEvent(tt);let b=tt.getAd();if(!b)return;if(this._currentDuration=b.getDuration(),this._currentDisplayTs=Date.now(),this.emitWithAd(ir,b),b.isLinear())Ln.pollRemaining({ima:this,adsManager:R})}),R.addEventListener(this.google.ima.AdEvent.Type.COMPLETE,(tt)=>{this.debugEvent(tt);let b=tt.getAd();if(b)this.emitWithAd(As,b);ks(this._timers)}),R.addEventListener(this.google.ima.AdEvent.Type.SKIPPED,(tt)=>{this.debugEvent(tt);let b=tt.getAd();if(b)this.emitWithAd(Ls,b)}),R.addEventListener(this.google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED,(tt)=>{if(this.isAdPod()&&this.videoTag){let H=Math.abs(this.videoTag.currentTime-this.videoTag.duration)<1?-1:this.videoTag.currentTime;this.setAdBreakTime(H)}this.debugEvent(tt);let b=tt.getAd();if(b)this.emitWithAd(Pa,b)}),R.addEventListener(this.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,(tt)=>{if(R.getRemainingTime()!==-1)return;this.debugEvent(tt),this._started=!1,this._currentDisplayTs=0,this.eventHandler.trigger(rr,{force:!0})}),R.addEventListener(this.google.ima.AdEvent.Type.VOLUME_CHANGED,(tt)=>{this.log("IMA::volume(type: %s, event: %o)",tt);let b=R.getVolume();this._volumeLevel=b,this.eventHandler.trigger(Rc,b)});let T=(tt)=>{this._paused=tt,this.eventHandler.trigger(tt?xa:Wo)};R.addEventListener(this.google.ima.AdEvent.Type.PAUSED,()=>T(!0)),R.addEventListener(this.google.ima.AdEvent.Type.RESUMED,()=>T(!1)),R.addEventListener(this.google.ima.AdEvent.Type.STARTED,()=>T(!1)),R.addEventListener(this.google.ima.AdEvent.Type.VOLUME_MUTED,(tt)=>{this.log("IMA::volume(type: %s, event: %o)","mute",tt),this.eventHandler.trigger(Pd)});let{width:L,height:M}=n;if(!L||!M)return;R.init(L,M,this.google.ima.ViewMode.NORMAL),this.log("ima.initialise: done initializing")}),d)this.log("Event(reload: %s)",Fa),this.eventHandler.trigger(Fa,o);this.eventHandler.trigger(Ho,this)}destroyManager(n="unknown"){if(!this._adsManager)return this.log("ima::destroyManager(:skip, label: %s)",n);this.log("ima::destroyManager(:ok, label: %s)",n),this._adsManager.destroy()}reset(){this.destroyManager("reset"),ks(this._timers),this.clearAdHandlers(),this._started=!1,this._adLoaded=!1}cleanup(){if(this.destroyManager("cleanup"),this._adsLoader)this._adsLoader.destroy();if(this._adDisplayContainer)this._adDisplayContainer.destroy();this._adLoaded=!1}waitForAdsManager(){return new Promise((n)=>{this.log("ima.waitForAdsManager:",this._adsManager),this.once(this._adsLoader,this.google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,()=>{this.log("ima.waitForAdsManager(:ok)",this._adsManager),n(this._adsManager)})})}async initAd(n,o=5000){if(this.log(`ima.initAd(adTag: ${n}, timeout: ${o})`),!this.customPlaybackEnabled)this.loadingController.adRequestStart(this.opts.total_loading_timeout);try{if(await this.requestAd(n,this.loadingController.getRemainingAdLoadTime(o,this.opts.total_loading_timeout)),this._adLoaded=!0,this.customPlaybackEnabled)return;this._adsManager?.updateAdsRenderingSettings({loadVideoTimeout:this.loadingController.getRemainingAdLoadTime(this.opts.media_timeout||-1,this.opts.total_loading_timeout)})}catch(d){throw this.log("ima.initAd:",d),this._adLoaded=!1,d}finally{ks(this._timers)}}async requestAd(n,o){if(this.destroyManager("requestAd"),!this.videoTag)return;this.setAdBreakTime(this.videoTag.currentTime);let{autoplay:d=!1}=this.opts,v=Date.now(),E=this.videoTag.muted;this._volumeLevel=this.videoTag.volume;let A=E||this._volumeLevel===0;this._all_ads_completed=!1,this.log("ima.requestAd(%o)",{...this.opts,autoplay:d,muted:E,timeout:o,adTag:n,_volumeLevel:this._volumeLevel,manager:this._adsManager}),this.clearAdHandlers();let R=new this.google.ima.AdsRequest;R.adTagUrl=n;let{height:T,width:L}=this.opts;if(L)R.linearAdSlotWidth=L;if(T)R.linearAdSlotHeight=T;if(!this.opts.disable_non_linear_ads&&L)R.nonLinearAdSlotWidth=L;if(!this.opts.disable_non_linear_ads&&T)R.nonLinearAdSlotHeight=T-50;if(R.setAdWillAutoPlay(d),R.setAdWillPlayMuted(A),R.vastLoadTimeout=o,this.eventHandler.trigger(Gd,{request:R}),!this._adsLoader)return;return new Promise(async(M,tt)=>{let b=this.waitForAdsManager();this._adsLoader?.requestAds(R),this.once(this._adsLoader,this.google.ima.AdErrorEvent.Type.AD_ERROR,(H)=>{tt(()=>{return this.emitError(Wr,H),Promise.reject(Error("Ad load failed"))})}),setTimeout(()=>{tt(()=>{b.then((N)=>{if(N.destroy(),this._adsManager===N)this._adsManager=void 0});let H=Error("Ad internal timeout reached");return this.eventHandler.trigger(xd,H),Promise.reject(H)})},o),M(await b)}).then((M)=>{return new Promise((tt,b)=>{this.volume(A?0:this._volumeLevel),this.eventHandler.trigger(Rc,this._volumeLevel);let H=this.cuepoints();if(H?.length&&H[0]!==0)return tt({ad:!1,adsManager:M});this.once(M,this.google.ima.AdErrorEvent.Type.AD_ERROR,(N)=>{b(()=>{return this.emitError(Wr,N),Promise.reject(N)})}),this.once(M,this.google.ima.AdEvent.Type.ALL_ADS_COMPLETED,()=>{this._all_ads_completed=!0,tt(null)}),this.once(M,this.google.ima.AdEvent.Type.LOADED,(N)=>{this.eventHandler.trigger(Ko,{request_load_time:Date.now()-v});let K=N.getAd();if(!K)return;if(this.log("ima.requestAd: AD_REQUEST_COMPLETED",K.getContentType()),K.getContentType()==="application/javascript")this.eventHandler.trigger(Bd,K);tt(null)}),this.once(M,this.google.ima.AdEvent.Type.CLICK,()=>{this.log("ima.requestAd: click event"),this.pause()})})},(M)=>M())}async playAd(){if(this.log("ima.playAd()",this),!this._adsManager||!this._adLoaded)return;let n=this.currentAd();if(!n)return;if(this.customPlaybackEnabled&&!n.isLinear())return;try{await this.startAndWaitForAdCompletion(this._adsManager,n.isLinear())}catch(o){throw this.log("ima.playAd",o),o}finally{this._adLoaded=!1,ks(this._timers)}}startAndWaitForAdCompletion(n,o){if(this._started)return;return this.log("ima.startAndWaitForAdCompletion(manager: %o)",{volume:n.getVolume()}),new Promise((d,v)=>{let E=!1;this.once(n,this.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,()=>{if(this.log("ima.startAndWaitForAdCompletion: CONTENT_RESUME_REQUESTED <<< happened"),this._started=!1,E)return this.log("ima.startAndWaitForAdCompletion: Content resume requested, but trying to recover from ad error");d()}),this.once(n,this.google.ima.AdErrorEvent.Type.AD_ERROR,async(T)=>{this.log("ima.startAndWaitForAdCompletion: beginning error recovery ->",T),E=!0;try{let{ok:L}=await Ln.pollForFatalError({err:T,ima:this});if(L)E=!1}catch(L){this._started=!1,v(T)}});let A=this.getVideoTag();if(!A)return;let R=()=>{if(o)this._started=!0;n.start(),this.eventHandler.trigger(jo)};if(!o||A.hasState("is-in-viewport"))return R();if(!A.paused)A.pause();A.once(zd.VIEW_ENTER,()=>R())})}pause(){this.log("ima.pause()"),this._adsManager?.pause()}resume(){this.log("ima.resume()"),this._adsManager?.resume()}volume(n){if(!this._adsManager)return;try{if(arguments.length>0&&typeof n==="number")this._adsManager.setVolume(n);return this._volumeLevel=this._adsManager.getVolume()}catch(o){this.log("ima.volume() failed (%o)",o)}}onResize({width:n,height:o,linear:d,silent:v,resize_non_linear:E}){if(!this._adsManager)return;if(this._adLinear=typeof d>"u"?this._adLinear:d,!this.opts)return;if(!n&&!o)return;if(d===!1)n=n+10,o=o+10;if(this._dimensions={width:n,height:o,linear:d},d)this.opts.width=n,this.opts.height=o;if(!this._adLinear&&!E)return;if(!v)this.log("ima.onResize %s x %s",n,o);this._adsManager.resize(n,o,this.google.ima.ViewMode.NORMAL)}onAdRequestEnd(){if(this.customPlaybackEnabled)return;this.loadingController.adRequestEnd(),this._adsManager?.updateAdsRenderingSettings({loadVideoTimeout:this.opts.media_timeout||-1})}getAdInfo(){let n=this.currentAd();if(!n)return;return{duration:n.getDuration(),currentTime:this._currentRemaining}}currentAd(){let n=this._adsManager;if(!n)return;return n.getCurrentAd()}isAdPod(){let n=this.cuepoints();return!!(n&&n.length>0)}cuepoints(){return this._adsManager?.getCuePoints()}async contentComplete(){this.log("ima.contentComplete() -> ",this),this._adsLoader?.contentComplete();let n=this.cuepoints();if(!n||n.indexOf(-1)===-1)return;await new Promise((o)=>{Ln.race(this.eventHandler,[rr,zo],o)})}isUiDisabled(){try{let n=this.currentAd();return n&&n.isUiDisabled()}catch(n){return null}}getAdPodInfo(){try{return this.currentAd()?.getAdPodInfo()}catch(n){return null}}canDismissNonLinear(){let n=this.currentAd();if(!n||n.isLinear()||!this._adsManager||!this._currentDisplayTs)return!0;let o=Date.now(),d=n.getMinSuggestedDuration();return o-this._currentDisplayTs>d*1000}static unwrapError(n,o){if(!n)return"";if(typeof n.getMessage==="function")return n.getMessage();if(n.message)return n.message;return o||""}static pollForFatalError({err:n,ima:o}){let d;try{let E=n.getError(),A=E.getInnerError();d={reason:A?Ln.unwrapError(A,E.message):"",type:E.getType(),code:E.getErrorCode()}}catch(E){}let v=o._currentRemaining;return new Promise((E,A)=>{let R=setTimeout(()=>{if(o.eventHandler)o.eventHandler.trigger(Ts,d);A(Error("Ad not progressing"))},2500);o.eventHandler.once(Yr,(T)=>{let L=T.detail.remaining;if(L!==-1&&L<v)clearTimeout(R),E({ok:1})})})}static pollRemaining({ima:n,adsManager:o}){let d=-1;return jd(n._timers,250,()=>{let v=o.getRemainingTime();if(n._currentRemaining!==-1&&n._currentRemaining<=v)return;if(n._currentRemaining=o.getRemainingTime(),d===n._currentRemaining)return;d=n._currentRemaining,n.eventHandler.trigger(Yr,{remaining:n._currentRemaining,duration:n._currentDuration})})}once(n,o,d){this._adHandlers.push(Vd(n,o,d))}static race(n,o,d){o.forEach((v)=>{let E=(...A)=>{o.forEach((R)=>n.removeListener(R,E)),d(A)};n.on(v,E)})}clearAdHandlers(){this.log("ima.clearAdHandlers"),this._adHandlers.forEach((n)=>n()),this._adHandlers=[]}emitWithAd(n,o){if(this.log("ima.emitWithAd",n,o),!this._adsManager)return;let d=Wd(o),v=Yd(o),E={ad:{duration:o.getDuration(),width:o.getWidth(),height:o.getHeight(),position:d,totals:v},volume:this._adsManager.getVolume(),vast_ad_id:o.getAdId(),linear:o.isLinear(),mime_type:o.getContentType(),ima_event:!0};this.log(`emitWithAd::event(name: ${n}, data: %o, ad: %o)`,E,o),this.eventHandler.trigger(n,E)}emitError(n,o){let d={vast_error_type:o.getError().getType(),reason:o.getError().getMessage(),vast_error:o.getError().getErrorCode()};this.log(`ima.error(${n})`,d),this.eventHandler.trigger(n,d)}debugEvent(n){try{let o=n.getAd();if(!o)return;this.log(`ima.event.${n.type} ->`,{event:n,data:n.getAdData(),position:Kd(o),ad:o})}catch(o){}}}function qd(n,o){return n.adapter?new n.adapter(o):new Ln(o)}var kv=Re("fpads:ads:state");class Zo{_state;static of(){return new Zo}constructor(n=0){this._state=n}reset(){this._state=0}toggleState(n,o){if(typeof n>"u")kv(Error("AdState cannot toggleState for `undefined`"));if(typeof o>"u")return this._state^=n;if(!o)return this._state&=~n;this._state|=n}hasAll(n){return this._state===(this._state|n)}hasAny(n){return!!(this._state&n)}get state(){return this._state}}var sh=Ne(Xd(),1),ah=Ne(Jd(),1),oh=Ne(Qd(),1),lh=Ne(Zd(),1),ch=Ne(th(),1),uh=Ne(eh(),1),dh=Ne(ih(),1),hh=Ne(rh(),1),fh=Ne(nh(),1);var Dc={};rd(Dc,{zh:()=>jv,tr:()=>Yv,tlh:()=>Wv,sv:()=>Kv,sk:()=>Vv,pt:()=>Hv,pl:()=>Gv,oc:()=>$v,nn:()=>Bv,nl:()=>Uv,nb:()=>Fv,he:()=>xv,gr:()=>Pv,fr:()=>Nv,fi:()=>Mv,es:()=>Ov,en:()=>Iv,de:()=>Dv,cs:()=>Cv});var Cv={ads:{ad:"Reklama",ads:"Reklamy",advertisement:"Reklama",indicator:"Reklamy"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Titulky"},core:{exit_fullscreen:"Vypnout režim celé obrazovky",fullscreen:"Zapnout režim celé obrazovky",mute:"Vypnout zvuk",pause:"Pauza",play:"Přehrát",unmute:"Zapnout zvuk",volume:"Hlasitost"},ovp:{starting_in:"Odpočítavání"},playlist:{cancel:"Cancel",up_next:"Další"},qsel:{menu_title:"Kvalita"},share:{clipboard_failure:"Přístup do schránky se nezdařil",clipboard_success:"Kód na stránku je nyní ve vaší schránce",embed:"Kód na stránku",link:"Odkaz",menu_title:"Sdílet"},speed:{menu_title:"Rychlost"}},Dv={ads:{ad:"Werbung",ads:"Werbung",advertisement:"Werbung",indicator:"Werbung"},audio:{button_txt:"Ton",menu_title:"Ton"},cc:{button:"CC",menu_title:"Untertitel"},core:{exit_fullscreen:"Vollbild verlassen",fullscreen:"Vollbild",mute:"Ton aus",pause:"Pause",play:"Abspielen",unmute:"Ton ein",volume:"Lautstärke"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Abbrechen",up_next:"Nächste"},qsel:{menu_title:"Qualität"},share:{clipboard_failure:"Zugriff auf Zwischenablage fehlgeschlagen",clipboard_success:"Embedcode in die Zwischenablage kopiert",embed:"Einbetten",link:"Link",menu_title:"Teilen"},speed:{menu_title:"Geschwindigkeit"}},Iv={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertisement",indicator:"Ads"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Subtitles",options:"Options",tracks:"Tracks",reset:"Reset",colors:{Black:"Black",Blue:"Blue",Cyan:"Cyan",Green:"Green",Magenta:"Magenta",Red:"Red",White:"White",Yellow:"Yellow"},edgeStyle:{None:"None","Drop shadow":"Drop shadow",Raised:"Raised",Depressed:"Depressed",Outline:"Outline"},fontFamily:{"Monospaced Serif":"Monospaced Serif","Proportional Serif":"Proportional Serif","Monospaced Sans-Serif":"Monospaced Sans-Serif","Proportional Sans-Serif":"Proportional Sans-Serif",Casual:"Casual",Cursive:"Cursive"},properties:{fontFamily:"Font family",fontSize:"Font size",fontColor:"Font color",fontOpacity:"Font opacity",backgroundColor:"Background color",backgroundOpacity:"Background opacity",characterEdgeStyle:"Character edge style"}},chromecast:{start:"start casting",stop:"stop casting"},core:{exit_fullscreen:"Exit fullscreen",fullscreen:"Fullscreen",mute:"Mute",pause:"Pause",play:"Play",seconds:"Seconds",timeline_aria_label:"Seek slider",unmute:"Unmute",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Up next"},qsel:{menu_title:"Quality"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"The text is now on your clipboard",embed:"Embed",link:"Link",menu_title:"Share"},speed:{menu_title:"Speed"},vtsel:{button_txt:"Video",menu_title:"Video Track"}},Ov={ads:{ad:"Anúncio",ads:"Anúncios",advertisement:"Anúncio",indicator:"Anúncios"},audio:{button_txt:"Áudio",menu_title:"Áudio"},cc:{button:"CC",menu_title:"Subtítulos"},core:{exit_fullscreen:"Pantalla no completa",fullscreen:"Pantalla completa",mute:"Silenciar",pause:"Pausa",play:"Reproducir",unmute:"No silenciado",volume:"Volumen"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancelar",up_next:"Siguiente"},qsel:{menu_title:"Calidad"},share:{clipboard_failure:"Fallo en el acceso al portapapeles",clipboard_success:"El código de insercíon ahora está en tu portapapeles",embed:"Insertar",link:"Enlace",menu_title:"Compartir"},speed:{menu_title:"Velocidad"}},Mv={ads:{ad:"Mainos",ads:"Mainos",advertisement:"Mainos",indicator:"Mainos"},audio:{button_txt:"Kieli",menu_title:"Kieli"},cc:{button:"CC",menu_title:"Tekstitys"},core:{exit_fullscreen:"Poistu kokonäytön tilasta",fullscreen:"Koko näytön tila",mute:"Vaimenna",pause:"Keskeytä",play:"Toista",unmute:"Poista vaimennus",volume:"Äänenvoimakkuus"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Peruuta",up_next:"Seuraavaksi"},qsel:{menu_title:"Laatu"},share:{clipboard_failure:"Leikepöydän käyttö epäonnistui",clipboard_success:"Kopioitu leikepöydälle",embed:"Upota",link:"Linkki",menu_title:"Jaa"},speed:{menu_title:"Nopeus"}},Nv={ads:{ad:"Annonce",ads:"Annonces",advertisement:"Annonce",indicator:"Annonces"},audio:{button_txt:"Son",menu_title:"Son"},cc:{button:"CC",menu_title:"Sous-titres"},core:{exit_fullscreen:"Quitter le mode plein écran",fullscreen:"Plein écran",mute:"Sourdine",pause:"Pause",play:"Lecture",unmute:"Son activé",volume:"Volume"},ovp:{starting_in:"Compte à rebours"},playlist:{cancel:"Annuler",up_next:"Suivant"},qsel:{menu_title:"Qualité"},share:{clipboard_failure:"L'accès au presse-papier a échoué",clipboard_success:"Le code embed est maintenant dans votre presse-papiers",embed:"Embed",link:"Lien",menu_title:"Partager"},speed:{menu_title:"Vitesse"}},Pv={ads:{ad:"Διαφήμιση",ads:"Διαφήμισεις",advertisement:"Διαφήμιση",indicator:"Διαφήμισεις"},audio:{button_txt:"Ηχος",menu_title:"Κομμάτι ήχου"},cc:{button:"ΥΠ",menu_title:"Υπότιτλοι",options:"Επιλογες",tracks:"Κομματια",reset:"Επαναφορα",colors:{Black:"Μαυρο",Blue:"Μπλε",Cyan:"Γαλαζιο",Green:"Πρασσινο",Magenta:"Ροζ",Red:"Κοκκινο",White:"Λευκο",Yellow:"Κιτρινο"},edgeStyle:{None:"Κανενα","Drop shadow":"Αναπτυσσομενη σκια",Raised:"Αναγλυφο",Depressed:"Πεπλατυσμενο",Outline:"Περιγραμμα"},fontFamily:{"Monospaced Serif":"Serif σταθερου πλατους","Proportional Serif":"Serif αναλογικου πλατους","Monospaced Sans-Serif":"Sans-Serif σταθερου πλατους","Proportional Sans-Serif":"Sans-Serif αναλογικου πλατους",Casual:"Απλες",Cursive:"Λοξες"},properties:{fontFamily:"Οικογενεια γραμματοσειρων",fontSize:"Μεγεθος γραμματοσειρας",fontColor:"Χρωμα γραμματοσειρας",fontOpacity:"Αδιαφανεια γραμματοσειρας",backgroundColor:"Χρωμα φοντου",backgroundOpacity:"Αδιαφανεια φοντου",characterEdgeStyle:"Στιλ ακρων χαρακτηρα"}},core:{exit_fullscreen:"Έξοδος πλήρους οθονης",fullscreen:"Πλήρης οθόνη",mute:"Σίγαση",pause:"Παύση",play:"Αναπαραγωγή",unmute:"Κατάργηση σίγασης",volume:"Ενταση ήχου"},ovp:{starting_in:"Αντίστροφη μέτρηση"},playlist:{cancel:"Ακύρωση",up_next:"Επόμενο Βίντεο"},qsel:{menu_title:"Ανάλυση εικόνας"},share:{clipboard_failure:"Η αντιγραφη της επιλογής απέτυχε",clipboard_success:"H επιλογή αντιγράφηκε επιτυχώς",embed:"Κώδικας Ενσωμάτωσης",link:"Σύνδεσμος",menu_title:"Κοινοποίηση"},speed:{menu_title:"Ταχύτητα"}},xv={ads:{ad:"מודעה",ads:"מודעה",advertisement:"מודעה",indicator:"מודעה"},audio:{button_txt:"שֶׁמַע",menu_title:"שֶׁמַע"},cc:{button:"CC",menu_title:"כתוביות"},core:{exit_fullscreen:"צא ממסך מלא",fullscreen:"מסך מלא",mute:"לְהַשְׁתִיק",pause:"עצור",play:"נגן",unmute:"בטל השתקה",volume:"עוצמת שמע"},ovp:{starting_in:"ספירה לאחור"},playlist:{cancel:"לְבַטֵל",up_next:"הבא"},qsel:{menu_title:"איכות"},share:{clipboard_failure:"הגישה ללוח נכשלה",clipboard_success:"הטקסט נמצא כעת על הלוח שלך",embed:"לְשַׁבֵּץ",link:"קישור",menu_title:"לַחֲלוֹק"},speed:{menu_title:"מְהִירוּת"}},Fv={ads:{ad:"Reklame",ads:"Reklame",advertisement:"Reklame",indicator:"Reklame"},audio:{button_txt:"Lydspor",menu_title:"Lydspor"},cc:{button:"CC",menu_title:"Teksting"},core:{exit_fullscreen:"Avslutt fullskjerm",fullscreen:"Fullskjerm",mute:"Skru av lyd",pause:"Pause",play:"Spill av",unmute:"Skru på lyd",volume:"Volum"},ovp:{starting_in:"Sendingen starter om"},playlist:{cancel:"Cancel",up_next:"Neste video"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Tilgang til utklippstavlen mislyktes",clipboard_success:"Teksten er nå på utklippstavlen din",embed:"Embed",link:"Link",menu_title:"Del"},speed:{menu_title:"Hastighet"}},Uv={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertentie",indicator:"Ads"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Ondertiteling"},core:{exit_fullscreen:"Sluit fullscreen",fullscreen:"Fullscreen",mute:"Dempen",pause:"Pause",play:"Play",unmute:"Dempen opheffen",volume:"Volume"},ovp:{starting_in:"Start over"},playlist:{cancel:"Annuleren",up_next:"Volgende"},qsel:{menu_title:"Kwaliteit"},share:{clipboard_failure:"Toegang tot klembord mislukt",clipboard_success:"De tekst staat nu op je klembord",embed:"Embed",link:"Link",menu_title:"Deel"},speed:{menu_title:"Snelheid"}},Bv={ads:{ad:"Reklame",ads:"Reklame",advertisement:"Reklame",indicator:"Reklame"},audio:{button_txt:"Lydspor",menu_title:"Lydspor"},cc:{button:"CC",menu_title:"Teksting"},core:{exit_fullscreen:"Avslutt fullskjerm",fullscreen:"Fullskjerm",mute:"Skru av lyd",pause:"Pause",play:"Spel av",unmute:"Skru på lyd",volume:"Volum"},ovp:{starting_in:"Nedteljing"},playlist:{cancel:"Cancel",up_next:"Neste video"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Tilgang til utklippstavlen mislyktes",clipboard_success:"Teksten er no på utklippstavlen din",embed:"Embed",link:"Link",menu_title:"Del"},speed:{menu_title:"Hastighet"}},$v={ads:{ad:"Publicitat",ads:"Publicitats",advertisement:"Publicitat",indicator:"Pubs"},audio:{button_txt:"Àudio",menu_title:"Àudio"},cc:{button:"ST",menu_title:"Sostítol"},core:{exit_fullscreen:"Sortir de l’ecran complèt",fullscreen:"Ecran complèt",mute:"Amudir",pause:"Pausa",play:"Lectura",unmute:"Restablir lo son",volume:"Volum"},ovp:{starting_in:"Descompte"},playlist:{cancel:"Anullar",up_next:"Seguent"},qsel:{menu_title:"Qualitat"},share:{clipboard_failure:"Fracàs de l’accès al quichapapièrs",clipboard_success:"Lo tèxt es copiat al quichapapièrs",embed:"Integrar",link:"Ligam",menu_title:"Partejar"},speed:{menu_title:"Velocitat"}},Gv={ads:{ad:"Reklama",ads:"Reklama",advertisement:"Reklama",indicator:"Reklama"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Napisy"},core:{exit_fullscreen:"Wyjdź z pełnego ekranu",fullscreen:"Pełny ekran",mute:"Wyciszenie",pause:"Pauza",play:"Odtwarzaj",unmute:"Wyłącz wyciszenie",volume:"Głośność"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Anuluj",up_next:"Następny"},qsel:{menu_title:"Jakość"},share:{clipboard_failure:"Błąd dostępu do schowka",clipboard_success:"Kod embedu jest teraz w twoim schowku.",embed:"Osadź",link:"Link",menu_title:"Share"},speed:{menu_title:"Prędkość"}},Hv={ads:{ad:"Anúncio",ads:"Anúncios",advertisement:"Anúncio",indicator:"Anúncios"},audio:{button_txt:"Áudio",menu_title:"Áudio"},cc:{button:"CC",menu_title:"Subtítulos"},core:{exit_fullscreen:"Tela não cheia",fullscreen:"Tela cheia",mute:"Silenciar",pause:"Pausa",play:"Reproduzir",unmute:"Não silenciado",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancelar",up_next:"A seguir"},qsel:{menu_title:"Qualidade"},share:{clipboard_failure:"Falha no acesso à área de transferência",clipboard_success:"O código de inserção está agora na sua área de transferência",embed:"Embutir",link:"Link",menu_title:"Compartilhar"},speed:{menu_title:"Velocidade"}},Vv={ads:{ad:"Reklama",ads:"Reklamy",advertisement:"Reklama",indicator:"Reklamy"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Titulky"},core:{exit_fullscreen:"Vypnúť režim celej obrazovky",fullscreen:"Zapnúť režim celej obrazovky",mute:"Vypnúť zvuk",pause:"Pauza",play:"Prehrať",unmute:"Zapnúť zvuk",volume:"Hlasitosť"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Ďalšie"},qsel:{menu_title:"Kvalita"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"Kód na stránku je teraz vo vašej schránke",embed:"Kód na stránku",link:"Odkaz",menu_title:"Zdieľať"},speed:{menu_title:"rRýchlosť"}},Kv={ads:{ad:"Reklam",ads:"Reklam",advertisement:"Reklam",indicator:"Reklam"},audio:{button_txt:"Ljud",menu_title:"Ljud"},cc:{button:"CC",menu_title:"Undertexter"},core:{exit_fullscreen:"Avsluta helskärm",fullscreen:"Helskärm",mute:"Ljud av",pause:"Paus",play:"Spela",unmute:"Ljud på",volume:"Volym"},ovp:{starting_in:"Börjar om"},playlist:{cancel:"Avbryt",up_next:"Nästa"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Åtkomst till Urklipp misslyckades",clipboard_success:"Inbäddningskoden är nu kopierad",embed:"Bädda in",link:"Länk",menu_title:"Dela"},speed:{menu_title:"Hastighet"}},Wv={ads:{ad:"'chel",ads:"tlhaw'DIyuS",advertisement:"'uQ'a'",indicator:"chel"},audio:{button_txt:"qaStaHvIS",menu_title:"qaStaHvIS"},cc:{button:"CC",menu_title:"qeylIS"},core:{exit_fullscreen:"tlhoy'",fullscreen:"che'",mute:"jaS",pause:"yev",play:"chu'",unmute:"Huy'vam",volume:"muq"},ovp:{starting_in:"qornel"},playlist:{cancel:"qil",up_next:"Hu'"},qsel:{menu_title:"boqral"},share:{clipboard_failure:"SengDaj LopmeH mIv'a'",clipboard_success:"che'rup neH 'oH buStaHvIS.",embed:"tlhIlwI'",link:"Hol",menu_title:"SaH"},speed:{menu_title:"pIp"}},Yv={ads:{ad:"Reklam",ads:"Reklamlar",advertisement:"Reklam",indicator:"Reklamlar"},audio:{button_txt:"Ses",menu_title:"Ses"},cc:{button:"CC",menu_title:"Altyazılar"},core:{exit_fullscreen:"Tam ekrandan çık",fullscreen:"Tam ekran",mute:"Sessiz",pause:"Duraklat",play:"Oynat",unmute:"Sesi aç",volume:"Ses"},ovp:{starting_in:"Geri sayım"},playlist:{cancel:"İptal",up_next:"Sonraki"},qsel:{menu_title:"Kalite"},share:{clipboard_failure:"Panoya erişim başarısız oldu",clipboard_success:"Metin panoya kopyalandı",embed:"Yerleştir",link:"Bağlantı",menu_title:"Paylaş"},speed:{menu_title:"Hız"}},jv={ads:{ad:"广告",ads:"广告",advertisement:"广告",indicator:"广告"},audio:{button_txt:"声音",menu_title:"声音"},cc:{button:"字幕",menu_title:"字幕"},core:{exit_fullscreen:"退出全屏",fullscreen:"全屏",mute:"静音",pause:"暂停",play:"播放",unmute:"取消静音",volume:"音量"},ovp:{starting_in:"倒计时"},playlist:{cancel:"取消",up_next:"即将播放"},qsel:{menu_title:"清晰度"},share:{clipboard_failure:"无法复制到剪贴板",clipboard_success:"已复制到剪贴板",embed:"嵌入",link:"链接",menu_title:"分享"},speed:{menu_title:"倍速"},vtsel:{button_txt:"视频",menu_title:"视频轨道"}};var Cs=sh.default(lh.default,oh.default),zv=Cs.extensions,El=Cs.version;Object.assign(Cs.i18n,Dc);function yl(n){return Cs.extensions=zv.slice(),[dh.default,hh.default,fh.default,ah.default,uh.default,ch.default].forEach((o)=>{if(!n.includes(o.pluginName))return;Cs.extensions.push(o)}),Cs}var Ic={URL:"https://fp-eu-w1-aai.flowplayer.com/in",METHOD:"POST"},mh=[Vo,Wr,Ko,As,ir,zo,Ls],gh=["event_type","ad_tag_id","media_id","player_id","site_id","sitegroup_id","rnd","os","device","browser","browser_version","plugin_version","player_version"],ph=["vast_error","reason","request_load_time","ad_type","vast_ad_id"];var Eh=Ne(vh(),1);var Xv=Eh.default.parse(window.navigator.userAgent),{platform:Jv,os:Mc,browser:Nc}=Xv,Pc=(n)=>n?.toLowerCase(),yh={rnd:Math.random().toString(36).substr(2,32),os:Pc(Mc.name+(Mc.versionName?` ${Mc.versionName}`:"")),device:Pc(Jv.type),browser:Pc(Nc.name),browser_version:((Nc?.version)?Nc.version:"unknown").split(".").shift(),plugin_version:El};var Wi={ok:Re("fpads:analytics:request-queue"),err:Re("fpads:analytics:request-queue:err"),warn:Re("fpads:analytics:request-queue:warn")};class _e{pending;open;stats;static MAX_OPEN_REQUESTS=3;static REQUEST_TIMEOUT_MS=4000;static REQUEST_TTL_MS=5000;static MAX_FAILURE_COUNT=3;static of(){return new _e}static is_empty(n){return n.pending.length===0}static is_high_water(n){return n.open.length===_e.MAX_OPEN_REQUESTS}static maybe_spawn_req(n){if(_e.is_empty(n))return Wi.ok("maybe_spawn_req called Queue that is EMPTY"),n;if(_e.is_high_water(n))return Wi.warn("maybe_spawn_req called on Queue that is HIGH_WATER"),n;try{let o=_e.lpop(n);if(o)_e.request(n,o)}catch(o){Wi.err(o)}}static increment_failures(n){if(n.stats.failures++,n.stats.failures>_e.MAX_FAILURE_COUNT)n.stats.ttl=Date.now()+_e.REQUEST_TTL_MS;return n}static handle_error(n,o){_e.rm(n,o),_e.increment_failures(n)}static request(n,[o,d,v]){if(Wi.ok(`Request[${v.event_type}] request`,v,n.stats),Date.now()<n.stats.ttl)return Wi.warn(`Request[${v.event_type}] skipping because too many errors too quickly`,n.stats);let E=new XMLHttpRequest;n.open.push(E),E.timeout=_e.REQUEST_TIMEOUT_MS,E.ontimeout=()=>{_e.handle_error(n,E),Wi.warn(`Request[${v.event_type}] timed out in ${E.timeout}ms`,n.stats)},E.onerror=(A)=>{if(_e.handle_error(n,E),A)Wi.err(A);Wi.warn(`Request[${v.event_type}] encountered an Error`,E.responseText,n.stats)},E.onreadystatechange=()=>{if(E.readyState===XMLHttpRequest.DONE)_e.rm(n,E);if(Math.floor(E.status/100)===2)return},E.onload=()=>{if(_e.rm(n,E),n.stats.failures)n.stats.failures--;Wi.ok(`Request[${v.event_type}] :ok`,E.status)},E.open(d,o),E.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{E.send(JSON.stringify(v))}catch(A){Wi.err(A)}}static rpush(n,...o){return o.forEach((d)=>{if(_e.is_high_water(n))return Wi.warn("Too many open requests, skipping",n.stats);n.pending.push(d),_e.maybe_spawn_req(n)}),n}static lpop(n){return n.pending.shift()}static rm(n,o){let d=n.open.lastIndexOf(o);if(~d)n.open.splice(d,1);return n}constructor(n=[],o=[],d={failures:0,ttl:0}){this.pending=n;this.open=o;this.stats=d}}var xc=Re("ads/analytics"),Qv=_e.of(),Fc=(...n)=>Object.assign({},...n),Zv=(n,...o)=>Object.keys(n).filter((d)=>~o.indexOf(d)).reduce((d,v)=>Object.assign(d,{[v]:n[v]}),{});class nr{emitter;static of(n,o){return new nr(n,o)}static ensure_required_keys(n,o){return n.required_keys.filter((d)=>!(d in o))}static pluck_valid_keys(n,o){return Zv(o,...n.valid_keys)}static mergeMetadata(n,o={}){return n.metadata=nr.pluck_valid_keys(n,Fc(n.metadata,o,{player_version:El})),n}events;required_keys;optional_keys;valid_keys;metadata;constructor(n,o={}){this.emitter=n;this.metadata=Fc(yh,o.metadata||{}),this.emitter=n,this.events=o.events||[],this.required_keys=o.required_keys||[],this.optional_keys=o.optional_keys||[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),xc(this),this.wireup()}wireup(){this.events.forEach((n)=>{this.emitter.on(n,(o)=>{let d=o.detail,v=Fc(this.metadata,{event_type:n},d),E=nr.pluck_valid_keys(this,v),A=nr.ensure_required_keys(this,E);if(xc(`Event[${n}]`,{payload:E,observation:d}),A.length)return xc(`Analytics.validate_metadata() failed for
194
+ Event[${n}]
195
+ missing keys: ${A}`,E);_e.rpush(Qv,[Ic.URL,Ic.METHOD,E])})})}destroy(){let n=this;n.emitter=n.metadata=n.events=n.required_keys=n.optional_keys=n.valid_keys=void 0}}var Sh=(n)=>nr.of(n,{required_keys:gh,optional_keys:ph,events:mh});var Wc=Ne(Dh(),1);var yE=Re("fpads:macros"),Ih=/\[([\s\S]+?)\]/g,SE=/\{([\s\S]+?)\}/g,bE=/__([\s\S]+?)__/g;class ci{vars;pattern;static patterns={BRACKETS:Ih,CURLY:SE,UNDERSCORE:bE};static run(n){try{return n()}catch(o){console.error(o);return}}static merge(...n){return n.reduce((o,d)=>{return Object.assign(o,d)},{})}static cast(n){if(typeof n>"u")return"";if(typeof n==="function")return encodeURIComponent(ci.run(n)||"");if(typeof n==="string")return encodeURIComponent(n);if(typeof n==="number")return n.toString();if(typeof n==="boolean")return n.toString();return""}static normalize(n){return n.trim()}static process_obj(n,o,d){return Object.keys(n).reduce((v,E)=>{let A=ci.process_str(E,o,d,!0),R=n[E];if(R===null)return v[A]=R,v;if(typeof R==="object")return v[A]=ci.process_obj(R,o,d),v;if(typeof R==="string")return v[A]=ci.process_str(R,o,d),v;return console.error(Error(`${R} at ${E} not a handled Macro type`)),v},{})}static process_str(n,o,d,v=!1){return n.replace(o.pattern,(E,A)=>{let R=ci.normalize(A);if(!(R in d)||typeof d[R]>"u")return E;let T=d[R],L=v?T:ci.cast(T);return yE("Macro.replace(raw: %s, macro: %s, value: %s)",v,A,L),L})}constructor(n={},o=Ih){this.vars=n;this.pattern=o}fork(n={},o=this.pattern){let d=ci.merge(this.vars,n);return new ci(d,o)}compile(n,o={}){let d=ci.merge(this.vars,o),[v,E]=n.split("?"),A=Wc.default.parse(E||"",{strictNullHandling:!0,decoder:(T)=>T}),R=Wc.default.stringify(ci.process_obj(A,this,d),{encode:!1,strictNullHandling:!0});return ci.process_str(v,this,d,!0)+"?"+R}}var Oh=/^flowplayer:\/\/(.+)/;async function bl(n){if(typeof n==="string"&&Oh.test(n)){let o=Oh.exec(n),d=o&&window[o[1]];if(d)return bl(d)}if(typeof n!=="function")return n;try{return await n()}catch(o){return""}}async function Yc(n){if(typeof n==="function")return[await bl(n)];if(typeof n==="string")return[await bl(n)];if(Array.isArray(n))return await Promise.all(n.map(bl));if(typeof n==="object"&&n&&n.adTag)return await Yc(n.adTag);throw Error(`
196
+ unhandled ads type ${typeof n}:
197
+ ${JSON.stringify(n)}
201
198
  can be:
202
199
  | Array<string>
203
200
  | string
204
201
  | function
205
202
  | {adTag: Array<string>|string|function}
206
- `)}function vE(){let r=window;return typeof r.__flowplayerAdParameters==="object"?r.__flowplayerAdParameters:{}}function Ih(r,l={width:0,height:0}){let d,v;try{let L=document.createElement("a");L.href=d=window.location!==window.parent.location?document.referrer:document.location.href,v=L.hostname}catch(L){console.error(L)}let{width:E,height:A}=l,{video_source:R}=r||{},T=vE();return{random:Date.now(),page_url:d,domain:v,player_width:E,player_height:A,video_url:R,videourl:R,...T}}class Yc{_bus;_listeners;constructor(r=document.createElement("div"),l=[]){this._bus=r;this._listeners=l}removeAllListeners(){this._listeners.length=0,this._bus=document.createElement("div")}emit(r,l){let d=new CustomEvent(r,{detail:l||{}});this._bus.dispatchEvent(d)}on(r,l){this._listeners.push([r,l]),this._bus.addEventListener(r,l,{passive:!0})}once(r,l){this._bus.addEventListener(r,l,{once:!0})}removeListener(r,l){this._bus.removeEventListener(r,l)}}var{prototype:EE,getPrototypeOf:yE}=Object;function Oh(r){if(r===null||typeof r!=="object")return!1;return yE(r)===EE}var Fe=Re("ads/controller"),bE=50,TE={show_all_ads_on_seek:!1,timeout:5000,preload_advance:10};class jc extends Yc{adapter;opts;analytics;_macros;_schedule;_state;_lastAd;content_processing_src;constructor(r={}){super();this.adapter=dh(r,this),this.opts={...TE,...r},this.analytics=Eh(this),this._state=yl.of(),this._schedule=void 0,this._lastAd=void 0,this._macros=new ci(r.parameters||{}),this.wireup(),this.content_processing_src=!1}reset(){return this.removeAllListeners(),this.wireup(),this.analytics?.wireup(),this._state.reset(),this.adapter.reset(),this}destroy(){this.removeAllListeners(),this.analytics?.destroy(),this.adapter?.destroy();let r=this;r.analytics=void 0,r.opts=void 0,r.adapter=void 0,r._state=void 0,r._schedule=void 0,r._lastAd=void 0,r._macros=void 0}stop(){this.adapter?.stop()}onContentNewSrc(){this._state.reset(),this.adapter.destroyManager(),this.adapter.contentComplete()}wireup(){let r=()=>{this.adapter.onAdRequestEnd(),this.videoTag?.setState("ad-paused",!1),this.videoTag?.setState("ad-playing",!0),this._state.toggleState(16,!0)};this.on(fl,r),this.on(rn,r),this.on(dl,r);let l=(d)=>{if(d?.type!==jn)this.adapter.onAdRequestEnd();if(this.videoTag?.setState("ad-paused",d?.type===xa),this.videoTag?.setState("ad-playing",!1),!this.adPlaying)return;this._state.toggleState(16,!1)};this.on(Wi,l),this.on(As,l),this.on(_s,l),this.on(jn,l),this.on(xa,l),this.on(ws,l),this.on(Ls,l),this.on(Wi,()=>{requestAnimationFrame(()=>{this._state.toggleState(8,!1)})}),this.on(hl,()=>{console.error("Adapter init failed"),l(),this._state.toggleState(32,!0)}),this.on(Ua,async(d)=>{if(Fe("Ads.on(RELOAD_AD_REQUESTED)",d),!this._schedule)return;if(l(),d)return this._schedule.reset(this._schedule.getAds());if(this._state.hasAny(4))this._schedule.decrement(),this._state.toggleState(4,!1)})}async initialize(r,l={},d){if(Fe("Ads.initialize():",r,l,d),this._state.toggleState(1,!0),Object.assign(this.opts,l),Array.isArray(r))this.setSchedule(r);if(await this.adapter.init(this.opts),this._macros=this._macros.fork(Object.assign({},l.parameters||{},{autoplay:l.autoplay,muted:l.muted})),this.adapter.isReady())await this.adapterInitialized(d);return this}get videoTag(){return this.adapter.getVideoTag()}get adInfo(){return this.adapter.getAdInfo()}async setVideoTag(r){if(Fe("Ads.setVideoTag():",r),await this.adapter.setVideoTag(r),this.trigger(wc,r),this.adapter.isReady())await this.adapterInitialized();r.on(gl,()=>this.adapter.pause()),r.on(pl,()=>this.adapter.resume()),r.on(vl,()=>r.toggleMute()),r.on(Tl.VOLUME_CHANGE,()=>{this.adapter.volume(r.muted?0:r.volume===0?0.1:r.volume)}),r.on(Tl.SOURCE,()=>{if(!r.hasState("ad-playing")&&!r.hasState("ad-paused"))return this.onContentNewSrc();if(this.stop(),!this.adapter.isLinearAd())return this.onContentNewSrc();this.setIsContentProcessingNewSrc(!0),this.once(Wi,()=>{setTimeout(()=>{this.setIsContentProcessingNewSrc(!1),this.onContentNewSrc()},0)})})}waitForVideoTag(){return new Promise((r)=>{let l=this.adapter.getVideoTag();if(l)return r(l);this.on(wc,(d)=>{this.once(ll,()=>r(d))})})}async adapterInitialized(r){if(Fe("Ads.adapterInitialized()"),this._state.toggleState(1,!1),this._state.toggleState(8,!!this.hasPreroll()),await this.setCurrentTime(0,r),this.checkIfBreakComplete(),this.adapter.isAdPod()||r&&!this.opts.autoplay)return;this.trigger(As)}async fetchNextAd(r,l=0){if(!this._schedule)return;if(!this.adapter.isReady())return;if(l>bE)throw this._state.toggleState(32,!0),this._state.toggleState(2,!1),Error("Ads.fetchNextAd() :max_recursion_depth");let d=this._schedule?.getNextAd()||this._schedule?.getPostroll();if(d&&!this.adapter.canDismissNonLinear()&&r!==-1)return;if(this._schedule.waitForLoad(r,d,this.opts.preload_ads)){this._state.toggleState(2,!1);return}if(d===this._schedule.getPostroll()){if(this._schedule.setPostrollActive(),r!==-1){this._state.toggleState(2,!1);return}}if(!this._schedule.isDrained())this._schedule.increment();if(!d){this._state.toggleState(2,!1);return}Fe("Ads.fetchNextAd",d),this._state.toggleState(2,!0);try{await this.requestAd(d),this._state.toggleState(4,!0),this._state.toggleState(2,!1);return}catch(v){if(Fe("Ads.fetchNextAd(err: %o, ad: %o)",v,d),this.setLastAd(d),d!==this._schedule.getPostroll())return await this.fetchNextAd(r,++l);this._state.toggleState(2,!1);return}}skipAdsOnSeek(r){if(!this._schedule)return;let l=this._schedule.getNextAd();while(l&&l.time<r)this._schedule.increment(),l=this._schedule.getNextAd()}async setCurrentTime(r,l=!1,d=!1){if(!this._schedule)return;if(!this.adapter.isReady())return;if(this._state.hasAny(2))return;if(this._state.hasAny(16)&&this.adapter.isLinearAd())return;let v=r===0&&this._schedule.getNextIndex()===0;try{if(d&&!this.opts.show_all_ads_on_seek)this.skipAdsOnSeek(r);if(!this._state.hasAny(4))await this.fetchNextAd(r);if(!this._state.hasAny(4)||!this.shallPlayAd(r)||l)return;await this.playAd(),await this.setCurrentTime(r),this.checkIfBreakComplete()}catch(E){Fe("setCurrentTime: Error(from: setCurrentTime, message: %s)",E.message)}finally{if(v)this.trigger(th)}}async playAd(){if(!this._state.hasAny(4))return;this._state.toggleState(4,!1),this._state.toggleState(8,!0);let r=this._schedule?.getCurrentAd();try{await this.adapter.playAd()}catch(l){console.error("Ads.playAd: error",l)}finally{if(r)this.setLastAd(r)}}checkIfBreakComplete(){if(!this._state.hasAny(8))return Fe("Ads.checkIfBreakComplete(:bail, ad: %o)",this.getLastAd());if(Fe("Ads.checkIfBreakComplete(:run, ad: %o)",this.getLastAd()),this._state.toggleState(8,!1),!this.adapter.isAdPod())this.trigger(Wi)}resetScheduleCounter(){if(!this._schedule)return;this._schedule.resetCounter()}setSchedule(r,l){if(l&&!Number.isNaN(l)&&this._schedule)this._schedule.updateContentDuration(l);if(this._schedule&&this._schedule.getNextIndex()>0)return this._schedule.setAds(r);this._schedule=new ks(r,{preload_advance:this.opts.preload_advance,content_duration:l?0:l})}toJSON(){if(!this._schedule)return[];return this._schedule.toJSON()}trigger(r,l={}){if(!this.adapter.getVideoTag())return;if(!this._state)return;if(r===Wi&&this._state.hasAny(8)&&!this.adapter.isAdPod()&&!l.force)return Fe("skipping AD_BREAK_COMPLETE reason: %s pod=%s",this._state.toString(),this.adapter.isAdPod());if(!Oh(l))return this.dispatch(r,l);let v=Object.assign({},this.adapter.getOpts()||{},this._schedule?.getCurrentAd()||{},{ad_type:this.ad_type},l);return this.dispatch(r,v)}dispatch(r,l){let d=this.adapter.getVideoTag();if(!d)return;if(Fe(":dispatch",r,l),this.adapter.isAdPod()&&typeof l==="object"&&"time"in l&&l.ad_type!=="preroll")l.time=this.adapter.getAdBreakTime();try{let v={outstream:l.outstream,ad_type:l.ad_type,ad_break_time:l.time,ad_remaining_seconds:l.remaining,ad_muted:l.muted,ad_duration_seconds:l.duration,ad_error_reason:l.reason,ad_vast_error:l.vast_error,ad_vast_error_type:l.vast_error_type,ad_request_load_type:l.request_load_time},E={event:"ads/"+r,detail:v};d.dispatchEvent(new CustomEvent("health:record",{detail:E}))}catch(v){Fe(":error",v)}d?.emit(r,l),this.emit(r,l)}get ad_type(){if(!this.videoTag)return;if(!this.adapter.isAdPod())return this._schedule?.getCurrentType();let r=this.adapter.getAdBreakTime();if(r===-1)return"postroll";if(this.videoTag.hasState("is-live")||r<1)return"preroll";return"midroll"}shouldRestartContent(){if(this.getIsContentProcessingNewSrc())return!1;if(this.adapter.isAdPod())return!0;let r=this.getLastAd();if(!r)return!0;if(r.outstream)return!1;if(r.restart===!1)return!1;return!0}async finished(r){if(!this._schedule)return;if(Fe("Ads.finished"),this.adapter.isCustomPlaybackEnabled()&&this._state.hasAny(16)&&this.adapter.isLinearAd())return;Fe("Ads.finished: trying to play postroll");try{if(!this._schedule.getPostroll())return Fe("Ads.finished: no postroll found"),await this.adapter.contentComplete();if(!this._state.hasAny(4))await this.fetchNextAd(-1);await this.playAd(),this.adapter.contentComplete()}catch(l){Fe("Ads.finished: postroll failed:",l)}finally{if(this.trigger(Zd),this.checkIfBreakComplete(),typeof r==="function")r()}}hasPreroll(){return this._schedule&&ks.hasPreroll(this._schedule.getAds())}shallPlayAd(r){if(!this._state||this._state.hasAny(32))return!1;return!!this._schedule?.shallPlayAd(r)}setLastAd(r){return this._lastAd=r,this}setIsContentProcessingNewSrc(r){this.content_processing_src=r}getLastAd(){return this._lastAd}getIsContentProcessingNewSrc(){return this.content_processing_src}mergeMacros(r={}){return this._macros=this._macros.fork(Object.assign({},r)),this}get paused(){return this.adapter?.isPaused()}pause(){this.adapter?.pause()}resume(){this.adapter?.resume()}resize(r){this.adapter?.onResize(r)}async requestAd(r,l=0,d=this.opts.timeout){if(!this._state)return;Fe("Ads.requestAd(ad: %o)",{ad:r,timeout:d,idx:l});let v=await Wc(r);if(typeof v[l]>"u")return setTimeout(()=>this.trigger(As),0),Promise.reject(Error("Ad failed, no fallbacks left"));if(!v[l])return await this.requestAd(v,l+1,d);this.trigger(cl,r);let E=this._macros.compile(v[l],Ih(this.opts,this.adapter.getDimensions()));try{return void await this.adapter.initAd(E,d)}catch(A){return Fe(`Ads.requestAd(:fallback, idx: ${l}, length: ${v.length}, adTag: ${v[l]})
207
- Error `,{adTag:v,err:A}),this.requestAd(v,l+1,d)}}resetSchedule(r){this._schedule?.reset(r)}get adPlaying(){return this._state?.hasAny(16)}get adBreak(){return this._state?.hasAny(8)}get adRequesting(){return this._state.hasAny(2)}get adLinear(){return this.adBreak&&this.adapter.isLinearAd()}}var Os=Ne(_r(),1);var _E=new Blob([new Uint8Array([255,227,24,196,0,0,0,3,72,1,64,0,0,4,132,16,31,227,192,225,76,255,67,12,255,221,27,255,228,97,73,63,255,195,131,69,192,232,223,255,255,207,102,239,255,255,255,101,158,206,70,20,59,255,254,95,70,149,66,4,16,128,0,2,2,32,240,138,255,36,106,183,255,227,24,196,59,11,34,62,80,49,135,40,0,253,29,191,209,200,141,71,7,255,252,152,74,15,130,33,185,6,63,255,252,195,70,203,86,53,15,255,255,247,103,76,121,64,32,47,255,34,227,194,209,138,76,65,77,69,51,46,57,55,170,170,170,170,170,170,170,170,170,170,255,227,24,196,73,13,153,210,100,81,135,56,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170])],{type:"audio/mpeg"}),AE=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,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,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,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,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,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,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,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,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,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,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,55,167,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,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,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,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,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,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,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,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,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,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,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,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,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,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,55,167,128,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,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,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,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,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,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,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,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,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,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});function Mh(r){return Object.assign({muted:!1,timeout:250,inline:!1},r)}function Nh(r,l){var{muted:d,timeout:v,inline:E}=r,A=l(),R=A.element,T=A.source,L=void 0,O=void 0,X=void 0;if(R.muted=d,d===!0)R.setAttribute("muted","muted");if(E===!0)R.setAttribute("playsinline","playsinline");return R.src=T,new Promise(function(b){if(L=R.play(),O=setTimeout(function(){X(!1,Error("Timeout "+v+" ms has been reached"))},v),X=function(N){var K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;R.remove(),R.srcObject=null,clearTimeout(O),b({result:N,error:K})},L!==void 0)L.then(function(){return X(!0)}).catch(function(G){return X(!1,G)});else X(!0)})}function LE(r){return r=Mh(r),Nh(r,function(){return{element:document.createElement("video"),source:URL.createObjectURL(AE)}})}function wE(r){return r=Mh(r),Nh(r,function(){return{element:document.createElement("audio"),source:URL.createObjectURL(_E)}})}var RE={audio:wE,video:LE},Fh=RE;var kE=500,_l=void 0;async function zc(r=!0){if(_l)return _l;return _l=await Fh.video({timeout:kE,muted:r}),_l}function Is(r){return{width:r.clientWidth,height:r.clientHeight}}function Cs(r,l,d){if(typeof d==="number")d=d+"px";return r.style.setProperty(l,d),r}function Ph(r){if(r.clientWidth>0||r.clientHeight)return Is(r);let l={height:r.style.height};Cs(r,"opacity",0),Cs(r,"display","absolute"),Cs(r,"display","inline-block"),Cs(r,"height","auto");let d=Is(r);return Cs(r,"height",l.height),Cs(r,"opacity",1),d}var IE=Re("ads/lifecycle"),qc=[_s,As,Wi];async function xh(r){if(r.state.started)return;await OE(r)}async function OE({ads:r,content:l,adContainer:d,ima:v,state:E,config:A}){E.started=!0;let{ads:R,...T}=v,L=Is(l.root),O=A?.muted||l.muted,X=Object.assign({container:d,volume:O?0:l.volume,muted:O,autoplay:A?.autoplay||!1,video_source:l.original_src,preload_ads:A?.ima?.preload_ads,...T,...L});IE("start():",X,E),await r.initialize(!1,X,E.preload)}function Uh({ads:r,content:l,seek:d=!1}){if(!r)return;r.setCurrentTime(l.currentTime,void 0,d)}var Bh=1,$h=2,Gh=4,Hh=8,Kh=16,Vh=32,Wh=64;var NE=["progress","duration","remaining"];class Ga extends HTMLElement{player;static get observedAttributes(){return NE}constructor(r){super();this.player=r;this.className="fp-ad-ui",this.append(...r.createComponents(sl,al)),r.on(Rs,(l)=>{let{ui_flags:d}=l.detail;if(d=d||0,(Hh&d)>0){let v=document.createElement("div");v.classList.add("ad-attribution"),v.textContent=this.player.i18n("ads.advertisement","Advertisement"),this.append(v)}})}}var jh=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,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,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,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,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,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,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,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,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,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,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,55,167,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,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,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,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,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,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,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,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,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,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,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,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,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,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,55,167,128,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,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,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,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,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,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,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,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,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,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});var Xc=Re("fpads:native:outstream"),zh={OUTSTREAM:"is-outstream",HIDDEN:"is-outstream-hidden",SHOWING:"is-outstream-visible",DONE:"is-outstream-done"};class ji{static CLASS=zh;ads;root;content;ima;dimensions;state=0;adUi;initialVolumeState;constructor({ads:r,root:l,content:d,ima:v}){Xc("creating Outstream instance"),this.content=d,this.ads=r,this.root=l,this.ima=v,this.dimensions=Ph(this.root),this.adUi=new Ga(d),this.initialVolumeState={},l.classList.add(zh.OUTSTREAM),l.append(this.adUi),this.hide(),this.ads.on(Pa,(A)=>{if(this.state===3)return;let R=!!A.detail?.linear;this.ads.resize({...this.dimensions,linear:R})}),d.on(Os.RESIZE,(A)=>{if(this.state===3)return;let R=A.detail;if(!R)return;this.dimensions={width:R.contentRect.width,height:R.contentRect.height},this.ads.resize(this.dimensions)});let E=!0;d.on(Os.VIEW_ENTER,()=>{if(!E||v.autopause===!1)return;r.resume()}),d.on(Os.VIEW_LEAVE,()=>{if(v.autopause===!1)return;E=!r.paused,r.pause()}),this.setup(),setTimeout(()=>{return this.state=1,this.begin_life_cycle()},0)}hide(){return this}show(){this.root.classList.remove(ji.CLASS.HIDDEN),this.root.classList.add(ji.CLASS.SHOWING),this.content.setState("ad-linear",!0)}async begin_life_cycle(){this.state=2;let{error:r,result:l}=await zc(!1),{result:d}=await zc(!0);if(this.content.emit(Rs,{ui_flags:this.content.opts.ads?.ui}),this.attach_ad_listeners(),this.initialVolumeState={can_autoplay:!!(l||d),muted:!l},Xc(`Outstream.show() :autoplay >> sound=${l}`),r&&this.content&&!l)this.content.muted=!0,this.content.volume=0;await this.ads.setVideoTag(this.content),await xh({ads:this.ads,content:this.content,adContainer:this.adUi,ima:this.ima,state:{listening:!1},config:this.content.opts}),Uh({content:this.content,ads:this.ads}),this.state=2}attach_ad_listeners(){this.ads.once(Pa,()=>{this.show()});let l=()=>{qc.forEach((v)=>this.ads.removeListener(v,l));let d=new CustomEvent("ads-outstream-teardown");Xc("Outstream(:teardown)",d),this.content.dispatchEvent(d)};qc.forEach((d)=>this.ads.once(d,l)),this.content.once("ads-outstream-teardown",(d)=>{setTimeout(()=>{this.dispose()},0)})}empty_src(){this.content.setSrc({type:"video/mp4",src:URL.createObjectURL(jh)})}setup(){this.root.classList.add(ji.CLASS.OUTSTREAM),this.root.classList.add(ji.CLASS.HIDDEN),this.content.setState("ad-linear",!1),this.empty_src()}reset_ui(){let r=this.root;r.classList.remove(ji.CLASS.SHOWING),r.classList.remove(ji.CLASS.OUTSTREAM)}dispose(){if(this.state===3)return;let r=this.root,l=this.content;this.reset_ui(),r.classList.add(ji.CLASS.OUTSTREAM),r.classList.add(ji.CLASS.DONE);let d=this;d.video=d.container=d.ads=0,this.state=3,l.destroy(),r.innerHTML=""}}class Jc extends HTMLElement{player;static get observedAttributes(){return["remaining"]}constructor(r){super();this.player=r;this.className="fp-ad-countdown",r.on(zn,(l)=>{let{duration:d,remaining:v}=l.detail;this.setAttribute("duration",d+""),this.setAttribute("remaining",v+"")}),r.on(rn,(l)=>{if(!l.detail.linear)return;this.style.setProperty("--ad-percent-previous","0"),this.style.setProperty("--ad-percent-complete","0")}),this.addEventListener("animationend",()=>{let l=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",l)})}attributeChangedCallback(r,l,d){switch(r){case"remaining":return this.onRemaining(d)}}onRemaining(r){let l=parseFloat(this.getAttribute("duration")||"0");if(!r)r=l+"";let d=parseFloat(r),v=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",v),this.classList.remove("go");let E=((l-d)/l*100).toFixed(3);requestAnimationFrame(()=>{this.style.setProperty("--ad-percent-complete",E),this.classList.add("go")})}}class Qc extends HTMLElement{player;static get observedAttributes(){return["position","totals"]}element;constructor(r){super();this.player=r;this.render(),r.on(rn,(l)=>{let{position:d,totals:v}=l.detail.ad;this.setAttribute("position",d+""),this.setAttribute("totals",v+"")})}attributeChangedCallback(r,l){switch(r){case"position":case"totals":return this.updateText()}}updateText(){if(!this.element)return;let r=parseFloat(this.getAttribute("position")||"0"),l=parseFloat(this.getAttribute("totals")||"0");this.element.textContent=`${this.player.i18n("ads.indicator","ADS")} ${r} / ${l}`}render(){this.element=document.createElement("div"),this.element.classList.add("ad-indicator","fp-color-text"),this.element.textContent=this.player.i18n("ads.indicator","ADS"),this.append(this.element)}}var FE=(r,l)=>{let d=r.get(l);if(!d)throw Error(`no flowplayer component with the name ${l} exists`);let v=window.customElements.get(l);if(!v)throw Error(`no default flowplayer component with the name ${l} exists`);let E=window.customElements.get(d);if(typeof E!=="function")return v;return E},Ms=(r,l)=>{return new(FE(r._customElements,l))(r)},Ha=(r,l,d)=>{window.customElements.get(l)||window.customElements.define(l,d),r.customElements.get(l)||r.customElements.set(l,l)};var qh="flowplayer-volume-bar";var Xh="flowplayer-small-play-icon",Jh="flowplayer-small-pause-icon";var Qh="flowplayer-volume-icon";class Zc extends HTMLElement{player;constructor(r){super();this.player=r;this.classList.add("fp-ad-controls"),this.append(this.adRemainingTime(),Ms(this.player,ol),this.playbackButtons(),this.volumeBtn(),Ms(this.player,qh),this.adChoices()),r.on(Rs,this.applyStyleFlags.bind(this))}volumeBtn(){let r=Ms(this.player,Qh);return r.onclick=()=>this.player.emit(vl),r}playbackButtons(){let r=document.createElement("div");r.classList.add("ad-playback-controls");let l=Ms(this.player,Xh),d=Ms(this.player,Jh);return l.addEventListener("click",()=>{this.player.emit(pl),setTimeout(()=>{if(d.focus)d.focus()},100)}),d.addEventListener("click",()=>{this.player.emit(gl),setTimeout(()=>{if(l.focus)l.focus()},100)}),r.append(l,d),r}adChoices(){let r=document.createElement("div");return r.classList.add("fp-ad-choices"),r.textContent=this.player.i18n("ads.adchoices","AdChoices"),r.addEventListener("click",(l)=>{l.preventDefault(),this.player.togglePlay(!1),window.open("https://adssettings.google.com","_blank")}),r}adRemainingTime(){let r=document.createElement("div");return r.classList.add("fp-ad-remaining","fp-color-text"),this.prepend(r),this.player.on(zn,(l)=>{let d=l.detail.remaining;r.textContent=PE(parseFloat(d+""))}),r}applyStyleFlags(r){let l=r.detail.ui_flags??0;this.classList.toggle("is-ad-controls-sticky",(Bh&l)>0),this.classList.toggle("no-indicator",(Gh&l)>0),this.classList.toggle("is-ad-choices",(Kh&l)>0),this.classList.toggle("no-volume-bar",(Wh&l)===0),this.classList.toggle("is-ad-remaining",(Vh&l)>0),this.classList.toggle("no-fullscreen",($h&l)>0)}}function PE(r){if(Number.isNaN(r)||r>=Number.MAX_SAFE_INTEGER)return"";let l=r<0?"-":"";r=Math.round(Math.abs(r));let d=Math.floor(r/3600),v=Math.floor(r/60);if(r=r-v*60,d>=1)return v-=d*60,l+d+":"+Al(v)+":"+Al(r);return l+Al(v)+":"+Al(r)}function Al(r){let l=typeof r==="number"?r:parseInt(r,10);return(l>9?"":"0")+l}function Zh(r){return r&&typeof r.time==="number"}function tf(r){return r&&typeof r.percentage==="number"&&typeof r.time!=="number"}function ef(r,l){if(!Array.isArray(r))return console.warn("AdSchedule was not an Array"),[];return r.filter((d)=>Zh(d)||tf(d)).reduce((d,v)=>{if(Zh(v))return d.push(v),d;if(v.lazy)return d.push(v),d;if(tf(v)){let E=Object.assign({},v),A=!v.percentage?0:v.percentage*l;if(!Number.isNaN(A))E.time=A<0||A===l?-1:A;return d.push(E),d}return d},[])}class tu{constructor(r){Ha(r,Xd,Ga),Ha(r,sl,Zc),Ha(r,al,Jc),Ha(r,ol,Qc)}startUp(r,l,d){r.setState("has-started",!0);let v=r.ads=new jc,E=v.analytics;v.resize(Is(r.root)),r.once(nf.REAP,()=>{v?.destroy()});let A=r.duration;if(l.ads=ef(l.ads,A),v.setSchedule(l.ads,A),d.metadata)sn.mergeMetadata(E,d.metadata);if(d.metadata)v.mergeMacros(d.metadata);if(d.metadata&&l.parameters)l.parameters={...l.parameters,...d.metadata};if(sn.mergeMetadata(E,{muted:r.muted||!1,autoplay:!1}),d.lang&&!l.Locale)l.Locale=d.lang;new ji({root:r.root,content:r,ads:v,ima:l})}}function sf(r,l,d,v,E,A){let R=window.customElements.get("flowplayer-ad-player"),T=new tu(l),L=new R,O=l(L,{...v,poster:r.items[E].poster});xE(O,E,A,L);let X=Po(r,Yn()),b=(nt)=>{if(!O)return;if(X=nt.detail.index,X-E>=5)return BE(O);rf(d,v,X,O,E,T)},G=()=>{O?.setState("is-loaded",!0)},N=()=>{if(!O)return;if(O.off("ad-request-completed",G),O.root.remove(),r.off(Zi,b),K(),X!==E)return;UE(X)};if(r.on(Zi,b),O.once("ad-request-completed",G),O.once("ads-outstream-teardown",N),X+1===E)return rf(d,v,X,O,E,T);function K(){L=void 0,O=void 0}}function xE(r,l,d,v){r.root.classList.add("is-spins","is-ad-player","is-starting"),r.root.setAttribute("spin-index",String(l)),d.append(v)}function UE(r){let l=wn(r,!1);if(!l)return;l?.togglePlay(!0).then(()=>{if(!l.paused)return;l.muted=!0,l.play()})}function BE(r){if(r.ads)return r.ads.dispatch("ad-teardown",{});r.emit("ads-outstream-teardown"),r.destroy(),r.remove()}function rf(r,l,d,v,E,A){if(v.hasState("has-started"))return;if(d===E)return A.startUp(v,r,l);if(d+1!==E)return;let R=wn(d,!1);if(!R||R.hasState("is-loaded"))return A.startUp(v,r,l);let T=()=>A.startUp(v,r,l),L=()=>R.off(Ns.CAN_PLAY,T);R.once(Ns.CAN_PLAY,T),R.once(Ns.SOURCE,L),v.once("ad-started",()=>{Bo(v,"ad-display")}),v.once("ads-outstream-teardown",()=>{R.off(Ns.SOURCE,L),L()})}class Ll extends HTMLElement{menuContainer;summaryEle;mainMenu;menuHeader;menuTitle;olEle;closeEle;player;constructor(r){super();this.className="fp-menu-dialog",this.player=r,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.mainMenu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.mainMenu.classList.add("fp-menu","fp-main-menu"),this.mainMenu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.mainMenu),this.menuTitle.textContent=this.player.i18n("core.settings","Settings"),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button"),this.summaryEle.setAttribute("aria-label","Settings"),this.append(this.menuContainer),this.toggleVisibility(),r.on("keyboard:close:menus",this.onKeyboardCloseMenu.bind(this)),r.root.addEventListener("click",this.onRootClick.bind(this)),this.addEventListener("click",this.onMenuClick.bind(this)),["focusin","focusout"].forEach((l)=>this.mainMenu.addEventListener(l,this.onFocus.bind(this)))}appendMenu(r){this.createDialogOpt(r),this.addSubMenuBackButton(r.menuHeader),this.menuContainer.append(r.menu),r.remove()}createDialogOpt(r){let l=document.createElement("li");l.textContent=r.menuHeader.querySelector("h3")?.textContent||"";let d=this.detectSubMenuType(r.classList);this.toggleDialogOpt(r.menu,l,d),r.addEventListener(this.findSubMenuOptionsEvent(d),()=>{this.toggleDialogOpt(r.menu,l,d)}),l.onclick=d===1?this.onSubtitlesOptClick.bind(this,r):this.onOptClick.bind(this,r),l.setAttribute("role","menuitem"),l.setAttribute("aria-selected","false"),l.setAttribute("tabindex","0"),l.setAttribute("aria-haspopup","true"),l.setAttribute("aria-label",r.menuHeader.querySelector("h3")?.textContent||"")}toggleDialogOpt(r,l,d){try{r.querySelectorAll("li").length>(d===1?0:1)?this.olEle.appendChild(l):this.olEle.removeChild(l)}catch(v){}this.toggleVisibility()}addSubMenuBackButton(r){let l=document.createElement("div");l.className="fp-icon fp-menu-back fp-back-button",l.setAttribute("aria-hidden","true"),r.append(l)}openMenu(r){this.querySelectorAll(".fp-menu")?.forEach((l)=>{if(l===r)return;l?.classList.add("is-close")}),r.classList.remove("is-close"),r.querySelector("li")?.focus()}toggleMenuDialog(r){this.menuContainer.open=r,this.player.root.classList.toggle("has-menu-opened",r),this.summaryEle.setAttribute("aria-expanded",r+"")}toggleVisibility(){let r=!this.olEle.querySelectorAll("li").length;if(this.style.setProperty("display",r?"none":"block"),r&&this.menuContainer.open)this.toggleMenuDialog(!1)}onMenuClick(r){if(r.defaultPrevented)return;r.preventDefault();let l=r.target;if(l?.classList?.contains("fp-menu-back")||l?.closest("li"))return this.openMenu(this.mainMenu);let d=!this.menuContainer.open;if(d)this.openMenu(this.mainMenu);this.toggleMenuDialog(d)}onFocus(r){let l=r.target;if(!(l instanceof HTMLLIElement))return;l.setAttribute("aria-selected",r.type==="focusin"?"true":"false")}onOptClick(r,l){l.preventDefault(),this.openMenu(r.menu)}onSubtitlesOptClick(r,l){if(!this.player?.opt?.("subtitles.native"))r.createMenu(0);this.onOptClick(r,l)}onRootClick(r){if(r.composedPath().includes(this))return;this.toggleMenuDialog(!1)}onKeyboardCloseMenu(r){if(r.defaultPrevented)return;if(r.preventDefault(),this.mainMenu.classList.contains("is-close"))return this.openMenu(this.mainMenu);this.toggleMenuDialog(!1),this.summaryEle.focus()}detectSubMenuType(r){if(r.contains("fp-asel"))return 0;if(r.contains("fp-qsel"))return 2;if(r.contains("fp-speed"))return 4;if(r.contains("fp-cc"))return 1;if(r.contains("fp-vsel"))return 3}findSubMenuOptionsEvent(r){switch(r){case 0:return"audio:tracks";case 2:return"quality:tracks";case 4:return"speed:options";case 1:return"subs:tracks";case 3:return"video:tracks";default:return""}}}function eu(r,l,d){let E=new(window.customElements.get("flowplayer-spin-player"));E.setAttribute(d,"");let A=r(E,{...l,preload:"none",autopause:!0,hls:{adaptive_buffer_control:!0},ui:(l.ui??0)|2048|16384|1|(r.support().android?2:0),loop:!0});return A.root.classList.add("is-spins"),$E(A),A}function $E(r){let l=r.root.querySelector("flowplayer-control");if(!l)return;if(!window.customElements.get("flowplayer-menu-dialog"))window.customElements.define("flowplayer-menu-dialog",Ll);let d=document.createElement("div");d.classList.add("fp-spin-controls-bar"),l.prepend(d);let v=r.root.querySelector("flowplayer-volume-control");if(v)d.append(v);let E=new Ll(r);d.append(E),["flowplayer-subtitles-menu","flowplayer-speed-menu","flowplayer-quality-menu","flowplayer-audio-menu","flowplayer-video-menu"].forEach((A)=>{let R=r.root.querySelector(A);if(R)E.appendMenu(R)})}function af(r){let{items:l,state:d}=r,v;r.addEventListener("scroll",()=>{clearTimeout(v),v=setTimeout(()=>{let E=Yn();if(E.length<=1)return;let A=Po(r,E),R=d.primarySpinIndex-A;if(!R)return;let{primaryPlayer:T,secondaryPlayer:L}=_c(r,String(d.primarySpinIndex));if(R>0)HE(r,T,L,A);if(R<0)GE(r,E,l,T,L,A,Math.abs(R));d.primarySpinIndex=A,KE(T,L),xo(r,E,l.slice(),d)},150)})}function GE(r,l,d,v,E,A,R){if(R===1)r.emit(Zi,{config:d[A],spin:l[A],index:A});if(R>1)Fa(r,E,A);if(l.length-1>A)return Ar(r,E,v,A+1)}function HE(r,l,d,v){Fa(r,d,v),Ar(r,d,l,v+1)}function KE(r,l){r.root.setAttribute("next",""),r.root.removeAttribute("current"),l.root.setAttribute("current",""),l.root.removeAttribute("next")}class iu extends HTMLElement{items=[];mainConfig;ima;state={primarySpinIndex:0,spinsLoading:void 0};constructor(){super();this.classList.add("fp-spins-container","init"),af(this),this.on(Zi,(r)=>{let l=r.detail.index;if(wn(l,!0))return;let v=wn(l,!1);if(!v)return;v?.togglePlay(!0).then(()=>{if(!v.paused)return;v.muted=!0,v.play()}),Bo(v,"content-displayed")})}init({playlist:r,ima:l,...d}){if(this.items.push(...r),this.mainConfig=d,this.ima=l,!this.ima)return}maybeCreateAdPlayer(r,l){try{if(!window?.google?.ima)return;if(!this.mainConfig)return;if(!Ln.from_token(this.mainConfig.token||"").is_granted(Ln.permissions.ADS))return;if(!this.ima||!this.ima.ads||!this.ima.ads.length)return;if((r+1)%this.mainConfig.adsFrequency!==0)return;sf(this,Lc([]),this.ima,this.mainConfig,r,l)}catch(d){}}addContentPlayers(){if(!this.mainConfig)return;let r=Lc(this.mainConfig.plugins),l=eu(r,this.mainConfig,"current"),d=eu(r,this.mainConfig,"next");Fa(this,l,0),Ar(this,l,d,1),this.classList.remove("init")}addSpins(r){let l=gd.parse(r);if(!l.length)return;if(this.items.push(...l),this.classList.contains("init"))return;xo(this,Yn(),this.items,this.state)}on(r,l,d){this.addEventListener(r,l,d)}emit(r,l){this.dispatchEvent(new CustomEvent(r,{detail:l}))}off(r,l){this.removeEventListener(r,l)}}async function of(r){await new Promise((l)=>{if(document.querySelector(".fp-spins-container"))return l(null);let d=new MutationObserver(()=>{if(!document.querySelector(".fp-spins-container"))return;d.disconnect(),l(null)});d.observe(document,{childList:!0,subtree:!0})}),lf(r)}function lf(r){let l=r.getBoundingClientRect().top;r.style.height=`${window.innerHeight-l}px`}function cf(r){window.addEventListener("resize",()=>{lf(r)})}class nu extends HTMLElement{constructor(r,l){super();if(this.classList.add("fp-spin"),l.poster)this.style.backgroundImage=`url(${l.poster})`}}uf();if(!window.customElements.get("flowplayer-spin"))window.customElements.define("flowplayer-spin",nu);if(!window.customElements.get("flowplayer-spins-container"))window.customElements.define("flowplayer-spins-container",iu);if(!window.customElements.get("flowplayer-spin-player"))window.customElements.define("flowplayer-spin-player",class extends HTMLElement{});if(!window.customElements.get("flowplayer-ad-player"))window.customElements.define("flowplayer-ad-player",class extends HTMLElement{});function bb(r){let d=new(window.customElements.get("flowplayer-spins-container"));return setTimeout(()=>VE(d,No.parse(r)),0),d}async function VE(r,l){await WE();let d=await Sd(l);r.init(d),await of(r),await uf(),cf(r),await Fo(r,r.items.slice(0,5),[]),r.addContentPlayers()}async function WE(){await new Promise((r,l)=>{if(document.getElementById("flowplayer-style-sheet")){r();return}let d=document.createElement("link");d.rel="stylesheet",d.id="flowplayer-style-sheet",d.href="https://cdn.flowplayer.com/releases/native/3/stable/style/flowplayer.css",d.onload=()=>r(),d.onerror=()=>l(Error("Failed to load stylesheet")),document.head.prepend(d)})}function uf(){let l=document.querySelector('script[src="https://imasdk.googleapis.com/js/sdkloader/ima3.js"]');if(l)return l.loadingPromise;let d=document.createElement("script");return d.src="https://imasdk.googleapis.com/js/sdkloader/ima3.js",d.async=!0,d.loadingPromise=new Promise((v)=>{d.addEventListener("load",()=>v(),{once:!0}),d.addEventListener("error",()=>v(),{once:!0})}),document.head.append(d),d.loadingPromise}export{td as events,bb as createSpins};
203
+ `)}function TE(){let n=window;return typeof n.__flowplayerAdParameters==="object"?n.__flowplayerAdParameters:{}}function Mh(n,o={width:0,height:0}){let d,v;try{let L=document.createElement("a");L.href=d=window.location!==window.parent.location?document.referrer:document.location.href,v=L.hostname}catch(L){console.error(L)}let{width:E,height:A}=o,{video_source:R}=n||{},T=TE();return{random:Date.now(),page_url:d,domain:v,player_width:E,player_height:A,video_url:R,videourl:R,...T}}class jc{_bus;_listeners;constructor(n=document.createElement("div"),o=[]){this._bus=n;this._listeners=o}removeAllListeners(){this._listeners.length=0,this._bus=document.createElement("div")}emit(n,o){let d=new CustomEvent(n,{detail:o||{}});this._bus.dispatchEvent(d)}on(n,o){this._listeners.push([n,o]),this._bus.addEventListener(n,o,{passive:!0})}once(n,o){this._bus.addEventListener(n,o,{once:!0})}removeListener(n,o){this._bus.removeEventListener(n,o)}}var{prototype:_E,getPrototypeOf:AE}=Object;function Nh(n){if(n===null||typeof n!=="object")return!1;return AE(n)===_E}var Pe=Re("ads/controller"),wE=50,RE={show_all_ads_on_seek:!1,timeout:5000,preload_advance:10};class zc extends jc{adapter;opts;analytics;_macros;_schedule;_state;_lastAd;content_processing_src;container;spinIndex;constructor(n={}){super();this.adapter=qd(n,this),this.opts={...RE,...n},this.analytics=Sh(this),this.container=n.container,this.spinIndex=n.spinIndex,this._state=Zo.of(),this._schedule=void 0,this._lastAd=void 0,this._macros=new ci(n.parameters||{}),this.wireup(),this.content_processing_src=!1}reset(){return this.removeAllListeners(),this.wireup(),this.analytics?.wireup(),this._state.reset(),this.adapter.reset(),this}destroy(){this.removeAllListeners(),this.analytics?.destroy(),this.adapter?.destroy();let n=this;n.analytics=void 0,n.opts=void 0,n.adapter=void 0,n._state=void 0,n._schedule=void 0,n._lastAd=void 0,n._macros=void 0,this.container=void 0,this.spinIndex=void 0}stop(){this.adapter?.stop()}onContentNewSrc(){this._state.reset(),this.adapter.destroyManager(),this.adapter.contentComplete()}wireup(){let n=()=>{this.adapter.onAdRequestEnd(),this.videoTag?.setState("ad-paused",!1),this.videoTag?.setState("ad-playing",!0),this._state.toggleState(16,!0)};this.on(jo,n),this.on(ir,n),this.on(Wo,n);let o=(d)=>{if(d?.type!==Wr)this.adapter.onAdRequestEnd();if(this.videoTag?.setState("ad-paused",d?.type===xa),this.videoTag?.setState("ad-playing",!1),!this.adPlaying)return;this._state.toggleState(16,!1)};this.on(rr,o),this.on(_s,o),this.on(Ts,o),this.on(Wr,o),this.on(xa,o),this.on(Ls,o),this.on(As,o),this.on(Yo,()=>{console.error("Adapter init failed"),o(),this._state.toggleState(32,!0)}),this.on(Fa,async(d)=>{if(Pe("Ads.on(RELOAD_AD_REQUESTED)",d),!this._schedule)return;if(o(),d)return this._schedule.reset(this._schedule.getAds());if(this._state.hasAny(4))this._schedule.decrement(),this._state.toggleState(4,!1)})}async initialize(n,o={},d){if(Pe("Ads.initialize():",n,o,d),this._state.toggleState(1,!0),Object.assign(this.opts,o),Array.isArray(n))this.setSchedule(n);if(await this.adapter.init(this.opts),this._macros=this._macros.fork(Object.assign({},o.parameters||{},{autoplay:o.autoplay,muted:o.muted})),this.adapter.isReady())await this.adapterInitialized(d);return this}get videoTag(){return this.adapter.getVideoTag()}get adInfo(){return this.adapter.getAdInfo()}async setVideoTag(n){if(Pe("Ads.setVideoTag():",n),await this.adapter.setVideoTag(n),this.trigger(wc,n),this.adapter.isReady())await this.adapterInitialized();n.on(qo,()=>this.adapter.pause()),n.on(Xo,()=>this.adapter.resume()),n.on(Jo,()=>n.toggleMute()),n.on(Tl.VOLUME_CHANGE,()=>{this.adapter.volume(n.muted?0:n.volume===0?0.1:n.volume)}),n.on(Tl.SOURCE,()=>{if(!n.hasState("ad-playing")&&!n.hasState("ad-paused"))return this.onContentNewSrc();if(this.stop(),!this.adapter.isLinearAd())return this.onContentNewSrc();this.setIsContentProcessingNewSrc(!0),this.once(rr,()=>{setTimeout(()=>{this.setIsContentProcessingNewSrc(!1),this.onContentNewSrc()},0)})})}waitForVideoTag(){return new Promise((n)=>{let o=this.adapter.getVideoTag();if(o)return n(o);this.on(wc,(d)=>{this.once(Ho,()=>n(d))})})}async adapterInitialized(n){if(Pe("Ads.adapterInitialized()"),this._state.toggleState(1,!1),this._state.toggleState(8,!!this.hasPreroll()),await this.setCurrentTime(0,n),this.checkIfBreakComplete(),this.adapter.isAdPod()||n&&!this.opts.autoplay)return;this.trigger(_s)}async fetchNextAd(n,o=0){if(!this._schedule)return;if(!this.adapter.isReady())return;if(o>wE)throw this._state.toggleState(32,!0),this._state.toggleState(2,!1),Error("Ads.fetchNextAd() :max_recursion_depth");let d=this._schedule?.getNextAd()||this._schedule?.getPostroll();if(d&&!this.adapter.canDismissNonLinear()&&n!==-1)return;if(this._schedule.waitForLoad(n,d,this.opts.preload_ads)){this._state.toggleState(2,!1);return}if(d===this._schedule.getPostroll()){if(this._schedule.setPostrollActive(),n!==-1){this._state.toggleState(2,!1);return}}if(!this._schedule.isDrained())this._schedule.increment();if(!d){this._state.toggleState(2,!1);return}Pe("Ads.fetchNextAd",d),this._state.toggleState(2,!0);try{await this.requestAd(d),this._state.toggleState(4,!0),this._state.toggleState(2,!1);return}catch(v){if(Pe("Ads.fetchNextAd(err: %o, ad: %o)",v,d),this.setLastAd(d),d!==this._schedule.getPostroll())return await this.fetchNextAd(n,++o);this._state.toggleState(2,!1);return}}skipAdsOnSeek(n){if(!this._schedule)return;let o=this._schedule.getNextAd();while(o&&o.time<n)this._schedule.increment(),o=this._schedule.getNextAd()}async setCurrentTime(n,o=!1,d=!1){if(!this._schedule)return;if(!this.adapter.isReady())return;if(this._state.hasAny(2))return;if(this._state.hasAny(16)&&this.adapter.isLinearAd())return;let v=n===0&&this._schedule.getNextIndex()===0;try{if(d&&!this.opts.show_all_ads_on_seek)this.skipAdsOnSeek(n);if(!this._state.hasAny(4))await this.fetchNextAd(n);if(!this._state.hasAny(4)||!this.shallPlayAd(n)||o)return;await this.playAd(),await this.setCurrentTime(n),this.checkIfBreakComplete()}catch(E){Pe("setCurrentTime: Error(from: setCurrentTime, message: %s)",E.message)}finally{if(v)this.trigger(Ud)}}async playAd(){if(!this._state.hasAny(4))return;this._state.toggleState(4,!1),this._state.toggleState(8,!0);let n=this._schedule?.getCurrentAd();try{await this.adapter.playAd()}catch(o){console.error("Ads.playAd: error",o)}finally{if(n)this.setLastAd(n)}}checkIfBreakComplete(){if(!this._state.hasAny(8))return Pe("Ads.checkIfBreakComplete(:bail, ad: %o)",this.getLastAd());if(Pe("Ads.checkIfBreakComplete(:run, ad: %o)",this.getLastAd()),this._state.toggleState(8,!1),!this.adapter.isAdPod())this.trigger(rr)}resetScheduleCounter(){if(!this._schedule)return;this._schedule.resetCounter()}setSchedule(n,o){if(o&&!Number.isNaN(o)&&this._schedule)this._schedule.updateContentDuration(o);if(this._schedule&&this._schedule.getNextIndex()>0)return this._schedule.setAds(n);this._schedule=new Rs(n,{preload_advance:this.opts.preload_advance,content_duration:o?0:o})}toJSON(){if(!this._schedule)return[];return this._schedule.toJSON()}trigger(n,o={}){if(!this.adapter.getVideoTag())return;if(!this._state)return;if(n===rr&&this._state.hasAny(8)&&!this.adapter.isAdPod()&&!o.force)return Pe("skipping AD_BREAK_COMPLETE reason: %s pod=%s",this._state.toString(),this.adapter.isAdPod());if(!Nh(o))return this.dispatch(n,o);let v=Object.assign({},this.adapter.getOpts()||{},this._schedule?.getCurrentAd()||{},{ad_type:this.ad_type},o);return this.dispatch(n,v)}dispatch(n,o){let d=this.adapter.getVideoTag();if(!d)return;if(Pe(":dispatch",n,o),this.adapter.isAdPod()&&typeof o==="object"&&"time"in o&&o.ad_type!=="preroll")o.time=this.adapter.getAdBreakTime();try{let v={outstream:o.outstream,ad_type:o.ad_type,ad_break_time:o.time,ad_remaining_seconds:o.remaining,ad_muted:o.muted,ad_duration_seconds:o.duration,ad_error_reason:o.reason,ad_vast_error:o.vast_error,ad_vast_error_type:o.vast_error_type,ad_request_load_type:o.request_load_time},E={event:"ads/"+n,detail:v};d.dispatchEvent(new CustomEvent("health:record",{detail:E}))}catch(v){Pe(":error",v)}d?.emit(n,o),this.container?.emitPlayerEvent(n,o),this.emit(n,o)}get ad_type(){if(!this.videoTag)return;if(!this.adapter.isAdPod())return this._schedule?.getCurrentType();let n=this.adapter.getAdBreakTime();if(n===-1)return"postroll";if(this.videoTag.hasState("is-live")||n<1)return"preroll";return"midroll"}shouldRestartContent(){if(this.getIsContentProcessingNewSrc())return!1;if(this.adapter.isAdPod())return!0;let n=this.getLastAd();if(!n)return!0;if(n.outstream)return!1;if(n.restart===!1)return!1;return!0}async finished(n){if(!this._schedule)return;if(Pe("Ads.finished"),this.adapter.isCustomPlaybackEnabled()&&this._state.hasAny(16)&&this.adapter.isLinearAd())return;Pe("Ads.finished: trying to play postroll");try{if(!this._schedule.getPostroll())return Pe("Ads.finished: no postroll found"),await this.adapter.contentComplete();if(!this._state.hasAny(4))await this.fetchNextAd(-1);await this.playAd(),this.adapter.contentComplete()}catch(o){Pe("Ads.finished: postroll failed:",o)}finally{if(this.trigger(Fd),this.checkIfBreakComplete(),typeof n==="function")n()}}hasPreroll(){return this._schedule&&Rs.hasPreroll(this._schedule.getAds())}shallPlayAd(n){if(!this._state||this._state.hasAny(32))return!1;return!!this._schedule?.shallPlayAd(n)}setLastAd(n){return this._lastAd=n,this}setIsContentProcessingNewSrc(n){this.content_processing_src=n}getLastAd(){return this._lastAd}getIsContentProcessingNewSrc(){return this.content_processing_src}mergeMacros(n={}){return this._macros=this._macros.fork(Object.assign({},n)),this}get paused(){return this.adapter?.isPaused()}pause(){this.adapter?.pause()}resume(){this.adapter?.resume()}resize(n){this.adapter?.onResize(n)}async requestAd(n,o=0,d=this.opts.timeout){if(!this._state)return;Pe("Ads.requestAd(ad: %o)",{ad:n,timeout:d,idx:o});let v=await Yc(n);if(typeof v[o]>"u")return setTimeout(()=>this.trigger(_s),0),Promise.reject(Error("Ad failed, no fallbacks left"));if(!v[o])return await this.requestAd(v,o+1,d);this.trigger(Vo,n);let E=this._macros.compile(v[o],Mh(this.opts,this.adapter.getDimensions()));try{return void await this.adapter.initAd(E,d)}catch(A){return Pe(`Ads.requestAd(:fallback, idx: ${o}, length: ${v.length}, adTag: ${v[o]})
204
+ Error `,{adTag:v,err:A}),this.requestAd(v,o+1,d)}}resetSchedule(n){this._schedule?.reset(n)}get adPlaying(){return this._state?.hasAny(16)}get adBreak(){return this._state?.hasAny(8)}get adRequesting(){return this._state.hasAny(2)}get adLinear(){return this.adBreak&&this.adapter.isLinearAd()}}var Os=Ne(Tn(),1);var kE=new Blob([new Uint8Array([255,227,24,196,0,0,0,3,72,1,64,0,0,4,132,16,31,227,192,225,76,255,67,12,255,221,27,255,228,97,73,63,255,195,131,69,192,232,223,255,255,207,102,239,255,255,255,101,158,206,70,20,59,255,254,95,70,149,66,4,16,128,0,2,2,32,240,138,255,36,106,183,255,227,24,196,59,11,34,62,80,49,135,40,0,253,29,191,209,200,141,71,7,255,252,152,74,15,130,33,185,6,63,255,252,195,70,203,86,53,15,255,255,247,103,76,121,64,32,47,255,34,227,194,209,138,76,65,77,69,51,46,57,55,170,170,170,170,170,170,170,170,170,170,255,227,24,196,73,13,153,210,100,81,135,56,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170])],{type:"audio/mpeg"}),CE=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,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,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,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,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,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,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,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,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,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,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,55,167,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,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,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,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,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,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,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,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,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,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,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,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,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,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,55,167,128,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,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,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,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,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,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,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,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,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,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});function Ph(n){return Object.assign({muted:!1,timeout:250,inline:!1},n)}function xh(n,o){var{muted:d,timeout:v,inline:E}=n,A=o(),R=A.element,T=A.source,L=void 0,M=void 0,tt=void 0;if(R.muted=d,d===!0)R.setAttribute("muted","muted");if(E===!0)R.setAttribute("playsinline","playsinline");return R.src=T,new Promise(function(b){if(L=R.play(),M=setTimeout(function(){tt(!1,Error("Timeout "+v+" ms has been reached"))},v),tt=function(N){var K=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;R.remove(),R.srcObject=null,clearTimeout(M),b({result:N,error:K})},L!==void 0)L.then(function(){return tt(!0)}).catch(function(H){return tt(!1,H)});else tt(!0)})}function DE(n){return n=Ph(n),xh(n,function(){return{element:document.createElement("video"),source:URL.createObjectURL(CE)}})}function IE(n){return n=Ph(n),xh(n,function(){return{element:document.createElement("audio"),source:URL.createObjectURL(kE)}})}var OE={audio:IE,video:DE},Fh=OE;var ME=500,_l=void 0;async function qc(n=!0){if(_l)return _l;return _l=await Fh.video({timeout:ME,muted:n}),_l}function Is(n){return{width:n.clientWidth,height:n.clientHeight}}function Ds(n,o,d){if(typeof d==="number")d=d+"px";return n.style.setProperty(o,d),n}function Uh(n){if(n.clientWidth>0||n.clientHeight)return Is(n);let o={height:n.style.height};Ds(n,"opacity",0),Ds(n,"display","absolute"),Ds(n,"display","inline-block"),Ds(n,"height","auto");let d=Is(n);return Ds(n,"height",o.height),Ds(n,"opacity",1),d}var xE=Re("ads/lifecycle"),Xc=[Ts,_s,rr];async function Bh(n){if(n.state.started)return;await FE(n)}async function FE({ads:n,content:o,adContainer:d,ima:v,state:E,config:A}){E.started=!0;let{ads:R,...T}=v,L=Is(o.root),M=A?.muted||o.muted,tt=Object.assign({container:d,volume:M?0:o.volume,muted:M,autoplay:A?.autoplay||!1,video_source:o.original_src,preload_ads:A?.ima?.preload_ads,...T,...L});xE("start():",tt,E),await n.initialize(!1,tt,E.preload)}function $h({ads:n,content:o,seek:d=!1}){if(!n)return;n.setCurrentTime(o.currentTime,void 0,d)}var Gh=1,Hh=2,Vh=4,Kh=8,Wh=16,Yh=32,jh=64;var BE=["progress","duration","remaining"];class $a extends HTMLElement{player;static get observedAttributes(){return BE}constructor(n){super();this.player=n;this.className="fp-ad-ui",this.append(...n.createComponents(Bo,$o)),n.on(ws,(o)=>{let{ui_flags:d}=o.detail;if(d=d||0,(Kh&d)>0){let v=document.createElement("div");v.classList.add("ad-attribution"),v.textContent=this.player.i18n("ads.advertisement","Advertisement"),this.append(v)}})}}var qh=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,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,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,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,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,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,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,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,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,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,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,55,167,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,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,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,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,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,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,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,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,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,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,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,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,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,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,55,167,128,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,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,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,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,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,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,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,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,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,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});var Jc=Re("fpads:native:outstream"),Xh={OUTSTREAM:"is-outstream",HIDDEN:"is-outstream-hidden",SHOWING:"is-outstream-visible",DONE:"is-outstream-done"};class Yi{static CLASS=Xh;ads;root;content;ima;dimensions;state=0;adUi;initialVolumeState;constructor({ads:n,root:o,content:d,ima:v}){Jc("creating Outstream instance"),this.content=d,this.ads=n,this.root=o,this.ima=v,this.dimensions=Uh(this.root),this.adUi=new $a(d),this.initialVolumeState={},o.classList.add(Xh.OUTSTREAM),o.append(this.adUi),this.hide(),this.ads.on(Pa,(A)=>{if(this.state===3)return;let R=!!A.detail?.linear;this.ads.resize({...this.dimensions,linear:R})}),d.on(Os.RESIZE,(A)=>{if(this.state===3)return;let R=A.detail;if(!R)return;this.dimensions={width:R.contentRect.width,height:R.contentRect.height},this.ads.resize(this.dimensions)});let E=!0;d.on(Os.VIEW_ENTER,()=>{if(!E||v.autopause===!1)return;n.resume()}),d.on(Os.VIEW_LEAVE,()=>{if(v.autopause===!1)return;E=!n.paused,n.pause()}),this.setup(),setTimeout(()=>{return this.state=1,this.begin_life_cycle()},0)}hide(){return this}show(){this.root.classList.remove(Yi.CLASS.HIDDEN),this.root.classList.add(Yi.CLASS.SHOWING),this.content.setState("ad-linear",!0)}async begin_life_cycle(){this.state=2;let{error:n,result:o}=await qc(!1),{result:d}=await qc(!0);if(this.content.emit(ws,{ui_flags:this.content.opts.ads?.ui}),this.attach_ad_listeners(),this.initialVolumeState={can_autoplay:!!(o||d),muted:!o},Jc(`Outstream.show() :autoplay >> sound=${o}`),n&&this.content&&!o)this.content.muted=!0,this.content.volume=0;await this.ads.setVideoTag(this.content),await Bh({ads:this.ads,content:this.content,adContainer:this.adUi,ima:this.ima,state:{listening:!1},config:this.content.opts}),$h({content:this.content,ads:this.ads}),this.state=2}attach_ad_listeners(){this.ads.once(Pa,()=>{this.show()});let o=()=>{Xc.forEach((v)=>this.ads.removeListener(v,o));let d=new CustomEvent("ads-outstream-teardown");Jc("Outstream(:teardown)",d),this.content.dispatchEvent(d)};Xc.forEach((d)=>this.ads.once(d,o)),this.content.once("ads-outstream-teardown",(d)=>{setTimeout(()=>{this.dispose()},0)})}empty_src(){this.content.setSrc({type:"video/mp4",src:URL.createObjectURL(qh)})}setup(){this.root.classList.add(Yi.CLASS.OUTSTREAM),this.root.classList.add(Yi.CLASS.HIDDEN),this.content.setState("ad-linear",!1),this.empty_src()}reset_ui(){let n=this.root;n.classList.remove(Yi.CLASS.SHOWING),n.classList.remove(Yi.CLASS.OUTSTREAM)}dispose(){if(this.state===3)return;let n=this.root;this.reset_ui(),n.classList.add(Yi.CLASS.OUTSTREAM),n.classList.add(Yi.CLASS.DONE);let o=this;o.video=o.container=o.ads=0,this.state=3}}class Qc extends HTMLElement{player;static get observedAttributes(){return["remaining"]}constructor(n){super();this.player=n;this.className="fp-ad-countdown",n.on(Yr,(o)=>{let{duration:d,remaining:v}=o.detail;this.setAttribute("duration",d+""),this.setAttribute("remaining",v+"")}),n.on(ir,(o)=>{if(!o.detail.linear)return;this.style.setProperty("--ad-percent-previous","0"),this.style.setProperty("--ad-percent-complete","0")}),this.addEventListener("animationend",()=>{let o=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",o)})}attributeChangedCallback(n,o,d){switch(n){case"remaining":return this.onRemaining(d)}}onRemaining(n){let o=parseFloat(this.getAttribute("duration")||"0");if(!n)n=o+"";let d=parseFloat(n),v=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",v),this.classList.remove("go");let E=((o-d)/o*100).toFixed(3);requestAnimationFrame(()=>{this.style.setProperty("--ad-percent-complete",E),this.classList.add("go")})}}class Zc extends HTMLElement{player;static get observedAttributes(){return["position","totals"]}element;constructor(n){super();this.player=n;this.render(),n.on(ir,(o)=>{let{position:d,totals:v}=o.detail.ad;this.setAttribute("position",d+""),this.setAttribute("totals",v+"")})}attributeChangedCallback(n,o){switch(n){case"position":case"totals":return this.updateText()}}updateText(){if(!this.element)return;let n=parseFloat(this.getAttribute("position")||"0"),o=parseFloat(this.getAttribute("totals")||"0");this.element.textContent=`${this.player.i18n("ads.indicator","ADS")} ${n} / ${o}`}render(){this.element=document.createElement("div"),this.element.classList.add("ad-indicator","fp-color-text"),this.element.textContent=this.player.i18n("ads.indicator","ADS"),this.append(this.element)}}var $E=(n,o)=>{let d=n.get(o);if(!d)throw Error(`no flowplayer component with the name ${o} exists`);let v=window.customElements.get(o);if(!v)throw Error(`no default flowplayer component with the name ${o} exists`);let E=window.customElements.get(d);if(typeof E!=="function")return v;return E},Ms=(n,o)=>{return new($E(n._customElements,o))(n)},Ga=(n,o,d)=>{window.customElements.get(o)||window.customElements.define(o,d),n.customElements.get(o)||n.customElements.set(o,o)};var Jh="flowplayer-volume-bar";var Qh="flowplayer-small-play-icon",Zh="flowplayer-small-pause-icon";var tf="flowplayer-volume-icon";class tu extends HTMLElement{player;constructor(n){super();this.player=n;this.classList.add("fp-ad-controls"),this.append(this.adRemainingTime(),Ms(this.player,Go),this.playbackButtons(),this.volumeBtn(),Ms(this.player,Jh),this.adChoices()),n.on(ws,this.applyStyleFlags.bind(this))}volumeBtn(){let n=Ms(this.player,tf);return n.onclick=()=>this.player.emit(Jo),n}playbackButtons(){let n=document.createElement("div");n.classList.add("ad-playback-controls");let o=Ms(this.player,Qh),d=Ms(this.player,Zh);return o.addEventListener("click",()=>{this.player.emit(Xo),setTimeout(()=>{if(d.focus)d.focus()},100)}),d.addEventListener("click",()=>{this.player.emit(qo),setTimeout(()=>{if(o.focus)o.focus()},100)}),n.append(o,d),n}adChoices(){let n=document.createElement("div");return n.classList.add("fp-ad-choices"),n.textContent=this.player.i18n("ads.adchoices","AdChoices"),n.addEventListener("click",(o)=>{o.preventDefault(),this.player.togglePlay(!1),window.open("https://adssettings.google.com","_blank")}),n}adRemainingTime(){let n=document.createElement("div");return n.classList.add("fp-ad-remaining","fp-color-text"),this.prepend(n),this.player.on(Yr,(o)=>{let d=o.detail.remaining;n.textContent=GE(parseFloat(d+""))}),n}applyStyleFlags(n){let o=n.detail.ui_flags??0;this.classList.toggle("is-ad-controls-sticky",(Gh&o)>0),this.classList.toggle("no-indicator",(Vh&o)>0),this.classList.toggle("is-ad-choices",(Wh&o)>0),this.classList.toggle("no-volume-bar",(jh&o)===0),this.classList.toggle("is-ad-remaining",(Yh&o)>0),this.classList.toggle("no-fullscreen",(Hh&o)>0)}}function GE(n){if(Number.isNaN(n)||n>=Number.MAX_SAFE_INTEGER)return"";let o=n<0?"-":"";n=Math.round(Math.abs(n));let d=Math.floor(n/3600),v=Math.floor(n/60);if(n=n-v*60,d>=1)return v-=d*60,o+d+":"+Al(v)+":"+Al(n);return o+Al(v)+":"+Al(n)}function Al(n){let o=typeof n==="number"?n:parseInt(n,10);return(o>9?"":"0")+o}function ef(n){return n&&typeof n.time==="number"}function rf(n){return n&&typeof n.percentage==="number"&&typeof n.time!=="number"}function nf(n,o){if(!Array.isArray(n))return console.warn("AdSchedule was not an Array"),[];return n.filter((d)=>ef(d)||rf(d)).reduce((d,v)=>{if(ef(v))return d.push(v),d;if(v.lazy)return d.push(v),d;if(rf(v)){let E=Object.assign({},v),A=!v.percentage?0:v.percentage*o;if(!Number.isNaN(A))E.time=A<0||A===o?-1:A;return d.push(E),d}return d},[])}class eu{constructor(n){Ga(n,Nd,$a),Ga(n,Bo,tu),Ga(n,$o,Qc),Ga(n,Go,Zc)}startUp(n,o,d,v,E){n.setState("has-started",!0);let A=n.ads=new zc({container:v,spinIndex:E}),R=A.analytics;A.resize(Is(n.root)),n.once(sf.REAP,()=>{A?.destroy()});let T=n.duration;if(o.ads=nf(o.ads,T),A.setSchedule(o.ads,T),d.metadata)nr.mergeMetadata(R,d.metadata);if(d.metadata)A.mergeMacros(o.parameters);if(d.metadata&&o.parameters)o.parameters={...o.parameters,...d.metadata};if(nr.mergeMetadata(R,{muted:n.muted||!1,autoplay:!1}),d.lang&&!o.Locale)o.Locale=d.lang;new Yi({root:n.root,content:n,ads:A,ima:o})}}function Ll(n,o,d=1){n.emit("flowplayer:feature",{feature_name:"spins",behavior:o,sample_rate:d})}var ji=Ne(Tn(),1);function wl(n){if(n.hasState("is-loaded"))return;if(n.hls)return n.hls.startLoad();if(n.opts.is_native)return n.load()}function af(n,o,d,v){let E=jr()[v],A=o[v];return d.setSrc(A.src??""),d.setOpts(A),d.root.setAttribute("spin-index",String(v)),E.appendChild(d.root),{spin:E,config:A,index:v}}function of(n,o){if(n.hasState("is-loaded"))return wl(o);let d=()=>{wl(o),v()},v=()=>{n.off("ad-request-completed",d),o.off(ji.SOURCE,v),o.off(ji.PLAY,v)};n.once("ad-request-completed",d),o.once(ji.SOURCE,v),o.once(ji.PLAY,v)}function Ha(n,o,d){let v=Lr(d,!0);if(n.emit(ki.SPIN_IN_VIEWPORT,af(n,n.items,o,d)),!v||!o.paused||o.hasState("will-play"))return;of(v,o)}function wn(n,o,d,v){af(n,n.items,d,v);let E=Lr(v,!0);if(!E){if(o.hasState("is-loaded"))return wl(d);let A=()=>wl(d),R=()=>o.off(ji.CAN_PLAY,A);o.once(ji.CAN_PLAY,A),o.once(ji.SOURCE,R),d.once(ji.SOURCE,R);return}of(E,d)}function jr(){let n=document.querySelectorAll("flowplayer-spin");return Array.from(n)}function iu(n){let o=n.root.getAttribute("spin-index");return parseFloat(o)}function Rl(n,o){if(o.length===1)return 0;let d=o[0].getBoundingClientRect().height,v=o[1].getBoundingClientRect().top-o[0].getBoundingClientRect().bottom;return Math.round(n.scrollTop/(d+v))}function Lr(n,o){return document.querySelector(`${o?"flowplayer-ad-player":"flowplayer-spin-player"}[spin-index="${n}"] video`)}function Va(n,o){let[d,v]=Array.from(n.querySelectorAll("flowplayer-spin-player .fp-engine")),E=d.root.getAttribute("spin-index")===o;return{primaryPlayer:E?d:v,secondaryPlayer:E?v:d}}function kl(n,o,d,v){if(v.spinsLoading)return;let E=v.primarySpinIndex>=o.length-2;if(!(o.length<d.length)||!E)return;let R=d.slice(o.length,o.length+5);v.spinsLoading=Uo(n,R,o).then(()=>{HE(n,o,v),v.spinsLoading=void 0})}function HE(n,o,d){if(d.primarySpinIndex!==o.length-1)return;let{primaryPlayer:v,secondaryPlayer:E}=Va(n,String(d.primarySpinIndex));if(iu(E)>d.primarySpinIndex)return;return wn(n,v,E,d.primarySpinIndex+1)}function Cl(n,o){let d=o.original_src;if(o.hasState("is-error"))return;o?.togglePlay(!0).then(()=>{if(o.original_src!==d||o.hasState("is-error"))return;if(!o.paused)return n.classList.toggle("has-audio",!o.muted);if(!n.classList.contains("has-user-interaction")&&!n.classList.contains("has-audio"))o.muted=!0;o.play()}),Ll(o,"content-displayed")}function ru(n){if(!window?.google?.ima)return console.warn("google.ima unavailable");if(!Ar.from_token(n.token||"").is_granted(Ar.permissions.ADS))return console.warn("google.ima unavailable");if(!n.ima||!n.ima.ads||!n.ima.ads.length)return console.warn("token not valid");return new(window.customElements.get("flowplayer-ad-player"))(n)}class nu extends HTMLElement{ima;adsPlugin;player;constructor(n){super();this.ima=n.ima;let o=yl([]);this.adsPlugin=new eu(o),this.player=o(this,{...n,muted:!1});let d=()=>{Ll(this.player,"ad-display")};this.player.once("ads-outstream-teardown",()=>{setTimeout(()=>{this.player.off("ad-started",d),this.player.destroy(),this.remove(),this.ima=void 0,this.adsPlugin=void 0,this.player=void 0},0)}),this.player.once("ad-started",d)}loadAd(n,o){if(this?.player?.hasState("has-started"))return;this?.adsPlugin?.startUp(this?.player,this?.ima,{},n,o)}destroy(){if(this?.player?.ads)return this?.player?.ads?.dispatch("ad-teardown",{});this.player?.emit("ads-outstream-teardown")}onBeforeDestroy(n){this.player?.addEventListener("ads-outstream-teardown",n,{once:!0})}}function cf(n,o,d,v){n.classList.add("is-spins","is-ad-player","is-starting"),n.setAttribute("spin-index",String(v)),VE(n,o),d.append(n);let E=Rl(o,jr()),A=(L)=>{if(!n.player)return;if(E=L.detail.index,E-v>=5)return n.destroy();lf(n,o,E,v)},R=()=>{n.player?.setState("is-loaded",!0)},T=()=>{if(!n.player)return;if(n.player.off("ad-request-completed",R),o.off(ki.SPIN_IN_VIEWPORT,A),E!==v)return;let L=Lr(E,!1);if(!L)return;Cl(o,L)};if(o.on(ki.SPIN_IN_VIEWPORT,A),n.player.once("ad-request-completed",R),n.player.once("ads-outstream-teardown",T),E+1===v)return lf(n,o,E,v)}function lf(n,o,d,v){if(n.player.hasState("has-started"))return;if(d===v)return n.loadAd(o,v);if(d+1!==v)return;let E=Lr(d,!1);if(!E||E.hasState("is-loaded"))return n.loadAd(o,v);let A=()=>n.loadAd(o,v),R=()=>E.off(Ns.CAN_PLAY,A);E.once(Ns.CAN_PLAY,A),E.once(Ns.SOURCE,R),n.player.once("ads-outstream-teardown",()=>{E.off(Ns.SOURCE,R),R()})}function VE(n,o){let d=(v)=>{if(v.detail.ratio<0.95)return;o.style.overflow="hidden",n?.player.off("intersectionchange",d),n.scrollIntoView(!0)};n.player.on("intersectionchange",d),n.player.once("ads-outstream-teardown",()=>{n.player.off("intersectionchange",d),o.style.removeProperty("overflow")})}class Dl extends HTMLElement{menuContainer;summaryEle;mainMenu;menuHeader;menuTitle;olEle;closeEle;player;constructor(n){super();this.className="fp-menu-dialog",this.player=n,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.mainMenu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.mainMenu.classList.add("fp-menu","fp-main-menu"),this.mainMenu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.mainMenu),this.menuTitle.textContent=this.player.i18n("core.settings","Settings"),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button"),this.summaryEle.setAttribute("aria-label","Settings"),this.append(this.menuContainer),this.toggleVisibility(),n.on("keyboard:close:menus",this.onKeyboardCloseMenu.bind(this)),n.root.addEventListener("click",this.onRootClick.bind(this)),this.addEventListener("click",this.onMenuClick.bind(this)),["focusin","focusout"].forEach((o)=>this.mainMenu.addEventListener(o,this.onFocus.bind(this)))}appendMenu(n){this.createDialogOpt(n),this.addSubMenuBackButton(n.menuHeader),this.menuContainer.append(n.menu),n.remove()}createDialogOpt(n){let o=document.createElement("li");o.textContent=n.menuHeader.querySelector("h3")?.textContent||"";let d=this.detectSubMenuType(n.classList);this.toggleDialogOpt(n.menu,o,d),n.addEventListener(this.findSubMenuOptionsEvent(d),()=>{this.toggleDialogOpt(n.menu,o,d)}),o.onclick=d===1?this.onSubtitlesOptClick.bind(this,n):this.onOptClick.bind(this,n),o.setAttribute("role","menuitem"),o.setAttribute("aria-selected","false"),o.setAttribute("tabindex","0"),o.setAttribute("aria-haspopup","true"),o.setAttribute("aria-label",n.menuHeader.querySelector("h3")?.textContent||"")}toggleDialogOpt(n,o,d){try{n.querySelectorAll("li").length>(d===1?0:1)?this.olEle.appendChild(o):this.olEle.removeChild(o)}catch(v){}this.toggleVisibility()}addSubMenuBackButton(n){let o=document.createElement("div");o.className="fp-icon fp-menu-back fp-back-button",o.setAttribute("aria-hidden","true"),n.append(o)}openMenu(n){this.querySelectorAll(".fp-menu")?.forEach((o)=>{if(o===n)return;o?.classList.add("is-close")}),n.classList.remove("is-close"),n.querySelector("li")?.focus()}toggleMenuDialog(n){this.menuContainer.open=n,this.player.root.classList.toggle("has-menu-opened",n),this.summaryEle.setAttribute("aria-expanded",n+"")}toggleVisibility(){let n=!this.olEle.querySelectorAll("li").length;if(this.style.setProperty("display",n?"none":"block"),n&&this.menuContainer.open)this.toggleMenuDialog(!1)}onMenuClick(n){if(n.defaultPrevented)return;n.preventDefault();let o=n.target;if(o?.classList?.contains("fp-menu-back")||o?.closest("li"))return this.openMenu(this.mainMenu);let d=!this.menuContainer.open;if(d)this.openMenu(this.mainMenu);this.toggleMenuDialog(d)}onFocus(n){let o=n.target;if(!(o instanceof HTMLLIElement))return;o.setAttribute("aria-selected",n.type==="focusin"?"true":"false")}onOptClick(n,o){o.preventDefault(),this.openMenu(n.menu)}onSubtitlesOptClick(n,o){if(!this.player?.opt?.("subtitles.native"))n.createMenu(0);this.onOptClick(n,o)}onRootClick(n){if(n.composedPath().includes(this))return;this.toggleMenuDialog(!1)}onKeyboardCloseMenu(n){if(n.defaultPrevented)return;if(n.preventDefault(),this.mainMenu.classList.contains("is-close"))return this.openMenu(this.mainMenu);this.toggleMenuDialog(!1),this.summaryEle.focus()}detectSubMenuType(n){if(n.contains("fp-asel"))return 0;if(n.contains("fp-qsel"))return 2;if(n.contains("fp-speed"))return 4;if(n.contains("fp-cc"))return 1;if(n.contains("fp-vsel"))return 3}findSubMenuOptionsEvent(n){switch(n){case 0:return"audio:tracks";case 2:return"quality:tracks";case 4:return"speed:options";case 1:return"subs:tracks";case 3:return"video:tracks";default:return""}}}function su(n,o,d){let E=new(window.customElements.get("flowplayer-spin-player"));E.setAttribute(d,"");let A=n(E,{...o,preload:"none",autopause:!0,muted:!1,hls:{adaptive_buffer_control:!0},ui:(o.ui??0)|2048|16384|1|(n.support().android?2:0),loop:!0});return A.root.classList.add("is-spins"),KE(A),A}function KE(n){let o=n.root.querySelector("flowplayer-control");if(!o)return;if(!window.customElements.get("flowplayer-menu-dialog"))window.customElements.define("flowplayer-menu-dialog",Dl);let d=document.createElement("div");d.classList.add("fp-spin-controls-bar"),o.prepend(d);let v=n.root.querySelector("flowplayer-volume-control");if(v)d.append(v);let E=new Dl(n);d.append(E),["flowplayer-subtitles-menu","flowplayer-speed-menu","flowplayer-quality-menu","flowplayer-audio-menu","flowplayer-video-menu"].forEach((A)=>{let R=n.root.querySelector(A);if(R)E.appendMenu(R)})}function uf(n){let{items:o,state:d}=n,v;n.addEventListener("scroll",()=>{clearTimeout(v),v=setTimeout(()=>{let E=jr();if(E.length<=1)return;let A=Rl(n,E),R=d.primarySpinIndex-A;if(!R)return n.state.isScrolling=!1;let{primaryPlayer:T,secondaryPlayer:L}=Va(n,String(d.primarySpinIndex));if(R>0)YE(n,T,L,A);if(R<0)WE(n,E,o,T,L,A,Math.abs(R));d.primarySpinIndex=A,jE(T,L),kl(n,E,o.slice(),d),n.state.isScrolling=!1},150)})}function WE(n,o,d,v,E,A,R){if(R===1)n.emit(ki.SPIN_IN_VIEWPORT,{config:d[A],spin:o[A],index:A});if(R>1)Ha(n,E,A);if(o.length-1>A)return wn(n,E,v,A+1)}function YE(n,o,d,v){Ha(n,d,v),wn(n,d,o,v+1)}function jE(n,o){n.root.setAttribute("next",""),n.root.removeAttribute("current"),o.root.setAttribute("current",""),o.root.removeAttribute("next")}function hf(n){let o=0,d=!1,v=0,E=0,A=100,R=700;n.addEventListener("touchstart",(T)=>{if(n.style.overflow==="hidden")return;d=!0,o=T.touches[0].clientY,v=0},{passive:!0}),n.addEventListener("touchmove",(T)=>{if(!d)return;T.preventDefault();let L=Date.now();if(n.state.isScrolling||L-E<R)return;let M=T.touches[0].clientY,tt=o-M;if(v+=tt*0.8,o=M,Math.abs(v)>=A){let b=v>0?n.state.primarySpinIndex+1:n.state.primarySpinIndex-1;df(n,b),v=0,E=L}},{passive:!1}),n.addEventListener("touchend",()=>{d=!1,v=0},{passive:!0}),n.addEventListener("wheel",(T)=>{if(T.preventDefault(),n.style.overflow==="hidden")return v=0;let L=Date.now();if(n.state.isScrolling||L-E<R)return;if(v+=T.deltaY*0.1,Math.abs(v)>=A){let M=v>0?n.state.primarySpinIndex+1:n.state.primarySpinIndex-1;df(n,M),v=0,E=L}},{passive:!1})}function df(n,o){let d=document.querySelectorAll(".fp-spin");o=Math.max(0,Math.min(o,d.length-1));let v=d[o];if(!v||o===n.state.primarySpinIndex)return;n.state.isScrolling=!0,v.scrollIntoView({behavior:"smooth",block:"start"})}class au extends HTMLElement{items=[];mainConfig;ima;state={primarySpinIndex:0,spinsLoading:void 0,isScrolling:!1};mediaEventRefCount=new Map;onMediaEventHandler=(n)=>{let o=n.target,d=iu(o);if(this.state.isScrolling||this.state.primarySpinIndex!==d)return;this.emitPlayerEvent(n.type,{spinIndex:d,duration:this.items[d].metadata?.duration||o.duration,url:o.original_src,mediaId:this.items[d].metadata?.media_id,currentTime:o.currentTime})};constructor(){super();this.classList.add("fp-spins-container","init"),this.addEventListener("click",()=>this.classList.add("has-user-interaction"),{once:!0}),this.addEventListener("touchstart",()=>this.classList.add("has-user-interaction"),{once:!0}),uf(this),hf(this),this.on(ki.SPIN_IN_VIEWPORT,(n)=>{let o=n.detail.index;if(Lr(o,!0))return;let v=Lr(o,!1);if(!v)return;Cl(this,v)})}init({playlist:n,ima:o,...d}){if(this.items.push(...n),this.mainConfig=d,this.ima=o,!this.ima)return}maybeCreateAdPlayer(n,o){if(!this.mainConfig)return;if((n+1)%this.mainConfig.adsFrequency!==0)return;if(!this.ima)return;let d=ru({ima:this.ima,token:this.mainConfig.token||"",lang:this.mainConfig.lang,poster:this.items[n].poster});if(!d)return;cf(d,this,o,n)}addSpins(n){let o=yd.parse(n);if(!o.length)return;if(this.items.push(...o),this.classList.contains("init"))return;kl(this,jr(),this.items,this.state)}addContentPlayers(){if(!this.mainConfig)return;let n=yl(this.mainConfig.plugins),o=su(n,this.mainConfig,"current"),d=su(n,this.mainConfig,"next");Ha(this,o,0),wn(this,o,d,1),this.classList.remove("init"),this.dispatchEvent(new Event("playersCreated"))}on(n,o,d){this.addEventListener(n,o,d)}emit(n,o){this.dispatchEvent(new CustomEvent(n,{detail:o}))}off(n,o){this.removeEventListener(n,o)}onPlayerEvent(n,o){if(!Object.values(Oo).includes(n)&&!Object.values(Io).includes(n))return;if(Object.values(Oo).includes(n))return;let d=this.mediaEventRefCount.get(n)??0;if(this.mediaEventRefCount.set(n,d+1),d===0)this.onPlayersReady((v)=>v.on(n,this.onMediaEventHandler))}offPlayerEvent(n,o){if(this.removeEventListener(n,o),!Object.values(Io).includes(n))return;let d=n,v=this.mediaEventRefCount.get(d)??0;if(v>1)return this.mediaEventRefCount.set(d,v-1);this.mediaEventRefCount.delete(d),this.onPlayersReady((E)=>E.off(d,this.onMediaEventHandler))}emitPlayerEvent(n,o){this.dispatchEvent(new CustomEvent(n,{detail:o}))}onPlayersReady(n){let o=()=>{Object.values(Va(this,String(this.state.primarySpinIndex))).forEach(n)};if(!this.classList.contains("init"))return o();this.addEventListener("playersCreated",o,{once:!0})}}async function ff(n){await new Promise((o)=>{if(document.querySelector(".fp-spins-container"))return o(null);let d=new MutationObserver(()=>{if(!document.querySelector(".fp-spins-container"))return;d.disconnect(),o(null)});d.observe(document,{childList:!0,subtree:!0})}),mf(n)}function mf(n){let o=n.getBoundingClientRect().top;n.style.height=`${window.innerHeight-o}px`}function gf(n){window.addEventListener("resize",()=>{mf(n),document.querySelectorAll(".fp-spin")[n.state.primarySpinIndex]?.scrollIntoView({behavior:"auto"})})}class ou extends HTMLElement{constructor(n,o){super();if(this.classList.add("fp-spin"),o.poster)this.style.backgroundImage=`url(${o.poster})`}}pf();vf();if(!window.customElements.get("flowplayer-spin"))window.customElements.define("flowplayer-spin",ou);if(!window.customElements.get("flowplayer-spins-container"))window.customElements.define("flowplayer-spins-container",au);if(!window.customElements.get("flowplayer-spin-player"))window.customElements.define("flowplayer-spin-player",class extends HTMLElement{});if(!window.customElements.get("flowplayer-ad-player"))window.customElements.define("flowplayer-ad-player",nu);function Db(n){let d=new(window.customElements.get("flowplayer-spins-container"));return setTimeout(()=>zE(d,Fo.parse(n)),0),d}async function zE(n,o){await pf();let d=await Ad(o);n.init(d),await ff(n),await vf(),gf(n),await Uo(n,n.items.slice(0,5),[]),n.addContentPlayers()}async function pf(){await new Promise((n,o)=>{if(document.getElementById("flowplayer-style-sheet")){n();return}let d=document.createElement("link");d.rel="stylesheet",d.id="flowplayer-style-sheet",d.href="https://cdn.flowplayer.com/releases/native/3/stable/style/flowplayer.css",d.onload=()=>n(),d.onerror=()=>o(Error("Failed to load stylesheet")),document.head.prepend(d)})}function vf(){let o=document.querySelector('script[src="https://imasdk.googleapis.com/js/sdkloader/ima3.js"]');if(o){if("loadingPromise"in o)return o.loadingPromise;return Promise.resolve()}let d=document.createElement("script");return d.src="https://imasdk.googleapis.com/js/sdkloader/ima3.js",d.async=!0,d.loadingPromise=new Promise((v)=>{d.addEventListener("load",()=>v(),{once:!0}),d.addEventListener("error",()=>v(),{once:!0})}),document.head.append(d),d.loadingPromise}export{ki as spinEvents,Io as mediaEvents,Db as createSpins,ru as createAdPlayer,Oo as adEvents};