video_monitor/static/lib/easyPlayer/js/easyplayer-pro.js
2026-08-30 22:23:12 +08:00

2 lines
2.6 MiB
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("crypto-js")):"function"==typeof define&&define.amd?define(["crypto-js"],t):(e="undefined"!=typeof globalThis?globalThis:e||self)["easyplayer-pro"]=t(e.CryptoJS)}(this,(function(t){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=r(t);const a=1,o=2,n=3,l=4,h=5,A=6,d=8,c=9,u=["","websocket","fetch","hls","webrtc","webTransport","aliyunRtc","ts"],p="fetch",g="hls",m="websocket",y="webrtc",E="webTransport",C="worker",f="aliyunRtc",I="mp4",w="wsRtc",S="player",M="playerAudio",v="playbackTF",k="mp4",B="webm",D="flv",b="mov",Q="flv",R="m7s",T="hls",L="mp4",K="webrtc",q="webTransport",x="nakedFlow",F="fmp4",U="mpeg4",G="aliyunRtc",O="ts",J="wsRtc",Y={flv:"FLV",m7s:"M7S",hls:"HLS",fmp4:"FMP4",mpeg4:"MPEG4",webrtc:"Webrtc",webTransport:"WebTransport",nakedFlow:"裸流",aliyunRtc:"AliyunRtc",ts:"TS"},N="mse",P="wcs",j="offscreen",z="wasm",W="simd",Z="mt",V="webrtc",H="hls",X="mp4",_="wsRtc",$="aliyunRtc",ee="canvas",te="video",ie="debug",re="warn",se="click",ae="mouseDownAndUp",oe={normal:"normal",simple:"simple"},ne="6.1.0",le=36e5,he="/crypto/",Ae="EasyProv",de=1e4,ce={url:"",playbackConfig:{},fullscreenWatermarkConfig:{},playType:S,playbackForwardMaxRateDecodeIFrame:4,playOptions:{},isLive:!0,isMulti:!0,isM7sCrypto:!1,supportHls265:!1,playFailedUseLastFrameShow:!0,playFailedAndPausedShowMessage:!1,pauseAndNextPlayUseLastFrameShow:!1,widthOrHeightChangeReplayDelayTime:0,isUseNewFullscreenWatermark:!1},ue={playType:S,container:"",videoBuffer:1e3,videoBufferDelay:1e3,networkDelay:1e4,messageTime:5,isResize:!0,isFullResize:!1,isFlv:!1,isHls:!1,isFmp4:!1,isFmp4Private:!1,isWebrtc:!1,isWebrtcForZLM:!1,isWebrtcForSRS:!1,isWebrtcForOthers:!1,isNakedFlow:!1,isMpeg4:!1,isAliyunRtc:!1,isTs:!1,debug:!1,debugLevel:re,debugUuid:"",isMulti:!0,multiIndex:-1,hotKey:!1,loadingTimeout:10,heartTimeout:10,timeout:10,pageVisibilityHiddenTimeout:300,loadingTimeoutReplay:!0,heartTimeoutReplay:!0,loadingTimeoutReplayTimes:3,heartTimeoutReplayTimes:3,heartTimeoutReplayUseLastFrameShow:!0,replayUseLastFrameShow:!0,replayShowLoadingIcon:!1,supportDblclickFullscreen:!1,showBandwidth:!1,showPerformance:!1,mseCorrectTimeDuration:20,mseCorrectAudioTimeDuration:20,keepScreenOn:!0,isNotMute:!1,muted:!0,hasAudio:!0,hasVideo:!0,operateBtns:{fullscreen:!1,screenshot:!1,stretch:!1,play:!1,audio:!1,record:!1,ptz:!1,quality:!1,zoom:!1,close:!1,scale:!1,performance:!1,logSave:!1,aiFace:!1,aiObject:!1,aiOcclusion:!1,fullscreenFn:null,fullscreenExitFn:null,screenshotFn:null,playFn:null,pauseFn:null,recordFn:null,recordStopFn:null},extendOperateBtns:[],contextmenuBtns:[],watermarkConfig:{},iceServers:[],channelId:"",controlAutoHide:!1,isLogo:!0,hasControl:!1,loadingIcon:!0,loadingIconStyle:{},loadingText:"",background:"",poster:"",backgroundLoadingShow:!0,loadingBackground:"",loadingBackgroundWidth:0,loadingBackgroundHeight:0,decoder:"decoder-pro.js",decoderAudio:"decoder-pro-audio.js",decoderHard:"decoder-pro-hard.js",decoderHardNotWasm:"decoder-pro-hard-not-wasm.js",wasmMp4RecorderDecoder:"easyplayer-mp4-recorder-decoder.js",decoderWASM:"",isDecoderUseCDN:!1,url:"",rotate:0,mirrorRotate:"none",aspectRatio:"default",playbackConfig:{playList:[],fps:"",showControl:!0,controlType:oe.normal,duration:0,startTime:"",showRateBtn:!1,rateConfig:[],showPrecision:"",showPrecisionBtn:!0,isCacheBeforeDecodeForFpsRender:!1,uiUsePlaybackPause:!0,isPlaybackPauseClearCache:!0,isUseFpsRender:!1,isUseLocalCalculateTime:!1,localOneFrameTimestamp:40,supportWheel:!1,useWCS:!1,useMSE:!1},qualityConfig:[],defaultStreamQuality:"",scaleConfig:["拉伸","缩放","正常"],forceNoOffscreen:!0,hiddenAutoPause:!1,protocol:o,demuxType:Q,useWasm:!1,useMSE:!1,useWCS:!1,useSIMD:!0,useMThreading:!1,wcsUseVideoRender:!0,wcsUseWebgl2Render:!0,wasmUseVideoRender:!0,mseUseCanvasRender:!1,hlsUseCanvasRender:!1,webrtcUseCanvasRender:!1,useOffscreen:!1,useWebGPU:!1,mseDecodeErrorReplay:!0,wcsDecodeErrorReplay:!0,wasmDecodeErrorReplay:!0,simdDecodeErrorReplay:!0,simdDecodeErrorReplayType:z,autoWasm:!0,decoderErrorAutoWasm:!0,hardDecodingNotSupportAutoWasm:!0,webglAlignmentErrorReplay:!0,webglContextLostErrorReplay:!0,openWebglAlignment:!1,syncAudioAndVideo:!1,syncAudioAndVideoDiff:500,playbackDelayTime:1e3,playbackFps:25,playbackForwardMaxRateDecodeIFrame:4,playbackCurrentTimeMove:!0,useVideoRender:!0,useCanvasRender:!1,networkDelayTimeoutReplay:!1,recordType:k,checkFirstIFrame:!0,nakedFlowFps:25,audioEngine:null,isShowRecordingUI:!0,isShowZoomingUI:!0,useFaceDetector:!1,useObjectDetector:!1,useImageDetector:!1,useOcclusionDetector:!1,ptzPositionConfig:{},ptzShowType:"vertical",ptzClickType:se,ptzStopEmitDelay:.3,ptzZoomShow:!1,ptzApertureShow:!1,ptzFocusShow:!1,ptzMoreArrowShow:!1,ptzCruiseShow:!1,ptzFogShow:!1,ptzWiperShow:!1,ptzSupportDraggable:!1,weiXinInAndroidAudioBufferSize:4800,isM7sCrypto:!1,m7sCryptoAudio:!1,isSm4Crypto:!1,isXorCrypto:!1,sm4CryptoKey:"",m7sCryptoKey:"",xorCryptoKey:"",cryptoKey:"",cryptoIV:"",cryptoKeyUrl:"",autoResize:!1,useWebFullScreen:!1,ptsMaxDiff:3600,aiFaceDetectLevel:2,aiFaceDetectWidth:240,aiFaceDetectShowRect:!0,aiFaceDetectInterval:1e3,aiFaceDetectRectConfig:{},aiObjectDetectLevel:2,aiObjectDetectWidth:240,aiObjectDetectShowRect:!0,aiObjectDetectInterval:1e3,aiObjectDetectRectConfig:{},aiOcclusionDetectInterval:1e3,aiImageDetectDrop:!1,aiImageDetectActive:!1,videoRenderSupportScale:!0,mediaSourceTsIsMaxDiffReplay:!0,controlHtml:"",isH265:!1,isWebrtcH265:!1,supportLockScreenPlayAudio:!0,supportHls265:!1,isEmitSEI:!1,pauseAndNextPlayUseLastFrameShow:!1,demuxUseWorker:!0,playFailedAndReplay:!0,showMessageConfig:{webglAlignmentError:"Webgl 渲染失败",webglContextLostError:"webgl 上下文丢失",mediaSourceH265NotSupport:"不支持硬解码H265",mediaSourceFull:"缓冲区已满",mediaSourceAppendBufferError:"初始化解码器失败",mseSourceBufferError:"解码失败",mseAddSourceBufferError:"初始化解码器失败",mediaSourceDecoderConfigurationError:"初始化解码器失败",mediaSourceTsIsMaxDiff:"流异常",mseWidthOrHeightChange:"流异常",mediaSourceAudioG711NotSupport:"硬解码不支持G711a/u音频格式",mediaSourceUseCanvasRenderPlayFailed:"MediaSource解码使用canvas渲染失败",webcodecsH265NotSupport:"不支持硬解码H265",webcodecsUnsupportedConfigurationError:"初始化解码器失败",webcodecsDecodeConfigureError:"初始化解码器失败",webcodecsDecodeError:"解码失败",wcsWidthOrHeightChange:"解码失败",wasmDecodeError:"解码失败",simdDecodeError:"解码失败",wasmWidthOrHeightChange:"流异常",wasmUseVideoRenderError:"video自动渲染失败",videoElementPlayingFailed:"video自动渲染失败",simdH264DecodeVideoWidthIsTooLarge:"不支持该分辨率的视频",networkDelayTimeout:"网络超时重播失败",fetchError:"请求失败",streamEnd:"请求结束",websocketError:"请求失败",webrtcError:"请求失败",hlsError:"请求失败",decoderWorkerInitError:"初始化worker失败",videoElementPlayingFailedForWebrtc:"video自动渲染失败",videoInfoError:"解析视频分辨率失败",webrtcStreamH265:"webrtc不支持H265",delayTimeout:"播放超时重播失败",loadingTimeout:"加载超时重播失败",loadingTimeoutRetryEnd:"加载超时重播失败",delayTimeoutRetryEnd:"播放超时重播失败"},videoElementPlayingFailedReplay:!0,mp4RecordUseWasm:!0,mseAutoCleanupSourceBuffer:!0,mseAutoCleanupMaxBackwardDuration:30,mseAutoCleanupMinBackwardDuration:10,widthOrHeightChangeReplay:!0,simdH264DecodeVideoWidthIsTooLargeReplay:!0,mediaSourceAudioG711NotSupportReplay:!0,mediaSourceAudioInitTimeoutReplay:!0,mediaSourceUseCanvasRenderPlayFailedReplay:!0,mediaSourceUseCanvasRenderPlayFailedReplayType:te,widthOrHeightChangeReplayDelayTime:0,ghostWatermarkConfig:{on:5,off:5,content:"",fontSize:12,color:"white",opacity:.15,speed:.2},dynamicWatermarkConfig:{content:"",speed:.2,fontSize:12,color:"white",opacity:.15},isDropSameTimestampGop:!1,mseDecodeAudio:!1,nakedFlowH265DemuxUseNew:!0,extendDomConfig:{html:"",showBeforePlay:!1,showAfterLoading:!0},disableContextmenu:!1,websocket1006ErrorReplay:!1,websocket1006ErrorReplayDelayTime:0,streamErrorReplay:!1,streamErrorReplayDelayTime:0,streamEndReplay:!1,streamEndReplayDelayTime:0,mseDecoderUseWorker:!1,openMemoryLog:!1,mainThreadFetchUseWorker:!0,playFailedAndPausedShowPlayBtn:!0,mseCorrectionTimestamp:!0,flvDemuxBufferSizeTooLargeReplay:!1,flvDemuxBufferSizeMaxLarge:1048576,isCheckInView:!1},pe="init",ge="initVideo",me="render",ye="playAudio",Ee="initAudio",Ce="audioCode",fe="audioNalu",Ie="audioAACSequenceHeader",we="videoCode",Se="videoCodec",Me="videoNalu",ve="videoPayload",ke="audioPayload",Be="wasmError",De="workerFetch",be="iframeIntervalTs",Qe="isDropping",Re="workerEnd",Te="playbackStreamVideoFps",Le="wasmDecodeVideoNoResponseError",Ke="wasmWidthOrHeightChange",qe="simdDecodeError",xe="simdH264DecodeVideoWidthIsTooLarge",Fe="closeEnd",Ue="tempStream",Ge="videoSEI",Oe="flvScriptData",Je="aacSequenceHeader",Ye="videoSequenceHeader",Ne="flvBufferData",Pe="checkFirstIFrame",je="mseHandle",ze="mseFirstRenderTime",We="mseError",Ze="Invalid NAL unit size",Ve=1,He=2,Xe=8,_e=9,$e=18,et="init",tt="decode",it="audioDecode",rt="videoDecode",st="close",at="updateConfig",ot="clearBuffer",nt="fetchStream",lt="sendWsMessage",ht="mseUpdateVideoTimestamp",At="fetch",dt="destroy",ct="destroyEnd",ut="buffer",pt="fetchError",gt="fetchClose",mt="fetchSuccess",yt={fullscreen:"fullscreen$2",webFullscreen:"webFullscreen",decoderWorkerInit:"decoderWorkerInit",play:"play",playing:"playing",pause:"pause",mute:"mute",load:"load",loading:"loading",zooming:"zooming",videoInfo:"videoInfo",timeUpdate:"timeUpdate",liveEnd:"liveEnd",audioInfo:"audioInfo",log:"log",error:"error",kBps:"kBps",timeout:"timeout",delayTimeout:"delayTimeout",delayTimeoutRetryEnd:"delayTimeoutRetryEnd",loadingTimeout:"loadingTimeout",loadingTimeoutRetryEnd:"loadingTimeoutRetryEnd",stats:"stats",performance:"performance",videoSmooth:"videoSmooth",faceDetectActive:"faceDetectActive",objectDetectActive:"objectDetectActive",occlusionDetectActive:"occlusionDetectActive",imageDetectActive:"imageDetectActive",record:"record",recording:"recording",recordingTimestamp:"recordingTimestamp",recordStart:"recordStart",recordEnd:"recordEnd",recordCreateError:"recordCreateError",recordBlob:"recordBlob",buffer:"buffer",videoFrame:"videoFrame",videoSEI:"videoSEI",start:"start",metadata:"metadata",resize:"resize",volumechange:"volumechange",destroy:"destroy",screenshots:"screenshots",screenshot:"screenshot",beforeDestroy:"beforeDestroy",supportHlsH265:"supportHlsH265",streamEnd:"streamEnd",streamRate:"streamRate",streamAbps:"streamAbps",streamVbps:"streamVbps",streamDts:"streamDts",streamSuccess:"streamSuccess",streamMessage:"streamMessage",streamError:"streamError",streamStats:"streamStats",mseSourceOpen:"mseSourceOpen",mseSourceClose:"mseSourceClose",mseSourceended:"mseSourceended",mseSourceStartStreaming:"mseSourceStartStreaming",mseSourceEndStreaming:"mseSourceEndStreaming",mseSourceBufferError:"mseSourceBufferError",mseAddSourceBufferError:"mseAddSourceBufferError",mseSourceBufferBusy:"mseSourceBufferBusy",mseSourceBufferFull:"mseSourceBufferFull",videoWaiting:"videoWaiting",videoTimeUpdate:"videoTimeUpdate",videoSyncAudio:"videoSyncAudio",playToRenderTimes:"playToRenderTimes",playbackTime:"playbackTime",playbackTimestamp:"playbackTimestamp",playbackTimeScroll:"playbackTimeScroll",playbackPrecision:"playbackPrecision",playbackShowPrecisionChange:"playbackShowPrecisionChange",playbackJustTime:"playbackJustTime",playbackStats:"playbackStats",playbackEnd:"playbackEnd",playbackSeek:"playbackSeek",playbackPause:"playbackPause",playbackPauseOrResume:"playbackPauseOrResume",playbackRateChange:"playbackRateChange",playbackPreRateChange:"playbackPreRateChange",ptz:"ptz",streamQualityChange:"streamQualityChange",visibilityChange:"visibilityChange",netBuf:"netBuf",close:"close",contextmenuClose:"contextmenuClose",reset:"reset",playbackResetPause:"playbackResetPause",networkDelayTimeout:"networkDelayTimeout",togglePerformancePanel:"togglePerformancePanel",viewResizeChange:"viewResizeChange",flvDemuxBufferSizeTooLarge:"flvDemuxBufferSizeTooLarge",talkGetUserMediaSuccess:"talkGetUserMediaSuccess",talkGetUserMediaFail:"talkGetUserMediaFail",talkGetUserMediaTimeout:"talkGetUserMediaTimeout",talkStreamStart:"talkStreamStart",talkStreamOpen:"talkStreamOpen",talkStreamClose:"talkStreamClose",talkStreamError:"talkStreamError",talkStreamInactive:"talkStreamInactive",webrtcDisconnect:"webrtcDisconnect",webrtcFailed:"webrtcFailed",webrtcClosed:"webrtcClosed",webrtcOnConnectionStateChange:"webrtcOnConnectionStateChange",webrtcOnIceConnectionStateChange:"webrtcOnIceConnectionStateChange",crashLog:"crashLog",focus:"focus",blur:"blur",inView:"inView",visibilityHiddenTimeout:"visibilityHiddenTimeout",websocketOpen:"websocketOpen",websocketClose:"websocketClose",websocketError:"websocketError",websocketMessage:"websocketMessage",aiObjectDetectorInfo:"aiObjectDetectorInfo",aiFaceDetectorInfo:"aiFaceDetectorInfo",aiOcclusionDetectResult:"aiOcclusionDetectResult",aiImageDetectResult:"aiImageDetectResult",playFailedAndPaused:"playFailedAndPaused",audioResumeState:"audioResumeState",webrtcStreamH265:"webrtcStreamH265",flvMetaData:"flvMetaData",talkFailedAndStop:"talkFailedAndStop",removeLoadingBgImage:"removeLoadingBgImage",memoryLog:"memoryLog",downloadMemoryLog:"downloadMemoryLog",pressureObserverCpu:"pressureObserverCpu",currentPts:"currentPts"},Et={load:yt.load,timeUpdate:yt.timeUpdate,videoInfo:yt.videoInfo,audioInfo:yt.audioInfo,error:yt.error,kBps:yt.kBps,start:yt.start,timeout:yt.timeout,loadingTimeout:yt.loadingTimeout,loadingTimeoutRetryEnd:yt.loadingTimeoutRetryEnd,delayTimeout:yt.delayTimeout,delayTimeoutRetryEnd:yt.delayTimeoutRetryEnd,fullscreen:"fullscreen",webFullscreen:yt.webFullscreen,play:yt.play,liveEnd:yt.liveEnd,pause:yt.pause,mute:yt.mute,stats:yt.stats,performance:yt.performance,recordingTimestamp:yt.recordingTimestamp,recordStart:yt.recordStart,recordCreateError:yt.recordCreateError,recordEnd:yt.recordEnd,recordBlob:yt.recordBlob,playToRenderTimes:yt.playToRenderTimes,playbackSeek:yt.playbackSeek,playbackStats:yt.playbackStats,playbackEnd:yt.playbackEnd,playbackTimestamp:yt.playbackTimestamp,playbackPauseOrResume:yt.playbackPauseOrResume,playbackPreRateChange:yt.playbackPreRateChange,playbackRateChange:yt.playbackRateChange,playbackShowPrecisionChange:yt.playbackShowPrecisionChange,ptz:yt.ptz,streamQualityChange:yt.streamQualityChange,zooming:yt.zooming,crashLog:yt.crashLog,focus:yt.focus,blur:yt.blur,visibilityHiddenTimeout:yt.visibilityHiddenTimeout,visibilityChange:yt.visibilityChange,websocketOpen:yt.websocketOpen,websocketClose:yt.websocketClose,networkDelayTimeout:yt.networkDelayTimeout,aiObjectDetectorInfo:yt.aiObjectDetectorInfo,aiFaceDetectorInfo:yt.aiFaceDetectorInfo,aiOcclusionDetectResult:yt.aiOcclusionDetectResult,aiImageDetectResult:yt.aiImageDetectResult,playFailedAndPaused:yt.playFailedAndPaused,streamEnd:yt.streamEnd,audioResumeState:yt.audioResumeState,videoSEI:yt.videoSEI,flvMetaData:yt.flvMetaData,webrtcOnConnectionStateChange:yt.webrtcOnConnectionStateChange,webrtcOnIceConnectionStateChange:yt.webrtcOnIceConnectionStateChange,currentPts:yt.currentPts,videoSmooth:yt.videoSmooth},Ct={talkStreamClose:yt.talkStreamClose,talkStreamError:yt.talkStreamError,talkStreamInactive:yt.talkStreamInactive,talkGetUserMediaTimeout:yt.talkGetUserMediaTimeout,talkFailedAndStop:yt.talkFailedAndStop},ft={talkStreamError:yt.talkStreamError,talkStreamClose:yt.talkStreamClose},It={playError:"playIsNotPauseOrUrlIsNull",fetchError:"fetchError",websocketError:"websocketError",webcodecsH265NotSupport:"webcodecsH265NotSupport",webcodecsDecodeError:"webcodecsDecodeError",webcodecsUnsupportedConfigurationError:"webcodecsUnsupportedConfigurationError",webcodecsDecodeConfigureError:"webcodecsDecodeConfigureError",mediaSourceH265NotSupport:"mediaSourceH265NotSupport",mediaSourceAudioG711NotSupport:"mediaSourceAudioG711NotSupport",mediaSourceAudioInitTimeout:"mediaSourceAudioInitTimeout",mediaSourceAudioNoDataTimeout:"mediaSourceAudioNoDataTimeout",mediaSourceDecoderConfigurationError:"mediaSourceDecoderConfigurationError",mediaSourceFull:yt.mseSourceBufferFull,mseSourceBufferError:yt.mseSourceBufferError,mseAddSourceBufferError:yt.mseAddSourceBufferError,mediaSourceAppendBufferError:"mediaSourceAppendBufferError",mediaSourceTsIsMaxDiff:"mediaSourceTsIsMaxDiff",mediaSourceUseCanvasRenderPlayFailed:"mediaSourceUseCanvasRenderPlayFailed",mediaSourceBufferedIsZeroError:"mediaSourceBufferedIsZeroError",wasmDecodeError:"wasmDecodeError",wasmUseVideoRenderError:"wasmUseVideoRenderError",hlsError:"hlsError",webrtcError:"webrtcError",webrtcClosed:yt.webrtcClosed,webrtcIceCandidateError:"webrtcIceCandidateError",webglAlignmentError:"webglAlignmentError",wasmWidthOrHeightChange:"wasmWidthOrHeightChange",mseWidthOrHeightChange:"mseWidthOrHeightChange",wcsWidthOrHeightChange:"wcsWidthOrHeightChange",widthOrHeightChange:"widthOrHeightChange",tallWebsocketClosedByError:"tallWebsocketClosedByError",flvDemuxBufferSizeTooLarge:yt.flvDemuxBufferSizeTooLarge,wasmDecodeVideoNoResponseError:"wasmDecodeVideoNoResponseError",audioChannelError:"audioChannelError",simdH264DecodeVideoWidthIsTooLarge:"simdH264DecodeVideoWidthIsTooLarge",simdDecodeError:"simdDecodeError",webglContextLostError:"webglContextLostError",videoElementPlayingFailed:"videoElementPlayingFailed",videoElementPlayingFailedForWebrtc:"videoElementPlayingFailedForWebrtc",decoderWorkerInitError:"decoderWorkerInitError",videoInfoError:"videoInfoError",videoCodecIdError:"videoCodecIdError",streamEnd:yt.streamEnd,delayTimeout:yt.delayTimeout,loadingTimeout:yt.loadingTimeout,networkDelayTimeout:yt.networkDelayTimeout,aliyunRtcError:"aliyunRtcError",...ft},wt="notConnect",St="open",Mt="close",vt="error",kt={download:"download",base64:"base64",blob:"blob"},Bt="download",Dt="blob",bt={7:"H264(AVC)",12:"H265(HEVC)",99:"MPEG4"},Qt=7,Rt=12,Tt="H264(AVC)",Lt="H265(HEVC)",Kt={AAC:10,ALAW:7,MULAW:8,MP3:2},qt={AAC:"AAC",ALAW:"ALAW(g711a)",MULAW:"MULAW(g711u)",MP3:"MP3"},xt={10:"AAC",7:"ALAW",8:"MULAW",2:"MP3"},Ft={sps:7,pps:8,iFrame:5,kUnspecified:0,kSliceNonIDR:1,kSliceDPA:2,kSliceDPB:3,kSliceDPC:4,kSliceIDR:5,kSliceSEI:6,kSliceSPS:7,kSlicePPS:8,kSliceAUD:9,kEndOfSequence:10,kEndOfStream:11,kFiller:12,kSPSExt:13,kReserved0:14},Ut=19,Gt=20,Ot=21,Jt=32,Yt=32,Nt=33,Pt=33,jt=34,zt=34,Wt=39,Zt=39,Vt=40,Ht=0,Xt=1,_t=2,$t="webcodecs",ei="webgl",ti="webgl2",ii="webgpu",ri="offscreen",si="mse",ai="hls",oi="webrtc",ni="key",li="delta",hi='video/mp4; codecs="avc1.64002A"',Ai='video/mp4; codecs="hev1.1.6.L123.b0"',di='video/mp4;codecs="hev1.1.6.L120.90"',ci='video/mp4;codecs="hev1.2.4.L120.90"',ui='video/mp4;codecs="hev1.3.E.L120.90"',pi='video/mp4;codecs="hev1.4.10.L120.90"',gi="ended",mi="open",yi="closed",Ei=2e3,Ci=27,fi=38,Ii=40,wi="oneHour",Si="halfHour",Mi="tenMin",vi="fiveMin",ki={oneHour:"one-hour",halfHour:"half-hour",tenMin:"ten-min",fiveMin:"five-min"},Bi=["oneHour","halfHour","tenMin","fiveMin"],Di=["up","right","down","left","left-up","right-up","left-down","right-down"],bi="stop",Qi="fiStop",Ri="zoomExpand",Ti="zoomNarrow",Li="apertureFar",Ki="apertureNear",qi="focusFar",xi="focusNear",Fi="cruiseStart",Ui="cruiseStop",Gi="fogOpen",Oi="fogClose",Ji="wiperOpen",Yi="wiperClose",Ni="g711a",Pi="g711u",ji="pcm",zi="opus",Wi={png:"image/png",jpeg:"image/jpeg",webp:"image/webp"},Zi="sourceclose",Vi="sourceopen",Hi="sourceended",Xi="startstreaming",_i="endstreaming",$i="qualitychange",er="canplay",tr="waiting",ir="timeupdate",rr="ratechange",sr="avc",ar="hevc",or="A key frame is required after configure() or flush()",nr="Cannot call 'decode' on a closed codec",lr="Unsupported configuration",hr="Decoder failure",Ar="Decoding error",dr="Decoder error",cr="HEVC decoding is not supported",ur="The user aborted a request",pr="AbortError",gr="AbortError",mr="loading",yr="playing",Er="paused",Cr="destroy",fr=0,Ir=1,wr=8,Sr=0,Mr=98,vr="empty",kr="rtp",Br="tcp",Dr="open",br="close",Qr="error",Rr="message",Tr="worklet",Lr="script",Kr={encType:Ni,packetType:kr,packetTcpSendType:Br,rtpSsrc:"0000000000",numberChannels:1,sampleRate:8e3,sampleBitsWidth:16,sendInterval:20,debug:!1,debugLevel:re,testMicrophone:!1,saveToTempFile:!1,audioBufferLength:160,engine:Tr,checkGetUserMediaTimeout:!1,getUserMediaTimeout:1e4,audioConstraints:{latency:!0,noiseSuppression:!0,autoGainControl:!0,echoCancellation:!0,sampleRate:48e3,channelCount:1}},qr="worklet",xr="script",Fr="active",Ur={name:"",index:0,icon:"",iconHover:"",iconTitle:"",activeIcon:"",activeIconHover:"",activeIconTitle:"",click:null,activeClick:null},Gr={content:"",click:null,index:0},Or=1,Jr="subtitle-segments",Yr="hls-manifest-loaded",Nr="hls-level-loaded",Pr="demuxed-track",jr="flv-script-data",zr="metadata-parsed",Wr="ttfb",Zr="load-retry",Vr="load-start",Hr="speed",Xr="load-complete",_r="load-response-headers",$r="sei",es="sei-in-time",ts="switch-url-failed",is="switch-url-success",rs="subtitle-playlist",ss="stream-parsed",as="error",os=[0,160,240,320,480,640],ns=[0,160,240,320,480,640],ls="idle",hs="buffering",As="complete",ds={1:"MEDIA_ERR_ABORTED",2:"MEDIA_ERR_NETWORK",3:"MEDIA_ERR_DECODE",4:"MEDIA_ERR_SRC_NOT_SUPPORTED"},cs="video decoder initialization failed",us="audio packet",ps=1,gs=2,ms=0,ys=1,Es=3,Cs=16,fs="candidate-pair",Is="inbound-rtp",ws="local-candidate",Ss="remote-candidate",Ms="track",vs=9e4,ks=45e4,Bs=9e4,Ds="ulaw",bs="alaw",Qs="mp3",Rs="ws1006",Ts="mseDecodeError",Ls="wcsDecodeError";class Ks{constructor(e){this.log=function(t){if(e._opt.debug&&e._opt.debugLevel==ie){const a=e._opt.debugUuid?`[${e._opt.debugUuid}]`:"";for(var i=arguments.length,r=new Array(i>1?i-1:0),s=1;s<i;s++)r[s-1]=arguments[s];console.log(`EasyPro${a}[✅✅✅][${t}]`,...r)}},this.warn=function(t){if(e._opt.debug&&(e._opt.debugLevel==ie||e._opt.debugLevel==re)){const a=e._opt.debugUuid?`[${e._opt.debugUuid}]`:"";for(var i=arguments.length,r=new Array(i>1?i-1:0),s=1;s<i;s++)r[s-1]=arguments[s];console.log(`EasyPro${a}[❗❗❗][${t}]`,...r)}},this.error=function(t){const i=e._opt.debugUuid?`[${e._opt.debugUuid}]`:"";for(var r=arguments.length,s=new Array(r>1?r-1:0),a=1;a<r;a++)s[a-1]=arguments[a];console.error(`EasyPro${i}[❌❌❌][${t}]`,...s)}}}var qs="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function xs(e,t){return e(t={exports:{}},t.exports),t.exports}var Fs=xs((function(e){!function(){var t="undefined"!=typeof window&&void 0!==window.document?window.document:{},i=e.exports,r=function(){for(var e,i=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,s=i.length,a={};r<s;r++)if((e=i[r])&&e[1]in t){for(r=0;r<e.length;r++)a[i[0][r]]=e[r];return a}return!1}(),s={change:r.fullscreenchange,error:r.fullscreenerror},a={request:function(e,i){return new Promise(function(s,a){var o=function(){this.off("change",o),s()}.bind(this);this.on("change",o);var n=(e=e||t.documentElement)[r.requestFullscreen](i);n instanceof Promise&&n.then(o).catch(a)}.bind(this))},exit:function(){return new Promise(function(e,i){if(this.isFullscreen){var s=function(){this.off("change",s),e()}.bind(this);this.on("change",s);var a=t[r.exitFullscreen]();a instanceof Promise&&a.then(s).catch(i)}else e()}.bind(this))},toggle:function(e,t){return this.isFullscreen?this.exit():this.request(e,t)},onchange:function(e){this.on("change",e)},onerror:function(e){this.on("error",e)},on:function(e,i){var r=s[e];r&&t.addEventListener(r,i,!1)},off:function(e,i){var r=s[e];r&&t.removeEventListener(r,i,!1)},raw:r};r?(Object.defineProperties(a,{isFullscreen:{get:function(){return Boolean(t[r.fullscreenElement])}},element:{enumerable:!0,get:function(){return t[r.fullscreenElement]}},isEnabled:{enumerable:!0,get:function(){return Boolean(t[r.fullscreenEnabled])}}}),i?e.exports=a:window.screenfull=a):i?e.exports={isEnabled:!1}:window.screenfull={isEnabled:!1}}()}));Fs.isEnabled;class Us{constructor(e){this._buffer=e,this._buffer_index=0,this._total_bytes=e.byteLength,this._total_bits=8*e.byteLength,this._current_word=0,this._current_word_bits_left=0}destroy(){this._buffer=null}_fillCurrentWord(){let e=this._total_bytes-this._buffer_index;if(e<=0)return void console.error("ExpGolomb: _fillCurrentWord() but no bytes available",this._total_bytes,this._buffer_index);let t=Math.min(4,e),i=new Uint8Array(4);i.set(this._buffer.subarray(this._buffer_index,this._buffer_index+t)),this._current_word=new DataView(i.buffer).getUint32(0,!1),this._buffer_index+=t,this._current_word_bits_left=8*t}readBits(e){if(e>32&&console.error("ExpGolomb: readBits() bits exceeded max 32bits!"),e<=this._current_word_bits_left){let t=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t}let t=this._current_word_bits_left?this._current_word:0;t>>>=32-this._current_word_bits_left;let i=e-this._current_word_bits_left;this._fillCurrentWord();let r=Math.min(i,this._current_word_bits_left),s=this._current_word>>>32-r;return this._current_word<<=r,this._current_word_bits_left-=r,t=t<<r|s,t}readBool(){return 1===this.readBits(1)}readByte(){return this.readBits(8)}_skipLeadingZero(){let e;for(e=0;e<this._current_word_bits_left;e++)if(0!=(this._current_word&2147483648>>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){let e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){let e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}function Gs(e){let{profile:t,sampleRate:i,channel:r}=e;return new Uint8Array([175,0,t<<3|(14&i)>>1,(1&i)<<7|r<<3])}function Os(e){return Js(e)&&e[1]===fr}function Js(e){return e[0]>>4===Kt.AAC}const Ys=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],Ns=Ys,Ps=Ys;function js(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)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(6===t)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])}else{if(1===t)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(2===t)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(3===t)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])}}function zs(e){return 1024*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4)/e}const Ws=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];function Zs(e){let t=new Uint8Array(e),i=null,r=0,s=0,a=0,o=null;if(r=s=t[0]>>>3,a=(7&t[0])<<1|t[1]>>>7,a<0||a>=Ws.length)return void console.error("Flv: AAC invalid sampling frequency index!");let n=Ws[a],l=(120&t[1])>>>3;if(l<0||l>=8)return void console.log("Flv: AAC invalid channel configuration");5===r&&(o=(7&t[1])<<1|t[2]>>>7,t[2]);let h=self.navigator.userAgent.toLowerCase();return-1!==h.indexOf("firefox")?a>=6?(r=5,i=new Array(4),o=a-3):(r=2,i=new Array(2),o=a):-1!==h.indexOf("android")?(r=2,i=new Array(2),o=a):(r=5,o=a,i=new Array(4),a>=6?o=a-3:1===l&&(r=2,i=new Array(2),o=a)),i[0]=r<<3,i[0]|=(15&a)>>>1,i[1]=(15&a)<<7,i[1]|=(15&l)<<3,5===r&&(i[1]|=(15&o)>>>1,i[2]=(1&o)<<7,i[2]|=8,i[3]=0),{audioType:"aac",config:i,sampleRate:n,channelCount:l,objectType:r,codec:"mp4a.40."+r,originalCodec:"mp4a.40."+s}}class Vs{constructor(e){this.buffer=e,this.buflen=e.length,this.bufpos=0,this.bufoff=0,this.iserro=!1}read(e){let t=0,i=0;for(;e;){if(e<0||this.bufpos>=this.buflen)return this.iserro=!0,0;this.iserro=!1,i=this.bufoff+e>8?8-this.bufoff:e,t<<=i,t+=this.buffer[this.bufpos]>>8-this.bufoff-i&255>>8-i,this.bufoff+=i,e-=i,8==this.bufoff&&(this.bufpos++,this.bufoff=0)}return t}look(e){let t=this.bufpos,i=this.bufoff,r=this.read(e);return this.bufpos=t,this.bufoff=i,r}read_golomb(){let e;for(e=0;0==this.read(1)&&!this.iserro;e++);return(1<<e)+this.read(e)-1}}function Hs(e){let t=e.read(5);return 31===t&&(t=e.read(6)+32),t}function Xs(e,t){return t.sampling_index=e.read(4),15==t.sampling_index?e.read(24):_s[t.sampling_index]}const _s=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350,0,0,0],$s=[0,1,2,3,4,5,6,8];class ea{constructor(e){this.data_=e,this.eof_flag_=!1,this.current_syncword_offset_=this.findNextSyncwordOffset(0),this.eof_flag_&&console.error("Could not found ADTS syncword until payload end")}findNextSyncwordOffset(e){let t=e,i=this.data_;for(;;){if(t+7>=i.byteLength)return this.eof_flag_=!0,i.byteLength;if(4095===(i[t+0]<<8|i[t+1])>>>4)return t;t++}}readNextAACFrame(){let e=this.data_,t=null;for(;null==t&&!this.eof_flag_;){let i=this.current_syncword_offset_,r=(8&e[i+1])>>>3,s=(6&e[i+1])>>>1,a=1&e[i+1],o=(192&e[i+2])>>>6,n=(60&e[i+2])>>>2,l=(1&e[i+2])<<2|(192&e[i+3])>>>6,h=(3&e[i+3])<<11|e[i+4]<<3|(224&e[i+5])>>>5;if(e[i+6],i+h>this.data_.byteLength){this.eof_flag_=!0,this.has_last_incomplete_data=!0;break}let A=1===a?7:9,d=h-A;i+=A;let c=this.findNextSyncwordOffset(i+d);if(this.current_syncword_offset_=c,0!==r&&1!==r||0!==s)continue;let u=e.subarray(i,i+d);t={},t.audio_object_type=o+1,t.sampling_freq_index=n,t.sampling_frequency=Ns[n],t.channel_config=l,t.data=u}return t}hasIncompleteData(){return this.has_last_incomplete_data}getIncompleteData(){return this.has_last_incomplete_data?this.data_.subarray(this.current_syncword_offset_):null}}class ta{constructor(e){this.data_=e,this.eof_flag_=!1,this.current_syncword_offset_=this.findNextSyncwordOffset(0),this.eof_flag_&&console.error("Could not found ADTS syncword until payload end")}findNextSyncwordOffset(e){let t=e,i=this.data_;for(;;){if(t+1>=i.byteLength)return this.eof_flag_=!0,i.byteLength;if(695===(i[t+0]<<3|i[t+1]>>>5))return t;t++}}getLATMValue(e){let t=e.readBits(2),i=0;for(let r=0;r<=t;r++)i<<=8,i|=e.readByte();return i}readNextAACFrame(e){let t=this.data_,i=null;for(;null==i&&!this.eof_flag_;){let r=this.current_syncword_offset_,s=(31&t[r+1])<<8|t[r+2];if(r+3+s>=this.data_.byteLength){this.eof_flag_=!0,this.has_last_incomplete_data=!0;break}let a=new Us(t.subarray(r+3,r+3+s)),o=null;if(a.readBool()){if(null==e){console.warn("StreamMuxConfig Missing"),this.current_syncword_offset_=this.findNextSyncwordOffset(r+3+s),a.destroy();continue}o=e}else{let e=a.readBool();if(e&&a.readBool()){console.error("audioMuxVersionA is Not Supported"),a.destroy();break}if(e&&this.getLATMValue(a),!a.readBool()){console.error("allStreamsSameTimeFraming zero is Not Supported"),a.destroy();break}if(0!==a.readBits(6)){console.error("more than 2 numSubFrames Not Supported"),a.destroy();break}if(0!==a.readBits(4)){console.error("more than 2 numProgram Not Supported"),a.destroy();break}if(0!==a.readBits(3)){console.error("more than 2 numLayer Not Supported"),a.destroy();break}let t=e?this.getLATMValue(a):0,i=a.readBits(5);t-=5;let r=a.readBits(4);t-=4;let s=a.readBits(4);t-=4,a.readBits(3),t-=3,t>0&&a.readBits(t);let n=a.readBits(3);if(0!==n){console.error(`frameLengthType = ${n}. Only frameLengthType = 0 Supported`),a.destroy();break}a.readByte();let l=a.readBool();if(l)if(e)this.getLATMValue(a);else{let e=0;for(;;){e<<=8;let t=a.readBool();if(e+=a.readByte(),!t)break}console.log(e)}a.readBool()&&a.readByte(),o={},o.audio_object_type=i,o.sampling_freq_index=r,o.sampling_frequency=Ns[o.sampling_freq_index],o.channel_config=s,o.other_data_present=l}let n=0;for(;;){let e=a.readByte();if(n+=e,255!==e)break}let l=new Uint8Array(n);for(let e=0;e<n;e++)l[e]=a.readByte();i={},i.audio_object_type=o.audio_object_type,i.sampling_freq_index=o.sampling_freq_index,i.sampling_frequency=Ns[o.sampling_freq_index],i.channel_config=o.channel_config,i.other_data_present=o.other_data_present,i.data=l,this.current_syncword_offset_=this.findNextSyncwordOffset(r+3+s)}return i}hasIncompleteData(){return this.has_last_incomplete_data}getIncompleteData(){return this.has_last_incomplete_data?this.data_.subarray(this.current_syncword_offset_):null}}function ia(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<24>>>0)+(e[t+1]<<16)+(e[t+2]<<8)+(e[t+3]||0)}function ra(e){const t=e.byteLength,i=new Uint8Array(4);i[0]=t>>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t;const r=new Uint8Array(t+4);return r.set(i,0),r.set(e,4),r}function sa(){}function aa(e){let t=null;const i=["webgl","experimental-webgl","moz-webgl","webkit-3d"];let r=0;for(;!t&&r<i.length;){const s=i[r];try{let i={preserveDrawingBuffer:!0};t=e.getContext(s,i)}catch(e){console.error(e),t=null}t&&"function"==typeof t.getParameter||(t=null),++r}return t}function oa(e){let t=null;return t=e.getContext("webgl2"),t}function na(){const e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").split(","),t=atob(e[1]),i=e[0].replace("data:","").replace(";base64","");let r=t.length,s=new Uint8Array(r);for(;r--;)s[r]=t.charCodeAt(r);return new File([s],"file",{type:i})}function la(){return(new Date).getTime()}function ha(e,t,i){return Math.max(Math.min(e,Math.max(t,i)),Math.min(t,i))}function Aa(e,t,i){if(e)return"object"==typeof t&&Object.keys(t).forEach((i=>{Aa(e,i,t[i])})),e.style[t]=i,e}function da(e,t){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(!e)return 0;const r=getComputedStyle(e,null).getPropertyValue(t);return i?parseFloat(r):r}function ca(){return performance&&"function"==typeof performance.now?performance.now():Date.now()}function ua(e){let t=0,i=ca();return r=>{if(!va(r))return;t+=r;const s=ca(),a=s-i;a>=1e3&&(e(t/a*1e3),i=s,t=0)}}(()=>{try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof WebAssembly.Module)return new WebAssembly.Instance(e)instanceof WebAssembly.Instance}}catch(e){}})();function pa(){return/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase())}function ga(){return!(pa()||/ipad|android(?!.*mobile)|tablet|kindle|silk/i.test(window.navigator.userAgent.toLowerCase()))}function ma(){const e=window.navigator.userAgent.toLowerCase();return/android/i.test(e)}function ya(){const e=window.navigator.userAgent.toLowerCase();return/firefox/i.test(e)}function Ea(){const e=window.navigator.userAgent.toLowerCase()||"",t={type:"",version:""},i={IE:window.ActiveXObject||"ActiveXObject"in window,Chrome:e.indexOf("chrome")>-1&&e.indexOf("safari")>-1,Firefox:e.indexOf("firefox")>-1,Opera:e.indexOf("opera")>-1,Safari:e.indexOf("safari")>-1&&-1==e.indexOf("chrome"),Edge:e.indexOf("edge")>-1,QQBrowser:/qqbrowser/.test(e),WeixinBrowser:/MicroMessenger/i.test(e)};for(let r in i)if(i[r]){let i="";if("IE"===r){const t=e.match(/(msie\s|trident.*rv:)([\w.]+)/);t&&t.length>2&&(i=e.match(/(msie\s|trident.*rv:)([\w.]+)/)[2])}else if("Chrome"===r){for(let e in navigator.mimeTypes)"application/360softmgrplugin"===navigator.mimeTypes[e].type&&(r="360");const t=e.match(/chrome\/([\d.]+)/);t&&t.length>1&&(i=t[1])}else if("Firefox"===r){const t=e.match(/firefox\/([\d.]+)/);t&&t.length>1&&(i=t[1])}else if("Opera"===r){const t=e.match(/opera\/([\d.]+)/);t&&t.length>1&&(i=t[1])}else if("Safari"===r){const t=e.match(/version\/([\d.]+)/);t&&t.length>1&&(i=t[1])}else if("Edge"===r){const t=e.match(/edge\/([\d.]+)/);t&&t.length>1&&(i=t[1])}else if("QQBrowser"===r){const t=e.match(/qqbrowser\/([\d.]+)/);t&&t.length>1&&(i=t[1])}t.type=r,t.version=parseInt(i)}return t}function Ca(){const e=window.navigator.userAgent;return!e.match(/Chrome/gi)&&!!e.match(/Safari/gi)}function fa(e,t){if(0===arguments.length)return null;var i,r=t||"{y}-{m}-{d} {h}:{i}:{s}";"object"==typeof e?i=e:(10===(""+e).length&&(e=1e3*parseInt(e)),e=+e,i=new Date(e));var s={y:i.getFullYear(),m:i.getMonth()+1,d:i.getDate(),h:i.getHours(),i:i.getMinutes(),s:i.getSeconds(),a:i.getDay()};return r.replace(/{(y|m|d|h|i|s|a)+}/g,((e,t)=>{var i=s[t];return"a"===t?["一","二","三","四","五","六","日"][i-1]:(e.length>0&&i<10&&(i="0"+i),i||0)}))}function Ia(){return"VideoFrame"in window}function wa(e){if("string"!=typeof e)return e;var t=Number(e);return isNaN(t)?e:t}function Sa(){return"xxxxxxxxxxxx4xxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))}function Ma(e,t){let i,r,s=!1;return function a(){for(var o=arguments.length,n=new Array(o),l=0;l<o;l++)n[l]=arguments[l];if(s)return i=n,void(r=this);s=!0,e.apply(this,n),setTimeout((()=>{s=!1,i&&(a.apply(r,i),i=null,r=null)}),t)}}function va(e){return"[object Number]"===Object.prototype.toString.call(e)}function ka(){let e=!1;return"MediaSource"in self&&(self.MediaSource.isTypeSupported(Ai)||self.MediaSource.isTypeSupported(di)||self.MediaSource.isTypeSupported(ci)||self.MediaSource.isTypeSupported(ui)||self.MediaSource.isTypeSupported(pi))&&(e=!0),e}function Ba(){const e=Ea();return"chrome"===e.type.toLowerCase()&&e.version>=107}function Da(){let e=!1;return"MediaStreamTrackGenerator"in window&&(e=!0),e}function ba(){let e=!1;return"MediaStream"in window&&(e=!0),e}function Qa(e,t){let i=window.URL.createObjectURL(t),r=window.document.createElement("a");r.download=e,r.href=i;let s=window.document.createEvent("MouseEvents");s.initEvent("click",!0,!0),r.dispatchEvent(s),setTimeout((()=>{window.URL.revokeObjectURL(i)}),$a()?1e3:0)}function Ra(e){return null==e}function Ta(e){return!0===e||!1===e}function La(e){return!Ra(e)}function Ka(e){let t={left:"",right:"",top:"",bottom:"",opacity:1,backgroundColor:"",image:{src:"",width:"100",height:"60"},text:{content:"",fontSize:"14",color:"#000",width:"",height:""},rect:{color:"green",lineWidth:2,width:"",height:"",fill:"",fillOpacity:.2},line:{x1:"",y1:"",x2:"",y2:"",color:"green",lineWidth:2},polygon:{color:"green",lineWidth:2,list:[],fill:"",fillOpacity:.2},html:""};const i=Object.assign(t.image,e.image||{}),r=Object.assign(t.text,e.text||{}),s=Object.assign(t.rect,e.rect||{}),a=Object.assign(t.line,e.line||{});return t=Object.assign(t,e,{image:i,text:r,rect:s,line:a}),t}function qa(e,t){let i={container:e||"",text:"",opacity:"",angle:"",color:"",fontSize:"",fontFamily:""};return i=Object.assign(i,t),{watermark_parent_node:i.container,watermark_alpha:i.opacity,watermark_angle:i.angle,watermark_fontsize:i.fontSize,watermark_color:i.color,watermark_font:i.fontFamily,watermark_txt:i.text}}function xa(e,t){return new Promise(((i,r)=>{let s=Ka(t);if(!s.image.src&&!s.text.content)return i(e);let a=document.createElement("canvas");a.width=t.width,a.height=t.height;let o=a.getContext("2d"),n=0,l=0;va(s.left)?n=s.left:va(s.right)&&(n=a.width-s.right),va(s.top)?l=s.top:va(s.bottom)&&(l=a.height-s.bottom);const h=new Image;h.src=e,h.onload=()=>{if(o.drawImage(h,0,0),s.image&&s.image.src){const e=new Image;e.src=s.image.src,e.setAttribute("crossOrigin","Anonymous"),e.onload=()=>{n-=s.image.width,o.drawImage(e,n,l,s.image.width,s.image.height),i(a.toDataURL(t.format,t.quality))},e.onerror=e=>{r()}}else s.text&&s.text.content&&(o.font=s.text.fontSize+"px 宋体",o.fillStyle=s.text.color,o.textAlign="right",o.fillText(s.text.content,n,l),i(a.toDataURL(t.format,t.quality)))},h.onerror=e=>{r(e)}}))}function Fa(e){var t;if(e>-1){var i=Math.floor(e/3600),r=Math.floor(e/60)%60,s=e%60;t=i<10?"0"+i+":":i+":",r<10&&(t+="0"),t+=r+":",(s=Math.round(s))<10&&(t+="0"),t+=s.toFixed(0)}return t}function Ua(e,t){let i="";if(e>-1){const r=Math.floor(e/60)%60;let s=e%60;s=Math.round(s),i=r<10?"0"+r+":":r+":",s<10&&(i+="0"),i+=s,Ra(t)||(t<10&&(t="0"+t),i+=":"+t)}return i}function Ga(e){let t="";if(e>-1){const i=Math.floor(e/60/60)%60;let r=Math.floor(e/60)%60,s=e%60;r=Math.round(r),t=i<10?"0"+i+":":i+":",r<10&&(t+="0"),t+=r+":",s<10&&(t+="0"),t+=s}return t}function Oa(e,t){const i=Math.floor(t/60)%60,r=Math.floor(t%60);return new Date(e).setHours(i,r,0,0)}function Ja(e,t){const i=Math.floor(t/60/60)%60,r=Math.floor(t/60)%60,s=t%60;return new Date(e).setHours(i,r,s,0)}function Ya(e){return(""+e).length}function Na(e){return e&&0===Object.keys(e).length}function Pa(e){return!Na(e)}function ja(e){return"string"==typeof e}const za=()=>{const e=window.navigator.userAgent;return/MicroMessenger/i.test(e)},Wa=()=>{const e=window.navigator.userAgent;return/Chrome/i.test(e)};function Za(e){const t=e||window.event;return t.target||t.srcElement}function Va(){return ya()&&function(){const e=navigator.userAgent.toLowerCase();return/macintosh|mac os x/i.test(e)}()}function Ha(e){return"function"==typeof e}function Xa(e){if(pa()){let t=0,i=0;if(1===e.touches.length){let r=e.touches[0];t=r.clientX,i=r.clientY}return{posX:t,posY:i}}let t=0,i=0;const r=e||window.event;return r.pageX||r.pageY?(t=r.pageX,i=r.pageY):(r.clientX||r.clientY)&&(t=e.clientX+document.documentElement.scrollLeft+document.body.scrollLeft,i=e.clientY+document.documentElement.scrollTop+document.body.scrollTop),{posX:t,posY:i}}function _a(){let e=document.createElement("video"),t=e.canPlayType("application/vnd.apple.mpegurl");return e=null,t}function $a(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream}function eo(e){let t=po(e.hasAudio)&&(e.useMSE||e.useWCS&&!e.useOffscreen)&&po(e.demuxUseWorker);return!!(po(t)&&e.useMSE&&e.mseDecodeAudio&&po(e.demuxUseWorker))||t}function to(e){const t=e.toString().trim().match(/^function\s*\w*\s*\([\w\s,]*\)\s*{([\w\W]*?)}$/)[1];const i=new Blob([t],{type:"application/javascript"});return URL.createObjectURL(i)}function io(e){e.close()}function ro(){return"https:"===window.location.protocol||"localhost"===window.location.hostname}function so(e){const t=Object.prototype.toString;return function(e){switch(t.call(e)){case"[object Error]":case"[object Exception]":case"[object DOMException]":return!0;default:try{return e instanceof Error}catch(e){return!1}}}(e)?e.message:null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}function ao(e,t){t&&(e=e.filter((e=>e.type&&e.type===t)));let i=e[0],r=null,s=1;if(e.length>0){let t=e[1];t&&t.ts-i.ts>1e5&&(i=t,s=2)}if(i)for(let a=s;a<e.length;a++){let s=e[a];if(t&&s.type&&s.type!==t&&(s=null),s){if(s.ts-i.ts>=1e3){e[a-1].ts-i.ts<1e3&&(r=a+1)}}}return r}function oo(e){for(var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/"),i=window.atob(t),r=new Uint8Array(i.length),s=0;s<i.length;++s)r[s]=i.charCodeAt(s);return r}function no(e){const t=/(msie|trident)/i.test(navigator.userAgent),i=document.createElement("a");let r=e;return t&&(i.setAttribute("href",r),r=i.href),i.setAttribute("href",r),{origin:i.origin,href:i.href,protocol:i.protocol?i.protocol.replace(/:$/,""):"",host:i.host,search:i.search?i.search.replace(/^\?/,""):"",hash:i.hash?i.hash.replace(/^#/,""):"",hostname:i.hostname,port:i.port,pathname:"/"===i.pathname.charAt(0)?i.pathname:"/"+i.pathname}}function lo(e){let t="";if("object"==typeof e)try{t=JSON.stringify(e),t=JSON.parse(t)}catch(i){t=e}else t=e;return t}function ho(){return lo(ce)}function Ao(){return lo(ue)}function co(e){return e[0]>>4===Ir&&e[1]===fr}function uo(e){return!0===e||"true"===e}function po(e){return!0!==e&&"true"!==e}function go(e){return e.replace(/-([a-z])/g,(function(e,t){return t.toUpperCase()}))}function mo(){return/iphone/i.test(navigator.userAgent)}function yo(){try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}}function Eo(e){return e.trim().match(/^function\s*\w*\s*\([\w\s,]*\)\s*{([\w\W]*?)}$/)[1]}function Co(){let e=!1;return"requestVideoFrameCallback"in HTMLVideoElement.prototype&&(e=!0),e}function fo(){let e=!1;return"PressureObserver"in window&&(e=!0),e}function Io(){return window.MediaSource&&window.MediaSource.isTypeSupported('video/mp4; codecs="hev1.1.6.L123.b0"')}function wo(){return window.MediaSource&&window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.64002A"')}function So(){const e=Ea();return"chrome"===e.type.toLowerCase()&&e.version>=107&&("https:"===location.protocol||"localhost"===location.hostname)}function Mo(){return"VideoEncoder"in window}class vo{constructor(e){this.destroys=[],this.proxy=this.proxy.bind(this),this.master=e}proxy(e,t,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(!e)return;if(Array.isArray(t))return t.map((t=>this.proxy(e,t,i,r)));e.addEventListener(t,i,r);const s=()=>{Ha(e.removeEventListener)&&e.removeEventListener(t,i,r)};return this.destroys.push(s),s}destroy(){this.master.debug&&this.master.debug.log("Events","destroy"),this.destroys.forEach((e=>e())),this.destroys=[]}}class ko{on(e,t,i){const r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:i}),this}once(e,t,i){const r=this;function s(){r.off(e,s);for(var a=arguments.length,o=new Array(a),n=0;n<a;n++)o[n]=arguments[n];t.apply(i,o)}return s._=t,this.on(e,s,i)}emit(e){const t=((this.e||(this.e={}))[e]||[]).slice();for(var i=arguments.length,r=new Array(i>1?i-1:0),s=1;s<i;s++)r[s-1]=arguments[s];for(let e=0;e<t.length;e+=1)t[e].fn.apply(t[e].ctx,r);return this}off(e,t){const i=this.e||(this.e={});if(!e)return Object.keys(i).forEach((e=>{delete i[e]})),void delete this.e;const r=i[e],s=[];if(r&&t)for(let e=0,i=r.length;e<i;e+=1)r[e].fn!==t&&r[e].fn._!==t&&s.push(r[e]);return s.length?i[e]=s:delete i[e],this}}var Bo=1e-6,Do="undefined"!=typeof Float32Array?Float32Array:Array;function bo(){var e=new Do(16);return Do!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function Qo(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var Ro,To=function(e,t,i,r,s,a,o){var n=1/(t-i),l=1/(r-s),h=1/(a-o);return e[0]=-2*n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*h,e[11]=0,e[12]=(t+i)*n,e[13]=(s+r)*l,e[14]=(o+a)*h,e[15]=1,e};function Lo(e,t,i){var r=new Do(3);return r[0]=e,r[1]=t,r[2]=i,r}Ro=new Do(3),Do!=Float32Array&&(Ro[0]=0,Ro[1]=0,Ro[2]=0);class Ko{constructor(e,t){this.gl=e,t&&this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1);const i=this._initShaderProgram();this._programInfo={program:i,attribLocations:{vertexPosition:e.getAttribLocation(i,"aVertexPosition"),texturePosition:e.getAttribLocation(i,"aTexturePosition")},uniformLocations:{projectionMatrix:e.getUniformLocation(i,"uProjectionMatrix"),modelMatrix:e.getUniformLocation(i,"uModelMatrix"),viewMatrix:e.getUniformLocation(i,"uViewMatrix"),rgbatexture:e.getUniformLocation(i,"rgbaTexture"),ytexture:e.getUniformLocation(i,"yTexture"),utexture:e.getUniformLocation(i,"uTexture"),vtexture:e.getUniformLocation(i,"vTexture"),isyuv:e.getUniformLocation(i,"isyuv")}},this._buffers=this._initBuffers(),this._rgbatexture=this._createTexture(),this._ytexture=this._createTexture(),this._utexture=this._createTexture(),this._vtexture=this._createTexture()}destroy(){this.gl.deleteProgram(this._programInfo.program),this.gl.deleteBuffer(this._buffers.position),this.gl.deleteBuffer(this._buffers.texPosition),this.gl.deleteBuffer(this._buffers.indices),this.gl.deleteTexture(this._rgbatexture),this.gl.deleteTexture(this._ytexture),this.gl.deleteTexture(this._utexture),this.gl.deleteTexture(this._vtexture),this._programInfo=null,this._buffers=null,this._rgbatexture=null,this._ytexture=null,this._utexture=null,this._vtexture=null}_initShaderProgram(){const e=this._loadShader(this.gl.VERTEX_SHADER,"\n attribute vec4 aVertexPosition;\n attribute vec2 aTexturePosition;\n varying lowp vec2 vTexturePosition;\n void main(void) {\n gl_Position = aVertexPosition;\n vTexturePosition = aTexturePosition;\n }\n "),t=this._loadShader(this.gl.FRAGMENT_SHADER,"\n precision highp float;\n varying highp vec2 vTexturePosition;\n uniform int isyuv;\n uniform sampler2D rgbaTexture;\n uniform sampler2D yTexture;\n uniform sampler2D uTexture;\n uniform sampler2D vTexture;\n\n const mat4 YUV2RGB = mat4( 1.1643828125, 0, 1.59602734375, -.87078515625,\n 1.1643828125, -.39176171875, -.81296875, .52959375,\n 1.1643828125, 2.017234375, 0, -1.081390625,\n 0, 0, 0, 1);\n\n\n void main(void) {\n\n if (isyuv>0) {\n\n highp float y = texture2D(yTexture, vTexturePosition).r;\n highp float u = texture2D(uTexture, vTexturePosition).r;\n highp float v = texture2D(vTexture, vTexturePosition).r;\n gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;\n\n } else {\n gl_FragColor = texture2D(rgbaTexture, vTexturePosition);\n }\n }\n "),i=this.gl.createProgram();return this.gl.attachShader(i,e),this.gl.attachShader(i,t),this.gl.linkProgram(i),this.gl.getProgramParameter(i,this.gl.LINK_STATUS)?i:(console.log("Unable to initialize the shader program: "+this.gl.getProgramInfoLog(i)),null)}_loadShader(e,t){const i=this.gl,r=i.createShader(e);return i.shaderSource(r,t),i.compileShader(r),i.getShaderParameter(r,i.COMPILE_STATUS)?r:(console.log("An error occurred compiling the shaders: "+i.getShaderInfoLog(r)),i.deleteShader(r),null)}_initBuffers(){const e=this.gl,t=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,t);const i=[-1,-1,1,-1,1,1,-1,1];e.bufferData(e.ARRAY_BUFFER,new Float32Array(i),e.STATIC_DRAW);var r=[];r=r.concat([0,1],[1,1],[1,0],[0,0]);const s=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,new Float32Array(r),e.STATIC_DRAW);const a=e.createBuffer();e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,a);return e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),e.STATIC_DRAW),{positions:i,position:t,texPosition:s,indices:a}}_createTexture(){let e=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),e}_drawScene(e,t,i){this.gl.viewport(0,0,e,t),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this._buffers.position),this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array(this._buffers.positions),this.gl.STATIC_DRAW),this.gl.vertexAttribPointer(this._programInfo.attribLocations.vertexPosition,2,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(this._programInfo.attribLocations.vertexPosition),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this._buffers.texPosition),this.gl.vertexAttribPointer(this._programInfo.attribLocations.texturePosition,2,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(this._programInfo.attribLocations.texturePosition),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this._buffers.indices);i?(this.gl.activeTexture(this.gl.TEXTURE0+3),this.gl.bindTexture(this.gl.TEXTURE_2D,this._ytexture),this.gl.activeTexture(this.gl.TEXTURE0+4),this.gl.bindTexture(this.gl.TEXTURE_2D,this._utexture),this.gl.activeTexture(this.gl.TEXTURE0+5),this.gl.bindTexture(this.gl.TEXTURE_2D,this._vtexture)):(this.gl.activeTexture(this.gl.TEXTURE0+2),this.gl.bindTexture(this.gl.TEXTURE_2D,this._rgbatexture)),this.gl.useProgram(this._programInfo.program),this.gl.uniform1i(this._programInfo.uniformLocations.rgbatexture,2),this.gl.uniform1i(this._programInfo.uniformLocations.ytexture,3),this.gl.uniform1i(this._programInfo.uniformLocations.utexture,4),this.gl.uniform1i(this._programInfo.uniformLocations.vtexture,5),this.gl.uniform1i(this._programInfo.uniformLocations.isyuv,i?1:0),this.gl.drawElements(this.gl.TRIANGLES,6,this.gl.UNSIGNED_SHORT,0)}_calRect(e,t,i,r,s,a){let o=2*e/s-1,n=2*(a-t-r)/a-1,l=2*(e+i)/s-1,h=2*(a-t)/a-1;return[o,n,l,n,l,h,o,h]}_clear(){this.gl.clearColor(0,0,0,1),this.gl.clearDepth(1),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT)}render(e,t,i,r,s){const a=this.gl;this._clear(),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this._ytexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e,t,0,a.LUMINANCE,a.UNSIGNED_BYTE,i),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this._utexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,t/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,r),a.activeTexture(a.TEXTURE2),a.bindTexture(a.TEXTURE_2D,this._vtexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,t/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,s),this._buffers.positions=[-1,-1,1,-1,1,1,-1,1],this._drawScene(e,t,!0)}renderYUV(e,t,i){let r=i.slice(0,e*t),s=i.slice(e*t,e*t*5/4),a=i.slice(e*t*5/4,e*t*3/2);const o=this.gl;this._clear(),o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this._ytexture),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e,t,0,o.LUMINANCE,o.UNSIGNED_BYTE,r),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,this._utexture),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,t/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,s),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,this._vtexture),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,t/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,a),this._buffers.positions=[-1,-1,1,-1,1,1,-1,1],this._drawScene(e,t,!0)}drawDom(e,t,i,r,s){const a=this.gl;a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this._rgbatexture),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,s),this._buffers.positions=this._calRect(i,r,s.width,s.height,e,t),this._drawScene(e,t,!1)}}class qo{constructor(e){this.gpu=e,this.pipeline=null,this.matrixGroupInfo=null,this.depthTexture=null,this.textureGroupInfo=null,this.hasInited=!1,this.buffers=this._initBuffer(),this._initPipeline().then((e=>{this.pipeline=e,this.matrixGroupInfo=this._initMatrixGroupInfo(),this.hasInited=!0}))}destroy(){this.gpu&&(this.gpu.device.destroy(),this.gpu=null),this.hasInited=!1,this.pipeline=null,this.matrixGroupInfo=null,this.depthTexture=null,this.textureGroupInfo=null}_initBuffer(){const e=this.gpu.device,t=new Float32Array([-1,-1,-1,1,-1,-1,1,1,-1,-1,1,-1]),i=e.createBuffer({size:t.byteLength,usage:window.GPUBufferUsage.VERTEX|window.GPUBufferUsage.COPY_DST});e.queue.writeBuffer(i,0,t);const r=new Float32Array([0,1,1,1,1,0,0,0]),s=e.createBuffer({size:r.byteLength,usage:window.GPUBufferUsage.VERTEX|window.GPUBufferUsage.COPY_DST});e.queue.writeBuffer(s,0,r);const a=new Uint16Array([0,1,2,0,2,3]),o=e.createBuffer({size:a.byteLength,usage:window.GPUBufferUsage.INDEX|window.GPUBufferUsage.COPY_DST});return e.queue.writeBuffer(o,0,a),{positionBuffer:i,texpositionBuffer:s,indexBuffer:o}}_initPipeline(){return new Promise(((e,t)=>{const i=this.gpu.device,r=this.gpu.format,s={layout:"auto",vertex:{module:i.createShaderModule({code:"\n\n @binding(0) @group(0) var<uniform> uModelMatrix : mat4x4<f32>;\n @binding(1) @group(0) var<uniform> uViewMatrix : mat4x4<f32>;\n @binding(2) @group(0) var<uniform> uProjectionMatrix : mat4x4<f32>;\n\n struct VertexOutput {\n @builtin(position) Position : vec4<f32>,\n @location(0) vTexturePosition : vec2<f32>,\n }\n\n @vertex\n fn main(\n @location(0) aVertexPosition : vec4<f32>,\n @location(1) aTexturePosition : vec2<f32>\n ) -> VertexOutput {\n var output : VertexOutput;\n var tmppos : vec4<f32> = uProjectionMatrix * uViewMatrix * uModelMatrix * aVertexPosition;\n output.Position = vec4<f32>(tmppos.x, tmppos.y, (tmppos.z+1.)/2., tmppos.w); // webgl z [-1, 1], webgpu z [0, 1], 这里z做下调整 z-webgpu = (z-webgl+1)/2\n output.vTexturePosition = aTexturePosition;\n return output;\n }\n\n "}),entryPoint:"main",buffers:[{arrayStride:12,attributes:[{shaderLocation:0,offset:0,format:"float32x3"}]},{arrayStride:8,attributes:[{shaderLocation:1,offset:0,format:"float32x2"}]}]},primitive:{topology:"triangle-list"},fragment:{module:i.createShaderModule({code:"\n @group(1) @binding(0) var mySampler: sampler;\n @group(1) @binding(1) var yTexture: texture_2d<f32>;\n @group(1) @binding(2) var uTexture: texture_2d<f32>;\n @group(1) @binding(3) var vTexture: texture_2d<f32>;\n\n const YUV2RGB : mat4x4<f32> = mat4x4<f32>( 1.1643828125, 0, 1.59602734375, -.87078515625,\n 1.1643828125, -.39176171875, -.81296875, .52959375,\n 1.1643828125, 2.017234375, 0, -1.081390625,\n 0, 0, 0, 1);\n\n @fragment\n fn main(\n @location(0) vTexturePosition: vec2<f32>\n ) -> @location(0) vec4<f32> {\n\n var y : f32= textureSample(yTexture, mySampler, vTexturePosition).r;\n var u : f32 = textureSample(uTexture, mySampler, vTexturePosition).r;\n var v : f32 = textureSample(vTexture, mySampler, vTexturePosition).r;\n\n return vec4<f32>(y, u, v, 1.0)*YUV2RGB;\n }\n\n "}),entryPoint:"main",targets:[{format:r}]},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}};i.createRenderPipelineAsync(s).then((t=>{e(t)})).catch((e=>{t(e)}))}))}_initMatrixGroupInfo(){const e=this.gpu.device,t=this.pipeline,i=bo();To(i,-1,1,-1,1,.1,100);const r=bo();Qo(r);const s=bo();!function(e,t,i,r){var s,a,o,n,l,h,A,d,c,u,p=t[0],g=t[1],m=t[2],y=r[0],E=r[1],C=r[2],f=i[0],I=i[1],w=i[2];Math.abs(p-f)<Bo&&Math.abs(g-I)<Bo&&Math.abs(m-w)<Bo?Qo(e):(A=p-f,d=g-I,c=m-w,s=E*(c*=u=1/Math.hypot(A,d,c))-C*(d*=u),a=C*(A*=u)-y*c,o=y*d-E*A,(u=Math.hypot(s,a,o))?(s*=u=1/u,a*=u,o*=u):(s=0,a=0,o=0),n=d*o-c*a,l=c*s-A*o,h=A*a-d*s,(u=Math.hypot(n,l,h))?(n*=u=1/u,l*=u,h*=u):(n=0,l=0,h=0),e[0]=s,e[1]=n,e[2]=A,e[3]=0,e[4]=a,e[5]=l,e[6]=d,e[7]=0,e[8]=o,e[9]=h,e[10]=c,e[11]=0,e[12]=-(s*p+a*g+o*m),e[13]=-(n*p+l*g+h*m),e[14]=-(A*p+d*g+c*m),e[15]=1)}(s,Lo(0,0,0),Lo(0,0,-1),Lo(0,1,0));const a=e.createBuffer({size:64,usage:window.GPUBufferUsage.UNIFORM|window.GPUBufferUsage.COPY_DST});e.queue.writeBuffer(a,0,r);const o=e.createBuffer({size:64,usage:window.GPUBufferUsage.UNIFORM|window.GPUBufferUsage.COPY_DST});e.queue.writeBuffer(o,0,s);const n=e.createBuffer({size:64,usage:window.GPUBufferUsage.UNIFORM|window.GPUBufferUsage.COPY_DST});e.queue.writeBuffer(n,0,i);return{modelMatrixBuffer:a,viewMatrixBuffer:o,projectMatrixBuffer:n,group:e.createBindGroup({label:"group0",layout:t.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:a}},{binding:1,resource:{buffer:o}},{binding:2,resource:{buffer:n}}]})}}_initTextureGroupInfo(e,t){const i=this.gpu.device,r=this.pipeline,s=i.createTexture({size:[e,t],format:"r8unorm",usage:window.GPUTextureUsage.TEXTURE_BINDING|window.GPUTextureUsage.COPY_DST|window.GPUTextureUsage.RENDER_ATTACHMENT}),a=i.createTexture({size:[e/2,t/2],format:"r8unorm",usage:window.GPUTextureUsage.TEXTURE_BINDING|window.GPUTextureUsage.COPY_DST|window.GPUTextureUsage.RENDER_ATTACHMENT}),o=i.createTexture({size:[e/2,t/2],format:"r8unorm",usage:window.GPUTextureUsage.TEXTURE_BINDING|window.GPUTextureUsage.COPY_DST|window.GPUTextureUsage.RENDER_ATTACHMENT}),n=i.createSampler({magFilter:"linear",minFilter:"linear"}),l=i.createBindGroup({label:"group1",layout:r.getBindGroupLayout(1),entries:[{binding:0,resource:n},{binding:1,resource:s.createView()},{binding:2,resource:a.createView()},{binding:3,resource:o.createView()}]});return{yTexture:s,uTexture:a,vTexture:o,group:l}}_drawScene(){const e=this.gpu.device,t=this.gpu.context,i=e.createCommandEncoder(),r={colorAttachments:[{view:t.getCurrentTexture().createView(),clearValue:{r:0,g:0,b:0,a:0},loadOp:"clear",storeOp:"store"}],depthStencilAttachment:{view:this.depthTexture.createView(),depthClearValue:1,depthLoadOp:"clear",depthStoreOp:"store"}},s=i.beginRenderPass(r);s.setPipeline(this.pipeline),s.setBindGroup(0,this.matrixGroupInfo.group),s.setBindGroup(1,this.textureGroupInfo.group),s.setVertexBuffer(0,this.buffers.positionBuffer),s.setVertexBuffer(1,this.buffers.texpositionBuffer),s.setIndexBuffer(this.buffers.indexBuffer,"uint16"),s.drawIndexed(6),s.end(),e.queue.submit([i.finish()])}renderYUV(e,t,i){if(!this.hasInited)return;let r=i.slice(0,e*t),s=i.slice(e*t,e*t*5/4),a=i.slice(e*t*5/4,e*t*3/2);const o=this.gpu.device;this.depthTexture||(this.depthTexture=this.gpu.device.createTexture({size:[e,t],format:"depth24plus",usage:window.GPUTextureUsage.RENDER_ATTACHMENT})),this.textureGroupInfo||(this.textureGroupInfo=this._initTextureGroupInfo(e,t)),o.queue.writeTexture({texture:this.textureGroupInfo.yTexture},r,{bytesPerRow:e,rowsPerImage:t},[e,t]),o.queue.writeTexture({texture:this.textureGroupInfo.uTexture},s,{bytesPerRow:e/2,rowsPerImage:t/2},[e/2,t/2]),o.queue.writeTexture({texture:this.textureGroupInfo.vTexture},a,{bytesPerRow:e/2,rowsPerImage:t/2},[e/2,t/2]),this._drawScene()}clear(){}}class xo{constructor(e){this.player=e,this.TAG_NAME="SingleWatermark",this.configList=[],this.shadowRoot=null,this.shadowRootRealDom=null,this.shadowRootInnerDom=null,this.scale=1,this.isDynamic=!1,this._initDom(),this.player.debug.log(this.TAG_NAME,"int")}destroy(){this.configList=[],this.shadowRootInnerDom=null,this.isDynamic=!1,this.scale=1,this.shadowRoot&&(this.player.$container.removeChild(this.shadowRootRealDom),this.shadowRoot=null,this.shadowRootRealDom=null),this.player.debug.log(this.TAG_NAME,"destroy")}resize(){this.player.debug.log(this.TAG_NAME,"resize()"),"default"===this.player._opt.aspectRatio||pa()?this.player.getRenderType()===ee?this._resizeDomForCanvas():this.player.getRenderType()===te&&this._resizeDomForVideo():this._resizeDomRatio()}_initDom(){const e=this.player.$container;let t=null;const i=document.createElement("div");i.setAttribute("style","pointer-events: none !important;display: block !important;"),t="function"==typeof i.attachShadow?i.attachShadow({mode:"open"}):i.shadowRoot?i.shadowRoot:i;const r=document.createElement("div");r.setAttribute("style","position: absolute; top: 0; left: 0; width: 0; height: 0;display: none;"),t.appendChild(r);const s=e.children,a=Math.floor(Math.random()*(s.length-1))+1;s[a]?e.insertBefore(i,s[a]):e.appendChild(i),this.shadowRootInnerDom=r,this.shadowRootRealDom=i,this.shadowRoot=t}update(e){this._removeDom();let t=[];Array.isArray(e)?t=e:Pa(e)&&t.push(e);let i=t.map((e=>Ka(e)));this.configList=i,this._updateDom()}_resizeDomForVideo(){const e=this.player.width,t=this.player.height,i=this.player.getVideoInfo();if(!(i&&i.height>0&&i.width>0))return;let r=i.width,s=i.height;const a=this.player._opt;let o=t,n=e;if(a.hasControl&&!a.controlAutoHide){const e=(a.playType,0);pa()&&this.player.fullscreen&&a.useWebFullScreen?n-=e:o-=e}const l=a.rotate;let h=(n-r)/2,A=(o-s)/2;270!==l&&90!==l||(r=i.height,s=i.width);const d=n/r,c=o/s;let u=d>c?c:d;a.isResize||d!==c&&(u=d+","+c),a.isFullResize&&(u=d>c?d:c);let p="scale("+u+")";"none"===a.mirrorRotate&&l&&(p+=" rotate("+l+"deg)"),"level"===a.mirrorRotate?p+=" rotateY(180deg)":"vertical"===a.mirrorRotate&&(p+=" rotateX(180deg)"),this.scale=-1!==(""+u).indexOf(",")?d:u,this.shadowRootInnerDom.style.transform=p,this.shadowRootInnerDom.style.left=h+"px",this.shadowRootInnerDom.style.top=A+"px",this.shadowRootInnerDom.style.width=i.width+"px",this.shadowRootInnerDom.style.height=i.height+"px",this.shadowRootInnerDom.style.display="block"}_resizeDomForCanvas(){const e=this.player.getVideoInfo();if(!(e&&e.height>0&&e.width>0))return;const t=this.player._opt;let i=this.player.width,r=this.player.height;if(t.hasControl&&!t.controlAutoHide){const e=(t.playType,0);pa()&&this.player.fullscreen&&t.useWebFullScreen?i-=e:r-=e}let s=e.width,a=e.height;const o=t.rotate;let n=(i-s)/2,l=(r-a)/2;270!==o&&90!==o||(s=e.height,a=e.width);const h=i/s,A=r/a;let d=h>A?A:h;t.isResize||h!==A&&(d=h+","+A),t.isFullResize&&(d=h>A?h:A);let c="scale("+d+")";"none"===t.mirrorRotate&&o&&(c+=" rotate("+o+"deg)"),"level"===t.mirrorRotate?c+=" rotateY(180deg)":"vertical"===t.mirrorRotate&&(c+=" rotateX(180deg)"),this.shadowRootInnerDom.style.height=e.height+"px",this.shadowRootInnerDom.style.width=e.width+"px",this.shadowRootInnerDom.style.padding="0",this.shadowRootInnerDom.style.transform=c,this.shadowRootInnerDom.style.left=n+"px",this.shadowRootInnerDom.style.top=l+"px",this.shadowRootInnerDom.style.display="block"}_resizeDomRatio(){const e=this.player.getVideoInfo();if(!(e&&e.height>0&&e.width>0))return;const t=this.player._opt.aspectRatio.split(":").map(Number);let i=this.player.width,r=this.player.height;const s=this.player._opt;let a=0;s.hasControl&&!s.controlAutoHide&&(s.playType,a=0,r-=a);const o=e.width/e.height,n=t[0]/t[1];if(o>n){const t=n*e.height/e.width;this.shadowRootInnerDom.style.width=100*t+"%",this.shadowRootInnerDom.style.height=`calc(100% - ${a}px)`,this.shadowRootInnerDom.style.padding=`0 ${(i-i*t)/2}px`}else{const t=e.width/n/e.height;this.shadowRootInnerDom.style.width="100%",this.shadowRootInnerDom.style.height=`calc(${100*t}% - ${a}px)`,this.shadowRootInnerDom.style.padding=(r-r*t)/2+"px 0"}this.shadowRootInnerDom.style.display="block"}_updateDom(){this.shadowRoot&&this.configList.forEach((e=>{const t=document.createElement("div");let i=null;if(e.image&&e.image.src?(i=document.createElement("img"),i.style.height="100%",i.style.width="100%",i.style.objectFit="contain",i.src=e.image.src):e.text&&e.text.content?i=document.createTextNode(e.text.content):(e.rect&&e.rect.color&&e.rect.width||e.html||e.line&&e.line.x1&&e.line.y1&&e.line.x2&&e.line.y2||e.polygon&&e.polygon.list&&e.polygon.list.length>=3)&&(i=document.createElement("div")),i){if(t.appendChild(i),t.style.visibility="",t.style.position="absolute",t.style.display="block",t.style["-ms-user-select"]="none",t.style["-moz-user-select"]="none",t.style["-webkit-user-select"]="none",t.style["-o-user-select"]="none",t.style["user-select"]="none",t.style["-webkit-touch-callout"]="none",t.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",t.style["-webkit-text-size-adjust"]="none",t.style["-webkit-touch-callout"]="none",t.style.opacity=e.opacity,va(e.left)&&(t.style.left=e.left+"px"),va(e.right)&&(t.style.right=e.right+"px"),va(e.top)&&(t.style.top=e.top+"px"),va(e.bottom)&&(t.style.bottom=e.bottom+"px"),e.backgroundColor&&(t.style.backgroundColor=e.backgroundColor),t.style.overflow="hidden",t.style.zIndex="9999999",e.image&&e.image.src)t.style.width=e.image.width+"px",t.style.height=e.image.height+"px";else if(e.text&&e.text.content)t.style.fontSize=e.text.fontSize+"px",t.style.color=e.text.color,e.text.width&&(t.style.width=e.text.width+"px"),e.text.height&&(t.style.height=e.text.height+"px");else if(e.rect&&e.rect.color&&e.rect.width){if(t.style.width=e.rect.width+"px",t.style.height=e.rect.height+"px",t.style.borderWidth=e.rect.lineWidth+"px",t.style.borderStyle="solid",t.style.borderColor=e.rect.color,e.rect.fill){const i=document.createElement("div");i.style.position="absolute",i.style.width="100%",i.style.height="100%",i.style.backgroundColor=e.rect.fill,e.rect.fillOpacity&&(i.style.opacity=e.rect.fillOpacity),t.appendChild(i)}}else if(e.html)t.style.width="100%",t.style.height="100%",t.innerHTML=e.html;else if(e.line&&e.line.x1&&e.line.y1&&e.line.x2&&e.line.y2)this.settingLine(t,e.line);else if(e.polygon&&e.polygon.list&&e.polygon.list.length>=3){t.style.width="100%",t.style.height="100%";let i=e.polygon.list;const r=e.polygon.color,s=e.polygon.lineWidth;if(i=i.sort(((e,t)=>(e.index||0)-(t.index||0))),e.polygon.fill){const r=document.createElement("div");r.style.position="absolute",r.style.width="100%",r.style.height="100%";const s="polygon("+i.map((e=>`${e.x}px ${e.y}px`)).join(", ")+")";r.style.clipPath=s,r.style.backgroundColor=e.polygon.fill,e.polygon.fillOpacity&&(r.style.opacity=e.polygon.fillOpacity),t.appendChild(r)}i.forEach(((e,a)=>{const o=document.createElement("div");if(a===i.length-1){const a=i[0],n={x1:e.x,y1:e.y,x2:a.x,y2:a.y,color:r,lineWidth:s};return this.settingLine(o,n),void t.appendChild(o)}const n=i[a+1],l={x1:e.x,y1:e.y,x2:n.x,y2:n.y,color:r,lineWidth:s};this.settingLine(o,l),t.appendChild(o)}))}this.isDynamic&&(this.shadowRootDynamicDom=t),this.shadowRootInnerDom.appendChild(t)}}))}settingLine(e,t){const i=t.x1,r=t.y1,s=t.x2,a=t.y2;var o=Math.sqrt((i-s)**2+(r-a)**2),n=180*Math.atan2(a-r,s-i)/Math.PI;e.style.backgroundColor=t.color,e.style.width=o+"px",e.style.height=t.lineWidth+"px",e.style.position="absolute",e.style.top=r+"px",e.style.left=i+"px",e.style.transform="rotate("+n+"deg)",e.style.transformOrigin="0 0"}remove(){this._removeDom()}_removeDom(){this.shadowRootInnerDom&&(this.shadowRootInnerDom.innerHTML="")}}class Fo extends ko{constructor(){super(),this.videoInfo={width:null,height:null,encType:null,encTypeCode:null},this.init=!1,this.prevAiFaceDetectTime=null,this.prevAiObjectDetectTime=null,this.prevOcclusionDetectTime=null,this.contentWatermark=null,this.aiContentWatermark=null,this.tempContentList=[],this.tempAiContentList=[],this.streamFps=0}destroy(){this.resetInit(),this.contentWatermark&&(this.contentWatermark.destroy(),this.contentWatermark=null),this.tempContentList=[],this.aiContentWatermark&&(this.aiContentWatermark.destroy(),this.aiContentWatermark=null),this.tempAiContentList=[],this.prevAiFaceDetectTime=null,this.prevAiObjectDetectTime=null,this.streamFps=0,this.off()}resetInit(){this.videoInfo={width:null,height:null,encType:null,encTypeCode:null},this.init=!1}getHasInit(){return this.init}updateVideoInfo(e){La(e.encTypeCode)&&(this.videoInfo.encType=bt[e.encTypeCode],this.videoInfo.encTypeCode=e.encTypeCode),La(e.encType)&&(this.videoInfo.encType=e.encType),La(e.width)&&(this.videoInfo.width=e.width),La(e.height)&&(this.videoInfo.height=e.height),La(this.videoInfo.encType)&&La(this.videoInfo.height)&&La(this.videoInfo.width)&&!this.init&&(this.player.emit(yt.videoInfo,this.videoInfo),this.init=!0)}getVideoInfo(){return this.videoInfo}clearView(){this.tempContentList=[],this.tempAiContentList=[]}resize(){if(this.player.debug.log("CommonVideo","resize()"),"default"===this.player._opt.aspectRatio||pa()?this._resize():this._resizeRatio(),this.contentWatermark&&this.contentWatermark.resize(),this.aiContentWatermark&&this.aiContentWatermark.resize(),this.player.singleWatermark&&this.player.singleWatermark.resize(),this.player.ghostWatermark&&this.player.ghostWatermark.resize(),this.player.dynamicWatermark&&this.player.dynamicWatermark.resize(),this.player.zoom&&this.player.zooming){const e=this._getStyleScale();this.player.zoom.updatePrevVideoElementStyleScale(e),this.player.zoom.updateVideoElementScale()}}_resizeRatio(){this.player.debug.log("CommonVideo","_resizeRatio()");const e=this.player._opt.aspectRatio.split(":").map(Number);let t=this.player.width,i=this.player.height;const r=this.player._opt;let s=0;r.hasControl&&!r.controlAutoHide&&(r.playType,s=0,i-=s);const a=this.videoInfo,o=a.width/a.height,n=e[0]/e[1];if(this.getType()===ee&&(this.$videoElement.style.left="0",this.$videoElement.style.top="0",this.$videoElement.style.transform="none"),this.getType()===te&&this.player._opt.videoRenderSupportScale&&(this.$videoElement.style.objectFit="fill"),o>n){const e=n*a.height/a.width;this.$videoElement.style.width=100*e+"%",this.$videoElement.style.height=`calc(100% - ${s}px)`,this.$videoElement.style.padding=`0 ${(t-t*e)/2}px`}else{const e=a.width/n/a.height;this.$videoElement.style.width="100%",this.$videoElement.style.height=`calc(${100*e}% - ${s}px)`,this.$videoElement.style.padding=(i-i*e)/2+"px 0"}}play(){}pause(){}setRate(e){}getType(){return""}getCanvasType(){return""}getCurrentTime(){return 0}getStreamFps(){return this.streamFps}isPlaying(){return!0}getPlaybackQuality(){return null}setStreamFps(e){this.player.debug.log("CommonVideo","setStreamFps",e),this.streamFps=e}addContentToCanvas(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.tempContentList=e}addAiContentToCanvas(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.tempAiContentList=e}doAddContentToWatermark(){if(this.tempContentList.length>0){this.contentWatermark||(this.contentWatermark=new xo(this.player),this.contentWatermark.resize());const e=[];this.tempContentList.forEach((t=>{let i={left:t.x||0,top:t.y||0};"text"===t.type?i.text={content:t.text,fontSize:t.fontSize||"14",color:t.color||"#000"}:"rect"===t.type?i.rect={width:t.width,height:t.height,color:t.color||"green",lineWidth:t.lineWidth||2,fill:t.fill||"",fillOpacity:t.fillOpacity||.2}:"polygon"===t.type?i.polygon={list:t.list,color:t.color||"green",lineWidth:t.lineWidth||2,fill:t.fill,fillOpacity:t.fillOpacity||.2}:"line"===t.type&&(i.line={color:t.color||"green",lineWidth:t.lineWidth||2,x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2}),e.push(i)})),this.contentWatermark.update(e)}else this.contentWatermark&&this.contentWatermark.remove()}doAddAiContentToWatermark(){if(this.tempAiContentList.length>0){this.aiContentWatermark||(this.aiContentWatermark=new xo(this.player),this.aiContentWatermark.resize());const e=this.tempAiContentList.map((e=>{let t={left:e.x,top:e.y};return"text"===e.type?t.text={content:e.text,fontSize:e.fontSize,color:e.color}:"rect"===e.type&&(t.rect={width:e.width,height:e.height,color:e.color,lineWidth:e.lineWidth}),t}));this.aiContentWatermark.update(e)}else this.aiContentWatermark&&this.aiContentWatermark.remove()}_getStyleScale(){let e=this.$videoElement.style.transform.match(/scale\([0-9., ]*\)/g),t="";if(e&&e[0]){t=e[0].replace("scale(","").replace(")","").split(",")}return t}}var Uo="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0;function Go(e,t,i){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){No(r.response,t,i)},r.onerror=function(){console.error("could not download file")},r.send()}function Oo(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return t.status>=200&&t.status<=299}function Jo(e){try{e.dispatchEvent(new MouseEvent("click"))}catch(i){var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var Yo=Uo.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),No="object"!=typeof window||window!==Uo?function(){}:"download"in HTMLAnchorElement.prototype&&!Yo?function(e,t,i){var r=Uo.URL||Uo.webkitURL,s=document.createElementNS("http://www.w3.org/1999/xhtml","a");t=t||e.name||"download",s.download=t,s.rel="noopener","string"==typeof e?(s.href=e,s.origin!==location.origin?Oo(s.href)?Go(e,t,i):Jo(s,s.target="_blank"):Jo(s)):(s.href=r.createObjectURL(e),setTimeout((function(){r.revokeObjectURL(s.href)}),4e4),setTimeout((function(){Jo(s)}),0))}:"msSaveOrOpenBlob"in navigator?function(e,t,i){if(t=t||e.name||"download","string"==typeof e)if(Oo(e))Go(e,t,i);else{var r=document.createElement("a");r.href=e,r.target="_blank",setTimeout((function(){Jo(r)}))}else navigator.msSaveOrOpenBlob(function(e,t){return void 0===t?t={autoBom:!1}:"object"!=typeof t&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e}(e,i),t)}:function(e,t,i,r){if((r=r||open("","_blank"))&&(r.document.title=r.document.body.innerText="downloading..."),"string"==typeof e)return Go(e,t,i);var s="application/octet-stream"===e.type,a=/constructor/i.test(Uo.HTMLElement)||Uo.safari,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||s&&a||Yo)&&"undefined"!=typeof FileReader){var n=new FileReader;n.onloadend=function(){var e=n.result;e=o?e:e.replace(/^data:[^;]*;/,"data:attachment/file;"),r?r.location.href=e:location=e,r=null},n.readAsDataURL(e)}else{var l=Uo.URL||Uo.webkitURL,h=l.createObjectURL(e);r?r.location=h:location.href=h,r=null,setTimeout((function(){l.revokeObjectURL(h)}),4e4)}};class Po{constructor(e,t){this.canvas=e,this.gl=t;const i=t.createShader(t.VERTEX_SHADER);if(t.shaderSource(i,"\n attribute vec2 xy;\n varying highp vec2 uv;\n void main(void) {\n gl_Position = vec4(xy, 0.0, 1.0);\n // Map vertex coordinates (-1 to +1) to UV coordinates (0 to 1).\n // UV coordinates are Y-flipped relative to vertex coordinates.\n uv = vec2((1.0 + xy.x) / 2.0, (1.0 - xy.y) / 2.0);\n }\n "),t.compileShader(i),!t.getShaderParameter(i,t.COMPILE_STATUS))throw t.getShaderInfoLog(i);const r=t.createShader(t.FRAGMENT_SHADER);if(t.shaderSource(r,"\n varying highp vec2 uv;\n uniform sampler2D texture;\n void main(void) {\n gl_FragColor = texture2D(texture, uv);\n }\n "),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS))throw t.getShaderInfoLog(r);const s=t.createProgram();if(t.attachShader(s,i),t.attachShader(s,r),t.linkProgram(s),!t.getProgramParameter(s,t.LINK_STATUS))throw t.getProgramInfoLog(s);t.useProgram(s);const a=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,a),t.bufferData(t.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),t.STATIC_DRAW);const o=t.getAttribLocation(s,"xy");t.vertexAttribPointer(o,2,t.FLOAT,!1,0,0),t.enableVertexAttribArray(o);const n=t.createTexture();t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.program=s,this.buffer=a,this.vertexShader=i,this.fragmentShader=r,this.texture=n}destroy(){this.gl.deleteProgram(this.program),this.gl.deleteBuffer(this.buffer),this.gl.deleteTexture(this.texture),this.gl.deleteShader(this.vertexShader),this.gl.deleteShader(this.fragmentShader),this.program=null,this.buffer=null,this.vertexShader=null,this.fragmentShader=null,this.texture=null}render(e){this.canvas.width=e.displayWidth,this.canvas.height=e.displayHeight;const t=this.gl;t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e),t.viewport(0,0,t.drawingBufferWidth,t.drawingBufferHeight),t.clearColor(1,0,0,1),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4)}}class jo extends Fo{constructor(e){super(),this.player=e;const t=document.createElement("canvas");t.style.position="absolute",t.style.top=0,t.style.left=0,this.$videoElement=t,e.$container.appendChild(this.$videoElement),this.context2D=null,this.contextGl=null,this.webglRender=null,this.webglRectRender=null,this.webGPURender=null,this.isWebglContextLost=!1,this.isWcsWebgl2=!1,this.bitmaprenderer=null,this.renderType=null,this.controlHeight=0,this.proxyDestroyList=[];let i=null;let r=function(e,t){let i;return t=t||200,function(){let r=this,s=arguments;i||(i=setTimeout((()=>{e.apply(r,s),i=null}),t))}}((function(){i&&clearTimeout(i),i=setTimeout((()=>{e.control&&(e.control.$controls.style.opacity=0)}),5e3)}),1e3);e.$container.addEventListener("mousemove",(function(t){e._opt.url&&(e.control.$controls.style.opacity=1,r())})),e.$container.addEventListener("contextmenu",(function(t){if(t.preventDefault(),e._opt.url&&e.control){const i=e.video&&e.video.videoInfo||{};"H265(HEVC)"===i.encType?e.control.$contextmenuBtnCopy.innerHTML="复制地址(H265)":i.encType?e.control.$contextmenuBtnCopy.innerHTML="复制地址(H264)":e.control.$contextmenuBtnCopy.innerHTML="复制地址",e.control.$contextmenuBtn.style.top=`${t.layerY}px`,e.control.$contextmenuBtn.style.left=`${t.layerX}px`,e.control.$contextmenuBtn.style.display="block"}})),e.$container.addEventListener("click",(function(t){t.preventDefault(),e.control&&(e.control.$contextmenuBtn.style.display="none")})),this._initCanvasRender()}destroy(){super.destroy(),this.proxyDestroyList.length>0&&(this.proxyDestroyList.forEach((e=>{e&&e()})),this.proxyDestroyList=[]),this.contextGl&&(this.contextGl=null),this.context2D&&(this.context2D=null),this.webglRender&&(this.webglRender.destroy(),this.webglRender=null),this.webglRectRender&&(this.webglRectRender.destroy(),this.webglRectRender=null),this.webGPURender&&(this.webGPURender.destroy(),this.webGPURender=null),this.bitmaprenderer&&(this.bitmaprenderer=null),this.renderType=null,this.isWebglContextLost=!1,this.videoInfo={width:"",height:"",encType:""},this.player.$container.removeChild(this.$videoElement),this.init=!1,this.off()}_initContext2D(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.context2D=this.$videoElement.getContext("2d",e)}_initContextGl(){this.player.events,this.contextGl=aa(this.$videoElement),this.contextGl?(this._bindContextGlEvents(),this.webglRender=new Ko(this.contextGl,this.player._opt.openWebglAlignment)):this.player.debug.error("CommonCanvasLoader","_initContextGl() createContextGL error")}_initContextGl2(){if(this.contextGl=oa(this.$videoElement),this.contextGl){this._bindContextGlEvents(2);try{this.webglRender=new Po(this.$videoElement,this.contextGl)}catch(e){this.player.debug.error("CommonCanvasLoader",`create webgl2Render error is ${e} and next use context2d.draw render`),this.contextGl=null,this.webglRender=null,this._initContext2D()}}else this.player.debug.error("CommonCanvasLoader","_initContextGl2() createContextGL2 error")}_bindContextGlEvents(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1;const{proxy:t}=this.player.events,i=t(this.$videoElement,"webglcontextlost",(t=>{t.preventDefault(),this.player.debug.error("canvasVideo","webglcontextlost error",t),this.isWebglContextLost=!0,this.webglRender&&(this.player.debug.log("CommonCanvasLoader","webglcontextlost error and destroy webglRender"),this.webglRender.destroy(),this.webglRender=null),this.webglRectRender&&(this.player.debug.log("CommonCanvasLoader","webglcontextlost error and destroy webglRectRender"),this.webglRectRender.destroy(),this.webglRectRender=null),this.contextGl=null,setTimeout((()=>{if(this.player.debug.log("CommonCanvasLoader",`createContextGL() version ${e}`),1===e?this.contextGl=aa(this.$videoElement):2===e&&(this.contextGl=oa(this.$videoElement)),this.player.debug.log("CommonCanvasLoader","createContextGL success"),this.contextGl&&this.contextGl.getContextAttributes){const t=this.contextGl.getContextAttributes();t&&t.stencil?(1===e?this.webglRender=new Ko(this.contextGl,this.player._opt.openWebglAlignment):2===e&&(this.webglRender=new Po(this.$videoElement,this.contextGl)),this.isWebglContextLost=!1,this.player.debug.log("CommonCanvasLoader","webglcontextlost error reset and getContextAttributes().stencil is true")):(this.player.debug.error("CommonCanvasLoader","webglcontextlost error, getContextAttributes().stencil is false"),this.player.emitError(It.webglContextLostError))}else this.player.debug.error("CommonCanvasLoader","webglcontextlost error, getContextAttributes().stencil is false"),this.player.emitError(It.webglContextLostError)}),500)})),r=t(this.$videoElement,"webglcontextrestored",(e=>{e.preventDefault(),this.player.debug.log("CommonCanvasLoader","webglcontextrestored ",e)}));this.proxyDestroyList.push(i,r)}_initContextGPU(){var t;(t=this.$videoElement,new Promise(((e,i)=>{navigator.gpu?navigator.gpu.requestAdapter().then((r=>{r?r.requestDevice().then((s=>{if(s){const a=t.getContext("webgpu");if(a){const t=navigator.gpu.getPreferredCanvasFormat();a.configure({device:s,format:t,alphaMode:"opaque"}),e({adapter:r,device:s,context:a,format:t})}else i('WebGPU "context" create fail')}else i('WebGPU "device" request fail')})).catch((e=>{i('WebGPU "adapter.requestDevice()" fail')})):i('WebGPU "adapter" request fail is empty')})).catch((e=>{i('WebGPU "navigator.gpu.requestAdapter()" fail')})):i("WebGPU not support!!")}))).then((t=>{t?(this.webGPURender=new qo(t),this.player.debug.log("CommonCanvasLoader","webGPURender init success")):(this.player.debug.warn("CommonCanvasLoader",`createWebGPUContext error is ${e} and next use webgl render`),this.renderType=ei,this._initContextGl())})).catch((e=>{this.player.debug.warn("CommonCanvasLoader",`createWebGPUContext error is ${e} and next use webgl render`),this.renderType=ei,this._initContextGl()}))}initCanvasViewSize(){this.$videoElement.width=this.videoInfo.width,this.$videoElement.height=this.videoInfo.height,this.resize()}screenshot(e,t,i,r){e=e||la(),r=r||kt.download;let s=.92;!Wi[t]&&kt[t]&&(r=t,t="png",i=void 0),"string"==typeof i&&(r=i,i=void 0),void 0!==i&&(s=Number(i));const a=Wi[t]||Wi.png,o=this.$videoElement.toDataURL(a,s);if(r===kt.base64)return o;{const t=na(o);if(r===kt.blob)return t;if(r===kt.download){const i=a.split("/")[1];No(t,e+"."+i)}}}screenshotWatermark(e){return new Promise(((t,i)=>{ja(e)&&(e={filename:e}),(e=e||{}).width=this.videoInfo.width,e.height=this.videoInfo.height,e.filename=e.filename||la(),e.format=e.format?Wi[e.format]:Wi.png,e.quality=Number(e.quality)||.92,e.type=e.type||kt.download;const r=this.$videoElement.toDataURL(e.format,e.quality);xa(r,e).then((i=>{if(e.type===kt.base64)t(r);else{const r=na(i);if(e.type===kt.blob)t(r);else if(e.type===kt.download){t();const i=e.format.split("/")[1];No(r,e.filename+"."+i)}}})).catch((e=>{i(e)}))}))}render(){}clearView(){super.clearView()}play(){}pause(){}_resize(){this.player.debug.log("canvasVideo","_resize()");const e=this.player._opt;let t=this.player.width,i=this.player.height;if(e.hasControl&&!e.controlAutoHide){const r=this.controlHeight;pa()&&this.player.fullscreen&&e.useWebFullScreen?t-=r:i-=r}let r=this.$videoElement.width,s=this.$videoElement.height;const a=e.rotate;let o=(t-r)/2,n=(i-s)/2;270!==a&&90!==a||(r=this.$videoElement.height,s=this.$videoElement.width);const l=t/r,h=i/s;let A=l>h?h:l;po(e.isResize)&&l!==h&&(A=l+","+h),e.isFullResize&&(A=l>h?l:h);let d="scale("+A+")";"none"===e.mirrorRotate&&a&&(d+=" rotate("+a+"deg)"),"level"===e.mirrorRotate?d+=" rotateY(180deg)":"vertical"===e.mirrorRotate&&(d+=" rotateX(180deg)"),this.$videoElement.style.height=this.videoInfo.height+"px",this.$videoElement.style.width=this.videoInfo.width+"px",this.$videoElement.style.padding="0",this.$videoElement.style.transform=d,this.$videoElement.style.left=o+"px",this.$videoElement.style.top=n+"px"}initFps(){}setStreamFps(e){}getStreamFps(){return 25}getType(){return ee}getCanvasType(){let e=this.renderType===ii?ii:ei;return this.isWcsWebgl2&&(e=ti),e}}class zo extends jo{constructor(e){super(e),this.yuvList=[],this.controlHeight=0,this.tempTextCanvas=null,this.tempTextCanvasCtx=null,this.player.debug.log("CanvasVideo","init")}destroy(){super.destroy(),this.yuvList=[],this.tempTextCanvas&&(this.tempTextCanvasCtx.clearRect(0,0,this.tempTextCanvas.width,this.tempTextCanvas.height),this.tempTextCanvas.width=0,this.tempTextCanvas.height=0,this.tempTextCanvas=null),this.player.debug.log("CanvasVideoLoader","destroy")}_initCanvasRender(){this.player._opt.useWCS&&!this._supportOffscreen()?(this.renderType=$t,yo()&&this.player._opt.wcsUseWebgl2Render?(this._initContextGl2(),this.webglRender&&(this.isWcsWebgl2=!0)):this._initContext2D()):this.player._opt.useMSE&&this.player._opt.mseUseCanvasRender?(this.renderType=si,this._initContext2D()):this.player.isOldHls()&&this.player._opt.useCanvasRender?(this.renderType=ai,this._initContext2D()):this.player.isWebrtcH264()&&this.player._opt.webrtcUseCanvasRender?(this.renderType=oi,this._initContext2D()):this._supportOffscreen()?(this.renderType=ri,this._bindOffscreen()):this.player._opt.useWebGPU?(this.renderType=ii,this._initContextGPU()):(this.renderType=ei,this._initContextGl())}_supportOffscreen(){return"function"==typeof this.$videoElement.transferControlToOffscreen&&this.player._opt.useOffscreen}_bindOffscreen(){this.bitmaprenderer=this.$videoElement.getContext("bitmaprenderer")}render(e){this.yuvList.push(e),this.startRender()}startRender(){for(;!(this.yuvList.length<=0);){const e=this.yuvList.shift();this.doRender(e)}}doRender(e){if(this.renderType!==si){const t={ts:e.ts||0,fps:!0};this.player.updateStats(t)}switch(this.renderType){case ri:this.bitmaprenderer.transferFromImageBitmap(e.buffer);break;case ei:case ii:if(this.isWebglContextLost)return void this.player.debug.warn("CanvasVideoLoader","doRender() and webgl context is lost");let t=e.output;if(this.player.faceDetectActive&&this.player.ai&&this.player.ai.faceDetector){null===this.prevAiFaceDetectTime&&(this.prevAiFaceDetectTime=la());const i=la();i-this.prevAiFaceDetectTime>=this.player._opt.aiFaceDetectInterval&&(t=this.player.ai.faceDetector.detect({width:this.$videoElement.width,height:this.$videoElement.height,data:e.output,ts:e.ts||0}),this.prevAiFaceDetectTime=i)}if(this.player.objectDetectActive&&this.player.ai&&this.player.ai.objectDetector){null===this.prevAiObjectDetectTime&&(this.prevAiObjectDetectTime=la());const i=la();i-this.prevAiObjectDetectTime>=this.player._opt.aiObjectDetectInterval&&(t=this.player.ai.objectDetector.detect({width:this.$videoElement.width,height:this.$videoElement.height,data:e.output,ts:e.ts||0}),this.prevAiObjectDetectTime=i)}if(this.player.occlusionDetectActive&&this.player.ai&&this.player.ai.occlusionDetector){null===this.prevAiOcclusionDetectTime&&(this.prevAiOcclusionDetectTime=la());const t=la();if(t-this.prevAiOcclusionDetectTime>=this.player._opt.aiOcclusionDetectInterval){const i=this.player.ai.occlusionDetector.check({width:this.$videoElement.width,height:this.$videoElement.height,data:e.output});this.prevAiOcclusionDetectTime=t,i&&this.player.emit(yt.aiOcclusionDetectResult,{ts:e.ts||0})}}if(this.player.imageDetectActive&&this.player.ai&&this.player.ai.imageDetector){const t=this.player.ai.imageDetector.check({width:this.$videoElement.width,height:this.$videoElement.height,data:e.output});if(t&&t.data&&(this.player.emit(yt.aiOcclusionDetectResult,{type:t.type,ts:e.ts||0}),this.player._opt.aiImageDetectDrop))return void this.player.debug.log("CanvasVideoLoader",`doRender() and ai image detect result type is ${t.type} and drop`)}if(this.renderType===ii)try{if(!this.webGPURender)return void this.player.debug.warn("CanvasVideoLoader","doRender webgpu render is not init");this.webGPURender.renderYUV(this.$videoElement.width,this.$videoElement.height,t)}catch(e){this.player.debug.error("CanvasVideoLoader",`doRender webgpu render and error: ${e.toString()}`)}else if(this.renderType===ei)try{this.webglRender.renderYUV(this.$videoElement.width,this.$videoElement.height,t)}catch(e){this.player.debug.error("CanvasVideoLoader",`doRender webgl render context is lost ${this.contextGl&&this.contextGl.isContextLost()} and error: ${e.toString()}`)}break;case $t:if(this.webglRender)this.webglRender.render(e.videoFrame),io(e.videoFrame);else if(this.context2D)if(Ha(e.videoFrame.createImageBitmap))try{e.videoFrame.createImageBitmap().then((t=>{this.context2D.drawImage(t,0,0,this.$videoElement.width,this.$videoElement.height),io(e.videoFrame)}))}catch(e){}else this.context2D.drawImage(e.videoFrame,0,0,this.$videoElement.width,this.$videoElement.height),io(e.videoFrame);else this.player.debug.warn("CanvasVideoLoader","doRender() and webcodecs context is lost");break;case si:case ai:case oi:this.context2D.drawImage(e.$video,0,0,this.$videoElement.width,this.$videoElement.height)}let t=e.ts||0;this.renderType===si&&(t=parseInt(1e3*e.$video.currentTime,10)+(this.player.mseDecoder.firstRenderTime||0)),this.player.updateCurrentPts(t),this.doAddContentToWatermark(),this.doAddAiContentToWatermark()}clearView(){switch(super.clearView(),this.renderType){case ri:(function(e,t){const i=document.createElement("canvas");i.width=e,i.height=t;const r=window.createImageBitmap(i,0,0,e,t);return i.width=0,i.height=0,r})(this.$videoElement.width,this.$videoElement.height).then((e=>{this.bitmaprenderer.transferFromImageBitmap(e)}));break;case ei:this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT);break;case ii:this.webGPURender.clear();break;case $t:this.contextGl?this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT):this.context2D&&this.context2D.clearRect(0,0,this.$videoElement.width,this.$videoElement.height);break;case si:case ai:case oi:this.context2D.clearRect(0,0,this.$videoElement.width,this.$videoElement.height)}}_initTempTextCanvas(){this.tempTextCanvas=document.createElement("canvas"),this.tempTextCanvasCtx=this.tempTextCanvas.getContext("2d"),this.tempTextCanvas.width=600,this.tempTextCanvas.height=20}doAddContentToCanvas(){this.tempContentList.length>0&&this.context2D&&function(e){let{ctx:t,list:i}=e;t.save(),(i||[]).forEach((e=>{"text"===e.type?(t.font=`${e.fontSize||12}px Arial`,t.fillStyle=e.color||"green",t.fillText(e.text,e.x,e.y)):"rect"===e.type&&(t.strokeStyle=e.color||"green",t.lineWidth=e.lineWidth||2,t.strokeRect(e.x,e.y,e.width,e.height))})),t.restore()}({ctx:this.context2D,list:this.tempContentList})}doAddContentToWebGlCanvas(){this.tempContentList.length>0&&this.contextGl&&this.webglRectRender&&this.tempContentList.forEach((e=>{const t=e.x,i=e.y;if("rect"===e.type){const s=e.width,a=e.height,o=(r=e.color||"#008000",[parseInt(r.substring(1,3),16)/255,parseInt(r.substring(3,5),16)/255,parseInt(r.substring(5,7),16)/255,1]),n=e.lineWidth||4;if(!s||!a)return;this.webglRectRender.drawBox({x:t,y:i,width:s,height:a,lineColor:o,lineWidth:n,canvasWidth:this.$videoElement.width,canvasHeight:this.$videoElement.height})}else if("text"===e.type){const r=e.text||"";if(!r)return;const s=e.fontSize||20,a=e.color||"#008000";this.tempTextCanvas||this._initTempTextCanvas(),this.tempTextCanvasCtx.clearRect(0,0,this.tempTextCanvas.width,this.tempTextCanvas.height),this.tempTextCanvasCtx.font=`${s}px Arial`,this.tempTextCanvasCtx.fillStyle=a,this.tempTextCanvasCtx.textBaseline="top",this.tempTextCanvasCtx.fillText(r,0,0),this.webglRender.drawDom(this.$videoElement.width,this.$videoElement.height,t,i,this.tempTextCanvas)}var r}))}}class Wo{constructor(e,t){this.player=e,this.$scaleCanvas=document.createElement("canvas"),this.$scaleCanvasBox=t,this.$scaleCanvas.classList.add("easyplayer-scale-canvas"),this.scaleObj={sx:0,sy:0,ex:0,ey:0},this.$scaleCanvas.width=e.$container.clientWidth,this.$scaleCanvas.height=e.$container.clientHeight,this.scaleCanvasCtx=this.$scaleCanvas.getContext("2d"),this.scaleNum=1,this.scaleIsWheel=!1,this.scaleEventInfo={},e.$container.appendChild(this.$scaleCanvas),this.$scaleCanvas.addEventListener("mousemove",this.onMousemove.bind(this)),this.$scaleCanvas.addEventListener("mouseout",this.onMouseout.bind(this)),this.$scaleCanvas.addEventListener("mousedown",this.onMousedown.bind(this)),this.$scaleCanvas.addEventListener("mouseup",this.onMouseup.bind(this)),this.$scaleCanvas.addEventListener("wheel",this.onWheel.bind(this)),document.addEventListener("keydown",this.onKeydown.bind(this))}destroy(){super.destroy(),this.scaleEventInfo={},this.$scaleCanvas.removeEventListener("mousemove",(function(e){})),this.$scaleCanvas.removeEventListener("mouseout",(function(e){})),this.$scaleCanvas.removeEventListener("mousedown",(function(e){})),this.$scaleCanvas.removeEventListener("mouseup",(function(e){})),this.$scaleCanvas.removeEventListener("wheel",(function(e){})),document.removeEventListener("keydown",(function(e){}))}onMousemove(e){this.scaleIsWheel=!0,this.scaleEventInfo=e}onMouseout(e){this.scaleIsWheel=!1}onMousedown(e){this.scaleCanvasCtx.clearRect(0,0,this.$scaleCanvas.width,this.$scaleCanvas.height),this.scaleObj.sx=e.offsetX,this.scaleObj.sy=e.offsetY}onMouseup(e){this.scaleNum>=3||(this.scaleObj.ex=e.offsetX,this.scaleObj.ey=e.offsetY,this.scaleNum=this.scaleNum+.1,this.canvasSetRect(this.scaleObj,this.scaleNum))}onWheel(e){this.scaleIsWheel&&(e.preventDefault(),e.deltaY>0?this.AddScaleNum():e.deltaY<0&&this.SubScaleNum())}onKeydown(e){this.scaleIsWheel&&(e.preventDefault(),e.ctrlKey&&187==e.keyCode&&this.AddScaleNum(),e.ctrlKey&&189==e.keyCode&&this.SubScaleNum())}ResScaleNum(){this.canvasSetRectWheel(1)}AddScaleNum(){this.scaleNum>=3||(this.scaleNum=this.scaleNum+.1,this.canvasSetRectWheel(this.scaleNum))}SubScaleNum(){this.scaleNum<=1||(this.scaleNum=this.scaleNum-.1,this.canvasSetRectWheel(this.scaleNum))}canvasSetRectWheel(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=this.$scaleCanvasBox.width,i=this.$scaleCanvasBox.height,r=(t*e-t)/2,s=(i*e-i)/2,a=this.scaleEventInfo.offsetX,o=this.scaleEventInfo.offsetY,n=t/2,l=i/2,h=0,A=0;if(a>n){let e=a-n;h=e>r?-r:-e}else{let e=n-a;h=e>r?r:e}if(o>l){let e=o-l;A=e>r?-s:-e}else{let e=l-o;A=e>r?s:e}this.$scaleCanvasBox.style.left=h+"px",this.$scaleCanvasBox.style.top=A+"px",this.$scaleCanvasBox.style.transform=`scale(${e}, ${e})`}canvasSetRect(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=this.$scaleCanvasBox.width,r=this.$scaleCanvasBox.height;if(e.ex==e.sx||e.sy==e.ey)return;let s=0,a=0,o=0,n=0;if(e.ex>e.sx?(s=e.ex-e.sx,o=e.sx):(s=e.sx-e.ex,o=e.ex),e.ey>e.sy?(a=e.ey-e.sy,n=e.sy):(a=e.sy-e.ey,n=e.ey),s<100&&a<100)return;let l=(i*t-i)/2,h=(r*t-r)/2,A=o+s/2,d=n+a/2,c=i/2,u=r/2,p=0,g=0;if(A>c){let e=A-c;p=e>l?-l:-e}else{let e=c-A;p=e>l?l:e}if(d>u){let e=d-u;g=e>l?-h:-e}else{let e=u-d;g=e>l?h:e}this.$scaleCanvasBox.style.left=p+"px",this.$scaleCanvasBox.style.top=g+"px",this.$scaleCanvasBox.style.transform=`scale(${t}, ${t})`,setTimeout((()=>{this.scaleCanvasCtx.clearRect(0,0,this.$scaleCanvas.width,this.$scaleCanvas.height)}),1e3),this.scaleCanvasCtx.strokeStyle="red",this.scaleCanvasCtx.lineWidth=1,this.scaleCanvasCtx.strokeRect(o,n,s,a)}}class Zo extends Fo{constructor(e){super(),this.player=e,this.TAG_NAME="Video";const t=document.createElement("video");t.setAttribute("crossorigin","crossorigin");const i=document.createElement("canvas");t.muted=!0,t.style.position="absolute",t.style.top=0,t.style.left=0,this._delayPlay=!1,e.$container.appendChild(t),this.$videoElement=t,this.$canvasElement=i,this.canvasContext=i.getContext("2d"),this.mediaStream=null,this.mediaRecorder=null,this.player.ScaleCanvasLoaders=new Wo(e,t),this.vwriter=null,e.canVideoTrackWritter()&&Da()&&ba()&&(this.trackGenerator=new MediaStreamTrackGenerator({kind:"video"}),this.mediaStream=new MediaStream([this.trackGenerator]),t.srcObject=this.mediaStream,this.vwriter=this.trackGenerator.writable.getWriter()),this.fixChromeVideoFlashBug(),this.fixMobileAutoFullscreen(),this.resize(),this.eventListenList=[],this.isRenderRetryPlaying=!1,this.isRenderRetryPlayingTimes=0,this.isRetryPlaying=!1,this.isRetryPlayingTimes=0,this.canplayReceived=!1,this.progressProxyDestroy=null,this.checkVideoCanplayTimeout=null;const r=Co();this.supportVideoFrameCallbackHandle=null;const{proxy:s}=this.player.events,a=s(this.$videoElement,"canplay",(()=>{this.player.debug.log("Video","canplay"),this.player.isDestroyedOrClosed()||(this.canplayReceived=!0,this._delayPlay?(this.clearCheckVideoCanplayTimeout(),this._play(),Co()?this.supportVideoFrameCallbackHandle||(this.supportVideoFrameCallbackHandle=this.$videoElement.requestVideoFrameCallback(this.videoFrameCallback.bind(this))):this.player.debug.warn("Video","not support requestVideoFrameCallback and use timeupdate event to update stats")):this.$videoElement.paused&&(this.player.isMSEPlaybackRateChangePause||this.player.isMseDecoderUseWorker())&&(this.player.debug.log("Video",`canplay and video is paused and isMSEPlaybackRateChangePause is ${this.player.isMSEPlaybackRateChangePause} so next try to play`),this.player.isMSEPlaybackRateChangePause=!1,this.$videoElement.play()))})),o=s(this.$videoElement,"waiting",(()=>{this.player.debug.log("Video","waiting")})),n=s(this.$videoElement,"ended",(()=>{this.player.emit(yt.liveEnd,0),this.player.debug.log("Video","ended")})),l=s(this.$videoElement,"loadedmetadata",(()=>{this.player.debug.log("Video","loadedmetadata")})),h=s(this.$videoElement,"timeupdate",(t=>{if(this.player._opt.isMp4?this.getCurrentTime()>1&&this.player.emit(yt.loading,!1):this.player.emit(yt.loading,!1),!this.player.isDestroyedOrClosed()){if(po(r)){const t=parseInt(1e3*this.getCurrentTime(),10);(e.isWebrtcH264()||this.player.isOldHls()||this.player.isAliyunRtc())&&(this.player.emit(yt.timeUpdate,t),e.handleRender(),e.updateStats({fps:!0,ts:t,dts:t}))}this.player.isMseDecoderUseWorker()&&(this.player.decoderWorker.updateVideoTimestamp(this.getCurrentTime()),this._handleUpdatePlaybackRate())}}));let A=null;const d=s(this.$videoElement,"error",(()=>{if(this.player.debug.error("Video","Error Code "+this.$videoElement.error.code+" "+ds[this.$videoElement.error.code]+"; Details: "+this.$videoElement.error.message),this.player.isUseMSE()){this.$videoElement.error.code;const e=this.$videoElement.error.message;-1!==e.indexOf(cs)&&(this.player.isMSEVideoDecoderInitializationFailedNotSupportHevc=!0),-1!==e.indexOf(us)&&(this.player.isMSEAudioDecoderError=!0)}this.player.isHlsCanVideoPlay()})),c=s(this.$videoElement,"stalled",(()=>{this._detectAndFixStuckPlayback(!0)}));if(this.progressProxyDestroy=s(this.$videoElement,"progress",(()=>{this._detectAndFixStuckPlayback()})),this.eventListenList.push(a,o,h,d,l,n,c),this.player.isMseDecoderUseWorker()){const e=s(this.$videoElement,rr,(()=>{this.player.debug.log(this.TAG_NAME,"video playback Rate change",this.$videoElement&&this.$videoElement.playbackRate),this.$videoElement&&this.$videoElement.paused&&(this.player.debug.log(this.TAG_NAME,"video is paused and next try to replay"),this.$videoElement.play())}));this.eventListenList.push(e)}let u=function(e,t){let i;return t=t||200,function(){let r=this,s=arguments;i||(i=setTimeout((()=>{e.apply(r,s),i=null}),t))}}((function(){A&&clearTimeout(A),A=setTimeout((()=>{e.control&&(e.control.$controls.style.opacity=0)}),5e3)}),1e3);e.$container.addEventListener("mousemove",(function(t){e._opt.url&&(e.control.$controls.style.opacity=1,u())})),e.$container.addEventListener("contextmenu",(function(t){if(t.preventDefault(),e._opt.url&&e.control){const i=e.video&&e.video.videoInfo||{};"H265(HEVC)"===i.encType?e.control.$contextmenuBtnCopy.innerHTML="复制地址(H265)":i.encType?e.control.$contextmenuBtnCopy.innerHTML="复制地址(H264)":e.control.$contextmenuBtnCopy.innerHTML="复制地址",e.control.$contextmenuBtn.style.top=`${t.layerY}px`,e.control.$contextmenuBtn.style.left=`${t.layerX}px`,e.control.$contextmenuBtn.style.display="block"}})),e.$container.addEventListener("click",(function(t){t.preventDefault(),e.control&&(e.control.$contextmenuBtn.style.display="none")})),this.player.debug.log("Video","init")}destroy(){if(super.destroy(),this.clearCheckVideoCanplayTimeout(),this._cancelVideoFrameCallback(),this._removeProgressProxyDestroy(),this.eventListenList&&(this.eventListenList.forEach((e=>{e()})),this.eventListenList=[]),this.isRenderRetryPlaying=!1,this.isRenderRetryPlayingTimes=0,this.isRetryPlaying=!1,this.isRetryPlayingTimes=0,this.canplayReceived=!1,this.player._opt.videoRenderSupportScale&&this._isNeedAddBackDropFilter()){const e=this.player.$container;e.style.backdropFilter="none",e.style.transform="none"}if(this.$canvasElement.height=0,this.$canvasElement.width=0,this.$canvasElement=null,this.canvasContext=null,this.$videoElement){this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.srcObject&&(this.$videoElement.srcObject=null,this.$videoElement.removeAttribute("srcObject")),this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src"));try{this.$videoElement.load()}catch(e){}this.player.$container.removeChild(this.$videoElement),this.$videoElement=null}this.trackGenerator&&(this.trackGenerator.stop(),this.trackGenerator=null),this.vwriter&&(this.vwriter.close(),this.vwriter=null),this._delayPlay=!1,this.mediaStream&&(this.mediaStream.getTracks().forEach((e=>e.stop())),this.mediaStream=null),this.player.$container.removeEventListener("contextmenu",(function(e){})),this.player.$container.removeEventListener("click",(function(e){}));const e=this.player.$container.querySelector(".easyplayer-scale-canvas");e&&this.player.$container&&this.player.$container.removeChild(e),this.off(),this.player.debug.log("Video","destroy")}videoFrameCallback(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.player.isDestroyedOrClosed())return void this.player.debug.log("Video","videoFrameCallback() and isDestroyedOrClosed and return");this.player.handleRender();const i=parseInt(1e3*Math.max(t.mediaTime,this.getCurrentTime()),10)||0;if(this.player.isUseHls265UseMse())this.player.updateStats({fps:!0,ts:i});else if(this.player.isMseDecoderUseWorker()){this.player._times.videoStart||(this.player._times.videoStart=la(),this.player.handlePlayToRenderTimes());const e=i+(this.player._mseWorkerData.firstRenderTime||0);if(this.player.updateStats({fps:!0,dfps:!0,ts:e,mseTs:i}),this.player.emit(yt.timeUpdate,e),po(this.getHasInit())&&t.width&&t.height){const e={width:t.width,height:t.height};this.updateVideoInfo(e),this.initCanvasViewSize()}}if(this.player.isWebrtcH264()||this.player.isOldHls()||this.player.isAliyunRtc()){if(this.player.emit(yt.timeUpdate,i),po(this.getHasInit())&&t.width&&t.height){const e={width:t.width,height:t.height};this.videoInfo.encTypeCode||this.player.isOldHls()||(e.encTypeCode=Qt),this.updateVideoInfo(e)}this.player.updateStats({fps:!0,ts:i,dts:i}),this.player.updateCurrentPts(i),this.doAddContentToWatermark()}else if(uo(this.player._opt.useMSE)&&po(this.player._opt.mseUseCanvasRender)){if(this.player.mseDecoder){let e=parseInt(1e3*Math.max(t.mediaTime,this.getCurrentTime()),10)+(this.player.mseDecoder.firstRenderTime||0);this.player.updateCurrentPts(e)}else if(this.player._opt.mseDecoderUseWorker){let e=parseInt(1e3*Math.max(t.mediaTime,this.getCurrentTime()),10)+(this.player._mseWorkerData.firstRenderTime||0);this.player.updateCurrentPts(e)}this.doAddContentToWatermark()}this.supportVideoFrameCallbackHandle=this.$videoElement.requestVideoFrameCallback(this.videoFrameCallback.bind(this))}fixChromeVideoFlashBug(){if(this.player._opt.videoRenderSupportScale&&this._isNeedAddBackDropFilter()){const e=this.player.$container;e.style.backdropFilter="blur(0px)",e.style.transform="translateZ(0)"}}fixMobileAutoFullscreen(){const e=$a(),t=ma();(e||t)&&(this.player.debug.log("Video",`fixMobileAutoFullscreen and isIOS ${e} and isAndroid ${t}`),this.$videoElement.setAttribute("webkit-playsinline","true"),this.$videoElement.setAttribute("playsinline","true"),this.$videoElement.setAttribute("x5-video-player-type","h5-page"))}_detectAndFixStuckPlayback(e){const t=this.$videoElement,i=t.buffered,r=t.readyState;this.player.debug.log(this.TAG_NAME,`_detectAndFixStuckPlayback() and isStalled is ${e} ,canplayReceived is ${this.canplayReceived} ,videoReadyState is ${r}`),e||po(this.canplayReceived)||r<2?i.length>0&&t.currentTime<i.start(0)&&(this.player.debug.warn(this.TAG_NAME,`_detectAndFixStuckPlayback() and video is stuck and currentTime is ${t.currentTime} ,seek to ${i.start(0)}`),t.currentTime=i.start(0),this._removeProgressProxyDestroy()):this._removeProgressProxyDestroy()}_removeProgressProxyDestroy(){this.progressProxyDestroy&&(this.player.debug.log(this.TAG_NAME,"_removeProgressProxyDestroy()"),this.progressProxyDestroy(),this.progressProxyDestroy=null)}_isNeedAddBackDropFilter(){const e=Ea().type.toLowerCase();return"chrome"===e||"edge"===e}isPaused(){let e=!0;return this.$videoElement&&(e=this.$videoElement.paused),e}isPause(){return this.isPaused()}_getVideoReadyState(){let e=0;return this.$videoElement&&(e=this.$videoElement.readyState),e}_getVideoCurrentTime(){let e=0;return this.$videoElement&&(e=this.$videoElement.currentTime),e}play(){if(this.$videoElement){const e=this._getVideoReadyState();if(this.player.debug.log("Video",`play and readyState: ${e}`),0===e)return this.player.debug.log("Video","readyState is 0 and set _delayPlay to true and listen canplay event to play"),this._delayPlay=!0,void(null===this.checkVideoCanplayTimeout&&(this.checkVideoCanplayTimeout=setTimeout((()=>{if(this.clearCheckVideoCanplayTimeout(),!this.player.isDestroyedOrClosed()&&po(this.isPlaying())){const e=this._getBufferStore();this.player.debug.warn("Video",`checkVideoCanplayTimeout and video is not playing and buffer store is ${e} and retry play`),this.$videoElement.currentTime=e,this._replay()}}),1e3)));this._play()}}_play(){this.$videoElement&&this.$videoElement.play().then((()=>{this._delayPlay=!1,this.player.debug.log("Video","_play success"),this.isPlaying()?(this.player.emit(yt.removeLoadingBgImage),this.isRetryPlayingTimes=0,this.isRetryPlaying=!1):setTimeout((()=>{this._replay()}),100)})).catch((e=>{this.player.isDestroyedOrClosed()?this.player.debug.log("Video","_play error and player is isDestroyedOrClosed and return"):(this.player.debug.error("Video","_play error",e),this.isRetryPlaying=!1,setTimeout((()=>{this._replay()}),100))}))}_replay(){if(!this.isPlaying()&&po(this.player.isDestroyedOrClosed())&&po(this.isRetryPlaying)){if(this.isRetryPlaying=!0,this.isRetryPlayingTimes>=3)return void(this.player.isWebrtcH264()?(this.player.debug.error("Video",`_replay(webrtc H264) then but not playing and retry play times is ${this.isRetryPlayingTimes} and emit error`),this.player.emitError(It.videoElementPlayingFailedForWebrtc)):(this.player.debug.error("Video",`_replay then but not playing and retry play times is ${this.isRetryPlayingTimes} and emit error to use canvas render`),this.player.emitError(It.videoElementPlayingFailed)));this.player.debug.warn("Video",`_play then but not playing and retry play and isRetryPlayingTimes is ${this.isRetryPlayingTimes}`),this._play(),this.isRetryPlayingTimes++}else this.player.debug.log("Video",`_replay() and isPlaying is ${this.isPlaying()} and isRetryPlaying is ${this.isRetryPlaying} and isDestroyedOrClosed is ${this.player.isDestroyedOrClosed()} and return;`)}pause(e){this.player.debug.log(this.TAG_NAME,"pause and isNow is "+e),this.isPlaying()&&(e?(this.$videoElement&&this.$videoElement.pause(),this._cancelVideoFrameCallback()):setTimeout((()=>{this.$videoElement&&this.$videoElement.pause(),this._cancelVideoFrameCallback()}),100))}clearView(){super.clearView(),this.$videoElement&&(this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$videoElement.srcObject&&(this.$videoElement.srcObject=null,this.$videoElement.removeAttribute("srcObject")))}screenshot(e,t,i,r){if(!this._canScreenshot())return this.player.debug.warn("Video",`screenshot failed, video is not ready and stats is ${this._getVideoReadyState()}`),null;e=e||la(),r=r||kt.download;let s=.92;!Wi[t]&&kt[t]&&(r=t,t="png",i=void 0),"string"==typeof i&&(r=i,i=void 0),void 0!==i&&(s=Number(i));const a=this.$videoElement;let o=this.$canvasElement;o.width=a.videoWidth,o.height=a.videoHeight,this.canvasContext.drawImage(a,0,0,o.width,o.height);const n=Wi[t]||Wi.png,l=o.toDataURL(n,s);if(this.canvasContext.clearRect(0,0,o.width,o.height),o.width=0,o.height=0,r===kt.base64)return l;{const t=na(l);if(r===kt.blob)return t;if(r===kt.download){const i=n.split("/")[1];No(t,e+"."+i)}}}startRecord(){this.handleRecorderStart(),this.player.recording=!0}stopRecord(){this.handleRecorderStop(),this.player.recording=!1}getRecorder(){return new MediaRecorder(this.$videoElement.captureStream(),{mimeType:"video/webm;"})}handleRecorderStart(){this.mediaRecorder=this.getRecorder(),this.mediaRecorder.ondataavailable=e=>{const t=new Blob([e.data],{type:"video/mp4"});this.downloadBlob(t)},this.mediaRecorder.onstart=e=>{console.log("开始录制",e)},this.mediaRecorder.onstop=e=>{console.log("停止录制",e)},this.mediaRecorder.onpause=e=>{console.log("暂停录制",e)},this.mediaRecorder.onresume=e=>{console.log("继续录制",e)},setTimeout((()=>{this.mediaRecorder.start()}),100)}handleRecorderStop(){this.mediaRecorder.resume()}downloadBlob(e){const t=URL.createObjectURL(e),i=document.createElement("a");i.href=t,i.download=`${(new Date).getTime()}.${e.type.split("/")[1]}`,i.click(),URL.revokeObjectURL(t)}screenshotWatermark(e){return new Promise(((t,i)=>{if(ja(e)&&(e={filename:e}),!this._canScreenshot())return this.player.debug.warn("Video","screenshot failed, video is not ready"),i("screenshot failed, video is not ready");const r=this.$videoElement;(e=e||{}).width=r.videoWidth,e.height=r.videoHeight,e.filename=e.filename||la(),e.format=e.format?Wi[e.format]:Wi.png,e.quality=Number(e.quality)||.92,e.type=e.type||kt.download;let s=this.$canvasElement;s.width=r.videoWidth,s.height=r.videoHeight,this.canvasContext.drawImage(r,0,0,s.width,s.height);const a=s.toDataURL(e.format,e.quality);this.canvasContext.clearRect(0,0,s.width,s.height),s.width=0,s.height=0,xa(a,e).then((i=>{if(e.type===kt.base64)t(a);else{const r=na(i);if(e.type===kt.blob)t(r);else if(e.type===kt.download){t();const i=e.format.split("/")[1];No(r,e.filename+"."+i)}}})).catch((e=>{i(e)}))}))}initCanvasViewSize(){this.resize()}clear(){const e=this.$videoElement,t=e.buffered,i=t.length?t.end(t.length-1):0;e.currentTime=i}render(e){if(this.vwriter){if(this.$videoElement.srcObject||(this.$videoElement.srcObject=this.mediaStream),this.isPaused()){const e=this._getVideoReadyState();if(this.player.debug.warn("Video","render() error, video is paused and readyState is "+e),4===e&&po(this.isRenderRetryPlaying)){if(this.isRenderRetryPlaying=!0,this.isRenderRetryPlayingTimes>3)return this.player.debug.error("Video","render() error, video is paused and readyState is "+e+", retry times is "+this.isRenderRetryPlayingTimes+", emit error and use canvas render"),void this.player.emitError(It.videoElementPlayingFailed);this.$videoElement.play().then((()=>{this.isRenderRetryPlayingTimes=0,this.isRenderRetryPlaying=!1,this.player.debug.log("Video","render() video is paused and replay success")})).catch((e=>{this.isRenderRetryPlaying=!1,this.isRenderRetryPlayingTimes++,this.player.debug.warn("Video","render() error, video is paused and replay error ",e)}))}}if(this.player.updateStats({fps:!0,ts:e.ts||0}),e.videoFrame)this.vwriter.write(e.videoFrame),io(e.videoFrame);else if(e.output){let r=e.output;if(this.player.faceDetectActive&&this.player.ai&&this.player.ai.faceDetector){null===this.prevAiFaceDetectTime&&(this.prevAiFaceDetectTime=la());const t=la();t-this.prevAiFaceDetectTime>this.player._opt.aiFaceDetectInterval&&(r=this.player.ai.faceDetector.detect({width:this.videoInfo.width,height:this.videoInfo.height,data:e.output,ts:e.ts||0}),this.prevAiFaceDetectTime=t)}if(this.player.objectDetectActive&&this.player.ai&&this.player.ai.objectDetector){null===this.prevAiObjectDetectTime&&(this.prevAiObjectDetectTime=la());const t=la();t-this.prevAiObjectDetectTime>this.player._opt.aiObjectDetectInterval&&(r=this.player.ai.objectDetector.detect({width:this.videoInfo.width,height:this.videoInfo.height,data:e.output,ts:e.ts||0}),this.prevAiObjectDetectTime=t)}if(this.player.occlusionDetectActive&&this.player.ai&&this.player.ai.occlusionDetector){null===this.prevAiOcclusionDetectTime&&(this.prevAiOcclusionDetectTime=la());const t=la();if(t-this.prevAiOcclusionDetectTime>=this.player._opt.aiOcclusionDetectInterval){const i=this.player.ai.occlusionDetector.check({width:this.videoInfo.width,height:this.videoInfo.height,data:e.output,ts:e.ts||0});this.prevAiOcclusionDetectTime=t,i&&(this.player.debug.log("Video","render() and ai occlusion detect result is true"),this.player.emit(yt.aiOcclusionDetectResult,{ts:e.ts||0}))}}if(this.player.imageDetectActive&&this.player.ai&&this.player.ai.imageDetector){const t=this.player.ai.imageDetector.check({width:this.videoInfo.width,height:this.videoInfo.height,data:e.output,ts:e.ts||0});if(t&&t.data&&(this.player.emit(yt.aiOcclusionDetectResult,{type:t.type,ts:e.ts||0}),this.player._opt.aiImageDetectDrop))return void this.player.debug.log("Video",`render() and ai image detect result type is ${t.type} and drop`)}try{const s=(t=r,i={format:"I420",codedWidth:this.videoInfo.width,codedHeight:this.videoInfo.height,timestamp:e.ts},new VideoFrame(t,i));this.vwriter.write(s),io(s)}catch(e){this.player.debug.error("Video","render error",e),this.player.emitError(It.wasmUseVideoRenderError,e)}}this.player.updateCurrentPts(e.ts||0),this.doAddContentToWatermark(),this.doAddAiContentToWatermark()}else this.player.debug.warn("Video","render and this.vwriter is null");var t,i}_resize(){this.player.debug.log("Video","_resize()");let e=this.player.width,t=this.player.height;const i=this.player._opt,r=i.rotate;if(i.hasControl&&!i.controlAutoHide){const r=0;pa()&&this.player.fullscreen&&i.useWebFullScreen?e-=r:t-=r}this.$videoElement.width=e,this.$videoElement.height=t,this.$videoElement.style.width=e+"px",this.$videoElement.style.height=t+"px",270!==r&&90!==r||(this.$videoElement.width=t,this.$videoElement.height=e,this.$videoElement.style.width=t+"px",this.$videoElement.style.height=e+"px");let s=(e-this.$videoElement.width)/2,a=(t-this.$videoElement.height)/2,o="contain";po(i.isResize)&&(o="fill"),i.isFullResize&&(o="none");let n="";"none"===i.mirrorRotate&&r&&(n+=" rotate("+r+"deg)"),"level"===i.mirrorRotate?n+=" rotateY(180deg)":"vertical"===i.mirrorRotate&&(n+=" rotateX(180deg)"),this.player._opt.videoRenderSupportScale&&(this.$videoElement.style.objectFit=o),this.$videoElement.style.transform=n,this.$videoElement.style.padding="0",this.$videoElement.style.left=s+"px",this.$videoElement.style.top=a+"px"}getType(){return te}getCurrentTime(){return this.$videoElement.currentTime}setCurrentTime(){this.$videoElement.currentTime=0}getDurationTime(){return this.$videoElement.duration}isPlaying(){return this.$videoElement&&po(this.$videoElement.paused)&&po(this.$videoElement.ended)&&0!==this.$videoElement.playbackRate&&0!==this.$videoElement.readyState}_canScreenshot(){return this.$videoElement&&this.$videoElement.readyState>=1}getPlaybackQuality(){let e=null;if(this.$videoElement){if(Ha(this.$videoElement.getVideoPlaybackQuality)){const t=this.$videoElement.getVideoPlaybackQuality();e={droppedVideoFrames:t.droppedVideoFrames||t.corruptedVideoFrames,totalVideoFrames:t.totalVideoFrames,creationTime:t.creationTime}}else e={droppedVideoFrames:this.$videoElement.webkitDroppedFrameCount,totalVideoFrames:this.$videoElement.webkitDecodedFrameCount,creationTime:la()};e&&(e.renderedVideoFrames=e.totalVideoFrames-e.droppedVideoFrames)}return e}setRate(e){this.$videoElement&&(this.$videoElement.playbackRate=e)}get rate(){let e=1;return this.$videoElement&&(e=this.$videoElement.playbackRate),e}clearCheckVideoCanplayTimeout(){this.checkVideoCanplayTimeout&&(clearTimeout(this.checkVideoCanplayTimeout),this.checkVideoCanplayTimeout=null)}_cancelVideoFrameCallback(){this.supportVideoFrameCallbackHandle&&this.$videoElement&&(this.$videoElement.cancelVideoFrameCallback(this.supportVideoFrameCallbackHandle),this.supportVideoFrameCallbackHandle=null)}_getBufferStore(){const e=this.$videoElement;let t=0;return e.buffered.length>0&&(t=e.buffered.start(0)),t}_handleUpdatePlaybackRate(){const e=this.$videoElement;let t=(this.player._opt.videoBuffer+this.player._opt.videoBufferDelay)/1e3;const i=e.buffered;i.length&&i.start(0);const r=i.length?i.end(i.length-1):0;let s=e.currentTime;const a=r-s,o=Math.max(5,t+3);if(this.player.updateStats({mseVideoBufferDelayTime:a}),a>o)this.player.debug.log(this.TAG_NAME,`handleUpdatePlaybackRate and buffered is ${r} and current is ${s} , delay buffer is more than ${o} is ${a} and new time is ${r}`),e.currentTime=r,s=e.currentTime;else if(a<0){if(this.player.debug.warn(this.TAG_NAME,`handleUpdatePlaybackRate and delay buffer is ${r} - current is ${s} = ${a} < 0 and check video is paused : ${e.paused} `),0===r)return void this.player.emit(It.mediaSourceBufferedIsZeroError,"video.buffered is empty");e.paused&&e.play()}const n=this._getPlaybackRate(r-s);e.playbackRate!==n&&(this.player.debug.log(this.TAG_NAME,`handleUpdatePlaybackRate and buffered is ${r} and current time is ${s} and delay is ${r-s} set playbackRate is ${n} `),e.playbackRate=n)}_getPlaybackRate(e){const t=this.$videoElement;let i=this.player._opt.videoBufferDelay+this.player._opt.videoBuffer;const r=Math.max(i,1e3),s=r/2;return e*=1e3,1===t.playbackRate?e>r?1.2:1:e<=s?1:t.playbackRate}getVideoCurrentTime(){let e=0;return this.$videoElement&&(e=this.$videoElement.currentTime),e}getVideoBufferLastTime(){const e=this.$videoElement;let t=0;if(e){const i=e.buffered;i.length&&i.start(0);t=i.length?i.end(i.length-1):0}return t}getVideoBufferDelayTime(){const e=this.$videoElement;const t=this.getVideoBufferLastTime()-e.currentTime;return t>0?t:0}checkSourceBufferDelay(){const e=this.$videoElement;let t=0,i=0;return e.buffered.length>0&&(i=e.buffered.end(e.buffered.length-1),t=i-e.currentTime),t<0&&(this.player.debug.warn(this.TAG_NAME,`checkVideoSourceBufferDelay ${t} < 0, and buffered is ${i} ,currentTime is ${e.currentTime} , try to seek ${e.currentTime} to ${i}`),e.currentTime=i,t=0),t}checkSourceBufferStore(){const e=this.$videoElement;let t=0;return e.buffered.length>0&&(t=e.currentTime-e.buffered.start(0)),t}getDecodePlaybackRate(){let e=0;const t=this.$videoElement;return t&&(e=t.playbackRate),e}}class Vo extends jo{constructor(e){super(e),this.controlHeight=0,this.bufferList=[],this.playing=!1,this.playInterval=null,this.fps=1,this.preFps=1,this.streamFps=0,this.playbackRate=1,this._firstTimestamp=null,this._renderFps=0,this._startfpsTime=null,this._startFpsTimestamp=null,this._hasCalcFps=!1,this.player.on(yt.playbackPause,(e=>{e?(this.pause(),this.player.playback.isPlaybackPauseClearCache&&this.clear()):this.resume()})),this.player.debug.log("CanvasPlaybackLoader","init")}destroy(){this._stopSync(),this._firstTimestamp=null,this.playing=!1,this.playbackRate=1,this.fps=1,this.preFps=1,this.bufferList=[],this._renderFps=0,this._startfpsTime=null,this._startFpsTimestamp=null,this._hasCalcFps=!1,super.destroy(),this.player.debug.log("CanvasPlaybackLoader","destroy")}_initCanvasRender(){this.player._opt.useWCS?(this.renderType=$t,yo()&&this.player._opt.wcsUseWebgl2Render?(this._initContextGl2(),this.webglRender&&(this.isWcsWebgl2=!0)):this._initContext2D()):this.player._opt.useWebGPU?(this.renderType=ii,this._initContextGPU()):(this.renderType=ei,this._initContextGl())}_sync(){this._stopSync(),this._doPlay(),this.playInterval=setInterval((()=>{this._doPlay()}),this.fragDuration)}_doPlay(){if(this.bufferList.length>0&&!this.player.seeking){const e=this.bufferList.shift();e&&e.buffer&&(this._doRender(e.buffer),this.player.handleRender(),this.player.playback.updateStats({ts:e.ts,tfTs:e.tfTs}))}}_stopSync(){this.playInterval&&(clearInterval(this.playInterval),this.playInterval=null)}_doRender(e){if(this.player._opt.useWCS)if(this.webglRender)this.webglRender.render(e),io(e);else if(Ha(e.createImageBitmap))try{e.createImageBitmap().then((t=>{this.context2D.drawImage(t,0,0,this.$videoElement.width,this.$videoElement.height),io(e)}))}catch(e){}else this.context2D.drawImage(e,0,0,this.$videoElement.width,this.$videoElement.height),io(e);else if(this.getCanvasType()===ei)try{this.webglRender.renderYUV(this.$videoElement.width,this.$videoElement.height,e)}catch(e){this.player.debug.error("CanvasPlaybackLoader",`doRender webgl render context is lost ${this.contextGl&&this.contextGl.isContextLost()} and error: ${e.toString()}`)}else if(this.getCanvasType()===ii)try{if(!this.webGPURender)return void this.player.debug.warn("CanvasVideoLoader","doRender webgpu render is not init");this.webGPURender.renderYUV(this.$videoElement.width,this.$videoElement.height,e)}catch(e){this.player.debug.error("CanvasPlaybackLoader",`doRender webgpu render and error: ${e.toString()}`)}}get rate(){return this.playbackRate}get fragDuration(){return Math.ceil(1e3/(this.fps*this.playbackRate))}get bufferSize(){return this.bufferList.length}getStreamFps(){return this.streamFps}initFps(){this._hasCalcFps?this.player.debug.log("CanvasPlaybackLoader","initFps, has calc fps"):(this.preFps=ha(this.player.playback.fps,1,100),this.fps=this.preFps)}setFps(e){e!==this.fps?(e>100&&this.player.debug.warn("CanvasPlaybackLoader","setFps max",e),e<0&&this.player.debug.warn("CanvasPlaybackLoader","setFps min",e),this.fps=ha(e,1,100),this.player.debug.log("CanvasPlaybackLoader",`setFps ${this.preFps} -> ${this.fps}`),this.player.playback.isUseFpsRender&&this._sync()):this.player.debug.log("CanvasPlaybackLoader",`setFps, same fps ${e}`)}setStreamFps(e){this.player.debug.log("CanvasPlaybackLoader","setStreamFps",e),this._hasCalcFps=!0,this.streamFps=e,this.preFps=e,this.setFps(e)}setRate(e){e!==this.playbackRate&&(this.playbackRate=e,this.player.playback.isUseFpsRender&&this._sync())}render$2(e){null===this._firstTimestamp&&(this._firstTimestamp=e.ts);const t={tfTs:e.ts-this._firstTimestamp,ts:e.ts};e.videoFrame?t.buffer=e.videoFrame:t.buffer=e.output,this.bufferList.push(t),this.startRender(),this.player.handleRender(),this.player.playback.updateStats({ts:e.ts,tfTs:t.tfTs})}startRender(){for(;!(this.bufferList.length<=0);){const e=this.bufferList.shift();this._doRender(e.buffer)}}pushData(e){null===this._firstTimestamp&&(this._firstTimestamp=e.ts);const t={tfTs:e.ts-this._firstTimestamp,ts:e.ts};e.videoFrame?t.buffer=e.videoFrame:t.buffer=e.output;const i=this.player._opt.playbackConfig.isCacheBeforeDecodeForFpsRender;if(i||this.bufferSize>this.fps*this.playbackRate*2&&(this.player.debug.warn("CanvasPlaybackLoader",`buffer size is ${this.bufferSize}`),this._doPlay()),this.bufferList.push(t),!this._hasCalcFps){const e=ao(this.bufferList);null!==e&&e!==this.preFps&&(this.player.debug.log("CanvasPlaybackLoader",`calc fps is ${e} pre fps is ${this.preFps} and updatePreFps`),this.setStreamFps(e))}if(!i){const e=this.bufferList.length,t=e/(this.fps*this.playbackRate);this.player.debug.log("CanvasPlaybackLoader","rate is",t),t<=1?this.setFps(this.preFps):(this.setFps(this.fps+Math.floor(t*this.playbackRate)),this.player.debug.warn("CanvasPlaybackLoader","rate is",t,"fps is",this.fps,"bufferListLength is",e))}}initVideo(){this.player.playback&&this.player.playback.isUseFpsRender&&this._sync(),this.playing=!0}initVideoDelay(){const e=this.player._opt.playbackDelayTime;e>0?this.delayTimeout=setTimeout((()=>{this.initVideo()}),e):this.initVideo()}clearView(){super.clearView(),this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT)}clear(){this.player._opt.useWCS&&this.bufferList.forEach((e=>{e.buffer&&io(e.buffer)})),this.bufferList=[]}resume(){this.player.playback.isUseFpsRender&&this._sync(),this.playing=!0}pause(){this.player.playback.isUseFpsRender&&this._stopSync(),this.playing=!1}}class Ho{constructor(e){return new(Ho.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.isMp4||e.isWsRtc?Zo:e.useMSE?e.mseUseCanvasRender?zo:Zo:e.isHls&&po(e.supportHls265)||e.isWebrtc&&po(e.isWebrtcH265)?e.useCanvasRender?zo:Zo:e.isAliyunRtc?Zo:e.useWCS?e.playType===v?Vo:!e.useOffscreen&&e.wcsUseVideoRender?Zo:zo:e.playType===v?Vo:e.wasmUseVideoRender&&!e.useOffscreen?Zo:zo}}class Xo extends ko{constructor(e){super(),this.bufferList=[],this.player=e,this.$audio=null,this.scriptNode=null,this.workletProcessorNode=null,this.hasInitScriptNode=!1,this.audioContext=new(window.AudioContext||window.webkitAudioContext)({sampleRate:48e3}),this.gainNode=this.audioContext.createGain();const t=this.audioContext.createBufferSource();t.buffer=this.audioContext.createBuffer(1,1,22050),t.connect(this.audioContext.destination),t.noteOn?t.noteOn(0):t.start(0),this.audioBufferSourceNode=t,this.mediaStreamAudioDestinationNode=this.audioContext.createMediaStreamDestination(),this.gainNode.gain.value=0,this.playing=!1,this.audioInfo={encTypeCode:"",encType:"",channels:"",sampleRate:"",depth:""},this.init=!1,this.hasAudio=!1,this.audioResumeStateTimeout=null}destroy(){this.closeAudio(),this.resetInit(),this.audioContext&&(this.audioContext.close(),this.audioContext=null),this.gainNode=null,this.hasAudio=!1,this.playing=!1,this.scriptNode&&(this.scriptNode.onaudioprocess=sa,this.scriptNode=null),this.workletProcessorNode&&(this.workletProcessorNode.port.onmessage=sa,this.workletProcessorNode=null),this.clearAudioResumeStateTimeout(),this.audioBufferSourceNode=null,this.mediaStreamAudioDestinationNode=null,this.hasInitScriptNode=!1,this.off()}resetInit(){this.audioInfo={encTypeCode:"",encType:"",channels:"",sampleRate:"",depth:""},this.init=!1}getAudioInfo(){return this.audioInfo}updateAudioInfo(e){e.encTypeCode&&(this.audioInfo.encTypeCode=e.encTypeCode,this.audioInfo.encType=xt[e.encTypeCode]),e.channels&&(this.audioInfo.channels=e.channels),e.sampleRate&&(this.audioInfo.sampleRate=e.sampleRate),e.depth&&(this.audioInfo.depth=e.depth),this.audioInfo.sampleRate&&this.audioInfo.channels&&this.audioInfo.encType&&!this.init&&(this.player.emit(yt.audioInfo,this.audioInfo),this.init=!0)}get isPlaying(){return this.playing}get isMute(){return 0===this.gainNode.gain.value}get volume(){return this.gainNode.gain.value}get bufferSize(){return this.bufferList.length}get audioContextState(){let e=null;return this.audioContext&&(e=this.audioContext.state),e}initScriptNode(){}initMobileScriptNode(){}initWorkletScriptNode(){}getEngineType(){return""}mute(e){e?(this.isMute||this.player.emit(yt.mute,e),this.setVolume(0),this.clear()):(this.isMute&&this.player.emit(yt.mute,e),this.setVolume(this.player.lastVolume||.5))}setVolume(e){e=parseFloat(e).toFixed(2),isNaN(e)||(this.audioEnabled(!0),e=ha(e,0,1),this.gainNode.gain.value=e,this.player.emit(yt.volumechange,this.player.volume))}closeAudio(){this.hasInitScriptNode&&(this.scriptNode&&this.scriptNode.disconnect(this.gainNode),this.workletProcessorNode&&this.workletProcessorNode.disconnect(this.gainNode),this.gainNode&&(this.gainNode.disconnect(this.mediaStreamAudioDestinationNode),this.$audio||this.gainNode.disconnect(this.audioContext.destination))),this.clear()}audioEnabled(e){e?this.isStateSuspended()&&(this.audioContext.resume().then((()=>{this.player.emit(yt.audioResumeState,{state:this.audioContextState,isRunning:this.isStateRunning()})})),this.audioResumeStateTimeout=setTimeout((()=>{this.clearAudioResumeStateTimeout(),this.isStateSuspended()&&this.player.emit(yt.audioResumeState,{state:this.audioContextState,isRunning:this.isStateRunning()})}),1e3)):this.isStateRunning()&&this.audioContext.suspend()}isStateRunning(){return"running"===this.audioContextState}isStateSuspended(){return"suspended"===this.audioContextState}clearAudioResumeStateTimeout(){this.audioResumeStateTimeout&&(clearTimeout(this.audioResumeStateTimeout),this.audioResumeStateTimeout=null)}clear(){this.bufferList=[]}play(e,t){}pause(){this.playing=!1}resume(){this.playing=!0}setRate(e){}getAudioBufferSize(){return 0}}class _o{constructor(e,t,i,r){this.player=e,this.audio=t,this.channel=i,this.bufferSize=r}extract(e,t){let i=this.provide(t);for(let t=0;t<i.size;t++)e[2*t]=i.left[t],e[2*t+1]=i.right[t];return this.audio.tempAudioTimestamp=i.ts,i.size}provide(e){let t=new Float32Array(e),i=new Float32Array(e),r=0,s=0,a=0,o=e/this.bufferSize;const n=this.audio.bufferList;if(o&&n.length>=o){try{for(let e=0;e<o;e++){const e=n.shift();2===this.channel?(t.set(e.buffer[0],a),i.set(e.buffer[1],a)):(t.set(e.buffer[0],a),i.set(e.buffer[0],a)),a+=this.bufferSize,s=e.ts}}catch(e){this.player.debug.warn("Processor","provide()",e),t=new Float32Array(0),i=new Float32Array(0)}r=t.length}return{size:r,ts:s,left:t,right:i}}destroy(){this.buffer=null,this.channel=null}}class $o{constructor(){this._vector=new Float32Array,this._position=0,this._frameCount=0}get vector(){return this._vector}get position(){return this._position}get startIndex(){return 2*this._position}get frameCount(){return this._frameCount}get endIndex(){return 2*(this._position+this._frameCount)}clear(){this.receive(this._frameCount),this.rewind()}put(e){this._frameCount+=e}putSamples(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const r=2*(t=t||0);i>=0||(i=(e.length-r)/2);const s=2*i;this.ensureCapacity(i+this._frameCount);const a=this.endIndex;this.vector.set(e.subarray(r,r+s),a),this._frameCount+=i}putBuffer(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;t=t||0,i>=0||(i=e.frameCount-t),this.putSamples(e.vector,e.position+t,i)}receive(e){e>=0&&!(e>this._frameCount)||(e=this.frameCount),this._frameCount-=e,this._position+=e}receiveSamples(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const i=2*t,r=this.startIndex;e.set(this._vector.subarray(r,r+i)),this.receive(t)}extract(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const r=this.startIndex+2*t,s=2*i;e.set(this._vector.subarray(r,r+s))}ensureCapacity(){const e=parseInt(2*(arguments.length>0&&void 0!==arguments[0]?arguments[0]:0));if(this._vector.length<e){const t=new Float32Array(e);t.set(this._vector.subarray(this.startIndex,this.endIndex)),this._vector=t,this._position=0}else this.rewind()}ensureAdditionalCapacity(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.ensureCapacity(this._frameCount+e)}rewind(){this._position>0&&(this._vector.set(this._vector.subarray(this.startIndex,this.endIndex)),this._position=0)}}class en{constructor(e){e?(this._inputBuffer=new $o,this._outputBuffer=new $o):this._inputBuffer=this._outputBuffer=null}get inputBuffer(){return this._inputBuffer}set inputBuffer(e){this._inputBuffer=e}get outputBuffer(){return this._outputBuffer}set outputBuffer(e){this._outputBuffer=e}clear(){this._inputBuffer.clear(),this._outputBuffer.clear()}}class tn extends en{constructor(e){super(e),this.reset(),this._rate=1}set rate(e){this._rate=e}reset(){this.slopeCount=0,this.prevSampleL=0,this.prevSampleR=0}clone(){const e=new tn;return e.rate=this._rate,e}process(){const e=this._inputBuffer.frameCount;this._outputBuffer.ensureAdditionalCapacity(e/this._rate+1);const t=this.transpose(e);this._inputBuffer.receive(),this._outputBuffer.put(t)}transpose(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(0===e)return 0;const t=this._inputBuffer.vector,i=this._inputBuffer.startIndex,r=this._outputBuffer.vector,s=this._outputBuffer.endIndex;let a=0,o=0;for(;this.slopeCount<1;)r[s+2*o]=(1-this.slopeCount)*this.prevSampleL+this.slopeCount*t[i],r[s+2*o+1]=(1-this.slopeCount)*this.prevSampleR+this.slopeCount*t[i+1],o+=1,this.slopeCount+=this._rate;if(this.slopeCount-=1,1!==e)e:for(;;){for(;this.slopeCount>1;)if(this.slopeCount-=1,a+=1,a>=e-1)break e;const n=i+2*a;r[s+2*o]=(1-this.slopeCount)*t[n]+this.slopeCount*t[n+2],r[s+2*o+1]=(1-this.slopeCount)*t[n+1]+this.slopeCount*t[n+3],o+=1,this.slopeCount+=this._rate}return this.prevSampleL=t[i+2*e-2],this.prevSampleR=t[i+2*e-1],o}}class rn{constructor(e){this._pipe=e}get pipe(){return this._pipe}get inputBuffer(){return this._pipe.inputBuffer}get outputBuffer(){return this._pipe.outputBuffer}fillInputBuffer(){throw new Error("fillInputBuffer() not overridden")}fillOutputBuffer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;for(;this.outputBuffer.frameCount<e;){const e=16384-this.inputBuffer.frameCount;if(this.fillInputBuffer(e),this.inputBuffer.frameCount<16384)break;this._pipe.process()}}clear(){this._pipe.clear()}}const sn=function(){};class an extends rn{constructor(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:sn;super(t),this.callback=i,this.sourceSound=e,this.historyBufferSize=22050,this._sourcePosition=0,this.outputBufferPosition=0,this._position=0}get position(){return this._position}set position(e){if(e>this._position)throw new RangeError("New position may not be greater than current position");const t=this.outputBufferPosition-(this._position-e);if(t<0)throw new RangeError("New position falls outside of history buffer");this.outputBufferPosition=t,this._position=e}get sourcePosition(){return this._sourcePosition}set sourcePosition(e){this.clear(),this._sourcePosition=e}onEnd(){this.callback()}fillInputBuffer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;const t=new Float32Array(2*e),i=this.sourceSound.extract(t,e,this._sourcePosition);this._sourcePosition+=i,this.inputBuffer.putSamples(t,0,i)}extract(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.fillOutputBuffer(this.outputBufferPosition+t);const i=Math.min(t,this.outputBuffer.frameCount-this.outputBufferPosition);this.outputBuffer.extract(e,this.outputBufferPosition,i);const r=this.outputBufferPosition+i;return this.outputBufferPosition=Math.min(this.historyBufferSize,r),this.outputBuffer.receive(Math.max(r-this.historyBufferSize,0)),this._position+=i,i}handleSampleData(e){this.extract(e.data,4096)}clear(){super.clear(),this.outputBufferPosition=0}}const on=[[124,186,248,310,372,434,496,558,620,682,744,806,868,930,992,1054,1116,1178,1240,1302,1364,1426,1488,0],[-100,-75,-50,-25,25,50,75,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-20,-15,-10,-5,5,10,15,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-4,-3,-2,-1,1,2,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],nn=-10/1.5;class ln extends en{constructor(e){super(e),this._quickSeek=!0,this.midBufferDirty=!1,this.midBuffer=null,this.overlapLength=0,this.autoSeqSetting=!0,this.autoSeekSetting=!0,this._tempo=1,this.setParameters(44100,0,0,8)}clear(){super.clear(),this.clearMidBuffer()}clearMidBuffer(){this.midBufferDirty&&(this.midBufferDirty=!1,this.midBuffer=null)}setParameters(e,t,i,r){e>0&&(this.sampleRate=e),r>0&&(this.overlapMs=r),t>0?(this.sequenceMs=t,this.autoSeqSetting=!1):this.autoSeqSetting=!0,i>0?(this.seekWindowMs=i,this.autoSeekSetting=!1):this.autoSeekSetting=!0,this.calculateSequenceParameters(),this.calculateOverlapLength(this.overlapMs),this.tempo=this._tempo}set tempo(e){let t;this._tempo=e,this.calculateSequenceParameters(),this.nominalSkip=this._tempo*(this.seekWindowLength-this.overlapLength),this.skipFract=0,t=Math.floor(this.nominalSkip+.5),this.sampleReq=Math.max(t+this.overlapLength,this.seekWindowLength)+this.seekLength}get tempo(){return this._tempo}get inputChunkSize(){return this.sampleReq}get outputChunkSize(){return this.overlapLength+Math.max(0,this.seekWindowLength-2*this.overlapLength)}calculateOverlapLength(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;e=this.sampleRate*t/1e3,e=e<16?16:e,e-=e%8,this.overlapLength=e,this.refMidBuffer=new Float32Array(2*this.overlapLength),this.midBuffer=new Float32Array(2*this.overlapLength)}checkLimits(e,t,i){return e<t?t:e>i?i:e}calculateSequenceParameters(){let e,t;this.autoSeqSetting&&(e=150+-50*this._tempo,e=this.checkLimits(e,50,125),this.sequenceMs=Math.floor(e+.5)),this.autoSeekSetting&&(t=28.333333333333332+nn*this._tempo,t=this.checkLimits(t,15,25),this.seekWindowMs=Math.floor(t+.5)),this.seekWindowLength=Math.floor(this.sampleRate*this.sequenceMs/1e3),this.seekLength=Math.floor(this.sampleRate*this.seekWindowMs/1e3)}set quickSeek(e){this._quickSeek=e}clone(){const e=new ln;return e.tempo=this._tempo,e.setParameters(this.sampleRate,this.sequenceMs,this.seekWindowMs,this.overlapMs),e}seekBestOverlapPosition(){return this._quickSeek?this.seekBestOverlapPositionStereoQuick():this.seekBestOverlapPositionStereo()}seekBestOverlapPositionStereo(){let e,t,i,r=0;for(this.preCalculateCorrelationReferenceStereo(),e=0,t=Number.MIN_VALUE;r<this.seekLength;r+=1)i=this.calculateCrossCorrelationStereo(2*r,this.refMidBuffer),i>t&&(t=i,e=r);return e}seekBestOverlapPositionStereoQuick(){let e,t,i,r,s,a=0;for(this.preCalculateCorrelationReferenceStereo(),t=Number.MIN_VALUE,e=0,r=0,s=0;a<4;a+=1){let o=0;for(;on[a][o]&&(s=r+on[a][o],!(s>=this.seekLength));)i=this.calculateCrossCorrelationStereo(2*s,this.refMidBuffer),i>t&&(t=i,e=s),o+=1;r=e}return e}preCalculateCorrelationReferenceStereo(){let e,t,i=0;for(;i<this.overlapLength;i+=1)t=i*(this.overlapLength-i),e=2*i,this.refMidBuffer[e]=this.midBuffer[e]*t,this.refMidBuffer[e+1]=this.midBuffer[e+1]*t}calculateCrossCorrelationStereo(e,t){const i=this._inputBuffer.vector;e+=this._inputBuffer.startIndex;let r=0,s=2;const a=2*this.overlapLength;let o;for(;s<a;s+=2)o=s+e,r+=i[o]*t[s]+i[o+1]*t[s+1];return r}overlap(e){this.overlapStereo(2*e)}overlapStereo(e){const t=this._inputBuffer.vector;e+=this._inputBuffer.startIndex;const i=this._outputBuffer.vector,r=this._outputBuffer.endIndex;let s,a,o=0;const n=1/this.overlapLength;let l,h,A;for(;o<this.overlapLength;o+=1)a=(this.overlapLength-o)*n,l=o*n,s=2*o,h=s+e,A=s+r,i[A+0]=t[h+0]*l+this.midBuffer[s+0]*a,i[A+1]=t[h+1]*l+this.midBuffer[s+1]*a}process(){let e,t,i;if(null===this.midBuffer){if(this._inputBuffer.frameCount<this.overlapLength)return;this.midBuffer=new Float32Array(2*this.overlapLength),this._inputBuffer.receiveSamples(this.midBuffer,this.overlapLength)}for(;this._inputBuffer.frameCount>=this.sampleReq;){e=this.seekBestOverlapPosition(),this._outputBuffer.ensureAdditionalCapacity(this.overlapLength),this.overlap(Math.floor(e)),this._outputBuffer.put(this.overlapLength),t=this.seekWindowLength-2*this.overlapLength,t>0&&this._outputBuffer.putBuffer(this._inputBuffer,e+this.overlapLength,t);const r=this._inputBuffer.startIndex+2*(e+this.seekWindowLength-this.overlapLength);this.midBuffer.set(this._inputBuffer.vector.subarray(r,r+2*this.overlapLength)),this.skipFract+=this.nominalSkip,i=Math.floor(this.skipFract),this.skipFract-=i,this._inputBuffer.receive(i)}}}const hn=function(e,t){return(e>t?e-t:t-e)>1e-10};class An{constructor(){this.transposer=new tn(!1),this.stretch=new ln(!1),this._inputBuffer=new $o,this._intermediateBuffer=new $o,this._outputBuffer=new $o,this._rate=0,this._tempo=0,this.virtualPitch=1,this.virtualRate=1,this.virtualTempo=1,this.calculateEffectiveRateAndTempo()}clear(){this.transposer.clear(),this.stretch.clear()}clone(){const e=new An;return e.rate=this.rate,e.tempo=this.tempo,e}get rate(){return this._rate}set rate(e){this.virtualRate=e,this.calculateEffectiveRateAndTempo()}set rateChange(e){this._rate=1+.01*e}get tempo(){return this._tempo}set tempo(e){this.virtualTempo=e,this.calculateEffectiveRateAndTempo()}set tempoChange(e){this.tempo=1+.01*e}set pitch(e){this.virtualPitch=e,this.calculateEffectiveRateAndTempo()}set pitchOctaves(e){this.pitch=Math.exp(.69314718056*e),this.calculateEffectiveRateAndTempo()}set pitchSemitones(e){this.pitchOctaves=e/12}get inputBuffer(){return this._inputBuffer}get outputBuffer(){return this._outputBuffer}calculateEffectiveRateAndTempo(){const e=this._tempo,t=this._rate;this._tempo=this.virtualTempo/this.virtualPitch,this._rate=this.virtualRate*this.virtualPitch,hn(this._tempo,e)&&(this.stretch.tempo=this._tempo),hn(this._rate,t)&&(this.transposer.rate=this._rate),this._rate>1?this._outputBuffer!=this.transposer.outputBuffer&&(this.stretch.inputBuffer=this._inputBuffer,this.stretch.outputBuffer=this._intermediateBuffer,this.transposer.inputBuffer=this._intermediateBuffer,this.transposer.outputBuffer=this._outputBuffer):this._outputBuffer!=this.stretch.outputBuffer&&(this.transposer.inputBuffer=this._inputBuffer,this.transposer.outputBuffer=this._intermediateBuffer,this.stretch.inputBuffer=this._intermediateBuffer,this.stretch.outputBuffer=this._outputBuffer)}process(){this._rate>1?(this.stretch.process(),this.transposer.process()):(this.transposer.process(),this.stretch.process())}}class dn{constructor(e,t,i){this.player=e,this.audio=t,this.soundTouch=new An,this.soundTouch.tempo=1,this.soundTouch.rate=1,this.filter=new an(i,this.soundTouch)}setRate(e){e!==this.soundTouch.rate&&(this.soundTouch.tempo=e)}provide(e){let t=new Float32Array(2*e),i=this.filter.extract(t,e),r=new Float32Array(i),s=new Float32Array(i);for(let e=0;e<i;e++)r[e]=t[2*e],s[e]=t[2*e+1];return{size:i,left:r,right:s,ts:this.audio.tempAudioTimestamp||0}}destroy(){this.soundTouch&&(this.soundTouch.clear(),this.soundTouch=null),this.filter&&(this.filter=null)}}class cn extends Xo{constructor(e){super(e),this.defaultPlaybackRate=1,this.playbackRate=1,this.rateProcessor=null,this.processor=null,this.scriptNodeInterval=null,this.engineType=this.getAutoAudioEngineType(),this.audioBufferSize=this.getAudioBufferSizeByType(),this.$audio=null,this._delayPlay=!1,this.eventListenList=[],this.workletUrl=null,this.clearWorkletUrlTimeout=null,this.player._opt.supportLockScreenPlayAudio&&$a()&&(this.$audio=document.createElement("audio"),Object.assign(this.$audio.style,{position:"absolute",left:"-100%",top:"-100%"}),e.$container?e.$container.appendChild(this.$audio):document.body.appendChild(this.$audio),this._bindAudioProxy(),this.player.debug.log("AudioContext","create audio element")),this.scriptStartTime=0,this.player.debug.log("AudioContext","init",`engineType: ${this.engineType}, audioBufferSize: ${this.audioBufferSize}`)}destroy(){super.destroy(),this.workletUrl&&(URL.revokeObjectURL(this.workletUrl),this.workletUrl=null),this.clearWorkletUrlTimeout&&(clearTimeout(this.clearWorkletUrlTimeout),this.clearWorkletUrlTimeout=null),this.eventListenList&&(this.eventListenList.forEach((e=>{e()})),this.eventListenList=[]),this.$audio&&(this.$audio.pause(),this.$audio.srcObject=null,this.$audio.parentNode&&this.$audio.parentNode.removeChild(this.$audio),this.$audio=null),this.processor&&(this.processor.destroy(),this.processor=null),this.rateProcessor&&(this.rateProcessor.destroy(),this.rateProcessor=null),this.scriptNodeInterval&&(clearInterval(this.scriptNodeInterval),this.scriptNodeInterval=null),this.defaultPlaybackRate=1,this.playbackRate=1,this.scriptStartTime=0,this.audioBufferSize=0,this.engineType=xr,this.player.debug.log("AudioContext","destroy")}isAudioPlaying(){return this.$audio&&po(this.$audio.paused)&&po(this.$audio.ended)&&0!==this.$audio.playbackRate&&0!==this.$audio.readyState}_bindAudioProxy(){const{proxy:e}=this.player.events,t=e(this.$audio,"canplay",(()=>{this.player.debug.log("AudioContext","canplay"),this._delayPlay&&this._audioElementPlay()}));this.eventListenList.push(t)}_getAudioElementReadyState(){let e=0;return this.$audio&&(e=this.$audio.readyState),e}audioElementPlay(){if(this.$audio){const e=this._getAudioElementReadyState();if(this.player.debug.log("AudioContext",`play and readyState: ${e}`),!(0!==e||za()&&$a()))return this.player.debug.warn("AudioContext","readyState is 0 and set _delayPlay to true"),void(this._delayPlay=!0);this._audioElementPlay()}}_audioElementPlay(){this.$audio&&this.$audio.play().then((()=>{this._delayPlay=!1,this.player.debug.log("AudioContext","_audioElementPlay success"),setTimeout((()=>{this.isAudioPlaying()||(this.player.debug.warn("AudioContext","play failed and retry play"),this._audioElementPlay())}),100),this.isAudioPlaying()&&(this.player.debug.log("AudioContext","play success and remove document click event listener"),document.removeEventListener("click",this._audioElementPlay.bind(this)))})).catch((e=>{this.player.debug.error("AudioContext","_audioElementPlay error",e),document.addEventListener("click",this._audioElementPlay.bind(this))}))}getAudioBufferSize(){return this.audioBufferSize}get oneBufferDuration(){return this.audioBufferSize/this.audioContext.sampleRate*1e3}get isActiveEngineType(){return this.engineType===Fr}initProcessor(){this.processor=new _o(this.player,this,this.audioInfo.channels,this.audioBufferSize),this.rateProcessor=new dn(this.player,this,this.processor)}getAutoAudioEngineType(){let e=this.player._opt.audioEngine||xr;const t=()=>{e=za()&&ma()?Fr:$a()&&this.player._opt.supportLockScreenPlayAudio?xr:ro()&&this.supportAudioWorklet()?qr:xr};return this.player._opt.audioEngine?this.player._opt.audioEngine===qr&&ro()?e=qr:this.player._opt.audioEngine===Fr?e=Fr:this.player._opt.audioEngine===xr?e=xr:t():t(),e}getAudioBufferSizeByType(){const e=this.engineType;this.player._opt.hasVideo;const t=this.player._opt.weiXinInAndroidAudioBufferSize;return e===qr?1024:e===Fr?t||4800:1024}supportAudioWorklet(){return this.audioContext&&this.audioContext.audioWorklet}initScriptNode(){this.playing=!0,this.hasInitScriptNode||(this.initProcessor(),this.engineType===qr?this.initWorkletScriptNode():this.engineType===Fr?this.initIntervalScriptNode():this.engineType===xr&&this.initProcessScriptNode(),this.audioElementPlay())}getEngineType(){return this.engineType}isPlaybackRateSpeed(){return this.playbackRate>this.defaultPlaybackRate}initProcessScriptNode(){const e=this.audioContext.createScriptProcessor(this.audioBufferSize,0,this.audioInfo.channels);e.onaudioprocess=e=>{const t=e.outputBuffer;this.handleScriptNodeCallback(t)},e.connect(this.gainNode),this.scriptNode=e,this.gainNode.connect(this.mediaStreamAudioDestinationNode),this.$audio?this.$audio.srcObject=this.mediaStreamAudioDestinationNode.stream:this.gainNode.connect(this.audioContext.destination),this.hasInitScriptNode=!0}initIntervalScriptNode(){this.scriptStartTime=0;const e=1e3*this.audioBufferSize/this.audioContext.sampleRate;this.scriptNodeInterval=setInterval((()=>{if(0===this.bufferList.length||po(this.playing)||this.isMute)return void(this.playing&&po(this.isMute)&&this.player.debug.log("AudioContext",`interval script node and bufferList is ${this.bufferList.length} or playing is ${this.playing}`));const e=this.audioContext.createBufferSource(),t=this.audioContext.createBuffer(this.audioInfo.channels,this.audioBufferSize,this.audioContext.sampleRate);this.handleScriptNodeCallback(t,(()=>{this.scriptStartTime<this.audioContext.currentTime&&(this.player.debug.log("AudioContext",`script start time ${this.scriptStartTime} is less than current time ${this.audioContext.currentTime}`),this.scriptStartTime=this.audioContext.currentTime),e.buffer=t,e.connect(this.gainNode),e.start(this.scriptStartTime),this.scriptStartTime+=t.duration}))}),e),this.gainNode.connect(this.mediaStreamAudioDestinationNode),this.$audio?this.$audio.srcObject=this.mediaStreamAudioDestinationNode.stream:this.gainNode.connect(this.audioContext.destination),this.hasInitScriptNode=!0}initWorkletScriptNode(){let e=to((function(){class e extends AudioWorkletProcessor{constructor(){super(),this.audioBufferSize=1024,this.start=!1,this.channels=1,this.samplesArray=[],this.offset=0,this.state=0,this.port.onmessage=e=>{"init"===e.data.message?(this.audioBufferSize=e.data.audioBufferSize,this.start=e.data.start,this.channels=e.data.channels,this.state=0,this.offset=0,this.samplesArray=[]):"stop"===e.data.message?(this.state=0,this.start=!1,this.offset=0,this.samplesArray=[]):"data"===e.data.message?this.samplesArray.push(e.data.buffer):"zero"===e.data.message&&this.samplesArray.push({left:new Float32Array(this.audioBufferSize).fill(0),right:new Float32Array(this.audioBufferSize).fill(0)})}}process(e,t,i){const r=t[0][0],s=t[0][1];if(0===this.offset&&this.port.postMessage({message:"beep"}),0===this.state)this.state=1;else if(1===this.state&&this.samplesArray.length>=4)this.state=2;else if(2===this.state){const e=this.samplesArray[0];for(let t=0;t<r.length;t++)1===this.channels?r[t]=e.left[t+this.offset]:2===this.channels&&(r[t]=e.left[t+this.offset],s&&(s[t]=e.right[t+this.offset]))}else 1===this.channels?r.fill(0):2===this.channels&&(r.fill(0),s&&s.fill(0));return this.offset+=128,this.offset===this.audioBufferSize&&(this.offset=0,2===this.state&&this.samplesArray.shift(),0===this.samplesArray.length&&(this.state=0)),this.start}}registerProcessor("worklet-processor",e)}));this.workletUrl=e,this.audioContext.audioWorklet.addModule(e).then((()=>{if(this.player.isDestroyedOrClosed())return void this.player.debug.log("AudioContext","initWorkletScriptNode() player is destroyed");if(!this.audioContext)return void this.player.debug.warn("AudioContext","initWorkletScriptNode audioContext is null");let e=[1];2===this.audioInfo.channels&&(e=[1,1]);try{this.workletProcessorNode=new AudioWorkletNode(this.audioContext,"worklet-processor",{numberOfOutputs:this.audioInfo.channels,outputChannelCount:e})}catch(e){this.player.debug.error("AudioContext","initWorkletScriptNode error",e),this.workletProcessorNode=null,this.tierDownToProcessScript()}this.workletProcessorNode&&(this.workletProcessorNode.connect(this.gainNode),this.gainNode.connect(this.mediaStreamAudioDestinationNode),this.$audio?this.$audio.srcObject=this.mediaStreamAudioDestinationNode.stream:this.gainNode.connect(this.audioContext.destination),this.hasInitScriptNode=!0,this.workletProcessorNode.port.postMessage({message:"init",audioBufferSize:this.audioBufferSize,start:!0,channels:this.audioInfo.channels}),this.workletProcessorNode.port.onmessage=e=>{this.workletProcessorNode?this.audioContext?this.handleScriptNodeCallback(this.workletProcessorNode,null,!0):this.workletProcessorNode.port.postMessage({message:"zero"}):this.player.debug.error("AudioContext","workletProcessorNode is null")})})),this.clearWorkletUrlTimeout=setTimeout((()=>{URL.revokeObjectURL(this.workletUrl),this.workletUrl=null,this.clearWorkletUrlTimeout=null}),de)}tierDownToProcessScript(){this.player.debug.log("AudioContext","tierDownToProcessScript"),this.engineType=xr,this.audioBufferSize=this.getAudioBufferSizeByType(),this.initProcessScriptNode(),this.audioElementPlay()}handleScriptNodeCallback(e,t){let i,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];t=t||sa;let s=e.length;r&&(i=e,s=this.audioBufferSize);const a=this.audioInfo.channels;if(this.bufferList.length&&this.playing){if(this.player._opt,this.player.openSyncAudioAndVideo()&&uo(this.player.visibility)){this.calcPlaybackRateBySync();const s=this.player.getAudioSyncVideoDiff();if(s>this.player._opt.syncAudioAndVideoDiff)return this.player.debug.warn("AudioContext",`audioSyncVideoOption more than diff :${s}, waiting and bufferList is ${this.bufferList.length}`),r?i.port.postMessage({message:"zero"}):this.fillScriptNodeOutputBuffer(e,a),void t()}let o=this._provide(s);if(0===o.size)return po(this.player.isPlaybackOnlyDecodeIFrame())&&this.player.debug.warn("AudioContext",`bufferList size is ${this.bufferList.length} outputBufferLength is ${s},and bufferItem.size is 0`),r?i.port.postMessage({message:"zero"}):this.fillScriptNodeOutputBuffer(e,a),void t();o&&o.ts&&(this.player.audioTimestamp=o.ts),r?i.port.postMessage({message:"data",buffer:o}):this.fillScriptNodeOutputBuffer(e,a,o),t()}else 0===this.bufferList.length&&this.playing&&po(this.isMute)&&po(this.player.isPlaybackOnlyDecodeIFrame())&&this.player.debug.warn("AudioContext",`bufferList size is 0 and outputBufferLength is ${s}`),r?i.port.postMessage({message:"zero"}):this.fillScriptNodeOutputBuffer(e,a),t()}fillScriptNodeOutputBuffer(e,t,i){if(1===t){const t=e.getChannelData(0);i?0===i.size?t.fill(0):t.set(i.left):t.fill(0)}else if(2===t){const t=e.getChannelData(0),r=e.getChannelData(1);i?0===i.size?(t.fill(0),r.fill(0)):(t.set(i.left),r.set(i.right)):(t.fill(0),r.fill(0))}}play(e,t){this.isMute||(this.hasInitScriptNode?(this.hasAudio=!0,this.player.latestAudioTimestamp=t,this.bufferList.push({buffer:e,ts:t}),po(this.player.openSyncAudioAndVideo())&&this.calcPlaybackRateByBuffer()):this.player.debug.warn("AudioContext","play has not init script node"))}calcPlaybackRateBySync(){if(this.isMute)return;if(!this.playing)return;const e=Math.floor(2e3/this.oneBufferDuration);if(this.bufferList.length>e)return this.player.debug.warn("AudioContext",`bufferList length ${this.bufferList.length} more than ${e}, and drop`),void this.clear();const t=this.player.getAudioSyncVideoDiff();if(this.getEngineType()===Fr){if(t<-this.player._opt.syncAudioAndVideoDiff){this.player.debug.warn("AudioContext",`engine active , audioSyncVideoOption ${-this.player._opt.syncAudioAndVideoDiff} less than diff :${t},\n and bufferlist is ${this.bufferList.length}`);const e=this.player.getRenderCurrentPts();for(;this.bufferList.length>0;){const t=this.bufferList[0],i=t.ts-e;if(i>-this.player._opt.syncAudioAndVideoDiff/2){this.player.audioTimestamp=t.ts,this.player.debug.log("AudioContext",`engine active , audioSyncVideoOption\n item.ts is ${t.ts} and currentVideoTimestamp is ${e}, diff is ${i} > -${this.player._opt.syncAudioAndVideoDiff/2} and end`);break}this.bufferList.shift(),this.player.audioTimestamp=t.ts}}}else{let e=this.playbackRate;t<-this.player._opt.syncAudioAndVideoDiff?e===this.defaultPlaybackRate&&(this.player.debug.log("AudioContext",`audioSyncVideoOption ${-this.player._opt.syncAudioAndVideoDiff} less than diff :${t},\n speed up, playbackRate is ${e},\n and bufferList is ${this.bufferList.length}`),e=this.defaultPlaybackRate+.2):t>-this.player._opt.syncAudioAndVideoDiff/2&&e!==this.defaultPlaybackRate&&(this.player.debug.log("AudioContext",`diff is ${t} > -${this.player._opt.syncAudioAndVideoDiff/2} and speed to 1`),e=this.defaultPlaybackRate),this.updatePlaybackRate(e)}}calcPlaybackRateByBuffer(){if(this.isMute)return;if(!this.playing)return;let e=this.playbackRate,t=1e3,i=5e3;this.isAudioPlayer&&(t=this.player._opt.videoBufferDelay,i=this.player._opt.videoBufferMax);const r=Math.floor(t/this.oneBufferDuration),s=Math.floor(i/this.oneBufferDuration);if(this.bufferList.length>s)return this.player.debug.warn("AudioContext",`bufferList length ${this.bufferList.length} more than ${s}, and drop`),void this.clear();this.getEngineType()!==Fr&&(this.bufferList.length>r?(e=this.defaultPlaybackRate+.2,this.player.debug.log("AudioContext",`bufferList length ${this.bufferList.length} more than ${r}, speed up, playbackRate is ${e}`)):this.bufferList.length<r/2&&(e=this.defaultPlaybackRate),this.updatePlaybackRate(e))}updatePlaybackRate(e){this.rateProcessor&&(this.playbackRate=e,this.rateProcessor.setRate(this.playbackRate))}_provide(e){return(1===this.playbackRate?this.processor:this.rateProcessor).provide(e)}}class un extends ko{constructor(e){super(),this.player=e,this.$video=e.video.$videoElement,this.init=!1,this.player._opt.hlsUseCanvasRender&&(this.$video=this.player.hlsDecoder.$videoElement),this.player._opt.webrtcUseCanvasRender&&(this.$video=this.player.webrtc.$videoElement),this.player.mp4Decoder&&(this.$video=this.player.mp4Decoder.$videoElement),this.player.wsRtcDecoder&&(this.$video=this.player.wsRtcDecoder.$videoElement),this.audioInfo={encTypeCode:"",encType:"",channels:"",sampleRate:"",depth:""},this.player.debug.log("Audio","init")}destroy(){this.resetInit(),this.off(),this.player.debug.log("Audio","destroy")}resetInit(){this.init=!1,this.audioInfo={encTypeCode:"",encType:"",channels:"",sampleRate:"",depth:""}}getAudioInfo(){return this.audioInfo}updateAudioInfo(e){e.encTypeCode&&(this.audioInfo.encTypeCode=e.encTypeCode,this.audioInfo.encType=xt[e.encTypeCode]),e.encType&&(this.audioInfo.encType=e.encType),e.channels&&(this.audioInfo.channels=e.channels),e.sampleRate&&(this.audioInfo.sampleRate=e.sampleRate),e.depth&&(this.audioInfo.depth=e.depth),this.audioInfo.sampleRate&&this.audioInfo.channels&&this.audioInfo.encType&&!this.init&&(this.player.debug.log("Audio","audioInfo",JSON.stringify(this.audioInfo)),this.player.emit(yt.audioInfo,this.audioInfo),this.init=!0)}get isPlaying(){return!0}get volume(){return uo(this.$video.muted)?0:this.$video.volume}get isMute(){return 0===this.$video.volume||uo(this.$video.muted)}mute(e){this.setVolume(e?0:this.player.lastVolume||.5)}setVolume(e){e=parseFloat(e),isNaN(e)||(e=ha(e,0,1),this.$video.muted&&(this.$video.muted=!1),$a()&&(this.$video.muted=0===e),this.player.isAliyunRtc()&&this.player.aliyunRtcDecoder&&this.player.aliyunRtcDecoder.aliyunRtcRemoteStream&&(this.player.aliyunRtcDecoder.aliyunRtcRemoteStream.muted=0===e),this.$video.volume=e,this.player.emit(yt.volumechange,this.player.volume))}clear(){}play(){}pause(){}resume(){}getEngineType(){return"audio"}isPlaybackRateSpeed(){return!1}getAudioBufferSize(){return 0}setRate(){}initScriptNode(){}initScriptNodeDelay(){}}class pn extends cn{constructor(e){super(e),this.delayTimeout=null,this.player.on(yt.playbackPause,(e=>{this.listenPlaybackPause(e)})),this.player.debug.log("AudioPlaybackContext","init")}destroy(){this.delayTimeout&&(clearTimeout(this.delayTimeout),this.delayTimeout=null),super.destroy(),this.player.debug.log("AudioPlaybackLoader","destroy")}listenPlaybackPause(e){e?(this.pause(),this.player.playback.isPlaybackPauseClearCache&&this.clear()):this.resume()}initScriptNodeDelay(){const e=this.player._opt.playbackDelayTime;e>0?this.delayTimeout=setTimeout((()=>{this.initScriptNode()}),e):this.initScriptNode()}setRate(e){e!==this.defaultPlaybackRate&&this.rateProcessor&&(this.player.debug.log("AudioPlaybackContext","setRate",e),this.defaultPlaybackRate=e,this.updatePlaybackRate(e))}}class gn extends cn{constructor(e){super(e),this.TAG_NAME="AudioPlayerLoader",this.isAudioPlayer=!0,this.player.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.player.debug.log(this.TAG_NAME,"destroy")}play(e,t){po(this.playing)||super.play(e,t)}pause(){this.player.debug.log(this.TAG_NAME,"pause"),this.playing=!1,this.clear()}resume(){this.player.debug.log(this.TAG_NAME,"resume"),this.playing=!0}}class mn{constructor(e){return new(mn.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.playType===v?e.useMSE&&e.mseDecodeAudio?un:pn:e.playType===M?gn:e.isHls&&po(e.supportHls265)||e.isWebrtc&&po(e.isWebrtcH265)||e.useMSE&&e.mseDecodeAudio||e.isAliyunRtc?un:cn}}class yn extends ko{constructor(e){super(),this.player=e,this.playing=!1,this._requestAbort=!1,this._status=ls,this.writableStream=null,this.abortController=new AbortController,this.streamRate=ua((t=>{e.emit(yt.kBps,(t/1024).toFixed(2))})),this.streamRateInterval=null,e.debug.log("FetchStream","init")}destroy(){this.abort(),this.writableStream&&po(this.writableStream.locked)&&this.writableStream.close().catch((e=>{this.player.debug.log("FetchStream","destroy and writableStream.close()",e)})),this.writableStream=null,this.off(),this._status=ls,this.streamRate=null,this.stopStreamRateInterval(),this.player.debug.log("FetchStream","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval((()=>{this.streamRate&&this.streamRate(0)}),1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}fetchStream(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{demux:i}=this.player;this.player._times.streamStart=la();const r=Object.assign({signal:this.abortController.signal},{headers:t.headers||{}});fetch(e,r).then((e=>{if(this._requestAbort)return this._status=ls,void e.body.cancel();if(!function(e){return e.ok&&e.status>=200&&e.status<=299}(e))return this.player.debug.error("FetchStream",`fetch response status is ${e.status} and ok is ${e.ok} and emit error and next abort()`),this.abort(),void this.emit(It.fetchError,`fetch response status is ${e.status} and ok is ${e.ok}`);if(this.emit(yt.streamSuccess),this.startStreamRateInterval(),"undefined"!=typeof WritableStream)this.player.debug.log("FetchStream","use WritableStream() to read stream"),this.writableStream=new WritableStream({write:e=>this.abortController&&this.abortController.signal&&this.abortController.signal.aborted?(this.player.debug.log("FetchStream","writableStream.write() and this.abortController.signal.aborted so return"),void(this._status=As)):uo(this._requestAbort)?(this.player.debug.log("FetchStream","writableStream.write() and this._requestAbort is true so return"),void(this._status=As)):(this._status=hs,this.streamRate&&this.streamRate(e.byteLength),i.dispatch(e)),close:()=>{this._status=As,i.close(),this.emit(yt.streamEnd,"fetch done")},abort:e=>{if(this.abortController&&this.abortController.signal&&this.abortController.signal.aborted)return this.player.debug.log("FetchStream","writableStream.abort() and this.abortController.signal.aborted so return"),void(this._status=As);i.close();const t=e.toString();-1===t.indexOf(ur)&&-1===t.indexOf(pr)&&e.name!==gr&&(this.abort(),this.emit(It.fetchError,e))}}),e.body.pipeTo(this.writableStream);else{this.player.debug.log("FetchStream","not support WritableStream and use getReader() to read stream");const t=e.body.getReader(),r=()=>{t.read().then((e=>{let{done:t,value:s}=e;return t?(this._status=As,i.close(),void this.emit(yt.streamEnd,"fetch done")):this.abortController&&this.abortController.signal&&this.abortController.signal.aborted?(this.player.debug.log("FetchStream","reader.read() and this.abortController.signal.aborted so return"),void(this._status=As)):uo(this._requestAbort)?(this.player.debug.log("FetchStream","reader.read() and this._requestAbort is true so return"),void(this._status=As)):(this._status=hs,this.streamRate&&this.streamRate(s.byteLength),i.dispatch(s),void r())})).catch((e=>{if(this.abortController&&this.abortController.signal&&this.abortController.signal.aborted)return this.player.debug.log("FetchStream","reader.read().catch() and this.abortController.signal.aborted so return"),void(this._status=As);i.close();const t=e.toString();-1===t.indexOf(ur)&&-1===t.indexOf(pr)&&e.name!==gr&&(this.abort(),this.emit(It.fetchError,e))}))};r()}})).catch((e=>{this.abortController&&this.abortController.signal&&this.abortController.signal.aborted||"AbortError"!==e.name&&(i.close(),this.abort(),this.emit(It.fetchError,e))}))}abort(){this._requestAbort=!0;const e=Wa();if(this._status!==hs||po(e)){if(this.abortController){try{this.abortController.abort()}catch(e){}this.abortController=null}}else this.abortController=null,this.player.debug.log("FetchStream",`abort() and not abortController.abort() _status is ${this._status} and _isChrome is ${e}`)}getStreamType(){return p}}class En extends ko{constructor(e){super(),this.TAG_NAME="FetchWorkerLoader",this.player=e,this.playing=!1,this.fetchWorker=null,this.workerClearTimeout=null,this.workerUrl=null,this.destroyResolve=null,this.decoderWorkerCloseTimeout=null,this.abortController=new AbortController,this.streamRate=ua((t=>{e.emit(yt.kBps,(t/1024).toFixed(2))})),this.streamRateInterval=null,this._initFetchWorker(),e.debug.log(this.TAG_NAME,"init")}destroy(){return new Promise(((e,t)=>{this.fetchWorker?(this.player.debug.log(this.TAG_NAME,"send destroy"),this.fetchWorker.postMessage({cmd:dt}),this.destroyResolve=e,this.decoderWorkerCloseTimeout=setTimeout((()=>{this.player.debug.warn(this.TAG_NAME,"send close but not response and destroy directly"),this.decoderWorkerCloseTimeout&&(clearTimeout(this.decoderWorkerCloseTimeout),this.decoderWorkerCloseTimeout=null),this._destroy(),setTimeout((()=>{e()}),0)}),2e3)):(this._destroy(),setTimeout((()=>{e()}),0))}))}_destroy(){this.off(),this.decoderWorkerCloseTimeout&&(clearTimeout(this.decoderWorkerCloseTimeout),this.decoderWorkerCloseTimeout=null),this.workerUrl&&(window.URL.revokeObjectURL(this.workerUrl),this.workerUrl=null),this.workerClearTimeout&&(clearTimeout(this.workerClearTimeout),this.workerClearTimeout=null),this._stopStreamRateInterval(),this.streamRate=null,this.fetchWorker&&(this.fetchWorker.terminate(),this.fetchWorker.onmessage=null,this.fetchWorker=null),this.destroyResolve&&(this.destroyResolve(),this.destroyResolve=null),this.player.debug.log(this.TAG_NAME,"destroy")}_initFetchWorker(){const e=Eo(function(){function e(e){return!0===e||"true"===e}function t(e){return!1===e||"false"===e}const i="The user aborted a request",r="AbortError",s="AbortError",a="fetch",o="destroy",n="destroyEnd",l="buffer",h="fetchError",A="fetchClose",d="fetchSuccess",c="idle",u="buffering",p="complete";let g=new class{constructor(){this._requestAbort=!1,this._status=c,this.writableStream=null,this.isChrome=!1,this.abortController=new AbortController}destroy(){this.abort(),this.writableStream&&t(this.writableStream.locked)&&this.writableStream.close().catch((e=>{})),this.writableStream=null,this._status=c}fetchStream(t){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const o=Object.assign({signal:this.abortController.signal},{headers:a.headers||{}});fetch(t,o).then((t=>{if(this._requestAbort)return this._status=c,void t.body.cancel();if(!function(e){return e.ok&&e.status>=200&&e.status<=299}(t))return this.abort(),void postMessage({cmd:h,message:`fetch response status is ${t.status} and ok is ${t.ok}`});if(postMessage({cmd:d}),"undefined"!=typeof WritableStream)this.writableStream=new WritableStream({write:t=>{this.abortController&&this.abortController.signal&&this.abortController.signal.aborted||e(this._requestAbort)?this._status=p:(this._status=u,postMessage({cmd:l,buffer:t},[t.buffer]))},close:()=>{this._status=p,postMessage({cmd:A})},abort:e=>{if(this.abortController&&this.abortController.signal&&this.abortController.signal.aborted)return void(this._status=p);const t=e.toString();-1===t.indexOf(i)&&-1===t.indexOf(r)&&e.name!==s&&(this.abort(),postMessage({cmd:h,message:e.toString()}))}}),t.body.pipeTo(this.writableStream);else{const a=t.body.getReader(),o=()=>{a.read().then((t=>{let{done:i,value:r}=t;if(i)return this._status=p,void postMessage({cmd:A});this.abortController&&this.abortController.signal&&this.abortController.signal.aborted||e(this._requestAbort)?this._status=p:(this._status=u,postMessage({cmd:l,buffer:r},[r.buffer]),o())})).catch((e=>{if(this.abortController&&this.abortController.signal&&this.abortController.signal.aborted)return void(this._status=p);const t=e.toString();-1===t.indexOf(i)&&-1===t.indexOf(r)&&e.name!==s&&(this.abort(),postMessage({cmd:h,message:e.toString()}))}))};o()}})).catch((e=>{this.abortController&&this.abortController.signal&&this.abortController.signal.aborted||"AbortError"!==e.name&&(this.abort(),postMessage({cmd:h,message:e.toString()}))}))}abort(){if(this._requestAbort=!0,this._status!==u||t(g.isChrome)){if(this.abortController){try{this.abortController.abort()}catch(e){}this.abortController=null}}else this.abortController=null}};self.onmessage=t=>{const i=t.data;switch(i.cmd){case a:g.isChrome=e(i.isChrome),g.fetchStream(i.url,JSON.parse(i.options));break;case o:g.destroy(),g=null,postMessage({cmd:n})}}}.toString()),t=new Blob([e],{type:"text/javascript"});let i=URL.createObjectURL(t);const r=new Worker(i);this.workerUrl=i,this.workerClearTimeout=setTimeout((()=>{window.URL.revokeObjectURL(this.workerUrl),this.workerUrl=null,this.workerClearTimeout=null}),de),r.onmessage=e=>{const{demux:t}=this.player,i=e.data;switch(i.cmd){case ut:this.streamRate&&this.streamRate(i.buffer.byteLength),t.dispatch(i.buffer);break;case mt:this.emit(yt.streamSuccess),this._startStreamRateInterval();break;case gt:t.close(),this.emit(yt.streamEnd,"fetch done");break;case pt:t.close(),this.emit(It.fetchError,i.message);break;case ct:this._destroy()}},this.fetchWorker=r}_startStreamRateInterval(){this._stopStreamRateInterval(),this.streamRateInterval=setInterval((()=>{this.streamRate&&this.streamRate(0)}),1e3)}_stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}fetchStream(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.player._times.streamStart=la(),this.fetchWorker.postMessage({cmd:At,url:e,isChrome:Wa(),options:JSON.stringify(t)})}getStreamType(){return p}}class Cn extends ko{constructor(e){super(),this.player=e,this.socket=null,this.socketStatus=wt,this.wsUrl=null,this.requestAbort=!1,this.socketDestroyFnList=[],this.streamRate=ua((t=>{e.emit(yt.kBps,(t/1024).toFixed(2))})),this.streamRateInterval=null,e.debug.log("WebsocketStream","init")}destroy(){this._closeWebSocket(),this.stopStreamRateInterval(),this.wsUrl=null,this.off(),this.player.debug.log("WebsocketStream","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval((()=>{this.streamRate&&this.streamRate(0)}),1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}_createWebSocket(){const e=this.player,{debug:t,events:{proxy:i},demux:r}=e;this.socket=new WebSocket(this.wsUrl),this.socket.binaryType="arraybuffer";const s=i(this.socket,"open",(()=>{t.log("WebsocketStream","socket open"),this.socketStatus=St,this.emit(yt.streamSuccess),this.player.emit(yt.websocketOpen),this.startStreamRateInterval()})),a=i(this.socket,"message",(e=>{this.streamRate&&this.streamRate(e.data.byteLength),this._handleMessage(e.data)})),o=i(this.socket,"close",(e=>{if(t.log("WebsocketStream",`socket close and code is ${e.code}`),1006===e.code&&t.error("WebsocketStream",`socket close abnormally and code is ${e.code}`),uo(this.requestAbort))return this.requestAbort=!1,void t.log("WebsocketStream","socket close and requestAbort is true");r.close(),this.socketStatus=Mt,this.player.emit(yt.websocketClose,e.code),this.emit(yt.streamEnd,e.code)})),n=i(this.socket,"error",(e=>{t.error("WebsocketStream","socket error",e),this.socketStatus=vt,this.emit(It.websocketError,e),r.close(),t.log("WebsocketStream","socket error:",e.isTrusted?"websocket user aborted":"websocket error")}));this.socketDestroyFnList.push(s,a,o,n)}_closeWebSocket(){this.socketDestroyFnList.forEach((e=>e())),!this.socket||0!==this.socket.readyState&&1!==this.socket.readyState?this.socket&&this.player.debug.log("WebsocketStream",`_closeWebSocket() socket is null or socket status is ${this.socket&&this.socket.readyState}`):(this.requestAbort=!0,this.socket.close(1e3,"Client disconnecting")),this.socket=null,this.socketStatus=wt,this.streamRate=null}_handleMessage(e){const{demux:t}=this.player;t?t.dispatch(e):this.player.debug.warn("WebsocketStream","websocket handle message demux is null")}fetchStream(e,t){this.player._times.streamStart=la(),this.wsUrl=e,this._createWebSocket()}sendMessage(e){this.socket?this.socketStatus===St?this.socket.send(e):this.player.debug.error("WebsocketStream",`websocket send message error and socket status is ${this.socketStatus}`):this.player.debug.error("WebsocketStream","websocket send message socket is null")}resetFetchStream(){this._closeWebSocket(),this._createWebSocket()}getStreamType(){return m}}class fn extends ko{constructor(e){super(),this.player=e,e.debug.log("HlsStream","init")}destroy(){this.off(),this.player.debug.log("HlsStream","destroy")}fetchStream(e){const{hlsDecoder:t,debug:i}=this.player;this.player._times.streamStart=la(),t.loadSource(e).then((()=>{this.player.debug.log("HlsStream","loadSource success"),this.emit(yt.streamSuccess)})).catch((e=>{this.emit(It.hlsError,e)}))}getStreamType(){return g}}class In extends ko{constructor(e){super(),this.player=e,e.debug.log("Mp4Stream","init")}destroy(){this.off(),this.player.debug.log("Mp4Stream","destroy")}fetchStream(e){const{mp4Decoder:t,debug:i}=this.player;this.player._times.streamStart=la(),t.loadSource(e).then((()=>{this.player.debug.log("Mp4Stream","loadSource success"),this.emit(yt.streamSuccess)})).catch((e=>{this.emit(It.fetchError,e)}))}getStreamType(){return I}}class wn extends ko{constructor(e){super(),this.player=e,e.debug.log("wsRtcStream","init")}destroy(){this.off(),this.player.debug.log("wsRtcStream","destroy")}fetchStream(e){const{wsRtcDecoder:t,debug:i}=this.player;this.player._times.streamStart=la(),t.loadSource(e).then((()=>{this.player.debug.log("wsRtcStream","loadSource success"),this.emit(yt.streamSuccess)})).catch((e=>{this.emit(It.webrtcError,e)}))}getStreamType(){return w}}class Sn extends ko{constructor(e){super(),this.player=e,this.webrctUrl=null,e.debug.log("WebrtcStream","init")}destroy(){this.webrctUrl=null,this.off(),this.player.debug.log("WebrtcStream","destroy")}fetchStream(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{webrtc:i,debug:r}=this.player;if(this.player._times.streamStart=la(),this.webrctUrl=e.replace("webrtc:",window.location.protocol),-1===this.webrctUrl.indexOf("/webrtc/play")&&this.player.isWebrtcForM7S()){const t=new URL(this.webrctUrl),i=t.pathname;this.webrctUrl=t.origin+i+t.search,this.player.debug.log("WebrtcStream",`original url is ${e}, and new url is: ${this.webrctUrl}`)}i.loadSource(this.webrctUrl,t).then((()=>{this.player.debug.log("WebrtcStream","loadSource success"),this.emit(yt.streamSuccess)})).catch((e=>{this.player.debug.error("WebrtcStream","loadSource error",e),this.emit(It.webrtcError,e)}))}getStreamType(){return y}}class Mn extends ko{constructor(e){super(),this.player=e,this.transport=null,this.wtUrl=null,this.streamRate=ua((t=>{e.emit(yt.kBps,(t/1024).toFixed(2))})),this.streamRateInterval=null,e.debug.log("WebTransportLoader","init")}destroy(){this.abort(),this.off(),this.player.debug.log("WebTransportLoader","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval((()=>{this.streamRate&&this.streamRate(0)}),1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}_createWebTransport(){const e=this.player,{debug:t,events:{proxy:i},demux:r}=e;try{this.transport=new WebTransport(this.wtUrl),this.transport.ready.then((()=>{this.emit(yt.streamSuccess),this.startStreamRateInterval(),this.transport.createBidirectionalStream().then((e=>{e.readable.pipeTo(new WritableStream(r.input))}))})).catch((e=>{this.player.debug.warn("WebTransportLoader","_createWebTransport-ready",e)}))}catch(e){this.player.debug.warn("WebTransportLoader","_createWebTransport",e)}}fetchStream(e){this.player._times.streamStart=la(),this.wtUrl=e.replace(/^wt:/,"https:"),this._createWebTransport()}abort(){if(this.transport)try{this.transport.close(),this.transport=null}catch(e){this.transport=null}}getStreamType(){return E}}class vn extends ko{constructor(e){super(),this.player=e,this.workUrl=null,e.debug.log("WorkerStream","init")}destroy(){this.workUrl=null,this.off(),this.player.debug.log("WorkerStream","destroy")}sendMessage(e){this.player.decoderWorker.workerSendMessage(e)}fetchStream(e){this.workUrl=e,this.player._times.streamStart=la(),this.player.decoderWorker.workerFetchStream(e)}getStreamType(){const e=this.player._opt.protocol;return C+" "+(e===o?p:m)}}class kn extends ko{constructor(e){super(),this.TAG_NAME="AliyunRtcLoader",this.player=e,e.debug.log(this.TAG_NAME,"init")}destroy(){this.off(),this.player.debug.log(this.TAG_NAME,"destroy")}fetchStream(e){const{aliyunRtcDecoder:t}=this.player;this.player._times.streamStart=la(),t.loadSource(e).then((()=>{this.player.debug.log(this.TAG_NAME,"loadSource success"),this.emit(yt.streamSuccess)})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource error",e),this.emit(It.aliyunRtcError,e)}))}getStreamType(){return f}}class Bn{constructor(e){return new(Bn.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){const{protocol:t,useWasm:i,playType:r,useWCS:s,useMSE:u,demuxUseWorker:p,mainThreadFetchUseWorker:g}=e;return t===o?r===M?vn:r===S?i&&!eo(e)||p?vn:g?En:yn:s||u?p?vn:g?En:yn:vn:t===a?r===M?vn:r===S?i&&!eo(e)||p?vn:Cn:s||u?p?vn:Cn:vn:t===c?wn:t===d?In:t===n?fn:t===l?Sn:t===h?Mn:t===A?kn:void 0}}var Dn=xs((function(e){function t(e,s){if(!e)throw"First parameter is required.";s=new i(e,s=s||{type:"video"});var a=this;function o(t){t&&(s.initCallback=function(){t(),t=s.initCallback=null});var i=new r(e,s);(u=new i(e,s)).record(),c("recording"),s.disableLogs||console.log("Initialized recorderType:",u.constructor.name,"for output-type:",s.type)}function n(e){if(e=e||function(){},u){if("paused"===a.state)return a.resumeRecording(),void setTimeout((function(){n(e)}),1);"recording"===a.state||s.disableLogs||console.warn('Recording state should be: "recording", however current state is: ',a.state),s.disableLogs||console.log("Stopped recording "+s.type+" stream."),"gif"!==s.type?u.stop(t):(u.stop(),t()),c("stopped")}else g();function t(t){if(u){Object.keys(u).forEach((function(e){"function"!=typeof u[e]&&(a[e]=u[e])}));var i=u.blob;if(!i){if(!t)throw"Recording failed.";u.blob=i=t}if(i&&!s.disableLogs&&console.log(i.type,"->",y(i.size)),e){var r;try{r=A.createObjectURL(i)}catch(e){}"function"==typeof e.call?e.call(a,r):e(r)}s.autoWriteToDisk&&h((function(e){var t={};t[s.type+"Blob"]=e,b.Store(t)}))}else"function"==typeof e.call?e.call(a,""):e("")}}function l(e){postMessage((new FileReaderSync).readAsDataURL(e))}function h(e,t){if(!e)throw"Pass a callback function over getDataURL.";var i=t?t.blob:(u||{}).blob;if(!i)return s.disableLogs||console.warn("Blob encoder did not finish its job yet."),void setTimeout((function(){h(e,t)}),1e3);if("undefined"==typeof Worker||navigator.mozGetUserMedia){var r=new FileReader;r.readAsDataURL(i),r.onload=function(t){e(t.target.result)}}else{var a=function(e){try{var t=A.createObjectURL(new Blob([e.toString(),"this.onmessage = function (eee) {"+e.name+"(eee.data);}"],{type:"application/javascript"})),i=new Worker(t);return A.revokeObjectURL(t),i}catch(e){}}(l);a.onmessage=function(t){e(t.data)},a.postMessage(i)}}function d(e){e=e||0,"paused"!==a.state?"stopped"!==a.state&&(e>=a.recordingDuration?n(a.onRecordingStopped):(e+=1e3,setTimeout((function(){d(e)}),1e3))):setTimeout((function(){d(e)}),1e3)}function c(e){a&&(a.state=e,"function"==typeof a.onStateChanged.call?a.onStateChanged.call(a,e):a.onStateChanged(e))}var u,p='It seems that recorder is destroyed or "startRecording" is not invoked for '+s.type+" recorder.";function g(){!0!==s.disableLogs&&console.warn(p)}var m={startRecording:function(t){return s.disableLogs||console.log("RecordRTC version: ",a.version),t&&(s=new i(e,t)),s.disableLogs||console.log("started recording "+s.type+" stream."),u?(u.clearRecordedData(),u.record(),c("recording"),a.recordingDuration&&d(),a):(o((function(){a.recordingDuration&&d()})),a)},stopRecording:n,pauseRecording:function(){u?"recording"===a.state?(c("paused"),u.pause(),s.disableLogs||console.log("Paused recording.")):s.disableLogs||console.warn("Unable to pause the recording. Recording state: ",a.state):g()},resumeRecording:function(){u?"paused"===a.state?(c("recording"),u.resume(),s.disableLogs||console.log("Resumed recording.")):s.disableLogs||console.warn("Unable to resume the recording. Recording state: ",a.state):g()},initRecorder:o,setRecordingDuration:function(e,t){if(void 0===e)throw"recordingDuration is required.";if("number"!=typeof e)throw"recordingDuration must be a number.";return a.recordingDuration=e,a.onRecordingStopped=t||function(){},{onRecordingStopped:function(e){a.onRecordingStopped=e}}},clearRecordedData:function(){u?(u.clearRecordedData(),s.disableLogs||console.log("Cleared old recorded data.")):g()},getBlob:function(){if(u)return u.blob;g()},getDataURL:h,toURL:function(){if(u)return A.createObjectURL(u.blob);g()},getInternalRecorder:function(){return u},save:function(e){u?E(u.blob,e):g()},getFromDisk:function(e){u?t.getFromDisk(s.type,e):g()},setAdvertisementArray:function(e){s.advertisement=[];for(var t=e.length,i=0;i<t;i++)s.advertisement.push({duration:i,image:e[i]})},blob:null,bufferSize:0,sampleRate:0,buffer:null,reset:function(){"recording"!==a.state||s.disableLogs||console.warn("Stop an active recorder."),u&&"function"==typeof u.clearRecordedData&&u.clearRecordedData(),u=null,c("inactive"),a.blob=null},onStateChanged:function(e){s.disableLogs||console.log("Recorder state changed:",e)},state:"inactive",getState:function(){return a.state},destroy:function(){var e=s.disableLogs;s={disableLogs:!0},a.reset(),c("destroyed"),m=a=null,w.AudioContextConstructor&&(w.AudioContextConstructor.close(),w.AudioContextConstructor=null),s.disableLogs=e,s.disableLogs||console.log("RecordRTC is destroyed.")},version:"5.6.2"};if(!this)return a=m,m;for(var C in m)this[C]=m[C];return a=this,m}function i(e,t){return t.recorderType||t.type||(t.audio&&t.video?t.type="video":t.audio&&!t.video&&(t.type="audio")),t.recorderType&&!t.type&&(t.recorderType===B||t.recorderType===k||void 0!==L&&t.recorderType===L?t.type="video":t.recorderType===Q?t.type="gif":t.recorderType===v?t.type="audio":t.recorderType===M&&(f(e,"audio").length&&f(e,"video").length||!f(e,"audio").length&&f(e,"video").length?t.type="video":f(e,"audio").length&&!f(e,"video").length&&(t.type="audio"))),void 0!==M&&"undefined"!=typeof MediaRecorder&&"requestData"in MediaRecorder.prototype&&(t.mimeType||(t.mimeType="video/webm"),t.type||(t.type=t.mimeType.split("/")[0]),t.bitsPerSecond),t.type||(t.mimeType&&(t.type=t.mimeType.split("/")[0]),t.type||(t.type="audio")),t}function r(e,t){var i;return(p||d||c)&&(i=v),"undefined"!=typeof MediaRecorder&&"requestData"in MediaRecorder.prototype&&!p&&(i=M),"video"===t.type&&(p||c)&&(i=B,void 0!==L&&"undefined"!=typeof ReadableStream&&(i=L)),"gif"===t.type&&(i=Q),"canvas"===t.type&&(i=k),S()&&i!==k&&i!==Q&&"undefined"!=typeof MediaRecorder&&"requestData"in MediaRecorder.prototype&&(f(e,"video").length||f(e,"audio").length)&&("audio"===t.type?"function"==typeof MediaRecorder.isTypeSupported&&MediaRecorder.isTypeSupported("audio/webm")&&(i=M):"function"==typeof MediaRecorder.isTypeSupported&&MediaRecorder.isTypeSupported("video/webm")&&(i=M)),e instanceof Array&&e.length&&(i=T),t.recorderType&&(i=t.recorderType),!t.disableLogs&&i&&i.name&&console.log("Using recorderType:",i.name||i.constructor.name),!i&&g&&(i=M),i}function s(e){this.addStream=function(t){t&&(e=t)},this.mediaType={audio:!0,video:!0},this.startRecording=function(){var i,r=this.mediaType,s=this.mimeType||{audio:null,video:null,gif:null};if("function"!=typeof r.audio&&S()&&!f(e,"audio").length&&(r.audio=!1),"function"!=typeof r.video&&S()&&!f(e,"video").length&&(r.video=!1),"function"!=typeof r.gif&&S()&&!f(e,"video").length&&(r.gif=!1),!r.audio&&!r.video&&!r.gif)throw"MediaStream must have either audio or video tracks.";if(r.audio&&(i=null,"function"==typeof r.audio&&(i=r.audio),this.audioRecorder=new t(e,{type:"audio",bufferSize:this.bufferSize,sampleRate:this.sampleRate,numberOfAudioChannels:this.numberOfAudioChannels||2,disableLogs:this.disableLogs,recorderType:i,mimeType:s.audio,timeSlice:this.timeSlice,onTimeStamp:this.onTimeStamp}),r.video||this.audioRecorder.startRecording()),r.video){i=null,"function"==typeof r.video&&(i=r.video);var a=e;if(S()&&r.audio&&"function"==typeof r.audio){var o=f(e,"video")[0];u?((a=new m).addTrack(o),i&&i===B&&(i=M)):(a=new m).addTrack(o)}this.videoRecorder=new t(a,{type:"video",video:this.video,canvas:this.canvas,frameInterval:this.frameInterval||10,disableLogs:this.disableLogs,recorderType:i,mimeType:s.video,timeSlice:this.timeSlice,onTimeStamp:this.onTimeStamp,workerPath:this.workerPath,webAssemblyPath:this.webAssemblyPath,frameRate:this.frameRate,bitrate:this.bitrate}),r.audio||this.videoRecorder.startRecording()}if(r.audio&&r.video){var n=this,l=!0===S();(r.audio instanceof v&&r.video||!0!==r.audio&&!0!==r.video&&r.audio!==r.video)&&(l=!1),!0===l?(n.audioRecorder=null,n.videoRecorder.startRecording()):n.videoRecorder.initRecorder((function(){n.audioRecorder.initRecorder((function(){n.videoRecorder.startRecording(),n.audioRecorder.startRecording()}))}))}r.gif&&(i=null,"function"==typeof r.gif&&(i=r.gif),this.gifRecorder=new t(e,{type:"gif",frameRate:this.frameRate||200,quality:this.quality||10,disableLogs:this.disableLogs,recorderType:i,mimeType:s.gif}),this.gifRecorder.startRecording())},this.stopRecording=function(e){e=e||function(){},this.audioRecorder&&this.audioRecorder.stopRecording((function(t){e(t,"audio")})),this.videoRecorder&&this.videoRecorder.stopRecording((function(t){e(t,"video")})),this.gifRecorder&&this.gifRecorder.stopRecording((function(t){e(t,"gif")}))},this.pauseRecording=function(){this.audioRecorder&&this.audioRecorder.pauseRecording(),this.videoRecorder&&this.videoRecorder.pauseRecording(),this.gifRecorder&&this.gifRecorder.pauseRecording()},this.resumeRecording=function(){this.audioRecorder&&this.audioRecorder.resumeRecording(),this.videoRecorder&&this.videoRecorder.resumeRecording(),this.gifRecorder&&this.gifRecorder.resumeRecording()},this.getBlob=function(e){var t={};return this.audioRecorder&&(t.audio=this.audioRecorder.getBlob()),this.videoRecorder&&(t.video=this.videoRecorder.getBlob()),this.gifRecorder&&(t.gif=this.gifRecorder.getBlob()),e&&e(t),t},this.destroy=function(){this.audioRecorder&&(this.audioRecorder.destroy(),this.audioRecorder=null),this.videoRecorder&&(this.videoRecorder.destroy(),this.videoRecorder=null),this.gifRecorder&&(this.gifRecorder.destroy(),this.gifRecorder=null)},this.getDataURL=function(e){function t(e,t){if("undefined"!=typeof Worker){var i=function(e){var t,i=A.createObjectURL(new Blob([e.toString(),"this.onmessage = function (eee) {"+e.name+"(eee.data);}"],{type:"application/javascript"})),r=new Worker(i);if(void 0!==A)t=A;else{if("undefined"==typeof webkitURL)throw"Neither URL nor webkitURL detected.";t=webkitURL}return t.revokeObjectURL(i),r}((function(e){postMessage((new FileReaderSync).readAsDataURL(e))}));i.onmessage=function(e){t(e.data)},i.postMessage(e)}else{var r=new FileReader;r.readAsDataURL(e),r.onload=function(e){t(e.target.result)}}}this.getBlob((function(i){i.audio&&i.video?t(i.audio,(function(r){t(i.video,(function(t){e({audio:r,video:t})}))})):i.audio?t(i.audio,(function(t){e({audio:t})})):i.video&&t(i.video,(function(t){e({video:t})}))}))},this.writeToDisk=function(){t.writeToDisk({audio:this.audioRecorder,video:this.videoRecorder,gif:this.gifRecorder})},this.save=function(e){(e=e||{audio:!0,video:!0,gif:!0}).audio&&this.audioRecorder&&this.audioRecorder.save("string"==typeof e.audio?e.audio:""),e.video&&this.videoRecorder&&this.videoRecorder.save("string"==typeof e.video?e.video:""),e.gif&&this.gifRecorder&&this.gifRecorder.save("string"==typeof e.gif?e.gif:"")}}t.version="5.6.2",e.exports=t,t.getFromDisk=function(e,t){if(!t)throw"callback is mandatory.";console.log("Getting recorded "+("all"===e?"blobs":e+" blob ")+" from disk!"),b.Fetch((function(i,r){"all"!==e&&r===e+"Blob"&&t&&t(i),"all"===e&&t&&t(i,r.replace("Blob",""))}))},t.writeToDisk=function(e){console.log("Writing recorded blob(s) to disk!"),(e=e||{}).audio&&e.video&&e.gif?e.audio.getDataURL((function(t){e.video.getDataURL((function(i){e.gif.getDataURL((function(e){b.Store({audioBlob:t,videoBlob:i,gifBlob:e})}))}))})):e.audio&&e.video?e.audio.getDataURL((function(t){e.video.getDataURL((function(e){b.Store({audioBlob:t,videoBlob:e})}))})):e.audio&&e.gif?e.audio.getDataURL((function(t){e.gif.getDataURL((function(e){b.Store({audioBlob:t,gifBlob:e})}))})):e.video&&e.gif?e.video.getDataURL((function(t){e.gif.getDataURL((function(e){b.Store({videoBlob:t,gifBlob:e})}))})):e.audio?e.audio.getDataURL((function(e){b.Store({audioBlob:e})})):e.video?e.video.getDataURL((function(e){b.Store({videoBlob:e})})):e.gif&&e.gif.getDataURL((function(e){b.Store({gifBlob:e})}))},s.getFromDisk=t.getFromDisk,s.writeToDisk=t.writeToDisk,void 0!==t&&(t.MRecordRTC=s);var a;(a=void 0!==qs?qs:null)&&"undefined"==typeof window&&void 0!==qs&&(qs.navigator={userAgent:"Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45",getUserMedia:function(){}},qs.console||(qs.console={}),void 0!==qs.console.log&&void 0!==qs.console.error||(qs.console.error=qs.console.log=qs.console.log||function(){console.log(arguments)}),"undefined"==typeof document&&(a.document={documentElement:{appendChild:function(){return""}}},document.createElement=document.captureStream=document.mozCaptureStream=function(){var e={getContext:function(){return e},play:function(){},pause:function(){},drawImage:function(){},toDataURL:function(){return""},style:{}};return e},a.HTMLVideoElement=function(){}),"undefined"==typeof location&&(a.location={protocol:"file:",href:"",hash:""}),"undefined"==typeof screen&&(a.screen={width:0,height:0}),void 0===A&&(a.URL={createObjectURL:function(){return""},revokeObjectURL:function(){return""}}),a.window=qs);var o=window.requestAnimationFrame;if(void 0===o)if("undefined"!=typeof webkitRequestAnimationFrame)o=webkitRequestAnimationFrame;else if("undefined"!=typeof mozRequestAnimationFrame)o=mozRequestAnimationFrame;else if("undefined"!=typeof msRequestAnimationFrame)o=msRequestAnimationFrame;else if(void 0===o){var n=0;o=function(e,t){var i=(new Date).getTime(),r=Math.max(0,16-(i-n)),s=setTimeout((function(){e(i+r)}),r);return n=i+r,s}}var l=window.cancelAnimationFrame;void 0===l&&("undefined"!=typeof webkitCancelAnimationFrame?l=webkitCancelAnimationFrame:"undefined"!=typeof mozCancelAnimationFrame?l=mozCancelAnimationFrame:"undefined"!=typeof msCancelAnimationFrame?l=msCancelAnimationFrame:void 0===l&&(l=function(e){clearTimeout(e)}));var h=window.AudioContext;void 0===h&&("undefined"!=typeof webkitAudioContext&&(h=webkitAudioContext),"undefined"!=typeof mozAudioContext&&(h=mozAudioContext));var A=window.URL;void 0===A&&"undefined"!=typeof webkitURL&&(A=webkitURL),"undefined"!=typeof navigator&&void 0===navigator.getUserMedia&&(void 0!==navigator.webkitGetUserMedia&&(navigator.getUserMedia=navigator.webkitGetUserMedia),void 0!==navigator.mozGetUserMedia&&(navigator.getUserMedia=navigator.mozGetUserMedia));var d=!(-1===navigator.userAgent.indexOf("Edge")||!navigator.msSaveBlob&&!navigator.msSaveOrOpenBlob),c=!!window.opera||-1!==navigator.userAgent.indexOf("OPR/"),u=navigator.userAgent.toLowerCase().indexOf("firefox")>-1&&"netscape"in window&&/ rv:/.test(navigator.userAgent),p=!c&&!d&&!!navigator.webkitGetUserMedia||C()||-1!==navigator.userAgent.toLowerCase().indexOf("chrome/"),g=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);g&&!p&&-1!==navigator.userAgent.indexOf("CriOS")&&(g=!1,p=!0);var m=window.MediaStream;function y(e){if(0===e)return"0 Bytes";var t=parseInt(Math.floor(Math.log(e)/Math.log(1e3)),10);return(e/Math.pow(1e3,t)).toPrecision(3)+" "+["Bytes","KB","MB","GB","TB"][t]}function E(e,t){if(!e)throw"Blob object is required.";if(!e.type)try{e.type="video/webm"}catch(e){}var i=(e.type||"video/webm").split("/")[1];if(-1!==i.indexOf(";")&&(i=i.split(";")[0]),t&&-1!==t.indexOf(".")){var r=t.split(".");t=r[0],i=r[1]}var s=(t||Math.round(9999999999*Math.random())+888888888)+"."+i;if(void 0!==navigator.msSaveOrOpenBlob)return navigator.msSaveOrOpenBlob(e,s);if(void 0!==navigator.msSaveBlob)return navigator.msSaveBlob(e,s);var a=document.createElement("a");a.href=A.createObjectURL(e),a.download=s,a.style="display:none;opacity:0;color:transparent;",(document.body||document.documentElement).appendChild(a),"function"==typeof a.click?a.click():(a.target="_blank",a.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))),A.revokeObjectURL(a.href)}function C(){return"undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type||(!("undefined"==typeof process||"object"!=typeof process.versions||!process.versions.electron)||"object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent.indexOf("Electron")>=0)}function f(e,t){return e&&e.getTracks?e.getTracks().filter((function(e){return e.kind===(t||"audio")})):[]}function I(e,t){"srcObject"in t?t.srcObject=e:"mozSrcObject"in t?t.mozSrcObject=e:t.srcObject=e}void 0===m&&"undefined"!=typeof webkitMediaStream&&(m=webkitMediaStream),void 0!==m&&void 0===m.prototype.stop&&(m.prototype.stop=function(){this.getTracks().forEach((function(e){e.stop()}))}),void 0!==t&&(t.invokeSaveAsDialog=E,t.getTracks=f,t.getSeekableBlob=function(e,t){if("undefined"==typeof EBML)throw new Error("Please link: https://www.webrtc-experiment.com/EBML.js");var i=new EBML.Reader,r=new EBML.Decoder,s=EBML.tools,a=new FileReader;a.onload=function(e){r.decode(this.result).forEach((function(e){i.read(e)})),i.stop();var a=s.makeMetadataSeekable(i.metadatas,i.duration,i.cues),o=this.result.slice(i.metadataSize),n=new Blob([a,o],{type:"video/webm"});t(n)},a.readAsArrayBuffer(e)},t.bytesToSize=y,t.isElectron=C);var w={};function S(){if(u||g||d)return!0;var e,t,i=navigator.userAgent,r=""+parseFloat(navigator.appVersion),s=parseInt(navigator.appVersion,10);return(p||c)&&(e=i.indexOf("Chrome"),r=i.substring(e+7)),-1!==(t=r.indexOf(";"))&&(r=r.substring(0,t)),-1!==(t=r.indexOf(" "))&&(r=r.substring(0,t)),s=parseInt(""+r,10),isNaN(s)&&(r=""+parseFloat(navigator.appVersion),s=parseInt(navigator.appVersion,10)),s>=49}function M(e,t){var i=this;if(void 0===e)throw'First argument "MediaStream" is required.';if("undefined"==typeof MediaRecorder)throw"Your browser does not support the Media Recorder API. Please try other modules e.g. WhammyRecorder or StereoAudioRecorder.";if("audio"===(t=t||{mimeType:"video/webm"}).type){var r;if(f(e,"video").length&&f(e,"audio").length)navigator.mozGetUserMedia?(r=new m).addTrack(f(e,"audio")[0]):r=new m(f(e,"audio")),e=r;t.mimeType&&-1!==t.mimeType.toString().toLowerCase().indexOf("audio")||(t.mimeType=p?"audio/webm":"audio/ogg"),t.mimeType&&"audio/ogg"!==t.mimeType.toString().toLowerCase()&&navigator.mozGetUserMedia&&(t.mimeType="audio/ogg")}var s,a=[];function o(){i.timestamps.push((new Date).getTime()),"function"==typeof t.onTimeStamp&&t.onTimeStamp(i.timestamps[i.timestamps.length-1],i.timestamps)}function n(e){return s&&s.mimeType?s.mimeType:e.mimeType||"video/webm"}function l(){a=[],s=null,i.timestamps=[]}this.getArrayOfBlobs=function(){return a},this.record=function(){i.blob=null,i.clearRecordedData(),i.timestamps=[],h=[],a=[];var r=t;t.disableLogs||console.log("Passing following config over MediaRecorder API.",r),s&&(s=null),p&&!S()&&(r="video/vp8"),"function"==typeof MediaRecorder.isTypeSupported&&r.mimeType&&(MediaRecorder.isTypeSupported(r.mimeType)||(t.disableLogs||console.warn("MediaRecorder API seems unable to record mimeType:",r.mimeType),r.mimeType="audio"===t.type?"audio/webm":"video/webm"));try{s=new MediaRecorder(e,r),t.mimeType=r.mimeType}catch(t){s=new MediaRecorder(e)}r.mimeType&&!MediaRecorder.isTypeSupported&&"canRecordMimeType"in s&&!1===s.canRecordMimeType(r.mimeType)&&(t.disableLogs||console.warn("MediaRecorder API seems unable to record mimeType:",r.mimeType)),s.ondataavailable=function(e){if(e.data&&h.push("ondataavailable: "+y(e.data.size)),"number"!=typeof t.timeSlice)!e.data||!e.data.size||e.data.size<100||i.blob?i.recordingCallback&&(i.recordingCallback(new Blob([],{type:n(r)})),i.recordingCallback=null):(i.blob=t.getNativeBlob?e.data:new Blob([e.data],{type:n(r)}),i.recordingCallback&&(i.recordingCallback(i.blob),i.recordingCallback=null));else if(e.data&&e.data.size&&(a.push(e.data),o(),"function"==typeof t.ondataavailable)){var s=t.getNativeBlob?e.data:new Blob([e.data],{type:n(r)});t.ondataavailable(s)}},s.onstart=function(){h.push("started")},s.onpause=function(){h.push("paused")},s.onresume=function(){h.push("resumed")},s.onstop=function(){h.push("stopped")},s.onerror=function(e){e&&(e.name||(e.name="UnknownError"),h.push("error: "+e),t.disableLogs||(-1!==e.name.toString().toLowerCase().indexOf("invalidstate")?console.error("The MediaRecorder is not in a state in which the proposed operation is allowed to be executed.",e):-1!==e.name.toString().toLowerCase().indexOf("notsupported")?console.error("MIME type (",r.mimeType,") is not supported.",e):-1!==e.name.toString().toLowerCase().indexOf("security")?console.error("MediaRecorder security error",e):"OutOfMemory"===e.name?console.error("The UA has exhaused the available memory. User agents SHOULD provide as much additional information as possible in the message attribute.",e):"IllegalStreamModification"===e.name?console.error("A modification to the stream has occurred that makes it impossible to continue recording. An example would be the addition of a Track while recording is occurring. User agents SHOULD provide as much additional information as possible in the message attribute.",e):"OtherRecordingError"===e.name?console.error("Used for an fatal error other than those listed above. User agents SHOULD provide as much additional information as possible in the message attribute.",e):"GenericError"===e.name?console.error("The UA cannot provide the codec or recording option that has been requested.",e):console.error("MediaRecorder Error",e)),function(e){if(!i.manuallyStopped&&s&&"inactive"===s.state)return delete t.timeslice,void s.start(6e5);setTimeout(void 0,1e3)}(),"inactive"!==s.state&&"stopped"!==s.state&&s.stop())},"number"==typeof t.timeSlice?(o(),s.start(t.timeSlice)):s.start(36e5),t.initCallback&&t.initCallback()},this.timestamps=[],this.stop=function(e){e=e||function(){},i.manuallyStopped=!0,s&&(this.recordingCallback=e,"recording"===s.state&&s.stop(),"number"==typeof t.timeSlice&&setTimeout((function(){i.blob=new Blob(a,{type:n(t)}),i.recordingCallback(i.blob)}),100))},this.pause=function(){s&&"recording"===s.state&&s.pause()},this.resume=function(){s&&"paused"===s.state&&s.resume()},this.clearRecordedData=function(){s&&"recording"===s.state&&i.stop(l),l()},this.getInternalRecorder=function(){return s},this.blob=null,this.getState=function(){return s&&s.state||"inactive"};var h=[];this.getAllStates=function(){return h},void 0===t.checkForInactiveTracks&&(t.checkForInactiveTracks=!1);i=this;!function r(){if(s&&!1!==t.checkForInactiveTracks)return!1===function(){if("active"in e){if(!e.active)return!1}else if("ended"in e&&e.ended)return!1;return!0}()?(t.disableLogs||console.log("MediaStream seems stopped."),void i.stop()):void setTimeout(r,1e3)}(),this.name="MediaStreamRecorder",this.toString=function(){return this.name}}function v(e,i){if(!f(e,"audio").length)throw"Your stream has no audio tracks.";var r,s=this,a=[],o=[],n=!1,l=0,h=2,d=(i=i||{}).desiredSampRate;function c(){if(!1===i.checkForInactiveTracks)return!0;if("active"in e){if(!e.active)return!1}else if("ended"in e&&e.ended)return!1;return!0}function u(e,t){function i(e,t){var i,r=e.numberOfAudioChannels,s=e.leftBuffers.slice(0),a=e.rightBuffers.slice(0),o=e.sampleRate,n=e.internalInterleavedLength,l=e.desiredSampRate;function h(e,t,i){var r=Math.round(e.length*(t/i)),s=[],a=Number((e.length-1)/(r-1));s[0]=e[0];for(var o=1;o<r-1;o++){var n=o*a,l=Number(Math.floor(n)).toFixed(),h=Number(Math.ceil(n)).toFixed(),d=n-l;s[o]=A(e[l],e[h],d)}return s[r-1]=e[e.length-1],s}function A(e,t,i){return e+(t-e)*i}function d(e,t){for(var i=new Float64Array(t),r=0,s=e.length,a=0;a<s;a++){var o=e[a];i.set(o,r),r+=o.length}return i}function c(e,t,i){for(var r=i.length,s=0;s<r;s++)e.setUint8(t+s,i.charCodeAt(s))}2===r&&(s=d(s,n),a=d(a,n),l&&(s=h(s,l,o),a=h(a,l,o))),1===r&&(s=d(s,n),l&&(s=h(s,l,o))),l&&(o=l),2===r&&(i=function(e,t){for(var i=e.length+t.length,r=new Float64Array(i),s=0,a=0;a<i;)r[a++]=e[s],r[a++]=t[s],s++;return r}(s,a)),1===r&&(i=s);var u=i.length,p=new ArrayBuffer(44+2*u),g=new DataView(p);c(g,0,"RIFF"),g.setUint32(4,36+2*u,!0),c(g,8,"WAVE"),c(g,12,"fmt "),g.setUint32(16,16,!0),g.setUint16(20,1,!0),g.setUint16(22,r,!0),g.setUint32(24,o,!0),g.setUint32(28,o*r*2,!0),g.setUint16(32,2*r,!0),g.setUint16(34,16,!0),c(g,36,"data"),g.setUint32(40,2*u,!0);for(var m=u,y=44,E=0;E<m;E++)g.setInt16(y,32767*i[E],!0),y+=2;if(t)return t({buffer:p,view:g});postMessage({buffer:p,view:g})}if(e.noWorker)i(e,(function(e){t(e.buffer,e.view)}));else{var r,s,a,o=(r=i,s=A.createObjectURL(new Blob([r.toString(),";this.onmessage = function (eee) {"+r.name+"(eee.data);}"],{type:"application/javascript"})),(a=new Worker(s)).workerURL=s,a);o.onmessage=function(e){t(e.data.buffer,e.data.view),A.revokeObjectURL(o.workerURL),o.terminate()},o.postMessage(e)}}!0===i.leftChannel&&(h=1),1===i.numberOfAudioChannels&&(h=1),(!h||h<1)&&(h=2),i.disableLogs||console.log("StereoAudioRecorder is set to record number of channels: "+h),void 0===i.checkForInactiveTracks&&(i.checkForInactiveTracks=!0),this.record=function(){if(!1===c())throw"Please make sure MediaStream is active.";I(),S=C=!1,n=!0,void 0!==i.timeSlice&&v()},this.stop=function(e){e=e||function(){},n=!1,u({desiredSampRate:d,sampleRate:E,numberOfAudioChannels:h,internalInterleavedLength:l,leftBuffers:a,rightBuffers:1===h?[]:o,noWorker:i.noWorker},(function(t,i){s.blob=new Blob([i],{type:"audio/wav"}),s.buffer=new ArrayBuffer(i.buffer.byteLength),s.view=i,s.sampleRate=d||E,s.bufferSize=y,s.length=l,S=!1,e&&e(s.blob)}))},void 0===t.Storage&&(t.Storage={AudioContextConstructor:null,AudioContext:window.AudioContext||window.webkitAudioContext}),t.Storage.AudioContextConstructor&&"closed"!==t.Storage.AudioContextConstructor.state||(t.Storage.AudioContextConstructor=new t.Storage.AudioContext);var p=t.Storage.AudioContextConstructor,g=p.createMediaStreamSource(e),m=[0,256,512,1024,2048,4096,8192,16384],y=void 0===i.bufferSize?4096:i.bufferSize;if(-1===m.indexOf(y)&&(i.disableLogs||console.log("Legal values for buffer-size are "+JSON.stringify(m,null,"\t"))),p.createJavaScriptNode)r=p.createJavaScriptNode(y,h,h);else{if(!p.createScriptProcessor)throw"WebAudio API has no support on this browser.";r=p.createScriptProcessor(y,h,h)}g.connect(r),i.bufferSize||(y=r.bufferSize);var E=void 0!==i.sampleRate?i.sampleRate:p.sampleRate||44100;(E<22050||E>96e3)&&(i.disableLogs||console.log("sample-rate must be under range 22050 and 96000.")),i.disableLogs||i.desiredSampRate&&console.log("Desired sample-rate: "+i.desiredSampRate);var C=!1;function I(){a=[],o=[],l=0,S=!1,n=!1,C=!1,p=null,s.leftchannel=a,s.rightchannel=o,s.numberOfAudioChannels=h,s.desiredSampRate=d,s.sampleRate=E,s.recordingLength=l,M={left:[],right:[],recordingLength:0}}function w(){r&&(r.onaudioprocess=null,r.disconnect(),r=null),g&&(g.disconnect(),g=null),I()}this.pause=function(){C=!0},this.resume=function(){if(!1===c())throw"Please make sure MediaStream is active.";if(!n)return i.disableLogs||console.log("Seems recording has been restarted."),void this.record();C=!1},this.clearRecordedData=function(){i.checkForInactiveTracks=!1,n&&this.stop(w),w()},this.name="StereoAudioRecorder",this.toString=function(){return this.name};var S=!1;r.onaudioprocess=function(e){if(!C)if(!1===c()&&(i.disableLogs||console.log("MediaStream seems stopped."),r.disconnect(),n=!1),n){S||(S=!0,i.onAudioProcessStarted&&i.onAudioProcessStarted(),i.initCallback&&i.initCallback());var t=e.inputBuffer.getChannelData(0),A=new Float32Array(t);if(a.push(A),2===h){var d=e.inputBuffer.getChannelData(1),u=new Float32Array(d);o.push(u)}l+=y,s.recordingLength=l,void 0!==i.timeSlice&&(M.recordingLength+=y,M.left.push(A),2===h&&M.right.push(u))}else g&&(g.disconnect(),g=null)},p.createMediaStreamDestination?r.connect(p.createMediaStreamDestination()):r.connect(p.destination),this.leftchannel=a,this.rightchannel=o,this.numberOfAudioChannels=h,this.desiredSampRate=d,this.sampleRate=E,s.recordingLength=l;var M={left:[],right:[],recordingLength:0};function v(){n&&"function"==typeof i.ondataavailable&&void 0!==i.timeSlice&&(M.left.length?(u({desiredSampRate:d,sampleRate:E,numberOfAudioChannels:h,internalInterleavedLength:M.recordingLength,leftBuffers:M.left,rightBuffers:1===h?[]:M.right},(function(e,t){var r=new Blob([t],{type:"audio/wav"});i.ondataavailable(r),setTimeout(v,i.timeSlice)})),M={left:[],right:[],recordingLength:0}):setTimeout(v,i.timeSlice))}}function k(e,t){if("undefined"==typeof html2canvas)throw"Please link: https://www.webrtc-experiment.com/screenshot.js";(t=t||{}).frameInterval||(t.frameInterval=10);var i=!1;["captureStream","mozCaptureStream","webkitCaptureStream"].forEach((function(e){e in document.createElement("canvas")&&(i=!0)}));var r,s,a,o=!(!window.webkitRTCPeerConnection&&!window.webkitGetUserMedia||!window.chrome),n=50,l=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);if(o&&l&&l[2]&&(n=parseInt(l[2],10)),o&&n<52&&(i=!1),t.useWhammyRecorder&&(i=!1),i)if(t.disableLogs||console.log("Your browser supports both MediRecorder API and canvas.captureStream!"),e instanceof HTMLCanvasElement)r=e;else{if(!(e instanceof CanvasRenderingContext2D))throw"Please pass either HTMLCanvasElement or CanvasRenderingContext2D.";r=e.canvas}else navigator.mozGetUserMedia&&(t.disableLogs||console.error("Canvas recording is NOT supported in Firefox."));this.record=function(){if(a=!0,i&&!t.useWhammyRecorder){var e;"captureStream"in r?e=r.captureStream(25):"mozCaptureStream"in r?e=r.mozCaptureStream(25):"webkitCaptureStream"in r&&(e=r.webkitCaptureStream(25));try{var o=new m;o.addTrack(f(e,"video")[0]),e=o}catch(e){}if(!e)throw"captureStream API are NOT available.";(s=new M(e,{mimeType:t.mimeType||"video/webm"})).record()}else u.frames=[],c=(new Date).getTime(),d();t.initCallback&&t.initCallback()},this.getWebPImages=function(i){if("canvas"===e.nodeName.toLowerCase()){var r=u.frames.length;u.frames.forEach((function(e,i){var s=r-i;t.disableLogs||console.log(s+"/"+r+" frames remaining"),t.onEncodingCallback&&t.onEncodingCallback(s,r);var a=e.image.toDataURL("image/webp",1);u.frames[i].image=a})),t.disableLogs||console.log("Generating WebM"),i()}else i()},this.stop=function(e){a=!1;var r=this;i&&s?s.stop(e):this.getWebPImages((function(){u.compile((function(i){t.disableLogs||console.log("Recording finished!"),r.blob=i,r.blob.forEach&&(r.blob=new Blob([],{type:"video/webm"})),e&&e(r.blob),u.frames=[]}))}))};var h=!1;function A(){u.frames=[],a=!1,h=!1}function d(){if(h)return c=(new Date).getTime(),setTimeout(d,500);if("canvas"===e.nodeName.toLowerCase()){var i=(new Date).getTime()-c;return c=(new Date).getTime(),u.frames.push({image:(r=document.createElement("canvas"),s=r.getContext("2d"),r.width=e.width,r.height=e.height,s.drawImage(e,0,0),r),duration:i}),void(a&&setTimeout(d,t.frameInterval))}var r,s;html2canvas(e,{grabMouse:void 0===t.showMousePointer||t.showMousePointer,onrendered:function(e){var i=(new Date).getTime()-c;if(!i)return setTimeout(d,t.frameInterval);c=(new Date).getTime(),u.frames.push({image:e.toDataURL("image/webp",1),duration:i}),a&&setTimeout(d,t.frameInterval)}})}this.pause=function(){h=!0,s instanceof M&&s.pause()},this.resume=function(){h=!1,s instanceof M?s.resume():a||this.record()},this.clearRecordedData=function(){a&&this.stop(A),A()},this.name="CanvasRecorder",this.toString=function(){return this.name};var c=(new Date).getTime(),u=new D.Video(100)}function B(e,t){function i(e){e=void 0!==e?e:10;var t=(new Date).getTime()-l;return t?a?(l=(new Date).getTime(),setTimeout(i,100)):(l=(new Date).getTime(),n.paused&&n.play(),d.drawImage(n,0,0,A.width,A.height),h.frames.push({duration:t,image:A.toDataURL("image/webp")}),void(s||setTimeout(i,e,e))):setTimeout(i,e,e)}function r(e,t,i,r,s){var a=document.createElement("canvas");a.width=A.width,a.height=A.height;var o=a.getContext("2d"),n=[],l=-1===t,h=t&&t>0&&t<=e.length?t:e.length,d=0,c=0,u=0,p=Math.sqrt(Math.pow(255,2)+Math.pow(255,2)+Math.pow(255,2)),g=i&&i>=0&&i<=1?i:0,m=r&&r>=0&&r<=1?r:0,y=!1;!function(e){var t=-1,i=e.length;!function r(){++t!==i?setTimeout((function(){e.functionToLoop(r,t)}),1):e.callback()}()}({length:h,functionToLoop:function(t,i){var r,s,a,h=function(){!y&&a-r<=a*m||(l&&(y=!0),n.push(e[i])),t()};if(y)h();else{var E=new Image;E.onload=function(){o.drawImage(E,0,0,A.width,A.height);var e=o.getImageData(0,0,A.width,A.height);r=0,s=e.data.length,a=e.data.length/4;for(var t=0;t<s;t+=4){var i={r:e.data[t],g:e.data[t+1],b:e.data[t+2]};Math.sqrt(Math.pow(i.r-d,2)+Math.pow(i.g-c,2)+Math.pow(i.b-u,2))<=p*g&&r++}h()},E.src=e[i].image}},callback:function(){(n=n.concat(e.slice(h))).length<=0&&n.push(e[e.length-1]),s(n)}})}(t=t||{}).frameInterval||(t.frameInterval=10),t.disableLogs||console.log("Using frames-interval:",t.frameInterval),this.record=function(){t.width||(t.width=320),t.height||(t.height=240),t.video||(t.video={width:t.width,height:t.height}),t.canvas||(t.canvas={width:t.width,height:t.height}),A.width=t.canvas.width||320,A.height=t.canvas.height||240,d=A.getContext("2d"),t.video&&t.video instanceof HTMLVideoElement?(n=t.video.cloneNode(),t.initCallback&&t.initCallback()):(n=document.createElement("video"),I(e,n),n.onloadedmetadata=function(){t.initCallback&&t.initCallback()},n.width=t.video.width,n.height=t.video.height),n.muted=!0,n.play(),l=(new Date).getTime(),h=new D.Video,t.disableLogs||(console.log("canvas resolutions",A.width,"*",A.height),console.log("video width/height",n.width||A.width,"*",n.height||A.height)),i(t.frameInterval)};var s=!1;this.stop=function(e){e=e||function(){},s=!0;var i=this;setTimeout((function(){r(h.frames,-1,null,null,(function(r){h.frames=r,t.advertisement&&t.advertisement.length&&(h.frames=t.advertisement.concat(h.frames)),h.compile((function(t){i.blob=t,i.blob.forEach&&(i.blob=new Blob([],{type:"video/webm"})),e&&e(i.blob)}))}))}),10)};var a=!1;function o(){h.frames=[],s=!0,a=!1}this.pause=function(){a=!0},this.resume=function(){a=!1,s&&this.record()},this.clearRecordedData=function(){s||this.stop(o),o()},this.name="WhammyRecorder",this.toString=function(){return this.name};var n,l,h,A=document.createElement("canvas"),d=A.getContext("2d")}void 0!==h?w.AudioContext=h:"undefined"!=typeof webkitAudioContext&&(w.AudioContext=webkitAudioContext),void 0!==t&&(t.Storage=w),void 0!==t&&(t.MediaStreamRecorder=M),void 0!==t&&(t.StereoAudioRecorder=v),void 0!==t&&(t.CanvasRecorder=k),void 0!==t&&(t.WhammyRecorder=B);var D=function(){function e(e){this.frames=[],this.duration=e||1,this.quality=.8}function t(e){function t(e,t,i){return[{data:e,id:231}].concat(i.map((function(e){var i=function(e){var t=0;e.keyframe&&(t|=128);e.invisible&&(t|=8);e.lacing&&(t|=e.lacing<<1);e.discardable&&(t|=1);if(e.trackNum>127)throw"TrackNumber > 127 not supported";var i=[128|e.trackNum,e.timecode>>8,255&e.timecode,t].map((function(e){return String.fromCharCode(e)})).join("")+e.frame;return i}({discardable:0,frame:e.data.slice(4),invisible:0,keyframe:1,lacing:0,trackNum:1,timecode:Math.round(t)});return t+=e.duration,{data:i,id:163}})))}function i(e){for(var t=[];e>0;)t.push(255&e),e>>=8;return new Uint8Array(t.reverse())}function r(e){var t=[];e=(e.length%8?new Array(9-e.length%8).join("0"):"")+e;for(var i=0;i<e.length;i+=8)t.push(parseInt(e.substr(i,8),2));return new Uint8Array(t)}function s(e){for(var t=[],a=0;a<e.length;a++){var o=e[a].data;"object"==typeof o&&(o=s(o)),"number"==typeof o&&(o=r(o.toString(2))),"string"==typeof o&&(o=new Uint8Array(o.split("").map((function(e){return e.charCodeAt(0)}))));var n=o.size||o.byteLength||o.length,l=Math.ceil(Math.ceil(Math.log(n)/Math.log(2))/8),h=n.toString(2),A=new Array(7*l+7+1-h.length).join("0")+h,d=new Array(l).join("0")+"1"+A;t.push(i(e[a].id)),t.push(r(d)),t.push(o)}return new Blob(t,{type:"video/webm"})}function a(e,t){return parseInt(e.substr(t+4,4).split("").map((function(e){var t=e.charCodeAt(0).toString(2);return new Array(8-t.length+1).join("0")+t})).join(""),2)}function o(e){for(var t=0,i={};t<e.length;){var r=e.substr(t,4),s=a(e,t),n=e.substr(t+4+4,s);t+=8+s,i[r]=i[r]||[],"RIFF"===r||"LIST"===r?i[r].push(o(n)):i[r].push(n)}return i}var n=new function(e){var i=function(e){if(!e[0])return void postMessage({error:"Something went wrong. Maybe WebP format is not supported in the current browser."});for(var t=e[0].width,i=e[0].height,r=e[0].duration,s=1;s<e.length;s++)r+=e[s].duration;return{duration:r,width:t,height:i}}(e);if(!i)return[];for(var r,a=[{id:440786851,data:[{data:1,id:17030},{data:1,id:17143},{data:4,id:17138},{data:8,id:17139},{data:"webm",id:17026},{data:2,id:17031},{data:2,id:17029}]},{id:408125543,data:[{id:357149030,data:[{data:1e6,id:2807729},{data:"whammy",id:19840},{data:"whammy",id:22337},{data:(r=i.duration,[].slice.call(new Uint8Array(new Float64Array([r]).buffer),0).map((function(e){return String.fromCharCode(e)})).reverse().join("")),id:17545}]},{id:374648427,data:[{id:174,data:[{data:1,id:215},{data:1,id:29637},{data:0,id:156},{data:"und",id:2274716},{data:"V_VP8",id:134},{data:"VP8",id:2459272},{data:1,id:131},{id:224,data:[{data:i.width,id:176},{data:i.height,id:186}]}]}]}]}],o=0,n=0;o<e.length;){var l=[],h=0;do{l.push(e[o]),h+=e[o].duration,o++}while(o<e.length&&h<3e4);var A={id:524531317,data:t(n,0,l)};a[1].data.push(A),n+=h}return s(a)}(e.map((function(e){var t=function(e){for(var t=e.RIFF[0].WEBP[0],i=t.indexOf("*"),r=0,s=[];r<4;r++)s[r]=t.charCodeAt(i+3+r);return{width:16383&(s[1]<<8|s[0]),height:16383&(s[3]<<8|s[2]),data:t,riff:e}}(o(atob(e.image.slice(23))));return t.duration=e.duration,t})));postMessage(n)}return e.prototype.add=function(e,t){if("canvas"in e&&(e=e.canvas),"toDataURL"in e&&(e=e.toDataURL("image/webp",this.quality)),!/^data:image\/webp;base64,/gi.test(e))throw"Input must be formatted properly as a base64 encoded DataURI of type image/webp";this.frames.push({image:e,duration:t||this.duration})},e.prototype.compile=function(e){var i,r,s,a=(i=t,r=A.createObjectURL(new Blob([i.toString(),"this.onmessage = function (eee) {"+i.name+"(eee.data);}"],{type:"application/javascript"})),s=new Worker(r),A.revokeObjectURL(r),s);a.onmessage=function(t){t.data.error?console.error(t.data.error):e(t.data)},a.postMessage(this.frames)},{Video:e}}();void 0!==t&&(t.Whammy=D);var b={init:function(){var e=this;if("undefined"!=typeof indexedDB&&void 0!==indexedDB.open){var t,i=this.dbName||location.href.replace(/\/|:|#|%|\.|\[|\]/g,""),r=indexedDB.open(i,1);r.onerror=e.onError,r.onsuccess=function(){((t=r.result).onerror=e.onError,t.setVersion)?1!==t.version?t.setVersion(1).onsuccess=function(){s(t),a()}:a():a()},r.onupgradeneeded=function(e){s(e.target.result)}}else console.error("IndexedDB API are not available in this browser.");function s(t){t.createObjectStore(e.dataStoreName)}function a(){var i=t.transaction([e.dataStoreName],"readwrite");function r(t){i.objectStore(e.dataStoreName).get(t).onsuccess=function(i){e.callback&&e.callback(i.target.result,t)}}e.videoBlob&&i.objectStore(e.dataStoreName).put(e.videoBlob,"videoBlob"),e.gifBlob&&i.objectStore(e.dataStoreName).put(e.gifBlob,"gifBlob"),e.audioBlob&&i.objectStore(e.dataStoreName).put(e.audioBlob,"audioBlob"),r("audioBlob"),r("videoBlob"),r("gifBlob")}},Fetch:function(e){return this.callback=e,this.init(),this},Store:function(e){return this.audioBlob=e.audioBlob,this.videoBlob=e.videoBlob,this.gifBlob=e.gifBlob,this.init(),this},onError:function(e){console.error(JSON.stringify(e,null,"\t"))},dataStoreName:"recordRTC",dbName:null};function Q(e,t){if("undefined"==typeof GIFEncoder){var i=document.createElement("script");i.src="https://www.webrtc-experiment.com/gif-recorder.js",(document.body||document.documentElement).appendChild(i)}t=t||{};var r=e instanceof CanvasRenderingContext2D||e instanceof HTMLCanvasElement;this.record=function(){"undefined"!=typeof GIFEncoder&&h?(r||(t.width||(t.width=A.offsetWidth||320),t.height||(t.height=A.offsetHeight||240),t.video||(t.video={width:t.width,height:t.height}),t.canvas||(t.canvas={width:t.width,height:t.height}),a.width=t.canvas.width||320,a.height=t.canvas.height||240,A.width=t.video.width||320,A.height=t.video.height||240),(c=new GIFEncoder).setRepeat(0),c.setDelay(t.frameRate||200),c.setQuality(t.quality||10),c.start(),"function"==typeof t.onGifRecordingStarted&&t.onGifRecordingStarted(),u=o((function e(i){if(!0!==p.clearedRecordedData){if(s)return setTimeout((function(){e(i)}),100);u=o(e),void 0===typeof d&&(d=i),i-d<90||(!r&&A.paused&&A.play(),r||n.drawImage(A,0,0,a.width,a.height),t.onGifPreview&&t.onGifPreview(a.toDataURL("image/png")),c.addFrame(n),d=i)}})),t.initCallback&&t.initCallback()):setTimeout(p.record,1e3)},this.stop=function(e){e=e||function(){},u&&l(u),this.blob=new Blob([new Uint8Array(c.stream().bin)],{type:"image/gif"}),e(this.blob),c.stream().bin=[]};var s=!1;this.pause=function(){s=!0},this.resume=function(){s=!1},this.clearRecordedData=function(){p.clearedRecordedData=!0,c&&(c.stream().bin=[])},this.name="GifRecorder",this.toString=function(){return this.name};var a=document.createElement("canvas"),n=a.getContext("2d");r&&(e instanceof CanvasRenderingContext2D?a=(n=e).canvas:e instanceof HTMLCanvasElement&&(n=e.getContext("2d"),a=e));var h=!0;if(!r){var A=document.createElement("video");A.muted=!0,A.autoplay=!0,A.playsInline=!0,h=!1,A.onloadedmetadata=function(){h=!0},I(e,A),A.play()}var d,c,u=null,p=this}function R(e,i){!function(e){void 0===t&&e&&"undefined"==typeof window&&void 0!==qs&&(qs.navigator={userAgent:"Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45",getUserMedia:function(){}},qs.console||(qs.console={}),void 0!==qs.console.log&&void 0!==qs.console.error||(qs.console.error=qs.console.log=qs.console.log||function(){console.log(arguments)}),"undefined"==typeof document&&(e.document={documentElement:{appendChild:function(){return""}}},document.createElement=document.captureStream=document.mozCaptureStream=function(){var e={getContext:function(){return e},play:function(){},pause:function(){},drawImage:function(){},toDataURL:function(){return""},style:{}};return e},e.HTMLVideoElement=function(){}),"undefined"==typeof location&&(e.location={protocol:"file:",href:"",hash:""}),"undefined"==typeof screen&&(e.screen={width:0,height:0}),void 0===h&&(e.URL={createObjectURL:function(){return""},revokeObjectURL:function(){return""}}),e.window=qs)}(void 0!==qs?qs:null),i=i||"multi-streams-mixer";var r=[],s=!1,a=document.createElement("canvas"),o=a.getContext("2d");a.style.opacity=0,a.style.position="absolute",a.style.zIndex=-1,a.style.top="-1000em",a.style.left="-1000em",a.className=i,(document.body||document.documentElement).appendChild(a),this.disableLogs=!1,this.frameInterval=10,this.width=360,this.height=240,this.useGainNode=!0;var n=this,l=window.AudioContext;void 0===l&&("undefined"!=typeof webkitAudioContext&&(l=webkitAudioContext),"undefined"!=typeof mozAudioContext&&(l=mozAudioContext));var h=window.URL;void 0===h&&"undefined"!=typeof webkitURL&&(h=webkitURL),"undefined"!=typeof navigator&&void 0===navigator.getUserMedia&&(void 0!==navigator.webkitGetUserMedia&&(navigator.getUserMedia=navigator.webkitGetUserMedia),void 0!==navigator.mozGetUserMedia&&(navigator.getUserMedia=navigator.mozGetUserMedia));var A=window.MediaStream;void 0===A&&"undefined"!=typeof webkitMediaStream&&(A=webkitMediaStream),void 0!==A&&void 0===A.prototype.stop&&(A.prototype.stop=function(){this.getTracks().forEach((function(e){e.stop()}))});var d={};function c(){if(!s){var e=r.length,t=!1,i=[];if(r.forEach((function(e){e.stream||(e.stream={}),e.stream.fullcanvas?t=e:i.push(e)})),t)a.width=t.stream.width,a.height=t.stream.height;else if(i.length){a.width=e>1?2*i[0].width:i[0].width;var o=1;3!==e&&4!==e||(o=2),5!==e&&6!==e||(o=3),7!==e&&8!==e||(o=4),9!==e&&10!==e||(o=5),a.height=i[0].height*o}else a.width=n.width||360,a.height=n.height||240;t&&t instanceof HTMLVideoElement&&u(t),i.forEach((function(e,t){u(e,t)})),setTimeout(c,n.frameInterval)}}function u(e,t){if(!s){var i=0,r=0,a=e.width,n=e.height;1===t&&(i=e.width),2===t&&(r=e.height),3===t&&(i=e.width,r=e.height),4===t&&(r=2*e.height),5===t&&(i=e.width,r=2*e.height),6===t&&(r=3*e.height),7===t&&(i=e.width,r=3*e.height),void 0!==e.stream.left&&(i=e.stream.left),void 0!==e.stream.top&&(r=e.stream.top),void 0!==e.stream.width&&(a=e.stream.width),void 0!==e.stream.height&&(n=e.stream.height),o.drawImage(e,i,r,a,n),"function"==typeof e.stream.onRender&&e.stream.onRender(o,i,r,a,n,t)}}function p(e){var t=document.createElement("video");return function(e,t){"srcObject"in t?t.srcObject=e:"mozSrcObject"in t?t.mozSrcObject=e:t.srcObject=e}(e,t),t.className=i,t.muted=!0,t.volume=0,t.width=e.width||n.width||360,t.height=e.height||n.height||240,t.play(),t}function g(t){r=[],(t=t||e).forEach((function(e){if(e.getTracks().filter((function(e){return"video"===e.kind})).length){var t=p(e);t.stream=e,r.push(t)}}))}void 0!==l?d.AudioContext=l:"undefined"!=typeof webkitAudioContext&&(d.AudioContext=webkitAudioContext),this.startDrawingFrames=function(){c()},this.appendStreams=function(t){if(!t)throw"First parameter is required.";t instanceof Array||(t=[t]),t.forEach((function(t){var i=new A;if(t.getTracks().filter((function(e){return"video"===e.kind})).length){var s=p(t);s.stream=t,r.push(s),i.addTrack(t.getTracks().filter((function(e){return"video"===e.kind}))[0])}if(t.getTracks().filter((function(e){return"audio"===e.kind})).length){var a=n.audioContext.createMediaStreamSource(t);n.audioDestination=n.audioContext.createMediaStreamDestination(),a.connect(n.audioDestination),i.addTrack(n.audioDestination.stream.getTracks().filter((function(e){return"audio"===e.kind}))[0])}e.push(i)}))},this.releaseStreams=function(){r=[],s=!0,n.gainNode&&(n.gainNode.disconnect(),n.gainNode=null),n.audioSources.length&&(n.audioSources.forEach((function(e){e.disconnect()})),n.audioSources=[]),n.audioDestination&&(n.audioDestination.disconnect(),n.audioDestination=null),n.audioContext&&n.audioContext.close(),n.audioContext=null,o.clearRect(0,0,a.width,a.height),a.stream&&(a.stream.stop(),a.stream=null)},this.resetVideoStreams=function(e){!e||e instanceof Array||(e=[e]),g(e)},this.name="MultiStreamsMixer",this.toString=function(){return this.name},this.getMixedStream=function(){s=!1;var t=function(){var e;g(),"captureStream"in a?e=a.captureStream():"mozCaptureStream"in a?e=a.mozCaptureStream():n.disableLogs||console.error("Upgrade to latest Chrome or otherwise enable this flag: chrome://flags/#enable-experimental-web-platform-features");var t=new A;return e.getTracks().filter((function(e){return"video"===e.kind})).forEach((function(e){t.addTrack(e)})),a.stream=t,t}(),i=function(){d.AudioContextConstructor||(d.AudioContextConstructor=new d.AudioContext);n.audioContext=d.AudioContextConstructor,n.audioSources=[],!0===n.useGainNode&&(n.gainNode=n.audioContext.createGain(),n.gainNode.connect(n.audioContext.destination),n.gainNode.gain.value=0);var t=0;if(e.forEach((function(e){if(e.getTracks().filter((function(e){return"audio"===e.kind})).length){t++;var i=n.audioContext.createMediaStreamSource(e);!0===n.useGainNode&&i.connect(n.gainNode),n.audioSources.push(i)}})),!t)return;return n.audioDestination=n.audioContext.createMediaStreamDestination(),n.audioSources.forEach((function(e){e.connect(n.audioDestination)})),n.audioDestination.stream}();return i&&i.getTracks().filter((function(e){return"audio"===e.kind})).forEach((function(e){t.addTrack(e)})),e.forEach((function(e){e.fullcanvas})),t}}function T(e,t){e=e||[];var i,r,s=this;(t=t||{elementClass:"multi-streams-mixer",mimeType:"video/webm",video:{width:360,height:240}}).frameInterval||(t.frameInterval=10),t.video||(t.video={}),t.video.width||(t.video.width=360),t.video.height||(t.video.height=240),this.record=function(){var s;i=new R(e,t.elementClass||"multi-streams-mixer"),(s=[],e.forEach((function(e){f(e,"video").forEach((function(e){s.push(e)}))})),s).length&&(i.frameInterval=t.frameInterval||10,i.width=t.video.width||360,i.height=t.video.height||240,i.startDrawingFrames()),t.previewStream&&"function"==typeof t.previewStream&&t.previewStream(i.getMixedStream()),(r=new M(i.getMixedStream(),t)).record()},this.stop=function(e){r&&r.stop((function(t){s.blob=t,e(t),s.clearRecordedData()}))},this.pause=function(){r&&r.pause()},this.resume=function(){r&&r.resume()},this.clearRecordedData=function(){r&&(r.clearRecordedData(),r=null),i&&(i.releaseStreams(),i=null)},this.addStreams=function(s){if(!s)throw"First parameter is required.";s instanceof Array||(s=[s]),e.concat(s),r&&i&&(i.appendStreams(s),t.previewStream&&"function"==typeof t.previewStream&&t.previewStream(i.getMixedStream()))},this.resetVideoStreams=function(e){i&&(!e||e instanceof Array||(e=[e]),i.resetVideoStreams(e))},this.getMixer=function(){return i},this.name="MultiStreamRecorder",this.toString=function(){return this.name}}function L(e,t){var i,r,s;function a(){return new ReadableStream({start:function(r){var s=document.createElement("canvas"),a=document.createElement("video"),o=!0;a.srcObject=e,a.muted=!0,a.height=t.height,a.width=t.width,a.volume=0,a.onplaying=function(){s.width=t.width,s.height=t.height;var e=s.getContext("2d"),n=1e3/t.frameRate,l=setInterval((function(){if(i&&(clearInterval(l),r.close()),o&&(o=!1,t.onVideoProcessStarted&&t.onVideoProcessStarted()),e.drawImage(a,0,0),"closed"!==r._controlledReadableStream.state)try{r.enqueue(e.getImageData(0,0,t.width,t.height))}catch(e){}}),n)},a.play()}})}function o(e,l){if(!t.workerPath&&!l)return i=!1,void fetch("https://unpkg.com/webm-wasm@latest/dist/webm-worker.js").then((function(t){t.arrayBuffer().then((function(t){o(e,t)}))}));if(!t.workerPath&&l instanceof ArrayBuffer){var h=new Blob([l],{type:"text/javascript"});t.workerPath=A.createObjectURL(h)}t.workerPath||console.error("workerPath parameter is missing."),(r=new Worker(t.workerPath)).postMessage(t.webAssemblyPath||"https://unpkg.com/webm-wasm@latest/dist/webm-wasm.wasm"),r.addEventListener("message",(function(e){"READY"===e.data?(r.postMessage({width:t.width,height:t.height,bitrate:t.bitrate||1200,timebaseDen:t.frameRate||30,realtime:t.realtime}),a().pipeTo(new WritableStream({write:function(e){i?console.error("Got image, but recorder is finished!"):r.postMessage(e.data.buffer,[e.data.buffer])}}))):e.data&&(s||n.push(e.data))}))}"undefined"!=typeof ReadableStream&&"undefined"!=typeof WritableStream||console.error("Following polyfill is strongly recommended: https://unpkg.com/@mattiasbuelens/web-streams-polyfill/dist/polyfill.min.js"),(t=t||{}).width=t.width||640,t.height=t.height||480,t.frameRate=t.frameRate||30,t.bitrate=t.bitrate||1200,t.realtime=t.realtime||!0,this.record=function(){n=[],s=!1,this.blob=null,o(e),"function"==typeof t.initCallback&&t.initCallback()},this.pause=function(){s=!0},this.resume=function(){s=!1};var n=[];this.stop=function(e){i=!0;var t=this;!function(e){r?(r.addEventListener("message",(function(t){null===t.data&&(r.terminate(),r=null,e&&e())})),r.postMessage(null)):e&&e()}((function(){t.blob=new Blob(n,{type:"video/webm"}),e(t.blob)}))},this.name="WebAssemblyRecorder",this.toString=function(){return this.name},this.clearRecordedData=function(){n=[],s=!1,this.blob=null},this.blob=null}void 0!==t&&(t.DiskStorage=b),void 0!==t&&(t.GifRecorder=Q),void 0===t&&(e.exports=R),void 0!==t&&(t.MultiStreamRecorder=T),void 0!==t&&(t.RecordRTCPromisesHandler=function(e,i){if(!this)throw'Use "new RecordRTCPromisesHandler()"';if(void 0===e)throw'First argument "MediaStream" is required.';var r=this;r.recordRTC=new t(e,i),this.startRecording=function(){return new Promise((function(e,t){try{r.recordRTC.startRecording(),e()}catch(e){t(e)}}))},this.stopRecording=function(){return new Promise((function(e,t){try{r.recordRTC.stopRecording((function(i){r.blob=r.recordRTC.getBlob(),r.blob&&r.blob.size?e(i):t("Empty blob.",r.blob)}))}catch(e){t(e)}}))},this.pauseRecording=function(){return new Promise((function(e,t){try{r.recordRTC.pauseRecording(),e()}catch(e){t(e)}}))},this.resumeRecording=function(){return new Promise((function(e,t){try{r.recordRTC.resumeRecording(),e()}catch(e){t(e)}}))},this.getDataURL=function(e){return new Promise((function(e,t){try{r.recordRTC.getDataURL((function(t){e(t)}))}catch(e){t(e)}}))},this.getBlob=function(){return new Promise((function(e,t){try{e(r.recordRTC.getBlob())}catch(e){t(e)}}))},this.getInternalRecorder=function(){return new Promise((function(e,t){try{e(r.recordRTC.getInternalRecorder())}catch(e){t(e)}}))},this.reset=function(){return new Promise((function(e,t){try{e(r.recordRTC.reset())}catch(e){t(e)}}))},this.destroy=function(){return new Promise((function(e,t){try{e(r.recordRTC.destroy())}catch(e){t(e)}}))},this.getState=function(){return new Promise((function(e,t){try{e(r.recordRTC.getState())}catch(e){t(e)}}))},this.blob=null,this.version="5.6.2"}),void 0!==t&&(t.WebAssemblyRecorder=L)}));class bn{static _ebsp2rbsp(e){let t=e,i=t.byteLength,r=new Uint8Array(i),s=0;for(let e=0;e<i;e++)e>=2&&3===t[e]&&0===t[e-1]&&0===t[e-2]||(r[s]=t[e],s++);return new Uint8Array(r.buffer,0,s)}static parseSPS(e){let t=bn._ebsp2rbsp(e),i=new Us(t);i.readByte();let r=i.readByte();i.readByte();let s=i.readByte();i.readUEG();let a=bn.getProfileString(r),o=bn.getLevelString(s),n=1,l=420,h=[0,420,422,444],A=8;if((100===r||110===r||122===r||244===r||44===r||83===r||86===r||118===r||128===r||138===r||144===r)&&(n=i.readUEG(),3===n&&i.readBits(1),n<=3&&(l=h[n]),A=i.readUEG()+8,i.readUEG(),i.readBits(1),i.readBool())){let e=3!==n?8:12;for(let t=0;t<e;t++)i.readBool()&&(t<6?bn._skipScalingList(i,16):bn._skipScalingList(i,64))}i.readUEG();let d=i.readUEG();if(0===d)i.readUEG();else if(1===d){i.readBits(1),i.readSEG(),i.readSEG();let e=i.readUEG();for(let t=0;t<e;t++)i.readSEG()}let c=i.readUEG();i.readBits(1);let u=i.readUEG(),p=i.readUEG(),g=i.readBits(1);0===g&&i.readBits(1),i.readBits(1);let m=0,y=0,E=0,C=0;i.readBool()&&(m=i.readUEG(),y=i.readUEG(),E=i.readUEG(),C=i.readUEG());let f=1,I=1,w=0,S=!0,M=0,v=0;if(i.readBool()){if(i.readBool()){let e=i.readByte();e>0&&e<16?(f=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][e-1],I=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][e-1]):255===e&&(f=i.readByte()<<8|i.readByte(),I=i.readByte()<<8|i.readByte())}if(i.readBool()&&i.readBool(),i.readBool()&&(i.readBits(4),i.readBool()&&i.readBits(24)),i.readBool()&&(i.readUEG(),i.readUEG()),i.readBool()){let e=i.readBits(32),t=i.readBits(32);S=i.readBool(),M=t,v=2*e,w=M/v}}let k=1;1===f&&1===I||(k=f/I);let B=0,D=0;if(0===n)B=1,D=2-g;else{B=3===n?1:2,D=(1===n?2:1)*(2-g)}let b=16*(u+1),Q=16*(p+1)*(2-g);b-=(m+y)*B,Q-=(E+C)*D;let R=Math.ceil(b*k);return i.destroy(),i=null,{profile_string:a,level_string:o,bit_depth:A,ref_frames:c,chroma_format:l,chroma_format_string:bn.getChromaFormatString(l),frame_rate:{fixed:S,fps:w,fps_den:v,fps_num:M},sar_ratio:{width:f,height:I},codec_size:{width:b,height:Q},present_size:{width:R,height:Q}}}static parseSPS$2(e){let t=e.subarray(1,4),i="avc1.";for(let e=0;e<3;e++){let r=t[e].toString(16);r.length<2&&(r="0"+r),i+=r}let r=bn._ebsp2rbsp(e),s=new Us(r);s.readByte();let a=s.readByte();s.readByte();let o=s.readByte();s.readUEG();let n=bn.getProfileString(a),l=bn.getLevelString(o),h=1,A=420,d=[0,420,422,444],c=8,u=8;if((100===a||110===a||122===a||244===a||44===a||83===a||86===a||118===a||128===a||138===a||144===a)&&(h=s.readUEG(),3===h&&s.readBits(1),h<=3&&(A=d[h]),c=s.readUEG()+8,u=s.readUEG()+8,s.readBits(1),s.readBool())){let e=3!==h?8:12;for(let t=0;t<e;t++)s.readBool()&&(t<6?bn._skipScalingList(s,16):bn._skipScalingList(s,64))}s.readUEG();let p=s.readUEG();if(0===p)s.readUEG();else if(1===p){s.readBits(1),s.readSEG(),s.readSEG();let e=s.readUEG();for(let t=0;t<e;t++)s.readSEG()}let g=s.readUEG();s.readBits(1);let m=s.readUEG(),y=s.readUEG(),E=s.readBits(1);0===E&&s.readBits(1),s.readBits(1);let C=0,f=0,I=0,w=0;s.readBool()&&(C=s.readUEG(),f=s.readUEG(),I=s.readUEG(),w=s.readUEG());let S=1,M=1,v=0,k=!0,B=0,D=0;if(s.readBool()){if(s.readBool()){let e=s.readByte();e>0&&e<16?(S=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][e-1],M=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][e-1]):255===e&&(S=s.readByte()<<8|s.readByte(),M=s.readByte()<<8|s.readByte())}if(s.readBool()&&s.readBool(),s.readBool()&&(s.readBits(4),s.readBool()&&s.readBits(24)),s.readBool()&&(s.readUEG(),s.readUEG()),s.readBool()){let e=s.readBits(32),t=s.readBits(32);k=s.readBool(),B=t,D=2*e,v=B/D}}let b=1;1===S&&1===M||(b=S/M);let Q=0,R=0;if(0===h)Q=1,R=2-E;else{Q=3===h?1:2,R=(1===h?2:1)*(2-E)}let T=16*(m+1),L=16*(y+1)*(2-E);T-=(C+f)*Q,L-=(I+w)*R;let K=Math.ceil(T*b);return s.destroy(),s=null,{codec_mimetype:i,profile_idc:a,level_idc:o,profile_string:n,level_string:l,chroma_format_idc:h,bit_depth:c,bit_depth_luma:c,bit_depth_chroma:u,ref_frames:g,chroma_format:A,chroma_format_string:bn.getChromaFormatString(A),frame_rate:{fixed:k,fps:v,fps_den:D,fps_num:B},sar_ratio:{width:S,height:M},codec_size:{width:T,height:L},present_size:{width:K,height:L}}}static _skipScalingList(e,t){let i=8,r=8,s=0;for(let a=0;a<t;a++)0!==r&&(s=e.readSEG(),r=(i+s+256)%256),i=0===r?i:r}static getProfileString(e){switch(e){case 66:return"Baseline";case 77:return"Main";case 88:return"Extended";case 100:return"High";case 110:return"High10";case 122:return"High422";case 244:return"High444";default:return"Unknown"}}static getLevelString(e){return(e/10).toFixed(1)}static getChromaFormatString(e){switch(e){case 420:return"4:2:0";case 422:return"4:2:2";case 444:return"4:4:4";default:return"Unknown"}}}class Qn{constructor(e){this.buffer=e,this.buflen=e.length,this.bufpos=0,this.bufoff=0,this.iserro=!1}read(e){let t=0,i=0;for(;e;){if(e<0||this.bufpos>=this.buflen)return this.iserro=!0,0;this.iserro=!1,i=this.bufoff+e>8?8-this.bufoff:e,t<<=i,t+=this.buffer[this.bufpos]>>8-this.bufoff-i&255>>8-i,this.bufoff+=i,e-=i,8==this.bufoff&&(this.bufpos++,this.bufoff=0)}return t}look(e){let t=this.bufpos,i=this.bufoff,r=this.read(e);return this.bufpos=t,this.bufoff=i,r}read_golomb(){let e;for(e=0;0===this.read(1)&&!this.iserro;e++);return(1<<e)+this.read(e)-1}}function Rn(e){const t={};let i=function(){let e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),256===new Int16Array(e)[0]}();const r=new DataView(e.buffer);let s=r.getUint8(0),a=r.getUint8(1);if(r.getUint8(2),r.getUint8(3),1!==s||0===a)return{};const o=1+(3&r.getUint8(4));if(3!==o&&4!==o)return{};let n=31&r.getUint8(5);if(0===n)return{};let l=6;for(let s=0;s<n;s++){let a=r.getUint16(l,!i);if(l+=2,0===a)continue;let o=new Uint8Array(e.buffer,l,a);l+=a;let n=bn.parseSPS(o);if(0!==s)continue;t.sps=o,t.timescale=1e3,t.codecWidth=n.codec_size.width,t.codecHeight=n.codec_size.height,t.presentWidth=n.present_size.width,t.presentHeight=n.present_size.height,t.profile=n.profile_string,t.level=n.level_string,t.bitDepth=n.bit_depth,t.chromaFormat=n.chroma_format,t.sarRatio=n.sar_ratio,t.frameRate=n.frame_rate,!1!==n.frame_rate.fixed&&0!==n.frame_rate.fps_num&&0!==n.frame_rate.fps_den||(t.frameRate={fixed:!0,fps:25,fps_num:25e3,fps_den:1e3});let h=t.frameRate.fps_den,A=t.frameRate.fps_num;t.refSampleDuration=t.timescale*(h/A);let d=o.subarray(1,4),c="avc1.";for(let e=0;e<3;e++){let t=d[e].toString(16);t.length<2&&(t="0"+t),c+=t}t.codec=c}let h=r.getUint8(l);if(0===h)return{};l++;for(let s=0;s<h;s++){let s=r.getUint16(l,!i);if(l+=2,0===s)continue;let a=new Uint8Array(e.buffer,l,s);l+=s,t.pps=a}if(t.videoType=sr,t.sps){const e=t.sps.byteLength,i=new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,255&e]),r=new Uint8Array(e+4);r.set(i,0),r.set(t.sps,4),t.sps=r}if(t.pps){const e=t.pps.byteLength,i=new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,255&e]),r=new Uint8Array(e+4);r.set(i,0),r.set(t.pps,4),t.pps=r}return t}function Tn(e){let{sps:t,pps:i}=e,r=8+t.byteLength+1+2+i.byteLength,s=!1;const a=bn.parseSPS$2(t);66!==t[3]&&77!==t[3]&&88!==t[3]&&(s=!0,r+=4);let o=new Uint8Array(r);o[0]=1,o[1]=t[1],o[2]=t[2],o[3]=t[3],o[4]=255,o[5]=225;let n=t.byteLength;o[6]=n>>>8,o[7]=255&n;let l=8;o.set(t,8),l+=n,o[l]=1;let h=i.byteLength;o[l+1]=h>>>8,o[l+2]=255&h,o.set(i,l+3),l+=3+h,s&&(o[l]=252|a.chroma_format_idc,o[l+1]=248|a.bit_depth_luma-8,o[l+2]=248|a.bit_depth_chroma-8,o[l+3]=0,l+=4);const A=[23,0,0,0,0],d=new Uint8Array(A.length+o.byteLength);return d.set(A,0),d.set(o,A.length),d}function Ln(e,t){let i=[];i[0]=t?23:39,i[1]=1,i[2]=0,i[3]=0,i[4]=0;const r=new Uint8Array(i.length+e.byteLength);return r.set(i,0),r.set(e,i.length),r}function Kn(e){return 31&e[0]}function qn(e){return e===Ft.kSliceSEI}function xn(e){return!function(e){return e===Ft.sps||e===Ft.pps}(e)&&!qn(e)}function Fn(e){return e===Ft.iFrame}class Un{constructor(e){this.data=e,this.eofFlag=!1,this.currentStartcodeOffset=this.findNextStartCodeOffset(0),this.eofFlag&&console.error("Could not find H264 startcode until payload end!")}findNextStartCodeOffset(e){let t=e,i=this.data;for(;;){if(t+3>=i.byteLength)return this.eofFlag=!0,i.byteLength;let e=i[t+0]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3],r=i[t+0]<<16|i[t+1]<<8|i[t+2];if(1===e||1===r)return t;t++}}readNextNaluPayload(){let e=this.data,t=null;for(;null==t&&!this.eofFlag;){let i=this.currentStartcodeOffset;i+=1===(e[i]<<24|e[i+1]<<16|e[i+2]<<8|e[i+3])?4:3;let r=31&e[i],s=(128&e[i])>>>7,a=this.findNextStartCodeOffset(i);this.currentStartcodeOffset=a,r>=Ft.kReserved0||0===s&&(t={type:r,data:e.subarray(i,a)})}return t}}class Gn{constructor(e){let t=e.data.byteLength;this.type=e.type,this.data=new Uint8Array(4+t),new DataView(this.data.buffer).setUint32(0,t),this.data.set(e.data,4)}}const On=e=>{let t=e,i=t.byteLength,r=new Uint8Array(i),s=0;for(let e=0;e<i;e++)e>=2&&3===t[e]&&0===t[e-1]&&0===t[e-2]||(r[s]=t[e],s++);return new Uint8Array(r.buffer,0,s)},Jn=e=>{switch(e){case 0:return"4:0:0";case 1:return"4:2:0";case 2:return"4:2:2";case 3:return"4:4:4";default:return"Unknown"}};class Yn{static _ebsp2rbsp(e){let t=e,i=t.byteLength,r=new Uint8Array(i),s=0;for(let e=0;e<i;e++)e>=2&&3===t[e]&&0===t[e-1]&&0===t[e-2]||(r[s]=t[e],s++);return new Uint8Array(r.buffer,0,s)}static parseVPS(e){let t=Yn._ebsp2rbsp(e),i=new Us(t);return i.readByte(),i.readByte(),i.readBits(4),i.readBits(2),i.readBits(6),{num_temporal_layers:i.readBits(3)+1,temporal_id_nested:i.readBool()}}static parseSPS(e){let t=Yn._ebsp2rbsp(e),i=new Us(t);i.readByte(),i.readByte();let r=0,s=0,a=0,o=0;i.readBits(4);let n=i.readBits(3);i.readBool();let l=i.readBits(2),h=i.readBool(),A=i.readBits(5),d=i.readByte(),c=i.readByte(),u=i.readByte(),p=i.readByte(),g=i.readByte(),m=i.readByte(),y=i.readByte(),E=i.readByte(),C=i.readByte(),f=i.readByte(),I=i.readByte(),w=[],S=[];for(let e=0;e<n;e++)w.push(i.readBool()),S.push(i.readBool());if(n>0)for(let e=n;e<8;e++)i.readBits(2);for(let e=0;e<n;e++)w[e]&&(i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte()),S[e]&&i.readByte();i.readUEG();let M=i.readUEG();3==M&&i.readBits(1);let v=i.readUEG(),k=i.readUEG();i.readBool()&&(r+=i.readUEG(),s+=i.readUEG(),a+=i.readUEG(),o+=i.readUEG());let B=i.readUEG(),D=i.readUEG(),b=i.readUEG();for(let e=i.readBool()?0:n;e<=n;e++)i.readUEG(),i.readUEG(),i.readUEG();if(i.readUEG(),i.readUEG(),i.readUEG(),i.readUEG(),i.readUEG(),i.readUEG(),i.readBool()){if(i.readBool())for(let e=0;e<4;e++)for(let t=0;t<(3===e?2:6);t++){if(i.readBool()){let t=Math.min(64,1<<4+(e<<1));e>1&&i.readSEG();for(let e=0;e<t;e++)i.readSEG()}else i.readUEG()}}i.readBool(),i.readBool(),i.readBool()&&(i.readByte(),i.readUEG(),i.readUEG(),i.readBool());let Q=i.readUEG(),R=0;for(let e=0;e<Q;e++){let t=!1;if(0!==e&&(t=i.readBool()),t){e===Q&&i.readUEG(),i.readBool(),i.readUEG();let t=0;for(let e=0;e<=R;e++){let e=i.readBool(),r=!1;e||(r=i.readBool()),(e||r)&&t++}R=t}else{let e=i.readUEG(),t=i.readUEG();R=e+t;for(let t=0;t<e;t++)i.readUEG(),i.readBool();for(let e=0;e<t;e++)i.readUEG(),i.readBool()}}if(i.readBool()){let e=i.readUEG();for(let t=0;t<e;t++){for(let e=0;e<b+4;e++)i.readBits(1);i.readBits(1)}}let T=!1,L=0,K=1,q=1,x=!1,F=1,U=1;if(i.readBool(),i.readBool(),i.readBool()){if(i.readBool()){let e=i.readByte();e>0&&e<=16?(K=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][e-1],q=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][e-1]):255===e&&(K=i.readBits(16),q=i.readBits(16))}if(i.readBool()&&i.readBool(),i.readBool()){i.readBits(3),i.readBool(),i.readBool()&&(i.readByte(),i.readByte(),i.readByte())}if(i.readBool()&&(i.readUEG(),i.readUEG()),i.readBool(),i.readBool(),i.readBool(),T=i.readBool(),T&&(i.readUEG(),i.readUEG(),i.readUEG(),i.readUEG()),i.readBool()){if(F=i.readBits(32),U=i.readBits(32),i.readBool()&&i.readUEG(),i.readBool()){let e=!1,t=!1,r=!1;e=i.readBool(),t=i.readBool(),(e||t)&&(r=i.readBool(),r&&(i.readByte(),i.readBits(5),i.readBool(),i.readBits(5)),i.readBits(4),i.readBits(4),r&&i.readBits(4),i.readBits(5),i.readBits(5),i.readBits(5));for(let s=0;s<=n;s++){let s=i.readBool();x=s;let a=!0,o=1;s||(a=i.readBool());let n=!1;if(a?i.readUEG():n=i.readBool(),n||(o=i.readUEG()+1),e){for(let e=0;e<o;e++)i.readUEG(),i.readUEG(),r&&(i.readUEG(),i.readUEG());i.readBool()}if(t){for(let e=0;e<o;e++)i.readUEG(),i.readUEG(),r&&(i.readUEG(),i.readUEG());i.readBool()}}}}i.readBool()&&(i.readBool(),i.readBool(),i.readBool(),L=i.readUEG(),i.readUEG(),i.readUEG(),i.readUEG(),i.readUEG())}i.readBool();let G=`hvc1.${A}.1.L${I}.B0`,O=v-(r+s)*(1===M||2===M?2:1),J=k-(a+o)*(1===M?2:1),Y=1;return 1!==K&&1!==q&&(Y=K/q),i.destroy(),i=null,{codec_mimetype:G,profile_string:Yn.getProfileString(A),level_string:Yn.getLevelString(I),profile_idc:A,bit_depth:B+8,ref_frames:1,chroma_format:M,chroma_format_string:Yn.getChromaFormatString(M),general_level_idc:I,general_profile_space:l,general_tier_flag:h,general_profile_idc:A,general_profile_compatibility_flags_1:d,general_profile_compatibility_flags_2:c,general_profile_compatibility_flags_3:u,general_profile_compatibility_flags_4:p,general_constraint_indicator_flags_1:g,general_constraint_indicator_flags_2:m,general_constraint_indicator_flags_3:y,general_constraint_indicator_flags_4:E,general_constraint_indicator_flags_5:C,general_constraint_indicator_flags_6:f,min_spatial_segmentation_idc:L,constant_frame_rate:0,chroma_format_idc:M,bit_depth_luma_minus8:B,bit_depth_chroma_minus8:D,frame_rate:{fixed:x,fps:U/F,fps_den:F,fps_num:U},sar_ratio:{width:K,height:q},codec_size:{width:O,height:J},present_size:{width:O*Y,height:J}}}static parsePPS(e){let t=Yn._ebsp2rbsp(e),i=new Us(t);i.readByte(),i.readByte(),i.readUEG(),i.readUEG(),i.readBool(),i.readBool(),i.readBits(3),i.readBool(),i.readBool(),i.readUEG(),i.readUEG(),i.readSEG(),i.readBool(),i.readBool(),i.readBool()&&i.readUEG(),i.readSEG(),i.readSEG(),i.readBool(),i.readBool(),i.readBool(),i.readBool();let r=i.readBool(),s=i.readBool(),a=1;return s&&r?a=0:s?a=3:r&&(a=2),{parallelismType:a}}static getChromaFormatString(e){switch(e){case 0:return"4:0:0";case 1:return"4:2:0";case 2:return"4:2:2";case 3:return"4:4:4";default:return"Unknown"}}static getProfileString(e){switch(e){case 1:return"Main";case 2:return"Main10";case 3:return"MainSP";case 4:return"Rext";case 9:return"SCC";default:return"Unknown"}}static getLevelString(e){return(e/30).toFixed(1)}}function Nn(e){let t={codecWidth:0,codecHeight:0,videoType:ar,width:0,height:0,profile:0,level:0};e=e.slice(5);do{let i={};if(e.length<23){console.warn("parseHEVCDecoderConfigurationRecord$2",`arrayBuffer.length ${e.length} < 23`);break}if(i.configurationVersion=e[0],1!=i.configurationVersion)break;i.general_profile_space=e[1]>>6&3,i.general_tier_flag=e[1]>>5&1,i.general_profile_idc=31&e[1],i.general_profile_compatibility_flags=e[2]<<24|e[3]<<16|e[4]<<8|e[5],i.general_constraint_indicator_flags=e[6]<<24|e[7]<<16|e[8]<<8|e[9],i.general_constraint_indicator_flags=i.general_constraint_indicator_flags<<16|e[10]<<8|e[11],i.general_level_idc=e[12],i.min_spatial_segmentation_idc=(15&e[13])<<8|e[14],i.parallelismType=3&e[15],i.chromaFormat=3&e[16],i.bitDepthLumaMinus8=7&e[17],i.bitDepthChromaMinus8=7&e[18],i.avgFrameRate=e[19]<<8|e[20],i.constantFrameRate=e[21]>>6&3,i.numTemporalLayers=e[21]>>3&7,i.temporalIdNested=e[21]>>2&1,i.lengthSizeMinusOne=3&e[21];let r=e[22],s=e.slice(23);for(let e=0;e<r&&!(s.length<3);e++){let e=63&s[0],r=s[1]<<8|s[2];s=s.slice(3);for(let a=0;a<r&&!(s.length<2);a++){let r=s[0]<<8|s[1];if(s.length<2+r)break;if(s=s.slice(2),33==e){let e=new Uint8Array(r);e.set(s.slice(0,r),0),i.psps=jn(e,i),t.profile=i.general_profile_idc,t.level=i.general_level_idc/30,t.width=i.psps.pic_width_in_luma_samples-(i.psps.conf_win_left_offset+i.psps.conf_win_right_offset),t.height=i.psps.pic_height_in_luma_samples-(i.psps.conf_win_top_offset+i.psps.conf_win_bottom_offset)}s=s.slice(r)}}}while(0);return t.codecWidth=t.width||1920,t.codecHeight=t.height||1080,t.presentHeight=t.codecHeight,t.presentWidth=t.codecWidth,t.timescale=1e3,t.refSampleDuration=1e3/23976*1e3,t}function Pn(e){const t=e;if(t.length<22)return console.error(`Invalid HEVCDecoderConfigurationRecord, lack of data! ${t.length} < 22`),{};let i={codecWidth:0,codecHeight:0,videoType:ar},r=function(){let e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),256===new Int16Array(e)[0]}(),s=new DataView(t.buffer),a=s.getUint8(0),o=31&s.getUint8(1);if(1!==a||0===o)return console.error(`Invalid HEVCDecoderConfigurationRecord,version is ${a}, hevcProfile is ${o}`),{};let n=1+(3&s.getUint8(21));if(3!==n&&4!==n)return console.error("Invalid HEVCDecoderConfigurationRecord, Strange NaluLengthSizeMinusOne: "+(n-1)),{};let l=s.getUint8(22);for(let e=0,a=23;e<l;e++){let e=63&s.getUint8(a+0),o=s.getUint16(a+1,!r);a+=3;for(let n=0;n<o;n++){let o=s.getUint16(a+0,!r);if(0===n)if(33===e){a+=2;let e=new Uint8Array(t.buffer,a,o),r=Yn.parseSPS(e);i.codecWidth=r.codec_size.width,i.codecHeight=r.codec_size.height,i.presentWidth=r.present_size.width,i.presentHeight=r.present_size.height,i.profile=r.profile_string,i.level=r.level_string,i.bitDepth=r.bit_depth,i.chromaFormat=r.chroma_format,i.sarRatio=r.sar_ratio,i.frameRate=r.frame_rate,!1!==r.frame_rate.fixed&&0!==r.frame_rate.fps_num&&0!==r.frame_rate.fps_den||(i.frameRate={fixed:!0,fps:23.976,fps_num:23976,fps_den:1e3}),i.frameRate.fps_den,i.frameRate.fps_num,i.codec=r.codec_mimetype,a+=o}else a+=2+o;else a+=2+o}}return i.hvcc=new Uint8Array(t),i}function jn(e,t){let i={},r=e.length,s=[],a=new Qn(e);a.read(1),a.read(6),a.read(6),a.read(3);for(let e=2;e<r;e++)e+2<r&&3==a.look(24)?(s.push(a.read(8)),s.push(a.read(8)),e+=2,a.read(8)):s.push(a.read(8));let o=new Uint8Array(s),n=new Qn(o);if(i.sps_video_parameter_set_id=n.read(4),i.sps_max_sub_layers_minus1=n.read(3),i.sps_temporal_id_nesting_flag=n.read(1),i.profile_tier_level=function(e,t,i){let r={};r.profile_space=e.read(2),r.tier_flag=e.read(1),r.profile_idc=e.read(5),r.profile_compatibility_flags=e.read(32),r.general_progressive_source_flag=e.read(1),r.general_interlaced_source_flag=e.read(1),r.general_non_packed_constraint_flag=e.read(1),r.general_frame_only_constraint_flag=e.read(1),e.read(32),e.read(12),r.level_idc=e.read(8),r.sub_layer_profile_present_flag=[],r.sub_layer_level_present_flag=[];for(let t=0;t<i;t++)r.sub_layer_profile_present_flag[t]=e.read(1),r.sub_layer_level_present_flag[t]=e.read(1);if(i>0)for(let t=i;t<8;t++)e.read(2);r.sub_layer_profile_space=[],r.sub_layer_tier_flag=[],r.sub_layer_profile_idc=[],r.sub_layer_profile_compatibility_flag=[],r.sub_layer_progressive_source_flag=[],r.sub_layer_interlaced_source_flag=[],r.sub_layer_non_packed_constraint_flag=[],r.sub_layer_frame_only_constraint_flag=[],r.sub_layer_level_idc=[];for(let t=0;t<i;t++)r.sub_layer_profile_present_flag[t]&&(r.sub_layer_profile_space[t]=e.read(2),r.sub_layer_tier_flag[t]=e.read(1),r.sub_layer_profile_idc[t]=e.read(5),r.sub_layer_profile_compatibility_flag[t]=e.read(32),r.sub_layer_progressive_source_flag[t]=e.read(1),r.sub_layer_interlaced_source_flag[t]=e.read(1),r.sub_layer_non_packed_constraint_flag[t]=e.read(1),r.sub_layer_frame_only_constraint_flag[t]=e.read(1),e.read(32),e.read(12)),r.sub_layer_level_present_flag[t]?r.sub_layer_level_idc[t]=e.read(8):r.sub_layer_level_idc[t]=1;return r}(n,0,i.sps_max_sub_layers_minus1),i.sps_seq_parameter_set_id=n.read_golomb(),i.chroma_format_idc=n.read_golomb(),3==i.chroma_format_idc?i.separate_colour_plane_flag=n.read(1):i.separate_colour_plane_flag=0,i.pic_width_in_luma_samples=n.read_golomb(),i.pic_height_in_luma_samples=n.read_golomb(),i.conformance_window_flag=n.read(1),i.conformance_window_flag){let e=1+(i.chroma_format_idc<2),t=1+(i.chroma_format_idc<3);i.conf_win_left_offset=n.read_golomb()*t,i.conf_win_right_offset=n.read_golomb()*t,i.conf_win_top_offset=n.read_golomb()*e,i.conf_win_bottom_offset=n.read_golomb()*e}else i.conf_win_left_offset=0,i.conf_win_right_offset=0,i.conf_win_top_offset=0,i.conf_win_bottom_offset=0;return i}function zn(e){let{vps:t,pps:i,sps:r}=e,s={configurationVersion:1};const a=(e=>{let t=On(e),i=new Us(t);return i.readByte(),i.readByte(),i.readBits(4),i.readBits(2),i.readBits(6),{num_temporal_layers:i.readBits(3)+1,temporal_id_nested:i.readBool()}})(t),o=(e=>{let t=On(e),i=new Us(t);i.readByte(),i.readByte();let r=0,s=0,a=0,o=0;i.readBits(4);let n=i.readBits(3);i.readBool();let l=i.readBits(2),h=i.readBool(),A=i.readBits(5),d=i.readByte(),c=i.readByte(),u=i.readByte(),p=i.readByte(),g=i.readByte(),m=i.readByte(),y=i.readByte(),E=i.readByte(),C=i.readByte(),f=i.readByte(),I=i.readByte(),w=[],S=[];for(let e=0;e<n;e++)w.push(i.readBool()),S.push(i.readBool());if(n>0)for(let e=n;e<8;e++)i.readBits(2);for(let e=0;e<n;e++)w[e]&&(i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte(),i.readByte()),w[e]&&i.readByte();i.readUEG();let M=i.readUEG();3==M&&i.readBits(1);let v=i.readUEG(),k=i.readUEG();i.readBool()&&(r+=i.readUEG(),s+=i.readUEG(),a+=i.readUEG(),o+=i.readUEG());let B=i.readUEG(),D=i.readUEG(),b=i.readUEG();for(let e=i.readBool()?0:n;e<=n;e++)i.readUEG(),i.readUEG(),i.readUEG();if(i.readUEG(),i.readUEG(),i.readUEG(),i.readUEG(),i.readUEG(),i.readUEG(),i.readBool()&&i.readBool())for(let e=0;e<4;e++)for(let t=0;t<(3===e?2:6);t++)if(i.readBool()){let t=Math.min(64,1<<4+(e<<1));e>1&&i.readSEG();for(let e=0;e<t;e++)i.readSEG()}else i.readUEG();i.readBool(),i.readBool(),i.readBool()&&(i.readByte(),i.readUEG(),i.readUEG(),i.readBool());let Q=i.readUEG(),R=0;for(let e=0;e<Q;e++){let t=!1;if(0!==e&&(t=i.readBool()),t){e===Q&&i.readUEG(),i.readBool(),i.readUEG();let t=0;for(let e=0;e<=R;e++){let e=i.readBool(),r=!1;e||(r=i.readBool()),(e||r)&&t++}R=t}else{let e=i.readUEG(),t=i.readUEG();R=e+t;for(let t=0;t<e;t++)i.readUEG(),i.readBool();for(let e=0;e<t;e++)i.readUEG(),i.readBool()}}if(i.readBool()){let e=i.readUEG();for(let t=0;t<e;t++){for(let e=0;e<b+4;e++)i.readBits(1);i.readBits(1)}}let T=!1,L=0,K=1,q=1,x=!1,F=1,U=1;if(i.readBool(),i.readBool(),i.readBool()){if(i.readBool()){let e=i.readByte();e>0&&e<16?(K=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][e-1],q=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][e-1]):255===e&&(K=i.readBits(16),q=i.readBits(16))}if(i.readBool()&&i.readBool(),i.readBool()&&(i.readBits(3),i.readBool(),i.readBool()&&(i.readByte(),i.readByte(),i.readByte())),i.readBool()&&(i.readUEG(),i.readUEG()),i.readBool(),i.readBool(),i.readBool(),T=i.readBool(),T&&(r+=i.readUEG(),s+=i.readUEG(),a+=i.readUEG(),o+=i.readUEG()),i.readBool()&&(F=i.readBits(32),U=i.readBits(32),i.readBool()&&(i.readUEG(),i.readBool()))){let e=!1,t=!1,r=!1;e=i.readBool(),t=i.readBool(),(e||t)&&(r=i.readBool(),r&&(i.readByte(),i.readBits(5),i.readBool(),i.readBits(5)),i.readBits(4),i.readBits(4),r&&i.readBits(4),i.readBits(5),i.readBits(5),i.readBits(5));for(let s=0;s<=n;s++){let s=i.readBool();x=s;let a=!1,o=1;s||(a=i.readBool());let n=!1;if(a?i.readSEG():n=i.readBool(),n||(cpbcnt=i.readUEG()+1),e)for(let e=0;e<o;e++)i.readUEG(),i.readUEG(),r&&(i.readUEG(),i.readUEG());if(t)for(let e=0;e<o;e++)i.readUEG(),i.readUEG(),r&&(i.readUEG(),i.readUEG())}}i.readBool()&&(i.readBool(),i.readBool(),i.readBool(),L=i.readUEG(),i.readUEG(),i.readUEG(),i.readUEG(),i.readUEG())}i.readBool();let G=`hvc1.${A}.1.L${I}.B0`,O=v,J=k,Y=1;return 1!==K&&1!==q&&(Y=K/q),i.destroy(),i=null,{codec_mimetype:G,level_string:(N=I,(N/30).toFixed(1)),profile_idc:A,bit_depth:B+8,ref_frames:1,chroma_format:M,chroma_format_string:Jn(M),general_level_idc:I,general_profile_space:l,general_tier_flag:h,general_profile_idc:A,general_profile_compatibility_flags_1:d,general_profile_compatibility_flags_2:c,general_profile_compatibility_flags_3:u,general_profile_compatibility_flags_4:p,general_constraint_indicator_flags_1:g,general_constraint_indicator_flags_2:m,general_constraint_indicator_flags_3:y,general_constraint_indicator_flags_4:E,general_constraint_indicator_flags_5:C,general_constraint_indicator_flags_6:f,min_spatial_segmentation_idc:L,constant_frame_rate:0,chroma_format_idc:M,bit_depth_luma_minus8:B,bit_depth_chroma_minus8:D,frame_rate:{fixed:x,fps:U/F,fps_den:F,fps_num:U},sar_ratio:{width:K,height:q},codec_size:{width:O,height:J},present_size:{width:O*Y,height:J}};var N})(r),n=(e=>{let t=On(e),i=new Us(t);i.readByte(),i.readByte(),i.readUEG(),i.readUEG(),i.readBool(),i.readBool(),i.readBits(3),i.readBool(),i.readBool(),i.readUEG(),i.readUEG(),i.readSEG(),i.readBool(),i.readBool(),i.readBool()&&i.readUEG(),i.readSEG(),i.readSEG(),i.readBool(),i.readBool(),i.readBool(),i.readBool();let r=i.readBool(),s=i.readBool(),a=1;return s&&r?a=0:s?a=3:r&&(a=2),{parallelismType:a}})(i);s=Object.assign(s,a,o,n);let l=23+(5+t.byteLength)+(5+r.byteLength)+(5+i.byteLength),h=new Uint8Array(l);h[0]=1,h[1]=(3&s.general_profile_space)<<6|(s.general_tier_flag?1:0)<<5|31&s.general_profile_idc,h[2]=s.general_profile_compatibility_flags_1||0,h[3]=s.general_profile_compatibility_flags_2||0,h[4]=s.general_profile_compatibility_flags_3||0,h[5]=s.general_profile_compatibility_flags_4||0,h[6]=s.general_constraint_indicator_flags_1||0,h[7]=s.general_constraint_indicator_flags_2||0,h[8]=s.general_constraint_indicator_flags_3||0,h[9]=s.general_constraint_indicator_flags_4||0,h[10]=s.general_constraint_indicator_flags_5||0,h[11]=s.general_constraint_indicator_flags_6||0,h[12]=60,h[13]=240|(3840&s.min_spatial_segmentation_idc)>>8,h[14]=255&s.min_spatial_segmentation_idc,h[15]=252|3&s.parallelismType,h[16]=252|3&s.chroma_format_idc,h[17]=248|7&s.bit_depth_luma_minus8,h[18]=248|7&s.bit_depth_chroma_minus8,h[19]=0,h[20]=0,h[21]=(3&s.constant_frame_rate)<<6|(7&s.num_temporal_layers)<<3|(s.temporal_id_nested?1:0)<<2|3,h[22]=3,h[23]=128|Jt,h[24]=0,h[25]=1,h[26]=(65280&t.byteLength)>>8,h[27]=(255&t.byteLength)>>0,h.set(t,28),h[23+(5+t.byteLength)+0]=128|Nt,h[23+(5+t.byteLength)+1]=0,h[23+(5+t.byteLength)+2]=1,h[23+(5+t.byteLength)+3]=(65280&r.byteLength)>>8,h[23+(5+t.byteLength)+4]=(255&r.byteLength)>>0,h.set(r,23+(5+t.byteLength)+5),h[23+(5+t.byteLength+5+r.byteLength)+0]=128|jt,h[23+(5+t.byteLength+5+r.byteLength)+1]=0,h[23+(5+t.byteLength+5+r.byteLength)+2]=1,h[23+(5+t.byteLength+5+r.byteLength)+3]=(65280&i.byteLength)>>8,h[23+(5+t.byteLength+5+r.byteLength)+4]=(255&i.byteLength)>>0,h.set(i,23+(5+t.byteLength+5+r.byteLength)+5);const A=[28,0,0,0,0],d=new Uint8Array(A.length+h.byteLength);return d.set(A,0),d.set(h,A.length),d}function Wn(e,t){let i=[];i[0]=t?28:44,i[1]=1,i[2]=0,i[3]=0,i[4]=0;const r=new Uint8Array(i.length+e.byteLength);return r.set(i,0),r.set(e,i.length),r}function Zn(e){return(126&e[0])>>1}function Vn(e){return!function(e){return e>=32&&e<=40}(e)}function Hn(e){return e>=16&&e<=21}class Xn{constructor(e){this.data=e,this.eofFlag=!1,this.currentStartcodeOffset=this.findNextStartCodeOffset(0),this.eofFlag&&console.error("Could not find H265 startcode until payload end!")}findNextStartCodeOffset(e){let t=e,i=this.data;for(;;){if(t+3>=i.byteLength)return this.eofFlag=!0,i.byteLength;let e=i[t+0]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3],r=i[t+0]<<16|i[t+1]<<8|i[t+2];if(1===e||1===r)return t;t++}}readNextNaluPayload(){let e=this.data,t=null;for(;null==t&&!this.eofFlag;){let i=this.currentStartcodeOffset;i+=1===(e[i]<<24|e[i+1]<<16|e[i+2]<<8|e[i+3])?4:3;let r=e[i]>>1&63,s=(128&e[i])>>>7,a=this.findNextStartCodeOffset(i);this.currentStartcodeOffset=a,0===s&&(t={type:r,data:e.subarray(i,a)})}return t}}class _n{constructor(e){let t=e.data.byteLength;this.type=e.type,this.data=new Uint8Array(4+t),new DataView(this.data.buffer).setUint32(0,t),this.data.set(e.data,4)}}class $n extends ko{constructor(e){super(),this.TAG_NAME="recorderCommon",this.player=e,this.fileName="",this._isRecording=!1,this._recordingTimestamp=0,this.recordingInterval=null,this.sps=null,this.pps=null,this.vps=null,this.codecId=null,this.audioCodeId=null,this.metaInfo={codecWidth:0,codecHeight:0,presentWidth:0,presentHeight:0,refSampleDuration:0,timescale:1e3,avcc:null,videoType:""},this.audioMetaInfo={timescale:1e3,sampleRate:0,refSampleDuration:0,channelCount:0,codec:"",originalCodec:"",audioType:"",extraData:new Uint8Array(0)}}destroy(){this._reset(),this.sps=null,this.pps=null,this.vps=null,this.codecId=null,this.audioCodeId=null,this.metaInfo=null,this.audioMetaInfo=null}get isH264(){return this.codecId===Qt}get isH265(){return this.codecId===Rt}setFileName(e){this.fileName=e}get isRecording(){return this._isRecording}get recording(){return this._isRecording}get recordTime(){return this._recordingTimestamp}startRecord(){}handleAddNaluTrack(e,t,i,r){}handleAddAudioTrack(e,t){}handleAddTrack(e){}stopRecordAndSave(){}startRecordingInterval(){}isWasmMp4(){return!1}stopRecordingInterval(){this.recordingInterval&&clearInterval(this.recordingInterval),this.recordingInterval=null}getToTalByteLength(){return 0}_reset(){this.fileName="",this._isRecording=!1,this._recordingTimestamp=0,this.stopRecordingInterval()}initMetaData(e,t){let i;const r=e.slice(5);if(this.codecId=t,this.metaInfo.avcc=r,t===Qt)i=Rn(r);else if(t===Rt){i=function(e){let t=23;const i=e[t];if((63&i)!==Jt)return console.warn(`parseHEVCDecoderVPSAndSPSAndPPS and vpsTag is ${i}`),{};t+=2,t+=1;const r=e[t+1]|e[t]<<8;t+=2;const s=e.slice(t,t+r);t+=r;const a=e[t];if((63&a)!==Nt)return console.warn(`parseHEVCDecoderVPSAndSPSAndPPS and sps tag is ${a}`),{};t+=2,t+=1;const o=e[t+1]|e[t]<<8;t+=2;const n=e.slice(t,t+o);t+=o;const l=e[t];if((63&l)!==jt)return console.warn(`parseHEVCDecoderVPSAndSPSAndPPS and pps tag is ${l}`),{};t+=2,t+=1;const h=e[t+1]|e[t]<<8;t+=2;const A=e.slice(t,t+h),d=new Uint8Array([o>>>24&255,o>>>16&255,o>>>8&255,255&o]),c=new Uint8Array([h>>>24&255,h>>>16&255,h>>>8&255,255&h]),u=new Uint8Array([r>>>24&255,r>>>16&255,r>>>8&255,255&r]),p=new Uint8Array(o+4);p.set(d,0),p.set(n,4);const g=new Uint8Array(h+4);g.set(c,0),g.set(A,4);const m=new Uint8Array(r+4);return m.set(u,0),m.set(s,4),{sps:p,pps:g,vps:m}}(r);const t=Nn(e);i=Object.assign(i,t)}i&&(i.vps&&(this.vps=i.vps),i.pps&&(this.pps=i.pps),i.sps&&(this.sps=i.sps),i.presentWidth&&(this.metaInfo.presentWidth=i.presentWidth),i.presentHeight&&(this.metaInfo.presentHeight=i.presentHeight),i.codecWidth&&(this.metaInfo.codecWidth=i.codecWidth),i.codecHeight&&(this.metaInfo.codecHeight=i.codecHeight),i.timescale&&(this.metaInfo.timescale=i.timescale),i.refSampleDuration&&(this.metaInfo.refSampleDuration=i.refSampleDuration),i.videoType&&(this.metaInfo.videoType=i.videoType))}initAudioMetaData(e,t){this.audioCodeId=t;const i=e[0]>>1&1;let r=null;t===Kt.AAC?(r=function(e){let t={},i=new Vs(e);return i.read(16),t.object_type=Hs(i),t.sample_rate=Xs(i,t),t.chan_config=i.read(4),t.chan_config<$s.length&&(t.channels=$s[t.chan_config]),t.sbr=-1,t.ps=-1,5!=t.object_type&&29!=t.object_type||(29==t.object_type&&(t.ps=1),t.ext_object_type=5,t.sbr=1,t.sample_rate=Xs(i,t),t.object_type=Hs(i)),{...t,channelCount:t.channels,sampleRate:t.sample_rate}}(e),r&&(r.channelCount&&(this.audioMetaInfo.channelCount=r.channelCount),r.codec&&(this.audioMetaInfo.codec=r.codec),r.originalCodec&&(this.audioMetaInfo.originalCodec=r.originalCodec),r.config&&(this.audioMetaInfo.config=r.config),r.sampleRate&&(this.audioMetaInfo.sampleRate=r.sampleRate),this.audioMetaInfo.sampleRate&&this.audioMetaInfo.timescale&&(this.audioMetaInfo.refSampleDuration=1024/this.audioMetaInfo.sampleRate*this.audioMetaInfo.timescale)),this.audioMetaInfo.depth=i?16:8,this.audioMetaInfo.extraData=e.slice(2)):this.audioMetaInfo.depth=0===i?8:16}initAudioAacExtraData(e){this.audioMetaInfo.extraData=new Uint8Array(e)}}class el extends $n{constructor(e){super(e),this.totalByteLength=0,this._startRecordingTimestamp=null,e.debug.log("RecorderRTC","init")}_reset(){super._reset(),this.totalByteLength=0,this._startRecordingTimestamp=null,this.recorder&&(this.recorder.destroy(),this.recorder=null)}destroy(){super.destroy(),this._reset(),this.player.debug.log("RecorderRTC","destroy")}getSeekableBlob(e){const t=new EBML.Reader,i=new EBML.Decoder,r=EBML.tools,s=new FileReader;return new Promise(((a,o)=>{s.onload=function(e){i.decode(this.result).forEach((function(e){t.read(e)})),t.stop();const s=r.makeMetadataSeekable(t.metadatas,t.duration,t.cues),o=this.result.slice(t.metadataSize),n=new Blob([s,o],{type:"video/webm"});a(n)},s.readAsArrayBuffer(e)}))}startRecord(){const e=this.player.debug,t={type:"video",mimeType:"video/webm;codecs=h264",timeSlice:1e3,onTimeStamp:t=>{e.log("RecorderRTC","record timestamp :"+t),null===this._startRecordingTimestamp&&(this._startRecordingTimestamp=t),this._recordingTimestamp=(t-this._startRecordingTimestamp)/1e3},ondataavailable:t=>{this.totalByteLength+=t.size,e.log("RecorderRTC","ondataavailable",t.size)},disableLogs:!this.player._opt.debug};try{let i=null;if(this.player.getRenderType()===ee?i=this.player.video.$videoElement.captureStream(25):this.player.video.mediaStream?i=this.player.video.mediaStream:this.player.isOldHls()||this.player._opt.useMSE||this.player._opt.useWCS?i=this.player.video.$videoElement.captureStream(25):this.player.isWebrtcH264()?i=this.player.webrtc.videoStream:this.player.isAliyunRtc()&&(i=this.player.video.$videoElement.captureStream(25)),!i)return e.error("RecorderRTC","startRecord error and can not create stream"),void this.player.emitError(yt.recordCreateError,"can not create stream");if(this.player.audio&&this.player.audio.mediaStreamAudioDestinationNode&&this.player.audio.mediaStreamAudioDestinationNode.stream&&!this.player.audio.isStateSuspended()&&this.player.audio.hasAudio&&this.player._opt.hasAudio){const e=this.player.audio.mediaStreamAudioDestinationNode.stream;if(e.getAudioTracks().length>0){const t=e.getAudioTracks()[0];t&&t.enabled&&i.addTrack(t)}}this.recorder=Dn(i,t)}catch(t){return e.error("RecorderRTC","startRecord error",t),void this.player.emitError(yt.recordCreateError,t)}this.recorder&&(this._isRecording=!0,this.player.emit(yt.recording,!0),this.recorder.startRecording(),e.log("RecorderRTC","start recording"),this.player.emit(yt.recordStart),this.startRecordingInterval())}startRecordingInterval(){this.stopRecordingInterval(),this.recordingInterval=window.setInterval((()=>{this.player.emit(yt.recordingTimestamp,this._recordingTimestamp)}),1e3)}stopRecordAndSave(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Bt,t=arguments.length>1?arguments[1]:void 0;return new Promise(((i,r)=>{this.recorder&&this._isRecording||r("recorder is not ready"),t&&this.setFileName(t),this.recorder.stopRecording((()=>{this.player.debug.log("RecorderRTC","stop recording");const t=(this.fileName||la())+"."+B;if(this.recorder.getBlob(),e===Dt){const e=this.recorder.getBlob();i(e),this.player.emit(yt.recordBlob,e)}else i(),this.recorder.save(t);this.player.emit(yt.recordEnd),this._reset(),this.player.emit(yt.recording,!1)}))}))}getToTalByteLength(){return this.totalByteLength}getTotalDuration(){return this.recordTime}getType(){return B}initMetaData(){}}class tl{static init(){tl.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[],free:[],edts:[],elst:[],stss:[]};for(let e in tl.types)tl.types.hasOwnProperty(e)&&(tl.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let e=tl.constants={};e.FTYP=new Uint8Array([105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,97,118,99,49,109,112,52,49,0,0,0,0]),e.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),e.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),e.STSC=e.STCO=e.STTS,e.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),e.HDLR_VIDEO=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]),e.HDLR_AUDIO=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]),e.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),e.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),e.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,r=Array.prototype.slice.call(arguments,1),s=r.length;for(let e=0;e<s;e++)t+=r[e].byteLength;i=new Uint8Array(t),i[0]=t>>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let a=8;for(let e=0;e<s;e++)i.set(r[e],a),a+=r[e].byteLength;return i}static generateInitSegment(e,t,i){let r=tl.box(tl.types.ftyp,tl.constants.FTYP),s=tl.box(tl.types.free),a=8,o=new Uint8Array;i+a>=Math.pow(2,32)-1?(a=16,o=new Uint8Array(i+a),o.set(new Uint8Array([0,0,0,1]),0),o.set(tl.types.mdat,4),o.set(new Uint8Array([i+8>>>56&255,i+8>>>48&255,i+8>>>40&255,i+8>>>32&255,i+8>>>24&255,i+8>>>16&255,i+8>>>8&255,i+8&255]),8)):(o=new Uint8Array(i+a),o[0]=i+8>>>24&255,o[1]=i+8>>>16&255,o[2]=i+8>>>8&255,o[3]=i+8&255,o.set(tl.types.mdat,4));for(let e=0;e<t.length;e++){let i=t[e];i.duration=i.refSampleDuration*i.sequenceNumber;for(let e=0;e<i.sequenceNumber;e++){let t=i.samples[e];t.chunkOffset=r.byteLength+s.byteLength+a;let n=t.data;o.set(n,a),a+=n.byteLength}}let n=tl.moov(e,t),l=new Uint8Array(r.byteLength+n.byteLength+o.byteLength+s.byteLength);return l.set(r,0),l.set(s,r.byteLength),l.set(o,r.byteLength+s.byteLength),l.set(n,r.byteLength+o.byteLength+s.byteLength),l}static moov(e,t){let i=e.timescale,r=e.duration,s=t.length,a=tl.mvhd(i,r),o=new Uint8Array;for(let e=0;e<s;e++){let i=tl.trak(t[e]),r=new Uint8Array(i.byteLength+o.byteLength);r.set(o,0),r.set(i,o.byteLength),o=new Uint8Array(r.byteLength),o.set(r,0)}return tl.box(tl.types.moov,a,o)}static mvhd(e,t){return tl.box(tl.types.mvhd,new Uint8Array([0,0,0,0,206,186,253,168,206,186,253,168,e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,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]))}static trak(e){return tl.box(tl.types.trak,tl.tkhd(e),tl.mdia(e))}static tkhd(e){let t=e.id,i=e.duration,r=e.presentWidth,s=e.presentHeight;return tl.box(tl.types.tkhd,new Uint8Array([0,0,0,15,206,186,253,168,206,186,253,168,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,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 edts(e,t){return tl.box(tl.types.edts,tl.elst(e,t))}static elst(e,t){let i=0;for(let r=0;r<t;r++)"video"===e[r].type&&(i+=e[r].duration);let r=e[t].duration;return 0===i&&(i=e[t].refSampleDuration),tl.box(tl.types.elst,new Uint8Array([0,0,0,0,0,0,0,2,i>>>24&255,i>>>16&255,i>>>8&255,255&i,255,255,255,255,0,1,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r,0,0,0,0,0,1,0,0]))}static mdia(e){return tl.box(tl.types.mdia,tl.mdhd(e),tl.hdlr(e),tl.minf(e))}static mdhd(e){let t=e.timescale/e.refSampleDuration,i=t*e.duration/e.timescale;return tl.box(tl.types.mdhd,new Uint8Array([0,0,0,0,206,186,253,168,206,186,253,168,t>>>24&255,t>>>16&255,t>>>8&255,255&t,i>>>24&255,i>>>16&255,i>>>8&255,255&i,85,196,0,0]))}static hdlr(e){let t=null;return t=tl.constants.HDLR_VIDEO,tl.box(tl.types.hdlr,t)}static minf(e){let t=null;return t=tl.box(tl.types.vmhd,tl.constants.VMHD),tl.box(tl.types.minf,t,tl.dinf(),tl.stbl(e))}static dinf(){return tl.box(tl.types.dinf,tl.box(tl.types.dref,tl.constants.DREF))}static stbl(e){let t=e.samples,i=[{No:1,num:0,sampleDelte:1,chunkNo:1,duration:t[0].duration}],r=[t[0].duration],s=t.length;for(let e=0;e<s;e++)for(let s=0;s<i.length;s++)t[e].duration===i[s].duration?i[s].num++:r.indexOf(t[e].duration)<0&&(r.push(t[e].duration),i.push({No:2,num:0,sampleDelte:1,chunkNo:e+1,duration:t[e].duration}));return tl.box(tl.types.stbl,tl.stsd(e),tl.stts(i),tl.stss(t),tl.stsc(i),tl.stsz(t),tl.stco(i,t))}static stts(e){let t=e.length,i=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t]),r=i.byteLength,s=new Uint8Array(r+8*t);s.set(i,0);for(let i=0;i<t;i++)s.set(new Uint8Array([e[i].num>>>24&255,e[i].num>>>16&255,e[i].num>>>8&255,255&e[i].num,e[i].sampleDelte>>>24&255,e[i].sampleDelte>>>16&255,e[i].sampleDelte>>>8&255,255&e[i].sampleDelte]),r),r+=8;return tl.box(tl.types.stts,s)}static stss(e){let t=[],i=e.length;for(let r=0;r<i;r++)!0===e[r].isKeyframe&&t.push(r+1);let r=t.length,s=new Uint8Array([0,0,0,0,r>>>24&255,r>>>16&255,r>>>8&255,255&r]),a=s.byteLength,o=new Uint8Array(a+4*r);o.set(s,0);for(let e=0;e<r;e++)o.set(new Uint8Array([t[e]>>>24&255,t[e]>>>16&255,t[e]>>>8&255,255&t[e]]),a),a+=4;return tl.box(tl.types.stss,o)}static stsc(e){let t=e.length,i=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t]),r=i.byteLength,s=new Uint8Array(r+12*t);s.set(i,0);for(let i=0;i<t;i++){let t=e[i].chunkNo,a=e[i].num,o=e[i].sampleDelte;s.set(new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,255&t,a>>>24&255,a>>>16&255,a>>>8&255,255&a,o>>>24&255,o>>>16&255,o>>>8&255,255&o]),r),r+=12}return tl.box(tl.types.stsc,s)}static stsz(e){let t=e.length,i=new Uint8Array([0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t]),r=i.byteLength,s=new Uint8Array(r+4*t);s.set(i,0);for(let i=0;i<t;i++){let t=e[i].data.byteLength;s.set(new Uint8Array([t>>>24&255,t>>>16&255,t>>>8&255,255&t]),r),r+=4}return tl.box(tl.types.stsz,s)}static stco(e,t){let i=t[0].chunkOffset;return tl.box(tl.types.stco,new Uint8Array([0,0,0,0,0,0,0,1,i>>>24&255,i>>>16&255,i>>>8&255,255&i]))}static stsd(e){return"audio"===e.type?"mp3"===e.codec?tl.box(tl.types.stsd,tl.constants.STSD_PREFIX,tl.mp3(e)):tl.box(tl.types.stsd,tl.constants.STSD_PREFIX,tl.mp4a(e)):"avc"===e.videoType?tl.box(tl.types.stsd,tl.constants.STSD_PREFIX,tl.avc1(e)):tl.box(tl.types.stsd,tl.constants.STSD_PREFIX,tl.hvc1(e))}static mp3(e){let t=e.channelCount,i=e.sampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return tl.box(tl.types[".mp3"],r)}static mp4a(e){let t=e.channelCount,i=e.sampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return tl.box(tl.types.mp4a,r,tl.esds(e))}static esds(e){let t=e.config||[],i=t.length,r=new Uint8Array([0,0,0,0,3,23+i,0,1,0,4,15+i,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([i]).concat(t).concat([6,1,2]));return tl.box(tl.types.esds,r)}static avc1(e){let t=e.avcc,i=e.codecWidth,r=e.codecHeight,s=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,i>>>8&255,255&i,r>>>8&255,255&r,0,72,0,0,0,72,0,0,0,0,0,0,0,1,13,106,101,115,115,105,98,117,99,97,45,112,114,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return tl.box(tl.types.avc1,s,tl.box(tl.types.avcC,t))}static hvc1(e){let t=e.avcc;const i=e.codecWidth,r=e.codecHeight;let s=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,i>>>8&255,255&i,r>>>8&255,255&r,0,72,0,0,0,72,0,0,0,0,0,0,0,1,13,106,101,115,115,105,98,117,99,97,45,112,114,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return tl.box(tl.types.hvc1,s,tl.box(tl.types.hvcC,t))}static mvex(e){return tl.box(tl.types.mvex,tl.trex(e))}static trex(e){let t=e.id,i=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return tl.box(tl.types.trex,i)}static moof(e,t){return tl.box(tl.types.moof,tl.mfhd(e.sequenceNumber),tl.traf(e,t))}static mfhd(e){let t=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return tl.box(tl.types.mfhd,t)}static traf(e,t){let i=e.id,r=tl.box(tl.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),s=tl.box(tl.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),a=tl.sdtp(e),o=tl.trun(e,a.byteLength+16+16+8+16+8+8);return tl.box(tl.types.traf,r,s,o,a)}static sdtp(e){let t=e.samples||[],i=t.length,r=new Uint8Array(4+i);for(let e=0;e<i;e++){let i=t[e].flags;r[e+4]=i.isLeading<<6|i.dependsOn<<4|i.isDependedOn<<2|i.hasRedundancy}return tl.box(tl.types.sdtp,r)}static trun(e,t){let i=e.samples||[],r=i.length,s=12+16*r,a=new Uint8Array(s);t+=8+s,a.set([0,0,15,1,r>>>24&255,r>>>16&255,r>>>8&255,255&r,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);for(let e=0;e<r;e++){let t=i[e].duration,r=i[e].size,s=i[e].flags,o=i[e].cts;a.set([t>>>24&255,t>>>16&255,t>>>8&255,255&t,r>>>24&255,r>>>16&255,r>>>8&255,255&r,s.isLeading<<2|s.dependsOn,s.isDependedOn<<6|s.hasRedundancy<<4|s.isNonSync,0,0,o>>>24&255,o>>>16&255,o>>>8&255,255&o],12+16*e)}return tl.box(tl.types.trun,a)}static mdat(e){return tl.box(tl.types.mdat,e)}}tl.init();class il extends $n{constructor(e){super(e),this.TAG_NAME="recorderMP4",this._reset(),e.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this._reset(),this.player.debug.log(this.TAG_NAME,"destroy")}_reset(){super._reset(),this.totalDuration=0,this.totalAudioDuration=0,this.totalByteLength=0,this.totalAudioByteLength=0,this.bufferList=[],this.audioBufferList=[],this.cacheTrack={},this.audioCacheTrack={},this.sequenceNumber=0,this.audioSequenceNumber=0}startRecord(){const e=this.player.debug;this._isRecording=!0,this.player.emit(yt.recording,!0),e.log(this.TAG_NAME,"start recording"),this.player.emit(yt.recordStart),this.startRecordingInterval()}startRecordingInterval(){this.stopRecordingInterval(),this.recordingInterval=window.setInterval((()=>{this.player._opt.isMp4&&(this.totalDuration=this.totalDuration+1e3),this.player.emit(yt.recordingTimestamp,this.getTotalDuration())}),1e3)}formatFmp4Track(e,t,i,r){return{id:1,sequenceNumber:++this.sequenceNumber,size:e.byteLength,dts:i,cts:r,isKeyframe:t,data:e,duration:0,flags:{isLeading:0,dependsOn:t?2:1,isDependedOn:t?1:0,hasRedundancy:0,isNonSync:t?0:1}}}formatAudioFmp4Track(e,t){return{id:2,sequenceNumber:++this.audioSequenceNumber,size:e.byteLength,dts:t,pts:t,cts:0,data:new Uint8Array(e),duration:0,originalDts:t,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}}handleAddNaluTrack(e,t,i,r){this.cacheTrack.id&&i>=this.cacheTrack.dts?(this.cacheTrack.duration=i-this.cacheTrack.dts,this.handleAddFmp4Track(this.cacheTrack)):this.cacheTrack={},this.cacheTrack=this.formatFmp4Track(e,t,i,r)}handleAddAudioTrack(e,t){}handleAddFmp4Track(e){if(!this.isRecording)return void this.player.debug.error(this.TAG_NAME,"handleAddFmp4Track, isRecording is false ");if((null===this.sps||null===this.pps)&&this.isH264)return void this.player.debug.error(this.TAG_NAME,"handleAddFmp4Track, is h264 and this.sps or this.pps is null ");if((null===this.sps||null===this.pps||null===this.vps)&&this.isH265)return void this.player.debug.error(this.TAG_NAME,"handleAddFmp4Track, is h265 and this.sps or this.pps or this.vps is null ");const t=Object.assign({},e);t.pts=t.dts+t.cts;const i=t.data;if(t.isKeyframe)if(this.isH264){const e=new Uint8Array(this.sps.byteLength+this.pps.byteLength);e.set(this.sps,0),e.set(this.pps,this.sps.byteLength);const r=new Uint8Array(e.byteLength+i.byteLength);r.set(e,0),r.set(i,e.byteLength),t.data=r}else if(this.isH265){const e=new Uint8Array(this.sps.byteLength+this.pps.byteLength+this.vps.byteLength);e.set(this.vps,0),e.set(this.sps,this.vps.byteLength),e.set(this.pps,this.vps.byteLength+this.sps.byteLength);const r=new Uint8Array(e.byteLength+i.byteLength);r.set(e,0),r.set(i,e.byteLength),t.data=r}t.size=t.data.byteLength,this.totalDuration+=t.duration,this.totalByteLength+=t.data.byteLength,t.duration=0,t.originalDts=t.dts,delete t.id,delete t.sequenceNumber,this.bufferList.push(t)}handleAddFmp4AudioTrack(e){const t=Object.assign({},e);t.pts=t.dts+t.cts,t.size=t.data.byteLength,this.totalAudioDuration+=t.duration,this.totalAudioByteLength+=t.data.byteLength,t.duration=0,t.originalDts=t.dts,delete t.id,delete t.sequenceNumber,this.audioBufferList.push(t)}getTotalDuration(){return this.totalDuration/1e3}getType(){return k}getToTalByteLength(){return this.totalByteLength+this.totalAudioByteLength}stopRecordAndSave(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Bt,t=arguments.length>1?arguments[1]:void 0;return new Promise(((i,r)=>{if(this.player._opt.isMp4)return i(),this._reset(),this.player.emit(yt.recording,!1),void this.player.emit(yt.recordEnd);if(!this.isRecording)return this.player.debug.error(this.TAG_NAME,"stop recording fail, isRecording is false "),r("stop recording fail, isRecording is false ");if(0===this.bufferList.length)return this.player.debug.error(this.TAG_NAME,"stop recording fail, this.bufferList.length is 0 "),r("stop recording fail, this.bufferList.length is 0 ");t&&this.setFileName(t);const s={id:1,type:"video",sps:this.sps,pps:this.pps,samples:this.bufferList,sequenceNumber:this.bufferList.length,length:0,addSampleNum:1,duration:0,...this.metaInfo},a={id:2,type:"audio",sequenceNumber:this.audioBufferList.length,samples:this.audioBufferList,...this.audioMetaInfo},o=[s];a.samples.length>0&&o.push(a),this.player.debug.log(this.TAG_NAME,`trackList length is ${o.length}`);const n=tl.generateInitSegment({timescale:1e3,duration:this.totalDuration},o,this.totalByteLength+this.totalAudioByteLength);this.player.debug.log(this.TAG_NAME,"stop recording");const l=new Blob([n],{type:"application/octet-stream"});if(e===Dt)i(l),this.player.emit(yt.recordBlob,l);else{i();Qa((this.fileName||la())+"."+k,l)}this._reset(),this.player.emit(yt.recording,!1)}))}}class rl extends $n{constructor(e){super(e),this.TAG_NAME="FlvRecorderLoader",this.player=e,this._init(),this.player.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this._init(),this.player.debug.log(this.TAG_NAME,"destroy")}_init(){this.hasAudio=!1,this.hasVideo=!1,this.startTime=null,this.currentTime=0,this.prevTimestamp=0,this.totalByteLength=0,this.totalDuration=0,this.flvMetaData=null,this.aacSequenceHeader=null,this.videoSequenceHeader=null,this.bufferList=[]}_reset(){super._reset(),this._init()}startRecord(){const e=this.player.debug;this._isRecording=!0,this.player.emit(yt.recording,!0),e.log(this.TAG_NAME,"start recording"),this.player.emit(yt.recordStart),this.startRecordingInterval()}startRecordingInterval(){this.stopRecordingInterval(),this.recordingInterval=window.setInterval((()=>{this.player.emit(yt.recordingTimestamp,this.getTotalDuration())}),1e3)}addMetaData(e){this.flvMetaData=e}addAACSequenceHeader(e){this.aacSequenceHeader=e}addVideoSequenceHeader(e){this.videoSequenceHeader=e}addVideo(e,t){this._setStartTime(t);const i=this._getBufferTs(t);this.hasVideo=!0,this._createBufferItem(e,_e,i)}addAudio(e,t){this._setStartTime(t);const i=this._getBufferTs(t);this.hasAudio=!0,this._createBufferItem(e,Xe,i)}_setStartTime(e){null===this.startTime&&this._isRecording&&(this.startTime=e,this.player.debug.log(this.TAG_NAME,`_setStartTime is ${e}`))}_getBufferTs(e){e>this.currentTime&&(this.currentTime=e);let t=0;return this.startTime&&e>=this.startTime&&(t=e-this.startTime),t>this.prevTimestamp?this.prevTimestamp=t:t=this.prevTimestamp,t}_createBufferItem(e,t,i){const r=this._createFlvPacket(e,t,i),s=this._createFlvTag(r);this.totalByteLength+=s.byteLength,this.bufferList.push(s)}_createFlvTag(e){let t=11+e.header.length,i=new Uint8Array(t+4);i[0]=e.header.type;let r=new DataView(i.buffer);return i[1]=e.header.length>>16&255,i[2]=e.header.length>>8&255,i[3]=255&e.header.length,i[4]=e.header.timestamp>>16&255,i[5]=e.header.timestamp>>8&255,i[6]=255&e.header.timestamp,i[7]=e.header.timestamp>>24&255,i[8]=0,i[9]=0,i[10]=0,r.setUint32(t,t),i.set(e.payload.subarray(0,e.header.length),11),i}_createFlvPacket(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return{header:{length:e?e.length:0,timestamp:i,type:t},payload:e}}stopRecordAndSave(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Bt,t=arguments.length>1?arguments[1]:void 0;return new Promise(((i,r)=>{if(!this.isRecording)return this.player.debug.error(this.TAG_NAME,"stop recording fail, isRecording is false "),r("stop recording fail, isRecording is false ");if(0===this.bufferList.length)return this.player.debug.error(this.TAG_NAME,"stop recording fail, this.bufferList.length is 0 "),r("stop recording fail, this.bufferList.length is 0 ");t&&this.setFileName(t);const s=new Uint8Array([70,76,86,1,0,0,0,0,9,0,0,0,0]);this.hasVideo&&(s[4]|=1),this.hasAudio&&(s[4]|=4);let a=[s];if(this.flvMetaData){const e=this._createFlvPacket(this.flvMetaData,$e),t=this._createFlvTag(e);a.push(t)}if(this.videoSequenceHeader){const e=this._createFlvPacket(this.videoSequenceHeader,_e),t=this._createFlvTag(e);a.push(t)}if(this.aacSequenceHeader){const e=this._createFlvPacket(this.aacSequenceHeader,Xe),t=this._createFlvTag(e);a.push(t)}const o=function(e){const t=e[0].constructor;return e.reduce(((e,i)=>{const r=new t((0|e.byteLength)+(0|i.byteLength));return r.set(e,0),r.set(i,0|e.byteLength),r}),new t)}(a.concat(this.bufferList));this.player.debug.log(this.TAG_NAME,"stop recording");const n=new Blob([o],{type:"application/octet-stream"});if(e===Dt)i(n),this.player.emit(yt.recordBlob,n);else{i();Qa((this.fileName||la())+"."+D,n)}this._reset(),this.player.emit(yt.recording,!1)}))}getTotalDuration(){let e=0;return null!==this.startTime&&null!==this.currentTime&&(e=this.currentTime-this.startTime),Math.round(e/1e3)}getType(){return D}getToTalByteLength(){return this.totalByteLength}}const sl={init:0,findFirstStartCode:1,findSecondStartCode:2};class al extends ko{constructor(e){super(),this.player=e,this.isDestroyed=!1,this.reset()}destroy(){this.isDestroyed=!1,this.off(),this.reset()}reset(){this.stats=sl.init,this.tempBuffer=new Uint8Array(0),this.parsedOffset=0,this.versionLayer=0}dispatch(e,t){let i=new Uint8Array(this.tempBuffer.length+e.length);for(i.set(this.tempBuffer,0),i.set(e,this.tempBuffer.length),this.tempBuffer=i;!this.isDestroyed;){if(this.state==sl.Init){let e=!1;for(;this.tempBuffer.length-this.parsedOffset>=2&&!this.isDestroyed;)if(255==this.tempBuffer[this.parsedOffset]){if(!(!1&this.tempBuffer[this.parsedOffset+1])){this.versionLayer=this.tempBuffer[this.parsedOffset+1],this.state=sl.findFirstStartCode,this.fisrtStartCodeOffset=this.parsedOffset,this.parsedOffset+=2,e=!0;break}this.parsedOffset++}else this.parsedOffset++;if(e)continue;break}if(this.state==sl.findFirstStartCode){let e=!1;for(;this.tempBuffer.length-this.parsedOffset>=2&&!this.isDestroyed;)if(255==this.tempBuffer[this.parsedOffset]){if(this.tempBuffer[this.parsedOffset+1]==this.versionLayer){this.state=sl.findSecondStartCode,this.secondStartCodeOffset=this.parsedOffset,this.parsedOffset+=2,e=!0;break}this.parsedOffset++}else this.parsedOffset++;if(e)continue;break}if(this.state==sl.findSecondStartCode){let e=this.tempBuffer.slice(this.fisrtStartCodeOffset,this.secondStartCodeOffset);this.emit("data",e,t),this.tempBuffer=this.tempBuffer.slice(this.secondStartCodeOffset),this.fisrtStartCodeOffset=0,this.parsedOffset=2,this.state=sl.findFirstStartCode}}}}class ol extends $n{constructor(e){super(e),this.TAG_NAME="recorderWasmMP4",this._reset(),this.wasmMp4Recorder=new window.EasyPlayerProMp4Recorder({debug:e._opt.debug,debugLevel:e._opt.debugLevel,debugUuid:e._opt.debugUuid,decoder:e._opt.wasmMp4RecorderDecoder}),this.mp3Demuxer=null,this.isG711=!1,e.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.mp3Demuxer&&(this.mp3Demuxer.destroy(),this.mp3Demuxer=null),this.isG711=!1,this._reset(),this.player.debug.log(this.TAG_NAME,"destroy")}_reset(){super._reset(),this.cacheTrack={},this.audioCacheTrack={},this.totalDuration=0,this.totalAudioDuration=0,this.totalByteLength=0,this.totalAudioByteLength=0,this.hasAudio=!1,this.hasVideo=!1}getType(){return k}isWasmMp4(){return!0}getTotalDuration(){return this.totalDuration/1e3}getToTalByteLength(){return this.totalByteLength+this.totalAudioByteLength}startRecord(){const e=this.player.debug,t=this.player.getAudioInfo(),i=this.player.getVideoInfo(),r={};if(this.codecId){const e={type:this.codecId,width:i.width,height:i.height,extraData:this.metaInfo.avcc};r.video=e,this.hasVideo=!0}if(t.encTypeCode){this.isG711=t.encTypeCode===Kt.ALAW||t.encTypeCode===Kt.MULAW;const e={type:t.encTypeCode,sampleRate:t.sampleRate,channels:t.channels,extraData:this.audioMetaInfo.extraData,depth:t.depth};this.audioCodeId=t.encTypeCode,r.audio=e,this.hasAudio=!0}this.wasmMp4Recorder.startRecord(r).then((()=>{this._isRecording=!0,this.player.emit(yt.recording,!0),e.log(this.TAG_NAME,"start recording"),this.player.emit(yt.recordStart),this.startRecordingInterval()})).catch((t=>{e.error(this.TAG_NAME,"startRecord error",t),this.player.emitError(yt.recordCreateError,t)}))}startRecordingInterval(){this.stopRecordingInterval(),this.recordingInterval=window.setInterval((()=>{this.player.emit(yt.recordingTimestamp,this.getTotalDuration())}),1e3)}stopRecordAndSave(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Bt,t=arguments.length>1?arguments[1]:void 0;return new Promise(((i,r)=>this.isRecording?0===this.totalDuration?(this.player.debug.error(this.TAG_NAME,"stop recording fail, totalDuration is 0 "),r("stop recording fail, totalDuration is 0 ")):(t&&this.setFileName(t),void this.wasmMp4Recorder.stopRecord().then((t=>{if(e===Dt)i(t),this.player.emit(yt.recordBlob,t);else{i();const e=this.isG711?b:k;Qa((this.fileName||la())+"."+e,t)}})).catch((e=>{this.player.debug.error(this.TAG_NAME,"stopRecord error",e),r(e)})).finally((()=>{this._reset(),this.player.emit(yt.recording,!1)}))):(this.player.debug.error(this.TAG_NAME,"stop recording fail, isRecording is false "),r("stop recording fail, isRecording is false "))))}handleAddAudioTrack(e,t){this.audioCodeId===Kt.MP3?(this.mp3Demuxer||(this.mp3Demuxer=new al(this.player),this.mp3Demuxer.on("data",((e,t)=>{this._handleAddAudioTrack(e,t)}))),this.mp3Demuxer.dispatch(e,t)):this._handleAddAudioTrack(e,t)}_handleAddAudioTrack(e,t){po(this.hasAudio)||(this.audioCacheTrack.id&&t>=this.audioCacheTrack.dts?(this.audioCacheTrack.duration=t-this.audioCacheTrack.dts,this.totalAudioDuration+=this.audioCacheTrack.duration,this.totalAudioByteLength+=this.audioCacheTrack.payload.byteLength,this.wasmMp4Recorder.sendAudioFrame(this.audioCacheTrack.payload,this.audioCacheTrack.dts)):this.audioCacheTrack={},this.audioCacheTrack={id:2,payload:e,dts:t})}handleAddNaluTrack(e,t,i,r){po(this.hasVideo)||(this.cacheTrack.id&&i>=this.cacheTrack.dts?(this.cacheTrack.duration=i-this.cacheTrack.dts,this.totalDuration+=this.cacheTrack.duration,this.totalByteLength+=this.cacheTrack.payload.byteLength,this.wasmMp4Recorder.sendVideoFrame(this.cacheTrack.payload,this.cacheTrack.isIFrame,this.cacheTrack.dts,this.cacheTrack.cts)):this.cacheTrack={},this.cacheTrack={id:1,payload:e,isIFrame:t,dts:i,cts:r})}}class nl{constructor(e){return new(nl.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){if(e.recordType===k){if(e.useWasm||e.useMSE||e.useWCS)return window.EasyPlayerProMp4Recorder&&e.mp4RecordUseWasm?ol:il}else if(e.recordType===D)return rl;return el}}function ll(e,t,i){let r=e;if(t+i<r.length){for(;i--;)if(128!=(192&r[++t]))return!1;return!0}return!1}function hl(e){let t=[],i=e,r=0,s=e.length;for(;r<s;)if(i[r]<128)t.push(String.fromCharCode(i[r])),++r;else{if(i[r]<192);else if(i[r]<224){if(ll(i,r,1)){let e=(31&i[r])<<6|63&i[r+1];if(e>=128){t.push(String.fromCharCode(65535&e)),r+=2;continue}}}else if(i[r]<240){if(ll(i,r,2)){let e=(15&i[r])<<12|(63&i[r+1])<<6|63&i[r+2];if(e>=2048&&55296!=(63488&e)){t.push(String.fromCharCode(65535&e)),r+=3;continue}}}else if(i[r]<248&&ll(i,r,3)){let e=(7&i[r])<<18|(63&i[r+1])<<12|(63&i[r+2])<<6|63&i[r+3];if(e>65536&&e<1114112){e-=65536,t.push(String.fromCharCode(e>>>10|55296)),t.push(String.fromCharCode(1023&e|56320)),r+=4;continue}}t.push(String.fromCharCode(65533)),++r}return t.join("")}let Al=function(){let e=new ArrayBuffer(2);return new DataView(e).setInt16(0,256,!0),256===new Int16Array(e)[0]}();class dl{static parseScriptData(e,t,i){let r={};try{let s=dl.parseValue(e,t,i),a=dl.parseValue(e,t+s.size,i-s.size);r[s.data]=a.data}catch(e){console.error("AMF",e.toString())}return r}static parseObject(e,t,i){let r=dl.parseString(e,t,i),s=dl.parseValue(e,t+r.size,i-r.size),a=s.objectEnd;return{data:{name:r.data,value:s.data},size:r.size+s.size,objectEnd:a}}static parseVariable(e,t,i){return dl.parseObject(e,t,i)}static parseString(e,t,i){let r,s=new DataView(e,t,i).getUint16(0,!Al);return r=s>0?hl(new Uint8Array(e,t+2,s)):"",{data:r,size:2+s}}static parseLongString(e,t,i){let r,s=new DataView(e,t,i).getUint32(0,!Al);return r=s>0?hl(new Uint8Array(e,t+4,s)):"",{data:r,size:4+s}}static parseDate(e,t,i){let r=new DataView(e,t,i),s=r.getFloat64(0,!Al);return s+=60*r.getInt16(8,!Al)*1e3,{data:new Date(s),size:10}}static parseValue(e,t,i){let r,s=new DataView(e,t,i),a=1,o=s.getUint8(0),n=!1;try{switch(o){case 0:r=s.getFloat64(1,!Al),a+=8;break;case 1:r=!!s.getUint8(1),a+=1;break;case 2:{let s=dl.parseString(e,t+1,i-1);r=s.data,a+=s.size;break}case 3:{r={};let o=0;for(9==(16777215&s.getUint32(i-4,!Al))&&(o=3);a<i-4;){let s=dl.parseObject(e,t+a,i-a-o);if(s.objectEnd)break;r[s.data.name]=s.data.value,a+=s.size}if(a<=i-3){9===(16777215&s.getUint32(a-1,!Al))&&(a+=3)}break}case 8:{r={},a+=4;let o=0;for(9==(16777215&s.getUint32(i-4,!Al))&&(o=3);a<i-8;){let s=dl.parseVariable(e,t+a,i-a-o);if(s.objectEnd)break;r[s.data.name]=s.data.value,a+=s.size}if(a<=i-3){9===(16777215&s.getUint32(a-1,!Al))&&(a+=3)}break}case 9:r=void 0,a=1,n=!0;break;case 10:{r=[];let o=s.getUint32(1,!Al);a+=4;for(let s=0;s<o;s++){let s=dl.parseValue(e,t+a,i-a);r.push(s.data),a+=s.size}break}case 11:{let s=dl.parseDate(e,t+1,i-1);r=s.data,a+=s.size;break}case 12:{let s=dl.parseString(e,t+1,i-1);r=s.data,a+=s.size;break}default:a=i,console.warn("AMF","Unsupported AMF value type "+o)}}catch(e){console.error("AMF",e.toString())}return{data:r,size:a,objectEnd:n}}}function cl(e){return dl.parseScriptData(e.buffer,e.byteOffset,e.byteLength)}class ul{constructor(e){this.player=e,this.destroyResolve=null,this.workerClearTimeout=null,this.workerUrl=null;let t=e._opt.decoder;if(this.decoderWorkerCloseTimeout=null,po(this.player._opt.useWasm)&&(t=this.player._opt.demuxUseWorker?this.player._opt.mseDecodeAudio||po(this.player._opt.hasAudio)?e._opt.decoderHardNotWasm:e._opt.decoderHard:e._opt.decoderAudio),0===t.indexOf("http")&&this.player._opt.isDecoderUseCDN){const e=new Blob([`importScripts("${t}")`],{type:"application/javascript"});t=window.URL.createObjectURL(e),this.workerUrl=t,this.workerClearTimeout=setTimeout((()=>{window.URL.revokeObjectURL(this.workerUrl),this.workerUrl=null,this.workerClearTimeout=null}),de)}this.decoderWorker=new Worker(t),this._initDecoderWorker(),e.debug.log("decoderWorker",`init and decoder url is ${t}`),e.on(yt.visibilityChange,(()=>{this.updateWorkConfig({key:"visibility",value:e.visibility})}))}destroy(){return new Promise(((e,t)=>{this.player.loaded?(this.player.debug.log("decoderWorker","has loaded and post message to destroy"),this.decoderWorker?(this.decoderWorker.postMessage({cmd:st}),this.destroyResolve=e,this.decoderWorkerCloseTimeout=setTimeout((()=>{this.player.debug.warn("decoderWorker","send close but not response and destroy directly"),this.decoderWorkerCloseTimeout&&(clearTimeout(this.decoderWorkerCloseTimeout),this.decoderWorkerCloseTimeout=null),this._destroy(),setTimeout((()=>{e()}),0)}),2e3)):(this.player.debug.warn("decoderWorker","has loaded but decoderWorker is null and destroy directly"),this._destroy(),setTimeout((()=>{e()}),0))):(this.player.debug.log("decoderWorker","has not loaded and destroy directly"),this._destroy(),setTimeout((()=>{e()}),0))}))}_destroy(){this.decoderWorkerCloseTimeout&&(clearTimeout(this.decoderWorkerCloseTimeout),this.decoderWorkerCloseTimeout=null),this.workerUrl&&(window.URL.revokeObjectURL(this.workerUrl),this.workerUrl=null),this.workerClearTimeout&&(clearTimeout(this.workerClearTimeout),this.workerClearTimeout=null),this.decoderWorker&&(this.decoderWorker.terminate(),this.decoderWorker.onerror=null,this.decoderWorker.onmessageerror=null,this.decoderWorker.onmessage=null,this.decoderWorker=null),this.player.debug.log("decoderWorker","destroy"),this.destroyResolve&&(this.destroyResolve(),this.destroyResolve=null)}_initDecoderWorker(){const{debug:e,events:{proxy:t}}=this.player;this.decoderWorker.onerror=e=>{this.player.debug.error("decoderWorker","onerror",e),this.player.emitError(It.decoderWorkerInitError,e)},this.decoderWorker.onmessageerror=e=>{this.player.debug.error("decoderWorker","onmessageerror",e)},this.decoderWorker.onmessage=t=>{const i=t.data;switch(i.cmd){case pe:e.log("decoderWorker","onmessage:",pe),this.decoderWorker&&this._initWork(),this.player.loaded||this.player.emit(yt.load),this.player.emit(yt.decoderWorkerInit);break;case we:e.log("decoderWorker","onmessage:",we,i.code),this.player._times.decodeStart||(this.player._times.decodeStart=la()),this.player.video.updateVideoInfo({encTypeCode:i.code});break;case Se:e.log("decoderWorker","onmessage:",Se,i.codecId),this.player.recorder&&this.player.recorder.initMetaData(i.buffer,i.codecId),this.player.video.updateVideoInfo({encTypeCode:i.codecId});break;case Ce:e.log("decoderWorker","onmessage:",Ce,i.code),this.player.audio&&this.player.audio.updateAudioInfo({encTypeCode:i.code});break;case Ie:e.log("decoderWorker","onmessage:",Ie),this.player.recorder&&this.player.recorder.initAudioAacExtraData(i.buffer);break;case ge:if(e.log("decoderWorker","onmessage:",ge,`width:${i.w},height:${i.h}`),Ra(i.w)||Ra(i.h))return void this.player.emitError(It.videoInfoError,`video width ${i.w} or height ${i.h} is empty`);if(this.player.video.updateVideoInfo({width:i.w,height:i.h}),!this.player._opt.openWebglAlignment&&i.w/2%4!=0&&this.player.getRenderType()===ee)return void this.player.emitError(It.webglAlignmentError);this.player.video.initCanvasViewSize(),this.player._opt.playType===v&&(this.player.video.initFps(),this.player.video.initVideoDelay());break;case Ee:if(e.log("decoderWorker","onmessage:",Ee,`channels:${i.channels},sampleRate:${i.sampleRate}`),i.channels>2)return void this.player.emitError(It.audioChannelError,`audio channel is ${i.channels}, max is 2`);this.player.audio&&(this.player.audio.updateAudioInfo(i),this.player._opt.playType===S?this.player.audio.initScriptNode():this.player._opt.playType===v&&this.player.audio.initScriptNodeDelay());break;case me:if(!this.player.video)return void e.warn("decoderWorker","onmessage render but video is null");if(this.player.isPlayer()){if(po(this.player.video.getHasInit()))return void e.warn("decoderWorker","onmessage render but video has not init");this.player.video.render(i),this.player.handleRender(),this.player.emit(yt.timeUpdate,i.ts),this.player.updateStats({dfps:!0,buf:i.delay}),this.player._times.videoStart||(this.player._times.videoStart=la(),this.player.handlePlayToRenderTimes())}else this.player.isPlayback()&&(this.player.updateStats({dfps:!0}),po(this.player.playbackPause)?(this.player.playback.isUseLocalCalculateTime&&this.player.playback.increaseLocalTimestamp(),this.player.playback.isUseFpsRender?this.player.video.pushData(i):this.player.video.render$2(i)):!this.player.playback.isPlaybackPauseClearCache&&this.player.playback.isCacheBeforeDecodeForFpsRender&&this.player.playback.isUseFpsRender&&this.player.video.pushData(i));break;case Me:this.player.recorder&&this.player.recorder.isRecording&&this.player._opt.recordType===k&&this.player.recorder.handleAddNaluTrack(i.buffer,i.isIFrame,i.ts,i.cts);break;case fe:this.player.recorder&&this.player.recorder.isRecording&&this.player._opt.recordType===k&&this.player.recorder.isWasmMp4()&&this.player.recorder.handleAddAudioTrack(i.buffer,i.ts);break;case ve:const{webcodecsDecoder:t,mseDecoder:r}=this.player;this.player.updateStats({buf:i.delay});const s=new Uint8Array(i.payload);this.player._opt.useWCS&&!this.player._opt.useOffscreen?t.decodeVideo(s,i.ts,i.isIFrame,i.cts):this.player._opt.useMSE&&r.decodeVideo(s,i.ts,i.isIFrame,i.cts);break;case ke:if(this.player._opt.useMSE){const e=new Uint8Array(i.payload);this.player.mseDecoder.decodeAudio(e,i.ts,i.cts)}break;case ye:if(!this.player.audio)return void e.warn("decoderWorker","onmessage playAudio but audio is null");(this.player.playing&&this.player.audio||!this.player.video)&&(this.player._opt.hasVideo||this.player.handleRender(),(this.player._opt.playType===S||this.player._opt.playType===v&&(po(this.player.playbackPause)||!this.player.playback.isPlaybackPauseClearCache&&this.player.playback.isCacheBeforeDecodeForFpsRender&&this.player.playback.isUseFpsRender))&&this.player.audio.play(i.buffer,i.ts));break;case De:if(i.type===yt.streamSuccess)this.player.stream?this.player.stream.emit(yt.streamSuccess):e.warn("decoderWorker","onmessage and workerFetch response stream success but stream is null");else if(i.type===yt.streamRate)this.player.emit(yt.kBps,(i.value/1024).toFixed(2));else if(i.type===yt.streamEnd)this.player?(i.value===m&&this.player.emit(yt.websocketClose,i.msg),this.player.stream?this.player.stream.emit(yt.streamEnd,i.msg):e&&e.warn("decoderWorker","onmessage and workerFetch response stream end but player.stream is null")):e&&e.warn("decoderWorker","onmessage and workerFetch response stream end but player is null");else if(i.type===It.websocketError)this.player&&this.player.stream?this.player.stream.emit(It.websocketError,i.value):e&&e.warn("decoderWorker","onmessage and workerFetch response websocket error but stream is null");else if(i.type===It.fetchError)this.player&&this.player.stream?this.player.stream.emit(It.fetchError,i.value):e&&e.warn("decoderWorker","onmessage and workerFetch response fetch error but stream is null");else if(i.type===yt.streamAbps)this.player.updateStats({abps:i.value});else if(i.type===yt.streamVbps)this.player._times.demuxStart||(this.player._times.demuxStart=la()),this.player.updateStats({vbps:i.value});else if(i.type===yt.streamDts)this.player.updateStats({dts:i.value});else if(i.type===yt.netBuf)this.player.updateStats({netBuf:i.value});else if(i.type===yt.networkDelayTimeout)this.player.emit(yt.networkDelayTimeout,i.value);else if(i.type===yt.streamStats){const e=JSON.parse(i.value);this.player.updateStats({workerStats:e})}else i.type===yt.websocketOpen&&this.player.emit(yt.websocketOpen);break;case be:this.player&&(this.player.videoIframeIntervalTs=i.value);break;case Qe:this.player&&this.player.updateStats({isDropping:!0});break;case Pe:this.player.decoderCheckFirstIFrame();break;case Te:this.player&&this.player.video&&this.player.video.setStreamFps(i.value);break;case Be:i.message&&-1!==i.message.indexOf(Ze)&&this.player.emitError(It.wasmDecodeError,"");break;case Le:this.player.emitError(It.wasmDecodeVideoNoResponseError);break;case xe:this.player.emitError(It.simdH264DecodeVideoWidthIsTooLarge);break;case Ke:this.player.emitError(It.wasmWidthOrHeightChange);break;case qe:this.player.emitError(It.simdDecodeError);break;case Re:e.log("decoderWorker","onmessage:",Re);break;case Fe:e.log("decoderWorker","onmessage:",Fe),this.player.emit(yt.liveEnd,0),this._destroy();break;case Ue:this.player&&this.player.pushTempStream(i.buffer);break;case Ge:this.player&&this.player.emit(yt.videoSEI,{ts:i.ts,data:new Uint8Array(i.buffer)});break;case Oe:if(this.player){if(this.player.isRecordTypeFlv()){const e=new Uint8Array(i.buffer);this.player.recorder.addMetaData(e)}const e=cl(new Uint8Array(i.buffer));e&&e.onMetaData&&this.player.updateMetaData(e.onMetaData)}break;case Je:if(this.player&&this.player.isRecordTypeFlv()){const e=new Uint8Array(i.buffer);this.player.recorder.addAACSequenceHeader(e,i.ts)}break;case Ye:if(this.player&&this.player.isRecordTypeFlv()){const e=new Uint8Array(i.buffer);this.player.recorder.addVideoSequenceHeader(e,i.ts)}break;case Ne:if(this.player&&this.player.isRecordTypeFlv()&&this.player.recording){const e=new Uint8Array(i.buffer);i.type===He?this.player.recorder.addVideo(e,i.ts):i.type===Ve&&this.player.recorder.addAudio(e,i.ts)}break;case je:this.player&&(this.player.debug.log("decoderWorker","onmessage:",je),this.player.video.$videoElement.srcObject=i.mseHandle);break;case ze:this.player&&(this.player.debug.log("decoderWorker","onmessage:",ze,i.value),this.player._mseWorkerData.firstRenderTime=Number(i.value));break;case We:this.player&&(this.player.debug.log("decoderWorker","onmessage:",We,i.value,i.msg),this.player.emitError(i.value,i.msg));break;default:this.player[i.cmd]&&this.player[i.cmd](i)}}}_initWork(){const e={debug:this.player._opt.debug,debugLevel:this.player._opt.debugLevel,debugUuid:this.player._opt.debugUuid,useOffscreen:this.player._opt.useOffscreen,useWCS:this.player._opt.useWCS,useMSE:this.player._opt.useMSE,videoBuffer:this.player._opt.videoBuffer,videoBufferDelay:this.player._opt.videoBufferDelay,openWebglAlignment:this.player._opt.openWebglAlignment,playType:this.player._opt.playType,hasAudio:this.player._opt.hasAudio,hasVideo:this.player._opt.hasVideo,playbackRate:1,playbackForwardMaxRateDecodeIFrame:this.player._opt.playbackForwardMaxRateDecodeIFrame,playbackIsCacheBeforeDecodeForFpsRender:this.player._opt.playbackConfig.isCacheBeforeDecodeForFpsRender,sampleRate:this.player.audio&&this.player.audio.audioContext&&this.player.audio.audioContext.sampleRate||0,audioBufferSize:this.player.audio&&this.player.audio.getAudioBufferSize()||1024,networkDelay:this.player._opt.networkDelay,visibility:this.player.visibility,useSIMD:this.player._opt.useSIMD,recordType:this.player._opt.recordType,checkFirstIFrame:this.player._opt.checkFirstIFrame,isM7sCrypto:this.player._opt.isM7sCrypto,isXorCrypto:this.player._opt.isXorCrypto,isSm4Crypto:this.player._opt.isSm4Crypto,sm4CryptoKey:this.player._opt.sm4CryptoKey,m7sCryptoAudio:this.player._opt.m7sCryptoAudio,isFlv:this.player._opt.isFlv,isFmp4:this.player._opt.isFmp4,isMpeg4:this.player._opt.isMpeg4,isTs:this.player._opt.isTs,isNakedFlow:this.player._opt.isNakedFlow,isHls265:this.player.isUseHls265(),isFmp4Private:this.player._opt.isFmp4Private,isEmitSEI:this.player._opt.isEmitSEI,isRecordTypeFlv:this.player.isRecordTypeFlv(),isWasmMp4:this.player.recorder&&this.player.recorder.isWasmMp4()||!1,isChrome:Wa(),isDropSameTimestampGop:this.player._opt.isDropSameTimestampGop,mseDecodeAudio:this.player._opt.mseDecodeAudio,nakedFlowH265DemuxUseNew:this.player._opt.nakedFlowH265DemuxUseNew,mseDecoderUseWorker:this.player._opt.mseDecoderUseWorker,mseAutoCleanupMinBackwardDuration:this.player._opt.mseAutoCleanupMinBackwardDuration,mseAutoCleanupMaxBackwardDuration:this.player._opt.mseAutoCleanupMaxBackwardDuration,mseCorrectTimeDuration:this.player._opt.mseCorrectTimeDuration,mseCorrectAudioTimeDuration:this.player._opt.mseCorrectAudioTimeDuration};this.decoderWorker.postMessage({cmd:et,opt:JSON.stringify(e)}),this.player._opt.isM7sCrypto&&(this.updateWorkConfig({key:"cryptoKey",value:this.player._opt.cryptoKey}),this.updateWorkConfig({key:"cryptoIV",value:this.player._opt.cryptoIV}))}decodeVideo(e,t,i){this.player._opt.playType===S?this.player.isUseHls265()?this._decodeVideoNoDelay(e,t,i):this._decodeVideo(e,t,i):this.player._opt.playType===v&&(this.player.video.rate>=this.player._opt.playbackForwardMaxRateDecodeIFrame?i&&(this.player.debug.log("decoderWorker",`current rate is ${this.player.video.rate},only decode i frame`),this._decodeVideoNoDelay(e,t,i)):1===this.player.video.rate?this._decodeVideo(e,t,i):this._decodeVideoNoDelay(e,t,i))}_decodeVideo(e,t,i){const r={type:He,ts:Math.max(t,0),isIFrame:i};this.decoderWorker.postMessage({cmd:tt,buffer:e,options:r},[e.buffer])}_decodeVideoNoDelay(e,t,i){this.decoderWorker.postMessage({cmd:rt,buffer:e,ts:Math.max(t,0),isIFrame:i},[e.buffer])}decodeAudio(e,t){this.player._opt.playType===S?this.player._opt.useWCS||this.player._opt.useMSE||this.player.isUseHls265()?this._decodeAudioNoDelay(e,t):this._decodeAudio(e,t):this.player._opt.playType===v&&(1===this.player.video.rate?this._decodeAudio(e,t):this._decodeAudioNoDelay(e,t))}_decodeAudio(e,t){const i={type:Ve,ts:Math.max(t,0)};this.decoderWorker.postMessage({cmd:tt,buffer:e,options:i},[e.buffer])}_decodeAudioNoDelay(e,t){this.decoderWorker.postMessage({cmd:it,buffer:e,ts:Math.max(t,0)},[e.buffer])}updateWorkConfig(e){this.decoderWorker&&this.decoderWorker.postMessage({cmd:at,key:e.key,value:e.value})}workerFetchStream(e){const{_opt:t}=this.player,i={protocol:t.protocol,isFlv:t.isFlv,isFmp4:t.isFmp4,isMpeg4:t.isMpeg4,isNakedFlow:t.isNakedFlow,isTs:t.isTs};this.decoderWorker.postMessage({cmd:nt,url:e,opt:JSON.stringify(i)})}clearWorkBuffer(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.decoderWorker.postMessage({cmd:ot,needClear:e})}workerSendMessage(e){this.decoderWorker.postMessage({cmd:lt,message:e})}updateVideoTimestamp(e){this.decoderWorker.postMessage({cmd:ht,message:e})}}var pl,gl="application/json, text/javascript",ml="text/html",yl=/^(?:text|application)\/xml/i,El=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cl=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,fl=/^\s*$/,Il={},wl={},Sl="",Ml={type:"GET",beforeSend:vl,success:vl,error:vl,complete:vl,context:null,xhr:function(){return new window.XMLHttpRequest},accepts:{json:gl,xml:"application/xml, text/xml",html:ml,text:"text/plain","*":"*/".concat("*")},crossDomain:!1,timeout:0,username:null,password:null,processData:!0,promise:vl,contentType:"application/x-www-form-urlencoded; charset=UTF-8"};function vl(){}var kl=function(e,t){"object"==typeof e&&(t=e,e=void 0);var i=Kl({},t=t||{});for(var r in Ml)void 0===i[r]&&(i[r]=Ml[r]);try{var s={},a=new Promise((function(e,t){s.resolve=e,s.reject=t}));a.resolve=s.resolve,a.reject=s.reject,i.promise=a}catch(e){i.promise={resolve:vl,reject:vl}}var o=Cl.exec(window.location.href.toLowerCase())||[];i.url=((e||i.url||window.location.href)+"").replace(/#.*$/,"").replace(/^\/\//,o[1]+"//");var n=i.url;i.crossDomain||(i.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(i.url)&&RegExp.$2!==window.location.href);var l=i.dataType;if("jsonp"===l){if(!/=\?/.test(i.url)){var h=(i.jsonp||"callback")+"=?";i.url=Rl(i.url,h)}return function(e){var t,i=e.jsonpCallback||"jsonp"+Fl(),r=window.document.createElement("script"),s={abort:function(){i in window&&(window[i]=vl)}},a=window.document.getElementsByTagName("head")[0]||window.document.documentElement;function o(i){window.clearTimeout(t),s.abort(),bl(i.type,s,i.type,e),n()}r.onerror=function(e){o(e)},window[i]=function(i){window.clearTimeout(t),Bl(i,s,e),n()},Tl(e),r.src=e.url.replace(/=\?/,"="+i),r.src=Rl(r.src,"_="+(new Date).getTime()),r.async=!0,e.scriptCharset&&(r.charset=e.scriptCharset);a.insertBefore(r,a.firstChild),e.timeout>0&&(t=window.setTimeout((function(){s.abort(),bl("timeout",s,"timeout",e),n()}),e.timeout));function n(){r.clearAttributes?r.clearAttributes():r.onload=r.onreadystatechange=r.onerror=null,r.parentNode&&r.parentNode.removeChild(r),r=null,delete window[i]}return e.promise.abort=function(){s.abort()},e.promise.xhr=s,e.promise}(i)}Tl(i);var A=i.accepts[l]||i.accepts["*"],d={};/^([\w-]+:)\/\//.test(i.url)?RegExp.$1:window.location.protocol;var c,u=Ml.xhr();i.crossDomain||d["X-Requested-With"]||(d["X-Requested-With"]="XMLHttpRequest"),i.ifModified&&(Il[n]&&(d["If-Modified-Since"]=Il[n]),wl[n]&&(d["If-None-Match"]=wl[n])),A&&(d.Accept=A,A.indexOf(",")>-1&&(A=A.split(",",2)[0]),u.overrideMimeType&&u.overrideMimeType(A));var p=!/^(?:GET|HEAD)$/.test(i.type.toUpperCase());if((i.data&&p&&!1!==i.contentType||t.contentType)&&(d["Content-Type"]=i.contentType),!1===i.cache&&!p){var g=/([?&])_=[^&]*/;i.url=g.test(n)?n.replace(g,"$1_="+Fl()):n+(/\?/.test(n)?"&":"?")+"_="+Fl()}i.headers=Kl(d,i.headers||{}),u.onreadystatechange=function(){if(4===u.readyState){var e;clearTimeout(c);var t=!1;if(u.status>=200&&u.status<300||304===u.status){if(Sl=u.getAllResponseHeaders(),i.ifModified){var r=Ql("Last-Modified");r&&(Il[n]=r),(r=Ql("etag"))&&(wl[n]=r)}l=l||function(e){return e&&(e===ml?"html":e===gl?"json":yl.test(e)&&"xml")||"text"}(u.getResponseHeader("content-type")),e=u.responseText;try{"xml"===l?e=u.responseXML:"json"===l&&(e=fl.test(e)?null:JSON.parse(e))}catch(e){t=e}t?bl(t,"parseerror",u,i):Bl(e,u,i)}else bl(null,"error",u,i)}};var m=!("async"in i)||i.async;if(u.open(i.type,i.url,m,i.username,i.password),i.xhrFields)for(var y in i.xhrFields)u[y]=i.xhrFields[y];for(var y in i.mimeType&&u.overrideMimeType&&u.overrideMimeType(i.mimeType),i.headers)void 0!==i.headers[y]&&u.setRequestHeader(y,i.headers[y]+"");return!1===function(e,t){var i=t.context;if(!1===t.beforeSend.call(i,e,t))return!1}(u,i)?(u.abort(),!1):(i.timeout>0&&(c=window.setTimeout((function(){u.onreadystatechange=vl,u.abort(),bl(null,"timeout",u,i)}),i.timeout)),u.send(i.data?i.data:null),i.promise.abort=function(){u.abort()},i.promise)};function Bl(e,t,i){var r=i.context,s="success";i.success.call(r,e,s,t),i.promise.resolve(e,s,t),Dl(s,t,i)}function Dl(e,t,i){var r=i.context;i.complete.call(r,t,e)}function bl(e,t,i,r){var s=r.context;r.error.call(s,i,t,e),r.promise.reject(i,t,e),Dl(t,i,r)}function Ql(e){var t;if(!pl){for(pl={};t=El.exec(Sl);)pl[t[1].toLowerCase()]=t[2];t=pl[e.toLowerCase()]}return null===t?null:t}function Rl(e,t){return(e+"&"+t).replace(/[&?]{1,2}/,"?")}function Tl(e){!ql(e)||e.data instanceof FormData||!e.processData||(e.data=function(e,t){var i=[];return i.add=function(e,t){this.push(encodeURIComponent(e)+"="+encodeURIComponent(t))},Ll(i,e,t),i.join("&").replace("%20","+")}(e.data)),!e.data||e.type&&"GET"!==e.type.toUpperCase()||(e.url=Rl(e.url,e.data))}function Ll(e,t,i,r){var s=function(e){return"[object Array]"===Object.prototype.toString.call(e)}(t);for(var a in t){var o=t[a];r&&(a=i?r:r+"["+(s?"":a)+"]"),!r&&s?e.add(o.name,o.value):(i?s(o):ql(o))?Ll(e,o,i,a):e.add(a,o)}}function Kl(e){for(var t=Array.prototype.slice.call(arguments,1),i=0,r=t.length;i<r;i++){var s=t[i]||{};for(var a in s)s.hasOwnProperty(a)&&void 0!==s[a]&&(e[a]=s[a])}return e}function ql(e){var t=typeof e;return"function"===t||"object"===t&&!!e}function xl(e){return"function"==typeof e}function Fl(){return(new Date).getTime()}function Ul(e){return parseInt(e)===e}function Gl(e){if(!Ul(e.length))return!1;for(var t=0;t<e.length;t++)if(!Ul(e[t])||e[t]<0||e[t]>255)return!1;return!0}function Ol(e,t){if(e.buffer&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!Gl(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(Ul(e.length)&&Gl(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function Jl(e){return new Uint8Array(e)}function Yl(e,t,i,r,s){null==r&&null==s||(e=e.slice?e.slice(r,s):Array.prototype.slice.call(e,r,s)),t.set(e,i)}kl.get=function(e,t,i,r){return xl(t)&&(r=r||i,i=t,t=void 0),kl({url:e,data:t,success:i,dataType:r})},kl.post=function(e,t,i,r){return xl(t)&&(r=r||i,i=t,t=void 0),kl({type:"POST",url:e,data:t,success:i,dataType:r})},kl.getJSON=function(e,t,i){return xl(t)&&(i=t,t=void 0),kl({url:e,data:t,success:i,dataType:"json"})},kl.ajaxSetup=function(e,t){return t?Kl(Kl(e,Ml),t):Kl(Ml,e)};var Nl,Pl={toBytes:function(e){var t=[],i=0;for(e=encodeURI(e);i<e.length;){var r=e.charCodeAt(i++);37===r?(t.push(parseInt(e.substr(i,2),16)),i+=2):t.push(r)}return Ol(t)},fromBytes:function(e){for(var t=[],i=0;i<e.length;){var r=e[i];r<128?(t.push(String.fromCharCode(r)),i++):r>191&&r<224?(t.push(String.fromCharCode((31&r)<<6|63&e[i+1])),i+=2):(t.push(String.fromCharCode((15&r)<<12|(63&e[i+1])<<6|63&e[i+2])),i+=3)}return t.join("")}},jl=(Nl="0123456789abcdef",{toBytes:function(e){for(var t=[],i=0;i<e.length;i+=2)t.push(parseInt(e.substr(i,2),16));return t},fromBytes:function(e){for(var t=[],i=0;i<e.length;i++){var r=e[i];t.push(Nl[(240&r)>>4]+Nl[15&r])}return t.join("")}}),zl={16:10,24:12,32:14},Wl=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],Zl=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],Vl=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Hl=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],Xl=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],_l=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],$l=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],eh=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],th=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],ih=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],rh=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],sh=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],ah=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],oh=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],nh=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function lh(e){for(var t=[],i=0;i<e.length;i+=4)t.push(e[i]<<24|e[i+1]<<16|e[i+2]<<8|e[i+3]);return t}var hh=function(e){if(!(this instanceof hh))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:Ol(e,!0)}),this._prepare()};hh.prototype._prepare=function(){var e=zl[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var i,r=4*(e+1),s=this.key.length/4,a=lh(this.key);for(t=0;t<s;t++)i=t>>2,this._Ke[i][t%4]=a[t],this._Kd[e-i][t%4]=a[t];for(var o,n=0,l=s;l<r;){if(o=a[s-1],a[0]^=Zl[o>>16&255]<<24^Zl[o>>8&255]<<16^Zl[255&o]<<8^Zl[o>>24&255]^Wl[n]<<24,n+=1,8!=s)for(t=1;t<s;t++)a[t]^=a[t-1];else{for(t=1;t<s/2;t++)a[t]^=a[t-1];o=a[s/2-1],a[s/2]^=Zl[255&o]^Zl[o>>8&255]<<8^Zl[o>>16&255]<<16^Zl[o>>24&255]<<24;for(t=s/2+1;t<s;t++)a[t]^=a[t-1]}for(t=0;t<s&&l<r;)h=l>>2,A=l%4,this._Ke[h][A]=a[t],this._Kd[e-h][A]=a[t++],l++}for(var h=1;h<e;h++)for(var A=0;A<4;A++)o=this._Kd[h][A],this._Kd[h][A]=sh[o>>24&255]^ah[o>>16&255]^oh[o>>8&255]^nh[255&o]},hh.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,i=[0,0,0,0],r=lh(e),s=0;s<4;s++)r[s]^=this._Ke[0][s];for(var a=1;a<t;a++){for(s=0;s<4;s++)i[s]=Hl[r[s]>>24&255]^Xl[r[(s+1)%4]>>16&255]^_l[r[(s+2)%4]>>8&255]^$l[255&r[(s+3)%4]]^this._Ke[a][s];r=i.slice()}var o,n=Jl(16);for(s=0;s<4;s++)o=this._Ke[t][s],n[4*s]=255&(Zl[r[s]>>24&255]^o>>24),n[4*s+1]=255&(Zl[r[(s+1)%4]>>16&255]^o>>16),n[4*s+2]=255&(Zl[r[(s+2)%4]>>8&255]^o>>8),n[4*s+3]=255&(Zl[255&r[(s+3)%4]]^o);return n},hh.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,i=[0,0,0,0],r=lh(e),s=0;s<4;s++)r[s]^=this._Kd[0][s];for(var a=1;a<t;a++){for(s=0;s<4;s++)i[s]=eh[r[s]>>24&255]^th[r[(s+3)%4]>>16&255]^ih[r[(s+2)%4]>>8&255]^rh[255&r[(s+1)%4]]^this._Kd[a][s];r=i.slice()}var o,n=Jl(16);for(s=0;s<4;s++)o=this._Kd[t][s],n[4*s]=255&(Vl[r[s]>>24&255]^o>>24),n[4*s+1]=255&(Vl[r[(s+3)%4]>>16&255]^o>>16),n[4*s+2]=255&(Vl[r[(s+2)%4]>>8&255]^o>>8),n[4*s+3]=255&(Vl[255&r[(s+1)%4]]^o);return n};var Ah=function(e){if(!(this instanceof Ah))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new hh(e)};Ah.prototype.encrypt=function(e){if((e=Ol(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=Jl(e.length),i=Jl(16),r=0;r<e.length;r+=16)Yl(e,i,0,r,r+16),Yl(i=this._aes.encrypt(i),t,r);return t},Ah.prototype.decrypt=function(e){if((e=Ol(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=Jl(e.length),i=Jl(16),r=0;r<e.length;r+=16)Yl(e,i,0,r,r+16),Yl(i=this._aes.decrypt(i),t,r);return t};var dh=function(e,t){if(!(this instanceof dh))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=Jl(16);this._lastCipherblock=Ol(t,!0),this._aes=new hh(e)};dh.prototype.encrypt=function(e){if((e=Ol(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=Jl(e.length),i=Jl(16),r=0;r<e.length;r+=16){Yl(e,i,0,r,r+16);for(var s=0;s<16;s++)i[s]^=this._lastCipherblock[s];this._lastCipherblock=this._aes.encrypt(i),Yl(this._lastCipherblock,t,r)}return t},dh.prototype.decrypt=function(e){if((e=Ol(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=Jl(e.length),i=Jl(16),r=0;r<e.length;r+=16){Yl(e,i,0,r,r+16),i=this._aes.decrypt(i);for(var s=0;s<16;s++)t[r+s]=i[s]^this._lastCipherblock[s];Yl(e,this._lastCipherblock,0,r,r+16)}return t};var ch=function(e,t,i){if(!(this instanceof ch))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=Jl(16);i||(i=1),this.segmentSize=i,this._shiftRegister=Ol(t,!0),this._aes=new hh(e)};ch.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,i=Ol(e,!0),r=0;r<i.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var s=0;s<this.segmentSize;s++)i[r+s]^=t[s];Yl(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Yl(i,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return i},ch.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,i=Ol(e,!0),r=0;r<i.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var s=0;s<this.segmentSize;s++)i[r+s]^=t[s];Yl(this._shiftRegister,this._shiftRegister,0,this.segmentSize),Yl(e,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return i};var uh=function(e,t){if(!(this instanceof uh))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=Jl(16);this._lastPrecipher=Ol(t,!0),this._lastPrecipherIndex=16,this._aes=new hh(e)};uh.prototype.encrypt=function(e){for(var t=Ol(e,!0),i=0;i<t.length;i++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[i]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},uh.prototype.decrypt=uh.prototype.encrypt;var ph=function(e){if(!(this instanceof ph))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=Jl(16),this.setValue(e)):this.setBytes(e)};ph.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");if(e>Number.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;t>=0;--t)this._counter[t]=e%256,e=parseInt(e/256)},ph.prototype.setBytes=function(e){if(16!=(e=Ol(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},ph.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var gh=function(e,t){if(!(this instanceof gh))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof ph||(t=new ph(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new hh(e)};gh.prototype.encrypt=function(e){for(var t=Ol(e,!0),i=0;i<t.length;i++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[i]^=this._remainingCounter[this._remainingCounterIndex++];return t},gh.prototype.decrypt=gh.prototype.encrypt;const mh={AES:hh,Counter:ph,ModeOfOperation:{ecb:Ah,cbc:dh,cfb:ch,ofb:uh,ctr:gh},utils:{hex:jl,utf8:Pl},padding:{pkcs7:{pad:function(e){var t=16-(e=Ol(e,!0)).length%16,i=Jl(e.length+t);Yl(e,i);for(var r=e.length;r<i.length;r++)i[r]=t;return i},strip:function(e){if((e=Ol(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var i=e.length-t,r=0;r<t;r++)if(e[i+r]!==t)throw new Error("PKCS#7 invalid padding byte");var s=Jl(i);return Yl(e,s,0,0,i),s}}},_arrayTest:{coerceArray:Ol,createArray:Jl,copyArray:Yl}};function yh(e){const t=[];for(let i=0;i<e.length;i+=1)t[i>>>2]|=e[i]<<24-i%4*8;return s.default.lib.WordArray.create(t,e.length)}const Eh=0,Ch=32,fh=16,Ih=[214,144,233,254,204,225,61,183,22,182,20,194,40,251,44,5,43,103,154,118,42,190,4,195,170,68,19,38,73,134,6,153,156,66,80,244,145,239,152,122,51,84,11,67,237,207,172,98,228,179,28,169,201,8,232,149,128,223,148,250,117,143,63,166,71,7,167,252,243,115,23,186,131,89,60,25,230,133,79,168,104,107,129,178,113,100,218,139,248,235,15,75,112,86,157,53,30,36,14,94,99,88,209,162,37,34,124,59,1,33,120,135,212,0,70,87,159,211,39,82,76,54,2,231,160,196,200,158,234,191,138,210,64,199,56,181,163,247,242,206,249,97,21,161,224,174,93,164,155,52,26,85,173,147,50,48,245,140,177,227,29,246,226,46,130,102,202,96,192,41,35,171,13,83,78,111,213,219,55,69,222,253,142,47,3,255,106,114,109,108,91,81,141,27,175,146,187,221,188,127,17,217,92,65,31,16,90,216,10,193,49,136,165,205,123,189,45,116,208,18,184,229,180,176,137,105,151,74,12,150,119,126,101,185,241,9,197,110,198,132,24,240,125,236,58,220,77,32,121,238,95,62,215,203,57,72],wh=[462357,472066609,943670861,1415275113,1886879365,2358483617,2830087869,3301692121,3773296373,4228057617,404694573,876298825,1347903077,1819507329,2291111581,2762715833,3234320085,3705924337,4177462797,337322537,808926789,1280531041,1752135293,2223739545,2695343797,3166948049,3638552301,4110090761,269950501,741554753,1213159005,1684763257];function Sh(e){const t=[];for(let i=0,r=e.length;i<r;i+=2)t.push(parseInt(e.substr(i,2),16));return t}function Mh(e,t){const i=31&t;return e<<i|e>>>32-i}function vh(e){return(255&Ih[e>>>24&255])<<24|(255&Ih[e>>>16&255])<<16|(255&Ih[e>>>8&255])<<8|255&Ih[255&e]}function kh(e){return e^Mh(e,2)^Mh(e,10)^Mh(e,18)^Mh(e,24)}function Bh(e){return e^Mh(e,13)^Mh(e,23)}function Dh(e,t,i){const r=new Array(4),s=new Array(4);for(let t=0;t<4;t++)s[0]=255&e[4*t],s[1]=255&e[4*t+1],s[2]=255&e[4*t+2],s[3]=255&e[4*t+3],r[t]=s[0]<<24|s[1]<<16|s[2]<<8|s[3];for(let e,t=0;t<32;t+=4)e=r[1]^r[2]^r[3]^i[t+0],r[0]^=kh(vh(e)),e=r[2]^r[3]^r[0]^i[t+1],r[1]^=kh(vh(e)),e=r[3]^r[0]^r[1]^i[t+2],r[2]^=kh(vh(e)),e=r[0]^r[1]^r[2]^i[t+3],r[3]^=kh(vh(e));for(let e=0;e<16;e+=4)t[e]=r[3-e/4]>>>24&255,t[e+1]=r[3-e/4]>>>16&255,t[e+2]=r[3-e/4]>>>8&255,t[e+3]=255&r[3-e/4]}function bh(e,t,i){let{padding:r="pkcs#7",mode:s,iv:a=[],output:o="string"}=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if("cbc"===s&&("string"==typeof a&&(a=Sh(a)),16!==a.length))throw new Error("iv is invalid");if("string"==typeof t&&(t=Sh(t)),16!==t.length)throw new Error("key is invalid");if(e="string"==typeof e?i!==Eh?function(e){const t=[];for(let i=0,r=e.length;i<r;i++){const r=e.codePointAt(i);if(r<=127)t.push(r);else if(r<=2047)t.push(192|r>>>6),t.push(128|63&r);else if(r<=55295||r>=57344&&r<=65535)t.push(224|r>>>12),t.push(128|r>>>6&63),t.push(128|63&r);else{if(!(r>=65536&&r<=1114111))throw t.push(r),new Error("input is not supported");i++,t.push(240|r>>>18&28),t.push(128|r>>>12&63),t.push(128|r>>>6&63),t.push(128|63&r)}}return t}(e):Sh(e):[...e],("pkcs#5"===r||"pkcs#7"===r)&&i!==Eh){const t=fh-e.length%fh;for(let i=0;i<t;i++)e.push(t)}const n=new Array(Ch);!function(e,t,i){const r=new Array(4),s=new Array(4);for(let t=0;t<4;t++)s[0]=255&e[0+4*t],s[1]=255&e[1+4*t],s[2]=255&e[2+4*t],s[3]=255&e[3+4*t],r[t]=s[0]<<24|s[1]<<16|s[2]<<8|s[3];r[0]^=2746333894,r[1]^=1453994832,r[2]^=1736282519,r[3]^=2993693404;for(let e,i=0;i<32;i+=4)e=r[1]^r[2]^r[3]^wh[i+0],t[i+0]=r[0]^=Bh(vh(e)),e=r[2]^r[3]^r[0]^wh[i+1],t[i+1]=r[1]^=Bh(vh(e)),e=r[3]^r[0]^r[1]^wh[i+2],t[i+2]=r[2]^=Bh(vh(e)),e=r[0]^r[1]^r[2]^wh[i+3],t[i+3]=r[3]^=Bh(vh(e));if(i===Eh)for(let e,i=0;i<16;i++)e=t[i],t[i]=t[31-i],t[31-i]=e}(t,n,i);const l=[];let h=a,A=e.length,d=0;for(;A>=fh;){const t=e.slice(d,d+16),r=new Array(16);if("cbc"===s)for(let e=0;e<fh;e++)i!==Eh&&(t[e]^=h[e]);Dh(t,r,n);for(let e=0;e<fh;e++)"cbc"===s&&i===Eh&&(r[e]^=h[e]),l[d+e]=r[e];"cbc"===s&&(h=i!==Eh?r:t),A-=fh,d+=fh}if(("pkcs#5"===r||"pkcs#7"===r)&&i===Eh){const e=l.length,t=l[e-1];for(let i=1;i<=t;i++)if(l[e-i]!==t)throw new Error("padding is invalid");l.splice(e-t,t)}return"array"!==o?i!==Eh?l.map((e=>1===(e=e.toString(16)).length?"0"+e:e)).join(""):function(e){const t=[];for(let i=0,r=e.length;i<r;i++)e[i]>=240&&e[i]<=247?(t.push(String.fromCodePoint(((7&e[i])<<18)+((63&e[i+1])<<12)+((63&e[i+2])<<6)+(63&e[i+3]))),i+=3):e[i]>=224&&e[i]<=239?(t.push(String.fromCodePoint(((15&e[i])<<12)+((63&e[i+1])<<6)+(63&e[i+2]))),i+=2):e[i]>=192&&e[i]<=223?(t.push(String.fromCodePoint(((31&e[i])<<6)+(63&e[i+1]))),i++):t.push(String.fromCodePoint(e[i]));return t.join("")}(l):l}function Qh(e,t,i){for(let r=2;r<e.length;++r){const s=r-2,a=t[s%t.length],o=i[s%i.length];e[r]=e[r]^a^o}return e}class Rh extends ko{constructor(e){super(),this.TAG_NAME="CommonDemux",this.player=e,this.stopId=null,this.firstTimestamp=null,this.startTimestamp=null,this.preDelayTimestamp=null,this.preLoopTimestamp=null,this.bufferStartDts=null,this.bufferStartLocalTs=null,this.preIframeTs=null,this.preFrameTs=null,this.preTimestamp=null,this.preTimestampDuration=0,this.prevPayloadBufferSize=0,this.isStreamTsMoreThanLocal=!1,this.delay=-1,this.pushLatestDelay=-1,this.bufferList=[],this.historyIntervalDiffTimeList=[],this.playbackStreamFps=null,this.playbackStreamAudioFps=null,this.playbackStreamVideoFps=null,this.dropping=!1,this.isPushDropping=!1,this.nalUnitSize=null,this.initInterval(),this.player.debug.log("CommonDemux","init")}destroy(){this.bufferList=[],this.historyIntervalDiffTimeList=[],this.playbackStreamFps=null,this.playbackStreamAudioFps=null,this.playbackStreamVideoFps=null,this.clearStopInterval(),this.firstTimestamp=null,this.startTimestamp=null,this.bufferStartDts=null,this.bufferStartLocalTs=null,this.preDelayTimestamp=null,this.preLoopTimestamp=null,this.preIframeTs=null,this.preTimestamp=null,this.preTimestampDuration=0,this.prevPayloadBufferSize=0,this.isStreamTsMoreThanLocal=!1,this.delay=-1,this.pushLatestDelay=-1,this.dropping=!1,this.isPushDropping=!1,this.nalUnitSize=null,this.off(),this.player.debug.log("CommonDemux","destroy")}isDropping(){return this.dropping||this.isPushDropping}getDelay(e,t){if(!e||!this.player.isDemuxDecodeFirstIIframeInit())return-1;if(t===Ve)return this.delay;if(this.preDelayTimestamp&&this.preDelayTimestamp>e)return this.preDelayTimestamp-e>1e3&&this.player.debug.warn("CommonDemux",`getDelay() and preDelayTimestamp is ${this.preDelayTimestamp} > timestamp is ${e} more than ${this.preDelayTimestamp-e}ms and return ${this.delay}`),this.preDelayTimestamp=e,this.delay;if(this.firstTimestamp){if(e){const t=Date.now()-this.startTimestamp,i=e-this.firstTimestamp;t>=i?(this.isStreamTsMoreThanLocal=!1,this.delay=t-i):(this.isStreamTsMoreThanLocal=!0,this.delay=i-t)}}else this.firstTimestamp=e,this.startTimestamp=Date.now(),this.delay=-1;return this.preDelayTimestamp=e,this.delay}getDelayNotUpdateDelay(e,t){if(!e||!this.player.isDemuxDecodeFirstIIframeInit())return-1;if(t===Ve)return this.pushLatestDelay;if(this.preDelayTimestamp&&this.preDelayTimestamp-e>1e3)return this.player.debug.warn("CommonDemux",`getDelayNotUpdateDelay() and preDelayTimestamp is ${this.preDelayTimestamp} > timestamp is ${e} more than ${this.preDelayTimestamp-e}ms and return -1`),-1;if(this.firstTimestamp){let t=-1;if(e){const i=Date.now()-this.startTimestamp,r=e-this.firstTimestamp;t=i>=r?i-r:r-i}return t}return-1}resetDelay(){this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.dropping=!1}resetAllDelay(){this.resetDelay(),this.preDelayTimestamp=null}initInterval(){this.player.isUseHls265()?this.player.debug.log("CommonDemux","initInterval() and is hls and support hls265 so return"):-1===this.player.getStreamType().indexOf(C)?this.player.isPlaybackCacheBeforeDecodeForFpsRender()?this.player.debug.log("CommonDemux","initInterval() and playback and playbackIsCacheBeforeDecodeForFpsRender is true so return"):(this.player.debug.log("CommonDemux","setInterval()"),this._loop(),this.stopId=setInterval((()=>{let e=(new Date).getTime();this.preLoopTimestamp||(this.preLoopTimestamp=e);const t=e-this.preLoopTimestamp;this.updateHistoryIntervalDiffTimeList(t),t>100&&this.player.debug.warn("CommonDemux",`loop demux diff time is ${t}`),this._loop(),this.preLoopTimestamp=(new Date).getTime()}),20)):this.player.debug.log("CommonDemux","initInterval() and is worker stream so return")}clearStopInterval(){this.stopId&&(clearInterval(this.stopId),this.stopId=null)}updateHistoryIntervalDiffTimeList(e){this.historyIntervalDiffTimeList.length>5&&this.historyIntervalDiffTimeList.shift(),this.historyIntervalDiffTimeList.push(e)}isHistoryIntervalDiffTimeAllLarge(){if(this.historyIntervalDiffTimeList.length<5)return!1;for(let e=0;e<this.historyIntervalDiffTimeList.length;e++)if(this.historyIntervalDiffTimeList[e]<900)return!1;return!0}initPlaybackCacheLoop(){this.clearStopInterval();const e=()=>{let e=null;this.bufferList.length&&(e=this.bufferList.shift(),this._doDecoderDecode(e))};e();const t=Math.ceil(1e3/(this.playbackStreamFps*this.player.getPlaybackRate()));this.player.debug.log("CommonDemux",`initPlaybackCacheLoop() and fragDuration is ${t}, playbackStreamFps is ${this.playbackStreamFps}, playbackRate is ${this.player.getPlaybackRate()}`),this.stopId=setInterval(e,t)}_loop(){let e;const t=this.player._opt.videoBuffer,i=this.player._opt.videoBufferDelay,r=this.player._opt.playType===S;if(this.bufferList.length){if(this.isPushDropping)return void this.player.debug.warn("CommonDemux",`_loop isPushDropping is true and bufferList length is ${this.bufferList.length}`);if(this.dropping){for(e=this.bufferList.shift(),this.player.debug.warn("CommonDemux",`_loop is dropping and data.ts is ${e.ts}, data.type is ${e.type}, data.isIFrame is ${e.isIFrame}, delay is ${this.delay} ,buffer list is ${this.bufferList.length}`);!e.isIFrame&&this.bufferList.length;)e=this.bufferList.shift();const t=this.getDelayNotUpdateDelay(e.ts,e.type);e.isIFrame&&t<=this.getNotDroppingDelayTs()&&(this.player.debug.log("CommonDemux",`_loop data isIFrame is true and delay is ${this.delay}`),this.dropping=!1,this._doDecoderDecode(e),this._decodeNext(e))}else if(this.player.isPlayback()||this.player.isPlayUseMSE()||0===t)for(;this.bufferList.length;)e=this.bufferList.shift(),this._doDecoderDecode(e);else if(e=this.bufferList[0],-1===this.getDelay(e.ts,e.type))this.player.debug.log("CommonDemux",`delay is -1 and data.ts is ${e.ts} data.type is ${e.type}`),this.bufferList.shift(),this._doDecoderDecode(e),this._decodeNext(e);else if(this.delay>i+t&&r)this.hasIframeInBufferList()?(this.player.debug.warn("CommonDemux",`_loop delay is ${this.delay}, set dropping is true`),this.resetAllDelay(),this.dropping=!0,this.player.updateStats({isDropping:!0})):(this.bufferList.shift(),this._doDecoderDecode(e),this._decodeNext(e));else for(;this.bufferList.length;){if(e=this.bufferList[0],!(this.getDelay(e.ts,e.type)>t)){this.delay<0&&this.player.debug.warn("CommonDemux",`_loop delay is ${this.delay} bufferList is ${this.bufferList}`);break}this.bufferList.shift(),this._doDecoderDecode(e)}}else-1!==this.delay&&this.player.debug.log("CommonDemux","loop() bufferList is empty and reset delay"),this.resetAllDelay()}_doDecode(e,t,i,r){let s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;const a=this.player;let o={ts:i,cts:s,type:t,isIFrame:!1};this.player.isPlayer()?(t===He&&a._opt.playType===S&&this.calcNetworkDelay(i),a._opt.useWCS&&!a._opt.useOffscreen||a._opt.useMSE?(t===He&&(o.isIFrame=r),this.pushBuffer(e,o)):t===He?a.decoderWorker&&a.decoderWorker.decodeVideo(e,i,r):t===Ve&&a._opt.hasAudio&&a.decoderWorker&&a.decoderWorker.decodeAudio(e,i)):this.player.isPlayback()&&(t===He&&(o.isIFrame=r),this.player.isPlaybackOnlyDecodeIFrame()?t===He&&r&&this.pushBuffer(e,o):this.player.isPlaybackCacheBeforeDecodeForFpsRender()||1===this.player.getPlaybackRate()?this.pushBuffer(e,o):this.pushBuffer(e,o,!1))}_doDecodeByHls(e,t,i,r){let s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=!1;if(t===Ve&&Os(e)&&(this.player.debug.log("CommonDemux",`hls pushBuffer audio ts is ${i}, isAacCodecPacket is true`),a=!0,this.player.isRecordTypeFlv())){const t=new Uint8Array(e);this.player.recorder.addAACSequenceHeader(t,i)}let o=!1;if(t===He&&r&&co(e)&&(this.player.debug.log("CommonDemux",`hls pushBuffer video ts is ${i}, isVideoSequenceHeader is true`),o=!0,this.player.isRecordTypeFlv())){const t=new Uint8Array(e);this.player.recorder.addVideoSequenceHeader(t,i)}this.player.recording&&po(o)&&po(a)&&this.handleRecording(e,t,i,r,s),t===He?this._doDecoderDecode({ts:i,cts:s,payload:e,type:He,isIFrame:r}):t===Ve&&this._doDecoderDecode({ts:i,payload:e,type:Ve})}_doDecodeByFmp4(e,t,i,r){let s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;this._doDecode(e,t,i,r,s)}_doDecodeByTs(e,t,i,r){let s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;this._doDecode(e,t,i,r,s)}_decodeNext(e){const t=e.ts;if(0===this.bufferList.length)return;let i=this.bufferList[0];const r=i.ts-t,s=e.type===He&&i.type===Ve,a=e.type===He&&co(e.payload);(r<=20||s||a)&&(this.player.debug.log("CommonDemux",`decode data type is ${e.type} and\n ts is ${t} next data type is ${i.type} ts is ${i.ts}\n diff is ${r} and isVideoAndNextAudio is ${s} and isVideoSqeHeader is ${a}`),this.bufferList.shift(),this._doDecoderDecode(i))}_doDecoderDecode(e){const t=this.player,{webcodecsDecoder:i,mseDecoder:r}=t;this.player.isPlayer()&&this.player.updateStats({buf:this.delay}),e.type===Ve?t._opt.hasAudio&&(t._opt.useMSE&&t._opt.mseDecodeAudio?r.decodeAudio(e.payload,e.ts):t.decoderWorker&&t.decoderWorker.decodeAudio(e.payload,e.ts)):e.type===He&&(t._opt.isEmitSEI&&this.findSei(e.payload,e.ts),t._opt.useWCS&&!t._opt.useOffscreen?i.decodeVideo(e.payload,e.ts,e.isIFrame,e.cts):t._opt.useMSE?r.decodeVideo(e.payload,e.ts,e.isIFrame,e.cts):t.decoderWorker&&t.decoderWorker.decodeVideo(e.payload,e.ts,e.isIFrame))}pushBuffer(e,t){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const r=this.player._opt.videoBuffer,s=this.player._opt.videoBufferDelay,a=this.player.isPlayer();if(t.type===Ve&&Os(e)){if(this.player.debug.log("CommonDemux",`pushBuffer() audio ts is ${t.ts}, isAacCodecPacket is true`),this.player.isRecordTypeFlv()){const i=new Uint8Array(e);this.player.recorder.addAACSequenceHeader(i,t.ts)}this._doDecoderDecode({ts:t.ts,payload:e,type:Ve})}else if(t.type===He&&t.isIFrame&&co(e)){if(this.player.debug.log("CommonDemux",`pushBuffer() video ts is ${t.ts}, isVideoSequenceHeader is true`),this.player.isRecordTypeFlv()){const i=new Uint8Array(e);this.player.recorder.addVideoSequenceHeader(i,t.ts)}this._doDecoderDecode({ts:t.ts,payload:e,type:He,isIFrame:t.isIFrame,cts:t.cts})}else{if(this.player.recording&&this.handleRecording(e,t.type,t.ts,t.isIFrame,t.cts),a){if(this.preTimestampDuration>0&&this.preTimestamp>0&&t.type===He){const e=t.ts-this.preTimestamp,i=this.preTimestampDuration+this.preTimestampDuration/2;e>=i&&this.player.debug.log("CommonDemux",`pushBuffer() video\n ts is ${t.ts}, preTimestamp is ${this.preTimestamp},\n diff is ${e} and preTimestampDuration is ${this.preTimestampDuration} and maxDiff is ${i}\n maybe trigger black screen or flower screen`)}if(this.preTimestamp>0&&t.ts<this.preTimestamp&&t.type===He&&this.preTimestamp-t.ts>le&&(this.player.debug.warn("CommonDemux",`pushBuffer() video\n ts is ${t.ts}, preTimestamp is ${this.preTimestamp},\n diff is ${this.preTimestamp-t.ts} more than 3600000\n and resetAllDelay()`),this.resetAllDelay()),t.ts<=this.preTimestamp&&this.preTimestamp>0&&t.type===He&&(this.player.debug.warn("CommonDemux",`pushBuffer() video and isIFrame is ${t.isIFrame} and\n ts is ${t.ts} less than (or equal) preTimestamp is ${this.preTimestamp} and\n payloadBufferSize is ${e.byteLength} and prevPayloadBufferSize is ${this.prevPayloadBufferSize}`),this.player._opt.isDropSameTimestampGop&&po(t.isIFrame)&&this.player.isDemuxDecodeFirstIIframeInit())){const e=this.hasIframeInBufferList(),t=po(this.isPushDropping);return this.player.debug.log("CommonDemux",`pushBuffer(), isDropSameTimestampGop is true and\n hasIframe is ${e} and isNotPushDropping is ${t} and next drop buffer`),void(e&&t?this.dropBuffer$2():this.clearBuffer(!0))}if(this.player.isDemuxDecodeFirstIIframeInit()){let e=this.getDelayNotUpdateDelay(t.ts,t.type);this.pushLatestDelay=e;const i=s+r;this.player._opt.useMSE?e>i&&this.delay<i&&this.delay>0&&this.hasIframeInBufferList()&&!1===this.isPushDropping&&(this.player.debug.warn("CommonDemux",`useMSE, pushLatestDelay is ${e} > ${s+r}, bufferList is ${this.bufferList.length}, delay is ${this.delay} and dropBuffer$2()`),this.dropBuffer$2()):e>i&&this.delay<i&&this.delay>0&&this.hasIframeInBufferList()&&!1===this.isPushDropping&&(this.player.debug.warn("CommonDemux",`useWCS, pushLatestDelay is ${e} > ${s+r},bufferList is ${this.bufferList.length}, delay is ${this.delay} and dropBuffer$2()`),this.dropBuffer$2()),this.isHistoryIntervalDiffTimeAllLarge()&&po(this.player.visibility)&&(this.player._opt.useMSE?this.hasIframeInBufferList()&&!1===this.isPushDropping&&(this.player.debug.warn("CommonDemux",`useMSE, page visibility is false and\n history interval diff is ${this.historyIntervalDiffTimeList.join(",")} and\n bufferList is ${this.bufferList.length},\n delay is ${this.delay} and dropBuffer$2()`),this.dropBuffer$2()):this.hasIframeInBufferList()&&!1===this.isPushDropping&&(this.player.debug.warn("CommonDemux",`useWCS, page visibility is false and\n history interval diff is ${this.historyIntervalDiffTimeList.join(",")} and\n bufferList is ${this.bufferList.length},\n delay is ${this.delay} and dropBuffer$2()`),this.dropBuffer$2()))}t.type===He&&(this.preTimestamp>0&&(this.preTimestampDuration=t.ts-this.preTimestamp),this.prevPayloadBufferSize=e.byteLength,this.preTimestamp=t.ts)}if(i?t.type===Ve?this.bufferList.push({ts:t.ts,payload:e,type:Ve}):t.type===He&&this.bufferList.push({ts:t.ts,cts:t.cts,payload:e,type:He,isIFrame:t.isIFrame}):t.type===He?this._doDecoderDecode({ts:t.ts,cts:t.cts,payload:e,type:He,isIFrame:t.isIFrame}):t.type===Ve&&this._doDecoderDecode({ts:t.ts,payload:e,type:Ve}),this.player.isPlaybackCacheBeforeDecodeForFpsRender()&&(Ra(this.playbackStreamVideoFps)||Ra(this.playbackStreamAudioFps))){let e=this.playbackStreamVideoFps,t=this.playbackStreamAudioFps;if(Ra(this.playbackStreamVideoFps)&&(e=ao(this.bufferList,He),e>0&&(this.playbackStreamVideoFps=e,this.player.video&&this.player.video.setStreamFps(this.playbackStreamVideoFps),this.playbackStreamFps=t?e+t:e,po(this.player._opt.hasAudio)&&(this.player.debug.log(this.TAG_NAME,"playbackCacheBeforeDecodeForFpsRender,_opt.hasAudio is false and set streamAudioFps is 0"),this.playbackStreamAudioFps=0),this.initPlaybackCacheLoop())),Ra(this.playbackStreamAudioFps)&&(t=ao(this.bufferList,Ve),t>0&&(this.playbackStreamAudioFps=t,this.playbackStreamFps=e?e+t:t,this.initPlaybackCacheLoop())),Ra(this.playbackStreamVideoFps)&&Ra(this.playbackStreamAudioFps)){const i=this.bufferList.map((e=>({type:e.type,ts:e.ts})));this.player.debug.log("CommonDemux",`playbackCacheBeforeDecodeForFpsRender, calc streamAudioFps is ${t}, streamVideoFps is ${e}, bufferListLength is ${this.bufferList.length} and ts list is ${JSON.stringify(i)}`)}const i=this.getAudioBufferLength()>0,r=i?60:40;this.bufferList.length>=r&&(this.debug.warn("CommonDemux",`playbackCacheBeforeDecodeForFpsRender, bufferListLength is ${this.bufferList.length} more than ${r}, and hasAudio is ${i} an set streamFps is 25`),this.playbackStreamVideoFps=e,this.player.video&&this.player.video.setStreamFps(this.playbackStreamVideoFps),i?(this.playbackStreamAudioFps=25,this.playbackStreamFps=this.playbackStreamVideoFps+this.playbackStreamAudioFps):this.playbackStreamFps=this.playbackStreamVideoFps,this.initPlaybackCacheLoop())}}}dropBuffer$2(){if(this.bufferList.length>0){let e=this.bufferList.findIndex((e=>uo(e.isIFrame)&&e.type===He));if(this.isAllIframeInBufferList())for(let t=0;t<this.bufferList.length;t++){const i=this.bufferList[t],r=this.getDelayNotUpdateDelay(i.ts,i.type);if(r>=this.getNotDroppingDelayTs()){this.player.debug.log("CommonDemux",`dropBuffer$2() isAllIframeInBufferList() is true, and index is ${t} and tempDelay is ${r} and notDroppingDelayTs is ${this.getNotDroppingDelayTs()}`),e=t;break}}if(e>=0){this.isPushDropping=!0,this.player.updateStats({isDropping:!0});const t=this.bufferList.length;this.bufferList=this.bufferList.slice(e);const i=this.bufferList.shift();this.resetAllDelay(),this.getDelay(i.ts,i.type),this._doDecoderDecode(i),this.isPushDropping=!1,this.player.debug.log("CommonDemux",`dropBuffer$2() iFrameIndex is ${e},and old bufferList length is ${t} ,and new bufferList length is ${this.bufferList.length} and new delay is ${this.delay} `)}else this.isPushDropping=!1}0===this.bufferList.length&&(this.isPushDropping=!1)}clearBuffer(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.player.debug.log("CommonDemux",`clearBuffer,buffer length is ${this.bufferList.length}, need clear is ${e} and _opt.checkFirstIFrame is ${this.player._opt.checkFirstIFrame}`),e&&(this.bufferList=[]),this.player.isPlayer()&&(this.resetAllDelay(),uo(this.player._opt.checkFirstIFrame)&&(this.dropping=!0,this.player.updateStats({isDropping:!0}))),this.player.decoderCheckFirstIFrame()}calcNetworkDelay(e){if(!(this.player.isDemuxDecodeFirstIIframeInit()&&e>0))return;null===this.bufferStartDts?(this.bufferStartDts=e,this.bufferStartLocalTs=la()):e<this.bufferStartDts&&(this.player.debug.warn("CommonDemux",`calcNetworkDelay dts is ${e} and bufferStartDts is ${this.bufferStartDts}`),this.bufferStartDts=e,this.bufferStartLocalTs=la());let t=e-this.bufferStartDts,i=la()-this.bufferStartLocalTs,r=i>t?i-t:0;r>this.player._opt.networkDelay&&this.player._opt.playType===S&&(this.player.debug.warn("CommonDemux",`delay is more than networkDelay and now dts:${e},start dts is ${this.bufferStartDts}, vs start is ${t},local diff is ${i} ,delay is ${r}, _opt.networkDelay is ${this.player._opt.networkDelay}`),this.player.emit(yt.networkDelayTimeout,r)),this.player.updateStats({netBuf:r})}calcIframeIntervalTimestamp(e){if(null===this.preIframeTs)this.preIframeTs=e;else if(this.preIframeTs<e){const t=e-this.preIframeTs;this.player&&(this.player.videoIframeIntervalTs=t),this.preIframeTs=e}}calcBufferFps(e){}getNotDroppingDelayTs(){return this.player._opt.videoBuffer+this.player._opt.videoBufferDelay/2}getMaxDelayTs(){return this.player._opt.videoBuffer+this.player._opt.videoBufferDelay}getPushLatestDelay(){return this.pushLatestDelay}getVideoBufferLength(){let e=0;return this.bufferList.forEach((t=>{t.type===He&&(e+=1)})),e}getAudioBufferLength(){let e=0;return this.bufferList.forEach((t=>{t.type===Ve&&(e+=1)})),e}hasIframeInBufferList(){return this.bufferList.some((e=>e.type===He&&e.isIFrame))}isAllIframeInBufferList(){const e=this.getVideoBufferLength();let t=0;return this.bufferList.forEach((e=>{e.type===He&&e.isIFrame&&(t+=1)})),e===t}getInputByteLength(){return 0}getIsStreamTsMoreThanLocal(){return this.isStreamTsMoreThanLocal}close(){}reset(){}findSei(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=4;La(this.nalUnitSize)&&(r=this.nalUnitSize);const s=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4;if(e.length<4)return;const i=e.length,r=[];let s,a=0;for(;a+t<i;)if(s=ia(e,a),3===t&&(s>>>=8),a+=t,s){if(a+s>i)break;r.push(e.subarray(a,a+s)),a+=s}return r}(e.slice(5),r);if(po(i)){const e=this.player.getVideoInfo();e&&e.encType&&(i=e.encType===Lt)}s.forEach((e=>{const r=i?e[0]>>>1&63:31&e[0];(i&&(r===Vt||r===Zt)||po(i)&&r===Ft.kSliceSEI)&&this.player.emit(yt.videoSEI,{ts:t,data:e})}))}handleRecording(e,t,i,r,s){if(this.player.isRecordTypeFlv()){const r=new Uint8Array(e);t===He?this.player.recorder.addVideo(r,i):t===Ve&&this.player.recorder.addAudio(r,i)}else if(this.player.isRecordTypeMp4()){const a=new Uint8Array(e);if(this.player.recorder.isWasmMp4()){if(t===He)this.player.recorder.handleAddNaluTrack(a.slice(5),r,i,s);else if(t===Ve){const t=new Uint8Array(e);this.player.recorder.handleAddAudioTrack(Js(t)?t.slice(2):t.slice(1),i)}}else t===He&&this.player.recorder.handleAddNaluTrack(a.slice(5),r,i,s)}}updateNalUnitSize(e){const t=15&e[0];this.player.video.updateVideoInfo({encTypeCode:t});const i=t===Rt;this.nalUnitSize=function(e,t){let i=null;return t?e.length>=28&&(i=1+(3&e[26])):e.length>=12&&(i=1+(3&e[9])),i}(e,i),this.player.debug.log(this.TAG_NAME,`demux() isVideoSequenceHeader is true and isHevc is ${i} and nalUnitSize is ${this.nalUnitSize}`)}cryptoPayload(e,t){let i=e,r=this.player;if(r._opt.isM7sCrypto)if(r._opt.cryptoKey&&r._opt.cryptoKey.byteLength>0&&r._opt.cryptoIV&&r._opt.cryptoIV.byteLength>0){const t=this.player.video.getVideoInfo();t.encTypeCode?i=function(e,t,i){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];t=new Uint8Array(t),i=new Uint8Array(i);const s=e.byteLength;let a=5;for(;a<s;){let n=(o=e.slice(a,a+4))[3]|o[2]<<8|o[1]<<16|o[0]<<24;if(n>s)break;let l=e[a+4],h=!1;if(r?(l=l>>>1&63,h=[0,1,2,3,4,5,6,7,8,9,16,17,18,19,20,21].includes(l)):(l&=31,h=1===l||5===l),h){const r=e.slice(a+4+2,a+4+n);let s=new mh.ModeOfOperation.ctr(t,new mh.Counter(i));const o=s.decrypt(r);s=null,e.set(o,a+4+2)}a=a+4+n}var o;return e}(e,r._opt.cryptoKey,r._opt.cryptoIV,t.encTypeCode===Rt):r.debug.warn(this.TAG_NAME,`videoInfo.encTypeCode is ${t.encTypeCode}`)}else r.debug.error(this.TAG_NAME,`isM7sCrypto cryptoKey.length is ${r._opt.cryptoKey&&r._opt.cryptoKey.byteLength} or cryptoIV.length is ${r._opt.cryptoIV&&r._opt.cryptoIV.byteLength} null`);else if(r._opt.isSm4Crypto)r._opt.sm4CryptoKey&&t?i=function(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const r=e.byteLength;let s=5;for(;s<r;){let o=(a=e.slice(s,s+4))[3]|a[2]<<8|a[1]<<16|a[0]<<24;if(o>r)break;let n=e[s+4],l=!1;if(i?(n=n>>>1&63,l=[0,1,2,3,4,5,6,7,8,9,16,17,18,19,20,21].includes(n)):(n&=31,l=1===n||5===n),l){const i=bh(e.slice(s+4+2,s+4+o),t,0,{padding:"none",output:"array"});e.set(i,s+4+2)}s=s+4+o}var a;return e}(e,r._opt.sm4CryptoKey):r._opt.sm4CryptoKey||r.debug.error(this.TAG_NAME,"isSm4Crypto opt.sm4CryptoKey is null");else if(r._opt.isXorCrypto)if(r._opt.cryptoKey&&r._opt.cryptoKey.byteLength>0&&r._opt.cryptoIV&&r._opt.cryptoIV.byteLength>0){const t=this.player.video.getVideoInfo();i=function(e,t,i){let r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const s=e.byteLength;let a=5;for(;a<s;){let n=(o=e.slice(a,a+4))[3]|o[2]<<8|o[1]<<16|o[0]<<24;if(n>s)break;let l=e[a+4],h=!1;if(r?(l=l>>>1&63,h=[0,1,2,3,4,5,6,7,8,9,16,17,18,19,20,21].includes(l)):(l&=31,h=1===l||5===l),h){const r=Qh(e.slice(a+4,a+4+n),t,i);e.set(r,a+4)}a=a+4+n}var o;return e}(e,r._opt.cryptoKey,r._opt.cryptoIV,t.encTypeCode===Rt)}else r.debug.error(this.TAG_NAME,"isXorCrypto opt.xorCryptoKey is null");return i}cryptoPayloadAudio(e){let t=e,i=this.player;if(i._opt.isM7sCrypto)if(i._opt.cryptoKey&&i._opt.cryptoKey.byteLength>0&&i._opt.cryptoIV&&i._opt.cryptoIV.byteLength>0){e[0]>>4===Kt.AAC&&(t=function(e,t,i){if(e.byteLength<=30)return e;const r=e.slice(32);let s=new mh.ModeOfOperation.ctr(t,new mh.Counter(i));const a=s.decrypt(r);return s=null,e.set(a,32),e}(e,i._opt.cryptoKey,i._opt.cryptoIV))}else i.debug.error(this.TAG_NAME,`isM7sCrypto cryptoKey.length is ${i._opt.cryptoKey&&i._opt.cryptoKey.byteLength} or cryptoIV.length is ${i._opt.cryptoIV&&i._opt.cryptoIV.byteLength} null`);return t}_decodeEnhancedH265Video(e,t){const i=e[0],r=48&i,s=15&i,a=e.slice(1,5),o=new ArrayBuffer(4),n=new Uint32Array(o),l="a"==String.fromCharCode(a[0]);if(s===ms){if(r===Cs){const t=e.slice(5);if(l);else{const e=new Uint8Array(5+t.length);e.set([28,0,0,0,0],0),e.set(t,5),this.updateNalUnitSize(e),this.player.debug.log(this.TAG_NAME,`demux() isVideoSequenceHeader(enhancedH265) is true and nalUnitSize is ${this.nalUnitSize}`),this._doDecode(e,He,0,!0,0)}}}else if(s===ys){let i=e,s=0;const a=r===Cs;if(a&&this.calcIframeIntervalTimestamp(t),l);else{n[0]=e[4],n[1]=e[3],n[2]=e[2],n[3]=0,s=n[0];i=Wn(e.slice(8),a),i=this.cryptoPayload(i,a),this._doDecode(i,He,t,a,s)}}else if(s===Es){const i=r===Cs,s=e.slice(5);i&&this.calcIframeIntervalTimestamp(t);let a=Wn(s,i);a=this.cryptoPayload(a,i),this._doDecode(a,He,t,i,0)}}_isEnhancedH265Header(e){return 128==(128&e)}}var Th=function(e,t,i,r){return new(i||(i=Promise))((function(s,a){function o(e){try{l(r.next(e))}catch(e){a(e)}}function n(e){try{l(r.throw(e))}catch(e){a(e)}}function l(e){var t;e.done?s(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,n)}l((r=r.apply(e,t||[])).next())}))};const Lh=Symbol(32),Kh=Symbol(16),qh=Symbol(8);class xh{constructor(e){this.g=e,this.consumed=0,e&&(this.need=e.next().value)}setG(e){this.g=e,this.demand(e.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(e,t){return t&&this.consume(),this.need=e,this.flush()}read(e){return Th(this,void 0,void 0,(function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise(((t,i)=>{var r;this.reject=i,this.resolve=e=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(e)};this.demand(e,!0)||null===(r=this.pull)||void 0===r||r.call(this,e)}))}))}readU32(){return this.read(Lh)}readU16(){return this.read(Kh)}readU8(){return this.read(qh)}close(){var e;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),null===(e=this.reject)||void 0===e||e.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let e=null;const t=this.buffer.subarray(this.consumed);let i=0;const r=e=>t.length<(i=e);if("number"==typeof this.need){if(r(this.need))return;e=t.subarray(0,i)}else if(this.need===Lh){if(r(4))return;e=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===Kh){if(r(2))return;e=t[0]<<8|t[1]}else if(this.need===qh){if(r(1))return;e=t[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(t.subarray(0,i)),e=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(t.subarray(0,i)),e=this.need}return this.consumed+=i,this.g?this.demand(this.g.next(e).value,!0):this.resolve&&this.resolve(e),e}write(e){if(e instanceof Uint8Array?this.malloc(e.length).set(e):"buffer"in e?this.malloc(e.byteLength).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):this.malloc(e.byteLength).set(new Uint8Array(e)),!this.g&&!this.resolve)return new Promise((e=>this.pull=e));this.flush()}writeU32(e){this.malloc(4).set([e>>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){const t=this.buffer.length,i=t+e;if(i<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,i);else{const e=new Uint8Array(i);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,i)}return this.buffer=new Uint8Array(e),this.buffer}}xh.U32=Lh,xh.U16=Kh,xh.U8=qh;class Fh extends Rh{constructor(e){super(e),this.TAG_NAME="FlvDemux",this.input=new xh(this.demux()),e.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.input=null,this.player.debug.log(this.TAG_NAME,"destroy")}dispatch(e){this.input?this.input.write(e):this.player&&this.player.debug.warn(this.TAG_NAME,"dispatch() this.input is null")}*demux(){yield 9;const e=new ArrayBuffer(4),t=new Uint8Array(e),i=new Uint32Array(e),r=this.player;for(;;){if(!this.input)return;t[3]=0;const e=yield 15,s=e[4];t[0]=e[7],t[1]=e[6],t[2]=e[5];const a=i[0];t[0]=e[10],t[1]=e[9],t[2]=e[8],t[3]=e[11];let o=i[0];const n=(yield a).slice();if(!r)return;switch(s){case Xe:if(r._opt.hasAudio&&(r.updateStats({abps:n.byteLength}),n.byteLength>0)){let e=n;uo(this.player._opt.m7sCryptoAudio)&&(e=this.cryptoPayloadAudio(n)),this._doDecode(e,Ve,o)}break;case _e:if(r._opt.hasVideo&&n.length>=6){let e=o;r.updateStats({vbps:n.byteLength,dts:e}),r._times.demuxStart||(r._times.demuxStart=la());const t=n[0];if(this._isEnhancedH265Header(t))this._decodeEnhancedH265Video(n,e);else{const e=15&t;let r=(t>>4&15)===Or;if(po(e===Rt||e===Qt))return void this.player.debug.warn(this.TAG_NAME,`demux() codecId is ${e} and ignore`);r&&(this.calcIframeIntervalTimestamp(o),null===this.nalUnitSize&&co(n)&&this.updateNalUnitSize(n)),i[0]=n[4],i[1]=n[3],i[2]=n[2],i[3]=0;let s=i[0],a=this.cryptoPayload(n,r);this._doDecode(a,He,o,r,s)}}else n.length<6&&r.debug.warn(this.TAG_NAME,`payload.length is ${n.length} less than 6 and ignore`);break;case $e:if(this.player.isRecordTypeFlv()){const e=new Uint8Array(n);this.player.recorder.addMetaData(e)}const e=cl(n);e&&e.onMetaData&&r.updateMetaData(e.onMetaData);break;default:r.debug.log(this.TAG_NAME,`demux() type is ${s}`)}}}close(){this.input=null}getInputByteLength(){let e=0;return this.input&&this.input.buffer&&(e=this.input.buffer.byteLength),e}}class Uh extends Rh{constructor(e){super(e),this.TAG_NAME="M7sDemux",e.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.player.debug.log(this.TAG_NAME,"destroy")}dispatch(e){const t=this.player,i=new DataView(e),r=i.getUint8(0),s=i.getUint32(1,!1),a=new ArrayBuffer(4),o=new Uint32Array(a);switch(r){case Ve:if(t._opt.hasAudio){const i=new Uint8Array(e,5);t.updateStats({abps:i.byteLength}),i.byteLength>0&&this._doDecode(i,r,s)}break;case He:if(t._opt.hasVideo)if(t._times.demuxStart||(t._times.demuxStart=la()),i.byteLength>=11){const a=new Uint8Array(e,5);let n=s;t.updateStats({vbps:a.byteLength,dts:n});const l=a[0];if(this._isEnhancedH265Header(l))this._decodeEnhancedH265Video(a,s);else{const e=i.getUint8(5)>>4==1;e&&this.calcIframeIntervalTimestamp(s),o[0]=a[4],o[1]=a[3],o[2]=a[2],o[3]=0;let t=o[0],n=this.cryptoPayload(a,e);this._doDecode(n,r,s,e,t)}}else this.player.debug.warn(this.TAG_NAME,"dispatch","dv byteLength is",i.byteLength,"and return")}}}class Gh extends Fh{constructor(e){super(e),e.debug.log("WebTransportDemux","init")}destroy(){this.player.debug.log("WebTransportDemux","destroy"),super.destroy()}}class Oh extends Rh{TAG_NAME="NakedFlowDemux";constructor(e){super(e),this.lastBuf=null,this.vps=null,this.sps=null,this.pps=null,this.streamVideoType=null,this.streamAudioType=null,this.tempNaluBufferList=new Uint8Array(0),this.localDts=0,this.isSendSeqHeader=!1,this.isSendAACSeqHeader=!1,e.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.lastBuf=null,this.vps=null,this.sps=null,this.pps=null,this.streamVideoType=null,this.streamAudioType=null,this.tempNaluBufferList=new Uint8Array(0),this.localDts=0,this.localAudioDts=0,this.isSendSeqHeader=!1,this.isSendAACSeqHeader=!1,this.player.debug.log(this.TAG_NAME,"destroy")}dispatch(e){this.player;const t=new Uint8Array(e);this.extractNALu$2(t)}addNaluToBuffer(e){const t=e.byteLength+this.tempNaluBufferList.byteLength,i=new Uint8Array(t);i.set(this.tempNaluBufferList,0),i.set(e,this.tempNaluBufferList.byteLength),this.tempNaluBufferList=i}downloadNakedFlowFile(){const e=new Blob([this.tempNaluBufferList]);try{const t=document.createElement("a");t.href=window.URL.createObjectURL(e),t.download=Date.now()+".h264",t.click(),window.URL.revokeObjectURL(t.href)}catch(e){console.error("downloadTempNalu",e)}}getNaluDts(){const e=this.player._opt.nakedFlowFps;return this.localDts=this.localDts+parseInt(1e3/e),this.localDts}getNaluAudioDts(){const e=this.player.audio.audioContext.sampleRate,t=this.player.audio.audioBufferSize;return this.localDts+parseInt(t/e*1e3)}extractNALu(e){let t,i,r=0,s=e.byteLength,a=0,o=[];for(;r<s;)switch(t=e[r++],a){case 0:0===t&&(a=1);break;case 1:a=0===t?2:0;break;case 2:case 3:0===t?a=3:1===t&&r<s?(e[r],i&&o.push(e.subarray(i,r-a-1)),i=r,a=0):a=0}return i&&o.push(e.subarray(i,s)),o}extractNALu$2(e){let t=null;if(!e||e.byteLength<1)return;this.lastBuf?(t=new Uint8Array(e.byteLength+this.lastBuf.length),t.set(this.lastBuf),t.set(new Uint8Array(e),this.lastBuf.length)):t=new Uint8Array(e);let i=0,r=-1,s=-2;const a=new Array;for(let e=0;e<t.length;e+=2){const i=t[e],o=t[e+1];0==r&&0==i&&0==o?a.push(e-1):1==o&&0==i&&0==r&&0==s&&a.push(e-2),s=i,r=o}if(a.length>1)for(let e=0;e<a.length-1;++e){const r=t.subarray(a[e],a[e+1]+1);this.handleNALu(r),i=a[e+1]}else i=a[0];if(0!=i&&i<t.length)this.lastBuf=t.subarray(i);else{this.lastBuf||(this.lastBuf=t);const i=new Uint8Array(this.lastBuf.length+e.byteLength);i.set(this.lastBuf),i.set(new Uint8Array(e),this.lastBuf.length),this.lastBuf=i}}handleNALu(e){e.byteLength<4?this.player.debug.warn(this.TAG_NAME,`handleNALu nalu byteLength is ${e.byteLength} <= 4`):(e=e.slice(4),this.handleVideoNalu(e))}handleVideoNalu(e){const t=new Uint8Array(e);if(this.streamVideoType||(this.streamVideoType=function(e){let t=null,i=31&e[0];return i!==Ft.sps&&i!==Ft.pps||(t=Tt),t||(i=(126&e[0])>>1,i!==Jt&&i!==Nt&&i!==jt||(t=Lt)),t}(t)),this.streamVideoType===Tt){const e=this.handleAddNaluStartCode(t),i=this.extractNALu(e);if(0===i.length)return void this.player.debug.warn(this.TAG_NAME,"handleVideoNalu","naluList.length === 0");const r=[];if(i.forEach((e=>{const t=Kn(e);t===Ft.pps||t===Ft.sps?this.handleVideoH264Nalu(e):xn(t)&&r.push(e)})),1===r.length)this.handleVideoH264Nalu(r[0]);else{const e=function(e){if(0===e.length)return!1;const t=Kn(e[0]);for(let i=1;i<e.length;i++)if(t!==Kn(e[i]))return!1;return!0}(r);if(e){const e=Kn(r[0]),t=Fn(e);this.handleVideoH264NaluList(r,t,e)}else r.forEach((e=>{this.handleVideoH264Nalu(e)}))}}else if(this.streamVideoType===Lt)if(this.player._opt.nakedFlowH265DemuxUseNew){const e=this.handleAddNaluStartCode(t),i=this.extractNALu(e);if(0===i.length)return void this.player.debug.warn(this.TAG_NAME,"handleVideoNalu","h265 naluList.length === 0");const r=[];if(i.forEach((e=>{const t=Zn(e);t===jt||t===Nt||t===Jt?this.handleVideoH265Nalu(e):Vn(t)&&r.push(e)})),1===r.length)this.handleVideoH265Nalu(r[0]);else{const e=function(e){if(0===e.length)return!1;const t=Zn(e[0]);for(let i=1;i<e.length;i++)if(t!==Zn(e[i]))return!1;return!0}(r);if(e){const e=Zn(r[0]),t=Hn(e);this.handleVideoH265NaluList(r,t,e)}else r.forEach((e=>{this.handleVideoH265Nalu(e)}))}}else{Zn(t)===jt?this.extractH265PPS(t):this.handleVideoH265Nalu(t)}else this.player.debug.error(this.TAG_NAME," this.streamVideoType is null")}extractH264PPS(e){const t=this.handleAddNaluStartCode(e);this.extractNALu(t).forEach((e=>{qn(Kn(e))?this.extractH264SEI(e):this.handleVideoH264Nalu(e)}))}extractH265PPS(e){const t=this.handleAddNaluStartCode(e);this.extractNALu(t).forEach((e=>{const t=Zn(e);t===Wt?this.extractH265SEI(e):this.handleVideoH265Nalu(e)}))}extractH264SEI(e){const t=this.handleAddNaluStartCode(e);this.extractNALu(t).forEach((e=>{this.handleVideoH264Nalu(e)}))}extractH265SEI(e){const t=this.handleAddNaluStartCode(e);this.extractNALu(t).forEach((e=>{this.handleVideoH265Nalu(e)}))}handleAddNaluStartCode(e){const t=[0,0,0,1],i=new Uint8Array(e.length+t.length);return i.set(t),i.set(e,t.length),i}handleAudioAACNalu(e){if(!e||e.byteLength<1)return;this.streamAudioType||(this.streamAudioType=qt.AAC);let t=new Uint8Array(e);const i=t.slice(0,7);if(t=t.slice(7),!this.isSendAACSeqHeader){const e=(192&i[2])>>6,t=(60&i[2])>>2,r=(1&i[2])<<2|(192&i[3])>>6,s=new Uint8Array([175,0,e<<3|(14&t)>>1,(1&t)<<7|r<<3]);this.isSendAACSeqHeader=!0,this._doDecode(s,Ve,0,!1,0)}const r=this.getNaluAudioDts(),s=new Uint8Array(t.length+2);s.set([175,1],0),s.set(t,2),this._doDecode(s,Ve,r,!1,0)}handleAudioG711ANalu(e){if(!e||e.byteLength<1)return;this.streamAudioType||(this.streamAudioType=qt.ALAW);let t=new Uint8Array(e);const i=this.getNaluAudioDts(),r=new Uint8Array(t.length+1);r.set([114],0),r.set(t,1),this._doDecode(r,Ve,i,!1,0)}handleAudioG711UNalu(e){if(!e||e.byteLength<1)return;this.streamAudioType||(this.streamAudioType=qt.MULAW);let t=new Uint8Array(e);const i=this.getNaluAudioDts(),r=new Uint8Array(t.length+1);r.set([130],0),r.set(t,1),this._doDecode(r,Ve,i,!1,0)}handleVideoH264Nalu(e){const t=Kn(e);switch(t){case Ft.sps:this.sps=e;break;case Ft.pps:this.pps=e}if(this.isSendSeqHeader){if(this.sps&&this.pps){const e=Tn({sps:this.sps,pps:this.pps}),t=this.getNaluDts();this._doDecode(e,He,t,!0,0),this.sps=null,this.pps=null}if(xn(t)){this.player._times.demuxStart||(this.player._times.demuxStart=la());const i=Fn(t),r=this.getNaluDts(),s=function(e,t){let i=[];i[0]=t?23:39,i[1]=1,i[2]=0,i[3]=0,i[4]=0,i[5]=e.byteLength>>24&255,i[6]=e.byteLength>>16&255,i[7]=e.byteLength>>8&255,i[8]=255&e.byteLength;const r=new Uint8Array(i.length+e.byteLength);return r.set(i,0),r.set(e,i.length),r}(e,i);this._preDoDecode(s,He,r,i,0)}else this.player.debug.warn(this.TAG_NAME,`handleVideoH264Nalu is avc seq head nalType is ${t}`)}else if(this.sps&&this.pps){this.isSendSeqHeader=!0;const e=Tn({sps:this.sps,pps:this.pps});this._doDecode(e,He,0,!0,0),this.sps=null,this.pps=null}}handleVideoH264NaluList(e,t,i){if(this.isSendSeqHeader){this.player._times.demuxStart||(this.player._times.demuxStart=la());const i=this.getNaluDts(),r=Ln(e.reduce(((e,t)=>{const i=ra(e),r=ra(t),s=new Uint8Array(i.byteLength+r.byteLength);return s.set(i,0),s.set(r,i.byteLength),s})),t);this._preDoDecode(r,He,i,t,0)}else this.player.debug.warn(this.TAG_NAME,"handleVideoH264NaluList isSendSeqHeader is false")}handleVideoH265Nalu(e){const t=Zn(e);switch(t){case Jt:this.vps=e;break;case Nt:this.sps=e;break;case jt:this.pps=e}if(this.isSendSeqHeader){if(this.vps&&this.sps&&this.pps){const e=zn({vps:this.vps,sps:this.sps,pps:this.pps}),t=this.getNaluDts();this._doDecode(e,He,t,!0,0),this.vps=null,this.sps=null,this.pps=null}if(Vn(t)){this.player._times.demuxStart||(this.player._times.demuxStart=la());const i=Hn(t),r=this.getNaluDts(),s=function(e,t){let i=[];i[0]=t?28:44,i[1]=1,i[2]=0,i[3]=0,i[4]=0,i[5]=e.byteLength>>24&255,i[6]=e.byteLength>>16&255,i[7]=e.byteLength>>8&255,i[8]=255&e.byteLength;const r=new Uint8Array(i.length+e.byteLength);return r.set(i,0),r.set(e,i.length),r}(e,i);this._preDoDecode(s,He,r,i,0)}}else if(this.vps&&this.sps&&this.pps){this.isSendSeqHeader=!0;const e=zn({vps:this.vps,sps:this.sps,pps:this.pps});this._doDecode(e,He,0,!0,0),this.vps=null,this.sps=null,this.pps=null}}handleVideoH265NaluList(e,t,i){if(this.isSendSeqHeader){this.player._times.demuxStart||(this.player._times.demuxStart=la());const i=this.getNaluDts(),r=Wn(e.reduce(((e,t)=>{const i=ra(e),r=ra(t),s=new Uint8Array(i.byteLength+r.byteLength);return s.set(i,0),s.set(r,i.byteLength),s})),t);this._preDoDecode(r,He,i,t,0)}else this.player.debug.warn(this.TAG_NAME,"handleVideoH265NaluList isSendSeqHeader is false")}_preDoDecode(e,t,i,r,s){this.player.updateStats({vbps:e.byteLength,dts:i}),r&&this.calcIframeIntervalTimestamp(i),this._doDecode(e,He,i,r,s)}getInputByteLength(){let e=0;return this.lastBuf&&(e=this.lastBuf.byteLength),e}}class Jh extends Rh{constructor(e){super(e),this.player=e,e.debug.log("EmptyDemux","init")}destroy(){super.destroy(),this.player.debug.log("EmptyDemux","destroy")}}var Yh=xs((function(e,t){var r,s,a,o=(r=new Date,s=4,a={setLogLevel:function(e){s=e==this.debug?1:e==this.info?2:e==this.warn?3:(this.error,4)},debug:function(e,t){void 0===console.debug&&(console.debug=console.log),1>=s&&console.debug("["+o.getDurationString(new Date-r,1e3)+"]","["+e+"]",t)},log:function(e,t){this.debug(e.msg)},info:function(e,t){2>=s&&console.info("["+o.getDurationString(new Date-r,1e3)+"]","["+e+"]",t)},warn:function(e,t){3>=s&&console.warn("["+o.getDurationString(new Date-r,1e3)+"]","["+e+"]",t)},error:function(e,t){4>=s&&console.error("["+o.getDurationString(new Date-r,1e3)+"]","["+e+"]",t)}},a);o.getDurationString=function(e,t){var i;function r(e,t){for(var i=(""+e).split(".");i[0].length<t;)i[0]="0"+i[0];return i.join(".")}e<0?(i=!0,e=-e):i=!1;var s=e/(t||1),a=Math.floor(s/3600);s-=3600*a;var o=Math.floor(s/60),n=1e3*(s-=60*o);return n-=1e3*(s=Math.floor(s)),n=Math.floor(n),(i?"-":"")+a+":"+r(o,2)+":"+r(s,2)+"."+r(n,3)},o.printRanges=function(e){var t=e.length;if(t>0){for(var i="",r=0;r<t;r++)r>0&&(i+=","),i+="["+o.getDurationString(e.start(r))+","+o.getDurationString(e.end(r))+"]";return i}return"(empty)"},t.Log=o;var n=function(e){if(!(e instanceof ArrayBuffer))throw"Needs an array buffer";this.buffer=e,this.dataview=new DataView(e),this.position=0};n.prototype.getPosition=function(){return this.position},n.prototype.getEndPosition=function(){return this.buffer.byteLength},n.prototype.getLength=function(){return this.buffer.byteLength},n.prototype.seek=function(e){var t=Math.max(0,Math.min(this.buffer.byteLength,e));return this.position=isNaN(t)||!isFinite(t)?0:t,!0},n.prototype.isEos=function(){return this.getPosition()>=this.getEndPosition()},n.prototype.readAnyInt=function(e,t){var i=0;if(this.position+e<=this.buffer.byteLength){switch(e){case 1:i=t?this.dataview.getInt8(this.position):this.dataview.getUint8(this.position);break;case 2:i=t?this.dataview.getInt16(this.position):this.dataview.getUint16(this.position);break;case 3:if(t)throw"No method for reading signed 24 bits values";i=this.dataview.getUint8(this.position)<<16,i|=this.dataview.getUint8(this.position+1)<<8,i|=this.dataview.getUint8(this.position+2);break;case 4:i=t?this.dataview.getInt32(this.position):this.dataview.getUint32(this.position);break;case 8:if(t)throw"No method for reading signed 64 bits values";i=this.dataview.getUint32(this.position)<<32,i|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+e}return this.position+=e,i}throw"Not enough bytes in buffer"},n.prototype.readUint8=function(){return this.readAnyInt(1,!1)},n.prototype.readUint16=function(){return this.readAnyInt(2,!1)},n.prototype.readUint24=function(){return this.readAnyInt(3,!1)},n.prototype.readUint32=function(){return this.readAnyInt(4,!1)},n.prototype.readUint64=function(){return this.readAnyInt(8,!1)},n.prototype.readString=function(e){if(this.position+e<=this.buffer.byteLength){for(var t="",i=0;i<e;i++)t+=String.fromCharCode(this.readUint8());return t}throw"Not enough bytes in buffer"},n.prototype.readCString=function(){for(var e=[];;){var t=this.readUint8();if(0===t)break;e.push(t)}return String.fromCharCode.apply(null,e)},n.prototype.readInt8=function(){return this.readAnyInt(1,!0)},n.prototype.readInt16=function(){return this.readAnyInt(2,!0)},n.prototype.readInt32=function(){return this.readAnyInt(4,!0)},n.prototype.readInt64=function(){return this.readAnyInt(8,!1)},n.prototype.readUint8Array=function(e){for(var t=new Uint8Array(e),i=0;i<e;i++)t[i]=this.readUint8();return t},n.prototype.readInt16Array=function(e){for(var t=new Int16Array(e),i=0;i<e;i++)t[i]=this.readInt16();return t},n.prototype.readUint16Array=function(e){for(var t=new Int16Array(e),i=0;i<e;i++)t[i]=this.readUint16();return t},n.prototype.readUint32Array=function(e){for(var t=new Uint32Array(e),i=0;i<e;i++)t[i]=this.readUint32();return t},n.prototype.readInt32Array=function(e){for(var t=new Int32Array(e),i=0;i<e;i++)t[i]=this.readInt32();return t},t.MP4BoxStream=n;var l=function(e,t,i){this._byteOffset=t||0,e instanceof ArrayBuffer?this.buffer=e:"object"==typeof e?(this.dataView=e,t&&(this._byteOffset+=t)):this.buffer=new ArrayBuffer(e||0),this.position=0,this.endianness=null==i?l.LITTLE_ENDIAN:i};l.prototype={},l.prototype.getPosition=function(){return this.position},l.prototype._realloc=function(e){if(this._dynamicSize){var t=this._byteOffset+this.position+e,i=this._buffer.byteLength;if(t<=i)t>this._byteLength&&(this._byteLength=t);else{for(i<1&&(i=1);t>i;)i*=2;var r=new ArrayBuffer(i),s=new Uint8Array(this._buffer);new Uint8Array(r,0,s.length).set(s),this.buffer=r,this._byteLength=t}}},l.prototype._trimAlloc=function(){if(this._byteLength!=this._buffer.byteLength){var e=new ArrayBuffer(this._byteLength),t=new Uint8Array(e),i=new Uint8Array(this._buffer,0,t.length);t.set(i),this.buffer=e}},l.BIG_ENDIAN=!1,l.LITTLE_ENDIAN=!0,l.prototype._byteLength=0,Object.defineProperty(l.prototype,"byteLength",{get:function(){return this._byteLength-this._byteOffset}}),Object.defineProperty(l.prototype,"buffer",{get:function(){return this._trimAlloc(),this._buffer},set:function(e){this._buffer=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(l.prototype,"byteOffset",{get:function(){return this._byteOffset},set:function(e){this._byteOffset=e,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._buffer.byteLength}}),Object.defineProperty(l.prototype,"dataView",{get:function(){return this._dataView},set:function(e){this._byteOffset=e.byteOffset,this._buffer=e.buffer,this._dataView=new DataView(this._buffer,this._byteOffset),this._byteLength=this._byteOffset+e.byteLength}}),l.prototype.seek=function(e){var t=Math.max(0,Math.min(this.byteLength,e));this.position=isNaN(t)||!isFinite(t)?0:t},l.prototype.isEof=function(){return this.position>=this._byteLength},l.prototype.mapUint8Array=function(e){this._realloc(1*e);var t=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=1*e,t},l.prototype.readInt32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var i=new Int32Array(e);return l.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),l.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},l.prototype.readInt16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var i=new Int16Array(e);return l.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),l.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},l.prototype.readInt8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Int8Array(e);return l.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},l.prototype.readUint32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var i=new Uint32Array(e);return l.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),l.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},l.prototype.readUint16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var i=new Uint16Array(e);return l.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),l.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},l.prototype.readUint8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Uint8Array(e);return l.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},l.prototype.readFloat64Array=function(e,t){e=null==e?this.byteLength-this.position/8:e;var i=new Float64Array(e);return l.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),l.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},l.prototype.readFloat32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var i=new Float32Array(e);return l.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),l.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},l.prototype.readInt32=function(e){var t=this._dataView.getInt32(this.position,null==e?this.endianness:e);return this.position+=4,t},l.prototype.readInt16=function(e){var t=this._dataView.getInt16(this.position,null==e?this.endianness:e);return this.position+=2,t},l.prototype.readInt8=function(){var e=this._dataView.getInt8(this.position);return this.position+=1,e},l.prototype.readUint32=function(e){var t=this._dataView.getUint32(this.position,null==e?this.endianness:e);return this.position+=4,t},l.prototype.readUint16=function(e){var t=this._dataView.getUint16(this.position,null==e?this.endianness:e);return this.position+=2,t},l.prototype.readUint8=function(){var e=this._dataView.getUint8(this.position);return this.position+=1,e},l.prototype.readFloat32=function(e){var t=this._dataView.getFloat32(this.position,null==e?this.endianness:e);return this.position+=4,t},l.prototype.readFloat64=function(e){var t=this._dataView.getFloat64(this.position,null==e?this.endianness:e);return this.position+=8,t},l.endianness=new Int8Array(new Int16Array([1]).buffer)[0]>0,l.memcpy=function(e,t,i,r,s){var a=new Uint8Array(e,t,s),o=new Uint8Array(i,r,s);a.set(o)},l.arrayToNative=function(e,t){return t==this.endianness?e:this.flipArrayEndianness(e)},l.nativeToEndian=function(e,t){return this.endianness==t?e:this.flipArrayEndianness(e)},l.flipArrayEndianness=function(e){for(var t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),i=0;i<e.byteLength;i+=e.BYTES_PER_ELEMENT)for(var r=i+e.BYTES_PER_ELEMENT-1,s=i;r>s;r--,s++){var a=t[s];t[s]=t[r],t[r]=a}return e},l.prototype.failurePosition=0,String.fromCharCodeUint8=function(e){for(var t=[],i=0;i<e.length;i++)t[i]=e[i];return String.fromCharCode.apply(null,t)},l.prototype.readString=function(e,t){return null==t||"ASCII"==t?String.fromCharCodeUint8.apply(null,[this.mapUint8Array(null==e?this.byteLength-this.position:e)]):new TextDecoder(t).decode(this.mapUint8Array(e))},l.prototype.readCString=function(e){var t=this.byteLength-this.position,i=new Uint8Array(this._buffer,this._byteOffset+this.position),r=t;null!=e&&(r=Math.min(e,t));for(var s=0;s<r&&0!==i[s];s++);var a=String.fromCharCodeUint8.apply(null,[this.mapUint8Array(s)]);return null!=e?this.position+=r-s:s!=t&&(this.position+=1),a};var h=Math.pow(2,32);l.prototype.readInt64=function(){return this.readInt32()*h+this.readUint32()},l.prototype.readUint64=function(){return this.readUint32()*h+this.readUint32()},l.prototype.readInt64=function(){return this.readUint32()*h+this.readUint32()},l.prototype.readUint24=function(){return(this.readUint8()<<16)+(this.readUint8()<<8)+this.readUint8()},t.DataStream=l,l.prototype.save=function(e){var t=new Blob([this.buffer]);if(!window.URL||!URL.createObjectURL)throw"DataStream.save: Can't create object URL.";var i=window.URL.createObjectURL(t),r=document.createElement("a");document.body.appendChild(r),r.setAttribute("href",i),r.setAttribute("download",e),r.setAttribute("target","_self"),r.click(),window.URL.revokeObjectURL(i)},l.prototype._dynamicSize=!0,Object.defineProperty(l.prototype,"dynamicSize",{get:function(){return this._dynamicSize},set:function(e){e||this._trimAlloc(),this._dynamicSize=e}}),l.prototype.shift=function(e){var t=new ArrayBuffer(this._byteLength-e),i=new Uint8Array(t),r=new Uint8Array(this._buffer,e,i.length);i.set(r),this.buffer=t,this.position-=e},l.prototype.writeInt32Array=function(e,t){if(this._realloc(4*e.length),e instanceof Int32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)l.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt32Array(e.length,t);else for(var i=0;i<e.length;i++)this.writeInt32(e[i],t)},l.prototype.writeInt16Array=function(e,t){if(this._realloc(2*e.length),e instanceof Int16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)l.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt16Array(e.length,t);else for(var i=0;i<e.length;i++)this.writeInt16(e[i],t)},l.prototype.writeInt8Array=function(e){if(this._realloc(1*e.length),e instanceof Int8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)l.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapInt8Array(e.length);else for(var t=0;t<e.length;t++)this.writeInt8(e[t])},l.prototype.writeUint32Array=function(e,t){if(this._realloc(4*e.length),e instanceof Uint32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)l.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint32Array(e.length,t);else for(var i=0;i<e.length;i++)this.writeUint32(e[i],t)},l.prototype.writeUint16Array=function(e,t){if(this._realloc(2*e.length),e instanceof Uint16Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)l.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint16Array(e.length,t);else for(var i=0;i<e.length;i++)this.writeUint16(e[i],t)},l.prototype.writeUint8Array=function(e){if(this._realloc(1*e.length),e instanceof Uint8Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)l.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapUint8Array(e.length);else for(var t=0;t<e.length;t++)this.writeUint8(e[t])},l.prototype.writeFloat64Array=function(e,t){if(this._realloc(8*e.length),e instanceof Float64Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)l.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat64Array(e.length,t);else for(var i=0;i<e.length;i++)this.writeFloat64(e[i],t)},l.prototype.writeFloat32Array=function(e,t){if(this._realloc(4*e.length),e instanceof Float32Array&&this.byteOffset+this.position%e.BYTES_PER_ELEMENT===0)l.memcpy(this._buffer,this.byteOffset+this.position,e.buffer,0,e.byteLength),this.mapFloat32Array(e.length,t);else for(var i=0;i<e.length;i++)this.writeFloat32(e[i],t)},l.prototype.writeInt32=function(e,t){this._realloc(4),this._dataView.setInt32(this.position,e,null==t?this.endianness:t),this.position+=4},l.prototype.writeInt16=function(e,t){this._realloc(2),this._dataView.setInt16(this.position,e,null==t?this.endianness:t),this.position+=2},l.prototype.writeInt8=function(e){this._realloc(1),this._dataView.setInt8(this.position,e),this.position+=1},l.prototype.writeUint32=function(e,t){this._realloc(4),this._dataView.setUint32(this.position,e,null==t?this.endianness:t),this.position+=4},l.prototype.writeUint16=function(e,t){this._realloc(2),this._dataView.setUint16(this.position,e,null==t?this.endianness:t),this.position+=2},l.prototype.writeUint8=function(e){this._realloc(1),this._dataView.setUint8(this.position,e),this.position+=1},l.prototype.writeFloat32=function(e,t){this._realloc(4),this._dataView.setFloat32(this.position,e,null==t?this.endianness:t),this.position+=4},l.prototype.writeFloat64=function(e,t){this._realloc(8),this._dataView.setFloat64(this.position,e,null==t?this.endianness:t),this.position+=8},l.prototype.writeUCS2String=function(e,t,i){null==i&&(i=e.length);for(var r=0;r<e.length&&r<i;r++)this.writeUint16(e.charCodeAt(r),t);for(;r<i;r++)this.writeUint16(0)},l.prototype.writeString=function(e,t,i){var r=0;if(null==t||"ASCII"==t)if(null!=i){var s=Math.min(e.length,i);for(r=0;r<s;r++)this.writeUint8(e.charCodeAt(r));for(;r<i;r++)this.writeUint8(0)}else for(r=0;r<e.length;r++)this.writeUint8(e.charCodeAt(r));else this.writeUint8Array(new TextEncoder(t).encode(e.substring(0,i)))},l.prototype.writeCString=function(e,t){var i=0;if(null!=t){var r=Math.min(e.length,t);for(i=0;i<r;i++)this.writeUint8(e.charCodeAt(i));for(;i<t;i++)this.writeUint8(0)}else{for(i=0;i<e.length;i++)this.writeUint8(e.charCodeAt(i));this.writeUint8(0)}},l.prototype.writeStruct=function(e,t){for(var i=0;i<e.length;i+=2){var r=e[i+1];this.writeType(r,t[e[i]],t)}},l.prototype.writeType=function(e,t,i){var r;if("function"==typeof e)return e(this,t);if("object"==typeof e&&!(e instanceof Array))return e.set(this,t,i);var s=null,a="ASCII",o=this.position;switch("string"==typeof e&&/:/.test(e)&&(r=e.split(":"),e=r[0],s=parseInt(r[1])),"string"==typeof e&&/,/.test(e)&&(r=e.split(","),e=r[0],a=parseInt(r[1])),e){case"uint8":this.writeUint8(t);break;case"int8":this.writeInt8(t);break;case"uint16":this.writeUint16(t,this.endianness);break;case"int16":this.writeInt16(t,this.endianness);break;case"uint32":this.writeUint32(t,this.endianness);break;case"int32":this.writeInt32(t,this.endianness);break;case"float32":this.writeFloat32(t,this.endianness);break;case"float64":this.writeFloat64(t,this.endianness);break;case"uint16be":this.writeUint16(t,l.BIG_ENDIAN);break;case"int16be":this.writeInt16(t,l.BIG_ENDIAN);break;case"uint32be":this.writeUint32(t,l.BIG_ENDIAN);break;case"int32be":this.writeInt32(t,l.BIG_ENDIAN);break;case"float32be":this.writeFloat32(t,l.BIG_ENDIAN);break;case"float64be":this.writeFloat64(t,l.BIG_ENDIAN);break;case"uint16le":this.writeUint16(t,l.LITTLE_ENDIAN);break;case"int16le":this.writeInt16(t,l.LITTLE_ENDIAN);break;case"uint32le":this.writeUint32(t,l.LITTLE_ENDIAN);break;case"int32le":this.writeInt32(t,l.LITTLE_ENDIAN);break;case"float32le":this.writeFloat32(t,l.LITTLE_ENDIAN);break;case"float64le":this.writeFloat64(t,l.LITTLE_ENDIAN);break;case"cstring":this.writeCString(t,s);break;case"string":this.writeString(t,a,s);break;case"u16string":this.writeUCS2String(t,this.endianness,s);break;case"u16stringle":this.writeUCS2String(t,l.LITTLE_ENDIAN,s);break;case"u16stringbe":this.writeUCS2String(t,l.BIG_ENDIAN,s);break;default:if(3==e.length){for(var n=e[1],h=0;h<t.length;h++)this.writeType(n,t[h]);break}this.writeStruct(e,t)}null!=s&&(this.position=o,this._realloc(s),this.position=o+s)},l.prototype.writeUint64=function(e){var t=Math.floor(e/h);this.writeUint32(t),this.writeUint32(4294967295&e)},l.prototype.writeUint24=function(e){this.writeUint8((16711680&e)>>16),this.writeUint8((65280&e)>>8),this.writeUint8(255&e)},l.prototype.adjustUint32=function(e,t){var i=this.position;this.seek(e),this.writeUint32(t),this.seek(i)},l.prototype.mapInt32Array=function(e,t){this._realloc(4*e);var i=new Int32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(i,null==t?this.endianness:t),this.position+=4*e,i},l.prototype.mapInt16Array=function(e,t){this._realloc(2*e);var i=new Int16Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(i,null==t?this.endianness:t),this.position+=2*e,i},l.prototype.mapInt8Array=function(e){this._realloc(1*e);var t=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=1*e,t},l.prototype.mapUint32Array=function(e,t){this._realloc(4*e);var i=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(i,null==t?this.endianness:t),this.position+=4*e,i},l.prototype.mapUint16Array=function(e,t){this._realloc(2*e);var i=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(i,null==t?this.endianness:t),this.position+=2*e,i},l.prototype.mapFloat64Array=function(e,t){this._realloc(8*e);var i=new Float64Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(i,null==t?this.endianness:t),this.position+=8*e,i},l.prototype.mapFloat32Array=function(e,t){this._realloc(4*e);var i=new Float32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(i,null==t?this.endianness:t),this.position+=4*e,i};var A=function(e){this.buffers=[],this.bufferIndex=-1,e&&(this.insertBuffer(e),this.bufferIndex=0)};(A.prototype=new l(new ArrayBuffer,0,l.BIG_ENDIAN)).initialized=function(){var e;return this.bufferIndex>-1||(this.buffers.length>0?0===(e=this.buffers[0]).fileStart?(this.buffer=e,this.bufferIndex=0,o.debug("MultiBufferStream","Stream ready for parsing"),!0):(o.warn("MultiBufferStream","The first buffer should have a fileStart of 0"),this.logBufferLevel(),!1):(o.warn("MultiBufferStream","No buffer to start parsing from"),this.logBufferLevel(),!1))},ArrayBuffer.concat=function(e,t){o.debug("ArrayBuffer","Trying to create a new buffer of size: "+(e.byteLength+t.byteLength));var i=new Uint8Array(e.byteLength+t.byteLength);return i.set(new Uint8Array(e),0),i.set(new Uint8Array(t),e.byteLength),i.buffer},A.prototype.reduceBuffer=function(e,t,i){var r;return(r=new Uint8Array(i)).set(new Uint8Array(e,t,i)),r.buffer.fileStart=e.fileStart+t,r.buffer.usedBytes=0,r.buffer},A.prototype.insertBuffer=function(e){for(var t=!0,i=0;i<this.buffers.length;i++){var r=this.buffers[i];if(e.fileStart<=r.fileStart){if(e.fileStart===r.fileStart){if(e.byteLength>r.byteLength){this.buffers.splice(i,1),i--;continue}o.warn("MultiBufferStream","Buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+") already appended, ignoring")}else e.fileStart+e.byteLength<=r.fileStart||(e=this.reduceBuffer(e,0,r.fileStart-e.fileStart)),o.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.splice(i,0,e),0===i&&(this.buffer=e);t=!1;break}if(e.fileStart<r.fileStart+r.byteLength){var s=r.fileStart+r.byteLength-e.fileStart,a=e.byteLength-s;if(!(a>0)){t=!1;break}e=this.reduceBuffer(e,s,a)}}t&&(o.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.push(e),0===i&&(this.buffer=e))},A.prototype.logBufferLevel=function(e){var t,i,r,s,a,n=[],l="";for(r=0,s=0,t=0;t<this.buffers.length;t++)i=this.buffers[t],0===t?(a={},n.push(a),a.start=i.fileStart,a.end=i.fileStart+i.byteLength,l+="["+a.start+"-"):a.end===i.fileStart?a.end=i.fileStart+i.byteLength:((a={}).start=i.fileStart,l+=n[n.length-1].end-1+"], ["+a.start+"-",a.end=i.fileStart+i.byteLength,n.push(a)),r+=i.usedBytes,s+=i.byteLength;n.length>0&&(l+=a.end-1+"]");var h=e?o.info:o.debug;0===this.buffers.length?h("MultiBufferStream","No more buffer in memory"):h("MultiBufferStream",this.buffers.length+" stored buffer(s) ("+r+"/"+s+" bytes), continuous ranges: "+l)},A.prototype.cleanBuffers=function(){var e,t;for(e=0;e<this.buffers.length;e++)(t=this.buffers[e]).usedBytes===t.byteLength&&(o.debug("MultiBufferStream","Removing buffer #"+e),this.buffers.splice(e,1),e--)},A.prototype.mergeNextBuffer=function(){var e;if(this.bufferIndex+1<this.buffers.length){if((e=this.buffers[this.bufferIndex+1]).fileStart===this.buffer.fileStart+this.buffer.byteLength){var t=this.buffer.byteLength,i=this.buffer.usedBytes,r=this.buffer.fileStart;return this.buffers[this.bufferIndex]=ArrayBuffer.concat(this.buffer,e),this.buffer=this.buffers[this.bufferIndex],this.buffers.splice(this.bufferIndex+1,1),this.buffer.usedBytes=i,this.buffer.fileStart=r,o.debug("ISOFile","Concatenating buffer for box parsing (length: "+t+"->"+this.buffer.byteLength+")"),!0}return!1}return!1},A.prototype.findPosition=function(e,t,i){var r,s=null,a=-1;for(r=!0===e?0:this.bufferIndex;r<this.buffers.length&&(s=this.buffers[r]).fileStart<=t;)a=r,i&&(s.fileStart+s.byteLength<=t?s.usedBytes=s.byteLength:s.usedBytes=t-s.fileStart,this.logBufferLevel()),r++;return-1!==a&&(s=this.buffers[a]).fileStart+s.byteLength>=t?(o.debug("MultiBufferStream","Found position in existing buffer #"+a),a):-1},A.prototype.findEndContiguousBuf=function(e){var t,i,r,s=void 0!==e?e:this.bufferIndex;if(i=this.buffers[s],this.buffers.length>s+1)for(t=s+1;t<this.buffers.length&&(r=this.buffers[t]).fileStart===i.fileStart+i.byteLength;t++)i=r;return i.fileStart+i.byteLength},A.prototype.getEndFilePositionAfter=function(e){var t=this.findPosition(!0,e,!1);return-1!==t?this.findEndContiguousBuf(t):e},A.prototype.addUsedBytes=function(e){this.buffer.usedBytes+=e,this.logBufferLevel()},A.prototype.setAllUsedBytes=function(){this.buffer.usedBytes=this.buffer.byteLength,this.logBufferLevel()},A.prototype.seek=function(e,t,i){var r;return-1!==(r=this.findPosition(t,e,i))?(this.buffer=this.buffers[r],this.bufferIndex=r,this.position=e-this.buffer.fileStart,o.debug("MultiBufferStream","Repositioning parser at buffer position: "+this.position),!0):(o.debug("MultiBufferStream","Position "+e+" not found in buffered data"),!1)},A.prototype.getPosition=function(){if(-1===this.bufferIndex||null===this.buffers[this.bufferIndex])throw"Error accessing position in the MultiBufferStream";return this.buffers[this.bufferIndex].fileStart+this.position},A.prototype.getLength=function(){return this.byteLength},A.prototype.getEndPosition=function(){if(-1===this.bufferIndex||null===this.buffers[this.bufferIndex])throw"Error accessing position in the MultiBufferStream";return this.buffers[this.bufferIndex].fileStart+this.byteLength},t.MultiBufferStream=A;var d=function(){var e=[];e[3]="ES_Descriptor",e[4]="DecoderConfigDescriptor",e[5]="DecoderSpecificInfo",e[6]="SLConfigDescriptor",this.getDescriptorName=function(t){return e[t]};var t=this,i={};return this.parseOneDescriptor=function(t){var r,s,a,n=0;for(r=t.readUint8(),a=t.readUint8();128&a;)n=(127&a)<<7,a=t.readUint8();return n+=127&a,o.debug("MPEG4DescriptorParser","Found "+(e[r]||"Descriptor "+r)+", size "+n+" at position "+t.getPosition()),(s=e[r]?new i[e[r]](n):new i.Descriptor(n)).parse(t),s},i.Descriptor=function(e,t){this.tag=e,this.size=t,this.descs=[]},i.Descriptor.prototype.parse=function(e){this.data=e.readUint8Array(this.size)},i.Descriptor.prototype.findDescriptor=function(e){for(var t=0;t<this.descs.length;t++)if(this.descs[t].tag==e)return this.descs[t];return null},i.Descriptor.prototype.parseRemainingDescriptors=function(e){for(var i=e.position;e.position<i+this.size;){var r=t.parseOneDescriptor(e);this.descs.push(r)}},i.ES_Descriptor=function(e){i.Descriptor.call(this,3,e)},i.ES_Descriptor.prototype=new i.Descriptor,i.ES_Descriptor.prototype.parse=function(e){if(this.ES_ID=e.readUint16(),this.flags=e.readUint8(),this.size-=3,128&this.flags?(this.dependsOn_ES_ID=e.readUint16(),this.size-=2):this.dependsOn_ES_ID=0,64&this.flags){var t=e.readUint8();this.URL=e.readString(t),this.size-=t+1}else this.URL="";32&this.flags?(this.OCR_ES_ID=e.readUint16(),this.size-=2):this.OCR_ES_ID=0,this.parseRemainingDescriptors(e)},i.ES_Descriptor.prototype.getOTI=function(e){var t=this.findDescriptor(4);return t?t.oti:0},i.ES_Descriptor.prototype.getAudioConfig=function(e){var t=this.findDescriptor(4);if(!t)return null;var i=t.findDescriptor(5);if(i&&i.data){var r=(248&i.data[0])>>3;return 31===r&&i.data.length>=2&&(r=32+((7&i.data[0])<<3)+((224&i.data[1])>>5)),r}return null},i.DecoderConfigDescriptor=function(e){i.Descriptor.call(this,4,e)},i.DecoderConfigDescriptor.prototype=new i.Descriptor,i.DecoderConfigDescriptor.prototype.parse=function(e){this.oti=e.readUint8(),this.streamType=e.readUint8(),this.upStream=0!=(this.streamType>>1&1),this.streamType=this.streamType>>>2,this.bufferSize=e.readUint24(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32(),this.size-=13,this.parseRemainingDescriptors(e)},i.DecoderSpecificInfo=function(e){i.Descriptor.call(this,5,e)},i.DecoderSpecificInfo.prototype=new i.Descriptor,i.SLConfigDescriptor=function(e){i.Descriptor.call(this,6,e)},i.SLConfigDescriptor.prototype=new i.Descriptor,this};t.MPEG4DescriptorParser=d;var c={ERR_INVALID_DATA:-1,ERR_NOT_ENOUGH_DATA:0,OK:1,BASIC_BOXES:["mdat","idat","free","skip","meco","strk"],FULL_BOXES:["hmhd","nmhd","iods","xml ","bxml","ipro","mere"],CONTAINER_BOXES:[["moov",["trak","pssh"]],["trak"],["edts"],["mdia"],["minf"],["dinf"],["stbl",["sgpd","sbgp"]],["mvex",["trex"]],["moof",["traf"]],["traf",["trun","sgpd","sbgp"]],["vttc"],["tref"],["iref"],["mfra",["tfra"]],["meco"],["hnti"],["hinf"],["strk"],["strd"],["sinf"],["rinf"],["schi"],["trgr"],["udta",["kind"]],["iprp",["ipma"]],["ipco"],["grpl"],["j2kH"],["etyp",["tyco"]]],boxCodes:[],fullBoxCodes:[],containerBoxCodes:[],sampleEntryCodes:{},sampleGroupEntryCodes:[],trackGroupTypes:[],UUIDBoxes:{},UUIDs:[],initialize:function(){c.FullBox.prototype=new c.Box,c.ContainerBox.prototype=new c.Box,c.SampleEntry.prototype=new c.Box,c.TrackGroupTypeBox.prototype=new c.FullBox,c.BASIC_BOXES.forEach((function(e){c.createBoxCtor(e)})),c.FULL_BOXES.forEach((function(e){c.createFullBoxCtor(e)})),c.CONTAINER_BOXES.forEach((function(e){c.createContainerBoxCtor(e[0],null,e[1])}))},Box:function(e,t,i){this.type=e,this.size=t,this.uuid=i},FullBox:function(e,t,i){c.Box.call(this,e,t,i),this.flags=0,this.version=0},ContainerBox:function(e,t,i){c.Box.call(this,e,t,i),this.boxes=[]},SampleEntry:function(e,t,i,r){c.ContainerBox.call(this,e,t),this.hdr_size=i,this.start=r},SampleGroupEntry:function(e){this.grouping_type=e},TrackGroupTypeBox:function(e,t){c.FullBox.call(this,e,t)},createBoxCtor:function(e,t){c.boxCodes.push(e),c[e+"Box"]=function(t){c.Box.call(this,e,t)},c[e+"Box"].prototype=new c.Box,t&&(c[e+"Box"].prototype.parse=t)},createFullBoxCtor:function(e,t){c[e+"Box"]=function(t){c.FullBox.call(this,e,t)},c[e+"Box"].prototype=new c.FullBox,c[e+"Box"].prototype.parse=function(e){this.parseFullHeader(e),t&&t.call(this,e)}},addSubBoxArrays:function(e){if(e){this.subBoxNames=e;for(var t=e.length,i=0;i<t;i++)this[e[i]+"s"]=[]}},createContainerBoxCtor:function(e,t,i){c[e+"Box"]=function(t){c.ContainerBox.call(this,e,t),c.addSubBoxArrays.call(this,i)},c[e+"Box"].prototype=new c.ContainerBox,t&&(c[e+"Box"].prototype.parse=t)},createMediaSampleEntryCtor:function(e,t,i){c.sampleEntryCodes[e]=[],c[e+"SampleEntry"]=function(e,t){c.SampleEntry.call(this,e,t),c.addSubBoxArrays.call(this,i)},c[e+"SampleEntry"].prototype=new c.SampleEntry,t&&(c[e+"SampleEntry"].prototype.parse=t)},createSampleEntryCtor:function(e,t,i,r){c.sampleEntryCodes[e].push(t),c[t+"SampleEntry"]=function(i){c[e+"SampleEntry"].call(this,t,i),c.addSubBoxArrays.call(this,r)},c[t+"SampleEntry"].prototype=new c[e+"SampleEntry"],i&&(c[t+"SampleEntry"].prototype.parse=i)},createEncryptedSampleEntryCtor:function(e,t,i){c.createSampleEntryCtor.call(this,e,t,i,["sinf"])},createSampleGroupCtor:function(e,t){c[e+"SampleGroupEntry"]=function(t){c.SampleGroupEntry.call(this,e,t)},c[e+"SampleGroupEntry"].prototype=new c.SampleGroupEntry,t&&(c[e+"SampleGroupEntry"].prototype.parse=t)},createTrackGroupCtor:function(e,t){c[e+"TrackGroupTypeBox"]=function(t){c.TrackGroupTypeBox.call(this,e,t)},c[e+"TrackGroupTypeBox"].prototype=new c.TrackGroupTypeBox,t&&(c[e+"TrackGroupTypeBox"].prototype.parse=t)},createUUIDBox:function(e,t,i,r){c.UUIDs.push(e),c.UUIDBoxes[e]=function(r){t?c.FullBox.call(this,"uuid",r,e):i?c.ContainerBox.call(this,"uuid",r,e):c.Box.call(this,"uuid",r,e)},c.UUIDBoxes[e].prototype=t?new c.FullBox:i?new c.ContainerBox:new c.Box,r&&(c.UUIDBoxes[e].prototype.parse=t?function(e){this.parseFullHeader(e),r&&r.call(this,e)}:r)}};function u(e,t){this.x=e,this.y=t}function p(e,t){this.bad_pixel_row=e,this.bad_pixel_column=t}c.initialize(),c.TKHD_FLAG_ENABLED=1,c.TKHD_FLAG_IN_MOVIE=2,c.TKHD_FLAG_IN_PREVIEW=4,c.TFHD_FLAG_BASE_DATA_OFFSET=1,c.TFHD_FLAG_SAMPLE_DESC=2,c.TFHD_FLAG_SAMPLE_DUR=8,c.TFHD_FLAG_SAMPLE_SIZE=16,c.TFHD_FLAG_SAMPLE_FLAGS=32,c.TFHD_FLAG_DUR_EMPTY=65536,c.TFHD_FLAG_DEFAULT_BASE_IS_MOOF=131072,c.TRUN_FLAGS_DATA_OFFSET=1,c.TRUN_FLAGS_FIRST_FLAG=4,c.TRUN_FLAGS_DURATION=256,c.TRUN_FLAGS_SIZE=512,c.TRUN_FLAGS_FLAGS=1024,c.TRUN_FLAGS_CTS_OFFSET=2048,c.Box.prototype.add=function(e){return this.addBox(new c[e+"Box"])},c.Box.prototype.addBox=function(e){return this.boxes.push(e),this[e.type+"s"]?this[e.type+"s"].push(e):this[e.type]=e,e},c.Box.prototype.set=function(e,t){return this[e]=t,this},c.Box.prototype.addEntry=function(e,t){var i=t||"entries";return this[i]||(this[i]=[]),this[i].push(e),this},t.BoxParser=c,c.parseUUID=function(e){return c.parseHex16(e)},c.parseHex16=function(e){for(var t="",i=0;i<16;i++){var r=e.readUint8().toString(16);t+=1===r.length?"0"+r:r}return t},c.parseOneBox=function(e,t,i){var r,s,a,n=e.getPosition(),l=0;if(e.getEndPosition()-n<8)return o.debug("BoxParser","Not enough data in stream to parse the type and size of the box"),{code:c.ERR_NOT_ENOUGH_DATA};if(i&&i<8)return o.debug("BoxParser","Not enough bytes left in the parent box to parse a new box"),{code:c.ERR_NOT_ENOUGH_DATA};var h=e.readUint32(),A=e.readString(4),d=A;if(o.debug("BoxParser","Found box of type '"+A+"' and size "+h+" at position "+n),l=8,"uuid"==A){if(e.getEndPosition()-e.getPosition()<16||i-l<16)return e.seek(n),o.debug("BoxParser","Not enough bytes left in the parent box to parse a UUID box"),{code:c.ERR_NOT_ENOUGH_DATA};l+=16,d=a=c.parseUUID(e)}if(1==h){if(e.getEndPosition()-e.getPosition()<8||i&&i-l<8)return e.seek(n),o.warn("BoxParser",'Not enough data in stream to parse the extended size of the "'+A+'" box'),{code:c.ERR_NOT_ENOUGH_DATA};h=e.readUint64(),l+=8}else if(0===h)if(i)h=i;else if("mdat"!==A)return o.error("BoxParser","Unlimited box size not supported for type: '"+A+"'"),r=new c.Box(A,h),{code:c.OK,box:r,size:r.size};return 0!==h&&h<l?(o.error("BoxParser","Box of type "+A+" has an invalid size "+h+" (too small to be a box)"),{code:c.ERR_NOT_ENOUGH_DATA,type:A,size:h,hdr_size:l,start:n}):0!==h&&i&&h>i?(o.error("BoxParser","Box of type '"+A+"' has a size "+h+" greater than its container size "+i),{code:c.ERR_NOT_ENOUGH_DATA,type:A,size:h,hdr_size:l,start:n}):0!==h&&n+h>e.getEndPosition()?(e.seek(n),o.info("BoxParser","Not enough data in stream to parse the entire '"+A+"' box"),{code:c.ERR_NOT_ENOUGH_DATA,type:A,size:h,hdr_size:l,start:n}):t?{code:c.OK,type:A,size:h,hdr_size:l,start:n}:(c[A+"Box"]?r=new c[A+"Box"](h):"uuid"!==A?(o.warn("BoxParser","Unknown box type: '"+A+"'"),(r=new c.Box(A,h)).has_unparsed_data=!0):c.UUIDBoxes[a]?r=new c.UUIDBoxes[a](h):(o.warn("BoxParser","Unknown uuid type: '"+a+"'"),(r=new c.Box(A,h)).uuid=a,r.has_unparsed_data=!0),r.hdr_size=l,r.start=n,r.write===c.Box.prototype.write&&"mdat"!==r.type&&(o.info("BoxParser","'"+d+"' box writing not yet implemented, keeping unparsed data in memory for later write"),r.parseDataAndRewind(e)),r.parse(e),(s=e.getPosition()-(r.start+r.size))<0?(o.warn("BoxParser","Parsing of box '"+d+"' did not read the entire indicated box data size (missing "+-s+" bytes), seeking forward"),e.seek(r.start+r.size)):s>0&&(o.error("BoxParser","Parsing of box '"+d+"' read "+s+" more bytes than the indicated box data size, seeking backwards"),0!==r.size&&e.seek(r.start+r.size)),{code:c.OK,box:r,size:r.size})},c.Box.prototype.parse=function(e){"mdat"!=this.type?this.data=e.readUint8Array(this.size-this.hdr_size):0===this.size?e.seek(e.getEndPosition()):e.seek(this.start+this.size)},c.Box.prototype.parseDataAndRewind=function(e){this.data=e.readUint8Array(this.size-this.hdr_size),e.position-=this.size-this.hdr_size},c.FullBox.prototype.parseDataAndRewind=function(e){this.parseFullHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=4,e.position-=this.size-this.hdr_size},c.FullBox.prototype.parseFullHeader=function(e){this.version=e.readUint8(),this.flags=e.readUint24(),this.hdr_size+=4},c.FullBox.prototype.parse=function(e){this.parseFullHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},c.ContainerBox.prototype.parse=function(e){for(var t,i;e.getPosition()<this.start+this.size;){if((t=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start))).code!==c.OK)return;if(i=t.box,this.boxes.push(i),this.subBoxNames&&-1!=this.subBoxNames.indexOf(i.type))this[this.subBoxNames[this.subBoxNames.indexOf(i.type)]+"s"].push(i);else{var r="uuid"!==i.type?i.type:i.uuid;this[r]?o.warn("Box of type "+r+" already stored in field of this type"):this[r]=i}}},c.Box.prototype.parseLanguage=function(e){this.language=e.readUint16();var t=[];t[0]=this.language>>10&31,t[1]=this.language>>5&31,t[2]=31&this.language,this.languageString=String.fromCharCode(t[0]+96,t[1]+96,t[2]+96)},c.SAMPLE_ENTRY_TYPE_VISUAL="Visual",c.SAMPLE_ENTRY_TYPE_AUDIO="Audio",c.SAMPLE_ENTRY_TYPE_HINT="Hint",c.SAMPLE_ENTRY_TYPE_METADATA="Metadata",c.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",c.SAMPLE_ENTRY_TYPE_SYSTEM="System",c.SAMPLE_ENTRY_TYPE_TEXT="Text",c.SampleEntry.prototype.parseHeader=function(e){e.readUint8Array(6),this.data_reference_index=e.readUint16(),this.hdr_size+=8},c.SampleEntry.prototype.parse=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},c.SampleEntry.prototype.parseDataAndRewind=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,e.position-=this.size-this.hdr_size},c.SampleEntry.prototype.parseFooter=function(e){c.ContainerBox.prototype.parse.call(this,e)},c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_HINT),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SYSTEM),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_TEXT),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,(function(e){var t;this.parseHeader(e),e.readUint16(),e.readUint16(),e.readUint32Array(3),this.width=e.readUint16(),this.height=e.readUint16(),this.horizresolution=e.readUint32(),this.vertresolution=e.readUint32(),e.readUint32(),this.frame_count=e.readUint16(),t=Math.min(31,e.readUint8()),this.compressorname=e.readString(t),t<31&&e.readString(31-t),this.depth=e.readUint16(),e.readUint16(),this.parseFooter(e)})),c.createMediaSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,(function(e){this.parseHeader(e),e.readUint32Array(2),this.channel_count=e.readUint16(),this.samplesize=e.readUint16(),e.readUint16(),e.readUint16(),this.samplerate=e.readUint32()/65536,this.parseFooter(e)})),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"dav1"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"hvt1"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"lhe1"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"dvh1"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"dvhe"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"avs3"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"j2ki"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"mjp2"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"mjpg"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"uncv"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,"ac-4"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,"mha1"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,"mha2"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,"mhm1"),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,"mhm2"),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_TEXT,"enct"),c.createEncryptedSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA,"encm"),c.createBoxCtor("a1lx",(function(e){var t=16*(1+(1&(1&e.readUint8())));this.layer_size=[];for(var i=0;i<3;i++)this.layer_size[i]=16==t?e.readUint16():e.readUint32()})),c.createBoxCtor("a1op",(function(e){this.op_index=e.readUint8()})),c.createFullBoxCtor("auxC",(function(e){this.aux_type=e.readCString();var t=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=e.readUint8Array(t)})),c.createBoxCtor("av1C",(function(e){var t=e.readUint8();if(t>>7&!1)o.error("av1C marker problem");else if(this.version=127&t,1===this.version)if(t=e.readUint8(),this.seq_profile=t>>5&7,this.seq_level_idx_0=31&t,t=e.readUint8(),this.seq_tier_0=t>>7&1,this.high_bitdepth=t>>6&1,this.twelve_bit=t>>5&1,this.monochrome=t>>4&1,this.chroma_subsampling_x=t>>3&1,this.chroma_subsampling_y=t>>2&1,this.chroma_sample_position=3&t,t=e.readUint8(),this.reserved_1=t>>5&7,0===this.reserved_1){if(this.initial_presentation_delay_present=t>>4&1,1===this.initial_presentation_delay_present)this.initial_presentation_delay_minus_one=15&t;else if(this.reserved_2=15&t,0!==this.reserved_2)return void o.error("av1C reserved_2 parsing problem");var i=this.size-this.hdr_size-4;this.configOBUs=e.readUint8Array(i)}else o.error("av1C reserved_1 parsing problem");else o.error("av1C version "+this.version+" not supported")})),c.createBoxCtor("avcC",(function(e){var t,i;for(this.configurationVersion=e.readUint8(),this.AVCProfileIndication=e.readUint8(),this.profile_compatibility=e.readUint8(),this.AVCLevelIndication=e.readUint8(),this.lengthSizeMinusOne=3&e.readUint8(),this.nb_SPS_nalus=31&e.readUint8(),i=this.size-this.hdr_size-6,this.SPS=[],t=0;t<this.nb_SPS_nalus;t++)this.SPS[t]={},this.SPS[t].length=e.readUint16(),this.SPS[t].nalu=e.readUint8Array(this.SPS[t].length),i-=2+this.SPS[t].length;for(this.nb_PPS_nalus=e.readUint8(),i--,this.PPS=[],t=0;t<this.nb_PPS_nalus;t++)this.PPS[t]={},this.PPS[t].length=e.readUint16(),this.PPS[t].nalu=e.readUint8Array(this.PPS[t].length),i-=2+this.PPS[t].length;i>0&&(this.ext=e.readUint8Array(i))})),c.createBoxCtor("btrt",(function(e){this.bufferSizeDB=e.readUint32(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32()})),c.createFullBoxCtor("ccst",(function(e){var t=e.readUint8();this.all_ref_pics_intra=128==(128&t),this.intra_pred_used=64==(64&t),this.max_ref_per_pic=(63&t)>>2,e.readUint24()})),c.createBoxCtor("cdef",(function(e){var t;for(this.channel_count=e.readUint16(),this.channel_indexes=[],this.channel_types=[],this.channel_associations=[],t=0;t<this.channel_count;t++)this.channel_indexes.push(e.readUint16()),this.channel_types.push(e.readUint16()),this.channel_associations.push(e.readUint16())})),c.createBoxCtor("clap",(function(e){this.cleanApertureWidthN=e.readUint32(),this.cleanApertureWidthD=e.readUint32(),this.cleanApertureHeightN=e.readUint32(),this.cleanApertureHeightD=e.readUint32(),this.horizOffN=e.readUint32(),this.horizOffD=e.readUint32(),this.vertOffN=e.readUint32(),this.vertOffD=e.readUint32()})),c.createBoxCtor("clli",(function(e){this.max_content_light_level=e.readUint16(),this.max_pic_average_light_level=e.readUint16()})),c.createFullBoxCtor("cmex",(function(e){1&this.flags&&(this.pos_x=e.readInt32()),2&this.flags&&(this.pos_y=e.readInt32()),4&this.flags&&(this.pos_z=e.readInt32()),8&this.flags&&(0==this.version?16&this.flags?(this.quat_x=e.readInt32(),this.quat_y=e.readInt32(),this.quat_z=e.readInt32()):(this.quat_x=e.readInt16(),this.quat_y=e.readInt16(),this.quat_z=e.readInt16()):this.version),32&this.flags&&(this.id=e.readUint32())})),c.createFullBoxCtor("cmin",(function(e){this.focal_length_x=e.readInt32(),this.principal_point_x=e.readInt32(),this.principal_point_y=e.readInt32(),1&this.flags&&(this.focal_length_y=e.readInt32(),this.skew_factor=e.readInt32())})),c.createBoxCtor("cmpd",(function(e){for(this.component_count=e.readUint32(),this.component_types=[],this.component_type_urls=[],i=0;i<this.component_count;i++){var t=e.readUint16();this.component_types.push(t),t>=32768&&this.component_type_urls.push(e.readCString())}})),c.createFullBoxCtor("co64",(function(e){var t,i;if(t=e.readUint32(),this.chunk_offsets=[],0===this.version)for(i=0;i<t;i++)this.chunk_offsets.push(e.readUint64())})),c.createFullBoxCtor("CoLL",(function(e){this.maxCLL=e.readUint16(),this.maxFALL=e.readUint16()})),c.createBoxCtor("colr",(function(e){if(this.colour_type=e.readString(4),"nclx"===this.colour_type){this.colour_primaries=e.readUint16(),this.transfer_characteristics=e.readUint16(),this.matrix_coefficients=e.readUint16();var t=e.readUint8();this.full_range_flag=t>>7}else("rICC"===this.colour_type||"prof"===this.colour_type)&&(this.ICC_profile=e.readUint8Array(this.size-4))})),c.createFullBoxCtor("cprt",(function(e){this.parseLanguage(e),this.notice=e.readCString()})),c.createFullBoxCtor("cslg",(function(e){0===this.version&&(this.compositionToDTSShift=e.readInt32(),this.leastDecodeToDisplayDelta=e.readInt32(),this.greatestDecodeToDisplayDelta=e.readInt32(),this.compositionStartTime=e.readInt32(),this.compositionEndTime=e.readInt32())})),c.createFullBoxCtor("ctts",(function(e){var t,i;if(t=e.readUint32(),this.sample_counts=[],this.sample_offsets=[],0===this.version)for(i=0;i<t;i++){this.sample_counts.push(e.readUint32());var r=e.readInt32();r<0&&o.warn("BoxParser","ctts box uses negative values without using version 1"),this.sample_offsets.push(r)}else if(1==this.version)for(i=0;i<t;i++)this.sample_counts.push(e.readUint32()),this.sample_offsets.push(e.readInt32())})),c.createBoxCtor("dac3",(function(e){var t=e.readUint8(),i=e.readUint8(),r=e.readUint8();this.fscod=t>>6,this.bsid=t>>1&31,this.bsmod=(1&t)<<2|i>>6&3,this.acmod=i>>3&7,this.lfeon=i>>2&1,this.bit_rate_code=3&i|r>>5&7})),c.createBoxCtor("dec3",(function(e){var t=e.readUint16();this.data_rate=t>>3,this.num_ind_sub=7&t,this.ind_subs=[];for(var i=0;i<this.num_ind_sub+1;i++){var r={};this.ind_subs.push(r);var s=e.readUint8(),a=e.readUint8(),o=e.readUint8();r.fscod=s>>6,r.bsid=s>>1&31,r.bsmod=(1&s)<<4|a>>4&15,r.acmod=a>>1&7,r.lfeon=1&a,r.num_dep_sub=o>>1&15,r.num_dep_sub>0&&(r.chan_loc=(1&o)<<8|e.readUint8())}})),c.createFullBoxCtor("dfLa",(function(e){var t=[],i=["STREAMINFO","PADDING","APPLICATION","SEEKTABLE","VORBIS_COMMENT","CUESHEET","PICTURE","RESERVED"];for(this.parseFullHeader(e);;){var r=e.readUint8(),s=Math.min(127&r,i.length-1);if(s?e.readUint8Array(e.readUint24()):(e.readUint8Array(13),this.samplerate=e.readUint32()>>12,e.readUint8Array(20)),t.push(i[s]),128&r)break}this.numMetadataBlocks=t.length+" ("+t.join(", ")+")"})),c.createBoxCtor("dimm",(function(e){this.bytessent=e.readUint64()})),c.createBoxCtor("dmax",(function(e){this.time=e.readUint32()})),c.createBoxCtor("dmed",(function(e){this.bytessent=e.readUint64()})),c.createBoxCtor("dOps",(function(e){if(this.Version=e.readUint8(),this.OutputChannelCount=e.readUint8(),this.PreSkip=e.readUint16(),this.InputSampleRate=e.readUint32(),this.OutputGain=e.readInt16(),this.ChannelMappingFamily=e.readUint8(),0!==this.ChannelMappingFamily){this.StreamCount=e.readUint8(),this.CoupledCount=e.readUint8(),this.ChannelMapping=[];for(var t=0;t<this.OutputChannelCount;t++)this.ChannelMapping[t]=e.readUint8()}})),c.createFullBoxCtor("dref",(function(e){var t,i;this.entries=[];for(var r=e.readUint32(),s=0;s<r;s++){if((t=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start))).code!==c.OK)return;i=t.box,this.entries.push(i)}})),c.createBoxCtor("drep",(function(e){this.bytessent=e.readUint64()})),c.createFullBoxCtor("elng",(function(e){this.extended_language=e.readString(this.size-this.hdr_size)})),c.createFullBoxCtor("elst",(function(e){this.entries=[];for(var t=e.readUint32(),i=0;i<t;i++){var r={};this.entries.push(r),1===this.version?(r.segment_duration=e.readUint64(),r.media_time=e.readInt64()):(r.segment_duration=e.readUint32(),r.media_time=e.readInt32()),r.media_rate_integer=e.readInt16(),r.media_rate_fraction=e.readInt16()}})),c.createFullBoxCtor("emsg",(function(e){1==this.version?(this.timescale=e.readUint32(),this.presentation_time=e.readUint64(),this.event_duration=e.readUint32(),this.id=e.readUint32(),this.scheme_id_uri=e.readCString(),this.value=e.readCString()):(this.scheme_id_uri=e.readCString(),this.value=e.readCString(),this.timescale=e.readUint32(),this.presentation_time_delta=e.readUint32(),this.event_duration=e.readUint32(),this.id=e.readUint32());var t=this.size-this.hdr_size-(16+(this.scheme_id_uri.length+1)+(this.value.length+1));1==this.version&&(t-=4),this.message_data=e.readUint8Array(t)})),c.createEntityToGroupCtor=function(e,t){c[e+"Box"]=function(t){c.FullBox.call(this,e,t)},c[e+"Box"].prototype=new c.FullBox,c[e+"Box"].prototype.parse=function(e){if(this.parseFullHeader(e),t)t.call(this,e);else for(this.group_id=e.readUint32(),this.num_entities_in_group=e.readUint32(),this.entity_ids=[],i=0;i<this.num_entities_in_group;i++){var r=e.readUint32();this.entity_ids.push(r)}}},c.createEntityToGroupCtor("aebr"),c.createEntityToGroupCtor("afbr"),c.createEntityToGroupCtor("albc"),c.createEntityToGroupCtor("altr"),c.createEntityToGroupCtor("brst"),c.createEntityToGroupCtor("dobr"),c.createEntityToGroupCtor("eqiv"),c.createEntityToGroupCtor("favc"),c.createEntityToGroupCtor("fobr"),c.createEntityToGroupCtor("iaug"),c.createEntityToGroupCtor("pano"),c.createEntityToGroupCtor("slid"),c.createEntityToGroupCtor("ster"),c.createEntityToGroupCtor("tsyn"),c.createEntityToGroupCtor("wbbr"),c.createEntityToGroupCtor("prgr"),c.createFullBoxCtor("esds",(function(e){var t=e.readUint8Array(this.size-this.hdr_size);if(void 0!==d){var i=new d;this.esd=i.parseOneDescriptor(new l(t.buffer,0,l.BIG_ENDIAN))}})),c.createBoxCtor("fiel",(function(e){this.fieldCount=e.readUint8(),this.fieldOrdering=e.readUint8()})),c.createBoxCtor("frma",(function(e){this.data_format=e.readString(4)})),c.createBoxCtor("ftyp",(function(e){var t=this.size-this.hdr_size;this.major_brand=e.readString(4),this.minor_version=e.readUint32(),t-=8,this.compatible_brands=[];for(var i=0;t>=4;)this.compatible_brands[i]=e.readString(4),t-=4,i++})),c.createFullBoxCtor("hdlr",(function(e){0===this.version&&(e.readUint32(),this.handler=e.readString(4),e.readUint32Array(3),this.name=e.readString(this.size-this.hdr_size-20),"\0"===this.name[this.name.length-1]&&(this.name=this.name.slice(0,-1)))})),c.createBoxCtor("hvcC",(function(e){var t,i,r,s;this.configurationVersion=e.readUint8(),s=e.readUint8(),this.general_profile_space=s>>6,this.general_tier_flag=(32&s)>>5,this.general_profile_idc=31&s,this.general_profile_compatibility=e.readUint32(),this.general_constraint_indicator=e.readUint8Array(6),this.general_level_idc=e.readUint8(),this.min_spatial_segmentation_idc=4095&e.readUint16(),this.parallelismType=3&e.readUint8(),this.chroma_format_idc=3&e.readUint8(),this.bit_depth_luma_minus8=7&e.readUint8(),this.bit_depth_chroma_minus8=7&e.readUint8(),this.avgFrameRate=e.readUint16(),s=e.readUint8(),this.constantFrameRate=s>>6,this.numTemporalLayers=(13&s)>>3,this.temporalIdNested=(4&s)>>2,this.lengthSizeMinusOne=3&s,this.nalu_arrays=[];var a=e.readUint8();for(t=0;t<a;t++){var o=[];this.nalu_arrays.push(o),s=e.readUint8(),o.completeness=(128&s)>>7,o.nalu_type=63&s;var n=e.readUint16();for(i=0;i<n;i++){var l={};o.push(l),r=e.readUint16(),l.data=e.readUint8Array(r)}}})),c.createFullBoxCtor("iinf",(function(e){var t;0===this.version?this.entry_count=e.readUint16():this.entry_count=e.readUint32(),this.item_infos=[];for(var i=0;i<this.entry_count;i++){if((t=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start))).code!==c.OK)return;"infe"!==t.box.type&&o.error("BoxParser","Expected 'infe' box, got "+t.box.type),this.item_infos[i]=t.box}})),c.createFullBoxCtor("iloc",(function(e){var t;t=e.readUint8(),this.offset_size=t>>4&15,this.length_size=15&t,t=e.readUint8(),this.base_offset_size=t>>4&15,1===this.version||2===this.version?this.index_size=15&t:this.index_size=0,this.items=[];var i=0;if(this.version<2)i=e.readUint16();else{if(2!==this.version)throw"version of iloc box not supported";i=e.readUint32()}for(var r=0;r<i;r++){var s={};if(this.items.push(s),this.version<2)s.item_ID=e.readUint16();else{if(2!==this.version)throw"version of iloc box not supported";s.item_ID=e.readUint32()}switch(1===this.version||2===this.version?s.construction_method=15&e.readUint16():s.construction_method=0,s.data_reference_index=e.readUint16(),this.base_offset_size){case 0:s.base_offset=0;break;case 4:s.base_offset=e.readUint32();break;case 8:s.base_offset=e.readUint64();break;default:throw"Error reading base offset size"}var a=e.readUint16();s.extents=[];for(var o=0;o<a;o++){var n={};if(s.extents.push(n),1===this.version||2===this.version)switch(this.index_size){case 0:n.extent_index=0;break;case 4:n.extent_index=e.readUint32();break;case 8:n.extent_index=e.readUint64();break;default:throw"Error reading extent index"}switch(this.offset_size){case 0:n.extent_offset=0;break;case 4:n.extent_offset=e.readUint32();break;case 8:n.extent_offset=e.readUint64();break;default:throw"Error reading extent index"}switch(this.length_size){case 0:n.extent_length=0;break;case 4:n.extent_length=e.readUint32();break;case 8:n.extent_length=e.readUint64();break;default:throw"Error reading extent index"}}}})),c.createBoxCtor("imir",(function(e){var t=e.readUint8();this.reserved=t>>7,this.axis=1&t})),c.createFullBoxCtor("infe",(function(e){if(0!==this.version&&1!==this.version||(this.item_ID=e.readUint16(),this.item_protection_index=e.readUint16(),this.item_name=e.readCString(),this.content_type=e.readCString(),this.content_encoding=e.readCString()),1===this.version)return this.extension_type=e.readString(4),o.warn("BoxParser","Cannot parse extension type"),void e.seek(this.start+this.size);this.version>=2&&(2===this.version?this.item_ID=e.readUint16():3===this.version&&(this.item_ID=e.readUint32()),this.item_protection_index=e.readUint16(),this.item_type=e.readString(4),this.item_name=e.readCString(),"mime"===this.item_type?(this.content_type=e.readCString(),this.content_encoding=e.readCString()):"uri "===this.item_type&&(this.item_uri_type=e.readCString()))})),c.createFullBoxCtor("ipma",(function(e){var t,i;for(entry_count=e.readUint32(),this.associations=[],t=0;t<entry_count;t++){var r={};this.associations.push(r),this.version<1?r.id=e.readUint16():r.id=e.readUint32();var s=e.readUint8();for(r.props=[],i=0;i<s;i++){var a=e.readUint8(),o={};r.props.push(o),o.essential=(128&a)>>7==1,1&this.flags?o.property_index=(127&a)<<8|e.readUint8():o.property_index=127&a}}})),c.createFullBoxCtor("iref",(function(e){var t,i;for(this.references=[];e.getPosition()<this.start+this.size;){if((t=c.parseOneBox(e,!0,this.size-(e.getPosition()-this.start))).code!==c.OK)return;(i=0===this.version?new c.SingleItemTypeReferenceBox(t.type,t.size,t.hdr_size,t.start):new c.SingleItemTypeReferenceBoxLarge(t.type,t.size,t.hdr_size,t.start)).write===c.Box.prototype.write&&"mdat"!==i.type&&(o.warn("BoxParser",i.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),i.parseDataAndRewind(e)),i.parse(e),this.references.push(i)}})),c.createBoxCtor("irot",(function(e){this.angle=3&e.readUint8()})),c.createFullBoxCtor("ispe",(function(e){this.image_width=e.readUint32(),this.image_height=e.readUint32()})),c.createFullBoxCtor("kind",(function(e){this.schemeURI=e.readCString(),this.value=e.readCString()})),c.createFullBoxCtor("leva",(function(e){var t=e.readUint8();this.levels=[];for(var i=0;i<t;i++){var r={};this.levels[i]=r,r.track_ID=e.readUint32();var s=e.readUint8();switch(r.padding_flag=s>>7,r.assignment_type=127&s,r.assignment_type){case 0:r.grouping_type=e.readString(4);break;case 1:r.grouping_type=e.readString(4),r.grouping_type_parameter=e.readUint32();break;case 2:case 3:break;case 4:r.sub_track_id=e.readUint32();break;default:o.warn("BoxParser","Unknown leva assignement type")}}})),c.createBoxCtor("lsel",(function(e){this.layer_id=e.readUint16()})),c.createBoxCtor("maxr",(function(e){this.period=e.readUint32(),this.bytes=e.readUint32()})),u.prototype.toString=function(){return"("+this.x+","+this.y+")"},c.createBoxCtor("mdcv",(function(e){this.display_primaries=[],this.display_primaries[0]=new u(e.readUint16(),e.readUint16()),this.display_primaries[1]=new u(e.readUint16(),e.readUint16()),this.display_primaries[2]=new u(e.readUint16(),e.readUint16()),this.white_point=new u(e.readUint16(),e.readUint16()),this.max_display_mastering_luminance=e.readUint32(),this.min_display_mastering_luminance=e.readUint32()})),c.createFullBoxCtor("mdhd",(function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.parseLanguage(e),e.readUint16()})),c.createFullBoxCtor("mehd",(function(e){1&this.flags&&(o.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),1==this.version?this.fragment_duration=e.readUint64():this.fragment_duration=e.readUint32()})),c.createFullBoxCtor("meta",(function(e){this.boxes=[],c.ContainerBox.prototype.parse.call(this,e)})),c.createFullBoxCtor("mfhd",(function(e){this.sequence_number=e.readUint32()})),c.createFullBoxCtor("mfro",(function(e){this._size=e.readUint32()})),c.createFullBoxCtor("mskC",(function(e){this.bits_per_pixel=e.readUint8()})),c.createFullBoxCtor("mvhd",(function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.rate=e.readUint32(),this.volume=e.readUint16()>>8,e.readUint16(),e.readUint32Array(2),this.matrix=e.readUint32Array(9),e.readUint32Array(6),this.next_track_id=e.readUint32()})),c.createBoxCtor("npck",(function(e){this.packetssent=e.readUint32()})),c.createBoxCtor("nump",(function(e){this.packetssent=e.readUint64()})),c.createFullBoxCtor("padb",(function(e){var t=e.readUint32();this.padbits=[];for(var i=0;i<Math.floor((t+1)/2);i++)this.padbits=e.readUint8()})),c.createBoxCtor("pasp",(function(e){this.hSpacing=e.readUint32(),this.vSpacing=e.readUint32()})),c.createBoxCtor("payl",(function(e){this.text=e.readString(this.size-this.hdr_size)})),c.createBoxCtor("payt",(function(e){this.payloadID=e.readUint32();var t=e.readUint8();this.rtpmap_string=e.readString(t)})),c.createFullBoxCtor("pdin",(function(e){var t=(this.size-this.hdr_size)/8;this.rate=[],this.initial_delay=[];for(var i=0;i<t;i++)this.rate[i]=e.readUint32(),this.initial_delay[i]=e.readUint32()})),c.createFullBoxCtor("pitm",(function(e){0===this.version?this.item_id=e.readUint16():this.item_id=e.readUint32()})),c.createFullBoxCtor("pixi",(function(e){var t;for(this.num_channels=e.readUint8(),this.bits_per_channels=[],t=0;t<this.num_channels;t++)this.bits_per_channels[t]=e.readUint8()})),c.createBoxCtor("pmax",(function(e){this.bytes=e.readUint32()})),c.createFullBoxCtor("prdi",(function(e){if(this.step_count=e.readUint16(),this.item_count=[],2&this.flags)for(var t=0;t<this.step_count;t++)this.item_count[t]=e.readUint16()})),c.createFullBoxCtor("prft",(function(e){this.ref_track_id=e.readUint32(),this.ntp_timestamp=e.readUint64(),0===this.version?this.media_time=e.readUint32():this.media_time=e.readUint64()})),c.createFullBoxCtor("pssh",(function(e){if(this.system_id=c.parseHex16(e),this.version>0){var t=e.readUint32();this.kid=[];for(var i=0;i<t;i++)this.kid[i]=c.parseHex16(e)}var r=e.readUint32();r>0&&(this.data=e.readUint8Array(r))})),c.createFullBoxCtor("clef",(function(e){this.width=e.readUint32(),this.height=e.readUint32()})),c.createFullBoxCtor("enof",(function(e){this.width=e.readUint32(),this.height=e.readUint32()})),c.createFullBoxCtor("prof",(function(e){this.width=e.readUint32(),this.height=e.readUint32()})),c.createContainerBoxCtor("tapt",null,["clef","prof","enof"]),c.createBoxCtor("rtp ",(function(e){this.descriptionformat=e.readString(4),this.sdptext=e.readString(this.size-this.hdr_size-4)})),c.createFullBoxCtor("saio",(function(e){1&this.flags&&(this.aux_info_type=e.readUint32(),this.aux_info_type_parameter=e.readUint32());var t=e.readUint32();this.offset=[];for(var i=0;i<t;i++)0===this.version?this.offset[i]=e.readUint32():this.offset[i]=e.readUint64()})),c.createFullBoxCtor("saiz",(function(e){1&this.flags&&(this.aux_info_type=e.readUint32(),this.aux_info_type_parameter=e.readUint32()),this.default_sample_info_size=e.readUint8();var t=e.readUint32();if(this.sample_info_size=[],0===this.default_sample_info_size)for(var i=0;i<t;i++)this.sample_info_size[i]=e.readUint8()})),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA,"mett",(function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)})),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA,"metx",(function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.namespace=e.readCString(),this.schema_location=e.readCString(),this.parseFooter(e)})),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,"sbtt",(function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)})),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,"stpp",(function(e){this.parseHeader(e),this.namespace=e.readCString(),this.schema_location=e.readCString(),this.auxiliary_mime_types=e.readCString(),this.parseFooter(e)})),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,"stxt",(function(e){this.parseHeader(e),this.content_encoding=e.readCString(),this.mime_format=e.readCString(),this.parseFooter(e)})),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_SUBTITLE,"tx3g",(function(e){this.parseHeader(e),this.displayFlags=e.readUint32(),this.horizontal_justification=e.readInt8(),this.vertical_justification=e.readInt8(),this.bg_color_rgba=e.readUint8Array(4),this.box_record=e.readInt16Array(4),this.style_record=e.readUint8Array(12),this.parseFooter(e)})),c.createSampleEntryCtor(c.SAMPLE_ENTRY_TYPE_METADATA,"wvtt",(function(e){this.parseHeader(e),this.parseFooter(e)})),c.createSampleGroupCtor("alst",(function(e){var t,i=e.readUint16();for(this.first_output_sample=e.readUint16(),this.sample_offset=[],t=0;t<i;t++)this.sample_offset[t]=e.readUint32();var r=this.description_length-4-4*i;for(this.num_output_samples=[],this.num_total_samples=[],t=0;t<r/4;t++)this.num_output_samples[t]=e.readUint16(),this.num_total_samples[t]=e.readUint16()})),c.createSampleGroupCtor("avll",(function(e){this.layerNumber=e.readUint8(),this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()})),c.createSampleGroupCtor("avss",(function(e){this.subSequenceIdentifier=e.readUint16(),this.layerNumber=e.readUint8();var t=e.readUint8();this.durationFlag=t>>7,this.avgRateFlag=t>>6&1,this.durationFlag&&(this.duration=e.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()),this.dependency=[];for(var i=e.readUint8(),r=0;r<i;r++){var s={};this.dependency.push(s),s.subSeqDirectionFlag=e.readUint8(),s.layerNumber=e.readUint8(),s.subSequenceIdentifier=e.readUint16()}})),c.createSampleGroupCtor("dtrt",(function(e){o.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),c.createSampleGroupCtor("mvif",(function(e){o.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),c.createSampleGroupCtor("prol",(function(e){this.roll_distance=e.readInt16()})),c.createSampleGroupCtor("rap ",(function(e){var t=e.readUint8();this.num_leading_samples_known=t>>7,this.num_leading_samples=127&t})),c.createSampleGroupCtor("rash",(function(e){if(this.operation_point_count=e.readUint16(),this.description_length!==2+(1===this.operation_point_count?2:6*this.operation_point_count)+9)o.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=e.readUint8Array(this.description_length-2);else{if(1===this.operation_point_count)this.target_rate_share=e.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var t=0;t<this.operation_point_count;t++)this.available_bitrate[t]=e.readUint32(),this.target_rate_share[t]=e.readUint16()}this.maximum_bitrate=e.readUint32(),this.minimum_bitrate=e.readUint32(),this.discard_priority=e.readUint8()}})),c.createSampleGroupCtor("roll",(function(e){this.roll_distance=e.readInt16()})),c.SampleGroupEntry.prototype.parse=function(e){o.warn("BoxParser","Unknown Sample Group type: "+this.grouping_type),this.data=e.readUint8Array(this.description_length)},c.createSampleGroupCtor("scif",(function(e){o.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),c.createSampleGroupCtor("scnm",(function(e){o.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),c.createSampleGroupCtor("seig",(function(e){this.reserved=e.readUint8();var t=e.readUint8();this.crypt_byte_block=t>>4,this.skip_byte_block=15&t,this.isProtected=e.readUint8(),this.Per_Sample_IV_Size=e.readUint8(),this.KID=c.parseHex16(e),this.constant_IV_size=0,this.constant_IV=0,1===this.isProtected&&0===this.Per_Sample_IV_Size&&(this.constant_IV_size=e.readUint8(),this.constant_IV=e.readUint8Array(this.constant_IV_size))})),c.createSampleGroupCtor("stsa",(function(e){o.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),c.createSampleGroupCtor("sync",(function(e){var t=e.readUint8();this.NAL_unit_type=63&t})),c.createSampleGroupCtor("tele",(function(e){var t=e.readUint8();this.level_independently_decodable=t>>7})),c.createSampleGroupCtor("tsas",(function(e){o.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),c.createSampleGroupCtor("tscl",(function(e){o.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),c.createSampleGroupCtor("vipr",(function(e){o.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")})),c.createFullBoxCtor("sbgp",(function(e){this.grouping_type=e.readString(4),1===this.version?this.grouping_type_parameter=e.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var t=e.readUint32(),i=0;i<t;i++){var r={};this.entries.push(r),r.sample_count=e.readInt32(),r.group_description_index=e.readInt32()}})),p.prototype.toString=function(){return"[row: "+this.bad_pixel_row+", column: "+this.bad_pixel_column+"]"},c.createFullBoxCtor("sbpm",(function(e){var t;for(this.component_count=e.readUint16(),this.component_index=[],t=0;t<this.component_count;t++)this.component_index.push(e.readUint16());var i=e.readUint8();for(this.correction_applied=128==(128&i),this.num_bad_rows=e.readUint32(),this.num_bad_cols=e.readUint32(),this.num_bad_pixels=e.readUint32(),this.bad_rows=[],this.bad_columns=[],this.bad_pixels=[],t=0;t<this.num_bad_rows;t++)this.bad_rows.push(e.readUint32());for(t=0;t<this.num_bad_cols;t++)this.bad_columns.push(e.readUint32());for(t=0;t<this.num_bad_pixels;t++){var r=e.readUint32(),s=e.readUint32();this.bad_pixels.push(new p(r,s))}})),c.createFullBoxCtor("schm",(function(e){this.scheme_type=e.readString(4),this.scheme_version=e.readUint32(),1&this.flags&&(this.scheme_uri=e.readString(this.size-this.hdr_size-8))})),c.createBoxCtor("sdp ",(function(e){this.sdptext=e.readString(this.size-this.hdr_size)})),c.createFullBoxCtor("sdtp",(function(e){var t,i=this.size-this.hdr_size;this.is_leading=[],this.sample_depends_on=[],this.sample_is_depended_on=[],this.sample_has_redundancy=[];for(var r=0;r<i;r++)t=e.readUint8(),this.is_leading[r]=t>>6,this.sample_depends_on[r]=t>>4&3,this.sample_is_depended_on[r]=t>>2&3,this.sample_has_redundancy[r]=3&t})),c.createFullBoxCtor("senc"),c.createFullBoxCtor("sgpd",(function(e){this.grouping_type=e.readString(4),o.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),1===this.version?this.default_length=e.readUint32():this.default_length=0,this.version>=2&&(this.default_group_description_index=e.readUint32()),this.entries=[];for(var t=e.readUint32(),i=0;i<t;i++){var r;r=c[this.grouping_type+"SampleGroupEntry"]?new c[this.grouping_type+"SampleGroupEntry"](this.grouping_type):new c.SampleGroupEntry(this.grouping_type),this.entries.push(r),1===this.version&&0===this.default_length?r.description_length=e.readUint32():r.description_length=this.default_length,r.write===c.SampleGroupEntry.prototype.write&&(o.info("BoxParser","SampleGroup for type "+this.grouping_type+" writing not yet implemented, keeping unparsed data in memory for later write"),r.data=e.readUint8Array(r.description_length),e.position-=r.description_length),r.parse(e)}})),c.createFullBoxCtor("sidx",(function(e){this.reference_ID=e.readUint32(),this.timescale=e.readUint32(),0===this.version?(this.earliest_presentation_time=e.readUint32(),this.first_offset=e.readUint32()):(this.earliest_presentation_time=e.readUint64(),this.first_offset=e.readUint64()),e.readUint16(),this.references=[];for(var t=e.readUint16(),i=0;i<t;i++){var r={};this.references.push(r);var s=e.readUint32();r.reference_type=s>>31&1,r.referenced_size=2147483647&s,r.subsegment_duration=e.readUint32(),s=e.readUint32(),r.starts_with_SAP=s>>31&1,r.SAP_type=s>>28&7,r.SAP_delta_time=268435455&s}})),c.SingleItemTypeReferenceBox=function(e,t,i,r){c.Box.call(this,e,t),this.hdr_size=i,this.start=r},c.SingleItemTypeReferenceBox.prototype=new c.Box,c.SingleItemTypeReferenceBox.prototype.parse=function(e){this.from_item_ID=e.readUint16();var t=e.readUint16();this.references=[];for(var i=0;i<t;i++)this.references[i]={},this.references[i].to_item_ID=e.readUint16()},c.SingleItemTypeReferenceBoxLarge=function(e,t,i,r){c.Box.call(this,e,t),this.hdr_size=i,this.start=r},c.SingleItemTypeReferenceBoxLarge.prototype=new c.Box,c.SingleItemTypeReferenceBoxLarge.prototype.parse=function(e){this.from_item_ID=e.readUint32();var t=e.readUint16();this.references=[];for(var i=0;i<t;i++)this.references[i]={},this.references[i].to_item_ID=e.readUint32()},c.createFullBoxCtor("SmDm",(function(e){this.primaryRChromaticity_x=e.readUint16(),this.primaryRChromaticity_y=e.readUint16(),this.primaryGChromaticity_x=e.readUint16(),this.primaryGChromaticity_y=e.readUint16(),this.primaryBChromaticity_x=e.readUint16(),this.primaryBChromaticity_y=e.readUint16(),this.whitePointChromaticity_x=e.readUint16(),this.whitePointChromaticity_y=e.readUint16(),this.luminanceMax=e.readUint32(),this.luminanceMin=e.readUint32()})),c.createFullBoxCtor("smhd",(function(e){this.balance=e.readUint16(),e.readUint16()})),c.createFullBoxCtor("ssix",(function(e){this.subsegments=[];for(var t=e.readUint32(),i=0;i<t;i++){var r={};this.subsegments.push(r),r.ranges=[];for(var s=e.readUint32(),a=0;a<s;a++){var o={};r.ranges.push(o),o.level=e.readUint8(),o.range_size=e.readUint24()}}})),c.createFullBoxCtor("stco",(function(e){var t;if(t=e.readUint32(),this.chunk_offsets=[],0===this.version)for(var i=0;i<t;i++)this.chunk_offsets.push(e.readUint32())})),c.createFullBoxCtor("stdp",(function(e){var t=(this.size-this.hdr_size)/2;this.priority=[];for(var i=0;i<t;i++)this.priority[i]=e.readUint16()})),c.createFullBoxCtor("sthd"),c.createFullBoxCtor("stri",(function(e){this.switch_group=e.readUint16(),this.alternate_group=e.readUint16(),this.sub_track_id=e.readUint32();var t=(this.size-this.hdr_size-8)/4;this.attribute_list=[];for(var i=0;i<t;i++)this.attribute_list[i]=e.readUint32()})),c.createFullBoxCtor("stsc",(function(e){var t,i;if(t=e.readUint32(),this.first_chunk=[],this.samples_per_chunk=[],this.sample_description_index=[],0===this.version)for(i=0;i<t;i++)this.first_chunk.push(e.readUint32()),this.samples_per_chunk.push(e.readUint32()),this.sample_description_index.push(e.readUint32())})),c.createFullBoxCtor("stsd",(function(e){var t,i,r,s;for(this.entries=[],r=e.readUint32(),t=1;t<=r;t++){if((i=c.parseOneBox(e,!0,this.size-(e.getPosition()-this.start))).code!==c.OK)return;c[i.type+"SampleEntry"]?((s=new c[i.type+"SampleEntry"](i.size)).hdr_size=i.hdr_size,s.start=i.start):(o.warn("BoxParser","Unknown sample entry type: "+i.type),s=new c.SampleEntry(i.type,i.size,i.hdr_size,i.start)),s.write===c.SampleEntry.prototype.write&&(o.info("BoxParser","SampleEntry "+s.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),s.parseDataAndRewind(e)),s.parse(e),this.entries.push(s)}})),c.createFullBoxCtor("stsg",(function(e){this.grouping_type=e.readUint32();var t=e.readUint16();this.group_description_index=[];for(var i=0;i<t;i++)this.group_description_index[i]=e.readUint32()})),c.createFullBoxCtor("stsh",(function(e){var t,i;if(t=e.readUint32(),this.shadowed_sample_numbers=[],this.sync_sample_numbers=[],0===this.version)for(i=0;i<t;i++)this.shadowed_sample_numbers.push(e.readUint32()),this.sync_sample_numbers.push(e.readUint32())})),c.createFullBoxCtor("stss",(function(e){var t,i;if(i=e.readUint32(),0===this.version)for(this.sample_numbers=[],t=0;t<i;t++)this.sample_numbers.push(e.readUint32())})),c.createFullBoxCtor("stsz",(function(e){var t;if(this.sample_sizes=[],0===this.version)for(this.sample_size=e.readUint32(),this.sample_count=e.readUint32(),t=0;t<this.sample_count;t++)0===this.sample_size?this.sample_sizes.push(e.readUint32()):this.sample_sizes[t]=this.sample_size})),c.createFullBoxCtor("stts",(function(e){var t,i,r;if(t=e.readUint32(),this.sample_counts=[],this.sample_deltas=[],0===this.version)for(i=0;i<t;i++)this.sample_counts.push(e.readUint32()),(r=e.readInt32())<0&&(o.warn("BoxParser","File uses negative stts sample delta, using value 1 instead, sync may be lost!"),r=1),this.sample_deltas.push(r)})),c.createFullBoxCtor("stvi",(function(e){var t=e.readUint32();this.single_view_allowed=3&t,this.stereo_scheme=e.readUint32();var i,r,s=e.readUint32();for(this.stereo_indication_type=e.readString(s),this.boxes=[];e.getPosition()<this.start+this.size;){if((i=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start))).code!==c.OK)return;r=i.box,this.boxes.push(r),this[r.type]=r}})),c.createBoxCtor("styp",(function(e){c.ftypBox.prototype.parse.call(this,e)})),c.createFullBoxCtor("stz2",(function(e){var t,i;if(this.sample_sizes=[],0===this.version)if(this.reserved=e.readUint24(),this.field_size=e.readUint8(),i=e.readUint32(),4===this.field_size)for(t=0;t<i;t+=2){var r=e.readUint8();this.sample_sizes[t]=r>>4&15,this.sample_sizes[t+1]=15&r}else if(8===this.field_size)for(t=0;t<i;t++)this.sample_sizes[t]=e.readUint8();else if(16===this.field_size)for(t=0;t<i;t++)this.sample_sizes[t]=e.readUint16();else o.error("BoxParser","Error in length field in stz2 box")})),c.createFullBoxCtor("subs",(function(e){var t,i,r,s;for(r=e.readUint32(),this.entries=[],t=0;t<r;t++){var a={};if(this.entries[t]=a,a.sample_delta=e.readUint32(),a.subsamples=[],(s=e.readUint16())>0)for(i=0;i<s;i++){var o={};a.subsamples.push(o),1==this.version?o.size=e.readUint32():o.size=e.readUint16(),o.priority=e.readUint8(),o.discardable=e.readUint8(),o.codec_specific_parameters=e.readUint32()}}})),c.createFullBoxCtor("tenc",(function(e){if(e.readUint8(),0===this.version)e.readUint8();else{var t=e.readUint8();this.default_crypt_byte_block=t>>4&15,this.default_skip_byte_block=15&t}this.default_isProtected=e.readUint8(),this.default_Per_Sample_IV_Size=e.readUint8(),this.default_KID=c.parseHex16(e),1===this.default_isProtected&&0===this.default_Per_Sample_IV_Size&&(this.default_constant_IV_size=e.readUint8(),this.default_constant_IV=e.readUint8Array(this.default_constant_IV_size))})),c.createFullBoxCtor("tfdt",(function(e){1==this.version?this.baseMediaDecodeTime=e.readUint64():this.baseMediaDecodeTime=e.readUint32()})),c.createFullBoxCtor("tfhd",(function(e){var t=0;this.track_id=e.readUint32(),this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=e.readUint64(),t+=8):this.base_data_offset=0,this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=e.readUint32(),t+=4):this.default_sample_description_index=0,this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=e.readUint32(),t+=4):this.default_sample_duration=0,this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=e.readUint32(),t+=4):this.default_sample_size=0,this.size-this.hdr_size>t&&this.flags&c.TFHD_FLAG_SAMPLE_FLAGS?(this.default_sample_flags=e.readUint32(),t+=4):this.default_sample_flags=0})),c.createFullBoxCtor("tfra",(function(e){this.track_ID=e.readUint32(),e.readUint24();var t=e.readUint8();this.length_size_of_traf_num=t>>4&3,this.length_size_of_trun_num=t>>2&3,this.length_size_of_sample_num=3&t,this.entries=[];for(var i=e.readUint32(),r=0;r<i;r++)1===this.version?(this.time=e.readUint64(),this.moof_offset=e.readUint64()):(this.time=e.readUint32(),this.moof_offset=e.readUint32()),this.traf_number=e["readUint"+8*(this.length_size_of_traf_num+1)](),this.trun_number=e["readUint"+8*(this.length_size_of_trun_num+1)](),this.sample_number=e["readUint"+8*(this.length_size_of_sample_num+1)]()})),c.createFullBoxCtor("tkhd",(function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.track_id=e.readUint32(),e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.track_id=e.readUint32(),e.readUint32(),this.duration=e.readUint32()),e.readUint32Array(2),this.layer=e.readInt16(),this.alternate_group=e.readInt16(),this.volume=e.readInt16()>>8,e.readUint16(),this.matrix=e.readInt32Array(9),this.width=e.readUint32(),this.height=e.readUint32()})),c.createBoxCtor("tmax",(function(e){this.time=e.readUint32()})),c.createBoxCtor("tmin",(function(e){this.time=e.readUint32()})),c.createBoxCtor("totl",(function(e){this.bytessent=e.readUint32()})),c.createBoxCtor("tpay",(function(e){this.bytessent=e.readUint32()})),c.createBoxCtor("tpyl",(function(e){this.bytessent=e.readUint64()})),c.TrackGroupTypeBox.prototype.parse=function(e){this.parseFullHeader(e),this.track_group_id=e.readUint32()},c.createTrackGroupCtor("msrc"),c.TrackReferenceTypeBox=function(e,t,i,r){c.Box.call(this,e,t),this.hdr_size=i,this.start=r},c.TrackReferenceTypeBox.prototype=new c.Box,c.TrackReferenceTypeBox.prototype.parse=function(e){this.track_ids=e.readUint32Array((this.size-this.hdr_size)/4)},c.trefBox.prototype.parse=function(e){for(var t,i;e.getPosition()<this.start+this.size;){if((t=c.parseOneBox(e,!0,this.size-(e.getPosition()-this.start))).code!==c.OK)return;(i=new c.TrackReferenceTypeBox(t.type,t.size,t.hdr_size,t.start)).write===c.Box.prototype.write&&"mdat"!==i.type&&(o.info("BoxParser","TrackReference "+i.type+" box writing not yet implemented, keeping unparsed data in memory for later write"),i.parseDataAndRewind(e)),i.parse(e),this.boxes.push(i)}},c.createFullBoxCtor("trep",(function(e){for(this.track_ID=e.readUint32(),this.boxes=[];e.getPosition()<this.start+this.size;){if(ret=c.parseOneBox(e,!1,this.size-(e.getPosition()-this.start)),ret.code!==c.OK)return;box=ret.box,this.boxes.push(box)}})),c.createFullBoxCtor("trex",(function(e){this.track_id=e.readUint32(),this.default_sample_description_index=e.readUint32(),this.default_sample_duration=e.readUint32(),this.default_sample_size=e.readUint32(),this.default_sample_flags=e.readUint32()})),c.createBoxCtor("trpy",(function(e){this.bytessent=e.readUint64()})),c.createFullBoxCtor("trun",(function(e){var t=0;if(this.sample_count=e.readUint32(),t+=4,this.size-this.hdr_size>t&&this.flags&c.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=e.readInt32(),t+=4):this.data_offset=0,this.size-this.hdr_size>t&&this.flags&c.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=e.readUint32(),t+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>t)for(var i=0;i<this.sample_count;i++)this.flags&c.TRUN_FLAGS_DURATION&&(this.sample_duration[i]=e.readUint32()),this.flags&c.TRUN_FLAGS_SIZE&&(this.sample_size[i]=e.readUint32()),this.flags&c.TRUN_FLAGS_FLAGS&&(this.sample_flags[i]=e.readUint32()),this.flags&c.TRUN_FLAGS_CTS_OFFSET&&(0===this.version?this.sample_composition_time_offset[i]=e.readUint32():this.sample_composition_time_offset[i]=e.readInt32())})),c.createFullBoxCtor("tsel",(function(e){this.switch_group=e.readUint32();var t=(this.size-this.hdr_size-4)/4;this.attribute_list=[];for(var i=0;i<t;i++)this.attribute_list[i]=e.readUint32()})),c.createFullBoxCtor("txtC",(function(e){this.config=e.readCString()})),c.createBoxCtor("tyco",(function(e){var t=(this.size-this.hdr_size)/4;this.compatible_brands=[];for(var i=0;i<t;i++)this.compatible_brands[i]=e.readString(4)})),c.createFullBoxCtor("udes",(function(e){this.lang=e.readCString(),this.name=e.readCString(),this.description=e.readCString(),this.tags=e.readCString()})),c.createFullBoxCtor("uncC",(function(e){var t;if(this.profile=e.readUint32(),1==this.version);else if(0==this.version){for(this.component_count=e.readUint32(),this.component_index=[],this.component_bit_depth_minus_one=[],this.component_format=[],this.component_align_size=[],t=0;t<this.component_count;t++)this.component_index.push(e.readUint16()),this.component_bit_depth_minus_one.push(e.readUint8()),this.component_format.push(e.readUint8()),this.component_align_size.push(e.readUint8());this.sampling_type=e.readUint8(),this.interleave_type=e.readUint8(),this.block_size=e.readUint8();var i=e.readUint8();this.component_little_endian=i>>7&1,this.block_pad_lsb=i>>6&1,this.block_little_endian=i>>5&1,this.block_reversed=i>>4&1,this.pad_unknown=i>>3&1,this.pixel_size=e.readUint32(),this.row_align_size=e.readUint32(),this.tile_align_size=e.readUint32(),this.num_tile_cols_minus_one=e.readUint32(),this.num_tile_rows_minus_one=e.readUint32()}})),c.createFullBoxCtor("url ",(function(e){1!==this.flags&&(this.location=e.readCString())})),c.createFullBoxCtor("urn ",(function(e){this.name=e.readCString(),this.size-this.hdr_size-this.name.length-1>0&&(this.location=e.readCString())})),c.createUUIDBox("a5d40b30e81411ddba2f0800200c9a66",!0,!1,(function(e){this.LiveServerManifest=e.readString(this.size-this.hdr_size).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;")})),c.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,(function(e){this.system_id=c.parseHex16(e);var t=e.readUint32();t>0&&(this.data=e.readUint8Array(t))})),c.createUUIDBox("a2394f525a9b4f14a2446c427c648df4",!0,!1),c.createUUIDBox("8974dbce7be74c5184f97148f9882554",!0,!1,(function(e){this.default_AlgorithmID=e.readUint24(),this.default_IV_size=e.readUint8(),this.default_KID=c.parseHex16(e)})),c.createUUIDBox("d4807ef2ca3946958e5426cb9e46a79f",!0,!1,(function(e){this.fragment_count=e.readUint8(),this.entries=[];for(var t=0;t<this.fragment_count;t++){var i={},r=0,s=0;1===this.version?(r=e.readUint64(),s=e.readUint64()):(r=e.readUint32(),s=e.readUint32()),i.absolute_time=r,i.absolute_duration=s,this.entries.push(i)}})),c.createUUIDBox("6d1d9b0542d544e680e2141daff757b2",!0,!1,(function(e){1===this.version?(this.absolute_time=e.readUint64(),this.duration=e.readUint64()):(this.absolute_time=e.readUint32(),this.duration=e.readUint32())})),c.createFullBoxCtor("vmhd",(function(e){this.graphicsmode=e.readUint16(),this.opcolor=e.readUint16Array(3)})),c.createFullBoxCtor("vpcC",(function(e){var t;1===this.version?(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4,this.chromaSubsampling=t>>1&7,this.videoFullRangeFlag=1&t,this.colourPrimaries=e.readUint8(),this.transferCharacteristics=e.readUint8(),this.matrixCoefficients=e.readUint8(),this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize)):(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4&15,this.colorSpace=15&t,t=e.readUint8(),this.chromaSubsampling=t>>4&15,this.transferFunction=t>>1&7,this.videoFullRangeFlag=1&t,this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize))})),c.createBoxCtor("vttC",(function(e){this.text=e.readString(this.size-this.hdr_size)})),c.createFullBoxCtor("vvcC",(function(e){var t,i,r={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(e){this.held_bits=e.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(e){this.held_bits=e.readUint16(),this.num_held_bits=16},extract_bits:function(e){var t=this.held_bits>>this.num_held_bits-e&(1<<e)-1;return this.num_held_bits-=e,t}};if(r.stream_read_1_bytes(e),r.extract_bits(5),this.lengthSizeMinusOne=r.extract_bits(2),this.ptl_present_flag=r.extract_bits(1),this.ptl_present_flag){if(r.stream_read_2_bytes(e),this.ols_idx=r.extract_bits(9),this.num_sublayers=r.extract_bits(3),this.constant_frame_rate=r.extract_bits(2),this.chroma_format_idc=r.extract_bits(2),r.stream_read_1_bytes(e),this.bit_depth_minus8=r.extract_bits(3),r.extract_bits(5),r.stream_read_2_bytes(e),r.extract_bits(2),this.num_bytes_constraint_info=r.extract_bits(6),this.general_profile_idc=r.extract_bits(7),this.general_tier_flag=r.extract_bits(1),this.general_level_idc=e.readUint8(),r.stream_read_1_bytes(e),this.ptl_frame_only_constraint_flag=r.extract_bits(1),this.ptl_multilayer_enabled_flag=r.extract_bits(1),this.general_constraint_info=new Uint8Array(this.num_bytes_constraint_info),this.num_bytes_constraint_info){for(t=0;t<this.num_bytes_constraint_info-1;t++){var s=r.extract_bits(6);r.stream_read_1_bytes(e);var a=r.extract_bits(2);this.general_constraint_info[t]=s<<2|a}this.general_constraint_info[this.num_bytes_constraint_info-1]=r.extract_bits(6)}else r.extract_bits(6);if(this.num_sublayers>1){for(r.stream_read_1_bytes(e),this.ptl_sublayer_present_mask=0,i=this.num_sublayers-2;i>=0;--i){var o=r.extract_bits(1);this.ptl_sublayer_present_mask|=o<<i}for(i=this.num_sublayers;i<=8&&this.num_sublayers>1;++i)r.extract_bits(1);for(this.sublayer_level_idc=[],i=this.num_sublayers-2;i>=0;--i)this.ptl_sublayer_present_mask&1<<i&&(this.sublayer_level_idc[i]=e.readUint8())}if(this.ptl_num_sub_profiles=e.readUint8(),this.general_sub_profile_idc=[],this.ptl_num_sub_profiles)for(t=0;t<this.ptl_num_sub_profiles;t++)this.general_sub_profile_idc.push(e.readUint32());this.max_picture_width=e.readUint16(),this.max_picture_height=e.readUint16(),this.avg_frame_rate=e.readUint16()}this.nalu_arrays=[];var n=e.readUint8();for(t=0;t<n;t++){var l=[];this.nalu_arrays.push(l),r.stream_read_1_bytes(e),l.completeness=r.extract_bits(1),r.extract_bits(2),l.nalu_type=r.extract_bits(5);var h=1;for(13!=l.nalu_type&&12!=l.nalu_type&&(h=e.readUint16()),i=0;i<h;i++){var A=e.readUint16();l.push({data:e.readUint8Array(A),length:A})}}})),c.createFullBoxCtor("vvnC",(function(e){var t=strm.readUint8();this.lengthSizeMinusOne=3&t})),c.SampleEntry.prototype.isVideo=function(){return!1},c.SampleEntry.prototype.isAudio=function(){return!1},c.SampleEntry.prototype.isSubtitle=function(){return!1},c.SampleEntry.prototype.isMetadata=function(){return!1},c.SampleEntry.prototype.isHint=function(){return!1},c.SampleEntry.prototype.getCodec=function(){return this.type.replace(".","")},c.SampleEntry.prototype.getWidth=function(){return""},c.SampleEntry.prototype.getHeight=function(){return""},c.SampleEntry.prototype.getChannelCount=function(){return""},c.SampleEntry.prototype.getSampleRate=function(){return""},c.SampleEntry.prototype.getSampleSize=function(){return""},c.VisualSampleEntry.prototype.isVideo=function(){return!0},c.VisualSampleEntry.prototype.getWidth=function(){return this.width},c.VisualSampleEntry.prototype.getHeight=function(){return this.height},c.AudioSampleEntry.prototype.isAudio=function(){return!0},c.AudioSampleEntry.prototype.getChannelCount=function(){return this.channel_count},c.AudioSampleEntry.prototype.getSampleRate=function(){return this.samplerate},c.AudioSampleEntry.prototype.getSampleSize=function(){return this.samplesize},c.SubtitleSampleEntry.prototype.isSubtitle=function(){return!0},c.MetadataSampleEntry.prototype.isMetadata=function(){return!0},c.decimalToHex=function(e,t){var i=Number(e).toString(16);for(t=null==t?t=2:t;i.length<t;)i="0"+i;return i},c.avc1SampleEntry.prototype.getCodec=c.avc2SampleEntry.prototype.getCodec=c.avc3SampleEntry.prototype.getCodec=c.avc4SampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this);return this.avcC?e+"."+c.decimalToHex(this.avcC.AVCProfileIndication)+c.decimalToHex(this.avcC.profile_compatibility)+c.decimalToHex(this.avcC.AVCLevelIndication):e},c.hev1SampleEntry.prototype.getCodec=c.hvc1SampleEntry.prototype.getCodec=function(){var e,t=c.SampleEntry.prototype.getCodec.call(this);if(this.hvcC){switch(t+=".",this.hvcC.general_profile_space){case 0:t+="";break;case 1:t+="A";break;case 2:t+="B";break;case 3:t+="C"}t+=this.hvcC.general_profile_idc,t+=".";var i=this.hvcC.general_profile_compatibility,r=0;for(e=0;e<32&&(r|=1&i,31!=e);e++)r<<=1,i>>=1;t+=c.decimalToHex(r,0),t+=".",0===this.hvcC.general_tier_flag?t+="L":t+="H",t+=this.hvcC.general_level_idc;var s=!1,a="";for(e=5;e>=0;e--)(this.hvcC.general_constraint_indicator[e]||s)&&(a="."+c.decimalToHex(this.hvcC.general_constraint_indicator[e],0)+a,s=!0);t+=a}return t},c.vvc1SampleEntry.prototype.getCodec=c.vvi1SampleEntry.prototype.getCodec=function(){var e,t=c.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){t+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?t+=".H":t+=".L",t+=this.vvcC.general_level_idc;var i="";if(this.vvcC.general_constraint_info){var r,s=[],a=0;for(a|=this.vvcC.ptl_frame_only_constraint<<7,a|=this.vvcC.ptl_multilayer_enabled<<6,e=0;e<this.vvcC.general_constraint_info.length;++e)a|=this.vvcC.general_constraint_info[e]>>2&63,s.push(a),a&&(r=e),a=this.vvcC.general_constraint_info[e]>>2&3;if(void 0===r)i=".CA";else{i=".C";var o="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",n=0,l=0;for(e=0;e<=r;++e)for(n=n<<8|s[e],l+=8;l>=5;){i+=o[n>>l-5&31],n&=(1<<(l-=5))-1}l&&(i+=o[31&(n<<=5-l)])}}t+=i}return t},c.mp4aSampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this);if(this.esds&&this.esds.esd){var t=this.esds.esd.getOTI(),i=this.esds.esd.getAudioConfig();return e+"."+c.decimalToHex(t)+(i?"."+i:"")}return e},c.stxtSampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this);return this.mime_format?e+"."+this.mime_format:e},c.vp08SampleEntry.prototype.getCodec=c.vp09SampleEntry.prototype.getCodec=function(){var e=c.SampleEntry.prototype.getCodec.call(this),t=this.vpcC.level;0==t&&(t="00");var i=this.vpcC.bitDepth;return 8==i&&(i="08"),e+".0"+this.vpcC.profile+"."+t+"."+i},c.av01SampleEntry.prototype.getCodec=function(){var e,t=c.SampleEntry.prototype.getCodec.call(this),i=this.av1C.seq_level_idx_0;return i<10&&(i="0"+i),2===this.av1C.seq_profile&&1===this.av1C.high_bitdepth?e=1===this.av1C.twelve_bit?"12":"10":this.av1C.seq_profile<=2&&(e=1===this.av1C.high_bitdepth?"10":"08"),t+"."+this.av1C.seq_profile+"."+i+(this.av1C.seq_tier_0?"H":"M")+"."+e},c.Box.prototype.writeHeader=function(e,t){this.size+=8,this.size>h&&(this.size+=8),"uuid"===this.type&&(this.size+=16),o.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+e.getPosition()+(t||"")),this.size>h?e.writeUint32(1):(this.sizePosition=e.getPosition(),e.writeUint32(this.size)),e.writeString(this.type,null,4),"uuid"===this.type&&e.writeUint8Array(this.uuid),this.size>h&&e.writeUint64(this.size)},c.FullBox.prototype.writeHeader=function(e){this.size+=4,c.Box.prototype.writeHeader.call(this,e," v="+this.version+" f="+this.flags),e.writeUint8(this.version),e.writeUint24(this.flags)},c.Box.prototype.write=function(e){"mdat"===this.type?this.data&&(this.size=this.data.length,this.writeHeader(e),e.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(e),this.data&&e.writeUint8Array(this.data))},c.ContainerBox.prototype.write=function(e){this.size=0,this.writeHeader(e);for(var t=0;t<this.boxes.length;t++)this.boxes[t]&&(this.boxes[t].write(e),this.size+=this.boxes[t].size);o.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},c.TrackReferenceTypeBox.prototype.write=function(e){this.size=4*this.track_ids.length,this.writeHeader(e),e.writeUint32Array(this.track_ids)},c.avcCBox.prototype.write=function(e){var t;for(this.size=7,t=0;t<this.SPS.length;t++)this.size+=2+this.SPS[t].length;for(t=0;t<this.PPS.length;t++)this.size+=2+this.PPS[t].length;for(this.ext&&(this.size+=this.ext.length),this.writeHeader(e),e.writeUint8(this.configurationVersion),e.writeUint8(this.AVCProfileIndication),e.writeUint8(this.profile_compatibility),e.writeUint8(this.AVCLevelIndication),e.writeUint8(this.lengthSizeMinusOne+252),e.writeUint8(this.SPS.length+224),t=0;t<this.SPS.length;t++)e.writeUint16(this.SPS[t].length),e.writeUint8Array(this.SPS[t].nalu);for(e.writeUint8(this.PPS.length),t=0;t<this.PPS.length;t++)e.writeUint16(this.PPS[t].length),e.writeUint8Array(this.PPS[t].nalu);this.ext&&e.writeUint8Array(this.ext)},c.co64Box.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.chunk_offsets.length,this.writeHeader(e),e.writeUint32(this.chunk_offsets.length),t=0;t<this.chunk_offsets.length;t++)e.writeUint64(this.chunk_offsets[t])},c.cslgBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeInt32(this.compositionToDTSShift),e.writeInt32(this.leastDecodeToDisplayDelta),e.writeInt32(this.greatestDecodeToDisplayDelta),e.writeInt32(this.compositionStartTime),e.writeInt32(this.compositionEndTime)},c.cttsBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(e),e.writeUint32(this.sample_counts.length),t=0;t<this.sample_counts.length;t++)e.writeUint32(this.sample_counts[t]),1===this.version?e.writeInt32(this.sample_offsets[t]):e.writeUint32(this.sample_offsets[t])},c.drefBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++)this.entries[t].write(e),this.size+=this.entries[t].size;o.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},c.elngBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=this.extended_language.length,this.writeHeader(e),e.writeString(this.extended_language)},c.elstBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+12*this.entries.length,this.writeHeader(e),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++){var i=this.entries[t];e.writeUint32(i.segment_duration),e.writeInt32(i.media_time),e.writeInt16(i.media_rate_integer),e.writeInt16(i.media_rate_fraction)}},c.emsgBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=16+this.message_data.length+(this.scheme_id_uri.length+1)+(this.value.length+1),this.writeHeader(e),e.writeCString(this.scheme_id_uri),e.writeCString(this.value),e.writeUint32(this.timescale),e.writeUint32(this.presentation_time_delta),e.writeUint32(this.event_duration),e.writeUint32(this.id),e.writeUint8Array(this.message_data)},c.ftypBox.prototype.write=function(e){this.size=8+4*this.compatible_brands.length,this.writeHeader(e),e.writeString(this.major_brand,null,4),e.writeUint32(this.minor_version);for(var t=0;t<this.compatible_brands.length;t++)e.writeString(this.compatible_brands[t],null,4)},c.hdlrBox.prototype.write=function(e){this.size=20+this.name.length+1,this.version=0,this.flags=0,this.writeHeader(e),e.writeUint32(0),e.writeString(this.handler,null,4),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeCString(this.name)},c.hvcCBox.prototype.write=function(e){var t,i;for(this.size=23,t=0;t<this.nalu_arrays.length;t++)for(this.size+=3,i=0;i<this.nalu_arrays[t].length;i++)this.size+=2+this.nalu_arrays[t][i].data.length;for(this.writeHeader(e),e.writeUint8(this.configurationVersion),e.writeUint8(this.general_profile_space<<6+this.general_tier_flag<<5+this.general_profile_idc),e.writeUint32(this.general_profile_compatibility),e.writeUint8Array(this.general_constraint_indicator),e.writeUint8(this.general_level_idc),e.writeUint16(this.min_spatial_segmentation_idc+(15<<24)),e.writeUint8(this.parallelismType+252),e.writeUint8(this.chroma_format_idc+252),e.writeUint8(this.bit_depth_luma_minus8+248),e.writeUint8(this.bit_depth_chroma_minus8+248),e.writeUint16(this.avgFrameRate),e.writeUint8((this.constantFrameRate<<6)+(this.numTemporalLayers<<3)+(this.temporalIdNested<<2)+this.lengthSizeMinusOne),e.writeUint8(this.nalu_arrays.length),t=0;t<this.nalu_arrays.length;t++)for(e.writeUint8((this.nalu_arrays[t].completeness<<7)+this.nalu_arrays[t].nalu_type),e.writeUint16(this.nalu_arrays[t].length),i=0;i<this.nalu_arrays[t].length;i++)e.writeUint16(this.nalu_arrays[t][i].data.length),e.writeUint8Array(this.nalu_arrays[t][i].data)},c.kindBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=this.schemeURI.length+1+(this.value.length+1),this.writeHeader(e),e.writeCString(this.schemeURI),e.writeCString(this.value)},c.mdhdBox.prototype.write=function(e){this.size=20,this.flags=0,this.version=0,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.timescale),e.writeUint32(this.duration),e.writeUint16(this.language),e.writeUint16(0)},c.mehdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.fragment_duration)},c.mfhdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4,this.writeHeader(e),e.writeUint32(this.sequence_number)},c.mvhdBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=96,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.timescale),e.writeUint32(this.duration),e.writeUint32(this.rate),e.writeUint16(this.volume<<8),e.writeUint16(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32Array(this.matrix),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(this.next_track_id)},c.SampleEntry.prototype.writeHeader=function(e){this.size=8,c.Box.prototype.writeHeader.call(this,e),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint8(0),e.writeUint16(this.data_reference_index)},c.SampleEntry.prototype.writeFooter=function(e){for(var t=0;t<this.boxes.length;t++)this.boxes[t].write(e),this.size+=this.boxes[t].size;o.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},c.SampleEntry.prototype.write=function(e){this.writeHeader(e),e.writeUint8Array(this.data),this.size+=this.data.length,o.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},c.VisualSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=70,e.writeUint16(0),e.writeUint16(0),e.writeUint32(0),e.writeUint32(0),e.writeUint32(0),e.writeUint16(this.width),e.writeUint16(this.height),e.writeUint32(this.horizresolution),e.writeUint32(this.vertresolution),e.writeUint32(0),e.writeUint16(this.frame_count),e.writeUint8(Math.min(31,this.compressorname.length)),e.writeString(this.compressorname,null,31),e.writeUint16(this.depth),e.writeInt16(-1),this.writeFooter(e)},c.AudioSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=20,e.writeUint32(0),e.writeUint32(0),e.writeUint16(this.channel_count),e.writeUint16(this.samplesize),e.writeUint16(0),e.writeUint16(0),e.writeUint32(this.samplerate<<16),this.writeFooter(e)},c.stppSampleEntry.prototype.write=function(e){this.writeHeader(e),this.size+=this.namespace.length+1+this.schema_location.length+1+this.auxiliary_mime_types.length+1,e.writeCString(this.namespace),e.writeCString(this.schema_location),e.writeCString(this.auxiliary_mime_types),this.writeFooter(e)},c.SampleGroupEntry.prototype.write=function(e){e.writeUint8Array(this.data)},c.sbgpBox.prototype.write=function(e){this.version=1,this.flags=0,this.size=12+8*this.entries.length,this.writeHeader(e),e.writeString(this.grouping_type,null,4),e.writeUint32(this.grouping_type_parameter),e.writeUint32(this.entries.length);for(var t=0;t<this.entries.length;t++){var i=this.entries[t];e.writeInt32(i.sample_count),e.writeInt32(i.group_description_index)}},c.sgpdBox.prototype.write=function(e){var t,i;for(this.flags=0,this.size=12,t=0;t<this.entries.length;t++)i=this.entries[t],1===this.version&&(0===this.default_length&&(this.size+=4),this.size+=i.data.length);for(this.writeHeader(e),e.writeString(this.grouping_type,null,4),1===this.version&&e.writeUint32(this.default_length),this.version>=2&&e.writeUint32(this.default_sample_description_index),e.writeUint32(this.entries.length),t=0;t<this.entries.length;t++)i=this.entries[t],1===this.version&&0===this.default_length&&e.writeUint32(i.description_length),i.write(e)},c.sidxBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20+12*this.references.length,this.writeHeader(e),e.writeUint32(this.reference_ID),e.writeUint32(this.timescale),e.writeUint32(this.earliest_presentation_time),e.writeUint32(this.first_offset),e.writeUint16(0),e.writeUint16(this.references.length);for(var t=0;t<this.references.length;t++){var i=this.references[t];e.writeUint32(i.reference_type<<31|i.referenced_size),e.writeUint32(i.subsegment_duration),e.writeUint32(i.starts_with_SAP<<31|i.SAP_type<<28|i.SAP_delta_time)}},c.smhdBox.prototype.write=function(e){this.version=0,this.flags=1,this.size=4,this.writeHeader(e),e.writeUint16(this.balance),e.writeUint16(0)},c.stcoBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+4*this.chunk_offsets.length,this.writeHeader(e),e.writeUint32(this.chunk_offsets.length),e.writeUint32Array(this.chunk_offsets)},c.stscBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+12*this.first_chunk.length,this.writeHeader(e),e.writeUint32(this.first_chunk.length),t=0;t<this.first_chunk.length;t++)e.writeUint32(this.first_chunk[t]),e.writeUint32(this.samples_per_chunk[t]),e.writeUint32(this.sample_description_index[t])},c.stsdBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=0,this.writeHeader(e),e.writeUint32(this.entries.length),this.size+=4,t=0;t<this.entries.length;t++)this.entries[t].write(e),this.size+=this.entries[t].size;o.debug("BoxWriter","Adjusting box "+this.type+" with new size "+this.size),e.adjustUint32(this.sizePosition,this.size)},c.stshBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.shadowed_sample_numbers.length,this.writeHeader(e),e.writeUint32(this.shadowed_sample_numbers.length),t=0;t<this.shadowed_sample_numbers.length;t++)e.writeUint32(this.shadowed_sample_numbers[t]),e.writeUint32(this.sync_sample_numbers[t])},c.stssBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=4+4*this.sample_numbers.length,this.writeHeader(e),e.writeUint32(this.sample_numbers.length),e.writeUint32Array(this.sample_numbers)},c.stszBox.prototype.write=function(e){var t,i=!0;if(this.version=0,this.flags=0,this.sample_sizes.length>0)for(t=0;t+1<this.sample_sizes.length;){if(this.sample_sizes[t+1]!==this.sample_sizes[0]){i=!1;break}t++}else i=!1;this.size=8,i||(this.size+=4*this.sample_sizes.length),this.writeHeader(e),i?e.writeUint32(this.sample_sizes[0]):e.writeUint32(0),e.writeUint32(this.sample_sizes.length),i||e.writeUint32Array(this.sample_sizes)},c.sttsBox.prototype.write=function(e){var t;for(this.version=0,this.flags=0,this.size=4+8*this.sample_counts.length,this.writeHeader(e),e.writeUint32(this.sample_counts.length),t=0;t<this.sample_counts.length;t++)e.writeUint32(this.sample_counts[t]),e.writeUint32(this.sample_deltas[t])},c.tfdtBox.prototype.write=function(e){var t=Math.pow(2,32)-1;this.version=this.baseMediaDecodeTime>t?1:0,this.flags=0,this.size=4,1===this.version&&(this.size+=4),this.writeHeader(e),1===this.version?e.writeUint64(this.baseMediaDecodeTime):e.writeUint32(this.baseMediaDecodeTime)},c.tfhdBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&c.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&c.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&c.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&c.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&c.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(e),e.writeUint32(this.track_id),this.flags&c.TFHD_FLAG_BASE_DATA_OFFSET&&e.writeUint64(this.base_data_offset),this.flags&c.TFHD_FLAG_SAMPLE_DESC&&e.writeUint32(this.default_sample_description_index),this.flags&c.TFHD_FLAG_SAMPLE_DUR&&e.writeUint32(this.default_sample_duration),this.flags&c.TFHD_FLAG_SAMPLE_SIZE&&e.writeUint32(this.default_sample_size),this.flags&c.TFHD_FLAG_SAMPLE_FLAGS&&e.writeUint32(this.default_sample_flags)},c.tkhdBox.prototype.write=function(e){this.version=0,this.size=80,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.track_id),e.writeUint32(0),e.writeUint32(this.duration),e.writeUint32(0),e.writeUint32(0),e.writeInt16(this.layer),e.writeInt16(this.alternate_group),e.writeInt16(this.volume<<8),e.writeUint16(0),e.writeInt32Array(this.matrix),e.writeUint32(this.width),e.writeUint32(this.height)},c.trexBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeUint32(this.track_id),e.writeUint32(this.default_sample_description_index),e.writeUint32(this.default_sample_duration),e.writeUint32(this.default_sample_size),e.writeUint32(this.default_sample_flags)},c.trunBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&c.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&c.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&c.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&c.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&c.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&c.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(e),e.writeUint32(this.sample_count),this.flags&c.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=e.getPosition(),e.writeInt32(this.data_offset)),this.flags&c.TRUN_FLAGS_FIRST_FLAG&&e.writeUint32(this.first_sample_flags);for(var t=0;t<this.sample_count;t++)this.flags&c.TRUN_FLAGS_DURATION&&e.writeUint32(this.sample_duration[t]),this.flags&c.TRUN_FLAGS_SIZE&&e.writeUint32(this.sample_size[t]),this.flags&c.TRUN_FLAGS_FLAGS&&e.writeUint32(this.sample_flags[t]),this.flags&c.TRUN_FLAGS_CTS_OFFSET&&(0===this.version?e.writeUint32(this.sample_composition_time_offset[t]):e.writeInt32(this.sample_composition_time_offset[t]))},c["url Box"].prototype.write=function(e){this.version=0,this.location?(this.flags=0,this.size=this.location.length+1):(this.flags=1,this.size=0),this.writeHeader(e),this.location&&e.writeCString(this.location)},c["urn Box"].prototype.write=function(e){this.version=0,this.flags=0,this.size=this.name.length+1+(this.location?this.location.length+1:0),this.writeHeader(e),e.writeCString(this.name),this.location&&e.writeCString(this.location)},c.vmhdBox.prototype.write=function(e){this.version=0,this.flags=1,this.size=8,this.writeHeader(e),e.writeUint16(this.graphicsmode),e.writeUint16Array(this.opcolor)},c.cttsBox.prototype.unpack=function(e){var t,i,r;for(r=0,t=0;t<this.sample_counts.length;t++)for(i=0;i<this.sample_counts[t];i++)e[r].pts=e[r].dts+this.sample_offsets[t],r++},c.sttsBox.prototype.unpack=function(e){var t,i,r;for(r=0,t=0;t<this.sample_counts.length;t++)for(i=0;i<this.sample_counts[t];i++)e[r].dts=0===r?0:e[r-1].dts+this.sample_deltas[t],r++},c.stcoBox.prototype.unpack=function(e){var t;for(t=0;t<this.chunk_offsets.length;t++)e[t].offset=this.chunk_offsets[t]},c.stscBox.prototype.unpack=function(e){var t,i,r,s,a;for(s=0,a=0,t=0;t<this.first_chunk.length;t++)for(i=0;i<(t+1<this.first_chunk.length?this.first_chunk[t+1]:1/0);i++)for(a++,r=0;r<this.samples_per_chunk[t];r++){if(!e[s])return;e[s].description_index=this.sample_description_index[t],e[s].chunk_index=a,s++}},c.stszBox.prototype.unpack=function(e){var t;for(t=0;t<this.sample_sizes.length;t++)e[t].size=this.sample_sizes[t]},c.DIFF_BOXES_PROP_NAMES=["boxes","entries","references","subsamples","items","item_infos","extents","associations","subsegments","ranges","seekLists","seekPoints","esd","levels"],c.DIFF_PRIMITIVE_ARRAY_PROP_NAMES=["compatible_brands","matrix","opcolor","sample_counts","sample_counts","sample_deltas","first_chunk","samples_per_chunk","sample_sizes","chunk_offsets","sample_offsets","sample_description_index","sample_duration"],c.boxEqualFields=function(e,t){if(e&&!t)return!1;var i;for(i in e)if(!(c.DIFF_BOXES_PROP_NAMES.indexOf(i)>-1||e[i]instanceof c.Box||t[i]instanceof c.Box||void 0===e[i]||void 0===t[i]||"function"==typeof e[i]||"function"==typeof t[i]||e.subBoxNames&&e.subBoxNames.indexOf(i.slice(0,4))>-1||t.subBoxNames&&t.subBoxNames.indexOf(i.slice(0,4))>-1||"data"===i||"start"===i||"size"===i||"creation_time"===i||"modification_time"===i||c.DIFF_PRIMITIVE_ARRAY_PROP_NAMES.indexOf(i)>-1||e[i]===t[i]))return!1;return!0},c.boxEqual=function(e,t){if(!c.boxEqualFields(e,t))return!1;for(var i=0;i<c.DIFF_BOXES_PROP_NAMES.length;i++){var r=c.DIFF_BOXES_PROP_NAMES[i];if(e[r]&&t[r]&&!c.boxEqual(e[r],t[r]))return!1}return!0};var g=function(){};g.prototype.parseSample=function(e){var t,i={};i.resources=[];var r=new n(e.data.buffer);if(e.subsamples&&0!==e.subsamples.length){if(i.documentString=r.readString(e.subsamples[0].size),e.subsamples.length>1)for(t=1;t<e.subsamples.length;t++)i.resources[t]=r.readUint8Array(e.subsamples[t].size)}else i.documentString=r.readString(e.data.length);return"undefined"!=typeof DOMParser&&(i.document=(new DOMParser).parseFromString(i.documentString,"application/xml")),i};var m=function(){};m.prototype.parseSample=function(e){return new n(e.data.buffer).readString(e.data.length)},m.prototype.parseConfig=function(e){var t=new n(e.buffer);return t.readUint32(),t.readCString()},t.XMLSubtitlein4Parser=g,t.Textin4Parser=m;var y=function(e){this.stream=e||new A,this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.onMoovStart=null,this.moovStartSent=!1,this.onReady=null,this.readySent=!1,this.onSegment=null,this.onSamples=null,this.onError=null,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.onSidx=null,this.sidxSent=!1};y.prototype.setSegmentOptions=function(e,t,i){var r=this.getTrackById(e);if(r){var s={};this.fragmentedTracks.push(s),s.id=e,s.user=t,s.trak=r,r.nextSample=0,s.segmentStream=null,s.nb_samples=1e3,s.rapAlignement=!0,i&&(i.nbSamples&&(s.nb_samples=i.nbSamples),i.rapAlignement&&(s.rapAlignement=i.rapAlignement))}},y.prototype.unsetSegmentOptions=function(e){for(var t=-1,i=0;i<this.fragmentedTracks.length;i++){this.fragmentedTracks[i].id==e&&(t=i)}t>-1&&this.fragmentedTracks.splice(t,1)},y.prototype.setExtractionOptions=function(e,t,i){var r=this.getTrackById(e);if(r){var s={};this.extractedTracks.push(s),s.id=e,s.user=t,s.trak=r,r.nextSample=0,s.nb_samples=1e3,s.samples=[],i&&i.nbSamples&&(s.nb_samples=i.nbSamples)}},y.prototype.unsetExtractionOptions=function(e){for(var t=-1,i=0;i<this.extractedTracks.length;i++){this.extractedTracks[i].id==e&&(t=i)}t>-1&&this.extractedTracks.splice(t,1)},y.prototype.parse=function(){var e,t;if(!this.restoreParsePosition||this.restoreParsePosition())for(;;){if(this.hasIncompleteMdat&&this.hasIncompleteMdat()){if(this.processIncompleteMdat())continue;return}if(this.saveParsePosition&&this.saveParsePosition(),(e=c.parseOneBox(this.stream,false)).code===c.ERR_NOT_ENOUGH_DATA){if(this.processIncompleteBox){if(this.processIncompleteBox(e))continue;return}return}var i;switch(i="uuid"!==(t=e.box).type?t.type:t.uuid,this.boxes.push(t),i){case"mdat":this.mdats.push(t);break;case"moof":this.moofs.push(t);break;case"moov":this.moovStartFound=!0,0===this.mdats.length&&(this.isProgressive=!0);default:void 0!==this[i]&&o.warn("ISOFile","Duplicate Box of type: "+i+", overriding previous occurrence"),this[i]=t}this.updateUsedBytes&&this.updateUsedBytes(t,e)}},y.prototype.checkBuffer=function(e){if(null==e)throw"Buffer must be defined and non empty";if(void 0===e.fileStart)throw"Buffer must have a fileStart property";return 0===e.byteLength?(o.warn("ISOFile","Ignoring empty buffer (fileStart: "+e.fileStart+")"),this.stream.logBufferLevel(),!1):(o.info("ISOFile","Processing buffer (fileStart: "+e.fileStart+")"),e.usedBytes=0,this.stream.insertBuffer(e),this.stream.logBufferLevel(),!!this.stream.initialized()||(o.warn("ISOFile","Not ready to start parsing"),!1))},y.prototype.appendBuffer=function(e,t){var i;if(this.checkBuffer(e))return this.parse(),this.moovStartFound&&!this.moovStartSent&&(this.moovStartSent=!0,this.onMoovStart&&this.onMoovStart()),this.moov?(this.sampleListBuilt||(this.buildSampleLists(),this.sampleListBuilt=!0),this.updateSampleLists(),this.onReady&&!this.readySent&&(this.readySent=!0,this.onReady(this.getInfo())),this.processSamples(t),this.nextSeekPosition?(i=this.nextSeekPosition,this.nextSeekPosition=void 0):i=this.nextParsePosition,this.stream.getEndFilePositionAfter&&(i=this.stream.getEndFilePositionAfter(i))):i=this.nextParsePosition?this.nextParsePosition:0,this.sidx&&this.onSidx&&!this.sidxSent&&(this.onSidx(this.sidx),this.sidxSent=!0),this.meta&&(this.flattenItemInfo&&!this.itemListBuilt&&(this.flattenItemInfo(),this.itemListBuilt=!0),this.processItems&&this.processItems(this.onItem)),this.stream.cleanBuffers&&(o.info("ISOFile","Done processing buffer (fileStart: "+e.fileStart+") - next buffer to fetch should have a fileStart position of "+i),this.stream.logBufferLevel(),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0),o.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize())),i},y.prototype.getInfo=function(){var e,t,i,r,s,a,o={},n=new Date("1904-01-01T00:00:00Z").getTime();if(this.moov)for(o.hasMoov=!0,o.duration=this.moov.mvhd.duration,o.timescale=this.moov.mvhd.timescale,o.isFragmented=null!=this.moov.mvex,o.isFragmented&&this.moov.mvex.mehd&&(o.fragment_duration=this.moov.mvex.mehd.fragment_duration),o.isProgressive=this.isProgressive,o.hasIOD=null!=this.moov.iods,o.brands=[],o.brands.push(this.ftyp.major_brand),o.brands=o.brands.concat(this.ftyp.compatible_brands),o.created=new Date(n+1e3*this.moov.mvhd.creation_time),o.modified=new Date(n+1e3*this.moov.mvhd.modification_time),o.tracks=[],o.audioTracks=[],o.videoTracks=[],o.subtitleTracks=[],o.metadataTracks=[],o.hintTracks=[],o.otherTracks=[],e=0;e<this.moov.traks.length;e++){if(a=(i=this.moov.traks[e]).mdia.minf.stbl.stsd.entries[0],r={},o.tracks.push(r),r.id=i.tkhd.track_id,r.name=i.mdia.hdlr.name,r.references=[],i.tref)for(t=0;t<i.tref.boxes.length;t++)s={},r.references.push(s),s.type=i.tref.boxes[t].type,s.track_ids=i.tref.boxes[t].track_ids;i.edts&&(r.edits=i.edts.elst.entries),r.created=new Date(n+1e3*i.tkhd.creation_time),r.modified=new Date(n+1e3*i.tkhd.modification_time),r.movie_duration=i.tkhd.duration,r.movie_timescale=o.timescale,r.layer=i.tkhd.layer,r.alternate_group=i.tkhd.alternate_group,r.volume=i.tkhd.volume,r.matrix=i.tkhd.matrix,r.track_width=i.tkhd.width/65536,r.track_height=i.tkhd.height/65536,r.timescale=i.mdia.mdhd.timescale,r.cts_shift=i.mdia.minf.stbl.cslg,r.duration=i.mdia.mdhd.duration,r.samples_duration=i.samples_duration,r.codec=a.getCodec(),r.kind=i.udta&&i.udta.kinds.length?i.udta.kinds[0]:{schemeURI:"",value:""},r.language=i.mdia.elng?i.mdia.elng.extended_language:i.mdia.mdhd.languageString,r.nb_samples=i.samples.length,r.size=i.samples_size,r.bitrate=8*r.size*r.timescale/r.samples_duration,a.isAudio()?(r.type="audio",o.audioTracks.push(r),r.audio={},r.audio.sample_rate=a.getSampleRate(),r.audio.channel_count=a.getChannelCount(),r.audio.sample_size=a.getSampleSize()):a.isVideo()?(r.type="video",o.videoTracks.push(r),r.video={},r.video.width=a.getWidth(),r.video.height=a.getHeight()):a.isSubtitle()?(r.type="subtitles",o.subtitleTracks.push(r)):a.isHint()?(r.type="metadata",o.hintTracks.push(r)):a.isMetadata()?(r.type="metadata",o.metadataTracks.push(r)):(r.type="metadata",o.otherTracks.push(r))}else o.hasMoov=!1;if(o.mime="",o.hasMoov&&o.tracks){for(o.videoTracks&&o.videoTracks.length>0?o.mime+='video/mp4; codecs="':o.audioTracks&&o.audioTracks.length>0?o.mime+='audio/mp4; codecs="':o.mime+='application/mp4; codecs="',e=0;e<o.tracks.length;e++)0!==e&&(o.mime+=","),o.mime+=o.tracks[e].codec;o.mime+='"; profiles="',o.mime+=this.ftyp.compatible_brands.join(),o.mime+='"'}return o},y.prototype.setNextSeekPositionFromSample=function(e){e&&(this.nextSeekPosition?this.nextSeekPosition=Math.min(e.offset+e.alreadyRead,this.nextSeekPosition):this.nextSeekPosition=e.offset+e.alreadyRead)},y.prototype.processSamples=function(e){var t,i;if(this.sampleProcessingStarted){if(this.isFragmentationInitialized&&null!==this.onSegment)for(t=0;t<this.fragmentedTracks.length;t++){var r=this.fragmentedTracks[t];for(i=r.trak;i.nextSample<i.samples.length&&this.sampleProcessingStarted;){o.debug("ISOFile","Creating media fragment on track #"+r.id+" for sample "+i.nextSample);var s=this.createFragment(r.id,i.nextSample,r.segmentStream);if(!s)break;if(r.segmentStream=s,i.nextSample++,(i.nextSample%r.nb_samples==0||e||i.nextSample>=i.samples.length)&&(o.info("ISOFile","Sending fragmented data on track #"+r.id+" for samples ["+Math.max(0,i.nextSample-r.nb_samples)+","+(i.nextSample-1)+"]"),o.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(r.id,r.user,r.segmentStream.buffer,i.nextSample,e||i.nextSample>=i.samples.length),r.segmentStream=null,r!==this.fragmentedTracks[t]))break}}if(null!==this.onSamples)for(t=0;t<this.extractedTracks.length;t++){var a=this.extractedTracks[t];for(i=a.trak;i.nextSample<i.samples.length&&this.sampleProcessingStarted;){o.debug("ISOFile","Exporting on track #"+a.id+" sample #"+i.nextSample);var n=this.getSample(i,i.nextSample);if(!n){this.setNextSeekPositionFromSample(i.samples[i.nextSample]);break}if(i.nextSample++,a.samples.push(n),(i.nextSample%a.nb_samples==0||i.nextSample>=i.samples.length)&&(o.debug("ISOFile","Sending samples on track #"+a.id+" for sample "+i.nextSample),this.onSamples&&this.onSamples(a.id,a.user,a.samples),a.samples=[],a!==this.extractedTracks[t]))break}}}},y.prototype.getBox=function(e){var t=this.getBoxes(e,!0);return t.length?t[0]:null},y.prototype.getBoxes=function(e,t){var i=[];return y._sweep.call(this,e,i,t),i},y._sweep=function(e,t,i){for(var r in this.type&&this.type==e&&t.push(this),this.boxes){if(t.length&&i)return;y._sweep.call(this.boxes[r],e,t,i)}},y.prototype.getTrackSamplesInfo=function(e){var t=this.getTrackById(e);return t?t.samples:void 0},y.prototype.getTrackSample=function(e,t){var i=this.getTrackById(e);return this.getSample(i,t)},y.prototype.releaseUsedSamples=function(e,t){var i=0,r=this.getTrackById(e);r.lastValidSample||(r.lastValidSample=0);for(var s=r.lastValidSample;s<t;s++)i+=this.releaseSample(r,s);o.info("ISOFile","Track #"+e+" released samples up to "+t+" (released size: "+i+", remaining: "+this.samplesDataSize+")"),r.lastValidSample=t},y.prototype.start=function(){this.sampleProcessingStarted=!0,this.processSamples(!1)},y.prototype.stop=function(){this.sampleProcessingStarted=!1},y.prototype.flush=function(){o.info("ISOFile","Flushing remaining samples"),this.updateSampleLists(),this.processSamples(!0),this.stream.cleanBuffers(),this.stream.logBufferLevel(!0)},y.prototype.seekTrack=function(e,t,i){var r,s,a,n,l=0,h=0;if(0===i.samples.length)return o.info("ISOFile","No sample in track, cannot seek! Using time "+o.getDurationString(0,1)+" and offset: 0"),{offset:0,time:0};for(r=0;r<i.samples.length;r++){if(s=i.samples[r],0===r)h=0,n=s.timescale;else if(s.cts>e*s.timescale){h=r-1;break}t&&s.is_sync&&(l=r)}for(t&&(h=l),e=i.samples[h].cts,i.nextSample=h;i.samples[h].alreadyRead===i.samples[h].size&&i.samples[h+1];)h++;return a=i.samples[h].offset+i.samples[h].alreadyRead,o.info("ISOFile","Seeking to "+(t?"RAP":"")+" sample #"+i.nextSample+" on track "+i.tkhd.track_id+", time "+o.getDurationString(e,n)+" and offset: "+a),{offset:a,time:e/n}},y.prototype.getTrackDuration=function(e){var t;return e.samples?((t=e.samples[e.samples.length-1]).cts+t.duration)/t.timescale:1/0},y.prototype.seek=function(e,t){var i,r,s,a=this.moov,n={offset:1/0,time:1/0};if(this.moov){for(s=0;s<a.traks.length;s++)i=a.traks[s],e>this.getTrackDuration(i)||((r=this.seekTrack(e,t,i)).offset<n.offset&&(n.offset=r.offset),r.time<n.time&&(n.time=r.time));return o.info("ISOFile","Seeking at time "+o.getDurationString(n.time,1)+" needs a buffer with a fileStart position of "+n.offset),n.offset===1/0?n={offset:this.nextParsePosition,time:0}:n.offset=this.stream.getEndFilePositionAfter(n.offset),o.info("ISOFile","Adjusted seek position (after checking data already in buffer): "+n.offset),n}throw"Cannot seek: moov not received!"},y.prototype.equal=function(e){for(var t=0;t<this.boxes.length&&t<e.boxes.length;){var i=this.boxes[t],r=e.boxes[t];if(!c.boxEqual(i,r))return!1;t++}return!0},t.ISOFile=y,y.prototype.lastBoxStartPosition=0,y.prototype.parsingMdat=null,y.prototype.nextParsePosition=0,y.prototype.discardMdatData=!1,y.prototype.processIncompleteBox=function(e){var t;return"mdat"===e.type?(t=new c[e.type+"Box"](e.size),this.parsingMdat=t,this.boxes.push(t),this.mdats.push(t),t.start=e.start,t.hdr_size=e.hdr_size,this.stream.addUsedBytes(t.hdr_size),this.lastBoxStartPosition=t.start+t.size,this.stream.seek(t.start+t.size,!1,this.discardMdatData)?(this.parsingMdat=null,!0):(this.moovStartFound?this.nextParsePosition=this.stream.findEndContiguousBuf():this.nextParsePosition=t.start+t.size,!1)):("moov"===e.type&&(this.moovStartFound=!0,0===this.mdats.length&&(this.isProgressive=!0)),!!this.stream.mergeNextBuffer&&this.stream.mergeNextBuffer()?(this.nextParsePosition=this.stream.getEndPosition(),!0):(e.type?this.moovStartFound?this.nextParsePosition=this.stream.getEndPosition():this.nextParsePosition=this.stream.getPosition()+e.size:this.nextParsePosition=this.stream.getEndPosition(),!1))},y.prototype.hasIncompleteMdat=function(){return null!==this.parsingMdat},y.prototype.processIncompleteMdat=function(){var e;return e=this.parsingMdat,this.stream.seek(e.start+e.size,!1,this.discardMdatData)?(o.debug("ISOFile","Found 'mdat' end in buffered data"),this.parsingMdat=null,!0):(this.nextParsePosition=this.stream.findEndContiguousBuf(),!1)},y.prototype.restoreParsePosition=function(){return this.stream.seek(this.lastBoxStartPosition,!0,this.discardMdatData)},y.prototype.saveParsePosition=function(){this.lastBoxStartPosition=this.stream.getPosition()},y.prototype.updateUsedBytes=function(e,t){this.stream.addUsedBytes&&("mdat"===e.type?(this.stream.addUsedBytes(e.hdr_size),this.discardMdatData&&this.stream.addUsedBytes(e.size-e.hdr_size)):this.stream.addUsedBytes(e.size))},y.prototype.add=c.Box.prototype.add,y.prototype.addBox=c.Box.prototype.addBox,y.prototype.init=function(e){var t=e||{};this.add("ftyp").set("major_brand",t.brands&&t.brands[0]||"iso4").set("minor_version",0).set("compatible_brands",t.brands||["iso4"]);var i=this.add("moov");return i.add("mvhd").set("timescale",t.timescale||600).set("rate",t.rate||65536).set("creation_time",0).set("modification_time",0).set("duration",t.duration||0).set("volume",t.width?0:256).set("matrix",[65536,0,0,0,65536,0,0,0,1073741824]).set("next_track_id",1),i.add("mvex"),this},y.prototype.addTrack=function(e){this.moov||this.init(e);var t=e||{};t.width=t.width||320,t.height=t.height||320,t.id=t.id||this.moov.mvhd.next_track_id,t.type=t.type||"avc1";var i=this.moov.add("trak");this.moov.mvhd.next_track_id=t.id+1,i.add("tkhd").set("flags",c.TKHD_FLAG_ENABLED|c.TKHD_FLAG_IN_MOVIE|c.TKHD_FLAG_IN_PREVIEW).set("creation_time",0).set("modification_time",0).set("track_id",t.id).set("duration",t.duration||0).set("layer",t.layer||0).set("alternate_group",0).set("volume",1).set("matrix",[0,0,0,0,0,0,0,0,0]).set("width",t.width<<16).set("height",t.height<<16);var r=i.add("mdia");r.add("mdhd").set("creation_time",0).set("modification_time",0).set("timescale",t.timescale||1).set("duration",t.media_duration||0).set("language",t.language||"und"),r.add("hdlr").set("handler",t.hdlr||"vide").set("name",t.name||"Track created with MP4Box.js"),r.add("elng").set("extended_language",t.language||"fr-FR");var s=r.add("minf");if(void 0!==c[t.type+"SampleEntry"]){var a=new c[t.type+"SampleEntry"];a.data_reference_index=1;var o="";for(var l in c.sampleEntryCodes)for(var h=c.sampleEntryCodes[l],A=0;A<h.length;A++)if(h.indexOf(t.type)>-1){o=l;break}switch(o){case"Visual":if(s.add("vmhd").set("graphicsmode",0).set("opcolor",[0,0,0]),a.set("width",t.width).set("height",t.height).set("horizresolution",72<<16).set("vertresolution",72<<16).set("frame_count",1).set("compressorname",t.type+" Compressor").set("depth",24),t.avcDecoderConfigRecord){var d=new c.avcCBox;d.parse(new n(t.avcDecoderConfigRecord)),a.addBox(d)}else if(t.hevcDecoderConfigRecord){var u=new c.hvcCBox;u.parse(new n(t.hevcDecoderConfigRecord)),a.addBox(u)}break;case"Audio":s.add("smhd").set("balance",t.balance||0),a.set("channel_count",t.channel_count||2).set("samplesize",t.samplesize||16).set("samplerate",t.samplerate||65536);break;case"Hint":s.add("hmhd");break;case"Subtitle":if(s.add("sthd"),"stpp"===t.type)a.set("namespace",t.namespace||"nonamespace").set("schema_location",t.schema_location||"").set("auxiliary_mime_types",t.auxiliary_mime_types||"");break;default:s.add("nmhd")}t.description&&a.addBox(t.description),t.description_boxes&&t.description_boxes.forEach((function(e){a.addBox(e)})),s.add("dinf").add("dref").addEntry((new c["url Box"]).set("flags",1));var p=s.add("stbl");return p.add("stsd").addEntry(a),p.add("stts").set("sample_counts",[]).set("sample_deltas",[]),p.add("stsc").set("first_chunk",[]).set("samples_per_chunk",[]).set("sample_description_index",[]),p.add("stco").set("chunk_offsets",[]),p.add("stsz").set("sample_sizes",[]),this.moov.mvex.add("trex").set("track_id",t.id).set("default_sample_description_index",t.default_sample_description_index||1).set("default_sample_duration",t.default_sample_duration||0).set("default_sample_size",t.default_sample_size||0).set("default_sample_flags",t.default_sample_flags||0),this.buildTrakSampleLists(i),t.id}},c.Box.prototype.computeSize=function(e){var t=e||new l;t.endianness=l.BIG_ENDIAN,this.write(t)},y.prototype.addSample=function(e,t,i){var r=i||{},s={},a=this.getTrackById(e);if(null!==a){s.number=a.samples.length,s.track_id=a.tkhd.track_id,s.timescale=a.mdia.mdhd.timescale,s.description_index=r.sample_description_index?r.sample_description_index-1:0,s.description=a.mdia.minf.stbl.stsd.entries[s.description_index],s.data=t,s.size=t.byteLength,s.alreadyRead=s.size,s.duration=r.duration||1,s.cts=r.cts||0,s.dts=r.dts||0,s.is_sync=r.is_sync||!1,s.is_leading=r.is_leading||0,s.depends_on=r.depends_on||0,s.is_depended_on=r.is_depended_on||0,s.has_redundancy=r.has_redundancy||0,s.degradation_priority=r.degradation_priority||0,s.offset=0,s.subsamples=r.subsamples,a.samples.push(s),a.samples_size+=s.size,a.samples_duration+=s.duration,void 0===a.first_dts&&(a.first_dts=r.dts),this.processSamples();var o=this.createSingleSampleMoof(s);return this.addBox(o),o.computeSize(),o.trafs[0].truns[0].data_offset=o.size+8,this.add("mdat").data=new Uint8Array(t),s}},y.prototype.createSingleSampleMoof=function(e){var t=0;t=e.is_sync?1<<25:65536;var i=new c.moofBox;i.add("mfhd").set("sequence_number",this.nextMoofNumber),this.nextMoofNumber++;var r=i.add("traf"),s=this.getTrackById(e.track_id);return r.add("tfhd").set("track_id",e.track_id).set("flags",c.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),r.add("tfdt").set("baseMediaDecodeTime",e.dts-(s.first_dts||0)),r.add("trun").set("flags",c.TRUN_FLAGS_DATA_OFFSET|c.TRUN_FLAGS_DURATION|c.TRUN_FLAGS_SIZE|c.TRUN_FLAGS_FLAGS|c.TRUN_FLAGS_CTS_OFFSET).set("data_offset",0).set("first_sample_flags",0).set("sample_count",1).set("sample_duration",[e.duration]).set("sample_size",[e.size]).set("sample_flags",[t]).set("sample_composition_time_offset",[e.cts-e.dts]),i},y.prototype.lastMoofIndex=0,y.prototype.samplesDataSize=0,y.prototype.resetTables=function(){var e,t,i,r,s,a;for(this.initial_duration=this.moov.mvhd.duration,this.moov.mvhd.duration=0,e=0;e<this.moov.traks.length;e++){(t=this.moov.traks[e]).tkhd.duration=0,t.mdia.mdhd.duration=0,(t.mdia.minf.stbl.stco||t.mdia.minf.stbl.co64).chunk_offsets=[],(i=t.mdia.minf.stbl.stsc).first_chunk=[],i.samples_per_chunk=[],i.sample_description_index=[],(t.mdia.minf.stbl.stsz||t.mdia.minf.stbl.stz2).sample_sizes=[],(r=t.mdia.minf.stbl.stts).sample_counts=[],r.sample_deltas=[],(s=t.mdia.minf.stbl.ctts)&&(s.sample_counts=[],s.sample_offsets=[]),a=t.mdia.minf.stbl.stss;var o=t.mdia.minf.stbl.boxes.indexOf(a);-1!=o&&(t.mdia.minf.stbl.boxes[o]=null)}},y.initSampleGroups=function(e,t,i,r,s){var a,o,n,l;function h(e,t,i){this.grouping_type=e,this.grouping_type_parameter=t,this.sbgp=i,this.last_sample_in_run=-1,this.entry_index=-1}for(t&&(t.sample_groups_info=[]),e.sample_groups_info||(e.sample_groups_info=[]),o=0;o<i.length;o++){for(l=i[o].grouping_type+"/"+i[o].grouping_type_parameter,n=new h(i[o].grouping_type,i[o].grouping_type_parameter,i[o]),t&&(t.sample_groups_info[l]=n),e.sample_groups_info[l]||(e.sample_groups_info[l]=n),a=0;a<r.length;a++)r[a].grouping_type===i[o].grouping_type&&(n.description=r[a],n.description.used=!0);if(s)for(a=0;a<s.length;a++)s[a].grouping_type===i[o].grouping_type&&(n.fragment_description=s[a],n.fragment_description.used=!0,n.is_fragment=!0)}if(t){if(s)for(o=0;o<s.length;o++)!s[o].used&&s[o].version>=2&&(l=s[o].grouping_type+"/0",(n=new h(s[o].grouping_type,0)).is_fragment=!0,t.sample_groups_info[l]||(t.sample_groups_info[l]=n))}else for(o=0;o<r.length;o++)!r[o].used&&r[o].version>=2&&(l=r[o].grouping_type+"/0",n=new h(r[o].grouping_type,0),e.sample_groups_info[l]||(e.sample_groups_info[l]=n))},y.setSampleGroupProperties=function(e,t,i,r){var s,a;for(s in t.sample_groups=[],r){var o;if(t.sample_groups[s]={},t.sample_groups[s].grouping_type=r[s].grouping_type,t.sample_groups[s].grouping_type_parameter=r[s].grouping_type_parameter,i>=r[s].last_sample_in_run&&(r[s].last_sample_in_run<0&&(r[s].last_sample_in_run=0),r[s].entry_index++,r[s].entry_index<=r[s].sbgp.entries.length-1&&(r[s].last_sample_in_run+=r[s].sbgp.entries[r[s].entry_index].sample_count)),r[s].entry_index<=r[s].sbgp.entries.length-1?t.sample_groups[s].group_description_index=r[s].sbgp.entries[r[s].entry_index].group_description_index:t.sample_groups[s].group_description_index=-1,0!==t.sample_groups[s].group_description_index)o=r[s].fragment_description?r[s].fragment_description:r[s].description,t.sample_groups[s].group_description_index>0?(a=t.sample_groups[s].group_description_index>65535?(t.sample_groups[s].group_description_index>>16)-1:t.sample_groups[s].group_description_index-1,o&&a>=0&&(t.sample_groups[s].description=o.entries[a])):o&&o.version>=2&&o.default_group_description_index>0&&(t.sample_groups[s].description=o.entries[o.default_group_description_index-1])}},y.process_sdtp=function(e,t,i){t&&(e?(t.is_leading=e.is_leading[i],t.depends_on=e.sample_depends_on[i],t.is_depended_on=e.sample_is_depended_on[i],t.has_redundancy=e.sample_has_redundancy[i]):(t.is_leading=0,t.depends_on=0,t.is_depended_on=0,t.has_redundancy=0))},y.prototype.buildSampleLists=function(){var e,t;for(e=0;e<this.moov.traks.length;e++)t=this.moov.traks[e],this.buildTrakSampleLists(t)},y.prototype.buildTrakSampleLists=function(e){var t,i,r,s,a,o,n,l,h,A,d,c,u,p,g,m,E,C,f,I,w,S,M,v;if(e.samples=[],e.samples_duration=0,e.samples_size=0,i=e.mdia.minf.stbl.stco||e.mdia.minf.stbl.co64,r=e.mdia.minf.stbl.stsc,s=e.mdia.minf.stbl.stsz||e.mdia.minf.stbl.stz2,a=e.mdia.minf.stbl.stts,o=e.mdia.minf.stbl.ctts,n=e.mdia.minf.stbl.stss,l=e.mdia.minf.stbl.stsd,h=e.mdia.minf.stbl.subs,c=e.mdia.minf.stbl.stdp,A=e.mdia.minf.stbl.sbgps,d=e.mdia.minf.stbl.sgpds,C=-1,f=-1,I=-1,w=-1,S=0,M=0,v=0,y.initSampleGroups(e,null,A,d),void 0!==s){for(t=0;t<s.sample_sizes.length;t++){var k={};k.number=t,k.track_id=e.tkhd.track_id,k.timescale=e.mdia.mdhd.timescale,k.alreadyRead=0,e.samples[t]=k,k.size=s.sample_sizes[t],e.samples_size+=k.size,0===t?(p=1,u=0,k.chunk_index=p,k.chunk_run_index=u,E=r.samples_per_chunk[u],m=0,g=u+1<r.first_chunk.length?r.first_chunk[u+1]-1:1/0):t<E?(k.chunk_index=p,k.chunk_run_index=u):(p++,k.chunk_index=p,m=0,p<=g||(g=++u+1<r.first_chunk.length?r.first_chunk[u+1]-1:1/0),k.chunk_run_index=u,E+=r.samples_per_chunk[u]),k.description_index=r.sample_description_index[k.chunk_run_index]-1,k.description=l.entries[k.description_index],k.offset=i.chunk_offsets[k.chunk_index-1]+m,m+=k.size,t>C&&(f++,C<0&&(C=0),C+=a.sample_counts[f]),t>0?(e.samples[t-1].duration=a.sample_deltas[f],e.samples_duration+=e.samples[t-1].duration,k.dts=e.samples[t-1].dts+e.samples[t-1].duration):k.dts=0,o?(t>=I&&(w++,I<0&&(I=0),I+=o.sample_counts[w]),k.cts=e.samples[t].dts+o.sample_offsets[w]):k.cts=k.dts,n?(t==n.sample_numbers[S]-1?(k.is_sync=!0,S++):(k.is_sync=!1,k.degradation_priority=0),h&&h.entries[M].sample_delta+v==t+1&&(k.subsamples=h.entries[M].subsamples,v+=h.entries[M].sample_delta,M++)):k.is_sync=!0,y.process_sdtp(e.mdia.minf.stbl.sdtp,k,k.number),k.degradation_priority=c?c.priority[t]:0,h&&h.entries[M].sample_delta+v==t&&(k.subsamples=h.entries[M].subsamples,v+=h.entries[M].sample_delta),(A.length>0||d.length>0)&&y.setSampleGroupProperties(e,k,t,e.sample_groups_info)}t>0&&(e.samples[t-1].duration=Math.max(e.mdia.mdhd.duration-e.samples[t-1].dts,0),e.samples_duration+=e.samples[t-1].duration)}},y.prototype.updateSampleLists=function(){var e,t,i,r,s,a,o,n,l,h,A,d,u,p,g;if(void 0!==this.moov)for(;this.lastMoofIndex<this.moofs.length;)if(l=this.moofs[this.lastMoofIndex],this.lastMoofIndex++,"moof"==l.type)for(h=l,e=0;e<h.trafs.length;e++){for(A=h.trafs[e],d=this.getTrackById(A.tfhd.track_id),u=this.getTrexById(A.tfhd.track_id),r=A.tfhd.flags&c.TFHD_FLAG_SAMPLE_DESC?A.tfhd.default_sample_description_index:u?u.default_sample_description_index:1,s=A.tfhd.flags&c.TFHD_FLAG_SAMPLE_DUR?A.tfhd.default_sample_duration:u?u.default_sample_duration:0,a=A.tfhd.flags&c.TFHD_FLAG_SAMPLE_SIZE?A.tfhd.default_sample_size:u?u.default_sample_size:0,o=A.tfhd.flags&c.TFHD_FLAG_SAMPLE_FLAGS?A.tfhd.default_sample_flags:u?u.default_sample_flags:0,A.sample_number=0,A.sbgps.length>0&&y.initSampleGroups(d,A,A.sbgps,d.mdia.minf.stbl.sgpds,A.sgpds),t=0;t<A.truns.length;t++){var m=A.truns[t];for(i=0;i<m.sample_count;i++)if((p={}).moof_number=this.lastMoofIndex,p.number_in_traf=A.sample_number,A.sample_number++,d.samples){p.number=d.samples.length,A.first_sample_index=d.samples.length,d.samples.push(p),p.track_id=d.tkhd.track_id,p.timescale=d.mdia.mdhd.timescale,p.description_index=r-1,p.description=d.mdia.minf.stbl.stsd.entries[p.description_index],p.size=a,m.flags&c.TRUN_FLAGS_SIZE&&(p.size=m.sample_size[i]),d.samples_size+=p.size,p.duration=s,m.flags&c.TRUN_FLAGS_DURATION&&(p.duration=m.sample_duration[i]),d.samples_duration+=p.duration,d.first_traf_merged||i>0?p.dts=d.samples[d.samples.length-2].dts+d.samples[d.samples.length-2].duration:(A.tfdt?p.dts=A.tfdt.baseMediaDecodeTime:p.dts=0,d.first_traf_merged=!0),p.cts=p.dts,m.flags&c.TRUN_FLAGS_CTS_OFFSET&&(p.cts=p.dts+m.sample_composition_time_offset[i]),g=o,m.flags&c.TRUN_FLAGS_FLAGS?g=m.sample_flags[i]:0===i&&m.flags&c.TRUN_FLAGS_FIRST_FLAG&&(g=m.first_sample_flags),p.is_sync=!(g>>16&1),p.is_leading=g>>26&3,p.depends_on=g>>24&3,p.is_depended_on=g>>22&3,p.has_redundancy=g>>20&3,p.degradation_priority=65535&g;var E=!!(A.tfhd.flags&c.TFHD_FLAG_BASE_DATA_OFFSET),C=!!(A.tfhd.flags&c.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),f=!!(m.flags&c.TRUN_FLAGS_DATA_OFFSET),I=0;I=E?A.tfhd.base_data_offset:C||0===t?h.start:n,p.offset=0===t&&0===i?f?I+m.data_offset:I:n,n=p.offset+p.size,(A.sbgps.length>0||A.sgpds.length>0||d.mdia.minf.stbl.sbgps.length>0||d.mdia.minf.stbl.sgpds.length>0)&&y.setSampleGroupProperties(d,p,p.number_in_traf,A.sample_groups_info)}}if(A.subs){d.has_fragment_subsamples=!0;var w=A.first_sample_index;for(t=0;t<A.subs.entries.length;t++)w+=A.subs.entries[t].sample_delta,(p=d.samples[w-1]).subsamples=A.subs.entries[t].subsamples}}},y.prototype.getSample=function(e,t){var i,r=e.samples[t];if(!this.moov)return null;if(r.data){if(r.alreadyRead==r.size)return r}else r.data=new Uint8Array(r.size),r.alreadyRead=0,this.samplesDataSize+=r.size,o.debug("ISOFile","Allocating sample #"+t+" on track #"+e.tkhd.track_id+" of size "+r.size+" (total: "+this.samplesDataSize+")");for(;;){var s=this.stream.findPosition(!0,r.offset+r.alreadyRead,!1);if(!(s>-1))return null;var a=(i=this.stream.buffers[s]).byteLength-(r.offset+r.alreadyRead-i.fileStart);if(r.size-r.alreadyRead<=a)return o.debug("ISOFile","Getting sample #"+t+" data (alreadyRead: "+r.alreadyRead+" offset: "+(r.offset+r.alreadyRead-i.fileStart)+" read size: "+(r.size-r.alreadyRead)+" full size: "+r.size+")"),l.memcpy(r.data.buffer,r.alreadyRead,i,r.offset+r.alreadyRead-i.fileStart,r.size-r.alreadyRead),i.usedBytes+=r.size-r.alreadyRead,this.stream.logBufferLevel(),r.alreadyRead=r.size,r;if(0===a)return null;o.debug("ISOFile","Getting sample #"+t+" partial data (alreadyRead: "+r.alreadyRead+" offset: "+(r.offset+r.alreadyRead-i.fileStart)+" read size: "+a+" full size: "+r.size+")"),l.memcpy(r.data.buffer,r.alreadyRead,i,r.offset+r.alreadyRead-i.fileStart,a),r.alreadyRead+=a,i.usedBytes+=a,this.stream.logBufferLevel()}},y.prototype.releaseSample=function(e,t){var i=e.samples[t];return i.data?(this.samplesDataSize-=i.size,i.data=null,i.alreadyRead=0,i.size):0},y.prototype.getAllocatedSampleDataSize=function(){return this.samplesDataSize},y.prototype.getCodecs=function(){var e,t="";for(e=0;e<this.moov.traks.length;e++){e>0&&(t+=","),t+=this.moov.traks[e].mdia.minf.stbl.stsd.entries[0].getCodec()}return t},y.prototype.getTrexById=function(e){var t;if(!this.moov||!this.moov.mvex)return null;for(t=0;t<this.moov.mvex.trexs.length;t++){var i=this.moov.mvex.trexs[t];if(i.track_id==e)return i}return null},y.prototype.getTrackById=function(e){if(void 0===this.moov)return null;for(var t=0;t<this.moov.traks.length;t++){var i=this.moov.traks[t];if(i.tkhd.track_id==e)return i}return null},y.prototype.items=[],y.prototype.entity_groups=[],y.prototype.itemsDataSize=0,y.prototype.flattenItemInfo=function(){var e,t,i,r=this.items,s=this.entity_groups,a=this.meta;if(null!=a&&void 0!==a.hdlr&&void 0!==a.iinf){for(e=0;e<a.iinf.item_infos.length;e++)(i={}).id=a.iinf.item_infos[e].item_ID,r[i.id]=i,i.ref_to=[],i.name=a.iinf.item_infos[e].item_name,a.iinf.item_infos[e].protection_index>0&&(i.protection=a.ipro.protections[a.iinf.item_infos[e].protection_index-1]),a.iinf.item_infos[e].item_type?i.type=a.iinf.item_infos[e].item_type:i.type="mime",i.content_type=a.iinf.item_infos[e].content_type,i.content_encoding=a.iinf.item_infos[e].content_encoding;if(a.grpl)for(e=0;e<a.grpl.boxes.length;e++)entity_group={},entity_group.id=a.grpl.boxes[e].group_id,entity_group.entity_ids=a.grpl.boxes[e].entity_ids,entity_group.type=a.grpl.boxes[e].type,s[entity_group.id]=entity_group;if(a.iloc)for(e=0;e<a.iloc.items.length;e++){var n=a.iloc.items[e];switch(i=r[n.item_ID],0!==n.data_reference_index&&(o.warn("Item storage with reference to other files: not supported"),i.source=a.dinf.boxes[n.data_reference_index-1]),n.construction_method){case 0:break;case 1:case 2:o.warn("Item storage with construction_method : not supported")}for(i.extents=[],i.size=0,t=0;t<n.extents.length;t++)i.extents[t]={},i.extents[t].offset=n.extents[t].extent_offset+n.base_offset,i.extents[t].length=n.extents[t].extent_length,i.extents[t].alreadyRead=0,i.size+=i.extents[t].length}if(a.pitm&&(r[a.pitm.item_id].primary=!0),a.iref)for(e=0;e<a.iref.references.length;e++){var l=a.iref.references[e];for(t=0;t<l.references.length;t++)r[l.from_item_ID].ref_to.push({type:l.type,id:l.references[t]})}if(a.iprp)for(var h=0;h<a.iprp.ipmas.length;h++){var A=a.iprp.ipmas[h];for(e=0;e<A.associations.length;e++){var d=A.associations[e];if((i=r[d.id])||(i=s[d.id]),i)for(void 0===i.properties&&(i.properties={},i.properties.boxes=[]),t=0;t<d.props.length;t++){var c=d.props[t];if(c.property_index>0&&c.property_index-1<a.iprp.ipco.boxes.length){var u=a.iprp.ipco.boxes[c.property_index-1];i.properties[u.type]=u,i.properties.boxes.push(u)}}}}}},y.prototype.getItem=function(e){var t,i;if(!this.meta)return null;if(!(i=this.items[e]).data&&i.size)i.data=new Uint8Array(i.size),i.alreadyRead=0,this.itemsDataSize+=i.size,o.debug("ISOFile","Allocating item #"+e+" of size "+i.size+" (total: "+this.itemsDataSize+")");else if(i.alreadyRead===i.size)return i;for(var r=0;r<i.extents.length;r++){var s=i.extents[r];if(s.alreadyRead!==s.length){var a=this.stream.findPosition(!0,s.offset+s.alreadyRead,!1);if(!(a>-1))return null;var n=(t=this.stream.buffers[a]).byteLength-(s.offset+s.alreadyRead-t.fileStart);if(!(s.length-s.alreadyRead<=n))return o.debug("ISOFile","Getting item #"+e+" extent #"+r+" partial data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-t.fileStart)+" read size: "+n+" full extent size: "+s.length+" full item size: "+i.size+")"),l.memcpy(i.data.buffer,i.alreadyRead,t,s.offset+s.alreadyRead-t.fileStart,n),s.alreadyRead+=n,i.alreadyRead+=n,t.usedBytes+=n,this.stream.logBufferLevel(),null;o.debug("ISOFile","Getting item #"+e+" extent #"+r+" data (alreadyRead: "+s.alreadyRead+" offset: "+(s.offset+s.alreadyRead-t.fileStart)+" read size: "+(s.length-s.alreadyRead)+" full extent size: "+s.length+" full item size: "+i.size+")"),l.memcpy(i.data.buffer,i.alreadyRead,t,s.offset+s.alreadyRead-t.fileStart,s.length-s.alreadyRead),t.usedBytes+=s.length-s.alreadyRead,this.stream.logBufferLevel(),i.alreadyRead+=s.length-s.alreadyRead,s.alreadyRead=s.length}}return i.alreadyRead===i.size?i:null},y.prototype.releaseItem=function(e){var t=this.items[e];if(t.data){this.itemsDataSize-=t.size,t.data=null,t.alreadyRead=0;for(var i=0;i<t.extents.length;i++){t.extents[i].alreadyRead=0}return t.size}return 0},y.prototype.processItems=function(e){for(var t in this.items){var i=this.items[t];this.getItem(i.id),e&&!i.sent&&(e(i),i.sent=!0,i.data=null)}},y.prototype.hasItem=function(e){for(var t in this.items){var i=this.items[t];if(i.name===e)return i.id}return-1},y.prototype.getMetaHandler=function(){return this.meta?this.meta.hdlr.handler:null},y.prototype.getPrimaryItem=function(){return this.meta&&this.meta.pitm?this.getItem(this.meta.pitm.item_id):null},y.prototype.itemToFragmentedTrackFile=function(e){var t=e||{},i=null;if(null==(i=t.itemId?this.getItem(t.itemId):this.getPrimaryItem()))return null;var r=new y;r.discardMdatData=!1;var s={type:i.type,description_boxes:i.properties.boxes};i.properties.ispe&&(s.width=i.properties.ispe.image_width,s.height=i.properties.ispe.image_height);var a=r.addTrack(s);return a?(r.addSample(a,i.data),r):null},y.prototype.write=function(e){for(var t=0;t<this.boxes.length;t++)this.boxes[t].write(e)},y.prototype.createFragment=function(e,t,i){var r=this.getTrackById(e),s=this.getSample(r,t);if(null==s)return this.setNextSeekPositionFromSample(r.samples[t]),null;var a=i||new l;a.endianness=l.BIG_ENDIAN;var n=this.createSingleSampleMoof(s);n.write(a),n.trafs[0].truns[0].data_offset=n.size+8,o.debug("MP4Box","Adjusting data_offset with new value "+n.trafs[0].truns[0].data_offset),a.adjustUint32(n.trafs[0].truns[0].data_offset_position,n.trafs[0].truns[0].data_offset);var h=new c.mdatBox;return h.data=s.data,h.write(a),a},y.writeInitializationSegment=function(e,t,i,r){var s;o.debug("ISOFile","Generating initialization segment");var a=new l;a.endianness=l.BIG_ENDIAN,e.write(a);var n=t.add("mvex");for(i&&n.add("mehd").set("fragment_duration",i),s=0;s<t.traks.length;s++)n.add("trex").set("track_id",t.traks[s].tkhd.track_id).set("default_sample_description_index",1).set("default_sample_duration",r).set("default_sample_size",0).set("default_sample_flags",65536);return t.write(a),a.buffer},y.prototype.save=function(e){var t=new l;t.endianness=l.BIG_ENDIAN,this.write(t),t.save(e)},y.prototype.getBuffer=function(){var e=new l;return e.endianness=l.BIG_ENDIAN,this.write(e),e.buffer},y.prototype.initializeSegmentation=function(){var e,t,i,r;for(null===this.onSegment&&o.warn("MP4Box","No segmentation callback set!"),this.isFragmentationInitialized||(this.isFragmentationInitialized=!0,this.nextMoofNumber=0,this.resetTables()),t=[],e=0;e<this.fragmentedTracks.length;e++){var s=new c.moovBox;s.mvhd=this.moov.mvhd,s.boxes.push(s.mvhd),i=this.getTrackById(this.fragmentedTracks[e].id),s.boxes.push(i),s.traks.push(i),(r={}).id=i.tkhd.track_id,r.user=this.fragmentedTracks[e].user,r.buffer=y.writeInitializationSegment(this.ftyp,s,this.moov.mvex&&this.moov.mvex.mehd?this.moov.mvex.mehd.fragment_duration:void 0,this.moov.traks[e].samples.length>0?this.moov.traks[e].samples[0].duration:0),t.push(r)}return t},c.Box.prototype.printHeader=function(e){this.size+=8,this.size>h&&(this.size+=8),"uuid"===this.type&&(this.size+=16),e.log(e.indent+"size:"+this.size),e.log(e.indent+"type:"+this.type)},c.FullBox.prototype.printHeader=function(e){this.size+=4,c.Box.prototype.printHeader.call(this,e),e.log(e.indent+"version:"+this.version),e.log(e.indent+"flags:"+this.flags)},c.Box.prototype.print=function(e){this.printHeader(e)},c.ContainerBox.prototype.print=function(e){this.printHeader(e);for(var t=0;t<this.boxes.length;t++)if(this.boxes[t]){var i=e.indent;e.indent+=" ",this.boxes[t].print(e),e.indent=i}},y.prototype.print=function(e){e.indent="";for(var t=0;t<this.boxes.length;t++)this.boxes[t]&&this.boxes[t].print(e)},c.mvhdBox.prototype.print=function(e){c.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"timescale: "+this.timescale),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"rate: "+this.rate),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"next_track_id: "+this.next_track_id)},c.tkhdBox.prototype.print=function(e){c.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"track_id: "+this.track_id),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"layer: "+this.layer),e.log(e.indent+"alternate_group: "+this.alternate_group),e.log(e.indent+"width: "+this.width),e.log(e.indent+"height: "+this.height)};var E={createFile:function(e,t){var i=void 0===e||e,r=new y(t);return r.discardMdatData=!i,r}};t.createFile=E.createFile}));function Nh(e){return e.reduce(((e,t)=>256*e+t))}function Ph(e){const t=[101,103,119,99],i=e.length-28,r=e.slice(i,i+t.length);return t.every(((e,t)=>e===r[t]))}Yh.Log,Yh.MP4BoxStream,Yh.DataStream,Yh.MultiBufferStream,Yh.MPEG4DescriptorParser,Yh.BoxParser,Yh.XMLSubtitlein4Parser,Yh.Textin4Parser,Yh.ISOFile,Yh.createFile;class jh{constructor(){this.s=null,this.a=null,this.l=0,this.c=0,this.u=1/0,this.A=!1,this.d=!1,this.r=4194304,this.n=new Uint8Array([30,158,90,33,244,57,83,165,2,70,35,87,215,231,226,108]),this.t=this.n.slice().reverse()}destroy(){this.s=null,this.a=null,this.l=0,this.c=0,this.u=1/0,this.A=!1,this.d=!1,this.r=4194304,this.n=null,this.t=null}transport(e){if(!this.s&&this.l>50)return e;if(this.l++,this.d)return e;const t=new Uint8Array(e);if(this.A){if(!(this.c<this.u))return this.a&&this.s?(this.a.set(t,this.r),this.s.parse(null,this.r,t.byteLength),this.a.slice(this.r,this.r+t.byteLength)):(console.error("video_error_2"),this.d=!0,e);Ph(t)&&this.c++}else{const i=function(e,t){const i=function(e,t){for(let i=0;i<e.byteLength-t.length;i++)for(let r=0;r<t.length&&e[i+r]===t[r];r++)if(r===t.length-1)return i;return null}(e,t);if(i){const t=Nh(e.slice(i+16,i+16+8));return[t,Nh(e.slice(i+24,i+24+8)),function(e){return e.map((e=>~e))}(e.slice(i+32,i+32+t))]}return null}(t,this.t);if(!i)return e;const r=function(e){try{if("object"!=typeof WebAssembly||"function"!=typeof WebAssembly.instantiate)throw null;{const e=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(!(e instanceof WebAssembly.Module&&new WebAssembly.Instance(e)instanceof WebAssembly.Instance))throw null}}catch(e){return new Error("video_error_4")}let t;try{t={env:{__handle_stack_overflow:()=>e(new Error("video_error_1")),memory:new WebAssembly.Memory({initial:256,maximum:256})}}}catch(e){return new Error("video_error_5")}return t}(e);if(r instanceof Error)return console.error(r.message),this.d=!0,e;this.A=!0,this.u=i[1],Ph(t)&&this.c++,WebAssembly.instantiate(i[2],r).then((e=>{if(!function(e){return"function"==typeof e.parse&&"object"==typeof e.memory}(e.instance.exports))return this.d=!0,void console.error("video_error_3");this.s=e.instance.exports,this.a=new Uint8Array(this.s.memory.buffer)})).catch((e=>{this.d=!0,console.error("video_error_6")}))}return e}}class zh extends Rh{constructor(e){super(e),this.TAG_NAME="Fmp4Loader",this.player=e,this.mp4Box=Yh.createFile(),this.tempFmp4List=[],this.offset=0,this.videoTrackId=null,this.audioTrackId=null,this.isHevc=!1,this.transportDescarmber=null,this.player._opt.isFmp4Private&&(this.transportDescarmber=new jh),this._listenMp4Box(),e.debug.log(this.TAG_NAME,"init")}destroy(){this.mp4Box&&(this.mp4Box.flush(),this.mp4Box=null),this.transportDescarmber&&(this.transportDescarmber.destroy(),this.transportDescarmber=null),this.tempFmp4List=[],this.offset=0,this.videoTrackId=null,this.audioTrackId=null,this.isHevc=!1,this.player.debug.log(this.TAG_NAME,"destroy")}_listenMp4Box(){this.mp4Box.onReady=this.onReady.bind(this),this.mp4Box.onError=this.onError.bind(this),this.mp4Box.onSamples=this.onSamples.bind(this)}onReady(e){this.player.debug.log(this.TAG_NAME,"onReady",e);const t=e.videoTracks[0],i=e.audioTracks[0];if(t){this.videoTrackId=t.id;const e=this.getSeqHeader(t);e&&(this.player.debug.log(this.TAG_NAME,"seqHeader",e),this._doDecodeByFmp4(e,He,0,!0,0)),this.mp4Box.setExtractionOptions(t.id)}if(i&&this.player._opt.hasAudio){this.audioTrackId=i.id;const e=i.audio||{},t=Ps.indexOf(e.sample_rate),r=i.codec.replace("mp4a.40.","");this.mp4Box.setExtractionOptions(i.id);const s={profile:parseInt(r,10),sampleRate:t,channel:e.channel_count},a=Gs(s);this.player.debug.log(this.TAG_NAME,"aacADTSHeader",a,"config",s),this._doDecodeByFmp4(a,Ve,0,!1,0)}this.mp4Box.start()}onError(e){this.player.debug.error(this.TAG_NAME,"mp4Box onError",e)}onSamples(e,t,i){if(e===this.videoTrackId)for(const t of i){const i=t.data,r=t.is_sync,s=1e3*t.cts/t.timescale;t.duration,t.timescale,this.player.updateStats({vbps:i.byteLength,dts:s}),r&&this.calcIframeIntervalTimestamp(s);let a=null;a=this.isHevc?Wn(i,r):Ln(i,r),this._doDecodeByFmp4(a,He,s,r,0),this.mp4Box.releaseUsedSamples(e,t.number)}else if(e===this.audioTrackId){if(this.player._opt.hasAudio)for(const t of i){const i=t.data;this.player.updateStats({abps:i.byteLength});const r=1e3*t.cts/t.timescale;t.duration,t.timescale;const s=new Uint8Array(i.byteLength+2);s.set([175,1],0),s.set(i,2),this._doDecodeByFmp4(s,Ve,r,!1,0),this.mp4Box.releaseUsedSamples(e,t.number)}}else this.player.debug.warn(this.TAG_NAME,"onSamples() trackId error",e)}getSeqHeader(e){const t=this.mp4Box.getTrackById(e.id);for(const e of t.mdia.minf.stbl.stsd.entries)if(e.avcC||e.hvcC){const t=new Yh.DataStream(void 0,0,Yh.DataStream.BIG_ENDIAN);let i=[];e.avcC?(e.avcC.write(t),i=[23,0,0,0,0]):(this.isHevc=!0,e.hvcC.write(t),i=[28,0,0,0,0]);const r=new Uint8Array(t.buffer,8),s=new Uint8Array(i.length+r.length);return s.set(i,0),s.set(r,i.length),s}return null}dispatch(e){let t=new Uint8Array(e);"string"!=typeof e?"object"==typeof e?(this.transportDescarmber&&(t=this.transportDescarmber.transport(t)),t.buffer.fileStart=this.offset,this.offset+=t.byteLength,this.mp4Box.appendBuffer(t.buffer)):this.player.debug.warn(this.TAG_NAME,"dispatch()","data is not object",typeof e):this.player.debug.warn(this.TAG_NAME,"dispatch()","data is string",e)}downloadFmp4File(){const e=new Blob(this.tempFmp4List,{type:'video/mp4; codecs="avc1.640028,mp4a.40.2"'}),t=URL.createObjectURL(e),i=document.createElement("a");i.href=t,i.download=la()+".fmp4",i.click(),URL.revokeObjectURL(t)}getInputByteLength(){let e=0;return this.mp4Box&&(e=this.mp4Box.getAllocatedSampleDataSize()),e}}class Wh extends Rh{LOG_NAME="Mpeg4Loader";constructor(e){super(e),this.player=e,this.player.debug.log(this.LOG_NAME,"init")}destroy(){super.destroy(),this.player.debug.log(this.LOG_NAME,"destroy")}}function Zh(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];if((t=t.filter(Boolean)).length<2)return t[0];const r=new Uint8Array(t.reduce(((e,t)=>e+t.byteLength),0));let s=0;return t.forEach((e=>{r.set(e,s),s+=e.byteLength})),r}const Vh=3,Hh=4,Xh=6,_h=15,$h=17,eA=129,tA=135,iA=21,rA=134,sA=27,aA=36;class oA{constructor(){this.slices=[],this.total_length=0,this.expected_length=0,this.random_access_indicator=0}}class nA{constructor(){this.pid=null,this.data=null,this.stream_type=null,this.random_access_indicator=null}}class lA{constructor(){this.pid=null,this.stream_id=null,this.len=null,this.data=null,this.pts=null,this.nearest_pts=null,this.dts=null}}const hA=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];class AA{constructor(){this.mimeType=null,this.duration=null,this.hasAudio=null,this.hasVideo=null,this.audioCodec=null,this.videoCodec=null,this.audioDataRate=null,this.videoDataRate=null,this.audioSampleRate=null,this.audioChannelCount=null,this.width=null,this.height=null,this.fps=null,this.profile=null,this.level=null,this.refFrames=null,this.chromaFormat=null,this.sarNum=null,this.sarDen=null,this.metadata=null,this.segments=null,this.segmentCount=null,this.hasKeyframesIndex=null,this.keyframesIndex=null}isComplete(){let e=!1===this.hasAudio||!0===this.hasAudio&&null!=this.audioCodec&&null!=this.audioSampleRate&&null!=this.audioChannelCount,t=!1===this.hasVideo||!0===this.hasVideo&&null!=this.videoCodec&&null!=this.width&&null!=this.height&&null!=this.fps&&null!=this.profile&&null!=this.level&&null!=this.refFrames&&null!=this.chromaFormat&&null!=this.sarNum&&null!=this.sarDen;return null!=this.mimeType&&e&&t}isSeekable(){return!0===this.hasKeyframesIndex}getNearestKeyframe(e){if(null==this.keyframesIndex)return null;let t=this.keyframesIndex,i=this._search(t.times,e);return{index:i,milliseconds:t.times[i],fileposition:t.filepositions[i]}}_search(e,t){let i=0,r=e.length-1,s=0,a=0,o=r;for(t<e[0]&&(i=0,a=o+1);a<=o;){if(s=a+Math.floor((o-a)/2),s===r||t>=e[s]&&t<e[s+1]){i=s;break}e[s]<t?a=s+1:o=s-1}return i}}class dA{constructor(e){let t=null,i=e.audio_object_type,r=e.audio_object_type,s=e.sampling_freq_index,a=e.channel_config,o=0,n=navigator.userAgent.toLowerCase();-1!==n.indexOf("firefox")?s>=6?(r=5,t=new Array(4),o=s-3):(r=2,t=new Array(2),o=s):-1!==n.indexOf("android")?(r=2,t=new Array(2),o=s):(r=5,o=s,t=new Array(4),s>=6?o=s-3:1===a&&(r=2,t=new Array(2),o=s)),t[0]=r<<3,t[0]|=(15&s)>>>1,t[1]=(15&s)<<7,t[1]|=(15&a)<<3,5===r&&(t[1]|=(15&o)>>>1,t[2]=(1&o)<<7,t[2]|=8,t[3]=0),this.config=t,this.sampling_rate=hA[s],this.sampling_index=s,this.channel_count=a,this.object_type=r,this.original_object_type=i,this.codec_mimetype="mp4a.40."+r,this.original_codec_mimetype="mp4a.40."+i}}class cA extends Rh{constructor(e){super(e),this.player=e,this.TAG_NAME="TsLoaderV2",this.first_parse_=!0,this.tsPacketSize=0,this.syncOffset=0,this.pmt_=null,this.config_=null,this.media_info_=new AA,this.timescale_=90,this.duration_=0,this.pat_={version_number:0,network_pid:0,program_map_pid:{}},this.current_program_=null,this.current_pmt_pid_=-1,this.program_pmt_map_={},this.pes_slice_queues_={},this.section_slice_queues_={},this.video_metadata_={vps:null,sps:null,pps:null,details:null},this.audio_metadata_={codec:null,audio_object_type:null,sampling_freq_index:null,sampling_frequency:null,channel_config:null},this.last_pcr_=null,this.audio_last_sample_pts_=void 0,this.aac_last_incomplete_data_=null,this.has_video_=!1,this.has_audio_=!1,this.video_init_segment_dispatched_=!1,this.audio_init_segment_dispatched_=!1,this.video_metadata_changed_=!1,this.audio_metadata_changed_=!1,this.loas_previous_frame=null,this.video_track_={type:"video",id:1,sequenceNumber:0,samples:[],length:0},this.audio_track_={type:"audio",id:2,sequenceNumber:0,samples:[],length:0},this._remainingPacketData=null,this.player.debug.log(this.TAG_NAME,"init")}destroy(){this.media_info_=null,this.pes_slice_queues_=null,this.section_slice_queues_=null,this.video_metadata_=null,this.audio_metadata_=null,this.aac_last_incomplete_data_=null,this.video_track_=null,this.audio_track_=null,this._remainingPacketData=null,super.destroy()}probe(e){let t=new Uint8Array(e),i=-1,r=188;if(t.byteLength<=3*r)return{needMoreData:!0};for(;-1===i;){let e=Math.min(1e3,t.byteLength-3*r);for(let s=0;s<e;){if(71===t[s]&&71===t[s+r]&&71===t[s+2*r]){i=s;break}s++}if(-1===i)if(188===r)r=192;else{if(192!==r)break;r=204}}return-1===i?{match:!1}:(192===r&&i>=4&&(i-=4),{match:!0,consumed:0,ts_packet_size:r,sync_offset:i})}_initPmt(){return{program_number:0,version_number:0,pcr_pid:0,pid_stream_type:{},common_pids:{h264:void 0,h265:void 0,adts_aac:void 0,loas_aac:void 0,opus:void 0,ac3:void 0,eac3:void 0,mp3:void 0},pes_private_data_pids:{},timed_id3_pids:{},synchronous_klv_pids:{},asynchronous_klv_pids:{},scte_35_pids:{},smpte2038_pids:{}}}dispatch(e){let t=new Uint8Array(e);this._remainingPacketData&&(t=Zh(this._remainingPacketData,t),this._remainingPacketData=null);let i=t.buffer;const r=this.parseChunks(i);r?this._remainingPacketData=t.subarray(r):t.length<this.tsPacketSize&&(this._remainingPacketData=t)}parseChunks(e){let t=0;if(this.first_parse_){this.first_parse_=!1;const i=this.probe(e);i.match&&(this.tsPacketSize=i.ts_packet_size,this.syncOffset=i.sync_offset),t=this.syncOffset,this.player.debug.log(this.TAG_NAME,`isFirstDispatch and tsPacketSize = ${this.tsPacketSize}, syncOffset = ${this.syncOffset}`)}for(;t+this.tsPacketSize<=e.byteLength;){192===this.tsPacketSize&&(t+=4);const i=new Uint8Array(e,t,188);let r=i[0];if(71!==r){this.player.debug.warn(this.TAG_NAME,`parseChunks() sync_byte = ${r}, not start with 0x47, so break`);break}let s=(64&i[1])>>>6;i[1];let a=(31&i[1])<<8|i[2],o=(48&i[3])>>>4,n=15&i[3],l=!(!this.pmt_||this.pmt_.pcr_pid!==a),h={},A=4;if(2==o||3==o){let e=i[4];if(e>0&&(l||3==o)){if(h.discontinuity_indicator=(128&i[5])>>>7,h.random_access_indicator=(64&i[5])>>>6,h.elementary_stream_priority_indicator=(32&i[5])>>>5,(16&i[5])>>>4){let e=300*(i[6]<<25|i[7]<<17|i[8]<<9|i[9]<<1|i[10]>>>7)+((1&i[10])<<8|i[11]);this.last_pcr_=e}}if(2==o||5+e===188){t+=188,204===this.tsPacketSize&&(t+=16);continue}A=5+e}if(1==o||3==o)if(0===a||a===this.current_pmt_pid_||null!=this.pmt_&&this.pmt_.pid_stream_type[a]===rA){let i=188-A;this.handleSectionSlice(e,t+A,i,{pid:a,payload_unit_start_indicator:s,continuity_conunter:n,random_access_indicator:h.random_access_indicator})}else if(null!=this.pmt_&&null!=this.pmt_.pid_stream_type[a]){let i=188-A,r=this.pmt_.pid_stream_type[a];a!==this.pmt_.common_pids.h264&&a!==this.pmt_.common_pids.h265&&a!==this.pmt_.common_pids.adts_aac&&a!==this.pmt_.common_pids.loas_aac&&a!==this.pmt_.common_pids.ac3&&a!==this.pmt_.common_pids.eac3&&a!==this.pmt_.common_pids.opus&&a!==this.pmt_.common_pids.mp3&&!0!==this.pmt_.pes_private_data_pids[a]&&!0!==this.pmt_.timed_id3_pids[a]&&!0!==this.pmt_.synchronous_klv_pids[a]&&!0!==this.pmt_.asynchronous_klv_pids[a]||this.handlePESSlice(e,t+A,i,{pid:a,stream_type:r,payload_unit_start_indicator:s,continuity_conunter:n,random_access_indicator:h.random_access_indicator})}t+=188,204===this.tsPacketSize&&(t+=16)}return this.dispatchAudioVideoMediaSegment(),t}handleSectionSlice(e,t,i,r){let s=new Uint8Array(e,t,i),a=this.section_slice_queues_[r.pid];if(r.payload_unit_start_indicator){let o=s[0];if(null!=a&&0!==a.total_length){let s=new Uint8Array(e,t+1,Math.min(i,o));a.slices.push(s),a.total_length+=s.byteLength,a.total_length===a.expected_length?this.emitSectionSlices(a,r):this.clearSlices(a,r)}for(let n=1+o;n<s.byteLength;){if(255===s[n+0])break;let o=(15&s[n+1])<<8|s[n+2];this.section_slice_queues_[r.pid]=new oA,a=this.section_slice_queues_[r.pid],a.expected_length=o+3,a.random_access_indicator=r.random_access_indicator;let l=new Uint8Array(e,t+n,Math.min(i-n,a.expected_length-a.total_length));a.slices.push(l),a.total_length+=l.byteLength,a.total_length===a.expected_length?this.emitSectionSlices(a,r):a.total_length>=a.expected_length&&this.clearSlices(a,r),n+=l.byteLength}}else if(null!=a&&0!==a.total_length){let s=new Uint8Array(e,t,Math.min(i,a.expected_length-a.total_length));a.slices.push(s),a.total_length+=s.byteLength,a.total_length===a.expected_length?this.emitSectionSlices(a,r):a.total_length>=a.expected_length&&this.clearSlices(a,r)}}handlePESSlice(e,t,i,r){let s=new Uint8Array(e,t,i),a=s[0]<<16|s[1]<<8|s[2];s[3];let o=s[4]<<8|s[5];if(r.payload_unit_start_indicator){if(1!==a)return void this.player.debug.warn(this.TAG_NAME,`handlePESSlice: packet_start_code_prefix should be 1 but with value ${a}`);let e=this.pes_slice_queues_[r.pid];e&&(0===e.expected_length||e.expected_length===e.total_length?this.emitPESSlices(e,r):this.clearSlices(e,r)),this.pes_slice_queues_[r.pid]=new oA,this.pes_slice_queues_[r.pid].random_access_indicator=r.random_access_indicator}if(null==this.pes_slice_queues_[r.pid])return;let n=this.pes_slice_queues_[r.pid];n.slices.push(s),r.payload_unit_start_indicator&&(n.expected_length=0===o?0:o+6),n.total_length+=s.byteLength,n.expected_length>0&&n.expected_length===n.total_length?this.emitPESSlices(n,r):n.expected_length>0&&n.expected_length<n.total_length&&this.clearSlices(n,r)}emitSectionSlices(e,t){let i=new Uint8Array(e.total_length);for(let t=0,r=0;t<e.slices.length;t++){let s=e.slices[t];i.set(s,r),r+=s.byteLength}e.slices=[],e.expected_length=-1,e.total_length=0;let r={};r.pid=t.pid,r.data=i,r.file_position=e.file_position,r.random_access_indicator=e.random_access_indicator,this.parseSection(r)}emitPESSlices(e,t){let i=new Uint8Array(e.total_length);for(let t=0,r=0;t<e.slices.length;t++){let s=e.slices[t];i.set(s,r),r+=s.byteLength}e.slices=[],e.expected_length=-1,e.total_length=0;let r=new nA;r.pid=t.pid,r.data=i,r.stream_type=t.stream_type,r.random_access_indicator=e.random_access_indicator,this.parsePES(r)}clearSlices(e){e.slices=[],e.expected_length=-1,e.total_length=0}parseSection(e){let t=e.data,i=e.pid;0===i?this.parsePAT(t):i===this.current_pmt_pid_?this.parsePMT(t):null!=this.pmt_&&this.pmt_.scte_35_pids[i]&&this.parseSCTE35(t)}parsePES(e){let t=e.data,i=t[0]<<16|t[1]<<8|t[2],r=t[3],s=t[4]<<8|t[5];if(1===i){if(188!==r&&190!==r&&191!==r&&240!==r&&241!==r&&255!==r&&242!==r&&248!==r){t[6];let i,a,o=(192&t[7])>>>6,n=t[8];2!==o&&3!==o||(i=536870912*(14&t[9])+4194304*(255&t[10])+16384*(254&t[11])+128*(255&t[12])+(254&t[13])/2,a=3===o?536870912*(14&t[14])+4194304*(255&t[15])+16384*(254&t[16])+128*(255&t[17])+(254&t[18])/2:i);let l,h=9+n;if(0!==s){if(s<3+n)return void this.player.debug.warn(this.TAG_NAME,"Malformed PES: PES_packet_length < 3 + PES_header_data_length");l=s-3-n}else l=t.byteLength-h;let A=t.subarray(h,h+l);switch(e.stream_type){case Vh:case Hh:this.parseMP3Payload(A,i);break;case Xh:this.pmt_.common_pids.opus===e.pid?this.parseOpusPayload(A,i):this.pmt_.common_pids.ac3===e.pid?this.parseAC3Payload(A,i):this.pmt_.common_pids.eac3===e.pid?this.parseEAC3Payload(A,i):this.pmt_.asynchronous_klv_pids[e.pid]?this.parseAsynchronousKLVMetadataPayload(A,e.pid,r):this.pmt_.smpte2038_pids[e.pid]?this.parseSMPTE2038MetadataPayload(A,i,a,e.pid,r):this.parsePESPrivateDataPayload(A,i,a,e.pid,r);break;case _h:this.parseADTSAACPayload(A,i);break;case $h:this.parseLOASAACPayload(A,i);break;case eA:this.parseAC3Payload(A,i);break;case tA:this.parseEAC3Payload(A,i);break;case iA:this.pmt_.timed_id3_pids[e.pid]?this.parseTimedID3MetadataPayload(A,i,a,e.pid,r):this.pmt_.synchronous_klv_pids[e.pid]&&this.parseSynchronousKLVMetadataPayload(A,i,a,e.pid,r);break;case sA:this.parseH264Payload(A,i,a,e.random_access_indicator);break;case aA:this.parseH265Payload(A,i,a,e.random_access_indicator)}}else if((188===r||191===r||240===r||241===r||255===r||242===r||248===r)&&e.stream_type===Xh){let i,a=6;i=0!==s?s:t.byteLength-a;let o=t.subarray(a,a+i);this.parsePESPrivateDataPayload(o,void 0,void 0,e.pid,r)}}else this.player.debug.error(this.TAG_NAME,`parsePES: packet_start_code_prefix should be 1 but with value ${i}`)}parsePAT(e){let t=e[0];if(0!==t)return void Log.e(this.TAG,`parsePAT: table_id ${t} is not corresponded to PAT!`);let i=(15&e[1])<<8|e[2];e[3],e[4];let r=(62&e[5])>>>1,s=1&e[5],a=e[6];e[7];let o=null;if(1===s&&0===a)o={version_number:0,network_pid:0,program_pmt_pid:{}},o.version_number=r;else if(o=this.pat_,null==o)return;let n=i-5-4,l=-1,h=-1;for(let t=8;t<8+n;t+=4){let i=e[t]<<8|e[t+1],r=(31&e[t+2])<<8|e[t+3];0===i?o.network_pid=r:(o.program_pmt_pid[i]=r,-1===l&&(l=i),-1===h&&(h=r))}1===s&&0===a&&(null==this.pat_&&this.player.debug.log(this.TAG_NAME,`Parsed first PAT: ${JSON.stringify(o)}`),this.pat_=o,this.current_program_=l,this.current_pmt_pid_=h)}parsePMT(e){let t=e[0];if(2!==t)return void this.player.debug.error(this.TAG_NAME,`parsePMT: table_id ${t} is not corresponded to PMT!`);let i,r=(15&e[1])<<8|e[2],s=e[3]<<8|e[4],a=(62&e[5])>>>1,o=1&e[5],n=e[6];if(e[7],1===o&&0===n)i=this._initPmt(),i.program_number=s,i.version_number=a,this.program_pmt_map_[s]=i;else if(i=this.program_pmt_map_[s],null==i)return;i.pcr_pid=(31&e[8])<<8|e[9];let l=(15&e[10])<<8|e[11],h=12+l,A=r-9-l-4;for(let t=h;t<h+A;){let r=e[t],s=(31&e[t+1])<<8|e[t+2],a=(15&e[t+3])<<8|e[t+4];i.pid_stream_type[s]=r;let o=i.common_pids.h264||i.common_pids.h265,n=i.common_pids.adts_aac||i.common_pids.loas_aac||i.common_pids.ac3||i.common_pids.eac3||i.common_pids.opus||i.common_pids.mp3;if(r!==sA||o)if(r!==aA||o)if(r!==_h||n)if(r!==$h||n)if(r!==eA||n)if(r!==tA||n)if(r!==Vh&&r!==Hh||n)if(r===Xh){if(i.pes_private_data_pids[s]=!0,a>0){for(let r=t+5;r<t+5+a;){let t=e[r+0],a=e[r+1];if(5===t){let t=String.fromCharCode(...Array.from(e.subarray(r+2,r+2+a)));"VANC"===t?i.smpte2038_pids[s]=!0:"Opus"===t?i.common_pids.opus=s:"KLVA"===t&&(i.asynchronous_klv_pids[s]=!0)}else if(127===t&&s===i.common_pids.opus){let t=null;if(128===e[r+2]&&(t=e[r+3]),null==t){Log.e(this.TAG,"Not Supported Opus channel count.");continue}const i={codec:"opus",channel_count:0==(15&t)?2:15&t,channel_config_code:t,sample_rate:48e3},s={codec:"opus",meta:i};0==this.audio_init_segment_dispatched_?(this.audio_metadata_=i,this.dispatchAudioInitSegment(s)):this.detectAudioMetadataChange(s)&&(this.dispatchAudioMediaSegment(),this.dispatchAudioInitSegment(s))}r+=2+a}let o=e.subarray(t+5,t+5+a);this.dispatchPESPrivateDataDescriptor(s,r,o)}}else if(r===iA){if(a>0)for(let r=t+5;r<t+5+a;){let t=e[r+0],a=e[r+1];if(38===t){let t=e[r+2]<<8|e[r+3]<<0,a=null;65535===t&&(a=String.fromCharCode(...Array.from(e.subarray(r+4,r+4+4))));let o=null;if(255===e[r+4+(65535===t?4:0)]){let i=4+(65535===t?4:0)+1;o=String.fromCharCode(...Array.from(e.subarray(r+i,r+i+4)))}"ID3 "===a&&"ID3 "===o?i.timed_id3_pids[s]=!0:"KLVA"===o&&(i.synchronous_klv_pids[s]=!0)}r+=2+a}}else r===rA&&(i.scte_35_pids[s]=!0);else i.common_pids.mp3=s;else i.common_pids.eac3=s;else i.common_pids.ac3=s;else i.common_pids.loas_aac=s;else i.common_pids.adts_aac=s;else i.common_pids.h265=s;else i.common_pids.h264=s;t+=5+a}s===this.current_program_&&(null==this.pmt_&&this.player.debug.log(this.TAG_NAME,`Parsed first PMT: ${JSON.stringify(i)}`),this.pmt_=i,(i.common_pids.h264||i.common_pids.h265)&&(this.has_video_=!0),(i.common_pids.adts_aac||i.common_pids.loas_aac||i.common_pids.ac3||i.common_pids.opus||i.common_pids.mp3)&&(this.has_audio_=!0))}parseSCTE35(e){}parseH264Payload(e,t,i,r){let s=new Un(e),a=null,o=null,n=[],l=0,h=!1;for(;null!=(a=s.readNextNaluPayload());){let e=new Gn(a);if(e.type===Ft.kSliceSPS){let t=bn.parseSPS$2(a.data);this.video_init_segment_dispatched_?!0===this.detectVideoMetadataChange(e,t)&&(this.player.debug.log(this.TAG_NAME,"H264: Critical h264 metadata has been changed, attempt to re-generate InitSegment"),this.video_metadata_changed_=!0,this.video_metadata_={vps:void 0,sps:e,pps:void 0,details:t}):(this.video_metadata_.sps=e,this.video_metadata_.details=t)}else e.type===Ft.kSlicePPS?this.video_init_segment_dispatched_&&!this.video_metadata_changed_||(this.video_metadata_.pps=e,this.video_metadata_.sps&&this.video_metadata_.pps&&(this.video_metadata_changed_&&this.dispatchVideoMediaSegment(),this.dispatchVideoInitSegment())):(e.type===Ft.kSliceIDR||e.type===Ft.kSliceNonIDR&&1===r)&&(h=!0);this.video_init_segment_dispatched_&&(n.push(e),l+=e.data.byteLength)}let A=Math.floor(t/this.timescale_),d=Math.floor(i/this.timescale_);if(n.length){let e=this.video_track_;for(let e=0;e<n.length;e++){let t=n[e];if(null==o)o=t.data;else{let e=new Uint8Array(o.byteLength+t.data.byteLength);e.set(o,0),e.set(t.data,o.byteLength),o=e}}let t={length:l,isIFrame:h,dts:d,pts:A,cts:A-d,payload:o,type:He,isHevc:!1};e.samples.push(t),e.length=o.byteLength}}parseH265Payload(e,t,i,r){let s=new Xn(e),a=null,o=null,n=[],l=0,h=!1;for(;null!=(a=s.readNextNaluPayload());){let e=new _n(a);if(e.type===Yt){if(!this.video_init_segment_dispatched_){let t=Yn.parseVPS(a.data);this.video_metadata_.vps=e,this.video_metadata_.details={...this.video_metadata_.details,...t}}}else if(e.type===Pt){let t=Yn.parseSPS(a.data);this.video_init_segment_dispatched_?!0===this.detectVideoMetadataChange(e,t)&&(this.player.debug.log(this.TAG_NAME,"H265: Critical h265 metadata has been changed, attempt to re-generate InitSegment"),this.video_metadata_changed_=!0,this.video_metadata_={vps:void 0,sps:e,pps:void 0,details:t}):(this.video_metadata_.sps=e,this.video_metadata_.details={...this.video_metadata_.details,...t})}else if(e.type===zt){if(!this.video_init_segment_dispatched_||this.video_metadata_changed_){let t=Yn.parsePPS(a.data);this.video_metadata_.pps=e,this.video_metadata_.details={...this.video_metadata_.details,...t},this.video_metadata_.vps&&this.video_metadata_.sps&&this.video_metadata_.pps&&(this.video_metadata_changed_&&this.dispatchVideoMediaSegment(),this.dispatchVideoInitSegment())}}else e.type!==Ut&&e.type!==Gt&&e.type!==Ot||(h=!0);this.video_init_segment_dispatched_&&(n.push(e),l+=e.data.byteLength)}let A=Math.floor(t/this.timescale_),d=Math.floor(i/this.timescale_);if(n.length){let e=this.video_track_;for(let e=0;e<n.length;e++){let t=n[e];if(null==o)o=t.data;else{let e=new Uint8Array(o.byteLength+t.data.byteLength);e.set(o,0),e.set(t.data,o.byteLength),o=e}}let t={type:He,length:l,isIFrame:h,dts:d,pts:A,cts:A-d,payload:o,isHevc:!0};e.samples.push(t),e.length=o.byteLength}}detectVideoMetadataChange(e,t){if(t.codec_mimetype!==this.video_metadata_.details.codec_mimetype)return this.player.debug.log(this.TAG_NAME,`Video: Codec mimeType changed from ${this.video_metadata_.details.codec_mimetype} to ${t.codec_mimetype}`),!0;if(t.codec_size.width!==this.video_metadata_.details.codec_size.width||t.codec_size.height!==this.video_metadata_.details.codec_size.height){let e=this.video_metadata_.details.codec_size,i=t.codec_size;return this.player.debug.log(this.TAG_NAME,`Video: Coded Resolution changed from ${e.width}x${e.height} to ${i.width}x${i.height}`),!0}return t.present_size.width!==this.video_metadata_.details.present_size.width&&(this.player.debug.log(this.TAG_NAME,`Video: Present resolution width changed from ${this.video_metadata_.details.present_size.width} to ${t.present_size.width}`),!0)}isInitSegmentDispatched(){return this.has_video_&&this.has_audio_?this.video_init_segment_dispatched_&&this.audio_init_segment_dispatched_:this.has_video_&&!this.has_audio_?this.video_init_segment_dispatched_:!(this.has_video_||!this.has_audio_)&&this.audio_init_segment_dispatched_}dispatchVideoInitSegment(){let e=this.video_metadata_.details,t={type:"video"};t.id=this.video_track_.id,t.timescale=1e3,t.duration=this.duration_,t.codecWidth=e.codec_size.width,t.codecHeight=e.codec_size.height,t.presentWidth=e.present_size.width,t.presentHeight=e.present_size.height,t.profile=e.profile_string,t.level=e.level_string,t.bitDepth=e.bit_depth,t.chromaFormat=e.chroma_format,t.sarRatio=e.sar_ratio,t.frameRate=e.frame_rate;let i=t.frameRate.fps_den,r=t.frameRate.fps_num;t.refSampleDuration=i/r*1e3,t.codec=e.codec_mimetype;let s=!1;if(this.video_metadata_.vps){s=!0;let e=this.video_metadata_.vps.data.subarray(4),i=this.video_metadata_.sps.data.subarray(4),r=this.video_metadata_.pps.data.subarray(4);t.hvcc=zn({vps:e,sps:i,pps:r}),0==this.video_init_segment_dispatched_&&this.player.debug.log(this.TAG_NAME,`Generated first HEVCDecoderConfigurationRecord for mimeType: ${t.codec}`),t.hvcc&&this._doDecodeByTs(t.hvcc,He,0,!0,0)}else{let e=this.video_metadata_.sps.data.subarray(4),i=this.video_metadata_.pps.data.subarray(4);t.avcc=Tn({sps:e,pps:i}),0==this.video_init_segment_dispatched_&&this.player.debug.log(this.TAG_NAME,`Generated first AVCDecoderConfigurationRecord for mimeType: ${t.codec}`),t.avcc&&this._doDecodeByTs(t.avcc,He,0,!0,0)}this.video_init_segment_dispatched_=!0,this.video_metadata_changed_=!1;let a=this.media_info_;a.hasVideo=!0,a.width=t.codecWidth,a.height=t.codecHeight,a.fps=t.frameRate.fps,a.profile=t.profile,a.level=t.level,a.refFrames=e.ref_frames,a.chromaFormat=e.chroma_format_string,a.sarNum=t.sarRatio.width,a.sarDen=t.sarRatio.height,a.videoCodec=t.codec,a.hasAudio&&a.audioCodec?a.mimeType=`video/mp2t; codecs="${a.videoCodec},${a.audioCodec}"`:a.mimeType=`video/mp2t; codecs="${a.videoCodec}"`,this.player.video.updateVideoInfo({width:t.codecWidth,height:t.codecHeight,encTypeCode:s?Rt:Qt})}dispatchVideoMediaSegment(){this.isInitSegmentDispatched()&&this.video_track_.length&&this._preDoDecode()}dispatchAudioMediaSegment(){this.isInitSegmentDispatched()&&this.audio_track_.length&&this._preDoDecode()}dispatchAudioVideoMediaSegment(){this.isInitSegmentDispatched()&&(this.audio_track_.length||this.video_track_.length)&&this._preDoDecode()}parseADTSAACPayload(e,t){if(this.has_video_&&!this.video_init_segment_dispatched_)return;if(this.aac_last_incomplete_data_){let t=new Uint8Array(e.byteLength+this.aac_last_incomplete_data_.byteLength);t.set(this.aac_last_incomplete_data_,0),t.set(e,this.aac_last_incomplete_data_.byteLength),e=t}let i,r;if(null!=t&&(r=t/this.timescale_),"aac"===this.audio_metadata_.codec){if(null==t&&null!=this.audio_last_sample_pts_)i=1024/this.audio_metadata_.sampling_frequency*1e3,r=this.audio_last_sample_pts_+i;else if(null==t)return void this.player.debug.warn(this.TAG_NAME,"AAC: Unknown pts");if(this.aac_last_incomplete_data_&&this.audio_last_sample_pts_){i=1024/this.audio_metadata_.sampling_frequency*1e3;let e=this.audio_last_sample_pts_+i;Math.abs(e-r)>1&&(this.player.debug.warn(this.TAG_NAME,`AAC: Detected pts overlapped, expected: ${e}ms, PES pts: ${r}ms`),r=e)}}let s,a=new ea(e),o=null,n=r;for(;null!=(o=a.readNextAACFrame());){i=1024/o.sampling_frequency*1e3;const e={codec:"aac",data:o};0==this.audio_init_segment_dispatched_?(this.audio_metadata_={codec:"aac",audio_object_type:o.audio_object_type,sampling_freq_index:o.sampling_freq_index,sampling_frequency:o.sampling_frequency,channel_config:o.channel_config},this.dispatchAudioInitSegment(e)):this.detectAudioMetadataChange(e)&&(this.dispatchAudioMediaSegment(),this.dispatchAudioInitSegment(e)),s=n;let t=Math.floor(n);const r=new Uint8Array(o.data.length+2);r.set([175,1],0),r.set(o.data,2);let a={payload:r,length:r.byteLength,pts:t,dts:t,type:Ve};this.audio_track_.samples.push(a),this.audio_track_.length+=r.byteLength,n+=i}a.hasIncompleteData()&&(this.aac_last_incomplete_data_=a.getIncompleteData()),s&&(this.audio_last_sample_pts_=s)}parseLOASAACPayload(e,t){if(this.has_video_&&!this.video_init_segment_dispatched_)return;if(this.aac_last_incomplete_data_){let t=new Uint8Array(e.byteLength+this.aac_last_incomplete_data_.byteLength);t.set(this.aac_last_incomplete_data_,0),t.set(e,this.aac_last_incomplete_data_.byteLength),e=t}let i,r;if(null!=t&&(r=t/this.timescale_),"aac"===this.audio_metadata_.codec){if(null==t&&null!=this.audio_last_sample_pts_)i=1024/this.audio_metadata_.sampling_frequency*1e3,r=this.audio_last_sample_pts_+i;else if(null==t)return void this.player.debug.warn(this.TAG_NAME,"AAC: Unknown pts");if(this.aac_last_incomplete_data_&&this.audio_last_sample_pts_){i=1024/this.audio_metadata_.sampling_frequency*1e3;let e=this.audio_last_sample_pts_+i;Math.abs(e-r)>1&&(this.player.debug.warn(this.TAG,`AAC: Detected pts overlapped, expected: ${e}ms, PES pts: ${r}ms`),r=e)}}let s,a=new ta(e),o=null,n=r;for(;null!=(o=a.readNextAACFrame(this.loas_previous_frame??void 0));){this.loas_previous_frame=o,i=1024/o.sampling_frequency*1e3;const e={codec:"aac",data:o};0==this.audio_init_segment_dispatched_?(this.audio_metadata_={codec:"aac",audio_object_type:o.audio_object_type,sampling_freq_index:o.sampling_freq_index,sampling_frequency:o.sampling_frequency,channel_config:o.channel_config},this.dispatchAudioInitSegment(e)):this.detectAudioMetadataChange(e)&&(this.dispatchAudioMediaSegment(),this.dispatchAudioInitSegment(e)),s=n;let t=Math.floor(n);const r=new Uint8Array(o.data.length+2);r.set([175,1],0),r.set(o.data,2);let a={payload:r,length:r.byteLength,pts:t,dts:t,type:Ve};this.audio_track_.samples.push(a),this.audio_track_.length+=r.byteLength,n+=i}a.hasIncompleteData()&&(this.aac_last_incomplete_data_=a.getIncompleteData()),s&&(this.audio_last_sample_pts_=s)}parseAC3Payload(e,t){}parseEAC3Payload(e,t){}parseOpusPayload(e,t){}parseMP3Payload(e,t){if(this.has_video_&&!this.video_init_segment_dispatched_)return;let i=[44100,48e3,32e3,0],r=[22050,24e3,16e3,0],s=[11025,12e3,8e3,0],a=e[1]>>>3&3,o=(6&e[1])>>1;e[2];let n=(12&e[2])>>>2,l=3!==(e[3]>>>6&3)?2:1,h=0,A=34;switch(a){case 0:h=s[n];break;case 2:h=r[n];break;case 3:h=i[n]}switch(o){case 1:A=34;break;case 2:A=33;break;case 3:A=32}const d={};d.object_type=A,d.sample_rate=h,d.channel_count=l,d.data=e;const c={codec:"mp3",data:d};0==this.audio_init_segment_dispatched_?(this.audio_metadata_={codec:"mp3",object_type:A,sample_rate:h,channel_count:l},this.dispatchAudioInitSegment(c)):this.detectAudioMetadataChange(c)&&(this.dispatchAudioMediaSegment(),this.dispatchAudioInitSegment(c));let u={payload:e,length:e.byteLength,pts:t/this.timescale_,dts:t/this.timescale_,type:Ve};this.audio_track_.samples.push(u),this.audio_track_.length+=e.byteLength}detectAudioMetadataChange(e){if(e.codec!==this.audio_metadata_.codec)return this.player.debug.log(this.TAG_NAME,`Audio: Audio Codecs changed from ${this.audio_metadata_.codec} to ${e.codec}`),!0;if("aac"===e.codec&&"aac"===this.audio_metadata_.codec){const t=e.data;if(t.audio_object_type!==this.audio_metadata_.audio_object_type)return this.player.debug.log(this.TAG_NAME,`AAC: AudioObjectType changed from ${this.audio_metadata_.audio_object_type} to ${t.audio_object_type}`),!0;if(t.sampling_freq_index!==this.audio_metadata_.sampling_freq_index)return this.player.debug.log(this.TAG_NAME,`AAC: SamplingFrequencyIndex changed from ${this.audio_metadata_.sampling_freq_index} to ${t.sampling_freq_index}`),!0;if(t.channel_config!==this.audio_metadata_.channel_config)return this.player.debug.log(this.TAG_NAME,`AAC: Channel configuration changed from ${this.audio_metadata_.channel_config} to ${t.channel_config}`),!0}else if("ac-3"===e.codec&&"ac-3"===this.audio_metadata_.codec){const t=e.data;if(t.sampling_frequency!==this.audio_metadata_.sampling_frequency)return this.player.debug.log(this.TAG_NAME,`AC3: Sampling Frequency changed from ${this.audio_metadata_.sampling_frequency} to ${t.sampling_frequency}`),!0;if(t.bit_stream_identification!==this.audio_metadata_.bit_stream_identification)return this.player.debug.log(this.TAG_NAME,`AC3: Bit Stream Identification changed from ${this.audio_metadata_.bit_stream_identification} to ${t.bit_stream_identification}`),!0;if(t.bit_stream_mode!==this.audio_metadata_.bit_stream_mode)return this.player.debug.log(this.TAG_NAME,`AC3: BitStream Mode changed from ${this.audio_metadata_.bit_stream_mode} to ${t.bit_stream_mode}`),!0;if(t.channel_mode!==this.audio_metadata_.channel_mode)return this.player.debug.log(this.TAG_NAME,`AC3: Channel Mode changed from ${this.audio_metadata_.channel_mode} to ${t.channel_mode}`),!0;if(t.low_frequency_effects_channel_on!==this.audio_metadata_.low_frequency_effects_channel_on)return this.player.debug.log(this.TAG_NAME,`AC3: Low Frequency Effects Channel On changed from ${this.audio_metadata_.low_frequency_effects_channel_on} to ${t.low_frequency_effects_channel_on}`),!0}else if("opus"===e.codec&&"opus"===this.audio_metadata_.codec){const t=e.meta;if(t.sample_rate!==this.audio_metadata_.sample_rate)return this.player.debug.log(this.TAG_NAME,`Opus: SamplingFrequencyIndex changed from ${this.audio_metadata_.sample_rate} to ${t.sample_rate}`),!0;if(t.channel_count!==this.audio_metadata_.channel_count)return this.player.debug.log(this.TAG_NAME,`Opus: Channel count changed from ${this.audio_metadata_.channel_count} to ${t.channel_count}`),!0}else if("mp3"===e.codec&&"mp3"===this.audio_metadata_.codec){const t=e.data;if(t.object_type!==this.audio_metadata_.object_type)return this.player.debug.log(this.TAG_NAME,`MP3: AudioObjectType changed from ${this.audio_metadata_.object_type} to ${t.object_type}`),!0;if(t.sample_rate!==this.audio_metadata_.sample_rate)return this.player.debug.log(this.TAG_NAME,`MP3: SamplingFrequencyIndex changed from ${this.audio_metadata_.sample_rate} to ${t.sample_rate}`),!0;if(t.channel_count!==this.audio_metadata_.channel_count)return this.player.debug.log(this.TAG_NAME,`MP3: Channel count changed from ${this.audio_metadata_.channel_count} to ${t.channel_count}`),!0}return!1}dispatchAudioInitSegment(e){let t={type:"audio"};t.id=this.audio_track_.id,t.timescale=1e3,t.duration=this.duration_;let i="";if("aac"===this.audio_metadata_.codec){let r="aac"===e.codec?e.data:null,s=new dA(r);t.audioSampleRate=s.sampling_rate,t.audioSampleRateIndex=s.sampling_index,t.channelCount=s.channel_count,t.codec=s.codec_mimetype,t.originalCodec=s.original_codec_mimetype,t.config=s.config,t.refSampleDuration=1024/t.audioSampleRate*t.timescale,i=Kt.AAC;const a=Gs({profile:this.player._opt.mseDecodeAudio?s.object_type:s.original_object_type,sampleRate:t.audioSampleRateIndex,channel:t.channelCount});console.error("aacADTSHeader",`profile: ${s.object_type}, sampleRate: ${t.audioSampleRateIndex}, channel: ${t.channelCount}`),this._doDecodeByTs(a,Ve,0,!1,0)}else"ac-3"===this.audio_metadata_.codec||"ec-3"===this.audio_metadata_.codec||"opus"===this.audio_metadata_.codec||"mp3"===this.audio_metadata_.codec&&(t.audioSampleRate=this.audio_metadata_.sample_rate,t.channelCount=this.audio_metadata_.channel_count,t.codec="mp3",t.originalCodec="mp3",t.config=void 0,i=Kt.MP3);0==this.audio_init_segment_dispatched_&&this.player.debug.log(this.TAG_NAME,`Generated first AudioSpecificConfig for mimeType: ${t.codec}`),this.audio_init_segment_dispatched_=!0,this.video_metadata_changed_=!1;let r=this.media_info_;r.hasAudio=!0,r.audioCodec=t.originalCodec,r.audioSampleRate=t.audioSampleRate,r.audioChannelCount=t.channelCount,r.hasVideo&&r.videoCodec?r.mimeType=`video/mp2t; codecs="${r.videoCodec},${r.audioCodec}"`:r.mimeType=`video/mp2t; codecs="${r.audioCodec}"`,i&&this.player.audio.updateAudioInfo({encTypeCode:i,channels:t.channelCount,sampleRate:t.audioSampleRate})}dispatchPESPrivateDataDescriptor(e,t,i){}parsePESPrivateDataPayload(e,t,i,r,s){let a=new lA;if(a.pid=r,a.stream_id=s,a.len=e.byteLength,a.data=e,null!=t){let e=Math.floor(t/this.timescale_);a.pts=e}else a.nearest_pts=this.getNearestTimestampMilliseconds();if(null!=i){let e=Math.floor(i/this.timescale_);a.dts=e}}parseTimedID3MetadataPayload(e,t,i,r,s){this.player.debug.log(this.TAG_NAME,`Timed ID3 Metadata: pid=${r}, pts=${t}, dts=${i}, stream_id=${s}`)}parseSynchronousKLVMetadataPayload(e,t,i,r,s){this.player.debug.log(this.TAG_NAME,`Synchronous KLV Metadata: pid=${r}, pts=${t}, dts=${i}, stream_id=${s}`)}parseAsynchronousKLVMetadataPayload(e,t,i){this.player.debug.log(this.TAG_NAME,`Asynchronous KLV Metadata: pid=${t}, stream_id=${i}`)}parseSMPTE2038MetadataPayload(e,t,i,r,s){this.player.debug.log(this.TAG_NAME,`SMPTE 2038 Metadata: pid=${r}, pts=${t}, dts=${i}, stream_id=${s}`)}getNearestTimestampMilliseconds(){if(null!=this.audio_last_sample_pts_)return Math.floor(this.audio_last_sample_pts_);if(null!=this.last_pcr_){return Math.floor(this.last_pcr_/300/this.timescale_)}}_preDoDecode(){const e=this.video_track_,t=this.audio_track_;let i=e.samples;t.samples.length>0&&(i=e.samples.concat(t.samples),i=i.sort(((e,t)=>e.dts-t.dts))),i.forEach((e=>{const t=new Uint8Array(e.payload);delete e.payload,e.type===He?this._doDecodeVideo({...e,payload:t}):e.type===Ve&&this._doDecodeAudio({...e,payload:t})})),e.samples=[],e.length=0,t.samples=[],t.length=0}_doDecodeVideo(e){const t=new Uint8Array(e.payload);let i=null;i=e.isHevc?Wn(t,e.isIFrame):Ln(t,e.isIFrame),this.player.updateStats({dts:e.dts,vbps:i.byteLength}),e.isIFrame&&this.calcIframeIntervalTimestamp(e.dts);let r=this.cryptoPayload(i,e.isIFrame);this._doDecodeByTs(r,He,e.dts,e.isIFrame,e.cts)}_doDecodeAudio(e){const t=new Uint8Array(e.payload);this.player.updateStats({abps:t.byteLength});let i=t;uo(this.player._opt.m7sCryptoAudio)&&(i=this.cryptoPayloadAudio(t)),this._doDecodeByTs(i,Ve,e.dts,!1,0)}getInputByteLength(){return this._remainingPacketData&&this._remainingPacketData.byteLength||0}}class uA{constructor(e){return new(uA.getLoaderFactory(e))(e)}static getLoaderFactory(e){const t=e._opt.demuxType;return t===R?Uh:t===Q||e.isWebrtcH265()?Fh:t===q?Gh:t===x?Oh:t===F?zh:t===U?Wh:t===O?cA:Jh}}const pA=[44100,48e3,32e3,0],gA=[22050,24e3,16e3,0],mA=[11025,12e3,8e3,0],yA=[0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1],EA=[0,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],CA=[0,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1];function fA(e){if(e.length<4)return void console.error("Invalid MP3 packet, header missing!");let t=new Uint8Array(e.buffer),i=null;if(255!==t[0])return void console.error("Invalid MP3 packet, first byte != 0xFF ");let r=t[1]>>>3&3,s=(6&t[1])>>1,a=(240&t[2])>>>4,o=(12&t[2])>>>2,n=3!==(t[3]>>>6&3)?2:1,l=0,h=0;switch(r){case 0:l=mA[o];break;case 2:l=gA[o];break;case 3:l=pA[o]}switch(s){case 1:a<CA.length&&(h=CA[a]);break;case 2:a<EA.length&&(h=EA[a]);break;case 3:a<yA.length&&(h=yA[a])}return i={bitRate:h,samplingRate:l,channelCount:n,codec:"mp3",originalCodec:"mp3",audioType:"mp3"},i}class IA extends ko{constructor(e){super(),this.player=e,this.TAG_NAME="Webcodecs",this.hasInit=!1,this.hasAudioInit=!1,this.isDecodeFirstIIframe=!!po(e._opt.checkFirstIFrame),this.isInitInfo=!1,this.isAudioInitInfo=!1,this.prevTimestamp=null,this.decodeDiffTimestamp=null,this.prevDts=null,this.decoder=null,this.decoderAudio=null,this.isAAC=!1,this.isWidthOrHeightChanged=!1,this.audioSourceBufferCheckTimeout=null,this.audioSourceNoDataCheckTimeout=null,this.initDecoder(),this.needInitAudio()&&this.initDecoderAudio(),e.debug.log(this.TAG_NAME,"init")}destroy(){this._clearAudioNoDataCheckTimeout(),this._clearAudioSourceBufferCheckTimeout(),this.decoder&&(po(this.isDecodeStateClosed())&&this.decoder.close(),this.decoder=null),this.decoderAudio&&(po(this.isAudioDecodeStateClosed())&&this.decoderAudio.close(),this.decoderAudio=null),this.prevTimestamp=null,this.decodeDiffTimestamp=null,this.prevDts=null,this.hasInit=!1,this.isInitInfo=!1,this.isAAC=!1,this.isDecodeFirstIIframe=!1,this.isWidthOrHeightChanged=!1,this.off(),this.player.debug.log(this.TAG_NAME,"destroy")}initDecoder(){const e=this;this.decoder=new VideoDecoder({output(t){e.handleDecode(t)},error(t){e.handleError(t)}})}initDecoderAudio(){const e=this;this.decoderAudio=new AudioDecoder({output(t){e.handleDecodeAudio(t)},error(t){e.handleErrorAudio(t)}})}needInitAudio(){return this.player._opt.hasAudio&&this.player._opt.wcsDecodeAudio}handleDecode(e){this.player.isDestroyedOrClosed()||(this.needInitAudio()&&po(this.hasAudioInit)?null===this.audioSourceBufferCheckTimeout&&(this.audioSourceBufferCheckTimeout=setTimeout((()=>{this._clearAudioSourceBufferCheckTimeout(),this.player.emit(It.webcodecsAudioInitTimeout)}),1e3)):this.player.isPlayer()?(this.player.updateStats({dfps:!0}),this.player._times.videoStart||(this.player._times.videoStart=la(),this.player.handlePlayToRenderTimes()),this.player.video.render({videoFrame:e,ts:e.timestamp}),this.player.handleRender()):this.player.isPlayback()&&(this.player.updateStats({dfps:!0}),po(this.player.playbackPause)?(this.player.playback.isUseLocalCalculateTime&&this.player.playback.increaseLocalTimestamp(),this.player.playback.isUseFpsRender?this.player.video.pushData({videoFrame:e,ts:e.timestamp}):this.player.video.render$2({videoFrame:e,ts:e.timestamp})):po(this.player.playback.isPlaybackPauseClearCache)&&this.player.playback.isCacheBeforeDecodeForFpsRender&&this.player.playback.isUseFpsRender&&this.player.video.pushData({videoFrame:e,ts:e.timestamp})))}handleError(e){this.player.debug.error(this.TAG_NAME,"VideoDecoder handleError",e.code,e);const t=e.toString();-1!==t.indexOf(lr)?this.player.emitError(It.webcodecsUnsupportedConfigurationError,t):-1!==t.indexOf(hr)||-1!==t.indexOf(Ar)||-1!==t.indexOf(dr)?this.player.emitError(It.webcodecsDecodeError,t):-1!==t.indexOf(cr)&&this.player.emitError(It.webcodecsH265NotSupport,t)}handleDecodeAudio(e){this.player.isPlayer()?this.player.audio.play(e,e.timestamp):this.player.isPlayback()}handleErrorAudio(e){this.player.debug.error(this.TAG_NAME,"AudioDecoder handleError",e.code,e)}decodeVideo(e,t,i,r){if(this.player)if(this.player.isDestroyedOrClosed())this.player.debug&&this.player.debug.warn(this.TAG_NAME,"decodeVideo() player is destroyed");else if(this.hasInit)if(!this.isDecodeFirstIIframe&&i&&(this.isDecodeFirstIIframe=!0),this.isDecodeFirstIIframe){if(this.isDecodeStateClosed())return void this.player.debug.warn(this.TAG_NAME,"VideoDecoder isDecodeStateClosed true");if(i&&0===e[1]){const t=15&e[0];let i={};if(t===Qt){i=Rn(e.slice(5))}else t===Rt&&(i=Nn(e));const r=this.player.video.videoInfo;r&&r.width&&r.height&&i&&i.codecWidth&&i.codecHeight&&(i.codecWidth!==r.width||i.codecHeight!==r.height)&&(this.player.debug.warn(this.TAG_NAME,`decodeVideo: video width or height is changed,\n old width is ${r.width}, old height is ${r.height},\n new width is ${i.codecWidth}, new height is ${i.codecHeight},\n and emit change event`),this.isWidthOrHeightChanged=!0,this.player.emitError(It.wcsWidthOrHeightChange,`width ${r.width}->${r.height} height ${i.codecWidth}->${i.codecHeight}`))}if(this.isWidthOrHeightChanged)return void this.player.debug.warn(this.TAG_NAME,"decodeVideo: video width or height is changed, and return");if(co(e))return void this.player.debug.log(this.TAG_NAME,"decodeVideo and payload is video sequence header so drop this frame");if(e.byteLength<12)return void this.player.debug.warn(this.TAG_NAME,`decodeVideo and payload is too small , payload length is ${e.byteLength}`);let r=!1,s=(new Date).getTime();this.prevTimestamp||(this.prevTimestamp=s,r=!0);const a=s-this.prevTimestamp;this.decodeDiffTimestamp=a,a>500&&!r&&this.player.isPlayer()&&this.player.debug.warn(this.TAG_NAME,"decodeVideo diff time is ",a);const o=e.slice(5),n=new EncodedVideoChunk({data:o,timestamp:t,type:i?ni:li});this.player.emit(yt.timeUpdate,t);try{this.decoder.decode(n)}catch(e){this.player.debug.error(this.TAG_NAME,"VideoDecoder",e);const t=e.toString();(-1!==t.indexOf(or)||-1!==t.indexOf(nr))&&this.player.emitError(It.webcodecsDecodeError,t)}this.prevTimestamp=(new Date).getTime()}else this.player.debug.log(this.TAG_NAME,"VideoDecoder first frame is not iFrame");else if(i&&e[1]===fr){const t=15&e[0];if(this.player.video.updateVideoInfo({encTypeCode:t}),t===Rt&&!Ba()){const e=Ea();return this.player.debug.warn(this.TAG_NAME,"WebcodecsDecoder not support hevc decode",e.type,e.version),void this.player.emitError(It.webcodecsH265NotSupport)}this.player._times.decodeStart||(this.player._times.decodeStart=la());let i=null,r=null;const s=e.slice(5);if(t===Qt?(r=Rn(s),i={codec:r.codec,description:s}):t===Rt&&(r=Pn(s),i={codec:r.codec,description:s}),!i||i&&!i.codec||r&&0===r.codecWidth&&0===r.codecHeight)return this.player.debug.warn(this.TAG_NAME,"decodeVideo and webcodecs configure is",JSON.stringify(i)),void this.player.emitError(It.webcodecsDecodeConfigureError,"configure or configure.code is null");i.codedHeight=r.codecHeight,i.codedWidth=r.codecWidth,this.isInitInfo||(this.player.debug.log(this.TAG_NAME,`updateVideoInfo: ${r.codecWidth},${r.codecHeight}`),this.player.video.updateVideoInfo({width:r.codecWidth,height:r.codecHeight}),this.player.video.initCanvasViewSize(),this.isInitInfo=!0),this.player.recorder&&this.player._opt.recordType===k&&this.player.recorder.initMetaData(e,t),this.player.debug.log(this.TAG_NAME,`decoder.configure() and codec is ${i.codec}`);try{this.decoder.configure(i),this.hasInit=!0}catch(e){this.player.debug.error(this.TAG_NAME,"configure error",e.code,e);const t=e.toString();-1!==t.indexOf(cr)?this.player.emitError(It.webcodecsH265NotSupport,t):this.player.emitError(It.webcodecsDecodeConfigureError,t)}}else this.player.debug.warn(this.TAG_NAME,`decodeVideo has not init , isIframe is ${i} , payload is ${e[1]} so drop this frame`)}decodeAudio(e,t){if(this.player)if(this.player.isDestroyedOrClosed())this.player.debug&&this.player.debug.warn(this.TAG_NAME,"decodeAudio() player is destroyed");else if(this.hasAudioInit){if(Os(e))return void this.player.debug.log(this.TAG_NAME,"decodeAudio and has already initialized and payload is aac codec packet so drop this frame");if(this._clearAudioNoDataCheckTimeout(),this.isDecodeFirstIIframe){if(this.isAudioDecodeStateClosed())return void this.player.debug.warn(this.TAG_NAME,"AudioDecoder isDecodeStateClosed true");const i=this.isAAC?e.slice(2):e.slice(1),r=i.length/this.player.audio.audioInfo.sampleRate*1e3,s=new EncodedAudioChunk({type:"key",data:i,timestamp:t,duration:parseInt(r,10)});try{this.decoderAudio.decode(s)}catch(e){this.player.debug.error(this.TAG_NAME,"AudioDecoder",e),e.toString()}}}else{const t=e[0]>>4,i=e[0]>>1&1,r=t===Kt.MP3,s=t===Kt.AAC,a=t===Kt.ALAW;let o="";o=s?i?16:8:0===i?8:16;const n={codec:"",numberOfChannels:"",sampleRate:""};let l=null;if(s||r){let t=null;if(Os(e)){const i=e.slice(2);t=Zs(i),t&&(n.codec=t.originalCodec,n.numberOfChannels=t.channelCount,n.sampleRate=t.sampleRate),l=i,this.isAAC=s}else r&&(t=fA(e),t&&(n.codec=Qs,n.numberOfChannels=t.channelCount,n.sampleRate=t.samplingRate))}else n.codec=a?bs:Ds,n.numberOfChannels=1,n.sampleRate=8e3;if(n.codec&&n.numberOfChannels&&n.sampleRate){this.isAudioInitInfo||(this.player.audio.updateAudioInfo({encTypeCode:t,channels:n.numberOfChannels,sampleRate:n.sampleRate,depth:o}),this.isAudioInitInfo=!0),this.player.recorder&&this.player._opt.recordType===k&&l&&this.player.recorder.initAudioAacExtraData(l),this.player.debug.log(this.TAG_NAME,`decoderAudio.configure() and codec is ${n.codec}`);try{this.decoderAudio.configure(n),this._clearAudioSourceBufferCheckTimeout(),this.hasAudioInit=!0,null===this.audioSourceNoDataCheckTimeout&&(this.audioSourceNoDataCheckTimeout=setTimeout((()=>{this._clearAudioNoDataCheckTimeout(),this.player.emit(It.webcodecsAudioNoDataTimeout)}),1e3))}catch(e){this.player.debug.error(this.TAG_NAME,"configure audio error",e.code,e),e.toString()}}}}_clearAudioSourceBufferCheckTimeout(){this.audioSourceBufferCheckTimeout&&(clearTimeout(this.audioSourceBufferCheckTimeout),this.audioSourceBufferCheckTimeout=null)}_clearAudioNoDataCheckTimeout(){this.audioSourceNoDataCheckTimeout&&(clearTimeout(this.audioSourceNoDataCheckTimeout),this.audioSourceNoDataCheckTimeout=null)}getDecodeDiffTimes(){return this.decodeDiffTimestamp}isDecodeStateClosed(){return"closed"===this.decoder.state}isDecodeStateConfigured(){return"configured"===this.decoder.state}isDecodeStateUnConfigured(){return"unconfigured"===this.decoder.state}isAudioDecodeStateClosed(){return"closed"===this.decoderAudio.state}isAudioDecodeStateConfigured(){return"configured"===this.decoderAudio.state}isAudioDecodeStateUnConfigured(){return"unconfigured"===this.decoderAudio.state}}const wA={play:"播放",pause:"暂停",audio:"",mute:"",screenshot:"截图",loading:"",fullscreen:"全屏",fullscreenExit:"退出全屏",record:"录制",recordStop:"停止录制",narrow:"缩小",expand:"放大",ptz:"操作盘",ptzActive:"操作盘激活",zoom:"电子放大",zoomStop:"关闭电子放大",close:"关闭",performance:"性能面板",performanceActive:"性能面板激活",face:"人脸识别",faceActive:"人脸识别激活",object:"物品识别",objectActive:"物品识别激活",occlusion:"遮挡物检查",occlusionActive:"遮挡物检查激活",logSave:"保存日志"};var SA=Object.keys(wA).reduce(((e,t)=>(e[t]=`\n <i class="easyplayer-icon easyplayer-icon-${t}"></i>\n ${wA[t]?`<span class="icon-title-tips"><span class="icon-title">${wA[t]}</span></span>`:""}\n`,e)),{});function MA(e,t){let i=!1;return e.forEach((e=>{i||e.startTimestamp<=t&&e.endTimestamp>t&&(i=!0)})),i}function vA(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;const r=e.length,s=t.length,a=Math.max(r,s),o=Ei,n=Math.ceil(a/o);let l=0,h=0;!function s(){let a="",A="";for(let i=0;i<o;i++){const i=e[h];i&&(a+=`\n <div class="easyplayer-playback-time-minute-one${i.hasRecord?" active":""}${i.isStart?" start":""}" data-has-record="${i.hasRecord}"\n data-time="${i.timestamp}" data-type="${i.dataType}">\n <span class="easyplayer-playback-time-title-tips ${h>r-60?"easyplayer-playback-time-title-tips-left":""}"><span class="easyplayer-playback-time-title">${i.title}</span></span>\n </div>\n `);const s=t[h];s&&(A+=`\n <div class="easyplayer-playback-time-hour" data-hour="${s.hour}" data-min="${s.min}" data-second="${s.second}"><span class="easyplayer-playback-time-hour-text">${s.title}</span></div>\n `),h+=1}a&&i.$playbackTimeListOne.insertAdjacentHTML("beforeend",a),A&&i.$playbackTimeListSecond.insertAdjacentHTML("beforeend",A),l+=1,l<n&&(i.rafId=window.requestAnimationFrame(s))}()}function kA(e,t){const i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];const i=(e[0]||{}).startTimestamp;for(let r=0;r<1440;r++){const s=r%60==0;let a=!1;i&&(a=MA(e,Oa(i,r))),t.push({title:Ua(r),timestamp:r,dataType:"min",hasRecord:a,isStart:s})}return t}(e);vA(i,function(){let e=[];for(let t=0;t<24;t++){let i=t+":00";t<10&&(i="0"+i),e.push({title:i,hour:t,min:0,second:0})}return e}(),t)}function BA(e,t){const i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];const i=(e[0]||{}).startTimestamp;for(let r=0;r<1440;r++){let s=60*r,a=s%1800==0,o=!1;i&&(o=MA(e,Ja(i,s))),t.push({title:Ga(s),timestamp:s,dataType:"second",hasRecord:o,isStart:a});let n=60*r+30;a=n%1800==0,i&&(o=MA(e,Ja(i,n))),t.push({title:Ga(n),timestamp:n,dataType:"second",hasRecord:o,isStart:a})}return t}(e);vA(i,function(){let e=[];for(let t=0;t<24;t++){let i=t+":00",r=t+":30";t<10&&(i="0"+i,r="0"+r),e.push({title:i,hour:t,min:0,second:0}),e.push({title:r,hour:t,min:30,second:0})}return e}(),t)}function DA(e,t){const i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];const i=(e[0]||{}).startTimestamp;for(let r=0;r<144;r++)for(let s=0;s<60;s++){let a=10*s+600*r,o=a%600==0,n=!1;i&&(n=MA(e,Ja(i,a))),t.push({title:Ga(a),timestamp:a,dataType:"second",isStart:o,hasRecord:n})}return t}(e);vA(i,function(){let e=[];for(let t=0;t<24;t++){let i=t+":00";t<10&&(i="0"+i),e.push({title:i,hour:t,min:0,second:0});for(let r=1;r<6;r++){let s=r+"0";e.push({title:i.replace(":00",":"+s),hour:t,min:10*r,second:0})}}return e}(),t)}function bA(e,t){const i=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=[];const i=(e[0]||{}).startTimestamp;for(let r=0;r<288;r++)for(let s=0;s<60;s++){let a=5*s+300*r,o=a%300==0,n=!1;i&&(n=MA(e,Ja(i,a))),t.push({title:Ga(a),timestamp:a,dataType:"second",isStart:o,hasRecord:n})}return t}(e);vA(i,function(){let e=[];for(let t=0;t<24;t++){let i=t+":00";t<10&&(i="0"+i),e.push({title:i,hour:t,min:0,second:0}),e.push({title:i.replace(":00",":05"),hour:t,min:5,second:0});for(let r=1;r<6;r++){let s=r+"0",a=r+"5";e.push({title:i.replace(":00",":"+s),hour:t,min:10*r,second:0}),e.push({title:i.replace(":00",":"+a),hour:t,min:10*r+5,second:0})}}return e}(),t)}function QA(e){const t=Math.floor(e/3600),i=Math.floor((e-3600*t)/60),r=Math.floor(e-3600*t-60*i);return(t>0?[t,i,r]:[i,r]).map((e=>e<10?`0${e}`:String(e))).join(":")}function RA(e,t,i){const r=e.$playbackProgress,{left:s}=r.getBoundingClientRect(),a=ha((pa()?i.touches[0].clientX:i.pageX)-s,0,r.clientWidth),o=parseInt(a/r.clientWidth*t,10);return{second:o,time:QA(o),width:a,percentage:ha(a/r.clientWidth,0,1)}}function TA(e,t){return e.classList.add(t)}function LA(e,t){return e.classList.remove(t)}function KA(e,t){return t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function qA(e,t,i){return e&&e.style&&La(t)&&(e.style[t]=i),e}function xA(e,t){return e.composedPath&&e.composedPath().indexOf(t)>-1}function FA(e){let t=!1;return e&&e.parentNode&&(e.parentNode.removeChild(e),t=!0),t}var UA=(e,t)=>{const{events:{proxy:i}}=e,r=document.createElement("object");r.setAttribute("aria-hidden","true"),r.setAttribute("tabindex",-1),r.type="text/html",r.data="about:blank",e._opt.isResize?t.$poster&&TA(t.$poster,"easyplayer-poster-size"):t.$poster&&LA(t.$poster,"easyplayer-poster-size"),Aa(r,{display:"block",position:"absolute",top:"0",left:"0",height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",zIndex:"-1"});let s=e.width,a=e.height;const o=Ma((()=>{e.width===s&&e.height===a||(s=e.width,a=e.height,e.emit(yt.resize),d())}),500);i(r,"load",(()=>{i(r.contentDocument.defaultView,"resize",(()=>{o()}))})),e.$container.appendChild(r),e.on(yt.destroy,(()=>{e.$container.removeChild(r)})),e.on(yt.volumechange,(()=>{!function(e){if(0===e)Aa(t.$volumeOn,"display","none"),Aa(t.$volumeOff,"display","flex"),Aa(t.$volumeHandle,"top","48px");else if(t.$volumeHandle&&t.$volumePanel){const i=da(t.$volumePanel,"height")||60,r=da(t.$volumeHandle,"height"),s=i-(i-r)*e-r;Aa(t.$volumeHandle,"top",`${s}px`),Aa(t.$volumeOn,"display","flex"),Aa(t.$volumeOff,"display","none")}t.$volumePanelText&&(t.$volumePanelText.innerHTML=parseInt(100*e))}(e.volume)})),e.on(yt.loading,(i=>{Aa(t.$loading,"display",i?"flex":"none"),(po(e._opt.backgroundLoadingShow)&&uo(i)||po(i))&&Aa(t.$poster,"display","none"),i&&(Aa(t.$playBig,"display","none"),Aa(t.$tipsMessage,"display","none")),i||e._opt.extendDomConfig.showAfterLoading&&t.$extendDom&&Aa(t.$extendDom,"display","block"),i||e.getRenderType()===ee&&po(e._opt.useMSE)&&n()})),e.on(yt.removeLoadingBgImage,(()=>{n()}));const n=()=>{t.$loadingBgImage&&t.$loadingBg&&t.$loadingBgImage.src&&(e.debug&&e.debug.log("Control","remove loading bg image"),t.$loadingBgImage.width=0,t.$loadingBgImage.height=0,t.$loadingBgImage.src="",Aa(t.$loadingBg,"display","none"))},l=t=>{e.fullscreen?Za(t)===e.$container&&h():h()},h=i=>{let r=Ta(i)?i:e.fullscreen;Aa(t.$fullscreenExit,"display",r?"flex":"none"),Aa(t.$fullscreen,"display",r?"none":"flex")},A=()=>e._opt.playType===v&&e._opt.playbackConfig.showControl,d=i=>{pa()&&t.$controls&&e._opt.useWebFullScreen&&setTimeout((()=>{if(e.fullscreen){const i=(A(),0);let r=e.height/2-e.width+i/2,s=e.height/2-i/2;if(t.$controls.style.transform=`translateX(${-r}px) translateY(-${s}px) rotate(-90deg)`,t.$zoomControls){const i=156,r=30,s=e.width/2+i/2-r/2;t.$zoomControls.style.transform=`translateX(${-s}px) translateY(${e.height/2}px) rotate(-90deg)`}if(t.$recording){const i=101,r=20,s=e.width/2+i/2-r/2;t.$recording.style.transform=`translateX(${-s}px) translateY(${e.height/2}px) rotate(-90deg)`}}else t.$controls.style.transform="translateX(0) translateY(0) rotate(0)",t.$zoomControls&&(t.$zoomControls.style.transform="translateX(-50%) translateY(0) rotate(0)"),t.$recording&&(t.$recording.style.transform="translateX(-50%) translateY(0) rotate(0)");i&&i()}),10)};try{Fs.on("change",l),e.events.destroys.push((()=>{Fs.off("change",l)}))}catch(e){}e.on(yt.webFullscreen,(e=>{pa()&&(h(e),d((()=>{u()})))})),e.on(yt.recording,(()=>{e.playing&&(Aa(t.$record,"display",e.recording?"none":"flex"),Aa(t.$recordStop,"display",e.recording?"flex":"none"),(e._opt.hasControl||e._opt.isShowRecordingUI)&&(Aa(t.$recording,"display",e.recording?"flex":"none"),po(e.recording)&&t.$recordingTime&&(t.$recordingTime.innerHTML=Fa(0))))})),e.on(yt.recordingTimestamp,(e=>{t.$recordingTime&&(t.$recordingTime.innerHTML=Fa(e))})),e.on(yt.zooming,(()=>{if(e.playing){Aa(t.$zoom,"display",e.zooming?"none":"flex"),Aa(t.$zoomStop,"display",e.zooming?"flex":"none"),(e._opt.hasControl||e._opt.isShowZoomingUI)&&Aa(t.$zoomControls,"display",e.zooming?"flex":"none");Aa(e.$container.querySelector(".easyplayer-scale-canvas"),"display",e.zooming?"block":"none"),e.zooming||e.ScaleCanvasLoaders.ResScaleNum()}})),e.on(yt.playing,(e=>{c(e)}));const c=i=>{i||e.isPlayFailedAndPaused&&po(e._opt.playFailedAndPausedShowPlayBtn)?(Aa(t.$play,"display","none"),Aa(t.$playBig,"display","none")):(Aa(t.$play,"display","flex"),Aa(t.$playBig,"display","block")),Aa(t.$pause,"display",i?"flex":"none"),Aa(t.$stretch,"display",i?"flex":"none"),Aa(t.$screenshot,"display",i?"flex":"none"),Aa(t.$record,"display",i?"flex":"none"),Aa(t.$qualityMenu,"display",i?"flex":"none"),Aa(t.$volume,"display",i?"flex":"none"),Aa(t.$ptz,"display",i?"flex":"none"),Aa(t.$zoom,"display",i?"flex":"none"),Aa(t.$scaleMenu,"display",i?"flex":"none"),Aa(t.$faceDetect,"display",i?"flex":"none"),Aa(t.$objectDetect,"display",i?"flex":"none"),Aa(t.$occlusionDetect,"display",i?"flex":"none"),Aa(t.$controlHtml,"display",i?"flex":"none"),e.isPlayback()&&Aa(t.$speedMenu,"display",i?"flex":"none"),h(),t.extendBtnList.forEach((e=>{e.$iconWrap&&Aa(e.$iconWrap,"display",i?"flex":"none"),e.$activeIconWrap&&Aa(e.$activeIconWrap,"display","none")})),Aa(t.$poster,"display","none"),Aa(t.$ptzActive,"display","none"),Aa(t.$recordStop,"display","none"),Aa(t.$zoomStop,"display","none"),Aa(t.$faceDetectActive,"display","none"),Aa(t.$objectDetectActive,"display","none"),wo()?Aa(t.$easyplayerCodeMseH264On,"display","inline-block"):Aa(t.$easyplayerCodeMseH264Off,"display","inline-block"),Io()?Aa(t.$easyplayerCodeMseH254On,"display","inline-block"):Aa(t.$easyplayerCodeMseH254Off,"display","inline-block"),Mo()?Aa(t.$easyplayerCodeWcsH264On,"display","inline-block"):Aa(t.$easyplayerCodeWcsH264Off,"display","inline-block"),So()?Aa(t.$easyplayerCodeWcsH265On,"display","inline-block"):Aa(t.$easyplayerCodeWcsH265Off,"display","inline-block"),!function(){try{if("object"==typeof window.WebAssembly&&"function"==typeof window.WebAssembly.instantiate){const e=new window.WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(e instanceof window.WebAssembly.Module)return new window.WebAssembly.Instance(e)instanceof window.WebAssembly.Instance}return!1}catch(e){return!1}}()?Aa(t.$easyplayerCodeWasmOff,"display","inline-block"):Aa(t.$easyplayerCodeWasmOn,"display","inline-block"),WebAssembly&&WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))?Aa(t.$easyplayerCodeWasmsimdOn,"display","inline-block"):Aa(t.$easyplayerCodeWasmsimdOff,"display","inline-block"),e._opt.isResize?t.$stretch&&(t.$stretch.innerText="标准"):t.$stretch&&(t.$stretch.innerText="拉伸"),e._opt.useMSE?(t.$easyplayerCodeMseRadio.checked=!0,t.$easyplayerControlsCodeTitle.innerText="MSE"):e._opt.useWCS?(t.$easyplayerCodeWcsRadio.checked=!0,t.$easyplayerControlsCodeTitle.innerText="WCS"):e._opt.useSIMD?(t.$easyplayerCodeWasmsimdRadio.checked=!0,t.$easyplayerControlsCodeTitle.innerText="WASM_SIMD"):(t.$easyplayerCodeWasmRadio.checked=!0,t.$easyplayerControlsCodeTitle.innerText="WASM"),!Mo()&&So()&&(t.$easyplayerCodeWcsRadio.disabled=!0),!wo()&&Io()&&(t.$easyplayerCodeMseRadio.disabled=!0),e._opt.isHls&&!Io()&&(e.demuxUseWorker&&e.supportHls265||(t.$easyplayerCodeMseRadio.disabled=!0,t.$easyplayerCodeWcsRadio.disabled=!0)),Aa(t.$easyplayerControlsCodeWrap,"display","playbackTF"==e._opt.playType?"none":"block"),!e._opt.isWebrtcH265&&e._opt.isWebrtc&&(t.$easyplayerCodeMseRadio.disabled=!0,t.$easyplayerCodeWcsRadio.disabled=!0),Mo()||(t.$easyplayerCodeWcsRadio.disabled=!0),wo()||(t.$easyplayerCodeMseRadio.disabled=!0),(e._opt.isMp4||"playbackTF"==e._opt.playType||e._opt.isHls)&&(Aa(t.$record,"display","none"),Aa(t.$recordStop,"display","none")),e.$container.offsetWidth<300?(Aa(t.$stretch,"zoom",.5),Aa(t.$performancePanel,"zoom",.5)):e.$container.offsetWidth<500&&(Aa(t.$stretch,"zoom",.8),Aa(t.$performancePanel,"zoom",.8)),e.$container.offsetWidth<300?(Aa(t.$easyplayerControlsCodeWrap,"zoom",.5),TA(t.$contextmenuBtn,"easyplayer-contextmenu-btn_xs")):e.$container.offsetWidth<400?(Aa(t.$easyplayerControlsCodeWrap,"zoom",.6),TA(t.$contextmenuBtn,"easyplayer-contextmenu-btn_md")):e.$container.offsetWidth<500&&(Aa(t.$easyplayerControlsCodeWrap,"zoom",.8),TA(t.$contextmenuBtn,"easyplayer-contextmenu-btn_lg")),i||(t.$speed&&(t.$speed.innerHTML=function(e){if(null==e||""===e)return"0 KB/s";let t=parseFloat(e);return t=t.toFixed(2),t+"KB/s"}("")),Aa(t.$zoomControls,"display","none"),Aa(t.$recording,"display","none"),t.$ptzControl&&t.$ptzControl.classList.remove("easyplayer-ptz-controls-show")),u(),i&&p()};e.on(yt.playbackPause,(e=>{c(!e)})),e.on(yt.kBps,(i=>{const r=function(e){if(null==e||""===e||0===parseFloat(e)||"NaN"===e)return"0 KB/s";const t=["KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"];let i=0;const r=parseFloat(e);i=Math.floor(Math.log(r)/Math.log(1024));let s=r/Math.pow(1024,i);return s=s.toFixed(2),s+(t[i]||t[0])}(i);t.kbpsShow=r,e._opt.showBandwidth&&(t.$speed&&(t.$speed.innerHTML=r),u())}));const u=()=>{if(A()&&e._opt.playbackConfig.controlType===oe.normal){let i=t.controlsInnerRect.width-t.controlsLeftRect.width-t.controlsRightRect.width-t.controlsPlaybackBtnsRect.width;pa()&&e.webFullscreen&&(i=t.controlsInnerRect.height-t.controlsLeftRect.height-t.controlsRightRect.height-t.controlsPlaybackBtnsRect.height),t.$playbackTimeInner.style.width=i+"px"}},p=()=>{if(!A()||e._opt.playbackConfig.controlType!==oe.normal)return;const i=t.$playbackCurrentTime.style.left;let r=parseInt(i,10);const s=t.controlsPlaybackTimeInner.width;r=r-s/2>0?parseInt(r-s/2,10):0,t.$playbackTimeInner.scrollLeft=r};if(A()){const i=()=>{if(A()){let i=0;const r=e.playback&&e.playback.playingTimestamp;if(r){const s=new Date(r),a=s.getHours(),o=s.getMinutes(),n=s.getSeconds();e.playback.is60Min?i=60*a+o:e.playback.is30Min?i=2*(60*a+o)+parseInt(n/30,10):e.playback.is10Min?i=6*(60*a+o)+parseInt(n/10,10):e.playback.is5Min?i=12*(60*a+o)+parseInt(n/5,10):e.playback.is1Min&&(i=60*(60*a+o)+parseInt(n,10)),t.$playbackCurrentTime.style.left=i+"px"}}},r=e=>{t.$playbackNarrow.classList.remove("disabled"),t.$playbackExpand.classList.remove("disabled"),e===wi&&t.$playbackNarrow.classList.add("disabled"),e===vi&&t.$playbackExpand.classList.add("disabled")};e.on(yt.playbackTime,(r=>{var s,a;if(!(r<0))if(e._opt.playbackConfig.controlType===oe.normal)t.$playbackCurrentTimeText&&(t.$playbackCurrentTimeText.innerText=fa(r,"{h}:{i}:{s}")),i();else if(e._opt.playbackConfig.controlType===oe.simple){const i=(s=r,a=e.playback.totalDuration,ha(s/a,0,1));t.$playbackProgressPlayed.style.width=100*i+"%",t.$playbackProgressIndicator.style.left=`calc(${100*i}% - 7px)`,t.$playbackProgressTime.innerText=`${QA(r)} / ${QA(e.playback.totalDuration)}`}})),e.on(yt.playbackPrecision,((s,a)=>{A()&&e._opt.playbackConfig.controlType===oe.normal&&(t.$playbackTimeScroll.classList.remove(ki.oneHour,ki.halfHour,ki.fiveMin,ki.tenMin),t.$playbackTimeScroll.classList.add(ki[s]),t.rafId&&(window.cancelAnimationFrame(t.rafId),t.rafId=null),t.changePercisitionInterval&&(clearTimeout(t.changePercisitionInterval),t.changePercisitionInterval=null),t.$playbackTimeListOne.innerHTML="",t.$playbackTimeListSecond.innerHTML="",t.changePercisitionInterval=setTimeout((()=>{switch(t.$playbackTimeListOne.innerHTML="",t.$playbackTimeListSecond.innerHTML="",s){case wi:kA(a,t);break;case Si:BA(a,t);break;case Mi:DA(a,t);break;case vi:bA(a,t)}i(),e._opt.playbackConfig.showPrecisionBtn&&r(s),p()}),16))})),e.on(yt.resize,(()=>{u()})),e.on(yt.playbackTimeScroll,(()=>{p()})),u()}if(e._opt.operateBtns.quality&&e._opt.qualityConfig.length>0){e.on(yt.streamQualityChange,(e=>{i(e)}));const i=e=>{t.$qualityText.innerText=e,t.$qualityMenuItems.forEach((t=>{const i=t.dataset.quality;t.classList.remove("easyplayer-quality-menu-item-active"),i===e&&t.classList.add("easyplayer-quality-menu-item-active")}))};(()=>{const i=e._opt.qualityConfig||[];let r="";i.forEach((e=>{r+=`\n <div class="easyplayer-quality-menu-item" data-quality="${e}">${e}</div>\n `})),r&&(t.$qualityMenuList.insertAdjacentHTML("beforeend",r),Object.defineProperty(t,"$qualityMenuItems",{value:e.$container.querySelectorAll(".easyplayer-quality-menu-item")}))})(),e.streamQuality&&i(e.streamQuality)}if(e._opt.operateBtns.scale&&e._opt.scaleConfig.length>0){e.on(yt.viewResizeChange,(e=>{i(e)}));const i=i=>{const r=e._opt.scaleConfig[i];t.$scaleText.innerText=r,t.$scaleMenuItems.forEach((e=>{const t=e.dataset.scale;e.classList.remove("easyplayer-scale-menu-item-active"),wa(t)===wa(i)&&e.classList.add("easyplayer-scale-menu-item-active")}))};(()=>{const i=e._opt.scaleConfig||[];let r="";i.forEach(((e,t)=>{r+=`\n <div class="easyplayer-scale-menu-item" data-scale="${t}">${e}</div>\n `})),r&&(t.$scaleMenuList.insertAdjacentHTML("beforeend",r),Object.defineProperty(t,"$scaleMenuItems",{value:e.$container.querySelectorAll(".easyplayer-scale-menu-item")}))})(),i(e.scaleType)}if(e.isPlayback()&&e._opt.playbackConfig.showRateBtn&&e._opt.playbackConfig.rateConfig.length>0){e.on(yt.playbackRateChange,(e=>{i(e)}));const i=i=>{const r=e._opt.playbackConfig.rateConfig.find((e=>wa(e.value)===wa(i)));r&&(t.$speedText.innerText=r.label,t.$speedMenuItems.forEach((e=>{const t=e.dataset.speed;e.classList.remove("easyplayer-speed-menu-item-active"),wa(t)===wa(i)&&e.classList.add("easyplayer-speed-menu-item-active")})))};(()=>{const i=e._opt.playbackConfig.rateConfig;let r="";i.forEach(((e,t)=>{r+=`\n <div class="easyplayer-speed-menu-item" data-speed="${e.value}">${e.label}</div>\n `})),r&&(t.$speedMenuList.insertAdjacentHTML("beforeend",r),Object.defineProperty(t,"$speedMenuItems",{value:e.$container.querySelectorAll(".easyplayer-speed-menu-item")}))})();const r=e.playback?e.playback.playbackRate:1;i(r)}e.on(yt.stats,(function(){let i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(e._opt.showPerformance){Aa(t.$performancePanel,"display","block"),t.$performancePanel.innerHTML="",e.getCpuLevel();const r=e.video&&e.video.videoInfo||{},s=e.audio&&e.audio.audioInfo||{};e._times;const a=e.getRenderType(),o=e.getCanvasRenderType(),n=e.getDecodeType(),l=e.getDemuxType();e.getStreamType(),e.getAudioEngineType();let h=e.getRecordingDuration(),A=e.getRecordingByteLength();e.isAudioPlaybackRateSpeed(),e.videoIframeIntervalTs,h=Fa(h),A=function(e){if(null==e||""==e)return"0 Bytes";const t=new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB");let i=0;const r=parseFloat(e);i=Math.floor(Math.log(r)/Math.log(1024));var s=r/Math.pow(1024,i);return(s=s.toFixed(2))+t[i]}(A);const d=e.isPlayback()?"录播":"直播";i.isDropping,e._opt.useMSE&&e._opt.mseDecodeAudio;const c=e.control?e.control.kbpsShow:"0 KB/s",u=e.getVideoPlaybackQuality(),p=`\n <h3>统计信息 <span class="easyplayer-icon-close"></span> </h3>\n <div class="easyplayer-performance-item-box">\n <div> \n <div class="easyplayer-performance-item">\n <span>播放模式 ${d}</span>\n </div>\n <div class="easyplayer-performance-item">\n <span>渲染组件 ${a}</span>\n </div>\n ${a===ee?`\n <div class="easyplayer-performance-item">\n <span>渲染引擎 ${o}</span>\n </div>\n `:""}\n <div class="easyplayer-performance-item">\n <span>解码模式 ${n}</span>\n </div>\n <div class="easyplayer-performance-item">\n <span>解封装模式 ${Y[l]||"video"}</span>\n </div>\n <div class="easyplayer-performance-item">\n <span>视频格式 ${r.encType||"-"}</span>\n </div>\n <div class="easyplayer-performance-item">\n <span>视频(宽x高) ${r.width||"-"}x${r.height||"-"}</span>\n </div>\n <div class="easyplayer-performance-item">\n <span>音频格式 ${qt[s.encType]||"-"}</span>\n </div>\n <div class="easyplayer-performance-item">\n <span>音频采样率 ${s.sampleRate||"-"}</span>\n </div>\n\n </div> \n\n\n <div> \n\n <div class="easyplayer-performance-item">\n <span>视频帧率(fps) ${i.fps}</span>\n </div>\n <div class="easyplayer-performance-item">\n <span>视频码率(bit) ${i.vbps}</span>\n </div>\n <div class="easyplayer-performance-item">\n <span>音频码率(bit) ${i.abps}</span>\n </div>\n <div class="easyplayer-performance-item">\n <span>网络延迟(ms) ${i.netBuf}</span>\n </div>\n <div class="easyplayer-performance-item">\n <span>网速 ${c}</span>\n </div>\n ${e.isPlayer()&&u?`\n <div class="easyplayer-performance-item">\n <span>Video已渲染帧 ${u.renderedVideoFrames}</span>\n </div>\n <div class="easyplayer-performance-item">\n <span>Video已丢弃帧 ${u.droppedVideoFrames}</span>\n </div>\n `:""}\n <div class="easyplayer-performance-item">\n <span>播放时长(s) ${Fa(i.pTs||parseInt(e.video.getCurrentTime()))}</span>\n </div>\n <div class="easyplayer-performance-item-block"></div>\n </div> \n \n `;t.$performancePanel.insertAdjacentHTML("beforeend",p)}else t.$performancePanel.innerHTML="",Aa(t.$performancePanel,"display","none")})),e.on(yt.togglePerformancePanel,(e=>{Aa(t.$performance,"display",e?"none":"flex"),Aa(t.$performanceActive,"display",e?"flex":"none")})),e.on(yt.faceDetectActive,(e=>{Aa(t.$faceDetect,"display",e?"none":"flex"),Aa(t.$faceDetectActive,"display",e?"flex":"none")})),e.on(yt.objectDetectActive,(e=>{Aa(t.$objectDetect,"display",e?"none":"flex"),Aa(t.$objectDetectActive,"display",e?"flex":"none")})),e.on(yt.occlusionDetectActive,(e=>{Aa(t.$occlusionDetect,"display",e?"none":"flex"),Aa(t.$occlusionDetectActive,"display",e?"flex":"none")}))};function GA(e,t){void 0===t&&(t={});var i=t.insertAt;if(e&&"undefined"!=typeof document){var r=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css","top"===i&&r.firstChild?r.insertBefore(s,r.firstChild):r.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}}GA('@keyframes rotation{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes magentaPulse{0%{background-color:#630030;-webkit-box-shadow:0 0 9px #333}50%{background-color:#a9014b;-webkit-box-shadow:0 0 18px #a9014b}to{background-color:#630030;-webkit-box-shadow:0 0 9px #333}}.easyplayer-container video::-webkit-media-controls{display:none!important}.easyplayer-container .easyplayer-icon{cursor:pointer;width:16px;height:16px;display:inline-block}.easyplayer-container .easyplayer-ptz-controls{position:absolute;width:156px;height:156px;visibility:hidden;opacity:0;border-radius:78px;background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%;right:43px;bottom:135px}.easyplayer-container .easyplayer-ptz-controls.show-vertical{right:43px}.easyplayer-container .easyplayer-ptz-controls.show-vertical .easyplayer-ptz-btns{left:0;top:156px}.easyplayer-container .easyplayer-ptz-controls.show-level{right:163px}.easyplayer-container .easyplayer-ptz-controls.show-level .easyplayer-ptz-btns{min-height:156px;left:144px;top:0;display:flex;flex-direction:column;justify-content:center}.easyplayer-container .easyplayer-ptz-controls.easyplayer-ptz-controls-show{visibility:visible;opacity:1}.easyplayer-container .easyplayer-ptz-bg-active{visibility:hidden;opacity:0;width:156px;height:156px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAATgAAAE4CAMAAAD4oR9YAAAAM1BMVEX///////////////////////////9HcEz///////////////////////////////////85yRS0AAAAEXRSTlO5DCgVgZBxAK2fQDRkBR5XTPLKM/gAABnnSURBVHja7F0Jkqs6DGQPO9z/tD8Jq6WWbCCvIjKfzAGmulrW3ooedr6ui+M4TdP++SXPr1l/SdL3aRrHhv7ZyA5qb9xe0L3Am+DrkzeCL/BeX908MezTuPsfOArdgl3KsZuhq99fk/Tx3waum+ByAHua5QbYilkzY1aP728YhrH5InrfBa57OLAtVjpRbYaumex04dq4APeC7vnVSfo/45bXLe33jGscMx3f0A1vyg3t69e2dRL/NeA6wrgdcCvjyPM2U25mXDt9xVD3f/qN0yi3Mm6P20S54vlXtGPS/R3GPSbYOsC4ZAvmJtiaGiL3Zlzx/Ht+Y/KXTJXbqmaqe9za1VYn3N7YpX/OVGev2qduOLIiB7xqOzGuWCiXFVmWtU3368A5lkqeOJI21I5XXaORxVRnxmUTdNnY/4U3riNvHMJts9XRtdXVUttipdzrK/4x7UyY6sK4Gbo+nU21T1zKcd9AGJetlMvyLKvj3zXVfeqQElMljINx3MK4xVQ3xj2Ry7N/6CiMOIfYyVUXWxUyBx7HuZRbcHt9bf/Lb9zsHlzKzabauJaK47iVcC7jJujS33/joKkmxDnM4QiJ4xDjZuT+DXQW3jgxV012qcPuiePhCGfchlv1/P0D6Czmqmuq2gPGkbIS8Q4ZsNU3dGP3Y2+cW1RyKpkrbAnwqhi3iXHFHrU3bFVV5c3vBsCsOALjkXErAW85F3rjFvBm5Kos+TngCOXYG7fA1ojFER7GPUHbmer0tfGPANeROM6pjvDMQSkrsWQ1d564Fbr61964TvSqDa6O0ELmAtvGuc2rrpQrn/aa/qCpYq+6mSpOVhnjWBy38u2JXFl9yL8acg6CV3Ur5yxVZfW4AsRxG+XKssz6n3njVMYR4Eg8sj1yi3tgtroxrpyhG38gc+h8PYddPQ551dVQW5jju2/cG7kXdB946Uy9cbDnQOpxuCCHcq5dHDcht8D2/K67VxPNGtLJd7qDTcgb1zLGbXEcY9z0Fd39GReTzIH1B/2lcxrGTYxj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") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-bg-active.easyplayer-ptz-bg-active-up{transform:rotate(-90deg)}.easyplayer-container .easyplayer-ptz-bg-active.easyplayer-ptz-bg-active-left{transform:rotate(180deg)}.easyplayer-container .easyplayer-ptz-bg-active.easyplayer-ptz-bg-active-down{transform:rotate(90deg)}.easyplayer-container .easyplayer-ptz-bg-active.easyplayer-ptz-bg-active-left-up{transform:rotate(-135deg)}.easyplayer-container .easyplayer-ptz-bg-active.easyplayer-ptz-bg-active-right-up{transform:rotate(-45deg)}.easyplayer-container .easyplayer-ptz-bg-active.easyplayer-ptz-bg-active-left-down{transform:rotate(135deg)}.easyplayer-container .easyplayer-ptz-bg-active.easyplayer-ptz-bg-active-right-down{transform:rotate(45deg)}.easyplayer-container .easyplayer-ptz-bg-active.easyplayer-ptz-bg-active-show{visibility:visible;opacity:1}.easyplayer-container .easyplayer-ptz-control{position:absolute;left:53px;top:53px;width:50px;height:50px;background:#fff;border-radius:50%}.easyplayer-container .easyplayer-ptz-control.easyplayer-ptz-control-left{left:33px}.easyplayer-container .easyplayer-ptz-control.easyplayer-ptz-control-up{top:33px}.easyplayer-container .easyplayer-ptz-control.easyplayer-ptz-control-right{left:73px}.easyplayer-container .easyplayer-ptz-control.easyplayer-ptz-control-down{top:73px}.easyplayer-container .easyplayer-ptz-control.easyplayer-ptz-control-left-up{top:39px;left:39px}.easyplayer-container .easyplayer-ptz-control.easyplayer-ptz-control-left-down{left:39px;top:67px}.easyplayer-container .easyplayer-ptz-control.easyplayer-ptz-control-right-up{top:39px;left:67px}.easyplayer-container .easyplayer-ptz-control.easyplayer-ptz-control-right-down{top:67px;left:67px}.easyplayer-container .easyplayer-ptz-icon{position:relative}.easyplayer-container .easyplayer-ptz-icon:hover .icon-title-tips{visibility:visible;opacity:1}.easyplayer-container .easyplayer-ptz-btns{display:block;position:absolute;left:0;top:156px;width:156px;box-sizing:border-box;padding:0 30px}.easyplayer-container .easyplayer-ptz-btns .easyplayer-ptz-btn{display:flex;justify-content:space-between}.easyplayer-container .easyplayer-ptz-expand .easyplayer-ptz-expand-icon{display:inline-block;width:28px;height:28px;cursor:pointer;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAANlBMVEVfX19fX19fX19fX19fX19fX19fX19HcExfX19fX19fX1/////Pz8+oqKjCwsKhoaHn5+eWlpaOqTaDAAAAC3RSTlP/3CaKxwJiAELtp4ri/s4AAACuSURBVCjPfZPREoUgCERXBdPRyv7/Z6/Z1aQp9oWJMyYLiKUrOIpAJBdGCldgbzBkPM/QEoTI3jBEPBRDhwEvChe08Q1Ge0ImvIq4Qj8ljrLdH77CyQPWlCdHC0Q1e9rmmuC+oQN9Q4LwcQg40L6eyqm0uEpXSUqe3fKpkkqL+Y/o+07SrahNEO0T0LBsvOitf4xsLqiNTB32wtqaVKosGLO2mhUrS93+PZ4D99wPqzMJVcbEyA8AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-expand:hover .easyplayer-ptz-expand-icon{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAM1BMVEVHcEyZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZn////i4uLZ2dnIyMjExMS8vLy+iXNeAAAACnRSTlMAYomLxwEm9+NCLo6DKwAAALNJREFUKM99k9kWgyAMRIMmEMLm/39tKaVKFJkXl3sYJ4sAXeQ3ZOcYd0+gRYblFBuFLYoS2ot5lpvYn8zJQ65TO2GVNmdCmQq/qczw4gjpejD14BgmhziEIvCjVRlPioftHW6A7xBB1a8CCUMvsuSqEkPM7eZX6h8GrQ67bYpNIbRL6rb4/k2EfVXKsgmqfQrW9qnGq96a28jGQG1ky2HXpVysyYyeDIhWq7le6ua9P36HD6+2GRi8iBZBAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-narrow .easyplayer-ptz-narrow-icon{display:inline-block;width:28px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAM1BMVEVHcExfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1/9/f2/v7/y8vLUObqxAAAADXRSTlMA3IrE6SZi9wI+y0gNXAn3CgAAAI5JREFUKM+Fk1kOwyAMBQ04bJHT3P+0JVUMNMWv8zvSk1cipfjAKXHwhR7k6KTjYp7dVuWLug1XWB5wz96T/JD2O3Phmv0k5ypL6lVVFIPYpLOka5WKSSFvS0/BloHYlkza5HkMzrvVLo8ZlRr7mtFYWBBsBQ4BjC//GTxcGVw2PpOVHQ6fJj7qS4936OoN2K4e5yE6N1UAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%;cursor:pointer}.easyplayer-container .easyplayer-ptz-narrow:hover .easyplayer-ptz-narrow-icon{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcBAMAAACAI8KnAAAAJ1BMVEVHcEyZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZn+/v7X19ckk9ihAAAACnRSTlMA9+NCAsuKJsRiPv/2GwAAAJlJREFUGNNjYAAC5gxFoTYDBijw1FoFBIumQHjsUavAYGkBmGu0CgqUwRqlYNyFIO2Fq+BAnIGBJQrBXerAwLkKCUxgYELmKjBYIXMXM2Qhc5cxdCFzVzBoIXMXMYAcsRsMdgEdgs4FKT4DBqdAitGMQrMIzRkojlRB9wKaB9G8z+CMGjgshjCuMCjoWNxRAxYt2KGRYgJiAQAnZcjElaB/xwAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-aperture-far .easyplayer-ptz-aperture-icon{display:inline-block;width:28px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAASFBMVEVHcExfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1////9fX1+kpKRzc3ODg4PFxcW1tbXW1tbk5OT29vaVlZVmZmZ8vCMFAAAADHRSTlMAxGJ5Mssm9+NCiYtiH91SAAABAklEQVQoz41T7Q6DIAyEJQooUL55/zddhVazzZjdHyqXXo8DhWCYTWqltNyN+MZLuxP69UGti/vAsl6c0e4L+tQ2yv1AEbvecMhO5cXdYhk+6aO3WGrNAMwentlMz/ZAKIlNoRsqY2wtFWu9t8wasc0iYVN0LkQfrG1zbxNyrIBcntOQrH1Ukkb60QcxYF1xMA2dh8zWj6ZDsLCsIrL4Ds5Hm9FMbCEROWUB0COaLXEIZJKV7CKybGO7UuxjxY2C/TkMbxboKBQCxgMN6MCJQ6Ch/QjOZg/B13LGx8FDTe3IFvl+Bc9XBi3UWoex68qeL/vxmdyxyvz3NJ8f9dDef36HN7koIK2LjxB0AAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%;cursor:pointer}.easyplayer-container .easyplayer-ptz-aperture-far:hover .easyplayer-ptz-aperture-icon{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAOVBMVEVHcEyZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZn+/v6cnJzr6+u/v7+xsbGlpaXNzc3b29vqh7uRAAAAC3RSTlMAyRjKA59J/3PzPhe1wxwAAAD2SURBVCjPjZPrssMgCIR1mkYtisD7P+zBCyZpM5mzv5hs0M8VnZvaok9BlXzc3FXbO5z0vtifFC5Kn8OL4UfxwVvuHm61d5Z0b6ZGZZwZpQAUosWsjVZntVS1sH3ZFo1IRVYfGXgx+VGwNkkIVbhq9/jm3cAhaNv1Uk3IA8mNn7D3kbQeWK3TLH2jCthrDFcTMwUWaKiClc9mJtJWhS3SF5BpJqMQW1b3xwnkDahMoHYomkeJRgSENA/MFsKML7fgoCBVbGvM+Cx4JcKWbWHKK/h1ZYS1Jy/nK3u8bB3KhzG5deMxtfv3aO7/Heq+9ms8h9fxHP4AHzAWU9zlWNgAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-aperture-near .easyplayer-ptz-aperture-icon{display:inline-block;width:28px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAQlBMVEVHcExfX19fX19fX19fX19fX19fX19fX19fX19fX19fX1////9fX1+FhYWbm5vz8/Nzc3OwsLDi4uLDw8PW1tZmZmYgm6a+AAAAC3RSTlMAYmOLx4kn9+NCIVJiPGAAAAD+SURBVCjPjVPttoMgDMOJAqOU8uH7v+qKFN2c597lF5LTJg1VqQG3aGuM1bNTV0wWDtjpg3pq+IB+npyzcIE9ejsDXzDCrjccs+tOariF3n2OLyw5xko0vh9MDjNb9Q0hp2GK3cixlIApe4/JD9appR8SFxWAUFLg6n63iB1irnY1Jv0mlrok7nUdcZRa1YeshxBA9iijChlxI6iZEaBgSEL2tkRcymPGGJpqlbZ6uDg0WR/F0DwuMpxDkYwiIXA8hO2uMJdGCCK6teB8RQoY8xGfevQjxYQt25qoRwDT25MRBjZ7GtP/P/afa3LHmrflXa+ruf661Hvv+et3eAF6Fh3v+sSUGgAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%;cursor:pointer}.easyplayer-container .easyplayer-ptz-aperture-near:hover .easyplayer-ptz-aperture-icon{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAM1BMVEWZmZmZmZmZmZmZmZmZmZmZmZmZmZlHcEyZmZmZmZn///+qqqq9vb3z8/PMzMzo6Oja2tpXGg+mAAAACnRSTlP/JomLxwJiAONCr+rW2wAAAOtJREFUKM99U9sWhCAInEpLBS///7WLEWy7p9O8qEzCMBIOQ15DAlLYsoegS9yFMKQ93skl4Adh+ZI54Q8pG5nxgKzkgkcsk4zhmQxRyN1OPHqtncjOu5AuppcJ6s1EHTA1YzC3Wgq3YmzGqpsmlwZAo7F8oLEVKoeE6+TbSxK0JJ/3FLOwFnUxzXuoltYDDMLoAlmYXLAWIrkqbdZKs+q4KBfkNV1uwGaBim9TdLWS3R7iGRvCNTPB7JvGlc5EXK8cKbrxooint73RzXh7Msl6Oj/uT/b62O9j8sj6gMXX0Xwf6jP3Zr9DtNAHTYMMXrXSK0YAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-focus-far .easyplayer-ptz-focus-icon{display:inline-block;width:28px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAPFBMVEVHcExfX19fX19fX19fX19fX19fX19fX19fX19fX19fX1////92dnbs7OyFhYWjo6Pe3t7Ly8uxsbG8vLyG+Q0EAAAAC3RSTlMAiWJjx9wm/0Lti7mfpe0AAADaSURBVCjPfVMJDoQgDERFC/bg8P9/XUSO6CqTqA0TptNDpSrMpC2A1btRT8wrNKzzjdo03KC3zhkLD9imbeAFhd3sG2kvZQ2v0NknfGBJZKkhBM9MxOxDKBV1N4iHi0TRHYjN01Qi7/kK2PtyNDU7DAEJgDAAN0u1jsQEFEkcVVmrqjeXrkWRmC67eqbgG7bJyvkQSQkvUvec7szpek6t9ubWJSK/uJVSm+APzHKCh++DWWuH4plQKNYOpfappcjy2VvJn9744cjGwx6uyXjBxqs5Xuqsvf/9Dj8rLhRg+bQ5VAAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%;cursor:pointer}.easyplayer-container .easyplayer-ptz-focus-far:hover .easyplayer-ptz-focus-icon{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAOVBMVEWZmZmZmZmZmZmZmZmZmZmZmZmZmZlHcEyZmZmZmZmZmZn///+xsbGoqKjt7e309PTExMTQ0NDe3t774OlGAAAAC3RSTlP/itxixwImAELtp8B2gZgAAADmSURBVCjPjZMLjsUgCEVpq60G8Lf/xQ62gvNeOmZuUiWeKHC1cKnC5iJAdFuwJXgmf+xg2g//G54OPuTOCUOEL8WgMMCLwgPP+Abj2aF38CrnBR7whw6Bo4fWUk7MMrQ2OrpAq0GspTLLgKg1wTailNITZA0EaTkZGjIAY5NwlATah5CGRMJYj50tFtlWiapsLvAPRdtL/WOmET7QzZyl5ywzp7NWsjBJ1odsragJqeJ9HGFNZoLaJw71hMTm0O7NeDE1Z6YsU5rGL69sedmXXz0ToW8PzA/oV09T8OJR32fb7+B17Qe3WwtC9PVbHAAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-focus-near .easyplayer-ptz-focus-icon{display:inline-block;width:28px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAARVBMVEVHcExfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1/////t7e2dnZ3W1tbGxsa3t7eDg4Oqqqri4uKTk5NImu/5AAAADXRSTlMAYieJ3MvE/0Lti4oh87zNagAAAOtJREFUKM+NU1sOwyAMY30FtoWS8Lj/UZe2gWpVh2aJH1wcO0mNqbDj4gDc8rLmiscEDdPji3rP8IX5fXLWwQWuaVu4gbKDuyPdsJMz3GLefcIPbJ6PDCEAFDlUAJiORM3NigQFAXAFlqOeRhWJyFFIHxNGvRrN0mp470U++3axGM2RAmXcXqKnkDSN0a9WIk5Sa01MpDXBQAdVtrA8lBhFnnKpsmoo5VBrhszV0KuJ5N2tP92O50iQjpzcctravoihdoi0Q1NrfN56m0VWzFBoje+OrD/s7pr0F0yUr6s5/LvUu/bz+B2ep+IHdMIV2SUZfCsAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%;cursor:pointer}.easyplayer-container .easyplayer-ptz-focus-near:hover .easyplayer-ptz-focus-icon{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAQlBMVEVHcEyZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZn////c3Nz09PTp6enR0dHFxcW7u7uwsLAUKT0cAAAADXRSTlMA3IrE6WIm9wI+y0gNQZpqdwAAAOdJREFUKM99U9GShCAMQ8BF3Cmlpfz/r15dAe88l8zwQiQkoRrTEa3zIXhno7lhWxcYWNbtN/fa4Q/218VFDzf4of0O8A/h3TQfOGU/ytsOj9gPVyt8warkmYEQQAgABYDxTKROz88koS6AVIB1fRCNbSI1cVUy15Jq27LGjTtyzipPeWw40/IXQkrHyZSRmqw3LaQgctFNKYzYyGACfEXossLMojFEj7J0WfdwJ3dD9uY2X25tL0Hj45mTR87Y66u9IQFsDS1bL57o7JbUDNIofvpk08eej8kTe3Hz0ZwP9UFfv8OgfgBUByCEUZhYtAAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-cruise-play .easyplayer-ptz-focus-icon{display:inline-block;width:28px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAcCAYAAACdz7SqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJWSURBVHgBtZe/b9pAFMefbSYWMjCjdOtmYEYqXVC3umMlBFRiT7qxkexITcdKSDUSYna2iqX+E/DG6LCQgcETUiR+5Pv8I3Kc+McF5ysZ3x2++9x79/zuLFEG9Xq9s/1+r8my/AnVJq4z/2LZfB0Oh1tFUQxd1+208aQ0GAa7kCTpMgRJk4kJXk+nU5NEoe12W8PM/wrAotIx2Z+w3MkE7XQ6Q3S4otNlY5zPUZdL7wiMBUsRIK/fDeWvhQ92XS0HrQia83cCsqoIyMug8gQ9Ho/DpF7FYpEajQa9VTBoyIZxWeEfv6IndSqVSjQYDKhcLtNqtaLtdkuigmGSZVn/XKiqqr9wqyZ1YEtbrRZVKhX3zvX1ei0Eh7Ufa7Xan8C9VRIUg9lyQZfzO19VOOugkBpAgaXRtnq97oLZ5ZvNJm0YQkBZ8m63E7YyKl5ntrrf77vlJCF/qzLlKLZ4NBqRpmmuF2LBlLOyBFYBchDKlIeWyyWNx+PUtS2Qtx+eJA6i2WzmQtMEA+8KnA+73a6N+jkJil1pGAbN5/PMfRBIZsGn3+LFvSABMYiBgpnJgZEeFHQD4EzQrOsWI4N/nrY2uPg/eeefV8WvAKfALOsWJ3jzA++rcqjhB25OXAd244nA62AjV4LGxWLhIBk/oPiF8pc9mUy+BZVnyQEzueEZUb5yjyvhBiX6BCw2YTGvdZNyAkYPZsprT/rgO/K2vDcdQQH7jes7gPcv/kvqyCcKbEVX6PxVAG76QWPGPZAIDcEZqGECTQyokpe9wp8VfNqzyA2L9M+KRzm19l1i6ZQBAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%;cursor:pointer}.easyplayer-container .easyplayer-ptz-cruise-play:hover .easyplayer-ptz-focus-icon{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAdCAYAAABWk2cPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJ5SURBVHgBtZe7buJAFIYPjsVFAok3wBUlYcUDLNvQISUSDVVCA0IUYZ8gmzcgBeIiJLwdFau8QToaQKygovI20CJBARKX/Y/jICPAF3B+yRpjZvzNOWfOzLGLLKrZbAaXy+WdKIq32+1WcrlcQe0vZb1e/8XvQT6ff7fyLpdZh0qlEr+5uXne7XZxMpciCIKMSfzGBBSyCwVMAqxpEXYEhzdeAJYtQ2u12h2aJq4gXadSLpf7aQptNBoPm81GJofEsc5ms9/0zwT9j3K5HHUSyEJ4ovV6vXkSyjHEyvxDXyCAHxGy4hEUq+4JjWQ02O/30xV65rTbQ9lKNEWjEYFAgFKpFMViMbpQnOfFPRSKWxnldrtVaDqdpnA4THalefMDinx8sDOYrY7H45RIJOy6PMibjch3F24AJEmSeo3HY+p2u7RYLEzHwNqogOUcpSvFrk4mk5Zcjry9FZCX1+46qj5dzvEOhUKGfQVyWAyPRCLqojsnEYtohpiSE5rP59TpdEhRFMN+Itw7Q3DpGq1WKxqNRurF90YC75+gnXszulBsVbvdpl6vZwpkwasDNWVw9r3BWlu5Op1OVdBkMrEzTD11RO1exmUJytb0+30aDodkV7DyjT2rBpNrG8zg3WwQW9ZqtS4CatASt/sVhAC/GA3glWk1bqcEo+TPwm0P5QeYySt9jRS9UQe54vF4fqEZkMNCdXivrw4PoJlMZoad5IeDYE7F+0KhcPC+syVotVotIQ5PdLm4CD8CGkJZfAIhzlw3SWRdM+T9q9frLbHnTnUwrfBZfPCiecQG8v3MBHj/HvAm4/P55HMwW1C9tG8a/RmsGH1CnNJ/17UakVMOx7kAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-cruise-pause .easyplayer-ptz-focus-icon{display:inline-block;width:28px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAcCAYAAACdz7SqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAHySURBVHgBxZc7bsJAEIbHdprQJAU1ckln3FM4J4jTIkSMRB9uQDhBlBPECIk2yQ1MSeeIxg0KZQoKKpSCR/4xtsXTNmA7v2ThHe/ut7M7O7sIFEOGYdzO5/OSJEn3KGp4ZDy33ucxP6vVqo86H71ez47qT4iCLZfLJ0EQmhuQKNlo89rtdk06FVqtVjV49kZrr86RicG2TdMcx4LWarUWGjzT5Rqjn7tdsJAi8Ch4C4op1TGl75S8GKwCPOWC6FsRNDKAL5SOZER30HcAhbFFEUFTLBapXC5v2fL5/J7tiOCXofHLlVfikRhRrSqVChUKBXIchyaTiWtrNBruYLjM9jB5jlmup4vFQqMYyuVydKE03vsuVBTFR8pIcFD317REGQlRXBJ5PSl+iktCskgZC57eZA5l/Q/Uy4lTykjYq1++p5EHb1LC9rRdKA7dT8pO64yERG/SmVM8m81OqW7yckr8Ztv2r6Io1whnLawF59fhcLiVY0ejkWsfDAYUJfRfB+snOE85J2KRvym9RGF2Op06vwRbhg9YHgmlIz7E235B2vwC1x1VVdl7jZLT3nVF2q0BsJUg+ODFTDpU0wP3PfC5a2wB+BD7CuqLgws/TQQYn7cyxYfxfdc6ViEUujMAHUlER4cKHfhbATvPjBUG8/UH1xXJDxHoYGQAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%;cursor:pointer}.easyplayer-container .easyplayer-ptz-cruise-pause:hover .easyplayer-ptz-focus-icon{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAcCAYAAACdz7SqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAH/SURBVHgBxVY7bsJAEJ01CAkJKUhUULmiDSnpoKYINyBuQIgi3AA4QZQKIQq4QaChhhuQCxAXSERUSDSIb944axSS+CPA5kn27o7X+2Z2dz6CXKDT6URXq1UqGAw+Hg6HDB4V4qj8rAsh9N1uN9rv971KpTJ2Wk84kW2322csVv1BYr+gEGMo8Foul7uWc6w+NJvNjKIoHXRVOgMg74K8AXLdFWm73a7BujpdDh3rZH8TCw8JLYlPSFutVh7NG10feigUetA0bcEDxZTiDFU0L+QN1M1mc1z7SBoIBGrkcGkSiQQlk8kTWSQS+SP7D3CzJ76c3A/yi61kodOP6XSaYrEYzWYzWi6XhiybzVI8HjfGLLeDNGxoWpohF8C50CXgwMK+r0gNCuQTENnyitQgRT4BQSOlyFvrKsRdCapC/uPuFqR0G1IZExfkH94NSzkHkk+Ap4wNUiTqPvmH74gUDoe7dOYWr9dr13M5sfNxBnjQ7/dXuVwuDGHG7ieOr9Pp9CTGzudzQz6ZTMgJ2FFtMBh8HvMpx0Ro/UEeBQq2slgsatw/uoxMsBp5A64WG+bgxE9LpVIPpUWDrgv7csUE4nEdlWCNPCC0JJXEF5Wg8MchHs11CWpCVvZVkBfckksyrneHVnMEuQRXitiqPBS4lwpEJYmORkc7Qju0IzPxBZ2t+3mW/JtqAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-fog-open .easyplayer-ptz-focus-icon{display:inline-block;width:28px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAdCAYAAABWk2cPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAKgSURBVHgBtZe/jtpAEMYH28WJioIa+URDF8MTkAalO6cH4YIiFbk8QXS8QO6oUlCAkGjDtTRHJBoa4nQ0KBZdJApoEAV/Mp9jkAF7bXPcJ5ndtdf725nZWdYxiijDMBKr1SqhKIqKNpdms9mcRxkjFqZTsVjMy7J8x1WdL9WjC6D97Xb73G63m0HjxULAvnI1T+FlMfxBBPeEwoW73Q6we7pcViwWe8+utwKhDFQZ+IOrGr1eAH9ksOkLdSz8Rd5xu1RzBmfdFkvupwz8dmUgBENeYNAZtFQqGVwY9DZSnTVi6+Decrn8h0JYWSgUKJfLHdrL5ZKm0ykNBgOazWbCd9nNt3CzgoZjpUohlEqlKJPJHN3DJHRdp16vR51Ox/ddTiVkw70NlSTp7rRDMpmkWq1G4/HYvmANSpHghXg8To1Gw/M5W1oGVEZD07TvXNy4O8Btw+GQFouFbV06nabRaGRbhbaf8AzvTiYTr8c32Wz2p8KrSuMgJ7x6IEa4AIuivau9tNlsNGm9XqsBY9gxhOvCCi728wa7OCHhRzQAZl2pVGyXRZEoBAoFCDGs1+v2QooiUfpIHE+LBEL+VatVezVfDcp/whYJhAWBVHFvCEFCfz8op6cpORuxJRokajz98tSRae+97OJnUS/RanQLkwNQ4FrzsA2yyU0Gf/br2e12A90LlwYAkS5Pdrm/wRs+/rh1ChAshuV7wTqAQoTAarVat6gorll8YWvzXBXmbdTUcY3/sK/L+4ppmnPeF/9SCGsvAXIsH8+gDthkMFyepyuJgS0GHh3w5NNOzO0zeMHVD/R64BMDP53d93vBORW+0GVnpvmpS0NBXXDDSacwR9K5kxaPok+NUJ8VDlzlQucJvKNj63G2/U3/E78fZqx/rk0w4ggu8jUAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%;cursor:pointer}.easyplayer-container .easyplayer-ptz-fog-open:hover .easyplayer-ptz-focus-icon{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAdCAYAAABWk2cPAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAK2SURBVHgBtVa9jtpAEB58/EqArqCBBqehorgTVDQxPVJOiD5QAEJUeYLjniBcgRACKeQJQsQDBBoqkIigookraC1BwT+ZcQBBsNd7Ovgk2LV3vd/M7PyZgBPlclnc7XZPFovFv91uRZPJdL9fktfr9W987udyuRbPWSajDUgm3d3dPSOhBMaQUaAXu93eSKVSCryVtFQqPaBWXznJNMlR8zo3aa1W+7zZbIo4vYd3QBCEQjqdfjEkrVarzyhlAa4EvOt6JpNJ6ZJWKpUnHH7A9VHMZrNfLkjJO9Ecv3Aqwg2A1osevFs4vCQP5SF0Op3g9XrPflar1egzut9vCNVHzPS3j8EkcCAcDkMgELh4PxqNoNvtwmw20/tUXC6XSRyLqqZ7LS80CgaDqiY8IEESiQSIoqi7B53qE40qqVYsolTgdrshEokAeh9IkgRGIDPTPhJYC8SD4eg3k52RQNQi7XQ66txms+kepEUcjUah2Wxqrq9Wq6h5Pp8/4CUzD1osFuqPFwfnIsE1IBKbyDqANIzFYhCPx+EtYPmCGQxAppJlGQaDAVwLaFlBgRtAx7T/SNGNZWCg1WqpoeP3+4EX0+kUJpOJNiEqKWA49HGusA6gwPd4PMCLXq+nu4bpsK+6LVV9YMDlcqnkPKD7JyF1oFD+PSSHV9ZB4/EYQqEQGGE4HEK73dZdR+Ua6nh4gWXtD3AkfCL3+XzHZ4pfyrekIQnHApr2A2oqn4YM1TvDWkr3xbozPVAxJ0KaH1MRFllSvQG3gYztz7FtOct/mLqorZDhulD2BVzWJKW2kTZckVjBnviM8IKUQBtQ40ck/w7vAIUhnvGYz+cvwpHZbGNHkcQMwtXGnICs9YrCF/Q2GHb4e3IJBxLgo44ACsY6afbT4XDUWd09N+kpqOhTDT55Jf9/Z0b4C/UJLQCcLGi1AAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-fog-close .easyplayer-ptz-focus-icon{display:inline-block;width:28px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAcCAYAAACdz7SqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAIjSURBVHgBtZe9UsJAEMc3l1Q0WvAA2NEp1MyInVbGnoE8AVrSqW+gT2CY4QGwpTEFNcaOEqksKKiYcYYP/xsSJoRwx8f5n7nRu9u73+7lbu8waAc5jnM6m81sIcQlqhcoOZTTsHvAZT6fv5um2XZdd6Caz1DBMNm9YRgPMYhKHhx8brVaHu0LrVQqNjx/2wOWlAtnn9MiT4VWq9VHDHii4zXAPFdJsPGPwK1gIwHk7/dC+sXgAsBjroioFZsmpznCuHKLxeIxqqwirdVqvGmcbaOy2SyVSqW1tuFwGJTRaES7CEGd8TJbXOEo4YkjG8BQ27ZT+7rdLrXbbSUcx4+P3oOIVQ4Wr0Cj0aBMJiO1Q6Q1PvsirFzSkeKVqNfrKjM+8xeCybRMbUcrn88HRSasqs2R5kijisWitB+reiKm0+mhaS5VvMwqCdIs1WYKoJZljUmj+NwqobS8D7Wp1+tJ+5EPvkWYD33SIE4S/X5faoOHgCdC+jsdKc5GnJUUGiNIzwrpbjwh76tOpxMAJ5OJyjTwKp7wP/CnvM06LeFzdPwNd4AFihL+Chom/U86/HmiAr4CGOR4M2r0fX9cKBR+8e816deg2WzeRJW15ABPXvgxRXoVPFfiDWbSAhF7iJiXvUyagMmHmZlmGYK/aXn7HPSNAWui3AH4s9EnG8ibiy94DL6l3W8jL3zvetsMpNCEAw4cKGPCc9r8WeGj/YuBMlikP+yn3EGZYjlWAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%;cursor:pointer}.easyplayer-container .easyplayer-ptz-fog-close:hover .easyplayer-ptz-focus-icon{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAcCAYAAACdz7SqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAI5SURBVHgBxZZLjtpAEIbLjUFih8QFnBUrJCIOEHOCROIACStALBhOMMwJMlkgBCyYnCDMCUJWrJCQYB+zBwkJFiBe+QvZyEz86IEezSc1dj/w76pyV5dGEnS73cR6vf4SiUQ+HY9HE0MJu5GmaSNcFrvd7hn3vXK5bIU9TwsTw8Oqh8PhzhGRoIf1tSBxX9F2u12FVfVXiL3ksVgs1khWtNVqfcfljm7HgtW5l1Zrbyh4Fo7FYh8LhcLCGRDu2U6nc69YkDG22+0v98DZ0mazaQgh/tLbUUOMHy9E8eH8treDJ8lkkgzDuBibz+c0m81otVqRBAu4+QO7WecerDSDBB3RbDbrOTcej2kwGFAIvNc5dPVTTLHpv9INpNNpyufzBEsC1yF81dOVf8KslCHIEy4SjUYjIxDLDDoGKYAtDrNW13VT7Pf7azOOJ6lUKnAeySLB7jVIIezmMAS9A/igxIIUwns3VBQ+HpFCLMsKnGcjhX0CKLF2MpnQcrkMXIPzuX+KKax9phthtw6Hw7BlVqVSGel25wntqqy02WxOFnLj+xB6/HNTwmdXTqdTGTHmfKA7lhKSxAOCbPr9g90n82X6AcGfTgVxUTngtKlD+J4UAw/2S6VSzulfJAe8SZ3fiNRiQbTgHvgvI0H4Gxb9IAVwTexVmHmmQbiCD1suHy26En7xaDSa86p/A4ttrpuIT3ohpLcTxw/tAWJ9vzUaSWCLm3DXZzS+z7hELFzYjX/i8fiTu9T04x9LgQk+PbvDKQAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-wiper-open .easyplayer-ptz-focus-icon{display:inline-block;width:28px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALxSURBVHgBtVYrrBpBFJ0FFAqBqCIrUXRBk5QaUleewBBIlwSDoW1CUlzz0CSlaJJHA8FgqMBg4CWIKkpRuEfQCDAYAvSeYYfsLgss6fYkk5ndmXvP/c1HYjaQTqdjbrf7PQ0VarLWgBW1Cdput3tutVrdW7qka5OZTEZ1uVwfaBhj9jDf7/ePzWazwe4hVFVVPhwOT3cQnRFLkvS20WjMzRMuCzKFyH7/AxkAg18oQp/ME24LsgENfcwBkJfvQqHQejqd/jr905HJGpnMHIYW3iHGp5AS2df/QabpfiKHfCdCVCN1qh1hv9/PIpEIi0ajLBgMskAgcDZfKBTMYjJVL8+nh7MeS/8ioFiQbDYbtlgseA/lXq+Xt9lsxrrdLkulUmw8Hp/poLB+JC+rkpa7FysiKEokEpyo3+/zBiIrr2EU1kKmWCxariMvsy46IRJWZFBSLpf5GApgvZUSYLlcstFoxMfwHnKQN4Mi+cYdDoe/IGpmslKpxJV0Oh223W7ZLcTjcb6uVqtxLxFayJtkfSga2Sycy+X4YnhlBzAQhGI9euTRqnhAaNjkKA5Unl0yALlD0SC0Au12m/fIvx5nRxsEYV2lUrHMgxmiYMwGwmiE1qzDrSiKSv0r8QMxF2Wdz+fZer3mhXAJCP9gMOCGAiBJJpM8h6jqXq9nWO+hLfGH9ohiVoTFIEbxwFqECMoQInwLy4V3mEMe0SB7YWtMJJzoVK7fLnkgKg65BVBM8Bj5gjHwDORoGNfrdUMu9SDnfl7d+HqAEArFCYNQYoxtAODfJSIBimTWpV2Swxt8PLwiRAgjGrwXuEVGmBNXw6MxP5KXMWYTCKs4U+2COH6g59tCu6uG7A7AYxteCcypVU+EmgVZbcJxkO4HcmplIEQuMcGOTz8nyT6T7on4Npw0mMBzgDnkqUZWNfyzWujQM/FB79lVQh2xeudbZ0VE36mvipzdRagjjtFtnSBlr9nxuS9uGCidk1HPdFp1xcvsGv4CcbeEIeSIw9MAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%;cursor:pointer}.easyplayer-container .easyplayer-ptz-wiper-open:hover .easyplayer-ptz-focus-icon{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAM0SURBVHgBtVa/SyNREJ7dBLVQELU4bdwrtFJOUCxsXEG0Ue4OK6tLKhEb/QsO/4LzChVtvGvE0sPOxtiYJuFyJBBICtOlSSAQCEnIj5tvyC676ybZYPLB4y373ptv5puZt6uQB1xeXup+v/9zs9lc4qHxK621VFAUJYbRaDSeDw4O7rvZUroQBXw+3zcm0ckbMkx8enh4+It6IWQijYlueiByI95g4oxzQXW+OD8/X1JV9e87yACNbbxeXV0dOxcUJxnn6okfx6l/OOHcnr0hhIzsFcg06jNa8obwbErKOfs+CDIhUdUbxrhJiGrknAW8HB4bGyNN02h+fp6mp6dpcnLStj46OkpbW1vOY1q5XJZ8iqTX19dPnYpkZmZGSObm5qharVI+n5cZ5ENDQzKy2SxFIhFaW1ujTCZDqVTKaabA+z4qrdy9uhHB0PLyskSTSCRkVCoV16gRLfYODw/T7e2tOOQE5zKocmRf3Mggzd7eHvEtQnd3dxSNRl3JgGKxaEaE6HEO553gOllXuQ3W3ch2d3fFyMvLS1siKxYXF0XWh4cHOYfzUMgKpE1t3Y026LouhxCVF8DBhYUFcz9m5HF7e9u5VUOV2pp8dnaWpqamPJMBKysrEh2kNRAOh2VG/q14c7XhILzb3993zYMT2IOCcTo4MTEhkqKgrPCx1gGePxgv6vW6EKJYNjc3qVQqSSG0A+RPJpPiKACS1dVVaQ9UdSwWs+33c6n+47ZYchqKx+NCvLOzI80NiWAMEkFyeM75lx5FdFhD4SCXIEJluxRbTLm4uDjmcv3RLgIYgrfILZBOpymXy0m+UImIDLLCATyHQiFbLq1gB/90bHwrcNPAILwGAaREcz8+Pso6CNsRGZDGx0eS8xXqRgh5DYkgIwZuFQPdyGACfwJ+PHGhnHKUOnkEetS4U72Co/uNWdoC3yovUVqBiD1EZW4fGRk5MwkBjjKIBRoAarXa12AwWLARIpdY4McC9RcnR0dHZjPabhosMOkG9S9S2/8MMLDfRKhljawjoYU4wNXby79OgavxJwrEyFlPhBZinasYH+pPPOMaNL4wMJphJZ553Bt/Zp3wHwTYnvHjbDCuAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-wiper-close .easyplayer-ptz-focus-icon{display:inline-block;width:28px;height:28px;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAcCAYAAACdz7SqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANOSURBVHgBtVc9TCJBFB52r7jYyCXWnhcbO1aru8RErjGXWBxX2BijGG1svNhJo56VhQU2ViQsgdDQYEFDc5rQ0BDoaMgRGhoKaMhdCHDve+6QZVhgMfglm9mdn/e9v3kz6xEusL+/79c0bcvj8fjpc8V6gCY9VXqK3W73MZFIpN3I80wj03X9il79wh2q/X7fJAXvTdNszkQaDAZXaHF0BrIRcvLKERE/OQ3qYwh/06shXg8vRPl8PlEqlZ4nktoIV8QcgBxwItbfitBOvL6+XioWi2XZp8kXIryaN6FNdpSM8spvthRWUmPaJ25vb4vV1VVRqVSGBCwtLYm1tTUeW1hY4KfVak2hFe+J+B+5+QkfnL2Hh4fI1KAq/OLiQlxeXorl5WWxsbEhNjc3RbvdFrVajVvMkcTlclmk02nRaDTGETfJ1Z+wlTxWLP84zQoEAkwEodlslh+QqZDWY36hUGByp3m9Xu88Ho+HNaokfidCCAIh2kgkMlYQAOtyuZy4vb1lBW9ubnidCioa37klkw0nQrgWgpLJJMfXDUAOBbEO66GAAkOS+tSRk5MTXgjr4FIAMXULrIObz87O1CHv8fHxR03thXAkDhbahezt7TlpzkA8sc7uUngIQIhUgNRr70AWQsu7u7uBEPTBdaqboQTcCIUgXL4DUBzjTrHVDcP4BmVlR6fTYVLg9PSU9yC2CIghEG7HHIC2GluJOGYyGR6DYiDCGEKD/iErNS2sU238QnH9rGqDopDP5zm+EIJ3aL6zs8NEUAKCQSiVwxp4BFaHQqGRwkJoRqPRkEZ7tCjGAAJQHED28PDAVkirsX1kUcAc7FEXWc5c7+iQTltnpyMgHNYgUSSZBL5BhqTBHkVMAZnxKsijMbQ6Vf+/FFe/mFLs6/X6IJZ20t3dXXb34uIihwFuTqVSI3Mt0nPia3LtpVLot461V0FWLiiBZwzMWCx2xOSy5+DgIEya/BRvA1xfvlKxr+JjUBwola/Fy81u7iDCX5JwiJSPHNJm3sQWoTnUp06a57XFIrxW+0dug8guutM8EvEHpxPIJRDDH6qFA2UmrSSrg0SO5HJLjhDdUxue+bLtQG7QqR8ggVvC4beCFHumRMSxVJxEJvEfnFm91YrgD/sAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%;cursor:pointer}.easyplayer-container .easyplayer-ptz-wiper-close:hover .easyplayer-ptz-focus-icon{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAcCAYAAACdz7SqAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANwSURBVHgBtZa/SyNBFMffboJaKAS10SZ7hXqFegGbCyjmUPTAH3eHlZWmULG6u/Kqi/9BLEQRIdoKigf2l1Q2ChGtBLmtFAQloPgL1HvfRyZuJhuzBvOFzezOj/eZee/NZAzyoMXFxYjf7+99enqK8GNxlZVtyhiGYXOZ5vo/MzMzW17sGaVgPp/vN2DkTbZpmqs8wfloNJqh10AZZjEs8QpYAfzx8TE6Ozub9AQFkGf7l55dWLbYTmxqamruRehbAl8CG5UEOvTNmWSmekHCVAgIJVgB9eHHD1bJSTPp7NXe3k68Hejg4CBvdF1dHTU0NFBVVRVdXl7S/f09nZ+fl2BS4Pb29geXMXyIe5eXlxM6FMaHh4dpY2ODGhsbybIsamlpyUFQog/geE5PT2l3d5eurq6KgTPc7x22kpGN5T+3Xl1dXdTa2ipGDw8P5bm7uyvoB3hTU5P0t22b9vb2ZFIu+smxjSOmEbfW2tpaAcJgMpkUQ25ACG4+Ojqi7e1tqq6uprGxMRmvi8P1BaXJLyE34MjIiBja2dmhzs5O8iLAMUGMw3h4yCkOobDYs+YHfXAkEpGBWJ1KJMTUqzAObh4cHNSbAisrK0FTrw0Gg5I4GKiEBAmHwwUzV2pubpZJOV0KD0EIkS6TlxxwViALMcvx8fGcEdQhKzs6OvIGYxLIcEwIxuFSvEP19fXSjpzQ5RsdHf3M5XtV8fDwIFDs0f7+frq+vpYtAjAMwu3oA/X09MgqEcf9/X1pQ/wBQhuyPZ1O56/SNOO+oaGhMAM+6rM5Ozuj4+NjiS+M4B2ZGQqFBHRyckLd3d2USqWor6+Pbm5uZAySqa2tjdbX1+VbU2Z6evoX3JumIoIBHA6ATUxMyCl1cXEhQOxD1ON9c3NT9qjufl2K5a+pqdliA4liHWEc7kOiwMXOvYpvwJA02KOILwS3FoGuoTTlWDKMJJUQ4qwfDmoyAwMDkkiYIBIOsS2iJH7k7MW1JPu3VpbUyYWVw91u4oWtcjyjOSi0tLQU54bvVBnh+vKJry82PnKHAydFDI1UATFwTgHzoIgtZvPW4Cxw1VlX0YtZFhjT6wvOXrgBK+ZnjcqXimHMrbHUZXuSV43kCpE3IUTzvPfjr75s61pYWAgx/Ctndy9/WlxaCsKPzZs+xc8Ww9IvwZT+A8hTw5fcMmXrAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-ptz-arrow{cursor:pointer;position:absolute;width:0;height:0}.easyplayer-container .easyplayer-ptz-arrow-up{left:71px;top:15px;border:7px solid transparent;border-bottom:10px solid #fff}.easyplayer-container .easyplayer-ptz-arrow-right{top:71px;right:15px;border:7px solid transparent;border-left:10px solid #fff}.easyplayer-container .easyplayer-ptz-arrow-left{left:15px;top:71px;border:7px solid transparent;border-right:10px solid #fff}.easyplayer-container .easyplayer-ptz-arrow-down{left:71px;bottom:15px;border:7px solid transparent;border-top:10px solid #fff}.easyplayer-container .easyplayer-ptz-arrow-left-up{transform:rotate(45deg);left:32px;top:33px;border:7px solid transparent;border-right:10px solid #fff}.easyplayer-container .easyplayer-ptz-arrow-right-up{transform:rotate(-45deg);right:32px;top:33px;border:7px solid transparent;border-left:10px solid #fff}.easyplayer-container .easyplayer-ptz-arrow-left-down{transform:rotate(45deg);left:32px;bottom:33px;border:7px solid transparent;border-top:10px solid #fff}.easyplayer-container .easyplayer-ptz-arrow-right-down{transform:rotate(-45deg);right:32px;bottom:33px;border:7px solid transparent;border-top:10px solid #fff}.easyplayer-container .easyplayer-loading-bg{display:none;position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:100%;background-position:50%;background-repeat:no-repeat;background-size:contain;pointer-events:none}.easyplayer-container .easyplayer-loading-bg img{width:100%}.easyplayer-container .easyplayer-contextmenu-btn{display:none;position:absolute;z-index:10;width:140px;text-align:center;color:#fff;font-size:12px;background:rgba(28,28,28,.9)}.easyplayer-container .easyplayer-contextmenu-btn div{cursor:pointer;height:38px;line-height:38px;font-weight:700;border-bottom:1px solid hsla(0,0%,100%,.12)}.easyplayer-container .easyplayer-contextmenu-btn div:last-child{border-bottom:0}.easyplayer-container .easyplayer-contextmenu-btn_lg{width:100px}.easyplayer-container .easyplayer-contextmenu-btn_lg div{height:26px;font-size:10px;line-height:24px}.easyplayer-container .easyplayer-contextmenu-btn_md{width:80px}.easyplayer-container .easyplayer-contextmenu-btn_md div{height:24px;font-size:8px;line-height:24px}.easyplayer-container .easyplayer-contextmenu-btn_xs{width:60px}.easyplayer-container .easyplayer-contextmenu-btn_xs div{height:20px;font-size:6px;line-height:24px}.easyplayer-container .easyplayer-poster{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:100%;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;pointer-events:none}.easyplayer-container .easyplayer-poster-size{background-size:contain}.easyplayer-container .easyplayer-play-big{position:absolute;display:none;height:100%;width:100%;z-index:1;background:rgba(0,0,0,.4)}.easyplayer-container .easyplayer-play-big:after{cursor:pointer;content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;width:48px;height:48px;background-repeat:no-repeat;background-position:50%}.easyplayer-container .easyplayer-play-big:after,.easyplayer-container .easyplayer-play-big:hover:after{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkYxNjdGQ0RFQzFBMTFFRTkzNzZFQUNENEI0RjVEMzciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkYxNjdGQ0NFQzFBMTFFRTkzNzZFQUNENEI0RjVEMzciIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmFkZDk1YjQtNDMwZi01NzQ2LWE5OWMtYzRkMzQyYjhjMmQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuROOwQAAAI4SURBVHja7JpLKEVBGMfP1Q1XJFGUJAtFWVhI7sqCKNkoC7JHUiQrjyJkIY+SR6GQ2KDkGTuyIEoW3FyJhRIpSvI+/uPOjs6cc+85znzy1W838zX/eZzv+2aOQ1VVhbIFKcTNqbNdGsgGbvABNsA2OLNdAdtCGjhBFjhXv9sJyBf0txxRg1ywr2pbH0iwS4DoDBSAVEGbGjAPSmQ8xGzPu3T4yQAzYBhEyyQgwaC/CrACymQR8OiHz0wwBoZAuKwC2Kf0RaNfCKgEW/wcSRfIgnTGkHQwBQZAmGyRWG/fKFAFdkCOgeApXSrBovkS6AIxVHOhUFDLz0auGathVzKXwvOpTpBIORut59uqkHI6zc7GIugG8ZTrgTqeUxVRLmgyuQi2GpGUKzK2Gqs8mptSkdlhbk4saKVcE7eAaupFfSN1AXF/9lqFioBr6gJGKAsYBW0U44CHV3P94JmagEnQDrzUIrGX1whs5l/1dJBJwDToAEdGOskg4JynC3PgwWhnuwUMgl5w6q8DuwTs8UO6pvWFkVHAExgHTeDWDIe/KWCX5/Xr4M0sp4EI+NAZye/ALGgAN2bPijOAwbNZDBa02+FpwLJVyyoS4NLIobQGf89nne31Kyv3pUhAhB8+D0Cz4ruwstxEAowEFvZeMMEP6qUsBc2xTj+Hiu9Cqvw3B/9lgmfMPOARPLP2gCRZ34kZbnDxw8DPQLHdD90OnT97JINSxXf19w42wUIgOYxZ5vj/W8Vm+xRgAEBgugubNVzaAAAAAElFTkSuQmCC")}.easyplayer-container .easyplayer-recording{display:none;position:absolute;box-sizing:border-box;left:50%;top:0;padding:0 3px;transform:translateX(-50%);justify-content:space-around;align-items:center;width:101px;height:20px;background:#000;opacity:1;border-radius:0 0 8px 8px;z-index:1}.easyplayer-container .easyplayer-recording .easyplayer-recording-red-point{width:8px;height:8px;background:#ff1f1f;border-radius:50%;animation:magentaPulse 1s linear infinite}.easyplayer-container .easyplayer-recording .easyplayer-recording-time{font-size:14px;font-weight:500;color:#ddd}.easyplayer-container .easyplayer-recording .easyplayer-recording-stop{height:100%}.easyplayer-container .easyplayer-recording .easyplayer-icon-recordStop{width:16px;height:16px;cursor:pointer}.easyplayer-container .easyplayer-zoom-controls{display:none;position:absolute;box-sizing:border-box;left:50%;top:0;padding:0 3px;transform:translateX(-50%);justify-content:space-around;align-items:center;width:156px;height:30px;background:#000;opacity:1;border-radius:0 0 8px 8px;z-index:1}.easyplayer-container .easyplayer-zoom-controls .easyplayer-icon{vertical-align:top}.easyplayer-container .easyplayer-zoom-controls .easyplayer-zoom-narrow{width:16px;height:16px;cursor:pointer}.easyplayer-container .easyplayer-zoom-controls .easyplayer-zoom-tips{font-size:14px;font-weight:500;color:#ddd}.easyplayer-container .easyplayer-zoom-controls .easyplayer-zoom-expand,.easyplayer-container .easyplayer-zoom-controls .easyplayer-zoom-stop2{width:16px;height:16px;cursor:pointer}.easyplayer-container .easyplayer-loading{display:none;flex-direction:column;justify-content:center;align-items:center;position:absolute;z-index:20;left:0;top:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none}.easyplayer-container .easyplayer-loading-text{margin-top:10px}.easyplayer-container .easyplayer-loading .easyplayer-loading-img{background:url("data:image/gif;base64,R0lGODlhFAXcAPYvAP8AAP8zAP8zM/sDM/8AZv8zZv9mZvxQRjr6SzP/Zmb/ZvyCeigV+zMz/mYA/2Yo82Zm//xmmZka+J9c/NRT2Wb/mQCZ/wDM/zPM/x7w+zP//2b///+ZmfumrJn/mar8u6uj/fu6wNe2+Jn//7bx/P/MzPrO2sz/zMz//+v88/3+/ur6/PT8/Pj27P9mM2bM/5nM/9L83vvb4vrq9OHO+tj3+/zp6uD86czM//z89Pz0/O/Z9ern/Pz09PT89PT09PT0/Ovo8/br/Jn/zP/M/+GZ5zOZ///MmTP/M8wPZgD//1Uzu5n/ZujozMyZmTb2ombMZjPMZmbMmWb/zC3/zP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJBAAvACwAAAAAFAXcAAAH/4AvgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAMKHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0qNGjSJMqXcq0qdOnUKNKnUq1qtWrWLNq3cq1q9evYMOKHUu2rNmzaNOqXcu2rdu3cP/jyp1Lt67du3jz6t3Lt6/fvxUJDCAAuLBheQASKz4ckYDgAoIJM55MWZziywAqL3w8eLAAyZpDT7JA+gJp0bowY0ZdkDOBAoMjX0WAhDbrXhYumM7NO2iC37/3XRZAfMDl2wAfPy4QoQDsyKCj1qZtGzku3th3/wTOPUE91QCIH+Cw4IAA8Jmts4Meu3Nk58w7EFFBJEJz55/dt3eMtLZ/6urVsptpGGAw4Gk7caeAAty5g95wAoynggkGmCeAcQ8G+A5sz8UW332OdQaZU9QhsaACCNBWm4atkOaiaRdgsMEIBcKInQU1dZdABR4MUQGDDdKDWYTErcZiPq45F1n/bEqV6CQCC37AQgoeLJjif/8dqYmLN8KoW4EyjrCCCiRsAKaNaHKJ40g6KqgAjx+ooMIJHvwIZJveOZihlvssGdlnUT0ZZZVXFsonKmpaUKCZN66Jk4IV/BgkPugd2meHkEUnlYpQogigpaykmZ1PePajGqj8KDcAVtMhkSWqq7xYWmlA6QiQcbDm6gt1n+qayoG9+ZYAAnn6auyxac3qKLLMNuvss9BGK+201FZr7bXYZqvtttx26+234IYr7rjklmvuueimq+667Lbr7rvwxivvvPTWa++9+Oar77789uvvvwAHLPDABBds8MEIJ6zwwgw37PDDEEcs8cQUV2zx/8UYZ6zxxhx37PHHIIcs8sgkl2zyySinrPLKLLfs8sswxyzzzDTXbPPNOOes88489+zzz0AHLfTQRBdt9NFIJ6300kw37fTTUEct9dRUV2311VhnrfXWXHft9ddghy322GSXbfbZaKet9tpst+3223DHLffcdNdt991456333nz37fffgAcu+OCEF2744YgnrvjijDfu+OOQRy755JRXbvnlmGeu+eacd+7556FJIIEDEoBuel/Epf7J6KyzfvrrdhEXgACzE8cJ66Q7kHvpsPf+Fu3ABy+AJqJLsATurvuuvFqphxeA86pbIvoDu4u+O+nLZy9W6rLPfoB54V1IXP8S5JNvSBJLoC9BEsW3X/wEIlAwAfKkJ6/9/U5xr7/s4RvAQQscMIALhDeACyVBAOVLoALV5z4JUIACJQjBAxtYvwYWD38YNIr4ZHce2s3OBQsoAQcGOLva7Q+BC0xh+twnPwuKLoMwpAr3AvDBA5RQfJdw3/XsF8MeTgV4Jbzh8IinO+Qdz4dIlCEHgbeqTRRvh0mMolSAWEDbdaJ9D+CdFLf4lCoOkYtgDKMYx0jGMprxjGhMoxrXyMY2uvFbGYjjG+colTjaUY50zKNS7KiEO2ZAj4Asih81kIE+4jGQiOTJHZWggQ04kpCG/GMiJ6kSP1oyAxrI5IxIMCY5rWD/BCN4JCEveUdKmtIkfmSkIzcwykie8pUxGaQfYUnLWF5SCbXM5UsWeUhd+nIldvylMIdJzGIa85jITKYyl8nMZjrzmdCMpjSnSc1qWvOa2MymNrfJzW5685vgDKc4x0nOcprznOhMpzrXyc52uvOd8IynPDVzgXna8xi6yWc9+cEABtyTkvrUpz76SVB//hOQAQ0oPgpa0IPSMaGZzIBC6cFQhjo0jQnVZwY2aSaJZnSf62BoAx4AgQZY9KJj/Gg+MyAjEqCAlQZSKUi9UdGKNqABEACBEFQAgpKatKYNRSkYAxpHDcQ0n/AA6gNAAIIH/PSkQj2jTO0h0qf2M6ptp1TpPYB6VaxmNaH5AKpX54jUfVR0rGhNq1rXyta2uvWtcI2rXOdK17ra9a54zate98rXvvr1r4ANrGAHS9jCGvawiE2sYhfL2MY69rGQjaxkJ0vZylr2spjNrGY3y9nOevazoA2taEdL2tKa9rSoTa1qV8va1rr2tbCNrWxnS9va2va2uM2tbnfL29769rfADa5wh0vc4hr3uMhNrnKXy9zmOve5ZAkEACH5BAkEACsALIoAGQAbBI0AAAf/gCuCg4SFhoeIiYqLjI2Oj5CHBAQDBJGXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1hpQClAWWtr2+v8DBwsPExcbHyMnKqwDNAMvQpJSTBdURHBwdHRHR3d7f4OHi0BcW5ubj6errmc7OAgIHC9gdIfYh7OG6A7sEBREAtW3LR/AXAiQIEiIoyLChw0LnLki0UO6hRUgJMmq8yOxdPAPz6N0rQZIjsUn8KlmrZu0aNpMwSR1MqECBBw8fcuaMybOnL4pAjWB4QZSoT5gaE1SogDPniacnYkg9isndgAAD4BkAmU3byA5UU02bVqksAQEsr3VQoULItggs/1HKrTQ2rN1BCGnWtNn0xM67gAN3KgcUQzkMQ4sKJphUQQXHTZ3GeDp1sSF3zT4eEADg44LP2LpysMyK7iRq11j+AwiQdGCEsGt+8LCX780PClzr1m2O8GEMG0a8+E0UA7rd0ZImcDzEw+Olt3U6/RAWs/XOnjuY0MFWRQgOBjYLuIp9s3XkpLJO25VW7Wj0HGfCnolgr4cYKlI4r12bPhL4ADIU0TlA+YYYcCOwNcIGLyDmG1C9ERigLMop51gFH+AHxAdLXXghUzd5kMBu1sGzgAGceQZaNhwsMCEq/qjkD2utvdgTEnnVVxuIkdnoI0wE/raBcYgVhcGPyCSAQP9GS3UI4hBOQRUDdfBhNkBnB2y1IjYuIimNWbnw4mVP9NkX3VMejKkmQ4RFaEFiL8Bw5JrENAZZZFJKFcOE7gSAHTx0ppILXYHylBBCy9k2W6GMplOgOQcW16gwyjUZ2Qd+neDjdZN2yqhCC3kqKjgDEjYqpRs12syVp7bq6quw0uJmrLTWauutuOaq66689urrr8AGK+ywxBZr7LHIJqvsssw26+yz0EYr7bTUVmvttdhmq+223Hbr7bfghivuuOSWa+656Kar7rrstuvuu/DGK++89NZr77345qvvvvz26++/AAcs8MAEF2zwwQgnrPDCDDfs8MMQRyzxxBRXbPH/xRhnrPHGHHfs8ccghyzyyCSXbPLJKKes8sost+zyyzDHLPPMNNds880456zzzjz37PPPQAct9NBEF2300UgnrfTSTDft9NNQRy311FRXbfXVWGet9dZcd+3112CHLfbYZJdt9tlop6322my37fbbcMct99x012333XjnrffefPft99+ABy744IQXbvjhiCeu+OKMN+7445BHLvnklFdu+eWYZ6755px37vnn60rggASglw616BKg7oDprCet+gOqty770KqnPvropM+u+8621666A6vvLrzMqdeO+wRFTGA86sM333ESxUcv/e2opz7BBCIQMYMMIlCgvO3Ai377//i5O29+x8VTnzoF6Ytf/vnwn1y978zHbz/KEiwhwffXTzD6/QCU3/W8NwEKsC+ACAyYPFpkAFJIQAQFBAEFQPC+BFoQXwucx4lGgT0ReNCDFwwhvgQAks+ABEWieGARRLBCEYjwhfQiYXiytBVAhYICH+weDHf4LgEE4ADi+aF4BCCKFa6Qh0hMFzwC4EN4uCA8S2wiEUFhwCRacVtNZKIWfRiALsIjSwuQQQ6aAJ4gepGJ8EijGgWQhCu6sYdp1OIPDQAeF5xxjW/M476kyEQXZNGGegzkHrPYRTROUZCIzFcU1TiARDpSkSnCSgAeSUlIVpJ1GchkJi/JyXhp8v+TnQzlujSphE9mQJSoJJcpNcBKUKbyldkypSY1EBwSbEADstwkLHfJrFxmoJQZYOUGUKCCBbXyl77kpTJ7mUlWCvOYulymNKOVgQ1Y05m4POU0txkta3rTmtrkpjibRctvhnOc6FRWOW+Zzna6853wjKc850nPetrznvjMpz73yc9++vOfAA2oQAdK0IIa9KAITahCF8rQhjr0oRCNqEQn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");width:180px;height:40px;background-size:100% 100%}.easyplayer-container .easyplayer-loading-logo .easyplayer-loading-img{background:rgba(0,0,0,0);width:180px;height:40px;background-size:100% 100%}.easyplayer-container .easyplayer-loading-text{line-height:20px;font-size:13px;color:#fff;margin-top:6px;letter-spacing:2px;text-align:center;color:hsla(0,0%,100%,.65);font-size:14px;font-weight:600;background-image:-webkit-linear-gradient(left,#0ff,#fff 25%,#0ff 50%,#fff 75%,#0ff);-webkit-text-fill-color:transparent;-webkit-background-clip:text;-webkit-background-size:200% 100%;-webkit-animation:masked-animation .5s linear infinite;opacity:.7}@keyframes masked-animation{0%{background-position:0 0}to{background-position:-100% 0}}.easyplayer-container .easyplayer-controls{background-color:rgba(43,51,63,.7);box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;position:absolute;z-index:40;left:0;right:0;bottom:0;height:38px;width:100%;padding-left:13px;padding-right:13px;font-size:14px;color:#fff;opacity:0;visibility:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.easyplayer-container .easyplayer-controls .easyplayer-controls-item{position:relative;display:flex;justify-content:center;padding:0 8px}.easyplayer-container .easyplayer-controls .easyplayer-controls-item:hover .icon-title-tips{visibility:visible;opacity:1}.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-fullscreen-exit,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-icon-audio,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-microphone-close,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-pause,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-play,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-screenshot{display:none}.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-stretch{cursor:pointer;display:none}.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-face,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-face-active,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-fullscreen,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-object,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-object-active,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-occlusion,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-occlusion-active,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-performance,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-performance-active,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-ptz,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-ptz-active,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-quality-menu,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-record,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-record-stop,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-scale-menu,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-speed-menu,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-template-menu,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-volume,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-zoom,.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-zoom-stop{display:none}.easyplayer-container .easyplayer-controls .easyplayer-controls-item.easyplayer-speed{padding:0}.easyplayer-container .easyplayer-controls .easyplayer-controls-item-html{position:relative;display:none;justify-content:center}.easyplayer-container .easyplayer-controls .easyplayer-playback-control-time{position:relative;justify-content:center;padding:0 8px}.easyplayer-container .easyplayer-controls .easyplayer-icon-audio,.easyplayer-container .easyplayer-controls .easyplayer-icon-mute{z-index:1}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom{display:flex;justify-content:space-between;height:100%}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-left,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right{display:flex;align-items:center}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap{position:relative;display:none;width:90px;color:#fff}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-controls-code-title{cursor:pointer;text-align:center;height:100%;line-height:38px}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-controls-box{position:absolute;bottom:28px;right:-40px;padding:0 12px 8px;display:none;border-radius:2px;width:320px;background:rgba(33,33,33,.9)}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-controls-input,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-controls-text{font-size:12px;line-height:18px}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-controls-input input{vertical-align:-2px;margin:0 4px;cursor:pointer}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-controls-input input:first-child{margin-left:0}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-controls-code-label{font-size:14px;margin:5px 0;padding:5px 0;border-bottom:1px solid #bbb}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap:hover .easyplayer-controls-box{display:block}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-code-mse-h264-on,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-code-mse-h265-on,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-code-wasm-on,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-code-wasmsimd-on,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-code-wcs-h264-on,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-code-wcs-h265-on{color:green;display:none}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-code-mse-h264-off,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-code-mse-h265-off,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-code-wasm-off,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-code-wasmsimd-off,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-code-wcs-h264-off,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap .easyplayer-code-wcs-h265-off{color:#ff1f1f;display:none}.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap_hls .easyplayer-code-mse-radio,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap_hls .easyplayer-code-wcs-radio,.easyplayer-container .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-right .easyplayer-controls-code-wrap_hls .easyplayer-controls-text_hls{display:none}.easyplayer-container .easyplayer-controls-bottom-ios{height:50px}.easyplayer-container .easyplayer-controls-bottom-ios .easyplayer-controls-left{padding-bottom:22px;padding-left:60px}.easyplayer-container .easyplayer-controls-bottom-ios .easyplayer-controls-right{padding-bottom:22px;padding-right:20px}.easyplayer-container.easyplayer-controls-show .easyplayer-controls{visibility:visible}.easyplayer-container.easyplayer-controls-show-auto-hide .easyplayer-controls{opacity:.8;visibility:visible;display:none}.easyplayer-container.easyplayer-hide-cursor *{cursor:none!important}.easyplayer-container .easyplayer-icon-loading{width:50px;height:50px;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8BAMAAADI0sRBAAAAIVBMVEVHcEx4eHh4eHh4eHh4eHh3d3d4eHh4eHh4eHh4eHh4eHiqaCaRAAAACnRSTlMAikwX3CxpwZ7zIGi5xgAAAZ9JREFUOMt9lb9Lw0AUx2Njqm4iGEqmEnBxslKUdhJctFMVcW5wKZ0CLpJJQRw6iVqQbg3FtPdX+l5+XHJ3796bQj557773fe8ujtOI+6jz5p84dHjTkYD4+RhT9CIRZWRPJr1bChnbY532GhT4oUpbI6HEuqvgIH9544dh9J4/rpr0Ms8oV3zMNT7X1MXSmaznzfHjM4n72moe5n8ryYrW9rKRvgf0S93JA7yKa9lbzUg3keJb8OVCtwkrFmoO4MnsAuj5rGqnZg+GZXUXkl9NjEui9n3YA9XgpMgakLXz6ujMTIgrCkPVv0Jil8KgKQN/wRN69hLcb1vrbR2nQkxwiZTGQ5Teb7TO8PUaS8Q03sE+zkjP8qbjzgJtEhRbV4gnlkOFeM7hDYNdxPbiYFvKSHN6L2NmY5WzMYPtplZdTxncRvn2sI+DHIoug22jWMaA12Y7BrXzrG8BX32XPMDKWVzw1bdMOnH1KNqNi8toqn7JGumZnStXLi0e4tcP6R3I635Nc/mzsMxl9aux9b78UVmn2pve8u6eR50j9c0/ywzyVl5+z84AAAAASUVORK5CYII=");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;animation-name:rotation;animation-duration:1s;animation-timing-function:linear;animation-iteration-count:infinite}.easyplayer-container .easyplayer-icon-screenshot,.easyplayer-container .easyplayer-icon-screenshot:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTJEMTUwOENFQzE5MTFFRUIzQ0Y4OTY0NUY5RjNGNjkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTJEMTUwOEJFQzE5MTFFRUIzQ0Y4OTY0NUY5RjNGNjkiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmFkZDk1YjQtNDMwZi01NzQ2LWE5OWMtYzRkMzQyYjhjMmQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvuJ6vIAAAI9SURBVHja7FqtT8NAFG+XiVqGGAIMagFSBUHDEAgEqA214EiKws3MLwyGYAlyigwMiAnE+EhQBMWCQOCGWfgDwJX3krekO+6gvbW7u4SX/JL2dk3e7/q+O9v3fctkSVmGi4hAFtAE1HUnkBas3wNydO0C8roSsDk+gMp22H0mvIEsIcfZ5yrWsyv8Bd8AIA/o+XpLnXQdwsCEngCLmvvrF2CZfRuDKDRrQMR0AHOiMFoxNQ+wUcgDLAFKzL49RfqdMPfbgBbPiYMochzIUgRWiuwe40uJtORzmC8W6PrGtGIOlW9Ttu5QzWQUgSqTM0oqayUZAvOctQ2TCLxz1t5MIrDLkLgCNEwi0AfMUHJbA2yFfA795BPQo0CgvKVsCEKoK4hcF1TPTAPOdO2JsQV9pJMORiYMu5nA/WpcPUacBPLkHw4Bc8QlmQyvVD/XiUCWCi+HWd8kk+EJdn5FXQhUBa1oGD9STgBPsSD5bGbUXiQVg+kccEwnipRVEjj9xcajtIoVFQQ8ctI4pDxuAmg6tZgb9uY4CbRHtHueFGSSmwyBupXMDMmxJIbJUQm4lG2TksglRlQCOwmYDiv7SRJoJ6w8jg+vk5xKYPk8BVhJiMBH1CmHzFgFG5qWpYmEJeBpou86YHKoCAw5WtRRPNNHizVRFLozhMCLiAA66bHmyuNY5xAv7D++1Kv+uPfM3OMo54EOuR8mCnU1O/lXS/CNTFe5ZczmR5KzDfizB1aoE4AjnkXY//9WUSzfAgwARdxovi4aqe4AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-play,.easyplayer-container .easyplayer-icon-play:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkYxNjdGQ0RFQzFBMTFFRTkzNzZFQUNENEI0RjVEMzciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkYxNjdGQ0NFQzFBMTFFRTkzNzZFQUNENEI0RjVEMzciIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmFkZDk1YjQtNDMwZi01NzQ2LWE5OWMtYzRkMzQyYjhjMmQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuROOwQAAAI4SURBVHja7JpLKEVBGMfP1Q1XJFGUJAtFWVhI7sqCKNkoC7JHUiQrjyJkIY+SR6GQ2KDkGTuyIEoW3FyJhRIpSvI+/uPOjs6cc+85znzy1W838zX/eZzv+2aOQ1VVhbIFKcTNqbNdGsgGbvABNsA2OLNdAdtCGjhBFjhXv9sJyBf0txxRg1ywr2pbH0iwS4DoDBSAVEGbGjAPSmQ8xGzPu3T4yQAzYBhEyyQgwaC/CrACymQR8OiHz0wwBoZAuKwC2Kf0RaNfCKgEW/wcSRfIgnTGkHQwBQZAmGyRWG/fKFAFdkCOgeApXSrBovkS6AIxVHOhUFDLz0auGathVzKXwvOpTpBIORut59uqkHI6zc7GIugG8ZTrgTqeUxVRLmgyuQi2GpGUKzK2Gqs8mptSkdlhbk4saKVcE7eAaupFfSN1AXF/9lqFioBr6gJGKAsYBW0U44CHV3P94JmagEnQDrzUIrGX1whs5l/1dJBJwDToAEdGOskg4JynC3PgwWhnuwUMgl5w6q8DuwTs8UO6pvWFkVHAExgHTeDWDIe/KWCX5/Xr4M0sp4EI+NAZye/ALGgAN2bPijOAwbNZDBa02+FpwLJVyyoS4NLIobQGf89nne31Kyv3pUhAhB8+D0Cz4ruwstxEAowEFvZeMMEP6qUsBc2xTj+Hiu9Cqvw3B/9lgmfMPOARPLP2gCRZ34kZbnDxw8DPQLHdD90OnT97JINSxXf19w42wUIgOYxZ5vj/W8Vm+xRgAEBgugubNVzaAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-pause,.easyplayer-container .easyplayer-icon-pause:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTk2RDFBOTVFQzFDMTFFRUEwRkZBN0I1MTZFRTQwRkQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTk2RDFBOTRFQzFDMTFFRUEwRkZBN0I1MTZFRTQwRkQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NGNiNzk1NTctZTljMi0xNzRmLWI5MzgtOGYxMzcwNDU3NDllIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuKMbsMAAAEsSURBVHja7JoxS8NQFEZfaq0QqIM4OLXiIg4FpTiJg+Ik/b3tpNihi8XZoUsVF3EqImi1xhPs2Nf74KVD6HfhTF9yyXlJXoabJMsyV+aquJKXBCQQWdWAYxI4gis4gE9I4QH6MI68hiZcw+G8dw1e572HMFt6dr4LGRzDU7a47mEvoIePXbj19J5A2+oR8ghdQsOTnUI7YvVbcOHJtuGsiHegbuS/EQKpke8UIfBj5DFfwpmRf2sblYAEJCABCUhAAhKQgAQkIAEJSEACEpCABCQggTUVqK5wERIj3yhC4N3IpytcwGkRAjfuf2a1qJ7hJUIgn7MNPdkE7sxbGDipP4EO7MMXbMEIuvDoAgYRSyrvmQ8Qz+EDNuENejBwxgQo0a8GEpBAuetPgAEAPcvJ5clWpqkAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-record,.easyplayer-container .easyplayer-icon-record:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTc2NkFFQkJFQzFGMTFFRUE4QUNDNDJCQzQ5NTk5NjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTc2NkFFQkFFQzFGMTFFRUE4QUNDNDJCQzQ5NTk5NjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NGNiNzk1NTctZTljMi0xNzRmLWI5MzgtOGYxMzcwNDU3NDllIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrNQGjcAAAJPSURBVHja7Fq9TsJQFKYUMNFBR3F0Kb4AxpoY3kCc3BzcdIDB+BROsLj7AujiE0iFN0AHBwc1uuCARH6s9yYH05zctrc/9J5GTvKFtLdpz3fPz/1ui2bbdibNls2k3BYEKBIwGe4Z+gFxooKAJijiCYMe8n6nDJeqI6BHuN8RhQj0GIwQ97JV1JTmsQ6YAe9lUamBVFnOY8xMyAcrTgIthn0emYQncsrwzrARJYVeGIoEsiLQ5M26RoOI89wGYSIwYsijljhkGCfg8DJ6dqAozAjYUcIYg+H0bTLUw67EYwVp00XHZUFHbAHRlmwbpWLc4arjuAoZo0WR02ZCjv8g5502CkrABNnM2bfhdwIdLG4rg+NetZgPQoA7f8ewKlCuNcjNeavkKSDUjuzWZzaKESOx6aNym1Cv3zJtlHehApr9tqBT5RCpaYSm4KYCXpG8GMC68ee/TAQO0fEnEMzGuBESpcuujDbKShaU097Qg+ZhQ1mVKkPgDB0bEPIBmnUlGwuZnLVgpnVUtNgeqbxWEdmezzgv6hJlAhYU1dilU1QobilFJAqOZf5ZVjFSIeC0AypKj+q70ZW0E9CgLffSQuDD5bwBRBrUCTz5jNdA/y/FVcTzNlugfvNpqoEuSGi/xZP0F5o6ROHBZbziRkAFqXWPsRIQ6YCUvwZVYDlrwJlzOrSv44ScP2fYRueuBNftCPst7Mj6gv2uygKWzoLZhWuEcv8mrJRwU5tJWieozhJ9oeFKc8unsOK0L2ibF5kQHzu0xX8lFgT+OYFfAQYAE/SU3+etXQYAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-recordStop,.easyplayer-container .easyplayer-icon-recordStop:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MEY0REU5NTRFQzFGMTFFRTg0NERGQzI4OTJFRThCQ0EiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MEY0REU5NTNFQzFGMTFFRTg0NERGQzI4OTJFRThCQ0EiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NGNiNzk1NTctZTljMi0xNzRmLWI5MzgtOGYxMzcwNDU3NDllIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pofdv+MAAAPTSURBVHja1JldSFRBFMd3V7KUQEiEHqQoJKwQgj6k65uvgX3Ql+xD4EtIBPXmUw+9CPUkgU+9VFZEktgHUdGTlAYVZBBGBZGyiVGthFteV2//oblwPM3M3ju7e+964IfunXNn578zc+6Zc5Oe5yVWsqUM1y+BdMUrEDPAWAWue/9sHrQpfCqGJFtCNeA22EeufQMO+LgSltAdNnhhDeABqCPXqsAtkCV0V8IS6gB5T21PQTXxrQPjzKc76iWkunjG09tl5rsJzJD20UoQIOg3iOhhvo7c7EtxbGJdQxV4pBEgBnqQ+TdUShSiJjbtCGhRtOVAO3gRdxRKFngSbwAvZSTiNg12gylyrRmsCzmG56WMQoPgFdhJrrWCOc1yGpfRyPetBa+98CYiX6bYPZCRnbngGdhM2o7Kta+y+3LP+L6NYNKzNysBfayTRfAQrCHOPYYv7Wcdm2atkM3ZCHAVkUbMSCe74Yrhi08xXxGpfoJsAdxiZsH/J2gH1fKJrFvHHZbhMMP66gt6ryqdXjDseRcc0SR2Ij+6pgm7hYyH4z3ss0gmh0BG/v0vClFzAyhvYikEtUm5kcPMwBDrY9TQtmyVpCyjr5iBY3JGuDWCQVBb5DNK/NJL4IBhNYSagb1gBDSTa2lDeB0GKcsZWAwacoMKcORAXSminrT1Gr6g11KALkjkbQVkSfsfcEMePUVbkhxBVXYygIA3hvuXSFSasxHgKDr9Ds7JwfspxJhmACLVbg8ZRn3j6YWVAP6UzpK2wyyl/qQZiLhnWwgBefnDJUohYJS1T5C2z2AX+dzClhu1D4ZzAxfwS+NXsiWUIZ29Zb9uu+FcPcbO1ZEISBgGJGxBithB/LsN/gNk7/hMlluAUyDE5RT3XDT4n2e+J8otwBfhapaTozlXDxtCY9pQSCiLAP7gCZIx1soTni68tjHBT6ISEAbTCW1GJoa0WPYujIBUBIWDKVmuzCnaeNlyFnRofEOV10tt46ATLCratsiabDXJdI+DeTARtCpRziVkW7bsUpzQYtkDxZQtL7Bx5StBgIg2jwOWLU2hODYButI8Lau0Et+1Gl83TgGCjYZz9Vd2rm5U+Do6AfkIq8thypbbwbR8iDq8Oi0Oz0kSnN6DrnK9FJL9/5CfRXHgJvt+38QzYr8m/C4Lo1kvWpuVZwebsqW2uBu1fWEHnKshypZKAbpss5wmDjiriylbql5wiILSVrA+ojRjAJyWe6MejIEmhd89mScVfFMfN6qy5V1QE7S4G7fxsqWYoUPgt807sjgtLd/BnZXLK7HSBASyvwIMAIOni2M/P7h0AAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-fullscreen,.easyplayer-container .easyplayer-icon-fullscreen:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NUFBRUNERjlFQzFDMTFFRUI3MERDODJDQjY5ODNERjAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NUFBRUNERjhFQzFDMTFFRUI3MERDODJDQjY5ODNERjAiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NGNiNzk1NTctZTljMi0xNzRmLWI5MzgtOGYxMzcwNDU3NDllIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpQzwtgAAAD6SURBVHja7JntDYJADIbBOAAj4AbnBjqCGzgCbuIIbOAIOoIbeBvIBick/BHug2tARZ436Z8Srn0SWlpIjTHJnLVKZi4Avq21xZe1FqOqtRhJ4uiepynijuUmXoXlnJDtBHFU9xxqAAC60HAdPJ1GC2Lfatt7OtRlbIC7MNEQhAuAGgAAgKW20aZVlj+QW+nI7U0pGxkAAAAAAAAAAMAw11vnjhb/+cO5FY4BrwoNc3ltD8vNmwl24sSzEz8t/m27m1MDAADwz23UpdxzbewfHNkUAFfPtZPgPaECZ1IDAAAwQK4PWyrynEo4J8XG0UOGOR4hAJYE8BJgAA411BH9T/PCAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-fullscreenExit,.easyplayer-container .easyplayer-icon-fullscreenExit:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjE2M0E0Q0RFQzFBMTFFRUExMTBBRTMwN0FBRTNCNjIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjE2M0E0Q0NFQzFBMTFFRUExMTBBRTMwN0FBRTNCNjIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmFkZDk1YjQtNDMwZi01NzQ2LWE5OWMtYzRkMzQyYjhjMmQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pugdz64AAADuSURBVHja7JhRDcIwEIY3MgGVMAmTgIRJAAkoICggOMAJQwGgACTUQemAh0IaaHtrYOT7k/9hTXa97+FudyuNMcWYNSlGrtEDVAnvKOud53xh3QXGaK2XwhjJAL0az1n9hRjUAAAAAADAsB+ykD6sMuZTB+SgH76rH+YcH0y6Zi+x3rkV3HN2Y1EDANCFnrUSdJmYMfhoPU+8R7sPJSslAAAAAAAAAPzQKDEVjhI6YnFpBKNEx0JDDQDwp11oE9iF1pny2VqfYhaayhPgk1RGgH1gDtQAAAAAAECeD1moLsJ79QAxbuLPHABCXQUYAABffBfh2WNwAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-audio,.easyplayer-container .easyplayer-icon-audio:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDlENjdGRThFQzFEMTFFRTlDRDVGMTkwQkZFNTdEMTEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDlENjdGRTdFQzFEMTFFRTlDRDVGMTkwQkZFNTdEMTEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NGNiNzk1NTctZTljMi0xNzRmLWI5MzgtOGYxMzcwNDU3NDllIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PryLBgIAAAJISURBVHja7FnhccIgFFbPAdig6QS1G8QJSjfQCZoNaidQJ0g7Ad3AdAKzgekEugGFO3JHnw+CBgzc+e7ej4QA3wfvPd4jY875KGWZjBKXO4EOWQhlQmehJhgH8gEitBRKtXePQpsUdkCu9h6AHyHPURLIhe6EZkjbQ+wECmXvxNCehSAw9WTva+WwN5dpAGdNJoyanLXvghQWM/RGwOasfcAflDkeXU1yEsBZ+xx6+pilmssbgdZZ1wHAS6mRd3KulbWXPIkdlAhlvJ8wh3kKQ19q6uMCfib0wPsLc1ysHOl7VDjOvp8aHDTXTk4ayGRMUgmdqyChmy9T+ZTVhCgPJ6xjl+G7FTLGosuEdgMQKDUzyUAb9LtdF4HjAARs38yQcf6RjKEia0DKTUFobZDzIqqScgme38DzFjw/xUagUqrnWKYdOkvLYynqf0DIzADB6AnYVpkgKQ2JjUBmIUSQtlNMBCTAFwCwcfWJGAgUAGR9we4MToCAsClN48PSLuU35qvFLdgBmEhKghsbge8bAz6pg0yC/gTgJPB3BN/Jlo0SLbninnMj13rAlMhxVStcXNDkAxDAUun1tRWZr6qMOZauJdJ3r9quJtAOvg9MgBnKydzUZ3Khwz0rZwshFLkka5288nkvtASx2ueZgIH/9nGtgikNYEKlVjpmLjj6/qFp70ddRK7ka2z/B2rlF02Kt9OQRJ0qAT1CVR3fREuglbklzCZBoA2zGwT8VxAb6hFGXcLsQZ3ei1DzhPrRnZwT3wlcK38CDACGgHjb4h3eKAAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-mute,.easyplayer-container .easyplayer-icon-mute:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QzM2OUNDOTVFQzE5MTFFRUFFOUNBQ0NDRDZBRjlGMzMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QzM2OUNDOTRFQzE5MTFFRUFFOUNBQ0NDRDZBRjlGMzMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmFkZDk1YjQtNDMwZi01NzQ2LWE5OWMtYzRkMzQyYjhjMmQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Plx22LoAAAJ+SURBVHja1JqLbYMwEEDTTuANSjegG9ANGIFuQDdwJ6AbMEK6AdmAbJBu4HQC10RGciyfOd+ZJJx0quSaz7N9X/Kktd5tWZ53GxcXQBjtjO6NVpshmI6QVamvpXH+t7YK6rXuDrx4bL3RZuX1m3ddTWtptOXsQKnDsuZONIHnjUYL7D38gSoDxLQQvdG90XZhbq1haSgAXIjphZV3XblwzRCB6CkAFAhhHxYSiTDgPgIxUABSIWIvIBPsQaXuxNJNsRDCGh8HYGk3GgpADghJ8E4QREUB4EJIoosNLYbyXWzKDakQEEBhvVYZOU6nJXtIXRUKhAT8v0JChqSIBbLePlwBLiwVQiJ9v0ywhz4E0AJubGRC1AlGWgORPWQLVwBVxAdzIaDzrWIv5ukJeg4mEK0FUQAQLTLp612AQeMkN0SN3AUBzYv53FtBnGJeZmGeoNTEpdHRGzsYfQ/MxRRFX4GxOjB2CIwV1KI+J8QPUKn5cg7N43Qlcu/ELlLegiUpt62SA+KMHFutL8SFmI7L0Rv7C533EGiuxhYH4mznuRBHpF38UtzoWi5WODkY1o0WuQFyQEhkIBvdQNbpvHKLiN35yZx+YIg9lLnGeqOPAgGl0yJU0JQ2sTvZSWohzcaIZEK00PFJLSm7jADcRkGVuyamAFAhOk5RPx+zMRNAKsTAaauktBNT+0JkF8tJJT6MfmZKRchZLDcX+jb6dslJ7gSRI5k7Woifu0Bk/mQkMQ1ZzzA7jk2s8d1rDoYDwgg7bsS+1WdUTHAkQdwbwE3UFNBarGJt9kcAmLt0IjFOXGCfNvRjj+nnD4NThr5Of7cE4Da9DnPnYosAV/IvwACdD51rAg3mqwAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-ptz,.easyplayer-container .easyplayer-icon-ptz:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTFERjI4RjdFQzE5MTFFRUFDQUZBMUY3Q0RCRkVBM0QiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTFERjI4RjZFQzE5MTFFRUFDQUZBMUY3Q0RCRkVBM0QiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmFkZDk1YjQtNDMwZi01NzQ2LWE5OWMtYzRkMzQyYjhjMmQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmXTagAAAAKISURBVHja1FoxS8NAFG6Di5PZRCdFJ6e6OtVfoE66GUXBzXRytP8gXdwqcRJ0qf+gGYoggtZBwUFwcdDF6iC6GN/Bi5zhztwlecn1wUeTtJf7vub63r33Wg3DsDLMZhHfv40gsxFi8puAKp5vkczClhAB2oDv8K+1KeaiIO8APkKxOaYLYARfw//NMVWACvncRZRBPlcRlORvuOMLKhFZ44AD8AB27HoL0OPO7wANwXgf71FaIFuSkBeRlV3fLVPACiBQICl7vw9YLDsSMwJdJNNQ+HwLX9dx7MCErYTut9jihBi9mTNmN1oDdArk5eGcuQio4RpfxldqY67VxblqWQVE5CNXWScWwccFW0WEpUGeN5uAvC0gmyjC0iQfoO8fEAgYoDfr64iwDCGfWkRcwCrgvCTyKiJ6yPHXqlxVgr1xLBD1ADgCfKbYZizg8SXgVHP8KGAHMBnPggGHgG1egIy8ybYGOIkITwxhVN6LLyEXI2BFsISeUkwwyz3+Z8B9inuMA2YEe7Z3wJiorOJKMic3RbZ0wI33c8z0rpJSynpOIrIIkJH3VHPiPESkFaBMPimpzyoijQAt8ipVCZEINsEUgQBbl7xKVSKIZVssSm4AHgkjsEohQCsfCLjclZE/I/TtbPswr0peJydmIqYL2gv1cS6lp2xpPuKiTHmJ5rF9sDGTqmuMYVG/aUKDw0YPE1ldwQu5nLfxyizuxsnHRYgEuAJX6ZVV3JX9JrqS5cSWzb4gWXoru0fmSyJ2J1ZeFwWppikNDj+hmfFFQT7vFpOv0Z1phoY2+fwiyVO1Wf2iyDNUif4rcS2o4QRZmxkioxLA7BYwR0meWkAk4oWKfBECyO1HgAEA2cpdQ5RWsTUAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-ptzActive{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAANlBMVEVHcEwgmv8imPwimPwhmP8imP8imPwimPwmmf8imPwimPwhmP0imPwimPwimPwimPsimP0imPoLqfILAAAAEnRSTlMADprCJBnU/gXwh3LiUKxAXjJ/ELXKAAACbklEQVRIx5VW2bbjIAwLa1jM9v8/O7Iht+09MwPlpS2VwLZkJ9f1lxVG1joPdZ0u1ZIxurhv8DH6dMpQI5t439GAEc7xYPgTRnAtV7plReRhd5kDP8+fd+wzt70yPhIJzWT7/6DCJCAYLReZPMIuJC4pClSktHqbNpJO1aTmmAme3cvtWs9NSfq52CPhnJNjlbVHwgmWSWGHeQHcKFjj7fygwidf2fa4mbVOuladcnsoDn9/CKKAWf6HEtpANiJvUp9Fgr0SvocPP/sqjOCK9ktpyCAo4Kt/d4n4/6baseNKAt5XrauPN1A4ZLAd30RUI4kNfELVx+yd3lrXYIg1Bp/B/dGs5N8mPsJoVyiwkofQSlm+K9aiwmoQMDoI4wefoK/rhkESrSuV+BR2i6HZH9juLzxCtBmn6rFmB66gNJQwBOSxncT/N3FAlxAoLQfJDy2+6rMLI3aznl9fhOcGSdZzoNhex2K3TXJEVe3M4Zb6QhHuJc5BWakYIqqietcPw6FK+EHofUHRqtLEQ5X8dKVENXXgEpLOpcjwkFI30YFVHE8fyx2ShZJ/ydTKlZwZ4BCOv/af9uMi0DILe4kieynScgPbhai+DRDckTT6N6zJpI3HMghM3BMg+q9pHmwrbR0Q0D5wc0JHPy0E5Ur7Nf3Rk68LnR0NHfO28/T5P4cNr+uLFR7eEdiNxvMRbd5Onlqsis4iIVdme4di3akWOz+3T0aUnFWHa8QZrO51NO69MeLPafrNuBenxel/3d21j8k/jyxf+75OQabFxOtuT94G3Lpjzb0zBn2Dl0ep/waPidQ/p/XB60Dp7e8F/QO7WSJg4zEzdwAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-ptzActive:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAANlBMVEVHcExru/9ru/9qu/9ru/9ru/9ru/9ru/9svP9ruv9ru/9ru/9ru/9ru/9ru/9ru/9ru/9ru/+3uxEqAAAAEnRSTlMA5q0cR/PC/ggSKtN5OIhaa5izIOiAAAACV0lEQVRIx5VW2ZLjMAiMToNu/f/PboNsJ5PaKWv8kKRkWkDTQF6v/zyUfO+JX9sP1dKKd/v2acQcm992kbo1R4il7iHIif0BRNtCUOozH4cikAdt2YfjRLTnzN15/8I85wFCI2xDzlnyMLO7R0aFoTzbFGB+jIkYLkyePvmW8d2fs2ZfZuv8It9s6zvV5uSr2LmKb9oVh37QvpjYOcf8fcO3Cb1jGqOU0SvTTd6X2KUBLgKdLzaiDtE2n+isTh8/+AX7E6/Vh/NNSyfVm10RXIe1nxXRapmsDQB7SMnkmE0IxgqvUn0jteEf1T2CHXgr0gjZllGk1HoJL7lD7fRpD20CgJcwQ6EdSh3lLK0zVfuqz2WvPlPJh7HqnCQ4MysxoAYQE0vHub/toRuqzRy5pEUvbg62MzlJQn1MHBe1x7WSAddpNDSN1c9wRMhKfi2jrICwAIsQvHkD7Al41bOrBNC1Y7QdmSg15LDokGETJB/imxYJKfmFMDqI3FjUkDS3NSEDjBaxknRYSb+4nj4kC43W2OKrkqGB8jV2Fq03YiWbhHQTpUV1mMHXWYf8HlNX7ZUQRC6iwBAIK0r0ILr1UxqKsPattAkhwSIiMl76bT/Ft/TbTy2jHQoM7Cz9isHVMb6GILl0H4DGivbw7xNc8rAtiJn3O/qvD6JT/wgs7Y370ZSdWmbZWEKiG1lXImldW7Q1jGMbZW9tUVKZmGjjGvf+EXAqzWiX5OfFSHVp/zjbfGPc3whdcbTF67V2N1e79qYMru2/AnzVYFsdWFt/+nOypv8vQvoHou4gOtSrG5EAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-performance,.easyplayer-container .easyplayer-icon-performance:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjExOTU4QzJFQzE5MTFFRTk1NTc5MEIzMjhBQTNBNkQiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjExOTU4QzFFQzE5MTFFRTk1NTc5MEIzMjhBQTNBNkQiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmFkZDk1YjQtNDMwZi01NzQ2LWE5OWMtYzRkMzQyYjhjMmQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp67weEAAAKTSURBVHja1FqBccIwDAwcA3iEbFBvAExQNkiZoHSClgm4TpAwATABYYKECUgnIJ0gje+Ua9BJthNSautOF5L4bL30kmxgVFVV4LOMA8/lrwGIWkNfASjjj7Veas3g3isAq1olfFbXF98AROh+6hOABcH90CcAlLe9ASAgAtRz4QOAmcbboQ8AIkN0nAYgIAKcSNcBzAxedj4CkeH9k8sAKPoUPkUA00cZv3UpByRsyjJL+uxrzTtGQPWPmOkjtKgDjYWKWi/Vr8TE+2t1KzNQLCGzxsJy3I2OLbkdoya0QN7E9FGeT4kc0DWz1z50swGwIUIq0PYY0yeFa2nZC0KLAtALwEazj4801efQAlBa7l5NEemUA4rTH5VZFE9X6FmG5srQ+5hYb0fMfSVskkjFBHmvOcNGRKgLgsPKc8+M9wOGRsJy+9HQNIHT3YYYs54QCUqJMmIJ42JEsYDhP8dl2WH7MYU13znDJhYsa4xPWxWJk5wAYIpA1DE3OiWxWvwNmlJzn2jGH4hn34aDjTSUcME4Smk5AY+FLQMFXAswCHv0pKlMe2YxqmzmYHyIHNZwnovw8mZOy05s6rpU9eE6bNOlA6LS7WD+iqlKYZ9OTNFqb0kfLgKS4f9ZQ1Oys/fdjW6JZ4kGMMVtSVS/RDP/5z2bOUozFHrd2IqgiqkBXizoaVVGOZm3ki2xoJ1AEZgaKKiS9dg0LG7i0YN+H8hQuSyJnjAnKl7Qqoq9G9kQYmpmOWN8YNoMPuoHjtzwPnXtu9GucnIdwJeBXs5HoDDQp3QdQNmxKToHINcAy30AoKNP4QMA7nB/dumrxT6JnPgEIB+aPo8GgKvNeohJRw/+s4eEg3p6T/P6TwCDi/f/VvkRYAA6Iw2RVpnhvgAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-performanceActive{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAtUExURUdwTBGW2xKV2hKW3BKW2xGW3BKW2xGW3BGW2xKW2xKV3RGW2xGW2xGW3BKW2+P2IvgAAAAOdFJOUwC/gCvzq1RAleURc9VmrA9rXAAAAT9JREFUOMvNkzFLw1AUhU+SxtTahnZyC+IsIeAenDuE/oJQcS/FTYTi6hKcHYpDZ/EXBME95BeURpM0Me39Db4Mgk/u23umcL8kvHfOucBBKEr5eW95xoMjeuBBlyY86NOQBwt654HrPPHAca/YuUHrDQsG9eybBWa1+GLBqvS3LJiNX0vGJw/R0N6LJ+/f6x9I3uwG0D+luRU0FnmdCtBy6ZM7KvQdjgXwJYuNZVNrFfqF8IX+nFm/oBvyS2iZ8OWxgH4u1IZmU4kgfoa5E77c0jwhoTYCbTRFGE7QrXFCveCURkK/2cRBCp2gFYiyWk7Jw4AgXOmQZMAqa9uAeCP+JsViihtb9OKIPtBUuvy8jeqyHRpMhvc5X0W6Lvg60HrPg0DREySOoqQJKRbByRWbExaqlSoVwB0rwCLFwesHquttxhcsa64AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-performanceActive:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAnUExURUdwTH3G63zE6n3G7H3F633G7H3F633G633F7H3F7HvG7H3G7H3F6xOzy+EAAAAMdFJOUwC/hKbvK0BT2XURZct0z00AAAE3SURBVDjLzZMhU8NAEIX3LiSUNqI1qBMMChFRgYxAd07E4CI6HQwzEUXgKjC4CH5ABAKJyA+oaHqBJO3+KPaYYSZh9nyfyuyXu7l77x3ASSgu+flYX/HgHOc8kC4wwikPMnzhQaTueKAiHvi43bFg0m4OLPBM9sWCjyb9ZsHm8NkwPiUQT8MjfSX/fn+F/C3syJf9YB7oLsDkjIaiHix5QCNbGBmAFPve+3lXi/0viLB3ZnmDz5g2ICry5daAvCbZhSE2oIsFeC35ssJljiQbgZitIY7nIGu4wLG+xBnpL5tClxQhCANR1Q5TSmCCQK7YjftOVbYNUOxot0EsHl0uwHdFfcD14PJLG9W9HfpMho81X0V8MnwdcHvkgS4cBcqVo6QKHQ9B1a6XY1zAcSiIFg6QlXDy+gEd714RcAqEowAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-face{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAeUExURUdwTL+/v76+vsDAwL+/v7+/v7+/v8DAwL+/v7+/v96T4QgAAAAJdFJOUwBAgSCbs9hZap+hQJoAAADvSURBVDjLY2AYRkAJCAygbEZBQUEBKJtpJhDAOJpA9kSYxESgKphuIaBuhASqyYzESjC2hDRilQBZ64BFgm2qMLPYNCwSkQpAwlMBWYIRzJsKYrKCxZSRncKSDFYzBSNY2MD2MqRhSFgqgClPAwwJBxwSbAk4jGKZDCKZp2JIsEOcOx0ztjQDYL5ENwsYJKrTsMSvGSgepzVg2pE5qSikPRPT8sopBuDod0ATZ54JsbZyBrJgAVAp1Ax2oPXMykjxYQaLA2CMoERUZQDMrgBUCc8CKIdzAvHJhyQJpLQLSu0TCaV2lPwBSu0KQy+LAwBuJj5UbruNggAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-face:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAnUExURUdwTP///////////////////////////////////////////////w2imYoAAAAMdFJOUwBAgBvfrFmcw4wrbtGliFoAAAD2SURBVDjLY2AYRkAJCAygbEZBQUEBKJvpDBDAODpA9kGYxEGgKphuIaBuhASqyYzESjBu79yIVWIP0NoCLBIsR4WZJY5gkYiZACRqFJAlGMG8EyAmK1hMGdkp7M4gkus4RrCwBIApFwwJmwlgqsYAQ6IAIrEAwygHHEaxngJbfhRDgg0sxHoMM7Z0AmC+RAPsJ4S5NE5gid8VoHg8sgHTDh/PzM60HkzLc44bgKMf3RKuMwoQ+dNIgswJDAycUDPYjhgwMCsjxYcJLA6AMYISUTkBMLsaUCVqEqAcngPEJx+SJJDSLii1HySU2lHyByi1Kwy9LA4AqflRBKNSA88AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-faceActive{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAhUExURUdwTBCT2xKV2hGY2hKW2xGW2xGW2xGW2xKX3BGX3BKW23povfoAAAAKdFJOUwBAgRybs9hZLG6hrV9tAAAA80lEQVQ4y2NgGEZACQgMoGxGQUFBASibaRUQwDhaQPZCmMRCoCqYbiGgboQEqsmMxEowTgmZiFViFtBaBywSbEuFmcWWYZGIUgASXgrIEoxg3lIQkxUspozsFJZkEMmxBCNY2MD2MqRhSFgpgCkvAwwJBxwSbAk4jGJZAbZ8KYYEO8S5yzFjSysA5kt0s5YKc6guwxK/baB4XDYB045Vi4pCyrMwLa9aYgCOfgc0cY5VEGurViIJMhcAlULNYF9mwMCsjBQfZrA4AMYISkRVBcDsCkCV8CqAcrgWEJ98SJJASrug1L6QUGpHyR+g1K4w9LI4ALk0RHtSETFcAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-faceActive:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAhUExURUdwTHzD63zE6n7H7H3F7H3F633G63zF7H3G7H3F7H3F68TinBIAAAAKdFJOUwBAgR+Z31ipwW4yAjb9AAAA+UlEQVQ4y2NgGEZACQgMoGxGQUFBASibaRUQwDhaQPZCmMRCoCqYbiGgboQEqsmMxEowTmmZiFViFtBaBywSrMuFmSWWYpGoUgASXgrIEowgHtsKEJMDLKaM7BSWYLCaJRjBwloAploxJKwUwJSXAYYE2KUMVRgSrAFgKhTDKPbFIJJ5OYYEG1iIfRlmbGkVwHyJBlhWCDNrrMASvxageFw6AdOOqKCklrQuTMuzlhiAo98BTZx5FcTarJXIgglApVBr2ZYaMDArI8WHKSwOgDGCElFZBTC7GlAlvBKgHK4FxCcfkiSQ0i4otS8klNpR8gcotSsMvSwOAIs+RIlIrewIAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-object{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAA51JREFUaEPtmT1oFEEUx9/bnRALGxE70btkZjcR7QMiRisRbCzEQvxCLGyEhCDRBC/RoNaWFgYLFUSwUBAUDKKFFqIQ3OzNJpfCyspS8HaejNyG87J7t7N3l03gttydefP/vbcz8+YNwhZ/cIvrhx5A3hFMjEAQBDwMwzOmAi3LWhBCLDTr5/t+ycSubdtLnPOncX1iAfQAlmXdNBmkru2RVgBSSspg+5kQ4lRjv1iAIAgqRFTIMIju0i2AWNvrAKSUowDwLqP4tACm9rWmbABCiFxXKimlhu0BtPFHtdc19wj4vn/Wtu3XnPOfWVByA5BSngCAuwCwryb8Hud8EhGNltANB/B9/5BlWXcA4GCMx/8g4jjn/H7aaGwYgOd5BxhjcwCgPd/0QcRVAJhM2l3rO3cdQEq5GxFvEdH5VsLX7aKIH8MwLLmu+zapb9cAFhcXt/f3988AwJip8Jj2L2zbLg0MDHxr/NY1gCAIpohIJ2V2BwC0iUd9fX2lQqFQ6cQvtJbICSGOxHhlVOdKjuPMl8vlqzrxI6IdWUAQ8Um1Wp0ZGhryiYghYrUtgDQionxJT0al1IwGkVJeBAANvieNDQB4joglzvmilHIXAIwrpX67rmuUamfKcxoTvnoQ3/dP27Z9g4j2J4C81KBCiC9LS0suY2yMiC7rttoZuQBEQhsiopfT6wAwUvv+hjE2XSwWP0kpRxBxgohO1kPmDhAHEgTBUaVU1XGc98vLy8eVUhoqbpPLPwIx6/wqEV2ovX8AALzZ/Ng0EWgQGa1iLQ8xPYCUyx8YHjt7EWjm2I7sAy0it7ERqNWEDkeiklIJg8pFWwC1ZC6SM9NYc1oXgcaiVlxVYmVlZW8YhlMAcCnFvOkEQPqqRBqASLTneTsZY3pjapZSpwF4Y1nW7ODg4Ie202kTgGiwSqWyrVqtXgOA6Zj0OhGAiF4R0azrup87dqDJAlA/eLlcnkDESQCI0us4gOdEdNtxnK+tfkHjA027AJEgKeUVANBROVd7p3fixwAwJ4T43kp4nR2zylynAOoE/JuAiPiDcx6kFb5pAEwF5zKJ2xXZrH9uc6BTUD0AAGh639Xo6bjUI+G/NglS+p3Y87wCY+y/2ozJSGkuRDLekQFjbEexWPxVryfpjuxhllKhNtwtAESc55xHx9M1hsR0WlcOlFLHTLyv26Ypi5hesyql5oeHh3VBeN2T6TxgCtXN9j2Abno3je0tH4G/KbtRT7VUKs8AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-object:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAwdJREFUaEPtmTuIFTEUhv8fLSxsFrET3UIQRHtBRNdKBBsLsRBfiIWNoIisD1xfqLWlhYuFCiJYKAgKLqKFFqIgoiBoYWVlKbjwy4HMJXs3M5Nk7tzZCzfdvZPk/F9OHicnxIgXjrh+jAG69mCpByStB3AgQ+AcybmqdpJmEvv9SvJhqE0QwBm4lGikqD4VAaCMvh+R3NffrgzgB4DJDCPWpC2AYN+LACTtAPAqU3wsQGr/pikPgGSnO5Ukgx0DNJhRzZp27gFJBwE8J/k7B6UzAEl7ANwEsNEJvwVgmmTSFjp0AEnbANwAsDUw4v8AnCZ5O9YbQwOQtBnAdQA28nXlp/NG8HT1G7cOIGkNgKsADtepDnx/C2CG5Muytq0BSFoJ4DKAUxnC+5s8cSCf+j+0CXDBjAJYNgAA6+Keg7AwpldyAXqBHMmpwKjYyThJclbSSQBWfyIT5IF5kuQ3SctJzjcCiBHhxUu2GM24gRx1IGtj+gDw2I34Z0mrbXcC8JdkUqidFecEAj4fZD+A8wA2lYA8NVCSHyRtcGvouKtrg9EJQKHVB7Ht9ByALe7jCwAXSb6TZP+dAbC3D7JzgBDITgDzJF9L2u2gQoectV0yAD7IEffjDgC7plaVJQdgYotdLOYSMwaI2gETr51jD1SN6qDOgSobw/WAywltLxRVhBIxi7LxInaxUCHHFvmCpFkorWInoR8LheqsA2DB3LGIRdPIAznBXC1AIVrSKncwVYXUMQB2Sl8h+SYQOCanVaIBPJAVAM5aqBAIr6sAnjnh78s82aoHQkYlWYwz7YXXIQCLRK+R/Fg3BYcO4HnlhPPKIfefTYX7dm8m+aVOuNdP+1OoSow79KzKL5LfY4UvGYBUwZ0s4qYiazzY7RRqCtfZIm4qfGBrAEDle1e/0FDoUTKvUxiT3gfsaWlBbibFUsyDiKSkBK9nf4LkH19P2RvZ3cxUIVoEmCVZXE97DFXPrJY52JUy+lY3Ji2S8cxq4i3jsahk3QdSodqsPwZoc3Rj+h55D/wH5CHfQHNA9EUAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-objectActive{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAA9JJREFUaEPtmU+IE1ccx7+/N7O0BwUn24UeRKOd7LalvS+I6HoSwYsH8SCtLf1jEqWoyLJVMfEP6nlNIgi6eFChCB4UChaU0h7aQ1GQrnFSdw9e/JNs9LTFzPvJZI27m8xk5k02m13I3sK+33vfz/u9N+/7fo+wzP9ometHF6DTGfTMQF+mYNqwd6sKlFLcK++P3WsWF8nkUyr9stAeTcXN624xrgDVAUgcVxmk1lbaGPIFyFocou9fSonYzvo4d4BsYQLgaIhB0EYA174bAFaNWpuFhrthxDsxQQCMrKXUPwGbvfr2BSglYh39UjmwXYCwy2kh4jqegd5M/itdaL8+i5vPwwB1DMDIWNuJcBbA545wAs4V4+YIiJQ+oYsOYGTzGwniDIANLjP+hkCHiglzNGg2Fg3AGB3/Ugj9NBO2+4ujSSaMeJ2uc+PbDhC5aK1GhU6CeY+/8IZz9E+CnSomBn7zim0bQF/m4QqbPkgDOKgufH4EAzdZaKny3vUP6vtqG0BvtnCUwY4p01oFcOIZuCJ7elKvvo9OtLyESMN7IzeViA3VC3TshiY4Wkz2j0Uyj3+aMX5shAIhuia4kn6Z+DSPu6xjiCotAQQRMeuXaJJYpqsgOetbcBV8TZA+ANxgotRU3Hz48SWr7800DjHL6VJyQMlqh/I5jYZvFsTI5XcRa0cA/sLDv98iieMv98X++Sj7aEBCPwjwD9W2LNMdAqhJnQMyc5D9DGBwRhzukK4fK/647q9I1hoE6DDAO+ZBdh6gEaQ3V9hi27JS3tf/u3Hhv20kpQPldsgthQw0fOcnpc3fVK2EhosEmE33x9LJwKxM54Lj/Ap0SeoCBPz+qVw7uxnwmdQFOge8R1n0DDg1ISaxqSbJy0oE2pTvqhStbOK5FQy2ka6vOTVkoL6o5VaVWHX+yVoh7KMAvvPbNq1mQNmNBgGoiV55fry3R+jOweRpqQMBMO4wxImp5Cd/tGynVQBqg0UvT3z4eroyDMaxenvdHIBvE/GJYnzgb69MtjUDboMa2ceHCTQCoGqvPQBuSOZT5WT/fb8luOgANUFGxkoQYVja+Lq2iQm4ygKnS3tj//oJf9+PamUuzBJqJsY59Jz/9wh6+iJpFoIKXzIAqoI7solbFdksvmN7YKGgugAMNH3vqp9pN+vhtq5VMqT2PpAbjwrW59VmVAYL8iASCfdGBvm/bpQPrCvP1eP+RpYrXA5XKgTaBkA0Voqb1eupL4DToFo5YLlVZfadtkHKIqrPrFLIsXL8s0k3LaHuA6pQ7WzfBWjn7Abpe9ln4C11Qo9Pmb2aMgAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-objectActive:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAA8hJREFUaEPtmU1oU1kUx//nvthx4cJqX3RgGLsQBNG1tq8Z7axkwM0sxIX4hbhwIygibfPMeyapunY5iymzGAURZjEDAwoVm8SPhSiIKAjtQtAmiooLiyb3yEtNm76+5L37kjQp5C2Te879/+65H+eeS1jlH61y/egCtDuCNSOQyH3cWirNHVIXKO6kYvqdenbxqVlLxS8J8Txp6Ne9bDwBnA5IiIRKJ5W2LDHsB2BmC6zqmxk3UkP6AbedJ4CZfTsNcL9qJ077VgHU8r0MID5V2EsCk2HEBwbIFdT8M/aGBkgaelt3KtOB7QKEnU9NsGt7BMyp2cOa4P8tY3M+DE/bAC7cK+xnxmUwtjvCCXzFHtRHiEhpC11xADOTjwG4BCLDY8S/MvhsyoheDRqNFQMwc292QmppEPb7i6MZgEdqna7V9i0HSNx/95MscRLgo/7CXS0IWS6VrFRs8+1ati0DSEzm18kesgGcURa+3OAfSGklY5ueuP9qGYCZzceZySKC1gQAgPkvXtNjpXatn258CmlYSOSSg/qwW+B8usH9SSM6Ec/lTxM7iR/3hgEh4Jpk2Kkh/UVikiP2MBUbAggiYjFfchajtB0QM/fuOFg64D8H8QHQTQ3CsowNT8cffdLnPn8+KyXPpWKb1FLtYJ0tbbU84asCyRYOEmiMwTtq+P63JJAYH9AfxTOFbUTlNXRyPlmTdpsAKlIXQZyDDJJGGbx7/l++BSHM5EDfg7HMm91CRM6B+fdqyA4AWA5iZd/++hWymDaid+OZ/G8EGgXB65DrhAi4Jw3NsORj5VRC4A8AW+tN2Q6KwKJM54b2HcD3EtMFCLojqVw7uxHwGdVQ992OjkC5JqSJPRXw2qlEsMpFo1OonMx9/7gE211z8iirLC1qeVUlxrLvtwgU4wBO+K2bpgCoVSX8ASqiRx682hgp/jBaL6UOBsC3pMTFdCyaaUI6HRyg0llicnptqWfdeTBMd3pdH4D/kyQupgf7HtaKZIj7gDpAdefxzOw5IjECoJxeewEQ6CZBpmwj+thvCq44QEWQmZ09BYjzLHFk4SQm/C2KIm3/svGZn/AFP+qVucYi4BbmbLnOb5rGr+zB6MugwjsGQFVwWxZxoyLr2bdtDTQLqgsAQt33LvdIe6UenvNaJUQqJ3Hi3ut+KSNLajMqfQV5EAnzRuZoEF8ivfZw74dqPbXeyP4MVSoE0DoAmkgafeXrqS+A08CpHBDTPpXRd9oGKYuoPrNqETlhD/w446Ul1H1AFaqV7bsArRzdIL5XfQS+AaeCtE+rbksUAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-occlusion{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-occlusion:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-occlusionActive{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-occlusionActive:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-logSave{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAA1RJREFUaEPtmT1oFEEUx9/bFLFKJzG2WiknZObFxlO8RtFC8SuFWlrYGBtRRNCghV9YmFQWgoVaaAS1ULRRRKvbmYBBQezVYBOIGFMkT0ZuYXPufOxdspuDO7jibmfe/H/z3sy8eYvQ4R/scP3QBSjbg8EemJyc3La4uHgUETcx82YAWNum+N8A8IWZrxLR41ZtBQForUeY+Xarg/j6MfMVIrroa5f13AuglOJWDLfQ56aU8mzefk4ApdR9ADiW12ir7RFxXAgxkqe/FUBrvYeZXzQbY+bh3t7ed5VKZTrPQM2eNHYQ8VGGjTtSypOhtq0AcRyPIeKptCEppTfkbAM3AxhbcRwfyYJg5nEiCvKEVZBS6hUA7EoEIeJ+IcTz0JlpbpcFYNrYIBDxlhDijG88lwd+IGJ/YoCZ1xPRd5/BUA/Mzc31VavVWRcEM18jovOuMV0eWLL7tBM+RoBS6isAbEzERFFUHRwc/JD8dnjishDikg2iSIAJADiU8uhdIjqRFuZYEweI6Gmuc8AWs6EhVK/XR3t6eg4zMyKiEQ/MvOSwQsS3iHhhZmbmY61W++UIp/dSyu2FAmit3zDzTjMoItaFEFuVUt8AYCB0ElLtZqWUfYUCZHlQKXUQAJ60AAC2Nbhia8AWglprAoB7jYQwmGXVACSKzRqJomgLAJjvBh/JqgPwCQ7dRAoPIZ/w5HkXIHQGQlOHvCd56PjdEOpoD6TShT/MfD19OXeFQCPnOYeIaxYWFiaGhoZGQ9Pv5nZthVA6XWjkOsMJRGj+b/IhIURtVQCkIUJvYKUCONLf/+67tjuw+T+rLlTYLmSDCDmwbOIbF6CgC1Vba8B3m3JBuMQXDuC4iGQy+MSXAhAKESK+NAAfRKj4UgFsEHnElw5gBGit9wFAUqy9kbco1vY2Gsfxsha2QrbV1K42gIimAPDvw8zTRLQuy0ZhpcU8AMZ7zPws1ee1lHJ3LoDlLu7mAcioZFuLvYWV130AU1NT/fPz8zuyqtWIuFcI8TKXBxo7QaEvOCyQD6SUx20T4K33F/iKKVOj7yrqBWhsiSv6ki8zNBBPCyHGfKEXBGCMrMBr1mZtPxHxEzN/jqLoYbr07oIIBvDNRFnPuwBlzXwybsd74C95KWhPrxIhsgAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-logSave:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAthJREFUaEPtmTuMTUEYx3//TrWdeLRUJCrReISGUBCvLVAqNGiEiASh8IoClUKyBQqPBAWhsREqnYRE9NgoV0T3yci5m9mzc2bmnHvvOXuTO8ktbs7MN//ffPP45hsx4kUjrp8xQNcezPaAmW0EDgFrgLXA0j7F/wG+AlckPW5qKwvAzE4At5p2ktHusqTzGfUWVEkCmJk1MdygzQ1Jp+u2iwKY2X3gcF2jfdS/I8l5O7tUApjZTuBlwNIk8E7STHYvQMCTzs6jgI27ko7l2o4B3AaO+4YkJadcVcdlAGfLzA5WQGR7IgbwGtjuCdoj6UXuyJTrhQBcnQjETUmnUv3FAH4CyzwDKyX9SBnM9QAwIWk2AXFV0tlYnzGAebtPP9OnEPkNWO2J2STpQ+9/xBOXJF2ogmgT4Amw3xNyT9JRX1gEYq+kZyGIoQGY2UXgAPyPt5x4V8qH1TRwDvgk6XdkOr2XtLltgLfA1qLTj5I2mNl3YEWDdTQraaJtgAVryMz2AU8bAFC1Boc5hYKbgJmtB6aKgDCbZdEAeLuOWyPrit+qFMmiA0gJrjr4yu1an0Ip4Z6Hss6hMUBu6FD3JB9PodwRGGkPeOHCX+CafzmPDUAR85wBlrgwQ5LbUueV3AHsaxGbmR8uOAGTPYga8f+0pG2LBWAOosYNrFOAqith6L5bdQee81optG7nHIjE8DlnVlB8EVa3AxCJ4VMAleJbB2gAERXfCUANiKT4zgAyILLEdwoQgcgW3zlAIWA30EvWXq+bFBvESTzQxFZqSyqdAe7i7xIAvTIjaXnIRmupxZoAznvPvTZvJO2oCzDQ5G5NgPKbRGWyt7X0egrAzFwedktFtnqXpFe1PFAsxLYfOEIaH0g6UjUAyXx/i09MQY2pq2gSoPDEsB/5QuJPSnLrMFqyAAqIQT+zloX9Aj4DX4CHfuo9RpANkBqJrr6PAboa+V6/I++Bf0in3kCazcMZAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-zoom,.easyplayer-container .easyplayer-icon-zoom:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjkyRDJCRTBDRkJENDExRUU4NjU0QTgwMUIxMzE4OUNGIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjkyRDJCRTBERkJENDExRUU4NjU0QTgwMUIxMzE4OUNGIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OTJEMkJFMEFGQkQ0MTFFRTg2NTRBODAxQjEzMTg5Q0YiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6OTJEMkJFMEJGQkQ0MTFFRTg2NTRBODAxQjEzMTg5Q0YiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz42fGzhAAACi0lEQVR42tRZy3HCMBA1HgpQKojSgdOB6cAdxFxyBS65Yi7kSG45mg4oATogHUAHdgeKlKxnHGVlyZbkz5vZgRFGfqv9SpoxxoIpIxwZn1cuVy4Fl73RP4QFakK4HLjc2C9yGAt6kiv7C6r7jzyQsf8ouEQ9kCfIu7XvlV3oBTES4XLmEo09BgRRqniOgG/GUwriOzImLJGOSYG5RoElkK4jB4t8WLyXgJiANi5sQxCdYTxiOLKOwfrG7CCSyh7LQioFKiUKZLK8gwI3Zo9ClYVU+OLyBJ91pIiLjbYSl1wWiBIxZChTfCoSRNByjh/Mar0QgRJe4QKEA0U2ihErLUBRE2B1RV6IZ8VC3tsEsUpyxDdvFlXbSSVugyWSSmnfVdu2G91w2Q1ZtV200xlYY5Cq7Wo/cFQEvKjaa4t5y74UqLIWljUOYCUTsu/wWX3Xp1uLLKQSl1U78JmFRlG1fe2JXVXtQTf1JcTEBanA1xbt9OCnEgvIUpgS0RQU0FVtOpVzIVXVtgrsuQei1eEAlbaEj/BbKfk/rY0ProAoWKuWAVp2Je9DgW3HNqT3GCBdexfp2R0SF14tQKC3SRXF6ig1bxXJahdVSmKPFr2Q+P0kPXMy2FVRn2eqYYuVF61xIo0nUh4vEZ/eBj5hYAFs5Zu6zF6tEHZcebnLHM4KDSt3Vax8jozLVqDISZoXK+hMj5EnhgRPjs5SnSkgXzfpCMaq80xfCjQdvGJ3ZZEBQXm+1LcCiSF5U4KpbyuoNuVVoK41EzQRJIgbMde3njMHF903KY1uIJWukB2XGH/wlUa7StriYiLrw4UCD7cuhYE7DqpAoiHu7bbf5WTrGumzb+Iug3hQhMHE8S3AAG4KbhZi6jjKAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-zoomStop,.easyplayer-container .easyplayer-icon-zoomStop:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjUwRUE4M0RDRkJENTExRUVBNjg5QjRDMzc1MjM3NjE3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjUwRUE4M0RERkJENTExRUVBNjg5QjRDMzc1MjM3NjE3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTBFQTgzREFGQkQ1MTFFRUE2ODlCNEMzNzUyMzc2MTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTBFQTgzREJGQkQ1MTFFRUE2ODlCNEMzNzUyMzc2MTciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4bPpBhAAACb0lEQVR42tRaS27CMBANCKlb9wRNb5DeAG6QI4QTAJtuCZtu6a7LcAOOEG4QbgA3SLZdubY0lqLpOHESO4lHmgVDZObN1zNhwTkPfKZl4DlhAEzwWfBDsHRNBrL5kgyhGqf8P5WCI/TcbHiBckBaPiRwVoI3gu9zc0AdgAyVsuV5CeLmSxI/CVkuOJkTgFULgC0oXSeV2N8DfpcNKA5PXRIzlLw5yCNOU9oz8T75MJJF5UudZwJAgSiJw7IeAB58OJXqPNNGJqvPO1GFEiLEZtuJdaV0LbjocM6PpkAEHc9oLaM3UDjQVKM14aUNADWhiJC9oM+/GkM+uySxjjMiNh9jd+0hl7ktUUpD8E7ky230IPhE1PiCCLHZXqdT8MYkXdvWPHDRJLzs2ntfBhpZtT4I+Rm85MVEdgcQuJQewRtejJSjdm1XM7Gtrj3pUF9BON2IDlzYmrXH2EpsoEpRICIfALR17dCXvZCuaw9K7JUDRRlYNaxZWtIbfFeh+A9r8skByIa165igVV/lXQA49ryGjJ4DrMGaXSx/IvLCqQfU7jTRNKsLurwpJdUUVSEeTh0mMvn9FT1zJZ7BFM5hImNwGYuRPEZ1vCJi+hi4JAMPUJZv2g2N6oVlT8vjW+Z0XmiwXKGxfEbIsRdCYpPmxAttrqeUZ4YKXi3tUq0BUMqbKrjW7TNdAWhavGLlqa11abDITVwDiA2VN1Uwce0FShjVEnXfckCTgowII95gDCsv+foQfjF4gFK6IyYuKX91VUb7ctLhxUQ6RggFDt66lAbhOCmAuEVx5uoqYfOwfU3p3LXiNpN4UvL+3yp/AgwAlHk8Iw/KUcsAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-close,.easyplayer-container .easyplayer-icon-close:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjUyQ0MxMjFFQzE5MTFFRUFBODdDRjVEOEYwMUI2NEEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjUyQ0MxMjBFQzE5MTFFRUFBODdDRjVEOEYwMUI2NEEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmFkZDk1YjQtNDMwZi01NzQ2LWE5OWMtYzRkMzQyYjhjMmQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiQrL4kAAAFvSURBVHjazNrrjcIwEEZRi4ooISVQAiWkhHRECZRACaGD0IGxkYMCysPj+eYxkv+QRblHm11hmRBjDGl1aT3SGtO6p3Uur3taXWn7aZwvrE3vKD63TCuNXb54i9vTO47PM4by6ESniL34PFMoz1N0iDiKz/MI5Y8hOkPUxOe5LN/gBVEbP8z/hTwhSPH/AGsEOX4NYIVoit8CaCOa4/cAWghW/BFAGsGOrwFIISDxtQA0AhZPAaAQ0HgqgIuAx7cAWhEi8a0AKkIsngOgIMTiuQAKQiQeAeAiBu79kR/G1OORACpiQN33FLDzqvy5J+yOyp/nl3P18gi1xMMQlvEQhHU8G6Gxk+olEVrbQDGE5jZQBKG9h4Uj1PewaIR2PBxhEQ9FWMXDEJbxEIR1PBvhIZ6F8BLfjPAU34SYD7q9xFMRXe0xq2Y8BfE5Zh0dxtcixqPfgGV8DWL3oNtD/BHie9CdEcuv21wcxe82vgUYAILPjGwZ4xpJAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-narrow,.easyplayer-container .easyplayer-icon-narrow:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REEzMTY3RDFFQzE5MTFFRUJEM0FGNjYwQUJEMTgwNUYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REEzMTY3RDBFQzE5MTFFRUJEM0FGNjYwQUJEMTgwNUYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmFkZDk1YjQtNDMwZi01NzQ2LWE5OWMtYzRkMzQyYjhjMmQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmOpE2wAAALZSURBVHja1FmLcdswDHV8GYCZoMwEUSeos4E7Qd0NNII3UDKB3AnkTiB1AmcDuxNYnUAVe1CO5ZEgIEJSjDvc2RJF4hE/Arzrum51y3QvMEfW86bnJ/itgFt4/wa/f/d8hP9yZDQwgnXPRc+njk9X+FaPXPs/5n6Q9VyCEBKUDIQ6UMFiUoK7lI8FcEdwYmPPZc/byLjW4gt8Z0gDx8j4xlf4VswHjMmcI/Zc9bwDLWFzbcH8MDoT5iGbUIaYjHm+5y5mcYGAOEkA0MjO10IRRMNcoTVGA1DIxEXCrnO1UY8FsA9MuBMWnLJmzgWgA3ZfTCj8wGXA1zQHQOWZpJrAbELsM92SmgdMrD5Z8XuI7Z/ZsXk8mbWvnuePIRnW1u+dI7yh1xmFHzbs4HkeTKK2Bs5OxmwBeTvzCdmnBSPDA6aBzJPumwWED2lBhY4jA4CN592PBeuUX1QzGgA8ed41CwI4ep59wQC4zntZyHzck61rRqgPuBNgTlaAo3UJXEVAuNFPczSA1a05sErc5S3Mg2mBrIEVZXBgZ1JDJhVAiwFoKeqyHOwgYOMmSLwwwLVYW4UDwIz9DjwlaY4GGqZ658jGmmK6A4A/ngm2CwLYEJPbO4ADNXHMRN+oiTV2mHtYyHzOjgm/wbEeDaPHQMKam3w55iflOM0uJiaKPKyiak0oJsoZTafw7P4R3UBPS6VbqKgvAkV9xm2r5NINWALnUm0VrDvQQf9GUnCFNLaqlNaiQi4vJFuLFdIjrVObuypyA1Mk7jrlrqHuBC446sgiFaHtqKz2OveSpE694BhC6Y4w7mKVo8rDGDXIOci8e0695Msnul66OtGG1XIfY7+loOBlICCQQaREkDxy/YRdI+0JkYwEguoDsbO76Wp8sjp8yvGJ4TzfMC+666hPzNQ2l265vydVCQ3MQT5N/KtX1qvboGdPRdZgfaGPCuLFasm8ugXNTdJfAQYACTIJYeuAtl0AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-icon-expand,.easyplayer-container .easyplayer-icon-expand:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTQzMUY3MzhFQzE5MTFFRThEOTFDQjIxMkQ0NjhEMjEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTQzMUY3MzdFQzE5MTFFRThEOTFDQjIxMkQ0NjhEMjEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmFkZDk1YjQtNDMwZi01NzQ2LWE5OWMtYzRkMzQyYjhjMmQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiPmzTUAAALkSURBVHja1FrRcdswDLV9+S9HUDfQBmEnkLqBu4EyQdUJnE4gd4LYEziZQO4EcieQNlDJO6rHqgBJkFBU4w6XxLJIPOIBBMFsx3Hc3LM8MI6VWSqUDubzm6X/FQBtpFRaKC3N3z45KT0rPbIh0BQiaqb0oLQf0+RgxtqkKOXLgslwCMjiAHKl7bictGYOMoBtQBbSPH/xcPxV6Zv5OVgBLKzALsxYLvls4oQtBioHZXrznMrjyuMNyUWhPWK8/qw2MZESgJVjYfJUALnD+DI1cwTOk8UCEEjAthxpjzBfFwugTnVrJIg+JsVCm1TPQBsZ4S2JxERGAQCtfk00pGZ6d5ImFIBAVp+abbrZ+1QqdRQbdtaWABVk361NiVLkQb+HiJ7rGzDeHnvBBlAAz48rlPjQTvwYAiCfPbsuVcMHeOEElDNOALmpV2w5r3jQOgM0ylwAIK5eVwRwQ4pK9ESWBQ4ySW1iJvMEsZYeGVtXrk/I+NeAcf8CIBAuQqLp9jUyK9ljaP1B8LTwBXEoAE4RqXPvHC9kDvc+M2SaZ0OjTeDcNxeFBsLqbAx3Mf72s3e3TJ4ZXB54RXi6luRUAAPwhccVARSA8VdfEM93v9Bm1RKBLYGmweAD8AY8L1cAIIGF+xnSlRDISWzzzuV0Szkf72Y8OwLurBOqSWo1uwcC+OSsCoAVgIR6Hi7NEVEwdCgk9VDfpLQ5Eg71Hceh3jVYy9DMwuZ7QdoqIraxJTm6ZoG06ZC5ytTWonT0LyuGVa88rfoLR3vdBaIz/VOq4ZLQqveCCGmv67R28ezK09WRfR8mZndnReTurnfhT6lXTJmDq6MjXigXHCWSAZ2eoHK3WeB2ppllGxKI2MyRCqQ3BuXEhbpwAJhfUlyIRteBm2IQiJAgplSR0yW31g9Kf80Cm3rObpC24p/A5gSwlGAgPupF2d3Bv0N8QaraMvamfi09QC33e6AQ1BA7TfF0bwD+kd8CDAC6i7dPM027RwAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.easyplayer-container .easyplayer-menu-icon-text,.easyplayer-container .easyplayer-quality-icon-text,.easyplayer-container .easyplayer-scale-icon-text,.easyplayer-container .easyplayer-speed-icon-text{font-size:14px;min-width:30px;height:20px;line-height:20px;cursor:pointer;text-align:center}.easyplayer-container .easyplayer-speed{box-sizing:border-box;text-align:center;font-size:14px;color:#fff;width:90px}.easyplayer-container .easyplayer-menu-list,.easyplayer-container .easyplayer-quality-menu-list,.easyplayer-container .easyplayer-scale-menu-list,.easyplayer-container .easyplayer-speed-menu-list{position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;background-color:rgba(0,0,0,.5);border-radius:4px;overflow:hidden;width:-moz-max-content;width:max-content}.easyplayer-container .easyplayer-menu-list.easyplayer-menu-shown,.easyplayer-container .easyplayer-menu-list.easyplayer-quality-menu-shown,.easyplayer-container .easyplayer-menu-list.easyplayer-scale-menu-shown,.easyplayer-container .easyplayer-menu-list.easyplayer-speed-menu-shown,.easyplayer-container .easyplayer-quality-menu-list.easyplayer-menu-shown,.easyplayer-container .easyplayer-quality-menu-list.easyplayer-quality-menu-shown,.easyplayer-container .easyplayer-quality-menu-list.easyplayer-scale-menu-shown,.easyplayer-container .easyplayer-quality-menu-list.easyplayer-speed-menu-shown,.easyplayer-container .easyplayer-scale-menu-list.easyplayer-menu-shown,.easyplayer-container .easyplayer-scale-menu-list.easyplayer-quality-menu-shown,.easyplayer-container .easyplayer-scale-menu-list.easyplayer-scale-menu-shown,.easyplayer-container .easyplayer-scale-menu-list.easyplayer-speed-menu-shown,.easyplayer-container .easyplayer-speed-menu-list.easyplayer-menu-shown,.easyplayer-container .easyplayer-speed-menu-list.easyplayer-quality-menu-shown,.easyplayer-container .easyplayer-speed-menu-list.easyplayer-scale-menu-shown,.easyplayer-container .easyplayer-speed-menu-list.easyplayer-speed-menu-shown{visibility:visible;opacity:1}.easyplayer-container .icon-title-tips{pointer-events:none;position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;background-color:rgba(0,0,0,.5);border-radius:4px}.easyplayer-container .icon-title{display:inline-block;padding:5px 10px;font-size:12px;white-space:nowrap;color:#fff}.easyplayer-container .easyplayer-quality-menu{padding:8px 0}.easyplayer-container .easyplayer-menu-item,.easyplayer-container .easyplayer-quality-menu-item,.easyplayer-container .easyplayer-scale-menu-item,.easyplayer-container .easyplayer-speed-menu-item{display:block;height:25px;line-height:25px;margin:0;padding:0 10px;cursor:pointer;font-size:14px;text-align:center;width:50px;color:hsla(0,0%,100%,.5)}.easyplayer-container .easyplayer-menu-item:hover,.easyplayer-container .easyplayer-quality-menu-item:hover,.easyplayer-container .easyplayer-scale-menu-item:hover,.easyplayer-container .easyplayer-speed-menu-item:hover{background-color:hsla(0,0%,100%,.2)}.easyplayer-container .easyplayer-menu-item:focus,.easyplayer-container .easyplayer-quality-menu-item:focus,.easyplayer-container .easyplayer-scale-menu-item:focus,.easyplayer-container .easyplayer-speed-menu-item:focus{outline:none}.easyplayer-container .easyplayer-menu-item.easyplayer-menu-item-active,.easyplayer-container .easyplayer-menu-item.easyplayer-quality-menu-item-active,.easyplayer-container .easyplayer-menu-item.easyplayer-scale-menu-item-active,.easyplayer-container .easyplayer-menu-item.easyplayer-speed-menu-item-active,.easyplayer-container .easyplayer-quality-menu-item.easyplayer-menu-item-active,.easyplayer-container .easyplayer-quality-menu-item.easyplayer-quality-menu-item-active,.easyplayer-container .easyplayer-quality-menu-item.easyplayer-scale-menu-item-active,.easyplayer-container .easyplayer-quality-menu-item.easyplayer-speed-menu-item-active,.easyplayer-container .easyplayer-scale-menu-item.easyplayer-menu-item-active,.easyplayer-container .easyplayer-scale-menu-item.easyplayer-quality-menu-item-active,.easyplayer-container .easyplayer-scale-menu-item.easyplayer-scale-menu-item-active,.easyplayer-container .easyplayer-scale-menu-item.easyplayer-speed-menu-item-active,.easyplayer-container .easyplayer-speed-menu-item.easyplayer-menu-item-active,.easyplayer-container .easyplayer-speed-menu-item.easyplayer-quality-menu-item-active,.easyplayer-container .easyplayer-speed-menu-item.easyplayer-scale-menu-item-active,.easyplayer-container .easyplayer-speed-menu-item.easyplayer-speed-menu-item-active{color:#2298fc}.easyplayer-container .easyplayer-volume-panel-wrap{position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;background-color:rgba(0,0,0,.5);border-radius:4px;height:120px;width:50px;overflow:hidden}.easyplayer-container .easyplayer-volume-panel-wrap.easyplayer-volume-panel-wrap-show{visibility:visible;opacity:1}.easyplayer-container .easyplayer-volume-panel{cursor:pointer;position:absolute;top:21px;height:60px;width:50px;overflow:hidden}.easyplayer-container .easyplayer-volume-panel-text{position:absolute;left:0;top:0;width:50px;height:20px;line-height:20px;text-align:center;color:#fff;font-size:12px}.easyplayer-container .easyplayer-volume-panel-handle{position:absolute;top:48px;left:50%;width:12px;height:12px;border-radius:12px;margin-left:-6px;background:#fff}.easyplayer-container .easyplayer-volume-panel-handle:before{bottom:-54px;background:#fff}.easyplayer-container .easyplayer-volume-panel-handle:after{bottom:6px;background:hsla(0,0%,100%,.2)}.easyplayer-container .easyplayer-volume-panel-handle:after,.easyplayer-container .easyplayer-volume-panel-handle:before{content:"";position:absolute;display:block;left:50%;width:3px;margin-left:-1px;height:60px}.easyplayer-container.easyplayer-fullscreen-web .easyplayer-controls{width:100vh}.easyplayer-container.easyplayer-fullscreen-web .easyplayer-play-big:after{transform:translate(-50%,-50%) rotate(270deg)}.easyplayer-container.easyplayer-fullscreen-web .easyplayer-loading{flex-direction:row}.easyplayer-container.easyplayer-fullscreen-web .easyplayer-loading-text{transform:rotate(270deg)}.easyplayer-container .easyplayer-contextmenu{display:none;flex-direction:column;position:absolute;z-index:120;left:10px;top:10px;min-width:200px;padding:5px 0;background-color:rgba(0,0,0,.9);border-radius:3px}.easyplayer-container .easyplayer-contextmenu .easyplayer-contextmenu{cursor:pointer;font-size:12px;display:block;color:#fff;padding:10px 15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 0 2px rgba(0,0,0,.5);border-bottom:1px solid hsla(0,0%,100%,.1)}.easyplayer-container .easyplayer-contextmenu .easyplayer-contextmenu a{color:#fff;text-decoration:none}.easyplayer-container .easyplayer-contextmenu .easyplayer-contextmenu span{display:inline-block;padding:0 7px}.easyplayer-container .easyplayer-contextmenu .easyplayer-contextmenu span.art-current,.easyplayer-container .easyplayer-contextmenu .easyplayer-contextmenu span:hover{color:var(--theme)}.easyplayer-container .easyplayer-contextmenu .easyplayer-contextmenu:hover{background-color:hsla(0,0%,100%,.1)}.easyplayer-container .easyplayer-contextmenu .easyplayer-contextmenu:last-child{border-bottom:none}.easyplayer-container.easyplayer-contextmenu-show .easyplayer-contextmenu{display:flex}.easyplayer-container .easyplayer-extend-dom{display:block;position:relative;width:100%;height:100%;display:none}.easyplayer-container-playback .easyplayer-controls{height:48px}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center{flex:1;display:flex;box-sizing:border-box;justify-content:space-between;font-size:12px}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-controls-playback-time{box-sizing:border-box;flex:1;position:relative;height:100%}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-controls-playback-time-inner{width:300px;height:100%;overflow-y:hidden;overflow-x:auto}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-controls-playback-current-time{position:absolute;left:0;top:0;height:15px;width:1px;background-color:red;text-align:center;z-index:1}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-controls-playback-current-time-text{position:absolute;box-sizing:border-box;padding:0 5px;width:60px;left:-25px;top:15px;border:1px solid red;height:15px;line-height:15px;cursor:move;background-color:#fff;color:#000;-webkit-user-select:none;-moz-user-select:none;user-select:none}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-controls-playback-time-scroll{position:relative;width:1440px;margin:0 auto}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-controls-playback-time-scroll.one-hour{width:1440px}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-controls-playback-time-scroll.half-hour{width:2880px}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-controls-playback-time-scroll.ten-min{width:8640px}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-controls-playback-time-scroll.five-min{width:17280px}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-controls-playback-time-scroll.one-min{width:86400px}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-controls-playback-time-list{position:relative;background-color:#ccc;height:48px}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-day{height:100%;overflow:hidden}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-one-wrap{height:8px;z-index:1}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-second-wrap{height:25px}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-controls-playback-btns{display:flex;align-items:center}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-minute-one,.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-second-one{float:left;width:1px;height:8px;margin:0;cursor:default;position:relative;z-index:1}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-minute-one.active,.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-second-one.active{background-color:orange;cursor:pointer}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-minute-one.start,.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-second-one.start{background-color:#999}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-minute-one:hover .easyplayer-playback-time-title-tips,.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-second-one:hover .easyplayer-playback-time-title-tips{visibility:visible;opacity:1}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-title-tips{pointer-events:none;position:absolute;left:0;top:100%;visibility:hidden;opacity:0;background-color:#000;border-radius:4px;z-index:1}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-title-tips.easyplayer-playback-time-title-tips-left{transform:translateX(-100%)}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-title-tips .easyplayer-playback-time-title{display:inline-block;padding:2px 5px;font-size:12px;white-space:nowrap;color:#fff}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-hour,.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-minute{float:left;position:relative;width:60px;box-sizing:border-box;border-top:1px solid #999;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-align:left;height:25px;line-height:25px}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-hour:first-child,.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-minute:first-child{border-left:0}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-hour:first-child .easyplayer-playback-time-hour-text,.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-minute:first-child .easyplayer-playback-time-hour-text{left:0}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-hour:after,.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-minute:after{content:"";position:absolute;left:0;top:-8px;width:1px;height:14px;background-color:#999}.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-hour-text,.easyplayer-container-playback .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-center .easyplayer-playback-time-minute-text{position:absolute;left:-13px}.easyplayer-container-playback .easyplayer-playback-expand.disabled .easyplayer-icon-expand,.easyplayer-container-playback .easyplayer-playback-narrow.disabled .easyplayer-icon-narrow{cursor:no-drop}.easyplayer-container-playback .easyplayer-control-progress-simple{position:absolute;box-sizing:border-box;left:0;top:-2px;width:100%;display:flex;flex-direction:row;align-items:center;height:8px;cursor:pointer}.easyplayer-container-playback .easyplayer-control-progress-simple:hover{top:0;align-items:flex-start}.easyplayer-container-playback .easyplayer-control-progress-simple:hover .easyplayer-control-progress-inner{height:100%}.easyplayer-container-playback .easyplayer-control-progress-simple:hover .easyplayer-control-progress-inner .easyplayer-progress-indicator{transform:scale(1);visibility:visible}.easyplayer-container-playback .easyplayer-control-progress-inner{display:flex;align-items:center;position:relative;height:50%;width:100%;background:hsla(0,0%,100%,.5)}.easyplayer-container-playback .easyplayer-progress-hover{display:none;width:0}.easyplayer-container-playback .easyplayer-progress-played{position:absolute;left:0;top:0;right:0;bottom:0;height:100%;width:0;background-color:orange}.easyplayer-container-playback .easyplayer-progress-indicator{visibility:hidden;align-items:center;justify-content:center;position:absolute;z-index:40;border-radius:50%}.easyplayer-container-playback .easyplayer-progress-indicator .easyplayer-icon{width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.easyplayer-container-playback .easyplayer-progress-tip{display:none;position:absolute;z-index:50;top:-25px;left:0;height:20px;padding:0 5px;line-height:20px;color:#fff;font-size:12px;text-align:center;background:rgba(0,0,0,.7);border-radius:3px;font-weight:700;white-space:nowrap}.easyplayer-container-playback.easyplayer-fullscreen-web .easyplayer-controls .easyplayer-controls-bottom .easyplayer-controls-playback-time-inner{overflow-y:auto}.easyplayer-zoom-control{cursor:grab}.easyplayer-performance-panel{position:absolute;box-sizing:border-box;z-index:10000;left:10px;top:10px;font-size:10px;background:rgba(33,33,33,.9);color:#fff;max-height:100%;max-width:340px;width:100%;overflow-y:auto}.easyplayer-performance-panel h3{font-size:16px;line-height:40px;text-align:center;position:relative;border-bottom:1px solid hsla(0,0%,100%,.1)}.easyplayer-performance-panel h3 .easyplayer-icon-close{width:14px;height:14px;display:inline-block;position:absolute;right:10px;top:13px;cursor:pointer}.easyplayer-performance-panel .easyplayer-performance-item-box{padding:8px 0 8px 26px;position:relative;display:grid;grid-auto-flow:column;grid-template-columns:repeat(2,minmax(120px,1fr))}.easyplayer-performance-panel .easyplayer-performance-item{display:flex;align-items:center;margin-top:3px;color:#fff}.easyplayer-performance-panel .easyplayer-performance-item-block{height:10px}.easyplayer-scale-canvas{position:absolute;top:0;left:0;bottom:0;right:0;display:none;width:100%;height:100%;background-color:rgba(0,0,0,.1)}.easyplayer-container video{height:100%!important;width:100%!important}.easyplayer-tips-message{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,rgba(0,0,0,.8),hsla(0,0%,100%,0));overflow:auto;box-sizing:content-box;display:none}.easyplayer-tips-message:before{color:hsla(0,0%,100%,.3);content:"X";font-family:Arial,Helvetica,sans-serif;font-size:40px;left:0;line-height:1;margin-top:-20px;position:absolute;text-shadow:2em 2em 4em #000;text-align:center;top:50%;vertical-align:middle;width:100%}.easyplayer-tips-message .easyplayer-tips-message-close{position:absolute;z-index:99999;right:0;top:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.easyplayer-tips-message .easyplayer-tips-message-close .easyplayer-tips-message-close-icon{width:20px;height:20px;border-radius:10px;cursor:pointer;background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpmYWRkOTViNC00MzBmLTU3NDYtYTk5Yy1jNGQzNDJiOGMyZDMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjUyQ0MxMjFFQzE5MTFFRUFBODdDRjVEOEYwMUI2NEEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjUyQ0MxMjBFQzE5MTFFRUFBODdDRjVEOEYwMUI2NEEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6ZmFkZDk1YjQtNDMwZi01NzQ2LWE5OWMtYzRkMzQyYjhjMmQzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZhZGQ5NWI0LTQzMGYtNTc0Ni1hOTljLWM0ZDM0MmI4YzJkMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiQrL4kAAAFvSURBVHjazNrrjcIwEEZRi4ooISVQAiWkhHRECZRACaGD0IGxkYMCysPj+eYxkv+QRblHm11hmRBjDGl1aT3SGtO6p3Uur3taXWn7aZwvrE3vKD63TCuNXb54i9vTO47PM4by6ESniL34PFMoz1N0iDiKz/MI5Y8hOkPUxOe5LN/gBVEbP8z/hTwhSPH/AGsEOX4NYIVoit8CaCOa4/cAWghW/BFAGsGOrwFIISDxtQA0AhZPAaAQ0HgqgIuAx7cAWhEi8a0AKkIsngOgIMTiuQAKQiQeAeAiBu79kR/G1OORACpiQN33FLDzqvy5J+yOyp/nl3P18gi1xMMQlvEQhHU8G6Gxk+olEVrbQDGE5jZQBKG9h4Uj1PewaIR2PBxhEQ9FWMXDEJbxEIR1PBvhIZ6F8BLfjPAU34SYD7q9xFMRXe0xq2Y8BfE5Zh0dxtcixqPfgGV8DWL3oNtD/BHie9CdEcuv21wcxe82vgUYAILPjGwZ4xpJAAAAAElFTkSuQmCC") no-repeat 50%;background-color:#fff;background-size:100% 100%}.easyplayer-tips-message .easyplayer-tips-message-content{overflow:auto;padding:35px;box-sizing:border-box;width:100%;height:100%}.easyplayer-tips-message .easyplayer-tips-message-content .easyplayer-tips-message-content-item{font-size:14px;color:#fff;text-align:center;line-height:1.5}.easyplayer-message-content{display:flex;flex-direction:column;justify-content:flex-end;position:absolute;z-index:10;left:12px;bottom:40px;opacity:1;transition:opacity 1s cubic-bezier(0,0,.2,1);max-height:200px;overflow:hidden}.easyplayer-message-content div{line-height:24px;color:hsla(0,0%,100%,.6);font-size:12px}');class OA{constructor(e){var t;this.player=e,this.TAG_NAME="Control",this.extendBtnList=[],((e,t)=>{e._opt.hasControl&&e._opt.controlAutoHide?e.$container.classList.add("easyplayer-controls-show-auto-hide"):e.$container.classList.add("easyplayer-controls-show");const i=e._opt,r=i.operateBtns,s=`\n <div class="easyplayer-controls-center">\n <div class="easyplayer-controls-playback-time">\n <div class="easyplayer-controls-playback-time-inner">\n <div class="easyplayer-controls-playback-time-scroll">\n <div class="easyplayer-controls-playback-time-list">\n <div class="easyplayer-playback-time-day">\n <div class="easyplayer-playback-time-one-wrap"></div>\n <div class="easyplayer-playback-time-second-wrap"></div>\n </div>\n </div>\n <div class="easyplayer-controls-playback-current-time">\n <div class="easyplayer-controls-playback-current-time-text">00:00:00</div>\n </div>\n </div>\n </div>\n </div>\n ${i.playbackConfig.showPrecisionBtn?`\n <div class="easyplayer-controls-playback-btns">\n <div class="easyplayer-controls-item easyplayer-playback-narrow">${SA.narrow}</div>\n <div class="easyplayer-controls-item easyplayer-playback-expand">${SA.expand}</div>\n </div>\n `:""}\n </div>\n `;e.$container.insertAdjacentHTML("beforeend",`\n ${i.background?`<div class="easyplayer-poster" style="background-image: url(${i.background})"></div>`:""}\n <div class="easyplayer-loading-bg">\n <img class="easyplayer-loading-bg-image" src="" alt="">\n </div>\n \n <div class="easyplayer-loading ${i.isLogo?"easyplayer-loading-logo":""}">\n <div class="easyplayer-loading-img"></div>\n <div class="easyplayer-loading-text">${i.loadingText}</div>\n </div>\n \n ${i.hasControl&&r.play?'<div class="easyplayer-play-big"></div>':""}\n ${i.hasControl&&r.ptz?`\n <div class="easyplayer-ptz-controls show-${i.ptzShowType}">\n <div class="easyplayer-ptz-bg-active"></div>\n <div class="easyplayer-ptz-arrow easyplayer-ptz-arrow-up" data-arrow="up"></div>\n <div class="easyplayer-ptz-arrow easyplayer-ptz-arrow-right" data-arrow="right"></div>\n <div class="easyplayer-ptz-arrow easyplayer-ptz-arrow-down" data-arrow="down"></div>\n <div class="easyplayer-ptz-arrow easyplayer-ptz-arrow-left" data-arrow="left"></div>\n ${i.ptzMoreArrowShow?'\n <div class="easyplayer-ptz-arrow easyplayer-ptz-arrow-left-up" data-arrow="left-up"></div>\n <div class="easyplayer-ptz-arrow easyplayer-ptz-arrow-right-up" data-arrow="right-up"></div>\n <div class="easyplayer-ptz-arrow easyplayer-ptz-arrow-left-down" data-arrow="left-down"></div>\n <div class="easyplayer-ptz-arrow easyplayer-ptz-arrow-right-down" data-arrow="right-down"></div>\n ':""}\n <div class="easyplayer-ptz-control"></div>\n <div class="easyplayer-ptz-btns">\n ${i.ptzZoomShow?'\n <div class="easyplayer-ptz-btn">\n <div class="easyplayer-ptz-expand easyplayer-ptz-icon">\n <i class="easyplayer-ptz-expand-icon"></i>\n <span class="icon-title-tips">\n <span class="icon-title">缩放+</span>\n </span>\n </div>\n <div class="easyplayer-ptz-narrow easyplayer-ptz-icon">\n <i class="easyplayer-ptz-narrow-icon"></i>\n <span class="icon-title-tips">\n <span class="icon-title">缩放-</span>\n </span>\n </div>\n </div>\n ':""}\n ${i.ptzApertureShow?'\n <div class="easyplayer-ptz-btn">\n <div class="easyplayer-ptz-aperture-far easyplayer-ptz-icon">\n <i class="easyplayer-ptz-aperture-icon"></i>\n <span class="icon-title-tips">\n <span class="icon-title">光圈+</span>\n </span>\n </div>\n <div class="easyplayer-ptz-aperture-near easyplayer-ptz-icon">\n <i class="easyplayer-ptz-aperture-icon"></i>\n <span class="icon-title-tips">\n <span class="icon-title">光圈-</span>\n </span>\n </div>\n </div>\n ':""}\n ${i.ptzFocusShow?'\n <div class="easyplayer-ptz-btn">\n <div class="easyplayer-ptz-focus-far easyplayer-ptz-icon">\n <i class="easyplayer-ptz-focus-icon"></i>\n <span class="icon-title-tips">\n <span class="icon-title">聚焦+</span>\n </span>\n </div>\n <div class="easyplayer-ptz-focus-near easyplayer-ptz-icon">\n <i class="easyplayer-ptz-focus-icon"></i>\n <span class="icon-title-tips">\n <span class="icon-title">聚焦-</span>\n </span>\n </div>\n </div>\n ':""}\n ${i.ptzCruiseShow?'\n <div class="easyplayer-ptz-btn">\n <div class="easyplayer-ptz-cruise-play easyplayer-ptz-icon">\n <i class="easyplayer-ptz-focus-icon"></i>\n <span class="icon-title-tips">\n <span class="icon-title">巡航开</span>\n </span>\n </div>\n <div class="easyplayer-ptz-cruise-pause easyplayer-ptz-icon">\n <i class="easyplayer-ptz-focus-icon"></i>\n <span class="icon-title-tips">\n <span class="icon-title">巡航关</span>\n </span>\n </div>\n </div>\n ':""}\n ${i.ptzFogShow?'\n <div class="easyplayer-ptz-btn">\n <div class="easyplayer-ptz-fog-open easyplayer-ptz-icon">\n <i class="easyplayer-ptz-focus-icon"></i>\n <span class="icon-title-tips">\n <span class="icon-title">透雾开</span>\n </span>\n </div>\n <div class="easyplayer-ptz-fog-close easyplayer-ptz-icon">\n <i class="easyplayer-ptz-focus-icon"></i>\n <span class="icon-title-tips">\n <span class="icon-title">透雾关</span>\n </span>\n </div>\n </div>\n ':""}\n\n ${i.ptzWiperShow?'\n <div class="easyplayer-ptz-btn">\n <div class="easyplayer-ptz-wiper-open easyplayer-ptz-icon">\n <i class="easyplayer-ptz-focus-icon"></i>\n <span class="icon-title-tips">\n <span class="icon-title">雨刷开</span>\n </span>\n </div>\n <div class="easyplayer-ptz-wiper-close easyplayer-ptz-icon">\n <i class="easyplayer-ptz-focus-icon"></i>\n <span class="icon-title-tips">\n <span class="icon-title">雨刷关</span>\n </span>\n </div>\n </div>\n ':""}\n </div>\n </div>\n `:""}\n ${i.hasVideo?`\n <div class="easyplayer-zoom-controls">\n <div class="easyplayer-zoom-narrow">${SA.narrow}</div>\n <div class="easyplayer-zoom-tips">电子放大</div>\n <div class="easyplayer-zoom-expand">${SA.expand}</div>\n <div class="easyplayer-zoom-stop2">${SA.zoomStop}</div>\n </div>\n <div class="easyplayer-recording">\n <div class="easyplayer-recording-red-point"></div>\n <div class="easyplayer-recording-time">00:00:00</div>\n <div class="easyplayer-recording-stop">${SA.recordStop}</div>\n </div>\n `:""}\n\n ${i.hasControl?`\n <div class="easyplayer-controls">\n <div class="easyplayer-controls-bottom">\n <div class="easyplayer-controls-left">\n ${r.play?`<div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-play">${SA.play}</div><div class="easyplayer-controls-item easyplayer-pause">${SA.pause}</div></div>`:""}\n ${r.audio?`\n <div class="easyplayer-controls-item-wrap">\n <div class="easyplayer-controls-item easyplayer-volume">\n ${SA.audio}\n ${SA.mute}\n <div class="easyplayer-volume-panel-wrap">\n <div class="easyplayer-volume-panel">\n <div class="easyplayer-volume-panel-handle"></div>\n </div>\n <div class="easyplayer-volume-panel-text"></div>\n </div>\n </div>\n </div>\n `:""}\n \n <div class="easyplayer-playback-control-time"></div>\n <div class="easyplayer-controls-item-html">${i.controlHtml}</div>\n </div>\n ${i.playType===v&&i.playbackConfig.showControl&&i.playbackConfig.controlType===oe.normal?s:""}\n ${i.playType===v&&i.playbackConfig.showControl&&i.playbackConfig.controlType===oe.simple?'\n <div class="easyplayer-control-progress-simple">\n <div class="easyplayer-control-progress-inner">\n <div class="easyplayer-progress-hover"></div>\n <div class="easyplayer-progress-played"></div>\n <div class="easyplayer-progress-indicator"></div>\n <div class="easyplayer-progress-tip">00:00</div>\n </div>\n </div>\n ':""}\n <div class="easyplayer-controls-right">\n ${i.showBandwidth?'<div class="easyplayer-controls-item easyplayer-speed"></div>':""}\n <div class="easyplayer-controls-code-wrap">\n <div class="easyplayer-controls-code-title">MSE</div>\n <div class="easyplayer-controls-box">\n <div class="easyplayer-controls-code-label">浏览器支持详情</div>\n <div class="easyplayer-controls-text easyplayer-controls-text_hls">\n MSE: <span class="easyplayer-code-mse-h264-on">支持H264解码</span>\n <span class="easyplayer-code-mse-h265-on">支持H265解码</span>\n <span class="easyplayer-code-mse-h264-off">不支持H264解码</span>\n <span class="easyplayer-code-mse-h265-off">不支持H265解码</span>\n </div>\n <div class="easyplayer-controls-text easyplayer-controls-text_hls">\n WCS: <span class="easyplayer-code-wcs-h264-on">支持H264解码</span>\n <span class="easyplayer-code-wcs-h265-on">支持H265解码</span>\n <span class="easyplayer-code-wcs-h264-off">不支持H264解码</span>\n <span class="easyplayer-code-wcs-h265-off">不支持H265解码</span>\n </div>\n <div class="easyplayer-controls-text">\n WASM: <span class="easyplayer-code-wasm-on">支持WASM解码(H264/H265)</span>\n <span class="easyplayer-code-wasm-off">不支持WASM解码(H264/H265)</span>\n </div>\n <div class="easyplayer-controls-text">\n WASM_SIMD: <span class="easyplayer-code-wasmsimd-on">支持WASM_SIMD解码(H264/H265)</span>\n <span class="easyplayer-code-wasmsimd-off">不支持WASM_SIMD解码(H264/H265)</span>\n </div>\n <div class="easyplayer-controls-code-label">选择解码播放</div>\n <div class="easyplayer-controls-input">\n <span class="easyplayer-controls-text_hls"><input type="radio" class="easyplayer-code-mse-radio" />MSE </span>\n <span class="easyplayer-controls-text_hls"><input type="radio" class="easyplayer-code-wcs-radio" />WCS</span>\n <span><input type="radio" class="easyplayer-code-wasm-radio" />WASM </span>\n <span><input type="radio" class="easyplayer-code-wasmsimd-radio" />WASM_SIMD </span>\n </div>\n \n </div>\n </div> \n ${i.playType===v&&i.playbackConfig.showRateBtn?'\n <div class="easyplayer-controls-item-wrap">\n <div class="easyplayer-controls-item easyplayer-speed-menu">\n <div class="easyplayer-speed-icon-text"></div>\n <div class="easyplayer-speed-menu-list"></div>\n </div>\n </div>\n ':""}\n ${r.close?`<div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-close">${SA.close}</div></div>`:""}\n ${r.logSave?`<div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-logSave">${SA.logSave}</div></div>`:""}\n ${r.performance?`<div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-performance">${SA.performance}</div><div class="easyplayer-controls-item easyplayer-performance-active">${SA.performanceActive}</div></div>`:""}\n ${r.aiFace?`<div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-face">${SA.face}</div><div class="easyplayer-controls-item easyplayer-face-active">${SA.faceActive}</div></div>`:""}\n ${r.aiObject?`<div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-object">${SA.object}</div><div class="easyplayer-controls-item easyplayer-object-active">${SA.objectActive}</div></div>`:""}\n ${r.aiOcclusion?`<div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-occlusion">${SA.occlusion}</div><div class="easyplayer-controls-item easyplayer-occlusion-active">${SA.occlusionActive}</div></div>`:""}\n ${r.quality?'\n <div class="easyplayer-controls-item-wrap">\n <div class="easyplayer-controls-item easyplayer-quality-menu">\n <div class="easyplayer-quality-icon-text"></div>\n <div class="easyplayer-quality-menu-list"></div>\n </div>\n </div>\n ':""}\n ${r.scale?'\n <div class="easyplayer-controls-item-wrap">\n <div class="easyplayer-controls-item easyplayer-scale-menu">\n <div class="easyplayer-scale-icon-text"></div>\n <div class="easyplayer-scale-menu-list"></div>\n </div>\n </div>\n ':""}\n \n ${r.stretch?'<div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-stretch">标准</div></div>':""}\n ${r.screenshot?`<div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-screenshot">${SA.screenshot}</div></div>`:""}\n ${r.record?` <div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-record">${SA.record}</div><div class="easyplayer-controls-item easyplayer-record-stop">${SA.recordStop}</div></div>`:""}\n ${r.ptz?` <div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-ptz">${SA.ptz}</div><div class="easyplayer-controls-item easyplayer-ptz-active">${SA.ptzActive}</div></div>`:""}\n ${r.zoom?` <div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-zoom">${SA.zoom}</div><div class="easyplayer-controls-item easyplayer-zoom-stop">${SA.zoomStop}</div></div>`:""}\n ${r.fullscreen?`<div class="easyplayer-controls-item-wrap"><div class="easyplayer-controls-item easyplayer-fullscreen">${SA.fullscreen}</div><div class="easyplayer-controls-item easyplayer-fullscreen-exit">${SA.fullscreenExit}</div></div>`:""}\n </div>\n </div>\n </div>\n `:""}\n <div class="easyplayer-contextmenu-btn">\n <div class="easyplayer-contextmenu-version">版本信息 ${ne}</div>\n <div class="easyplayer-contextmenu-copy">复制地址</div>\n <div class="easyplayer-contextmenu-info">视频信息</div>\n <div class="easyplayer-contextmenu-close">关闭视频</div>\n </div>\n <div class="easyplayer-message-content">\n \n </div>\n <div class="easyplayer-performance-panel"></div>\n <div class="easyplayer-contextmenus"></div>\n <div class="easyplayer-tips-message">\n <div class="easyplayer-tips-message-close">\n <div class="easyplayer-tips-message-close-icon"></div>\n </div>\n <div class="easyplayer-tips-message-content"></div>\n </div>\n \n `),Object.defineProperty(t,"$easyplayerControlsCodeWrap",{value:e.$container.querySelector(".easyplayer-controls-code-wrap")}),Object.defineProperty(t,"$easyplayerControlsCodeTitle",{value:e.$container.querySelector(".easyplayer-controls-code-title")}),Object.defineProperty(t,"$easyplayerCodeMseH264On",{value:e.$container.querySelector(".easyplayer-code-mse-h264-on")}),Object.defineProperty(t,"$easyplayerCodeMseH254On",{value:e.$container.querySelector(".easyplayer-code-mse-h265-on")}),Object.defineProperty(t,"$easyplayerCodeWcsH264On",{value:e.$container.querySelector(".easyplayer-code-wcs-h264-on")}),Object.defineProperty(t,"$easyplayerCodeWcsH265On",{value:e.$container.querySelector(".easyplayer-code-wcs-h265-on")}),Object.defineProperty(t,"$easyplayerCodeWasmOn",{value:e.$container.querySelector(".easyplayer-code-wasm-on")}),Object.defineProperty(t,"$easyplayerCodeWasmsimdOn",{value:e.$container.querySelector(".easyplayer-code-wasmsimd-on")}),Object.defineProperty(t,"$easyplayerCodeMseH264Off",{value:e.$container.querySelector(".easyplayer-code-mse-h264-off")}),Object.defineProperty(t,"$easyplayerCodeMseH254Off",{value:e.$container.querySelector(".easyplayer-code-mse-h265-off")}),Object.defineProperty(t,"$easyplayerCodeWcsH264Off",{value:e.$container.querySelector(".easyplayer-code-wcs-h264-off")}),Object.defineProperty(t,"$easyplayerCodeWcsH265Off",{value:e.$container.querySelector(".easyplayer-code-wcs-h265-off")}),Object.defineProperty(t,"$easyplayerCodeWasmOff",{value:e.$container.querySelector(".easyplayer-code-wasm-off")}),Object.defineProperty(t,"$easyplayerCodeWasmsimdOff",{value:e.$container.querySelector(".easyplayer-code-wasmsimd-off")}),Object.defineProperty(t,"$easyplayerCodeMseRadio",{value:e.$container.querySelector(".easyplayer-code-mse-radio")}),Object.defineProperty(t,"$easyplayerCodeWcsRadio",{value:e.$container.querySelector(".easyplayer-code-wcs-radio")}),Object.defineProperty(t,"$easyplayerCodeWasmRadio",{value:e.$container.querySelector(".easyplayer-code-wasm-radio")}),Object.defineProperty(t,"$easyplayerCodeWasmsimdRadio",{value:e.$container.querySelector(".easyplayer-code-wasmsimd-radio")}),Object.defineProperty(t,"$easyplayerCodeDemuxCheckbox",{value:e.$container.querySelector(".easyplayer-code-demux-checkbox")}),Object.defineProperty(t,"$easyplayerCodeMthreadingCheckbox",{value:e.$container.querySelector(".easyplayer-code-mthreading-checkbox")}),Object.defineProperty(t,"$contextmenuBtnVersion",{value:e.$container.querySelector(".easyplayer-contextmenu-version")}),Object.defineProperty(t,"$contextmenuBtnClose",{value:e.$container.querySelector(".easyplayer-contextmenu-close")}),Object.defineProperty(t,"$contextmenuBtnInfo",{value:e.$container.querySelector(".easyplayer-contextmenu-info")}),Object.defineProperty(t,"$contextmenuBtnCopy",{value:e.$container.querySelector(".easyplayer-contextmenu-copy")}),Object.defineProperty(t,"$contextmenuBtn",{value:e.$container.querySelector(".easyplayer-contextmenu-btn")}),Object.defineProperty(t,"$poster",{value:e.$container.querySelector(".easyplayer-poster")}),Object.defineProperty(t,"$loadingBg",{value:e.$container.querySelector(".easyplayer-loading-bg")}),Object.defineProperty(t,"$loadingBgImage",{value:e.$container.querySelector(".easyplayer-loading-bg-image")}),Object.defineProperty(t,"$loading",{value:e.$container.querySelector(".easyplayer-loading")}),Object.defineProperty(t,"$loadingText",{value:e.$container.querySelector(".easyplayer-loading-text")}),Object.defineProperty(t,"$play",{value:e.$container.querySelector(".easyplayer-play")}),Object.defineProperty(t,"$playBig",{value:e.$container.querySelector(".easyplayer-play-big")}),Object.defineProperty(t,"$recording",{value:e.$container.querySelector(".easyplayer-recording")}),Object.defineProperty(t,"$recordingTime",{value:e.$container.querySelector(".easyplayer-recording-time")}),Object.defineProperty(t,"$recordingStop",{value:e.$container.querySelector(".easyplayer-recording-stop")}),Object.defineProperty(t,"$pause",{value:e.$container.querySelector(".easyplayer-pause")}),Object.defineProperty(t,"$controls",{value:e.$container.querySelector(".easyplayer-controls")}),Object.defineProperty(t,"$controlsInner",{value:e.$container.querySelector(".easyplayer-controls-bottom")}),Object.defineProperty(t,"$controlsLeft",{value:e.$container.querySelector(".easyplayer-controls-left")}),Object.defineProperty(t,"$controlsRight",{value:e.$container.querySelector(".easyplayer-controls-right")}),Object.defineProperty(t,"$volume",{value:e.$container.querySelector(".easyplayer-volume")}),Object.defineProperty(t,"$volumePanelWrap",{value:e.$container.querySelector(".easyplayer-volume-panel-wrap")}),Object.defineProperty(t,"$volumePanelText",{value:e.$container.querySelector(".easyplayer-volume-panel-text")}),Object.defineProperty(t,"$volumePanel",{value:e.$container.querySelector(".easyplayer-volume-panel")}),Object.defineProperty(t,"$volumeHandle",{value:e.$container.querySelector(".easyplayer-volume-panel-handle")}),Object.defineProperty(t,"$volumeOn",{value:e.$container.querySelector(".easyplayer-icon-audio")}),Object.defineProperty(t,"$volumeOff",{value:e.$container.querySelector(".easyplayer-icon-mute")}),Object.defineProperty(t,"$fullscreen",{value:e.$container.querySelector(".easyplayer-fullscreen")}),Object.defineProperty(t,"$fullscreenExit",{value:e.$container.querySelector(".easyplayer-fullscreen-exit")}),Object.defineProperty(t,"$record",{value:e.$container.querySelector(".easyplayer-record")}),Object.defineProperty(t,"$recordStop",{value:e.$container.querySelector(".easyplayer-record-stop")}),Object.defineProperty(t,"$screenshot",{value:e.$container.querySelector(".easyplayer-screenshot")}),Object.defineProperty(t,"$stretch",{value:e.$container.querySelector(".easyplayer-stretch")}),Object.defineProperty(t,"$speed",{value:e.$container.querySelector(".easyplayer-speed")}),Object.defineProperty(t,"$controlHtml",{value:e.$container.querySelector(".easyplayer-controls-item-html")}),Object.defineProperty(t,"$playbackTime",{value:e.$container.querySelector(".easyplayer-controls-playback-time")}),Object.defineProperty(t,"$playbackTimeInner",{value:e.$container.querySelector(".easyplayer-controls-playback-time-inner")}),Object.defineProperty(t,"$playbackTimeScroll",{value:e.$container.querySelector(".easyplayer-controls-playback-time-scroll")}),Object.defineProperty(t,"$playbackTimeList",{value:e.$container.querySelector(".easyplayer-controls-playback-time-list")}),Object.defineProperty(t,"$playbackTimeListOne",{value:e.$container.querySelector(".easyplayer-playback-time-one-wrap")}),Object.defineProperty(t,"$playbackTimeListSecond",{value:e.$container.querySelector(".easyplayer-playback-time-second-wrap")}),Object.defineProperty(t,"$playbackCurrentTime",{value:e.$container.querySelector(".easyplayer-controls-playback-current-time")}),Object.defineProperty(t,"$playbackCurrentTimeText",{value:e.$container.querySelector(".easyplayer-controls-playback-current-time-text")}),Object.defineProperty(t,"$controlsPlaybackBtns",{value:e.$container.querySelector(".easyplayer-controls-playback-btns")}),Object.defineProperty(t,"$playbackNarrow",{value:e.$container.querySelector(".easyplayer-playback-narrow")}),Object.defineProperty(t,"$playbackExpand",{value:e.$container.querySelector(".easyplayer-playback-expand")}),Object.defineProperty(t,"$ptz",{value:e.$container.querySelector(".easyplayer-ptz")}),Object.defineProperty(t,"$ptzActive",{value:e.$container.querySelector(".easyplayer-ptz-active")}),Object.defineProperty(t,"$ptzControl",{value:e.$container.querySelector(".easyplayer-ptz-controls")}),Object.defineProperty(t,"$ptzBgActive",{value:e.$container.querySelector(".easyplayer-ptz-bg-active")}),Object.defineProperty(t,"$ptzControlCircular",{value:e.$container.querySelector(".easyplayer-ptz-control")}),Object.defineProperty(t,"$ptzArrows",{value:e.$container.querySelectorAll(".easyplayer-ptz-arrow")}),Object.defineProperty(t,"$ptzExpand",{value:e.$container.querySelector(".easyplayer-ptz-expand")}),Object.defineProperty(t,"$ptzNarrow",{value:e.$container.querySelector(".easyplayer-ptz-narrow")}),Object.defineProperty(t,"$ptzApertureFar",{value:e.$container.querySelector(".easyplayer-ptz-aperture-far")}),Object.defineProperty(t,"$ptzApertureNear",{value:e.$container.querySelector(".easyplayer-ptz-aperture-near")}),Object.defineProperty(t,"$ptzFocusFar",{value:e.$container.querySelector(".easyplayer-ptz-focus-far")}),Object.defineProperty(t,"$ptzFocusNear",{value:e.$container.querySelector(".easyplayer-ptz-focus-near")}),Object.defineProperty(t,"$ptzCruisePlay",{value:e.$container.querySelector(".easyplayer-ptz-cruise-play")}),Object.defineProperty(t,"$ptzCruisePause",{value:e.$container.querySelector(".easyplayer-ptz-cruise-pause")}),Object.defineProperty(t,"$ptzFogOpen",{value:e.$container.querySelector(".easyplayer-ptz-fog-open")}),Object.defineProperty(t,"$ptzFogClose",{value:e.$container.querySelector(".easyplayer-ptz-fog-close")}),Object.defineProperty(t,"$ptzWiperOpen",{value:e.$container.querySelector(".easyplayer-ptz-wiper-open")}),Object.defineProperty(t,"$ptzWiperClose",{value:e.$container.querySelector(".easyplayer-ptz-wiper-close")}),Object.defineProperty(t,"$qualityText",{value:e.$container.querySelector(".easyplayer-quality-icon-text")}),Object.defineProperty(t,"$qualityMenu",{value:e.$container.querySelector(".easyplayer-quality-menu")}),Object.defineProperty(t,"$qualityMenuList",{value:e.$container.querySelector(".easyplayer-quality-menu-list")}),Object.defineProperty(t,"$scaleText",{value:e.$container.querySelector(".easyplayer-scale-icon-text")}),Object.defineProperty(t,"$scaleMenu",{value:e.$container.querySelector(".easyplayer-scale-menu")}),Object.defineProperty(t,"$scaleMenuList",{value:e.$container.querySelector(".easyplayer-scale-menu-list")}),Object.defineProperty(t,"$zoom",{value:e.$container.querySelector(".easyplayer-zoom")}),Object.defineProperty(t,"$zoomStop",{value:e.$container.querySelector(".easyplayer-zoom-stop")}),Object.defineProperty(t,"$zoomNarrow",{value:e.$container.querySelector(".easyplayer-zoom-narrow")}),Object.defineProperty(t,"$zoomExpand",{value:e.$container.querySelector(".easyplayer-zoom-expand")}),Object.defineProperty(t,"$zoomStop2",{value:e.$container.querySelector(".easyplayer-zoom-stop2")}),Object.defineProperty(t,"$close",{value:e.$container.querySelector(".easyplayer-close")}),Object.defineProperty(t,"$zoomControls",{value:e.$container.querySelector(".easyplayer-zoom-controls")}),Object.defineProperty(t,"$performancePanel",{value:e.$container.querySelector(".easyplayer-performance-panel")}),Object.defineProperty(t,"$performance",{value:e.$container.querySelector(".easyplayer-performance")}),Object.defineProperty(t,"$performanceActive",{value:e.$container.querySelector(".easyplayer-performance-active")}),Object.defineProperty(t,"$faceDetect",{value:e.$container.querySelector(".easyplayer-face")}),Object.defineProperty(t,"$faceDetectActive",{value:e.$container.querySelector(".easyplayer-face-active")}),Object.defineProperty(t,"$objectDetect",{value:e.$container.querySelector(".easyplayer-object")}),Object.defineProperty(t,"$objectDetectActive",{value:e.$container.querySelector(".easyplayer-object-active")}),Object.defineProperty(t,"$occlusionDetect",{value:e.$container.querySelector(".easyplayer-occlusion")}),Object.defineProperty(t,"$occlusionDetectActive",{value:e.$container.querySelector(".easyplayer-occlusion-active")}),Object.defineProperty(t,"$contextmenus",{value:e.$container.querySelector(".easyplayer-contextmenus")}),Object.defineProperty(t,"$speedText",{value:e.$container.querySelector(".easyplayer-speed-icon-text")}),Object.defineProperty(t,"$speedMenu",{value:e.$container.querySelector(".easyplayer-speed-menu")}),Object.defineProperty(t,"$speedMenuList",{value:e.$container.querySelector(".easyplayer-speed-menu-list")}),Object.defineProperty(t,"$logSave",{value:e.$container.querySelector(".easyplayer-logSave")}),Object.defineProperty(t,"$playbackProgress",{value:e.$container.querySelector(".easyplayer-control-progress-simple")}),Object.defineProperty(t,"$playbackProgressTip",{value:e.$container.querySelector(".easyplayer-progress-tip")}),Object.defineProperty(t,"$playbackProgressHover",{value:e.$container.querySelector(".easyplayer-progress-hover")}),Object.defineProperty(t,"$playbackProgressPlayed",{value:e.$container.querySelector(".easyplayer-progress-played")}),Object.defineProperty(t,"$playbackProgressIndicator",{value:e.$container.querySelector(".easyplayer-progress-indicator")}),Object.defineProperty(t,"$playbackProgressTime",{value:e.$container.querySelector(".easyplayer-playback-control-time")}),Object.defineProperty(t,"$tipsMessage",{value:e.$container.querySelector(".easyplayer-tips-message")}),Object.defineProperty(t,"$tipsMessageClose",{value:e.$container.querySelector(".easyplayer-tips-message-close")}),Object.defineProperty(t,"$tipsMessageContent",{value:e.$container.querySelector(".easyplayer-tips-message-content")}),Object.defineProperty(t,"$messageContent",{value:e.$container.querySelector(".easyplayer-message-content")})})(e,this),e._opt.extendOperateBtns.length>0&&e._opt.extendOperateBtns.forEach((e=>{this.addExtendBtn(e)})),e._opt.extendDomConfig&&e._opt.extendDomConfig.html&&this.addExtendDom(e._opt.extendDomConfig),t=this,Object.defineProperty(t,"controlsRect",{get:()=>t.$controls.getBoundingClientRect()}),Object.defineProperty(t,"controlsInnerRect",{get:()=>t.$controlsInner.getBoundingClientRect()}),Object.defineProperty(t,"controlsLeftRect",{get:()=>t.$controlsLeft.getBoundingClientRect()}),Object.defineProperty(t,"controlsRightRect",{get:()=>t.$controlsRight.getBoundingClientRect()}),Object.defineProperty(t,"controlsPlaybackTimeInner",{get:()=>t.$playbackTimeInner&&t.$playbackTimeInner.getBoundingClientRect()||{}}),Object.defineProperty(t,"controlsPlaybackBtnsRect",{get:()=>t.$controlsPlaybackBtns&&t.$controlsPlaybackBtns.getBoundingClientRect()||{width:0}}),UA(e,this),((e,t)=>{const{events:{proxy:i},debug:r}=e,s=e._opt,a=s.operateBtns;function o(e){const{bottom:i,height:r}=t.$volumePanel.getBoundingClientRect(),{height:s}=t.$volumeHandle.getBoundingClientRect();return ha(i-e.y-s/2,0,r-s/2)/(r-s)}if(ga()&&i(window,["click","contextmenu"],(i=>{i.composedPath().indexOf(e.$container)>-1?t.isFocus=!0:t.isFocus=!1})),i(t.$controls,"click",(e=>{e.stopPropagation()})),a.play&&(i(t.$pause,"click",(t=>{s.playType===v&&s.playbackConfig.uiUsePlaybackPause?e.playbackPause=!0:Ha(a.pauseFn)?a.pauseFn():e.pauseForControl()})),i(t.$play,"click",(t=>{s.playType===v&&e.playbackPause?(e.playbackPause=!1,e._opt.isHls&&"H265(HEVC)"===(e.video&&e.video.videoInfo||{}).encType&&(parseInt(e.hlsDecoder.hls._playlist.totalDuration)>parseInt(e.playback._playingTimestamp)?e.emit(yt.playbackResetPause,e.playback._playingTimestamp):e.emit(yt.playbackResetPause,1))):Ha(a.playFn)?a.playFn():e.playForControl().then((()=>{e.resumeAudioAfterPause()}))}))),i(t.$easyplayerCodeMseRadio,"click",(i=>{i.stopPropagation(),t.$easyplayerCodeWcsRadio.checked=!1,t.$easyplayerCodeWasmsimdRadio.checked=!1,t.$easyplayerCodeWasmRadio.checked=!1,e.emit(yt.reset,{useMSE:!0,useWCS:!1,useSIMD:!1})})),i(t.$easyplayerCodeWcsRadio,"click",(i=>{i.stopPropagation(),t.$easyplayerCodeMseRadio.checked=!1,t.$easyplayerCodeWasmsimdRadio.checked=!1,t.$easyplayerCodeWasmRadio.checked=!1,e.emit(yt.reset,{useMSE:!1,useWCS:!0,useSIMD:!1})})),i(t.$easyplayerCodeWasmRadio,"click",(i=>{i.stopPropagation(),t.$easyplayerCodeMseRadio.checked=!1,t.$easyplayerCodeWcsRadio.checked=!1,t.$easyplayerCodeWasmsimdRadio.checked=!1,e.emit(yt.reset,{useMSE:!1,useWCS:!1,useSIMD:!1})})),i(t.$easyplayerCodeWasmsimdRadio,"click",(i=>{i.stopPropagation(),t.$easyplayerCodeMseRadio.checked=!1,t.$easyplayerCodeWcsRadio.checked=!1,t.$easyplayerCodeWasmRadio.checked=!1,e.emit(yt.reset,{useMSE:!1,useWCS:!1,useSIMD:!0})})),i(t.$easyplayerCodeDemuxCheckbox,"click",(i=>{i.stopPropagation(),e.emit(yt.reset,{useMSE:t.$easyplayerCodeMseRadio.checked,useWCS:t.$easyplayerCodeWcsRadio.checked,useSIMD:t.$easyplayerCodeWasmRadio.checked,demuxUseWorker:t.$easyplayerCodeDemuxCheckbox.checked,useMThreading:t.$easyplayerCodeMthreadingCheckbox.checked})})),i(t.$easyplayerCodeMthreadingCheckbox,"click",(i=>{i.stopPropagation(),e.emit(yt.reset,{useMSE:t.$easyplayerCodeMseRadio.checked,useWCS:t.$easyplayerCodeWcsRadio.checked,useSIMD:t.$easyplayerCodeWasmRadio.checked,demuxUseWorker:t.$easyplayerCodeDemuxCheckbox.checked,useMThreading:t.$easyplayerCodeMthreadingCheckbox.checked})})),i(t.$playBig,"click",(t=>{s.playType===v&&e.playbackPause?(e.playbackPause=!1,e._opt.isHls&&"H265(HEVC)"===(e.video&&e.video.videoInfo||{}).encType&&(parseInt(e.hlsDecoder.hls._playlist.totalDuration)>parseInt(e.playback._playingTimestamp)?e.emit(yt.playbackResetPause,e.playback._playingTimestamp):e.emit(yt.playbackResetPause,1))):Ha(a.playFn)?a.playFn():e.playForControl().then((()=>{e.resumeAudioAfterPause()}))})),i(t.$contextmenuBtnVersion,"click",(e=>{e.stopPropagation(),t.$contextmenuBtn.style.display="none"})),i(t.$contextmenuBtnCopy,"click",(i=>{i.stopPropagation(),t.$contextmenuBtn.style.display="none";const r=document.createElement("input");e.$container.appendChild(r),r.value=e._opt.url,r.select(),document.execCommand&&(document.execCommand("copy"),e.$container.removeChild(r))})),i(t.$contextmenuBtnClose,"click",(i=>{i.stopPropagation(),t.$contextmenuBtn.style.display="none",e.emit(yt.close)})),i(t.$performancePanel,"click",(t=>{t.stopPropagation(),"easyplayer-icon-close"==t.target.className&&e.updateOption({showPerformance:!1})})),i(t.$contextmenuBtnInfo,"click",(i=>{i.stopPropagation(),t.$contextmenuBtn.style.display="none",e.updateOption({showPerformance:!0})})),a.screenshot&&i(t.$screenshot,"click",(t=>{t.stopPropagation(),Ha(a.screenshotFn)?a.screenshotFn():e.video.screenshot()})),a.stretch&&i(t.$stretch,"click",(i=>{i.stopPropagation(),e._opt.isResize=!e._opt.isResize,e._opt.isResize?(t.$stretch&&(t.$stretch.innerText="标准"),t.$poster&&TA(t.$poster,"easyplayer-poster-size"),e.setScaleMode(1)):(t.$stretch&&(t.$stretch.innerText="拉伸"),e.setScaleMode(0),t.$poster&&LA(t.$poster,"easyplayer-poster-size"))})),a.audio&&(ga()&&(i(t.$volume,"mouseover",(()=>{t.$volumePanelWrap.classList.add("easyplayer-volume-panel-wrap-show")})),i(t.$volume,"mouseout",(()=>{t.$volumePanelWrap.classList.remove("easyplayer-volume-panel-wrap-show")})),i(t.$volumePanel,"click",(t=>{t.stopPropagation(),e.volume=o(t)})),i(t.$volumeHandle,"mousedown",(e=>{e.stopPropagation(),t.isVolumeDroging=!0})),i(t.$volumeHandle,"mousemove",(i=>{t.isVolumeDroging&&(e.volume=o(i))})),i(document,"mouseup",(()=>{t.isVolumeDroging&&(t.isVolumeDroging=!1)}))),i(t.$volumeOn,"click",(i=>{i.stopPropagation(),Aa(t.$volumeOn,"display","none"),Aa(t.$volumeOff,"display","block");const r=e.volume;e.volume=0,e._lastVolume=ga()?r:1})),i(t.$volumeOff,"click",(i=>{i.stopPropagation(),Aa(t.$volumeOn,"display","block"),Aa(t.$volumeOff,"display","none"),e.volume=ga()?e.lastVolume||.5:1}))),a.record&&(i(t.$record,"click",(t=>{t.stopPropagation(),e._opt.isMp4?e.video.startRecord():Ha(a.recordFn)?a.recordFn():e.recording=!0})),i(t.$recordStop,"click",(t=>{t.stopPropagation(),e._opt.isMp4?e.video.stopRecord():Ha(a.recordStopFn)?a.recordStopFn():e.recording=!1}))),i(t.$recordingStop,"click",(t=>{t.stopPropagation(),e._opt.isMp4?e.video.stopRecord():Ha(a.recordStopFn)?a.recordStopFn():e.recording=!1})),a.fullscreen&&(i(t.$fullscreen,"click",(i=>{i.stopPropagation(),$a()&&t.$controls.classList.add("easyplayer-controls-bottom-ios"),Ha(a.fullscreenFn)?a.fullscreenFn():e.fullscreen=!0})),i(t.$fullscreenExit,"click",(i=>{i.stopPropagation(),$a()&&t.$controls.classList.remove("easyplayer-controls-bottom-ios"),Ha(a.fullscreenExitFn)?a.fullscreenExitFn():e.fullscreen=!1}))),a.ptz){if(i(t.$ptz,"click",(e=>{e.stopPropagation(),Aa(t.$ptzActive,"display","flex"),Aa(t.$ptz,"display","none"),t.$ptzControl.classList.add("easyplayer-ptz-controls-show")})),i(t.$ptzActive,"click",(e=>{e.stopPropagation(),Aa(t.$ptz,"display","flex"),Aa(t.$ptzActive,"display","none"),t.$ptzControl.classList.remove("easyplayer-ptz-controls-show")})),t.$ptzArrows.forEach((r=>{if(s.ptzClickType===se)i(r,"click",(i=>{i.stopPropagation();const r=i.currentTarget.dataset.arrow;t.$ptzBgActive.classList.add("easyplayer-ptz-bg-active-show"),t.$ptzBgActive.classList.add(`easyplayer-ptz-bg-active-${r}`),t.$ptzControlCircular.classList.add(`easyplayer-ptz-control-${r}`),e.emit(yt.ptz,go(r)),setTimeout((()=>{t.$ptzBgActive.classList.remove("easyplayer-ptz-bg-active-show"),Di.forEach((e=>{t.$ptzBgActive.classList.remove(`easyplayer-ptz-bg-active-${e}`),t.$ptzControlCircular.classList.remove(`easyplayer-ptz-control-${e}`)})),e.emit(yt.ptz,bi)}),1e3*s.ptzStopEmitDelay)}));else if(s.ptzClickType===ae){let s=!1;i(r,"mousedown",(i=>{i.stopPropagation(),s=!0;const r=i.currentTarget.dataset.arrow;t.$ptzBgActive.classList.add("easyplayer-ptz-bg-active-show"),t.$ptzBgActive.classList.add(`easyplayer-ptz-bg-active-${r}`),t.$ptzControlCircular.classList.add(`easyplayer-ptz-control-${r}`),e.emit(yt.ptz,go(r))}));const a=()=>{s=!1,t.$ptzBgActive.classList.remove("easyplayer-ptz-bg-active-show"),Di.forEach((e=>{t.$ptzBgActive.classList.remove(`easyplayer-ptz-bg-active-${e}`),t.$ptzControlCircular.classList.remove(`easyplayer-ptz-control-${e}`)})),e.emit(yt.ptz,bi)};i(r,"mouseup",(e=>{e.stopPropagation(),s&&a()})),i(window,"mouseup",(e=>{e.stopPropagation(),s&&a()}))}})),s.ptzZoomShow)if(s.ptzClickType===se)i(t.$ptzExpand,"click",(t=>{t.stopPropagation(),e.emit(yt.ptz,Ri),setTimeout((()=>{e.emit(yt.ptz,bi)}),1e3*s.ptzStopEmitDelay)})),i(t.$ptzNarrow,"click",(t=>{t.stopPropagation(),e.emit(yt.ptz,Ti),setTimeout((()=>{e.emit(yt.ptz,bi)}),1e3*s.ptzStopEmitDelay)}));else if(s.ptzClickType===ae){let n=!1,l=!1;i(t.$ptzExpand,"mousedown",(t=>{t.stopPropagation(),n=!0,e.emit(yt.ptz,Ri)})),i(t.$ptzNarrow,"mousedown",(t=>{t.stopPropagation(),l=!0,e.emit(yt.ptz,Ti)}));const h=()=>{n=!1,l=!1,e.emit(yt.ptz,bi)};i(t.$ptzExpand,"mouseup",(e=>{e.stopPropagation(),n&&h()})),i(t.$ptzNarrow,"mouseup",(e=>{e.stopPropagation(),l&&h()})),i(window,"mouseup",(e=>{e.stopPropagation(),(n||l)&&h()}))}if(s.ptzApertureShow)if(s.ptzClickType===se)i(t.$ptzApertureFar,"click",(t=>{t.stopPropagation(),e.emit(yt.ptz,Li),setTimeout((()=>{e.emit(yt.ptz,Qi)}),1e3*s.ptzStopEmitDelay)})),i(t.$ptzApertureNear,"click",(t=>{t.stopPropagation(),e.emit(yt.ptz,Ki),setTimeout((()=>{e.emit(yt.ptz,Qi)}),1e3*s.ptzStopEmitDelay)}));else if(s.ptzClickType===ae){let A=!1,d=!1;i(t.$ptzApertureFar,"mousedown",(t=>{t.stopPropagation(),A=!0,e.emit(yt.ptz,Li)})),i(t.$ptzApertureNear,"mousedown",(t=>{t.stopPropagation(),d=!0,e.emit(yt.ptz,Ki)}));const c=()=>{A=!1,d=!1,e.emit(yt.ptz,Qi)};i(t.$ptzApertureFar,"mouseup",(e=>{e.stopPropagation(),A&&c()})),i(t.$ptzApertureNear,"mouseup",(e=>{e.stopPropagation(),d&&c()})),i(window,"mouseup",(e=>{e.stopPropagation(),(A||d)&&c()}))}if(s.ptzFocusShow)if(s.ptzClickType===se)i(t.$ptzFocusFar,"click",(t=>{t.stopPropagation(),e.emit(yt.ptz,qi),setTimeout((()=>{e.emit(yt.ptz,Qi)}),1e3*s.ptzStopEmitDelay)})),i(t.$ptzFocusNear,"click",(t=>{t.stopPropagation(),e.emit(yt.ptz,xi),setTimeout((()=>{e.emit(yt.ptz,Qi)}),1e3*s.ptzStopEmitDelay)}));else if(s.ptzClickType===ae){let u=!1,p=!1;i(t.$ptzFocusFar,"mousedown",(t=>{t.stopPropagation(),u=!0,e.emit(yt.ptz,qi)})),i(t.$ptzFocusNear,"mousedown",(t=>{t.stopPropagation(),p=!0,e.emit(yt.ptz,xi)}));const g=()=>{u=!1,p=!1,e.emit(yt.ptz,Qi)};i(t.$ptzFocusFar,"mouseup",(e=>{e.stopPropagation(),u&&g()})),i(t.$ptzFocusNear,"mouseup",(e=>{e.stopPropagation(),p&&g()})),i(window,"mouseup",(e=>{e.stopPropagation(),(u||p)&&g()}))}if(s.ptzCruiseShow&&(i(t.$ptzCruisePlay,"click",(t=>{t.stopPropagation(),e.emit(yt.ptz,Fi)})),i(t.$ptzCruisePause,"click",(t=>{t.stopPropagation(),e.emit(yt.ptz,Ui)}))),s.ptzFogShow&&(i(t.$ptzFogOpen,"click",(t=>{t.stopPropagation(),e.emit(yt.ptz,Gi)})),i(t.$ptzFogClose,"click",(t=>{t.stopPropagation(),e.emit(yt.ptz,Oi)}))),s.ptzWiperShow&&(i(t.$ptzWiperOpen,"click",(t=>{t.stopPropagation(),e.emit(yt.ptz,Ji)})),i(t.$ptzWiperClose,"click",(t=>{t.stopPropagation(),e.emit(yt.ptz,Yi)}))),s.ptzSupportDraggable){function m(){t.isPtzControlDroging&&(t.isPtzControlDroging=!1,t.$ptzControl.style.cursor="grab",t.tempPtzPosition={x:0,y:0})}t.isPtzControlDroging=!1,t.tempPtzPosition={x:0,y:0},i(t.$ptzControl,pa()?"touchstart":"mousedown",(e=>{e.stopPropagation(),t.isPtzControlDroging=!0,t.$ptzControl.style.cursor="grabbing";const{posX:i,posY:r}=Xa(e);t.tempPtzPosition={x:i,y:r}})),i(t.$ptzControl,pa()?"touchmove":"mousemove",(e=>{if(t.isPtzControlDroging){e.stopPropagation();const{posX:i,posY:r}=Xa(e),s=t.tempPtzPosition.x-i,a=t.tempPtzPosition.y-r;t.$ptzControl.style.left=t.$ptzControl.offsetLeft-s+"px",t.$ptzControl.style.top=t.$ptzControl.offsetTop-a+"px",t.tempPtzPosition={x:i,y:r}}})),i(t.$ptzControl,pa()?"touchend":"mouseup",(e=>{e.stopPropagation(),m()})),i(window,pa()?"touchend":"mouseup",(e=>{e.stopPropagation(),m()}))}}if(a.performance&&(i(t.$performance,"click",(t=>{t.stopPropagation(),e.togglePerformancePanel(!0)})),i(t.$performanceActive,"click",(t=>{t.stopPropagation(),e.togglePerformancePanel(!1)}))),a.logSave&&i(t.$logSave,"click",(t=>{t.stopPropagation(),e.downloadMemoryLog()})),a.aiFace&&(i(t.$faceDetect,"click",(t=>{t.stopPropagation(),e.faceDetect(!0)})),i(t.$faceDetectActive,"click",(t=>{t.stopPropagation(),e.faceDetect(!1)}))),a.aiObject&&(i(t.$objectDetect,"click",(t=>{t.stopPropagation(),e.objectDetect(!0)})),i(t.$objectDetectActive,"click",(t=>{t.stopPropagation(),e.objectDetect(!1)}))),a.aiOcclusion&&(i(t.$occlusionDetect,"click",(t=>{t.stopPropagation(),e.occlusionDetect(!0)})),i(t.$occlusionDetectActive,"click",(t=>{t.stopPropagation(),e.occlusionDetect(!1)}))),e._opt.hasControl&&e._opt.controlAutoHide){i(e.$container,"mouseover",(()=>{e.fullscreen||(Aa(t.$controls,"display","block"),E())})),i(e.$container,"mousemove",(()=>{e.$container&&t.$controls&&(e.fullscreen,"none"===t.$controls.style.display&&(Aa(t.$controls,"display","block"),E()))})),i(e.$container,"mouseout",(()=>{C(),Aa(t.$controls,"display","none")}));let y=null;const E=()=>{C(),y=setTimeout((()=>{Aa(t.$controls,"display","none")}),5e3)},C=()=>{y&&(clearTimeout(y),y=null)}}if(e._opt.playType===v){let f=e._opt.playbackConfig.controlType;e._opt.playbackConfig.showRateBtn&&(i(t.$speedMenu,"mouseover",(()=>{t.$speedMenuList.classList.add("easyplayer-speed-menu-shown")})),i(t.$speedMenu,"mouseout",(()=>{t.$speedMenuList.classList.remove("easyplayer-speed-menu-shown")})),i(t.$speedMenuList,"click",(t=>{const i=Za(t);if(i.matches("div.easyplayer-speed-menu-item")){const t=i.dataset;e.hlsDecoder&&"Hls256Decoder"==e.hlsDecoder.TAG_NAME&&e.hlsDecoder.hls.setfps(25*t.speed,t.speed),e.emit(yt.playbackPreRateChange,t.speed)}}))),f===oe.normal?(i(t.$playbackNarrow,"click",(t=>{t.stopPropagation(),e.playback&&e.playback.narrowPrecision()})),i(t.$playbackExpand,"click",(t=>{t.stopPropagation(),e.playback&&e.playback.expandPrecision()})),i(t.$playbackTimeList,"click",(t=>{const i=Za(t);i.matches("div.easyplayer-playback-time-minute-one")&&e.playback&&e.playback.seek(i.dataset)})),e._opt.playbackConfig.supportWheel&&i(t.$playbackTimeInner,"wheel",(t=>{t.preventDefault(),(t.wheelDelta?t.wheelDelta/120:-(t.detail||0)/3)>0?e.playback&&e.playback.expandPrecision():e.playback&&e.playback.narrowPrecision()}))):f===oe.simple&&(t.isDroging=!1,i(t.$playbackProgress,"click",(i=>{if(i.target!==t.$playbackProgressIndicator){let r=0,s=0;if(e.isInWebFullscreen())r=i.touches[0].clientY/e.height,s=r*e.playback.totalDuration;else{const a=RA(t,e.playback.totalDuration,i);r=a.percentage,s=a.second}e.playback&&e.playback.seek({time:s})}})),i(t.$playbackProgress,"mousemove",(i=>{Aa(t.$playbackProgressTip,"display","block");const{width:r,time:s}=RA(t,e.playback.totalDuration,i);t.$playbackProgressTip.innerHTML=s;const a=t.$playbackProgressTip.clientWidth;r<=a/2?Aa(t.$playbackProgressTip,"left",0):r>t.$playbackProgress.clientWidth-a/2?Aa(t.$playbackProgressTip,"left",t.$playbackProgress-a+"px"):Aa(t.$playbackProgressTip,"left",r-a/2+"px")})),i(t.$playbackProgress,"mouseout",(()=>{Aa(t.$playbackProgressTip,"display","none")})),i(t.$playbackProgressIndicator,"mousedown",(e=>{t.isDroging=!0})),i(t.$playbackProgress,"mousemove",(i=>{if(t.isDroging){const{second:r,percentage:s}=RA(t,e.playback.totalDuration,i);e.playback&&e.playback.seek({time:r})}})),i(t.$playbackProgress,"mouseup",(e=>{t.isDroging&&(t.isDroging=!1)})))}a.quality&&(i(t.$qualityMenu,"mouseover",(()=>{t.$qualityMenuList.classList.add("easyplayer-quality-menu-shown")})),i(t.$qualityMenu,"mouseout",(()=>{t.$qualityMenuList.classList.remove("easyplayer-quality-menu-shown")})),i(t.$qualityMenuList,"click",(t=>{const i=Za(t);if(i.matches("div.easyplayer-quality-menu-item")){const t=i.dataset;e.streamQuality=t.quality}}))),a.scale&&(i(t.$scaleMenu,"mouseover",(()=>{t.$scaleMenuList.classList.add("easyplayer-scale-menu-shown")})),i(t.$scaleMenu,"mouseout",(()=>{t.$scaleMenuList.classList.remove("easyplayer-scale-menu-shown")})),i(t.$scaleMenuList,"click",(t=>{const i=Za(t);if(i.matches("div.easyplayer-scale-menu-item")){const t=i.dataset;e.setScaleMode(t.scale)}}))),a.zoom&&(i(t.$zoom,"click",(t=>{t.stopPropagation(),e.zooming=!0})),i(t.$zoomStop,"click",(t=>{t.stopPropagation(),e.zooming=!1}))),i(t.$zoomExpand,"click",(t=>{t.stopPropagation(),e.ScaleCanvasLoaders.AddScaleNum(),e.zoom&&e.zoom.expandPrecision()})),i(t.$zoomNarrow,"click",(t=>{t.stopPropagation(),e.ScaleCanvasLoaders.SubScaleNum(),e.zoom&&e.zoom.narrowPrecision()})),i(t.$zoomStop2,"click",(t=>{t.stopPropagation(),e.zooming=!1})),a.close&&i(t.$close,"click",(t=>{t.stopPropagation(),e.doDestroy()})),i(t.$tipsMessageClose,"click",(e=>{e.stopPropagation(),t.$tipsMessageContent.innerHTML="",Aa(t.$tipsMessage,"display","none")}))})(e,this),e._opt.hotKey&&((e,t)=>{const{events:{proxy:i}}=e,r={};function s(e,t){r[e]?r[e].push(t):r[e]=[t]}s(Ci,(()=>{e.fullscreen&&(e.fullscreen=!1)})),s(fi,(()=>{e.volume+=.05})),s(Ii,(()=>{e.volume-=.05})),i(window,"keydown",(e=>{if(t.isFocus){const t=document.activeElement.tagName.toUpperCase(),i=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==i&&"true"!==i){const t=r[e.keyCode];t&&(e.preventDefault(),t.forEach((e=>e())))}}}))})(e,this),this.btnIndex=0,this.initLoadingBackground(),Pa(e._opt.loadingIconStyle)&&this.initLoadingIconStyle(e._opt.loadingIconStyle),Pa(e._opt.ptzPositionConfig)&&this.updatePtzPosition(e._opt.ptzPositionConfig),this.kbpsShow="0 KB/s",this.player.debug.log("Control","init")}destroy(){if(this.$performancePanel){this.$performancePanel.innerHTML="";if(!FA(this.$performancePanel)){const e=this.player.$container.querySelector(".easyplayer-performance-panel");e&&this.player.$container&&this.player.$container.removeChild(e)}}if(this.$contextmenuBtn){if(!FA(this.$contextmenuBtn)){const e=this.player.$container.querySelector(".easyplayer-contextmenu-btn");e&&this.player.$container&&this.player.$container.removeChild(e);const t=this.player.$container.querySelector(".easyplayer-message-content");t&&this.player.$container&&this.player.$container.removeChild(t)}}if(this.$messageContent){if(!FA(this.$messageContent)){const e=this.player.$container.querySelector(".easyplayer-message-content");e&&this.player.$container&&this.player.$container.removeChild(e)}}if(this.$poster){if(!FA(this.$poster)){const e=this.player.$container.querySelector(".easyplayer-poster");e&&this.player.$container&&this.player.$container.removeChild(e)}}if(this.$loading){if(!FA(this.$loading)){const e=this.player.$container.querySelector(".easyplayer-loading");e&&this.player.$container&&this.player.$container.removeChild(e)}}if(this.$loadingBg){if(!FA(this.$loadingBg)){const e=this.player.$container.querySelector(".easyplayer-loading-bg");e&&this.player.$container&&this.player.$container.removeChild(e)}}if(this.$controls){if(!FA(this.$controls)){const e=this.player.$container.querySelector(".easyplayer-controls");e&&this.player.$container&&this.player.$container.removeChild(e)}}if(this.$playBig){if(!FA(this.$playBig)){const e=this.player.$container.querySelector(".easyplayer-play-big");e&&this.player.$container&&this.player.$container.removeChild(e)}}if(this.$recording){if(!FA(this.$recording)){const e=this.player.$container.querySelector(".easyplayer-recording");e&&this.player.$container&&this.player.$container.removeChild(e)}}if(this.$ptzControl){if(!FA(this.$ptzControl)){const e=this.player.$container.querySelector(".easyplayer-ptz-controls");e&&this.player.$container&&this.player.$container.removeChild(e)}}if(this.$zoomControls){if(!FA(this.$zoomControls)){const e=this.player.$container.querySelector(".easyplayer-zoom-controls");e&&this.player.$container&&this.player.$container.removeChild(e)}}if(this.$contextmenus){this.$contextmenus.innerHTML="";if(!FA(this.$contextmenus)){const e=this.player.$container.querySelector(".easyplayer-contextmenus");e&&this.player.$container&&this.player.$container.removeChild(e)}}if(this.$tipsMessage){if(!FA(this.$tipsMessage)){const e=this.player.$container.querySelector(".easyplayer-tips-message");e&&this.player.$container&&this.player.$container.removeChild(e)}}if(this.$extendDom){if(!FA(this.$extendDom)){const e=this.player.$container.querySelector(".easyplayer-extend-dom");e&&this.player.$container&&this.player.$container.removeChild(e)}}this.btnIndex=0,this.extendBtnList=[],this.kbpsShow="0 KB/s",this.player.$container&&(this.player.$container.classList.remove("easyplayer-controls-show-auto-hide"),this.player.$container.classList.remove("easyplayer-controls-show")),this.player.debug.log("Control","destroy")}getBtnIndex(){return this.btnIndex++}autoSize(){const e=this.player;e.$container.style.padding="0 0";const t=e.width,i=e.height,r=t/i,s=e.video.$videoElement.width/e.video.$videoElement.height;if(r>s){const r=(t-i*s)/2;e.$container.style.padding=`0 ${r}px`}else{const r=(i-t/s)/2;e.$container.style.padding=`${r}px 0`}}initLoadingBackground(){const e=this.player;e._opt.loadingBackground&&e._opt.loadingBackgroundWidth&&e._opt.loadingBackgroundHeight&&(e.debug.log("Control","initLoadingBackground()"),"default"===this.player._opt.aspectRatio||pa()?(e.getRenderType()===ee||e.getRenderType()===te)&&this._initLoadingBackground():this._initLoadingBackgroundForRatio(),qA(this.$loadingBg,"display","block"),e._opt.loadingBackground="",e._opt.loadingBackgroundWidth=0,e._opt.loadingBackgroundHeight=0)}initLoadingIconStyle(e){const t=this.player.$container.querySelector(".easyplayer-icon-loading");t&&(e.width&&qA(t,"width",`${e.width}px`),e.height&&qA(t,"height",`${e.height}px`),e.background&&qA(t,"backgroundImage",`url("${e.background}")`),!1===e.hasAnimation&&(qA(t,"animationName","none"),qA(t,"animationDuration",0),qA(t,"animationTimingFunction","ease"),qA(t,"animationIterationCount",1)))}_initLoadingBackgroundForRatio(){const e=this.player._opt.aspectRatio.split(":").map(Number);let t=this.player.width,i=this.player.height;const r=this.player._opt;let s=0;r.hasControl&&!r.controlAutoHide&&(r.playType,s=0,i-=s);const a=this.player._opt.loadingBackgroundWidth,o=this.player._opt.loadingBackgroundHeight,n=a/o,l=e[0]/e[1];if(this.$loadingBgImage.src=this.player._opt.loadingBackground,n>l){const e=l*o/a;this.$loadingBgImage.style.width=100*e+"%",this.$loadingBgImage.style.height=`calc(100% - ${s}px)`,this.$loadingBgImage.style.padding=`0 ${(t-t*e)/2}px`}else{const e=a/l/o;this.$loadingBgImage.style.width="100%",this.$loadingBgImage.style.height=`calc(${100*e}% - ${s}px)`,this.$loadingBgImage.style.padding=(i-i*e)/2+"px 0"}}_initLoadingBackground(){const e=this.player;let t=e.height;const i=e._opt;if(i.hasControl&&!i.controlAutoHide){t-=(i.playType,0)}let r=e.width,s=t;const a=i.rotate;270!==a&&90!==a||(r=t,s=e.width),this.$loadingBgImage.width=r,this.$loadingBgImage.height=s,this.$loadingBgImage.src=e._opt.loadingBackground;let o=(e.width-r)/2,n=(t-s)/2,l="contain";i.isResize||(l="fill"),i.isFullResize&&(l="none");let h="";"none"===i.mirrorRotate&&a&&(h+=" rotate("+a+"deg)"),"level"===i.mirrorRotate?h+=" rotateY(180deg)":"vertical"===i.mirrorRotate&&(h+=" rotateX(180deg)"),this.player._opt.videoRenderSupportScale&&(this.$loadingBgImage.style.objectFit=l),this.$loadingBgImage.style.transform=h,this.$loadingBgImage.style.padding="0",this.$loadingBgImage.style.left=o+"px",this.$loadingBgImage.style.top=n+"px"}_validateExtendBtn(e){let t=!0;if(e.name||(this.player.debug.warn("Control","extend button name is required"),t=!1),t){-1!==this.extendBtnList.findIndex((t=>t.name===e.name))&&(this.player.debug.warn("Control",`extend button name: ${e.name} is already exist`),t=!1)}return t&&(e.icon||(this.player.debug.warn("Control","extend button icon is required"),t=!1)),t}addExtendBtn(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=lo(Ur);if(e=Object.assign({},t,e),!this._validateExtendBtn(e))return;const i=e.name||"",r=this.$controlsRight,s=e.activeIcon&&e.activeClick,a=`\n <div class="easyplayer-controls-item-wrap easyplayer-controls-item-wrap-${i}">\n ${e.icon?`<div class="easyplayer-controls-item easyplayer-control-extend-${i}">\n <i class="easyplayer-icon easyplayer-icon-extend-${i}"></i>\n ${e.iconTitle?`\n <span class="icon-title-tips"><span class="icon-title">${e.iconTitle}</span></span>\n `:""}\n </div>`:""}\n ${e.activeIcon?`<div class="easyplayer-controls-item easyplayer-control-extend-${i}-active">\n <i class="easyplayer-icon easyplayer-icon-extend-${i}-active"></i>\n ${e.activeIconTitle?`\n <span class="icon-title-tips"><span class="icon-title">${e.activeIconTitle}</span></span>\n `:""}\n </div>`:""}\n </div>\n `,o=Array.from(r.children)[e.index];o?o.insertAdjacentHTML("beforebegin",a):KA(r,a);const n=r.querySelector(`.easyplayer-controls-item-wrap-${i}`),l=e.icon?r.querySelector(`.easyplayer-icon-extend-${i}`):null,h=e.icon?r.querySelector(`.easyplayer-control-extend-${i}`):null,A=e.activeIcon?r.querySelector(`.easyplayer-icon-extend-${i}-active`):null,d=e.activeIcon?r.querySelector(`.easyplayer-control-extend-${i}-active`):null,{events:{proxy:c},debug:u}=this.player;e.icon&&(qA(l,"background",`url(${e.icon}) no-repeat center`),qA(l,"background-size","100% 100%"),qA(h,"display","none"),e.iconHover&&(c(l,"mouseover",(()=>{qA(l,"background",`url(${e.iconHover}) no-repeat center`),qA(l,"background-size","100% 100%")})),c(l,"mouseout",(()=>{qA(l,"background",`url(${e.icon}) no-repeat center`),qA(l,"background-size","100% 100%")})))),e.activeIcon&&(qA(A,"background",`url(${e.activeIcon}) no-repeat center`),qA(A,"background-size","100% 100%"),qA(d,"display","none"),e.activeIconHover&&(c(A,"mouseover",(()=>{qA(A,"background",`url(${e.activeIconHover}) no-repeat center`),qA(A,"background-size","100% 100%")})),c(A,"mouseout",(()=>{qA(A,"background",`url(${e.activeIcon}) no-repeat center`),qA(A,"background-size","100% 100%")})))),e.click&&l&&c(l,"click",(t=>{t.preventDefault(),s&&(qA(h,"display","none"),qA(d,"display","flex")),this.player.isInMulti()?e.click.call(this.player,t,this.player._opt.multiIndex):e.click.call(this.player,t)})),e.activeClick&&A&&c(A,"click",(t=>{t.preventDefault(),qA(h,"display","flex"),qA(d,"display","none"),this.player.isInMulti()?e.activeClick.call(this.player,t,this.player._opt.multiIndex):e.activeClick.call(this.player,t)})),this.extendBtnList.push({name:i,$iconContainer:n,$iconWrap:h,$activeIconWrap:d})}addExtendDom(e){if(this.player.debug.log(this.TAG_NAME,"addExtendDom"),e.html){const t=`\n <div class="easyplayer-extend-dom">\n ${e.html}\n </div>\n `;this.player.$container.insertAdjacentHTML("beforeend",t),Object.defineProperty(this,"$extendDom",{value:this.player.$container.querySelector(".easyplayer-extend-dom")}),e.showBeforePlay&&qA(this.$extendDom,"display","block")}}toggleExtendDom(e){this.$extendDom&&(Ta(e)||(e="none"===this.$extendDom.style.display),qA(this.$extendDom,"display",e?"block":"none"))}updateExtendDom(e){this.player.debug.log(this.TAG_NAME,"updateExtendDom"),this.$extendDom&&(this.$extendDom.innerHTML=e)}removeExtendDom(){this.player.debug.log(this.TAG_NAME,"removeExtendDom"),this.$extendDom&&(this.$extendDom.innerHTML="")}updateLoadingText(e){this.$loadingText&&(this.$loadingText.innerText=e)}getExtendBtnList(){return this.extendBtnList}showTipsMessage(e,t){const i=this.$tipsMessage,r=this.$tipsMessageContent;if(i){const s=`\n <div class="easyplayer-tips-message-content-item">${e}</div>\n ${t?`<div class="easyplayer-tips-message-content-item">Error Type:${t}</div>`:""}\n `;r.innerHTML=s,qA(i,"display","block")}}hideTipsMessage(){const e=this.$tipsMessage;e&&($tipsMessageContent.innerHTML="",qA(e,"display","none"))}updatePtzPosition(e){const t=this.$ptzControl;if(Pa(e)&&t){let i="auto";e.left&&(i=Number(e.left)===e.left?e.left+"px":e.left),qA(t,"left",i);let r="auto";e.top&&(r=Number(e.top)===e.top?e.top+"px":e.top),qA(t,"top",r);let s="auto";e.bottom&&(s=Number(e.bottom)===e.bottom?e.bottom+"px":e.bottom),qA(t,"bottom",s);let a="auto";e.right&&(a=Number(e.right)===e.right?e.right+"px":e.right),qA(t,"right",a)}}}GA(".easyplayer-container{position:relative;width:100%;height:100%;overflow:hidden}.easyplayer-container.easyplayer-fullscreen-web{position:fixed;z-index:9999;left:0;top:0;right:0;bottom:0;width:100vw!important;height:100vh!important;background:#000}.easyplayer-container .easyplayer-loading-bg-for-ios{position:absolute;z-index:100;left:0;top:0;right:0;bottom:0;height:100%;width:100%;opacity:0;visibility:hidden;background-position:50%;background-repeat:no-repeat;background-size:contain;pointer-events:none}.easyplayer-container .easyplayer-loading-bg-for-ios.show{opacity:1;visibility:visible}");var JA=e=>{const{_opt:t,debug:i,events:{proxy:r}}=e;if(t.supportDblclickFullscreen&&r(e.$container,"dblclick",(t=>{const i=Za(t).nodeName.toLowerCase();"canvas"!==i&&"video"!==i||(e.fullscreen=!e.fullscreen)})),r(document,"visibilitychange",(()=>{e.visibility="visible"===document.visibilityState,i.log("visibilitychange",document.visibilityState),t.hiddenAutoPause&&(i.log("visibilitychange","hiddenAutoPause is true ",document.visibilityState,e._isPlayingBeforePageHidden),"visible"===document.visibilityState?e._isPlayingBeforePageHidden&&e.play():(e._isPlayingBeforePageHidden=e.playing,e.playing&&e.pause()))})),ga()&&r(document,["click","contextmenu"],(t=>{xA(t,e.$container)?(uo(e._opt.disableContextmenu)&&"contextmenu"===t.type&&t.preventDefault(),e.isInput="INPUT"===t.target.tagName,e.isFocus=!0,e.emit(yt.focus)):(e.isInput=!1,e.isFocus=!1,e.emit(yt.blur))})),t.isCheckInView){const t=Ma((()=>{e.emit(yt.inView,function(e){const t=e.getBoundingClientRect(),i=window.innerHeight||document.documentElement.clientHeight,r=window.innerWidth||document.documentElement.clientWidth,s=t.top<=i&&t.top+t.height>=0,a=t.left<=r&&t.left+t.width>=0;return s&&a}(e.$container))}),200);r(window,"scroll",(()=>t()))}if(t.autoResize){const t=Ma((()=>{e.resize()}),500);r(window,["resize","orientationchange"],(()=>{t()})),screen&&screen.orientation&&screen.orientation.onchange&&r(screen.orientation,"change",(()=>{t()}))}};class YA{static init(){YA.types={avc1:[],avcC:[],hvc1:[],hvcC:[],av01:[],av1C:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[],Opus:[],dOps:[],"ac-3":[],dac3:[],"ec-3":[],dec3:[]};for(let e in YA.types)YA.types.hasOwnProperty(e)&&(YA.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let e=YA.constants={};e.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),e.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),e.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),e.STSC=e.STCO=e.STTS,e.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),e.HDLR_VIDEO=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]),e.HDLR_AUDIO=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]),e.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),e.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),e.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,r=Array.prototype.slice.call(arguments,1),s=r.length;for(let e=0;e<s;e++)t+=r[e].byteLength;i=new Uint8Array(t),i[0]=t>>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let a=8;for(let e=0;e<s;e++)i.set(r[e],a),a+=r[e].byteLength;return i}static generateInitSegment(e){let t=YA.box(YA.types.ftyp,YA.constants.FTYP),i=YA.moov(e),r=new Uint8Array(t.byteLength+i.byteLength);return r.set(t,0),r.set(i,t.byteLength),r}static moov(e){let t=YA.mvhd(e.timescale,e.duration),i=YA.trak(e),r=YA.mvex(e);return YA.box(YA.types.moov,t,i,r)}static mvhd(e,t){return YA.box(YA.types.mvhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,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]))}static trak(e){return YA.box(YA.types.trak,YA.tkhd(e),YA.mdia(e))}static tkhd(e){let t=e.id,i=e.duration,r=e.presentWidth,s=e.presentHeight;return YA.box(YA.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,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 mdia(e){return YA.box(YA.types.mdia,YA.mdhd(e),YA.hdlr(e),YA.minf(e))}static mdhd(e){let t=e.timescale,i=e.duration;return YA.box(YA.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,i>>>24&255,i>>>16&255,i>>>8&255,255&i,85,196,0,0]))}static hdlr(e){let t=null;return t="audio"===e.type?YA.constants.HDLR_AUDIO:YA.constants.HDLR_VIDEO,YA.box(YA.types.hdlr,t)}static minf(e){let t=null;return t="audio"===e.type?YA.box(YA.types.smhd,YA.constants.SMHD):YA.box(YA.types.vmhd,YA.constants.VMHD),YA.box(YA.types.minf,t,YA.dinf(),YA.stbl(e))}static dinf(){return YA.box(YA.types.dinf,YA.box(YA.types.dref,YA.constants.DREF))}static stbl(e){return YA.box(YA.types.stbl,YA.stsd(e),YA.box(YA.types.stts,YA.constants.STTS),YA.box(YA.types.stsc,YA.constants.STSC),YA.box(YA.types.stsz,YA.constants.STSZ),YA.box(YA.types.stco,YA.constants.STCO))}static stsd(e){return"audio"===e.type?"mp3"===e.audioType?YA.box(YA.types.stsd,YA.constants.STSD_PREFIX,YA.mp3(e)):YA.box(YA.types.stsd,YA.constants.STSD_PREFIX,YA.mp4a(e)):"avc"===e.videoType?YA.box(YA.types.stsd,YA.constants.STSD_PREFIX,YA.avc1(e)):YA.box(YA.types.stsd,YA.constants.STSD_PREFIX,YA.hvc1(e))}static mp3(e){let t=e.channelCount,i=e.audioSampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return YA.box(YA.types[".mp3"],r)}static mp4a(e){let t=e.channelCount,i=e.audioSampleRate,r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return YA.box(YA.types.mp4a,r,YA.esds(e))}static esds(e){let t=e.config||[],i=t.length,r=new Uint8Array([0,0,0,0,3,23+i,0,1,0,4,15+i,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([i]).concat(t).concat([6,1,2]));return YA.box(YA.types.esds,r)}static avc1(e){let t=e.avcc;const i=e.codecWidth,r=e.codecHeight;let s=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,i>>>8&255,255&i,r>>>8&255,255&r,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return YA.box(YA.types.avc1,s,YA.box(YA.types.avcC,t))}static hvc1(e){let t=e.avcc;const i=e.codecWidth,r=e.codecHeight;let s=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,i>>>8&255,255&i,r>>>8&255,255&r,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return YA.box(YA.types.hvc1,s,YA.box(YA.types.hvcC,t))}static mvex(e){return YA.box(YA.types.mvex,YA.trex(e))}static trex(e){let t=e.id,i=new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return YA.box(YA.types.trex,i)}static moof(e,t){return YA.box(YA.types.moof,YA.mfhd(e.sequenceNumber),YA.traf(e,t))}static mfhd(e){let t=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return YA.box(YA.types.mfhd,t)}static traf(e,t){let i=e.id,r=YA.box(YA.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),s=YA.box(YA.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),a=YA.sdtp(e),o=YA.trun(e,a.byteLength+16+16+8+16+8+8);return YA.box(YA.types.traf,r,s,o,a)}static sdtp(e){let t=new Uint8Array(5),i=e.flags;return t[4]=i.isLeading<<6|i.dependsOn<<4|i.isDependedOn<<2|i.hasRedundancy,YA.box(YA.types.sdtp,t)}static trun(e,t){let i=new Uint8Array(28);t+=36,i.set([0,0,15,1,0,0,0,1,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);let r=e.duration,s=e.size,a=e.flags,o=e.cts;return i.set([r>>>24&255,r>>>16&255,r>>>8&255,255&r,s>>>24&255,s>>>16&255,s>>>8&255,255&s,a.isLeading<<2|a.dependsOn,a.isDependedOn<<6|a.hasRedundancy<<4|a.isNonSync,0,0,o>>>24&255,o>>>16&255,o>>>8&255,255&o],12),YA.box(YA.types.trun,i)}static mdat(e){return YA.box(YA.types.mdat,e)}}YA.init();class NA extends ko{constructor(e){super(),this.TAG_NAME="MediaSource",this.player=e,this._resetInIt(),this._useManagedMediaSource="ManagedMediaSource"in self&&!("MediaSource"in self),this.mediaSource=this._useManagedMediaSource?new self.ManagedMediaSource:new self.MediaSource,this.isDecodeFirstIIframe=!!po(e._opt.checkFirstIFrame),this.mediaSourceObjectURL=null,this._useManagedMediaSource||(this.mediaSourceObjectURL=window.URL.createObjectURL(this.mediaSource)),this.isSupportVideoFrameCallback=Co(),this.canvasRenderInterval=null,e._opt.mseUseCanvasRender?(this.$videoElement=document.createElement("video"),this._useManagedMediaSource?(this.$videoElement.disableRemotePlayback=!0,this.$videoElement.srcObject=this.mediaSource):this.$videoElement.src=this.mediaSourceObjectURL,this.initVideoEvents()):(this._useManagedMediaSource?(this.player.video.$videoElement.disableRemotePlayback=!0,this.player.video.$videoElement.srcObject=this.mediaSource):this.player.video.$videoElement.src=this.mediaSourceObjectURL,this.$videoElement=this.player.video.$videoElement),this._bindMediaSourceEvents(),this.audioSourceBufferCheckTimeout=null,this.audioSourceNoDataCheckTimeout=null,this.player.isPlayback()&&this.player.on(yt.playbackPause,(t=>{po(t)?(uo(e._opt.checkFirstIFrame)&&(this.player.debug.log(this.TAG_NAME,"playbackPause is false and _opt.checkFirstIFrame is true so set isDecodeFirstIIframe = false"),this.isDecodeFirstIIframe=!1),this.clearUpAllSourceBuffer(),this.$videoElement.play()):(this.$videoElement.pause(),this.cacheTrack={})})),this.player.on(yt.visibilityChange,(e=>{e&&setTimeout((()=>{if(this.player.isPlaying()&&this.$videoElement){const e=this.getVideoBufferLastTime();e>this.$videoElement.currentTime&&(this.player.debug.log(this.TAG_NAME,`visibilityChange is true and lastTime is ${e} and currentTime is ${this.$videoElement.currentTime} so set currentTime to lastTime`),this.$videoElement.currentTime=e)}}),300)})),this._useManagedMediaSource?this.player.debug.log(this.TAG_NAME,"init and using ManagedMediaSource"):this.player.debug.log(this.TAG_NAME,"init")}destroy(){this.stop(),this._clearAudioSourceBufferCheckTimeout(),this._clearAudioNoDataCheckTimeout(),this._stopCanvasRender(),this.eventListenList.length&&(this.eventListenList.forEach((e=>e())),this.eventListenList=[]),this.supportVideoFrameCallbackHandle&&this.$videoElement&&(this.$videoElement.cancelVideoFrameCallback(this.supportVideoFrameCallbackHandle),this.supportVideoFrameCallbackHandle=null),this.$videoElement&&(this.player._opt.mseUseCanvasRender&&this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$videoElement=null),this.mediaSourceObjectURL&&(window.URL.revokeObjectURL(this.mediaSourceObjectURL),this.mediaSourceObjectURL=null),this._resetInIt(),this.off(),this.player.debug.log(this.TAG_NAME,"destroy")}needInitAudio(){return this.player._opt.hasAudio&&this.player._opt.mseDecodeAudio}_resetInIt(){this.isAvc=null,this.isAAC=null,this.videoMeta={},this.audioMeta={},this.sourceBuffer=null,this.audioSourceBuffer=null,this.hasInit=!1,this.hasAudioInit=!1,this.isInitInfo=!1,this.isAudioInitInfo=!1,this.audioMimeType="",this.videoMimeType="",this.cacheTrack={},this.cacheAudioTrack={},this.timeInit=!1,this.sequenceNumber=0,this.audioSequenceNumber=0,this.firstRenderTime=null,this.firstAudioTime=null,this.$videoElement=null,this.mediaSourceAppendBufferFull=!1,this.mediaSourceAppendBufferError=!1,this.mediaSourceAddSourceBufferError=!1,this.mediaSourceBufferError=!1,this.mediaSourceError=!1,this.prevTimestamp=null,this.decodeDiffTimestamp=null,this.prevDts=null,this.prevAudioDts=null,this.prevPayloadBufferSize=0,this.isWidthOrHeightChanged=!1,this.prevTs=null,this.prevAudioTs=null,this.eventListenList=[],this.pendingRemoveRanges=[],this.pendingSegments=[],this.pendingAudioRemoveRanges=[],this.pendingAudioSegments=[],this.supportVideoFrameCallbackHandle=null}get state(){return this.mediaSource&&this.mediaSource.readyState}get isStateOpen(){return this.state===mi}get isStateClosed(){return this.state===yi}get isStateEnded(){return this.state===gi}get duration(){return this.mediaSource&&this.mediaSource.duration||-1}set duration(e){this.mediaSource.duration=e}_bindMediaSourceEvents(){const{debug:e,events:{proxy:t}}=this.player,i=t(this.mediaSource,Vi,(()=>{this.player.debug.log(this.TAG_NAME,"sourceOpen"),this._onMediaSourceSourceOpen(),this.player.emit(yt.mseSourceOpen)})),r=t(this.mediaSource,Zi,(()=>{this.player.debug.log(this.TAG_NAME,"sourceClose"),this.player.emit(yt.mseSourceClose)})),s=t(this.mediaSource,Hi,(()=>{this.player.debug.log(this.TAG_NAME,"sourceended"),this.player.emit(yt.mseSourceended)}));this.eventListenList.push(i,r,s);const a=t(this.$videoElement,ir,(e=>{if(po(this.isSupportVideoFrameCallback))if(this.player.checkIsInRender())this.player.handleRender();else{const t=parseInt(e.timeStamp,10);this.player.debug.log(this.TAG_NAME,`mseUseCanvasRender is ${this.player._opt.mseUseCanvasRender} and\n $videoElement ts is ${t}, but not in render and vbps is ${this.player._stats.vbps} and fps is ${this.player._stats.fps}`)}})),o=t(this.$videoElement,rr,(()=>{this.player.debug.log(this.TAG_NAME,"video playback Rate change",this.$videoElement&&this.$videoElement.playbackRate),this.$videoElement&&this.$videoElement.paused&&(this.player.debug.warn(this.TAG_NAME,"video is paused and sent isMSEPlaybackRateChangePause true"),this.player.isMSEPlaybackRateChangePause=!0)}));if(this.eventListenList.push(a,o),this._useManagedMediaSource){const e=t(this.mediaSource,Xi,(()=>{this.player.debug.log(this.TAG_NAME,"ManagedMediaSource startstreaming"),this.player.emit(yt.mseSourceStartStreaming)})),i=t(this.mediaSource,_i,(()=>{this.player.debug.log(this.TAG_NAME,"ManagedMediaSource endstreaming"),this.player.emit(yt.mseSourceEndStreaming)})),r=t(this.mediaSource,$i,(()=>{this.player.debug.log(this.TAG_NAME,"ManagedMediaSource qualitychange")}));this.eventListenList.push(e,i,r)}}_onMediaSourceSourceOpen(){this.sourceBuffer||(this.player.debug.log("MediaSource","onMediaSourceSourceOpen() sourceBuffer is null and next init"),this._initSourceBuffer()),this.audioSourceBuffer||(this.player.debug.log("MediaSource","onMediaSourceSourceOpen() audioSourceBuffer is null and next init"),this._initAudioSourceBuffer()),this._hasPendingSegments()&&this._doAppendSegments()}initVideoEvents(){const{proxy:e}=this.player.events,t=e(this.$videoElement,er,(()=>{this.player.debug.log(this.TAG_NAME,"video canplay"),this.$videoElement.play().then((()=>{this.player.emit(yt.removeLoadingBgImage),Co()?this.supportVideoFrameCallbackHandle=this.$videoElement.requestVideoFrameCallback(this.videoFrameCallback.bind(this)):this.player.isUseHls265()&&(this._stopCanvasRender(),this.canvasRenderInterval=setInterval((()=>{this.player.video.render({$video:this.$videoElement,ts:parseInt(1e3*this.$videoElement.currentTime,10)||0})}),40)),this.player.debug.log(this.TAG_NAME,"video play")})).catch((e=>{this.player.debug.error(this.TAG_NAME,"video play error ",e),this.player.emitError(It.mediaSourceUseCanvasRenderPlayFailed,e)}))})),i=e(this.$videoElement,tr,(()=>{this.player.debug.log(this.TAG_NAME,"video waiting")})),r=e(this.$videoElement,ir,(e=>{parseInt(e.timeStamp,10),this.$videoElement.paused&&(this.player.debug.warn(this.TAG_NAME,"video is paused and next try to replay"),this.$videoElement.play().then((()=>{this.player.debug.log(this.TAG_NAME,"video is paused and replay success")})).catch((e=>{this.player.debug.warn(this.TAG_NAME,"video is paused and replay error ",e)})))}));this.eventListenList.push(t,i,r)}videoFrameCallback(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.player.isDestroyedOrClosed())return void this.player.debug.log(this.TAG_NAME,"videoFrameCallback() player is destroyed");const i=parseInt(1e3*Math.max(t.mediaTime,this.$videoElement.currentTime),10)||0;this.player.handleRender(),this.player.video.render({$video:this.$videoElement,ts:i}),this.player.isUseHls265()&&this.player.updateStats({fps:!0,ts:i}),this.supportVideoFrameCallbackHandle=this.$videoElement.requestVideoFrameCallback(this.videoFrameCallback.bind(this))}decodeVideo(e,t,i,r){const s=this.player;if(s)if(this.player.isDestroyedOrClosed())this.player.debug.warn(this.TAG_NAME,"decodeVideo() player is destroyed");else if(this.hasInit)if(!this.isDecodeFirstIIframe&&i&&(this.isDecodeFirstIIframe=!0),this.isDecodeFirstIIframe){if(i&&0===e[1]){const t=15&e[0];let i={};if(t===Qt){i=Rn(e.slice(5))}else t===Rt&&(i=Nn(e));const r=this.player.video.videoInfo;r&&r.width&&r.height&&i&&i.codecWidth&&i.codecHeight&&(i.codecWidth!==r.width||i.codecHeight!==r.height)&&(this.player.debug.warn(this.TAG_NAME,`\n decodeVideo: video width or height is changed,\n old width is ${r.width}, old height is ${r.height},\n new width is ${i.codecWidth}, new height is ${i.codecHeight},\n and emit change event`),this.isWidthOrHeightChanged=!0,this.player.emitError(It.mseWidthOrHeightChange))}if(this.isWidthOrHeightChanged)return void this.player.debug.warn(this.TAG_NAME,"decodeVideo: video width or height is changed, and return");if(co(e))return void this.player.debug.warn(this.TAG_NAME,"decodeVideo and payload is video sequence header so drop this frame");if(e.byteLength<12)return void this.player.debug.warn(this.TAG_NAME,`decodeVideo and payload is too small , payload length is ${e.byteLength}`);let s=t;if(this.player.isPlayer()){if(null===this.firstRenderTime&&(this.firstRenderTime=t),s=t-this.firstRenderTime,s<0&&(this.player.debug.warn(this.TAG_NAME,`decodeVideo\n local dts is < 0 , ts is ${t} and prevTs is ${this.prevTs},\n firstRenderTime is ${this.firstRenderTime} and mseCorrectTimeDuration is ${this.player._opt.mseCorrectTimeDuration}`),s=null===this.prevDts?0:this.prevDts+this.player._opt.mseCorrectTimeDuration,this._checkTsIsMaxDiff(t)))return this.player.debug.warn(this.TAG_NAME,`decodeVideo is max diff , ts is ${t} and prevTs is ${this.prevTs}, diff is ${this.prevTs-t} and emit replay`),void this.player.emitError(It.mediaSourceTsIsMaxDiff,`decodeVideo is max diff, prevTs is ${this.prevTs} and ts is ${t}`);if(null!==this.prevDts&&s<=this.prevDts){if(this.player.debug.warn(this.TAG_NAME,`\n decodeVideo dts is less than(or equal) prev dts ,\n dts is ${s} and prev dts is ${this.prevDts} \n and now ts is ${t} and prev ts is ${this.prevTs} \n and diff is ${t-this.prevTs} and firstRenderTime is ${this.firstRenderTime} and isIframe is ${i}\n and mseCorrectTimeDuration is ${this.player._opt.mseCorrectTimeDuration},\n and prevPayloadBufferSize is ${this.prevPayloadBufferSize} and payload size is ${e.byteLength}`),s===this.prevDts&&this.prevPayloadBufferSize===e.byteLength)return void this.player.debug.warn(this.TAG_NAME,"decodeVideo dts is equal to prev dts and payload size is equal to prev payload size so drop this frame");if(s=this.prevDts+this.player._opt.mseCorrectTimeDuration,this._checkTsIsMaxDiff(t))return this.player.debug.warn(this.TAG_NAME,`decodeVideo is max diff , ts is ${t} and prevTs is ${this.prevTs}, diff is ${this.prevTs-t} and emit replay`),void this.emit(It.mediaSourceTsIsMaxDiff,`decodeVideo is max diff, prevTs is ${this.prevTs} and ts is ${t}`)}}this.player.isPlayer()?this._decodeVideo(e,s,i,r,t):this.player.isPlayback()&&po(this.player.playbackPause)&&(this.player.playback.isUseLocalCalculateTime&&this.player.playback.increaseLocalTimestamp(),this._decodeVideo(e,s,i,r,t)),this.prevDts=s,this.prevPayloadBufferSize=e.byteLength,this.prevTs=t}else this.player.debug.log(this.TAG_NAME,"decodeVideo first frame is not iFrame");else if(i&&e[1]===fr){const r=15&e[0];if(s.video.updateVideoInfo({encTypeCode:r}),r===Rt&&po(ka()))return void this.player.emitError(It.mediaSourceH265NotSupport);s._times.decodeStart||(s._times.decodeStart=la()),this.hasInit=this._decodeConfigurationRecord(e,t,i,r)}else this.player.debug.warn(this.TAG_NAME,`decodeVideo has not init , isIframe is ${i} , payload is ${e[1]}`)}decodeAudio(e,t){if(this.player)if(this.player.isDestroyedOrClosed())this.player.debug.warn(this.TAG_NAME,"decodeAudio() player is destroyed");else if(po(this.hasAudioInit))this.hasAudioInit=this._decodeAudioConfigurationRecord(e,t);else{let i=t;if(Os(e))return void this.player.debug.log(this.TAG_NAME,"decodeAudio and has already initialized and payload is aac codec packet so drop this frame");if(this._clearAudioNoDataCheckTimeout(),this.player.isPlayer()){if(null===this.firstAudioTime&&(this.firstAudioTime=t,null!==this.firstRenderTime&&null!==this.prevTs)){const e=Math.abs(this.firstRenderTime-this.prevTs);e>300&&(this.firstAudioTime-=e,this.player.debug.warn(this.TAG_NAME,`video\n firstAudioTime is ${this.firstRenderTime} and current time is ${this.prevTs}\n play time is ${e} and firstAudioTime ${t} - ${e} = ${this.firstAudioTime}`))}if(i=t-this.firstAudioTime,i<0&&(this.player.debug.warn(this.TAG_NAME,`decodeAudio\n local dts is < 0 , ts is ${t} and prevTs is ${this.prevAudioTs},\n firstAudioTime is ${this.firstAudioTime}`),i=null===this.prevAudioDts?0:this.prevAudioDts+this.player._opt.mseCorrectAudioTimeDuration,this._checkAudioTsIsMaxDiff(t)))return this.player.debug.warn(this.TAG_NAME,`decodeAudio is max diff , ts is ${t} and prevTs is ${this.prevAudioDts}, diff is ${this.prevAudioDts-t} and emit replay`),void this.player.emitError(It.mediaSourceTsIsMaxDiff,`decodeAudio is max diff, prevTs is ${this.prevAudioDts} and ts is ${t}`);null!==this.prevAudioTs&&i<=this.prevAudioDts&&(this.player.debug.warn(this.TAG_NAME,`\n decodeAudio dts is less than(or equal) prev dts ,\n dts is ${i} and prev dts is ${this.prevAudioDts} \n and now ts is ${t} and prev ts is ${this.prevAudioTs} \n and diff is ${t-this.prevAudioTs}`),i=this.prevAudioDts+this.player._opt.mseCorrectAudioTimeDuration)}(this.player.isPlayer()||this.player.isPlayback()&&po(this.player.playbackPause))&&this._decodeAudio(e,i,t),this.prevAudioTs=t,this.prevAudioDts=i}}_checkTsIsMaxDiff(e){return this.prevTs>0&&e<this.prevTs&&this.prevTs-e>le}_checkAudioTsIsMaxDiff(e){return this.prevAudioTs>0&&e<this.prevAudioTs&&this.prevAudioTs-e>le}_decodeConfigurationRecord(e,t,i,r){let s=e.slice(5),a={};if(r===Qt?a=Rn(s):r===Rt&&(a=Pn(s)),Na(a)||0===a.codecWidth&&0===a.codecHeight)return this.player.debug.warn(this.TAG_NAME,"_decodeConfigurationRecord",a),this.player.emitError(It.mediaSourceDecoderConfigurationError),!1;this.player.recorder&&this.player._opt.recordType===k&&this.player.recorder.initMetaData(e,r);const o={id:ps,type:"video",timescale:1e3,duration:0,avcc:s,codecWidth:a.codecWidth,codecHeight:a.codecHeight,videoType:a.videoType},n=YA.generateInitSegment(o);this.isAvc=r===Qt;let l=a.codec;return this.videoMimeType=l?`video/mp4; codecs="${a.codec}"`:this.isAvc?hi:Ai,this._initSourceBuffer(),this.appendBuffer(n.buffer),this.sequenceNumber=0,this.cacheTrack={},this.timeInit=!1,!0}_decodeAudioConfigurationRecord(e,t){const i=e[0]>>4,r=i===Kt.MP3,s=i===Kt.AAC;if(po(s||r))return this.player.debug.warn(this.TAG_NAME,`_decodeAudioConfigurationRecord audio codec is not support , codecId is ${i} ant auto wasm decode`),this.player.emit(It.mediaSourceAudioG711NotSupport),!1;const a={id:gs,type:"audio",timescale:1e3};let o={};if(Os(e)){if(o=Zs(e.slice(2)),!o)return!1;a.audioSampleRate=o.sampleRate,a.channelCount=o.channelCount,a.config=o.config,a.refSampleDuration=1024/a.audioSampleRate*a.timescale}else{if(!r)return!1;if(o=fA(e),!o)return!1;a.audioSampleRate=o.samplingRate,a.channelCount=o.channelCount,a.refSampleDuration=1152/a.audioSampleRate*a.timescale}a.codec=o.codec,a.duration=0;let n="mp4",l=o.codec,h=null;r&&po(ya())?(n="mpeg",l="",h=new Uint8Array):h=YA.generateInitSegment(a);let A=`${a.type}/${n}`;return l&&l.length>0&&(A+=`;codecs=${l}`),po(this.isAudioInitInfo)&&(this.player.audio.updateAudioInfo({encTypeCode:i,channels:a.channelCount,sampleRate:a.audioSampleRate}),this.isAudioInitInfo=!0),this.audioMimeType=A,this.isAAC=s,this._initAudioSourceBuffer(),this.appendAudioBuffer(h.buffer),!0}_initSourceBuffer(){const{debug:e,events:{proxy:t}}=this.player;if(null===this.sourceBuffer&&null!==this.mediaSource&&this.isStateOpen&&this.videoMimeType){try{this.sourceBuffer=this.mediaSource.addSourceBuffer(this.videoMimeType),e.log(this.TAG_NAME,"_initSourceBuffer() this.mediaSource.addSourceBuffer()",this.videoMimeType)}catch(t){return e.error(this.TAG_NAME,"appendBuffer() this.mediaSource.addSourceBuffer()",t.code,t),this.player.emitError(It.mseAddSourceBufferError,t),void(this.mediaSourceAddSourceBufferError=!0)}if(this.sourceBuffer){const i=t(this.sourceBuffer,"error",(t=>{this.mediaSourceBufferError=!0,e.error(this.TAG_NAME,"mseSourceBufferError this.sourceBuffer",t),this.player.emitError(It.mseSourceBufferError,t)})),r=t(this.sourceBuffer,"updateend",(()=>{this._hasPendingRemoveRanges()?this._doRemoveRanges():this._hasPendingSegments()&&this._doAppendSegments()}));this.eventListenList.push(i,r)}}else e.log(this.TAG_NAME,`_initSourceBuffer and this.isStateOpen is ${this.isStateOpen} and this.isAvc === null is ${null===this.isAvc}`)}_initAudioSourceBuffer(){const{debug:e,events:{proxy:t}}=this.player;if(null===this.audioSourceBuffer&&null!==this.mediaSource&&this.isStateOpen&&this.audioMimeType){try{this.audioSourceBuffer=this.mediaSource.addSourceBuffer(this.audioMimeType),this._clearAudioSourceBufferCheckTimeout(),e.log(this.TAG_NAME,"_initAudioSourceBuffer() this.mediaSource.addSourceBuffer()",this.audioMimeType)}catch(t){return e.error(this.TAG_NAME,"appendAudioBuffer() this.mediaSource.addSourceBuffer()",t.code,t),this.player.emitError(It.mseAddSourceBufferError,t),void(this.mediaSourceAddSourceBufferError=!0)}if(this.audioSourceBuffer){const i=t(this.audioSourceBuffer,"error",(t=>{this.mediaSourceBufferError=!0,e.error(this.TAG_NAME,"mseSourceBufferError this.audioSourceBuffer",t),this.player.emitError(It.mseSourceBufferError,t)})),r=t(this.audioSourceBuffer,"updateend",(()=>{this._hasPendingRemoveRanges()?this._doRemoveRanges():this._hasPendingSegments()&&this._doAppendSegments()}));this.eventListenList.push(i,r),null===this.audioSourceNoDataCheckTimeout&&(this.audioSourceNoDataCheckTimeout=setTimeout((()=>{this._clearAudioNoDataCheckTimeout(),this.player.emit(It.mediaSourceAudioNoDataTimeout)}),1e3))}}else e.log(this.TAG_NAME,`_initAudioSourceBuffer and this.isStateOpen is ${this.isStateOpen} and this.audioMimeType is ${this.audioMimeType}`)}_decodeVideo(e,t,i,r,s){const a=this.player;let o=e.slice(5),n=o.byteLength;if(0===n)return void a.debug.warn(this.TAG_NAME,"_decodeVideo payload bytes is 0 and return");let l=(new Date).getTime(),h=!1;this.prevTimestamp||(this.prevTimestamp=l,h=!0);const A=l-this.prevTimestamp;this.decodeDiffTimestamp=A,A>500&&!h&&this.player.isPlayer()&&a.debug.warn(this.TAG_NAME,`_decodeVideo now time is ${l} and prev time is ${this.prevTimestamp}, diff time is ${A} ms`);const d=this.$videoElement;if(this.cacheTrack.id&&t>=this.cacheTrack.dts){let e=8+this.cacheTrack.size,i=new Uint8Array(e);i[0]=e>>>24&255,i[1]=e>>>16&255,i[2]=e>>>8&255,i[3]=255&e,i.set(YA.types.mdat,4),i.set(this.cacheTrack.data,8),this.cacheTrack.duration=t-this.cacheTrack.dts;let r=YA.moof(this.cacheTrack,this.cacheTrack.dts);this.cacheTrack={};let o=new Uint8Array(r.byteLength+i.byteLength);o.set(r,0),o.set(i,r.byteLength),this.appendBuffer(o.buffer),a.emit(yt.timeUpdate,s),a.isPlayer()?a.isUseHls265()?a.updateStats({dfps:!0,mseTs:t}):a.updateStats({fps:!0,dfps:!0,ts:s,mseTs:t}):a.isPlayback()&&a.playback.updateStats({ts:s}),a._times.videoStart||(a._times.videoStart=la(),a.handlePlayToRenderTimes())}else a.debug.log(this.TAG_NAME,`timeInit set false , cacheTrack = {} now dts is ${t}, and ts is ${s} cacheTrack dts is ${this.cacheTrack&&this.cacheTrack.dts}`),this.timeInit=!1,this.cacheTrack={};this.cacheTrack||(this.cacheTrack={}),this.cacheTrack.id=ps,this.cacheTrack.sequenceNumber=++this.sequenceNumber,this.cacheTrack.size=n,this.cacheTrack.dts=t,this.cacheTrack.cts=r,this.cacheTrack.isKeyframe=i,this.cacheTrack.data=o,this.cacheTrack.flags={isLeading:0,dependsOn:i?2:1,isDependedOn:i?1:0,hasRedundancy:0,isNonSync:i?0:1},!this.isInitInfo&&d.videoWidth>0&&d.videoHeight>0&&(a.debug.log(this.TAG_NAME,`updateVideoInfo: ${d.videoWidth},${d.videoHeight}`),a.video.updateVideoInfo({width:d.videoWidth,height:d.videoHeight}),a.video.initCanvasViewSize(),this.isInitInfo=!0),a._opt.mseUseCanvasRender&&po(this.isSupportVideoFrameCallback)&&po(a.isUseHls265())&&a.video.render({$video:d,ts:t}),this.prevTimestamp=(new Date).getTime()}_stopCanvasRender(){this.canvasRenderInterval&&(clearInterval(this.canvasRenderInterval),this.canvasRenderInterval=null)}_decodeAudio(e,t,i){this.player;let r=this.isAAC?e.slice(2):e.slice(1),s=r.byteLength;if(this.cacheAudioTrack.id&&t>=this.cacheAudioTrack.dts){let e=8+this.cacheAudioTrack.size,i=new Uint8Array(e);i[0]=e>>>24&255,i[1]=e>>>16&255,i[2]=e>>>8&255,i[3]=255&e,i.set(YA.types.mdat,4),i.set(this.cacheAudioTrack.data,8),this.cacheAudioTrack.duration=t-this.cacheAudioTrack.dts;let r=YA.moof(this.cacheAudioTrack,this.cacheAudioTrack.dts);this.cacheAudioTrack={};let s=new Uint8Array(r.byteLength+i.byteLength);s.set(r,0),s.set(i,r.byteLength),this.appendAudioBuffer(s.buffer)}else this.cacheAudioTrack={};this.cacheAudioTrack||(this.cacheAudioTrack={}),this.cacheAudioTrack.id=gs,this.cacheAudioTrack.sequenceNumber=++this.audioSequenceNumber,this.cacheAudioTrack.size=s,this.cacheAudioTrack.dts=t,this.cacheAudioTrack.cts=0,this.cacheAudioTrack.data=r,this.cacheAudioTrack.flags={isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0}}appendBuffer(e){if(this.player.isDestroyedOrClosed())return void this.player.debug.warn(this.TAG_NAME,"appendBuffer() player is destroyed");const{debug:t,events:{proxy:i}}=this.player;this.mediaSourceAddSourceBufferError?t.warn(this.TAG_NAME,"appendBuffer() this.mediaSourceAddSourceBufferError is true"):this.mediaSourceAppendBufferFull?t.warn(this.TAG_NAME,"appendBuffer() this.mediaSourceAppendBufferFull is true"):this.mediaSourceAppendBufferError?t.warn(this.TAG_NAME,"appendBuffer() this.mediaSourceAppendBufferError is true"):this.mediaSourceBufferError?t.warn(this.TAG_NAME,"appendBuffer() this.mediaSourceBufferError is true"):(this.pendingSegments.push(e),this.sourceBuffer&&(this.player.isPlayer()&&this._handleUpdatePlaybackRate(),this.player.isPlayback()&&this._handleUpdateBufferDelayTime(),this.player._opt.mseAutoCleanupSourceBuffer&&this._needCleanupSourceBuffer()&&this._doCleanUpSourceBuffer(),po(this.getSourceBufferUpdating())&&this.isStateOpen&&po(this._hasPendingRemoveRanges()))?this._doAppendSegments():this.isStateClosed?(this.mediaSourceBufferError=!0,this.player.emitError(It.mseSourceBufferError,"mediaSource is not attached to video or mediaSource is closed")):this.isStateEnded?(this.mediaSourceBufferError=!0,this.player.emitError(It.mseSourceBufferError,"mediaSource is end")):this._hasPendingRemoveRanges()&&t.log(this.TAG_NAME,`video has pending remove ranges and video length is ${this.pendingRemoveRanges.length}, audio length is ${this.pendingAudioRemoveRanges.length}`))}appendAudioBuffer(e){if(this.player.isDestroyedOrClosed())return void this.player.debug.warn(this.TAG_NAME,"appendAudioBuffer() player is destroyed");const{debug:t,events:{proxy:i}}=this.player;this.mediaSourceAddSourceBufferError?t.warn(this.TAG_NAME,"appendAudioBuffer() this.mediaSourceAddSourceBufferError is true"):this.mediaSourceAppendBufferFull?t.warn(this.TAG_NAME,"appendAudioBuffer() this.mediaSourceAppendBufferFull is true"):this.mediaSourceAppendBufferError?t.warn(this.TAG_NAME,"appendAudioBuffer() this.mediaSourceAppendBufferError is true"):this.mediaSourceBufferError?t.warn(this.TAG_NAME,"appendAudioBuffer() this.mediaSourceBufferError is true"):(this.pendingAudioSegments.push(e),this.audioSourceBuffer&&(this.player.isPlayer()&&this._handleUpdatePlaybackRate(),this.player.isPlayback()&&this._handleUpdateBufferDelayTime(),this.player._opt.mseAutoCleanupSourceBuffer&&this._needCleanupSourceBuffer()&&this._doCleanUpSourceBuffer(),po(this.getAudioSourceBufferUpdating())&&this.isStateOpen&&po(this._hasPendingRemoveRanges()))?this._doAppendSegments():this.isStateClosed?(this.mediaSourceBufferError=!0,this.player.emitError(It.mseSourceBufferError,"mediaSource is not attached to video or mediaSource is closed")):this.isStateEnded?(this.mediaSourceBufferError=!0,this.player.emitError(It.mseSourceBufferError,"mediaSource is end")):this._hasPendingRemoveRanges()&&t.log(this.TAG_NAME,`audio has pending remove ranges and video length is ${this.pendingRemoveRanges.length}, audio length is ${this.pendingAudioRemoveRanges.length}`))}getSourceBufferUpdating(){return this.sourceBuffer&&this.sourceBuffer.updating}getAudioSourceBufferUpdating(){return this.audioSourceBuffer&&this.audioSourceBuffer.updating}stop(){this.removeSourceBuffer(),this.endOfStream(),this.abortSourceBuffer()}checkSourceBufferDelay(){const e=this.$videoElement;let t=0,i=0;return e.buffered.length>0&&(i=e.buffered.end(e.buffered.length-1),t=i-e.currentTime),t<0&&(this.player.debug.warn(this.TAG_NAME,`checkMSESourceBufferDelay ${t} < 0, and buffered is ${i} ,currentTime is ${e.currentTime} , try to seek ${e.currentTime} to ${i}`),e.currentTime=i,t=0),t}checkSourceBufferStore(){const e=this.$videoElement;let t=0;return e.buffered.length>0&&(t=e.currentTime-e.buffered.start(0)),t}getDecodeDiffTimes(){return this.decodeDiffTimestamp}removeBuffer(e,t){const i=Va();if(this.player.debug.log(this.TAG_NAME,`removeBuffer() start is ${e} and end is ${t} and _isMacOsFirefox is ${i}`),this.isStateOpen&&po(i)){if(po(this.getSourceBufferUpdating()))try{this.sourceBuffer.remove(e,t)}catch(e){this.player.debug.warn(this.TAG_NAME,"removeBuffer() sourceBuffer error",e)}if(po(this.getAudioSourceBufferUpdating()))try{this.audioSourceBuffer.remove(e,t)}catch(e){this.player.debug.warn(this.TAG_NAME,"removeBuffer() audioSourceBuffer error",e)}}}clearUpAllSourceBuffer(){if(this.sourceBuffer){const e=this.sourceBuffer.buffered;for(let t=0;t<e.length;t++){let i=e.start(t),r=e.end(t);this.pendingRemoveRanges.push({start:i,end:r})}po(this.getSourceBufferUpdating())&&this._doRemoveRanges()}if(this.audioSourceBuffer){const e=this.audioSourceBuffer.buffered;for(let t=0;t<e.length;t++){let i=e.start(t),r=e.end(t);this.pendingAudioRemoveRanges.push({start:i,end:r})}po(this.getAudioSourceBufferUpdating())&&this._doRemoveRanges()}}endOfStream(){if(this.isStateOpen&&this.$videoElement&&this.$videoElement.readyState>=1)try{this.player.debug.log(this.TAG_NAME,"endOfStream()"),this.mediaSource.endOfStream(),this.player.emit(yt.liveEnd,0)}catch(e){this.player.debug.warn(this.TAG_NAME,"endOfStream() error",e)}}abortSourceBuffer(){if(this.isStateOpen){if(this.sourceBuffer)try{this.player.debug.log(this.TAG_NAME,"abortSourceBuffer() abort sourceBuffer"),this.sourceBuffer.abort()}catch(e){}if(this.audioSourceBuffer)try{this.player.debug.log(this.TAG_NAME,"abortSourceBuffer() abort audioSourceBuffer"),this.audioSourceBuffer.abort()}catch(e){}}this.sourceBuffer=null,this.audioSourceBuffer=null}removeSourceBuffer(){if(!this.isStateClosed&&this.mediaSource){if(this.sourceBuffer)try{this.player.debug.log(this.TAG_NAME,"removeSourceBuffer() sourceBuffer"),this.mediaSource.removeSourceBuffer(this.sourceBuffer)}catch(e){this.player.debug.warn(this.TAG_NAME,"removeSourceBuffer() sourceBuffer error",e)}if(this.audioSourceBuffer)try{this.player.debug.log(this.TAG_NAME,"removeSourceBuffer() audioSourceBuffer"),this.mediaSource.removeSourceBuffer(this.audioSourceBuffer)}catch(e){this.player.debug.warn(this.TAG_NAME,"removeSourceBuffer() audioSourceBuffer error",e)}}}_hasPendingSegments(){return this.pendingSegments.length>0||this.pendingAudioSegments.length>0}getPendingSegmentsLength(){return this.pendingSegments.length}_handleUpdatePlaybackRate(){if(!this.$videoElement)return;const e=this.$videoElement;let t=(this.player._opt.videoBuffer+this.player._opt.videoBufferDelay)/1e3;const i=e.buffered;i.length&&i.start(0);const r=i.length?i.end(i.length-1):0;let s=e.currentTime;const a=r-s,o=Math.max(5,t+3);if(this.player.updateStats({mseVideoBufferDelayTime:a}),a>o)this.player.debug.log(this.TAG_NAME,`handleUpdatePlaybackRate and buffered is ${r} and current is ${s} , delay buffer is more than ${o} is ${a} and new time is ${r}`),e.currentTime=r,s=e.currentTime;else if(a<0){if(this.player.debug.warn(this.TAG_NAME,`handleUpdatePlaybackRate and delay buffer is ${r} - current is ${s} = ${a} < 0 and check video is paused : ${e.paused} `),0===r)return void this.player.emit(It.mediaSourceBufferedIsZeroError,"video.buffered is empty");e.paused&&e.play()}const n=this._getPlaybackRate(r-s);e.playbackRate!==n&&(this.player.debug.log(this.TAG_NAME,`handleUpdatePlaybackRate and buffered is ${r} and current time is ${s} and delay is ${r-s} set playbackRate is ${n} `),e.playbackRate=n)}_handleUpdateBufferDelayTime(){const e=this.getVideoBufferDelayTime();this.player.updateStats({mseVideoBufferDelayTime:e})}_doAppendSegments(){if(this.isStateClosed||this.isStateEnded)this.player.debug.log(this.TAG_NAME,"_doAppendSegments() mediaSource is closed or ended and return");else if(null!==this.sourceBuffer){if(this.needInitAudio()&&null===this.audioSourceBuffer)return this.player.debug.log(this.TAG_NAME,"_doAppendSegments() audioSourceBuffer is null and need init audio source buffer"),void(null===this.audioSourceBufferCheckTimeout&&(this.audioSourceBufferCheckTimeout=setTimeout((()=>{this._clearAudioSourceBufferCheckTimeout(),this.player.emit(It.mediaSourceAudioInitTimeout)}),1e3)));if(po(this.getSourceBufferUpdating())&&this.pendingSegments.length>0){const e=this.pendingSegments.shift();try{this.sourceBuffer.appendBuffer(e)}catch(e){this.player.debug.error(this.TAG_NAME,"this.sourceBuffer.appendBuffer()",e.code,e),22===e.code?(this.stop(),this.mediaSourceAppendBufferFull=!0,this.player.emitError(It.mediaSourceFull)):11===e.code?(this.stop(),this.mediaSourceAppendBufferError=!0,this.player.emitError(It.mediaSourceAppendBufferError)):(this.stop(),this.mediaSourceBufferError=!0,this.player.emitError(yt.mseSourceBufferError,e))}}if(po(this.getAudioSourceBufferUpdating())&&this.pendingAudioSegments.length>0){const e=this.pendingAudioSegments.shift();try{this.audioSourceBuffer.appendBuffer(e)}catch(e){this.player.debug.error(this.TAG_NAME,"this.audioSourceBuffer.appendBuffer()",e.code,e),22===e.code?(this.stop(),this.mediaSourceAppendBufferFull=!0,this.player.emitError(It.mediaSourceFull)):11===e.code?(this.stop(),this.mediaSourceAppendBufferError=!0,this.player.emitError(It.mediaSourceAppendBufferError)):(this.stop(),this.mediaSourceBufferError=!0,this.player.emitError(yt.mseSourceBufferError,e))}}}else this.player.debug.log(this.TAG_NAME,"_doAppendSegments() sourceBuffer is null and wait init and return")}_doCleanUpSourceBuffer(){if(!this.$videoElement)return;const e=this.$videoElement.currentTime;if(this.sourceBuffer){const t=this.sourceBuffer.buffered;let i=!1;for(let r=0;r<t.length;r++){let s=t.start(r),a=t.end(r);if(s<=e&&e<a+3){if(e-s>=this.player._opt.mseAutoCleanupMaxBackwardDuration){i=!0;let t=e-this.player._opt.mseAutoCleanupMinBackwardDuration;this.pendingRemoveRanges.push({start:s,end:t})}}else a<e&&(i=!0,this.pendingRemoveRanges.push({start:s,end:a}))}i&&po(this.getSourceBufferUpdating())&&this._doRemoveRanges()}if(this.audioSourceBuffer){const t=this.audioSourceBuffer.buffered;let i=!1;for(let r=0;r<t.length;r++){let s=t.start(r),a=t.end(r);if(s<=e&&e<a+3){if(e-s>=this.player._opt.mseAutoCleanupMaxBackwardDuration){i=!0;let t=e-this.player._opt.mseAutoCleanupMinBackwardDuration;this.pendingAudioRemoveRanges.push({start:s,end:t})}}else a<e&&(i=!0,this.pendingAudioRemoveRanges.push({start:s,end:a}))}i&&po(this.getAudioSourceBufferUpdating())&&this._doRemoveRanges()}}_hasPendingRemoveRanges(){return this.pendingRemoveRanges.length>0||this.pendingAudioRemoveRanges.length>0}_doRemoveRanges(){if(this.sourceBuffer&&po(this.getSourceBufferUpdating())){let e=this.pendingRemoveRanges;for(;e.length&&po(this.getSourceBufferUpdating());){let t=e.shift();try{this.sourceBuffer.remove(t.start,t.end)}catch(e){this.player.debug.warn(this.TAG_NAME,"_doRemoveRanges() sourceBuffer error",e)}}}if(this.audioSourceBuffer&&po(this.getAudioSourceBufferUpdating())){let e=this.pendingAudioRemoveRanges;for(;e.length&&po(this.getAudioSourceBufferUpdating());){let t=e.shift();try{this.audioSourceBuffer.remove(t.start,t.end)}catch(e){this.player.debug.warn(this.TAG_NAME,"_doRemoveRanges() audioSourceBuffer error",e)}}}}getDecodePlaybackRate(){let e=0;const t=this.$videoElement;return t&&(e=t.playbackRate),e}_getPlaybackRate(e){const t=this.$videoElement;let i=this.player._opt.videoBufferDelay+this.player._opt.videoBuffer;const r=Math.max(i,1e3),s=r/2;return e*=1e3,1===t.playbackRate?e>r?1.2:1:e<=s?1:t.playbackRate}_needCleanupSourceBuffer(){if(po(this.player._opt.mseAutoCleanupSourceBuffer)||!this.$videoElement)return!1;const e=this.$videoElement,t=e.buffered,i=e.currentTime;return t.length>=1&&i-t.start(0)>=this.player._opt.mseAutoCleanupMaxBackwardDuration}getVideoCurrentTime(){let e=0;return this.$videoElement&&(e=this.$videoElement.currentTime),e}getVideoBufferLastTime(){const e=this.$videoElement;let t=0;if(e){const i=e.buffered;i.length&&i.start(0);t=i.length?i.end(i.length-1):0}return t}getVideoBufferDelayTime(){const e=this.$videoElement;const t=this.getVideoBufferLastTime()-e.currentTime;return t>0?t:0}_clearAudioSourceBufferCheckTimeout(){this.audioSourceBufferCheckTimeout&&(clearTimeout(this.audioSourceBufferCheckTimeout),this.audioSourceBufferCheckTimeout=null)}_clearAudioNoDataCheckTimeout(){this.audioSourceNoDataCheckTimeout&&(clearTimeout(this.audioSourceNoDataCheckTimeout),this.audioSourceNoDataCheckTimeout=null)}}const PA=()=>"wakeLock"in navigator&&-1===window.navigator.userAgent.indexOf("Samsung")&&po($a());class jA{constructor(e){this.player=e,this.enabled=!1,PA()?(this.player.debug.log("NoSleep","Native Wake Lock API supported."),this._wakeLock=null,this.handleVisibilityChange=()=>{null!==this._wakeLock&&"visible"===document.visibilityState&&this.enable()},document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("fullscreenchange",this.handleVisibilityChange)):(this.player.debug.log("NoSleep","Native Wake Lock API not supported. so use video element."),this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm","data:video/webm;base64,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ggOtgPj//qOHggPBgPj//qOHggPVgPj//qOHggPpgPj//qOegQPvANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCA/2A+P/+o4eCBBGA+P/+o4eCBCWA+P/+o4eCBDmA+P/+o4eCBE2A+P/+o56BBFMA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IEiID4//6jh4IEnID4//6jh4IEsID4//6jnoEEtwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggTEgPj//qOHggTYgPj//qOHggTsgPj//qOHggUAgPj//qOHggUUgPj//qOegQUbANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCBSiA+P/+o4eCBTyA+P/+o4eCBVCA+P/+o4eCBWSA+P/+o4eCBXiA+P/+o56BBX8A0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IFjID4//6jh4IFoID4//6jh4IFtID4//6jh4IFyID4//6jh4IF3ID4//6jnoEF4wDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggXwgPj//qOHggYEgPj//qOHggYYgPj//qOHggYsgPj//qOHggZAgPj//qOegQZHANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCBlSA+P/+o4eCBmiA+P/+o4eCBnyA+P/+o4eCBpCA+P/+o4eCBqSA+P/+o56BBqsA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IGuID4//6jh4IGzID4//6jh4IG4ID4//6jh4IG9ID4//6jh4IHCID4//6jnoEHDwDRAgAFEBAUYABhYL/QACIAEM1+tck+ccwAAKOHggccgPj//qOHggcwgPj//qOHggdEgPj//qOHggdYgPj//qOHggdsgPj//qOegQdzANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCB4CA+P/+o4eCB5SA+P/+o4eCB6iA+P/+o4eCB7yA+P/+o4eCB9CA+P/+o56BB9cA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IH5ID4//6jh4IH+ID4//6jh4IIDID4//6jh4IIIID4//6jh4IINID4//6jnoEIOwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHgghIgPj//qOHgghcgPj//qOHgghwgPj//qOHggiEgPj//qOegQifANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCCMCA+P/+o4eCCNSA+P/+o4eCCOiA+P/+o4eCCPyA+P/+o56BCQMA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IJEID4//6jh4IJJID4//6jh4IJOID4//6jh4IJTID4//6jh4IJYID4//6jnoEJZwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggl0gPj//qOHggmIgPj//qOHggmcgPj//qOHggmwgPj//qOHggnEgPj//qOegQnLANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCCdiA+P/+o4eCCeyA+P/+o4eCCgCA+P/+o4eCChSA+P/+o4eCCiiA+P/+o56BCi8A0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IKPID4//6jh4IKUID4//6jh4IKZID4//6jh4IKeID4//6jh4IKjID4//6jnoEKkwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggqggPj//qOHggq0gPj//qOHggrIgPj//qOHggrcgPj//qOHggrwgPj//qOegQr3ANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCCwSA+P/+o4eCCxiA+P/+o4eCCyyA+P/+o4eCC0CA+P/+o4eCC1SA+P/+o56BC1sA0QIABRAQFGAAYWC/0AAiABDNfrXJPnHMAACjh4ILaID4//6jh4ILfID4//6jh4ILkID4//6jh4ILpID4//6jh4ILuID4//6jnoELvwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggvMgPj//qOHggvggPj//qOHggv0gPj//qOHggwIgPj//qOHggwcgPj//qOegQwjANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCDDCA+P/+o4eCDESA+P/+o4eCDFiA+P/+o4eCDGyA+P/+o4eCDICA+P/+o56BDIcA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IMlID4//6jh4IMqID4//6jh4IMvID4//6jh4IM0ID4//6jnoEM6wDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHgg0MgPj//qOHgg0ggPj//qOHgg00gPj//qOHgg1IgPj//qOegQ1PANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCDVyA+P/+o4eCDXCA+P/+o4eCDYSA+P/+o4eCDZiA+P/+o4eCDayA+P/+o56BDbMA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4INwID4//6jh4IN1ID4//6jh4IN6ID4//6jh4IN/ID4//6jh4IOEID4//6jnoEOFwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHgg4kgPj//qOHgg44gPj//qOHgg5MgPj//qOHgg5ggPj//qOHgg50gPj//qOegQ57ANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCDoiA+P/+o4eCDpyA+P/+o4eCDrCA+P/+o4eCDsSA+P/+o4eCDtiA+P/+o56BDt8A0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IO7ID4//6jh4IPAID4//6jh4IPFID4//6jh4IPKID4//6jh4IPPID4//6jnoEPQwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHgg9QgPj//qOHgg9kgPj//qOHgg94gPj//qOHgg+MgPj//qOHgg+ggPj//qOegQ+nANECAAUQEBRgAGFgv9AAIgAQzX61yT5xzAAAo4eCD7SA+P/+o4eCD8iA+P/+o4eCD9yA+P/+o4eCD/CA+P/+o4eCEASA+P/+o56BEAsA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IQGID4//6jh4IQLID4//6jh4IQQID4//6jh4IQVID4//6jh4IQaID4//6jnoEQbwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHghB8gPj//qOHghCQgPj//qOHghCkgPj//qOHghC4gPj//qOHghDMgPj//qOegRDTANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCEOCA+P/+o4eCEPSA+P/+o4eCEQiA+P/+o56BETcA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IRQ4D4//6jh4IRV4D4//6jh4IRa4D4//6jh4IRf4D4//6jh4IRk4D4//6jnoERmwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHghGngPj//qOHghG7gPj//qOHghHPgPj//qOHghHjgPj//qOHghH3gPj//qOegRH/ANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCEguA+P/+o4eCEh+A+P/+o4eCEjOA+P/+o4eCEkeA+P/+o4eCEluA+P/+o56BEmMA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4ISb4D4//6jh4ISg4D4//6jh4ISl4D4//6jh4ISq4D4//6jh4ISv4D4//6jnoESxwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHghLTgPj//qOHghLngPj//qOHghL7gPj//qOHghMPgPj//qOHghMjgPj//qOegRMrANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCEzeA+P/+o4eCE0uA+P/+o4eCE1+A+P/+o4eCE3OA+P/+oAEAAAAAAAAPoYeCE4cA+P/+daKDB/KBHFO7a5G7j7OBB7eK94EB8YIDX/CBDA=="),this._addSourceToVideo(this.noSleepVideo,"mp4","data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACORtZGF03gIATGF2YzU4LjM1LjEwMAACMEAOAAACcQYF//9t3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2MSByMzAyNyA0MTIxMjc3IC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAyMCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTAgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTcgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0wIHdlaWdodHA9MCBrZXlpbnQ9MjUwIGtleWludF9taW49MTAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IGlwX3JhdGlvPTEuNDAgYXE9MToxLjAwAIAAAADvZYiED/JigADD7JycnJycnJycnJycnJycnJycnJ11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111114BGCAHARggBwEYIAcBGCAHARggBwAAAAdBmjgf4BLYARggBwEYIAcBGCAHARggBwAAAAdBmlQH+AS2ARggBwEYIAcBGCAHARggBwAAAAdBmmA/wCWwARggBwEYIAcBGCAHARggBwEYIAcAAAAHQZqAP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZqgP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZrAP8AlsAEYIAcBGCAHARggBwEYIAcBGCAHAAAAB0Ga4D/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GbAD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GbID/AJbABGCAHARggBwEYIAcBGCAHARggBwAAAAdBm0A/wCWwARggBwEYIAcBGCAHAAAAB0GbYD/AJbABGCAHARggBwEYIAcAAAAHQZuAP8AlsAEYIAcBGCAHARggBwEYIAcBGCAHAAAAB0GboD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GbwD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0Gb4D/AJbABGCAHARggBwEYIAcBGCAHARggBwAAAAdBmgA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmiA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmkA/wCWwARggBwEYIAcBGCAHARggBwEYIAcAAAAHQZpgP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZqAP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZqgP8AlsAEYIAcBGCAHARggBwAAAAdBmsA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmuA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmwA/wCWwARggBwEYIAcBGCAHARggBwEYIAcAAAAHQZsgP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZtAP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZtgP8AlsAEYIAcBGCAHARggBwEYIAcBGCAHAAAAB0GbgD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GboD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GbwD/AJbABGCAHARggBwEYIAcBGCAHARggBwAAAAdB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"),Object.assign(this.noSleepVideo.style,{position:"absolute",left:"-100%",top:"-100%"}),document.querySelector("body").append(this.noSleepVideo),this.handleNoSleepVideoTimeUpdate=()=>{this.noSleepVideo&&this.noSleepVideo.currentTime>4&&(this.noSleepVideo.currentTime=1)},this.noSleepVideo.addEventListener("timeupdate",this.handleNoSleepVideoTimeUpdate))}destroy(){if(this._wakeLock&&(this._wakeLock.release(),this._wakeLock=null),this.noSleepVideo){this.handleNoSleepVideoTimeUpdate&&this.noSleepVideo.removeEventListener("timeupdate",this.handleNoSleepVideoTimeUpdate);try{this.noSleepVideo.parentNode&&this.noSleepVideo.parentNode.removeChild(this.noSleepVideo)}catch(e){this.player.debug.warn("NoSleep","Failed to remove noSleepVideo element.")}this.noSleepVideo=null}this.handleVisibilityChange&&(document.removeEventListener("visibilitychange",this.handleVisibilityChange),document.removeEventListener("fullscreenchange",this.handleVisibilityChange))}_addSourceToVideo(e,t,i){var r=document.createElement("source");r.src=i,r.type=`video/${t}`,e.appendChild(r)}get isEnabled(){return this.enabled}enable(){const e=this.player.debug;if(PA())return navigator.wakeLock.request("screen").then((t=>{this._wakeLock=t,this.enabled=!0,e.log("wakeLock","Wake Lock active."),this._wakeLock.addEventListener("release",(()=>{e.log("wakeLock","Wake Lock released.")}))})).catch((t=>{throw this.enabled=!1,e.warn("wakeLock",`${t.name}, ${t.message}`),t}));return this.noSleepVideo.play().then((t=>(e.log("wakeLock","noSleepVideo Wake Lock active."),this.enabled=!0,t))).catch((t=>{throw e.warn("wakeLock",`noSleepVideo ${t.name}, ${t.message}`),this.enabled=!1,t}))}disable(){PA()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):this.noSleepVideo&&this.noSleepVideo.pause(),this.enabled=!1,this.player.debug.log("wakeLock","Disabling wake lock.")}}var zA,WA=xs((function(e,t){!function t(i){e.exports=function(){function e(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,r=Array(t);i<t;i++)r[i]=e[i];return r}function r(e,t,i){if(c())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,t);var s=new(e.bind.apply(e,r));return i&&g(s,i.prototype),s}function s(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,y(r.key),r)}}function a(e,t,i){return t&&s(e.prototype,t),i&&s(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e}function o(e,t){var i="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(i)return(i=i.call(e)).next.bind(i);if(Array.isArray(e)||(i=E(e))||t){i&&(e=i);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function n(e,t,i){return(t=y(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var r in i)({}).hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},l.apply(null,arguments)}function h(e){return h=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},h(e)}function A(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,g(e,t)}function d(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}function c(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(c=function(){return!!e})()}function u(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function p(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?u(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):u(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function g(e,t){return g=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},g(e,t)}function m(e,t){if("object"!=typeof e||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var r=i.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function y(e){var t=m(e,"string");return"symbol"==typeof t?t:t+""}function E(t,i){if(t){if("string"==typeof t)return e(t,i);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?e(t,i):void 0}}function C(e){var t="function"==typeof Map?new Map:void 0;return C=function(e){if(null===e||!d(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return r(e,arguments,h(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),g(i,e)},C(e)}function f(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var I={exports:{}};!function(e,t){var i,r,s,a,o;i=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,r=/^(?=([^\/?#]*))\1([^]*)$/,s=/(?:\/|^)\.(?=\/)/g,a=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,o={buildAbsoluteURL:function(e,t,i){if(i=i||{},e=e.trim(),!(t=t.trim())){if(!i.alwaysNormalize)return e;var s=o.parseURL(e);if(!s)throw new Error("Error trying to parse base URL.");return s.path=o.normalizePath(s.path),o.buildURLFromParts(s)}var a=o.parseURL(t);if(!a)throw new Error("Error trying to parse relative URL.");if(a.scheme)return i.alwaysNormalize?(a.path=o.normalizePath(a.path),o.buildURLFromParts(a)):t;var n=o.parseURL(e);if(!n)throw new Error("Error trying to parse base URL.");if(!n.netLoc&&n.path&&"/"!==n.path[0]){var l=r.exec(n.path);n.netLoc=l[1],n.path=l[2]}n.netLoc&&!n.path&&(n.path="/");var h={scheme:n.scheme,netLoc:a.netLoc,path:null,params:a.params,query:a.query,fragment:a.fragment};if(!a.netLoc&&(h.netLoc=n.netLoc,"/"!==a.path[0]))if(a.path){var A=n.path,d=A.substring(0,A.lastIndexOf("/")+1)+a.path;h.path=o.normalizePath(d)}else h.path=n.path,a.params||(h.params=n.params,a.query||(h.query=n.query));return null===h.path&&(h.path=i.alwaysNormalize?o.normalizePath(a.path):a.path),o.buildURLFromParts(h)},parseURL:function(e){var t=i.exec(e);return t?{scheme:t[1]||"",netLoc:t[2]||"",path:t[3]||"",params:t[4]||"",query:t[5]||"",fragment:t[6]||""}:null},normalizePath:function(e){for(e=e.split("").reverse().join("").replace(s,"");e.length!==(e=e.replace(a,"")).length;);return e.split("").reverse().join("")},buildURLFromParts:function(e){return e.scheme+e.netLoc+e.path+e.params+e.query+e.fragment}},e.exports=o}(I);var w=I.exports,S=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)},M=Number.isSafeInteger||function(e){return"number"==typeof e&&Math.abs(e)<=v},v=Number.MAX_SAFE_INTEGER||9007199254740991,k=function(e){return e.MEDIA_ATTACHING="hlsMediaAttaching",e.MEDIA_ATTACHED="hlsMediaAttached",e.MEDIA_DETACHING="hlsMediaDetaching",e.MEDIA_DETACHED="hlsMediaDetached",e.MEDIA_ENDED="hlsMediaEnded",e.BUFFER_RESET="hlsBufferReset",e.BUFFER_CODECS="hlsBufferCodecs",e.BUFFER_CREATED="hlsBufferCreated",e.BUFFER_APPENDING="hlsBufferAppending",e.BUFFER_APPENDED="hlsBufferAppended",e.BUFFER_EOS="hlsBufferEos",e.BUFFER_FLUSHING="hlsBufferFlushing",e.BUFFER_FLUSHED="hlsBufferFlushed",e.MANIFEST_LOADING="hlsManifestLoading",e.MANIFEST_LOADED="hlsManifestLoaded",e.MANIFEST_PARSED="hlsManifestParsed",e.LEVEL_SWITCHING="hlsLevelSwitching",e.LEVEL_SWITCHED="hlsLevelSwitched",e.LEVEL_LOADING="hlsLevelLoading",e.LEVEL_LOADED="hlsLevelLoaded",e.LEVEL_UPDATED="hlsLevelUpdated",e.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",e.LEVELS_UPDATED="hlsLevelsUpdated",e.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",e.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",e.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",e.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",e.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",e.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",e.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",e.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",e.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",e.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",e.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",e.CUES_PARSED="hlsCuesParsed",e.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",e.INIT_PTS_FOUND="hlsInitPtsFound",e.FRAG_LOADING="hlsFragLoading",e.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",e.FRAG_LOADED="hlsFragLoaded",e.FRAG_DECRYPTED="hlsFragDecrypted",e.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",e.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",e.FRAG_PARSING_METADATA="hlsFragParsingMetadata",e.FRAG_PARSED="hlsFragParsed",e.FRAG_BUFFERED="hlsFragBuffered",e.FRAG_CHANGED="hlsFragChanged",e.FPS_DROP="hlsFpsDrop",e.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",e.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",e.ERROR="hlsError",e.DESTROYING="hlsDestroying",e.KEY_LOADING="hlsKeyLoading",e.KEY_LOADED="hlsKeyLoaded",e.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",e.BACK_BUFFER_REACHED="hlsBackBufferReached",e.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",e}({}),B=function(e){return e.NETWORK_ERROR="networkError",e.MEDIA_ERROR="mediaError",e.KEY_SYSTEM_ERROR="keySystemError",e.MUX_ERROR="muxError",e.OTHER_ERROR="otherError",e}({}),D=function(e){return e.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",e.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",e.KEY_SYSTEM_NO_SESSION="keySystemNoSession",e.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",e.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",e.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",e.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",e.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",e.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",e.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",e.MANIFEST_LOAD_ERROR="manifestLoadError",e.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",e.MANIFEST_PARSING_ERROR="manifestParsingError",e.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",e.LEVEL_EMPTY_ERROR="levelEmptyError",e.LEVEL_LOAD_ERROR="levelLoadError",e.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",e.LEVEL_PARSING_ERROR="levelParsingError",e.LEVEL_SWITCH_ERROR="levelSwitchError",e.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",e.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",e.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",e.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",e.FRAG_LOAD_ERROR="fragLoadError",e.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",e.FRAG_DECRYPT_ERROR="fragDecryptError",e.FRAG_PARSING_ERROR="fragParsingError",e.FRAG_GAP="fragGap",e.REMUX_ALLOC_ERROR="remuxAllocError",e.KEY_LOAD_ERROR="keyLoadError",e.KEY_LOAD_TIMEOUT="keyLoadTimeOut",e.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",e.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",e.BUFFER_APPEND_ERROR="bufferAppendError",e.BUFFER_APPENDING_ERROR="bufferAppendingError",e.BUFFER_STALLED_ERROR="bufferStalledError",e.BUFFER_FULL_ERROR="bufferFullError",e.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",e.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",e.INTERNAL_EXCEPTION="internalException",e.INTERNAL_ABORTED="aborted",e.ATTACH_MEDIA_ERROR="attachMediaError",e.UNKNOWN="unknown",e}({}),b=function(e,t){this.trace=void 0,this.debug=void 0,this.log=void 0,this.warn=void 0,this.info=void 0,this.error=void 0;var i="["+e+"]:";this.trace=Q,this.debug=t.debug.bind(null,i),this.log=t.log.bind(null,i),this.warn=t.warn.bind(null,i),this.info=t.info.bind(null,i),this.error=t.error.bind(null,i)},Q=function(){},R={trace:Q,debug:Q,log:Q,warn:Q,info:Q,error:Q};function T(){return l({},R)}function L(e,t){var i=self.console[e];return i?i.bind(self.console,"["+e+"] >"):Q}function K(e,t,i){return t[e]?t[e].bind(t):L(e)}var q=T();function x(e,t,i){var r=T();if("object"==typeof console&&!0===e||"object"==typeof e){var s=["debug","log","info","warn","error"];s.forEach((function(t){r[t]=K(t,e)}));try{r.log('Debug logs enabled for "'+t+'" in hls.js version '+void 0)}catch(e){return T()}s.forEach((function(t){q[t]=K(t,e)}))}else l(q,r);return r}var F=q,U=/\{\$([a-zA-Z0-9-_]+)\}/g;function G(e){return U.test(e)}function O(e,t){if(null!==e.variableList||e.hasVariableRefs){var i=e.variableList;return t.replace(U,(function(t){var r=t.substring(2,t.length-1),s=null==i?void 0:i[r];return void 0===s?(e.playlistParsingError||(e.playlistParsingError=new Error('Missing preceding EXT-X-DEFINE tag for Variable Reference: "'+r+'"')),t):s}))}return t}function J(e,t,i){var r,s,a=e.variableList;if(a||(e.variableList=a={}),"QUERYPARAM"in t){r=t.QUERYPARAM;try{var o=new self.URL(i).searchParams;if(!o.has(r))throw new Error('"'+r+'" does not match any query parameter in URI: "'+i+'"');s=o.get(r)}catch(t){e.playlistParsingError||(e.playlistParsingError=new Error("EXT-X-DEFINE QUERYPARAM: "+t.message))}}else r=t.NAME,s=t.VALUE;r in a?e.playlistParsingError||(e.playlistParsingError=new Error('EXT-X-DEFINE duplicate Variable Name declarations: "'+r+'"')):a[r]=s||""}function Y(e,t,i){var r=t.IMPORT;if(i&&r in i){var s=e.variableList;s||(e.variableList=s={}),s[r]=i[r]}else e.playlistParsingError||(e.playlistParsingError=new Error('EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "'+r+'"'))}var N=/^(\d+)x(\d+)$/,P=/(.+?)=(".*?"|.*?)(?:,|$)/g,j=function(){function e(t,i){"string"==typeof t&&(t=e.parseAttrList(t,i)),l(this,t)}var t=e.prototype;return t.decimalInteger=function(e){var t=parseInt(this[e],10);return t>Number.MAX_SAFE_INTEGER?1/0:t},t.hexadecimalInteger=function(e){if(this[e]){var t=(this[e]||"0x").slice(2);t=(1&t.length?"0":"")+t;for(var i=new Uint8Array(t.length/2),r=0;r<t.length/2;r++)i[r]=parseInt(t.slice(2*r,2*r+2),16);return i}return null},t.hexadecimalIntegerAsNumber=function(e){var t=parseInt(this[e],16);return t>Number.MAX_SAFE_INTEGER?1/0:t},t.decimalFloatingPoint=function(e){return parseFloat(this[e])},t.optionalFloat=function(e,t){var i=this[e];return i?parseFloat(i):t},t.enumeratedString=function(e){return this[e]},t.enumeratedStringList=function(e,t){var i=this[e];return(i?i.split(/[ ,]+/):[]).reduce((function(e,t){return e[t.toLowerCase()]=!0,e}),t)},t.bool=function(e){return"YES"===this[e]},t.decimalResolution=function(e){var t=N.exec(this[e]);if(null!==t)return{width:parseInt(t[1],10),height:parseInt(t[2],10)}},e.parseAttrList=function(e,t){var i,r={},s='"';for(P.lastIndex=0;null!==(i=P.exec(e));){var a=i[1].trim(),o=i[2],n=0===o.indexOf(s)&&o.lastIndexOf(s)===o.length-1,l=!1;if(n)o=o.slice(1,-1);else switch(a){case"IV":case"SCTE35-CMD":case"SCTE35-IN":case"SCTE35-OUT":l=!0}if(t&&(n||l))o=O(t,o);else if(!l&&!n)switch(a){case"CLOSED-CAPTIONS":if("NONE"===o)break;case"ALLOWED-CPC":case"CLASS":case"ASSOC-LANGUAGE":case"AUDIO":case"BYTERANGE":case"CHANNELS":case"CHARACTERISTICS":case"CODECS":case"DATA-ID":case"END-DATE":case"GROUP-ID":case"ID":case"IMPORT":case"INSTREAM-ID":case"KEYFORMAT":case"KEYFORMATVERSIONS":case"LANGUAGE":case"NAME":case"PATHWAY-ID":case"QUERYPARAM":case"RECENTLY-REMOVED-DATERANGES":case"SERVER-URI":case"STABLE-RENDITION-ID":case"STABLE-VARIANT-ID":case"START-DATE":case"SUBTITLES":case"SUPPLEMENTAL-CODECS":case"URI":case"VALUE":case"VIDEO":case"X-ASSET-LIST":case"X-ASSET-URI":F.warn(e+": attribute "+a+" is missing quotes")}r[a]=o}return r},a(e,[{key:"clientAttrs",get:function(){return Object.keys(this).filter((function(e){return"X-"===e.substring(0,2)}))}}])}(),z="com.apple.hls.interstitial";function W(e){return"ID"!==e&&"CLASS"!==e&&"CUE"!==e&&"START-DATE"!==e&&"DURATION"!==e&&"END-DATE"!==e&&"END-ON-NEXT"!==e}function Z(e){return"SCTE35-OUT"===e||"SCTE35-IN"===e||"SCTE35-CMD"===e}var V=function(){function e(e,t,i){var r;if(void 0===i&&(i=0),this.attr=void 0,this.tagAnchor=void 0,this.tagOrder=void 0,this._startDate=void 0,this._endDate=void 0,this._cue=void 0,this._badValueForSameId=void 0,this.tagAnchor=(null==t?void 0:t.tagAnchor)||null,this.tagOrder=null!=(r=null==t?void 0:t.tagOrder)?r:i,t){var s=t.attr;for(var a in s)if(Object.prototype.hasOwnProperty.call(e,a)&&e[a]!==s[a]){F.warn('DATERANGE tag attribute: "'+a+'" does not match for tags with ID: "'+e.ID+'"'),this._badValueForSameId=a;break}e=l(new j({}),s,e)}if(this.attr=e,this._startDate=t?t.startDate:new Date(e["START-DATE"]),"END-DATE"in this.attr){var o=(null==t?void 0:t.endDate)||new Date(this.attr["END-DATE"]);S(o.getTime())&&(this._endDate=o)}}return a(e,[{key:"id",get:function(){return this.attr.ID}},{key:"class",get:function(){return this.attr.CLASS}},{key:"cue",get:function(){var e=this._cue;return void 0===e?this._cue=this.attr.enumeratedStringList(this.attr.CUE?"CUE":"X-CUE",{pre:!1,post:!1,once:!1}):e}},{key:"startTime",get:function(){var e=this.tagAnchor;return null===e||null===e.programDateTime?(F.warn('Expected tagAnchor Fragment with PDT set for DateRange "'+this.id+'": '+e),NaN):e.start+(this.startDate.getTime()-e.programDateTime)/1e3}},{key:"startDate",get:function(){return this._startDate}},{key:"endDate",get:function(){if(this._endDate)return this._endDate;var e=this.duration;return null!==e?new Date(this._startDate.getTime()+1e3*e):null}},{key:"duration",get:function(){if("DURATION"in this.attr){var e=this.attr.decimalFloatingPoint("DURATION");if(S(e))return e}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1e3;return null}},{key:"plannedDuration",get:function(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}},{key:"endOnNext",get:function(){return this.attr.bool("END-ON-NEXT")}},{key:"isInterstitial",get:function(){return this.class===z}},{key:"isValid",get:function(){return!!this.id&&!this._badValueForSameId&&S(this.startDate.getTime())&&(null===this.duration||this.duration>=0)&&(!this.endOnNext||!!this.class)&&(!this.attr.CUE||!this.cue.pre&&!this.cue.post||this.cue.pre!==this.cue.post)&&(!this.isInterstitial||"X-ASSET-URI"in this.attr||"X-ASSET-LIST"in this.attr)}}])}(),H=function(){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}},X={AUDIO:"audio",VIDEO:"video",AUDIOVIDEO:"audiovideo"},_=function(){function e(e){var t;this._byteRange=null,this._url=null,this.baseurl=void 0,this.relurl=void 0,this.elementaryStreams=((t={})[X.AUDIO]=null,t[X.VIDEO]=null,t[X.AUDIOVIDEO]=null,t),this.baseurl=e}return e.prototype.setByteRange=function(e,t){var i,r=e.split("@",2);i=1===r.length?(null==t?void 0:t.byteRangeEndOffset)||0:parseInt(r[1]),this._byteRange=[i,parseInt(r[0])+i]},a(e,[{key:"byteRange",get:function(){return this._byteRange?this._byteRange:[]}},{key:"byteRangeStartOffset",get:function(){return this.byteRange[0]}},{key:"byteRangeEndOffset",get:function(){return this.byteRange[1]}},{key:"url",get:function(){return!this._url&&this.baseurl&&this.relurl&&(this._url=w.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""},set:function(e){this._url=e}}])}(),$=function(e){function t(t,i){var r;return(r=e.call(this,i)||this)._decryptdata=null,r.rawProgramDateTime=null,r.programDateTime=null,r.tagList=[],r.duration=0,r.sn=0,r.levelkeys=void 0,r.type=void 0,r.loader=null,r.keyLoader=null,r.level=-1,r.cc=0,r.startPTS=void 0,r.endPTS=void 0,r.startDTS=void 0,r.endDTS=void 0,r.start=0,r.deltaPTS=void 0,r.maxStartPTS=void 0,r.minEndPTS=void 0,r.stats=new H,r.data=void 0,r.bitrateTest=!1,r.title=null,r.initSegment=null,r.endList=void 0,r.gap=void 0,r.urlId=0,r.type=t,r}A(t,e);var i=t.prototype;return i.setKeyFormat=function(e){if(this.levelkeys){var t=this.levelkeys[e];t&&!this._decryptdata&&(this._decryptdata=t.getDecryptData(this.sn))}},i.abortRequests=function(){var e,t;null==(e=this.loader)||e.abort(),null==(t=this.keyLoader)||t.abort()},i.setElementaryStreamInfo=function(e,t,i,r,s,a){void 0===a&&(a=!1);var o=this.elementaryStreams,n=o[e];n?(n.startPTS=Math.min(n.startPTS,t),n.endPTS=Math.max(n.endPTS,i),n.startDTS=Math.min(n.startDTS,r),n.endDTS=Math.max(n.endDTS,s)):o[e]={startPTS:t,endPTS:i,startDTS:r,endDTS:s,partial:a}},i.clearElementaryStreamInfo=function(){var e=this.elementaryStreams;e[X.AUDIO]=null,e[X.VIDEO]=null,e[X.AUDIOVIDEO]=null},a(t,[{key:"decryptdata",get:function(){if(!this.levelkeys&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkeys&&!this.levelkeys.NONE){var e=this.levelkeys.identity;if(e)this._decryptdata=e.getDecryptData(this.sn);else{var t=Object.keys(this.levelkeys);if(1===t.length)return this._decryptdata=this.levelkeys[t[0]].getDecryptData(this.sn)}}return this._decryptdata}},{key:"end",get:function(){return this.start+this.duration}},{key:"endProgramDateTime",get:function(){if(null===this.programDateTime)return null;if(!S(this.programDateTime))return null;var e=S(this.duration)?this.duration:0;return this.programDateTime+1e3*e}},{key:"encrypted",get:function(){var e;if(null!=(e=this._decryptdata)&&e.encrypted)return!0;if(this.levelkeys){var t=Object.keys(this.levelkeys),i=t.length;if(i>1||1===i&&this.levelkeys[t[0]].encrypted)return!0}return!1}}])}(_),ee=function(e){function t(t,i,r,s,a){var o;(o=e.call(this,r)||this).fragOffset=0,o.duration=0,o.gap=!1,o.independent=!1,o.relurl=void 0,o.fragment=void 0,o.index=void 0,o.stats=new H,o.duration=t.decimalFloatingPoint("DURATION"),o.gap=t.bool("GAP"),o.independent=t.bool("INDEPENDENT"),o.relurl=t.enumeratedString("URI"),o.fragment=i,o.index=s;var n=t.enumeratedString("BYTERANGE");return n&&o.setByteRange(n,a),a&&(o.fragOffset=a.fragOffset+a.duration),o}return A(t,e),a(t,[{key:"start",get:function(){return this.fragment.start+this.fragOffset}},{key:"end",get:function(){return this.start+this.duration}},{key:"loaded",get:function(){var e=this.elementaryStreams;return!!(e.audio||e.video||e.audiovideo)}}])}(_),te=10,ie=function(){function e(e){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.dateRangeTagCount=0,this.live=!0,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.availabilityDelay=void 0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=e}return e.prototype.reloaded=function(e){if(!e)return this.advanced=!0,void(this.updated=!0);var t=this.lastPartSn-e.lastPartSn,i=this.lastPartIndex-e.lastPartIndex;this.updated=this.endSN!==e.endSN||!!i||!!t||!this.live,this.advanced=this.endSN>e.endSN||t>0||0===t&&i>0,this.updated||this.advanced?this.misses=Math.floor(.6*e.misses):this.misses=e.misses+1,this.availabilityDelay=e.availabilityDelay},a(e,[{key:"hasProgramDateTime",get:function(){return!!this.fragments.length&&S(this.fragments[this.fragments.length-1].programDateTime)}},{key:"levelTargetDuration",get:function(){return this.averagetargetduration||this.targetduration||te}},{key:"drift",get:function(){var e=this.driftEndTime-this.driftStartTime;return e>0?1e3*(this.driftEnd-this.driftStart)/e:1}},{key:"edge",get:function(){return this.partEnd||this.fragmentEnd}},{key:"partEnd",get:function(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].end:this.fragmentEnd}},{key:"fragmentEnd",get:function(){var e;return null!=(e=this.fragments)&&e.length?this.fragments[this.fragments.length-1].end:0}},{key:"age",get:function(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1e3:0}},{key:"lastPartIndex",get:function(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].index:-1}},{key:"lastPartSn",get:function(){var e;return null!=(e=this.partList)&&e.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}}])}();function re(e){return Uint8Array.from(atob(e),(function(e){return e.charCodeAt(0)}))}function se(e){return Uint8Array.from(unescape(encodeURIComponent(e)),(function(e){return e.charCodeAt(0)}))}function ae(e){var t=se(e).subarray(0,16),i=new Uint8Array(16);return i.set(t,16-t.length),i}function oe(e){var t=function(e,t,i){var r=e[t];e[t]=e[i],e[i]=r};t(e,0,3),t(e,1,2),t(e,4,5),t(e,6,7)}function ne(e){var t=e.split(":"),i=null;if("data"===t[0]&&2===t.length){var r=t[1].split(";"),s=r[r.length-1].split(",");if(2===s.length){var a="base64"===s[0],o=s[1];a?(r.splice(-1,1),i=re(o)):i=ae(o)}}return i}var le={cbc:0,ctr:1};function he(e){return"AES-128"===e||"AES-256"===e||"AES-256-CTR"===e}function Ae(e){switch(e){case"AES-128":case"AES-256":return le.cbc;case"AES-256-CTR":return le.ctr;default:throw new Error("invalid full segment method "+e)}}var de="undefined"!=typeof self?self:void 0,ce={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},ue={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.streamingkeydelivery",PLAYREADY:"com.microsoft.playready",WIDEVINE:"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"};function pe(e){switch(e){case ue.FAIRPLAY:return ce.FAIRPLAY;case ue.PLAYREADY:return ce.PLAYREADY;case ue.WIDEVINE:return ce.WIDEVINE;case ue.CLEARKEY:return ce.CLEARKEY}}var ge={CENC:"1077efecc0b24d02ace33c1e52e2fb4b",CLEARKEY:"e2719d58a985b3c9781ab030af78d30e",FAIRPLAY:"94ce86fb07ff4f43adb893d2fa968ca2",PLAYREADY:"9a04f07998404286ab92e65be0885f95",WIDEVINE:"edef8ba979d64acea3c827dcd51d21ed"};function me(e){return e===ge.WIDEVINE?ce.WIDEVINE:e===ge.PLAYREADY?ce.PLAYREADY:e===ge.CENC||e===ge.CLEARKEY?ce.CLEARKEY:void 0}function ye(e){switch(e){case ce.FAIRPLAY:return ue.FAIRPLAY;case ce.PLAYREADY:return ue.PLAYREADY;case ce.WIDEVINE:return ue.WIDEVINE;case ce.CLEARKEY:return ue.CLEARKEY}}function Ee(e){var t=e.drmSystems,i=e.widevineLicenseUrl,r=t?[ce.FAIRPLAY,ce.WIDEVINE,ce.PLAYREADY,ce.CLEARKEY].filter((function(e){return!!t[e]})):[];return!r[ce.WIDEVINE]&&i&&r.push(ce.WIDEVINE),r}var Ce,fe=null!=de&&null!=(Ce=de.navigator)&&Ce.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;function Ie(e,t,i,r){var s;switch(e){case ce.FAIRPLAY:s=["cenc","sinf"];break;case ce.WIDEVINE:case ce.PLAYREADY:s=["cenc"];break;case ce.CLEARKEY:s=["cenc","keyids"];break;default:throw new Error("Unknown key-system: "+e)}return we(s,t,i,r)}function we(e,t,i,r){return[{initDataTypes:e,persistentState:r.persistentState||"optional",distinctiveIdentifier:r.distinctiveIdentifier||"optional",sessionTypes:r.sessionTypes||[r.sessionType||"temporary"],audioCapabilities:t.map((function(e){return{contentType:'audio/mp4; codecs="'+e+'"',robustness:r.audioRobustness||"",encryptionScheme:r.audioEncryptionScheme||null}})),videoCapabilities:i.map((function(e){return{contentType:'video/mp4; codecs="'+e+'"',robustness:r.videoRobustness||"",encryptionScheme:r.videoEncryptionScheme||null}}))}]}function Se(e){var t=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),i=String.fromCharCode.apply(null,Array.from(t)),r=i.substring(i.indexOf("<"),i.length),s=(new DOMParser).parseFromString(r,"text/xml").getElementsByTagName("KID")[0];if(s){var a=s.childNodes[0]?s.childNodes[0].nodeValue:s.getAttribute("VALUE");if(a){var o=re(a).subarray(0,16);return oe(o),o}}return null}function Me(e,t,i){return Uint8Array.prototype.slice?e.slice(t,i):new Uint8Array(Array.prototype.slice.call(e,t,i))}function ve(e,t){if(void 0===t&&(t=!1),"undefined"!=typeof TextDecoder){var i=new TextDecoder("utf-8").decode(e);if(t){var r=i.indexOf("\0");return-1!==r?i.substring(0,r):i}return i.replace(/\0/g,"")}for(var s,a,o,n=e.length,l="",h=0;h<n;){if(0===(s=e[h++])&&t)return l;if(0!==s&&3!==s)switch(s>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:l+=String.fromCharCode(s);break;case 12:case 13:a=e[h++],l+=String.fromCharCode((31&s)<<6|63&a);break;case 14:a=e[h++],o=e[h++],l+=String.fromCharCode((15&s)<<12|(63&a)<<6|(63&o)<<0)}}return l}var ke={hexDump:function(e){for(var t="",i=0;i<e.length;i++){var r=e[i].toString(16);r.length<2&&(r="0"+r),t+=r}return t}},Be=Math.pow(2,32)-1,De=[].push,be={video:1,audio:2,id3:3,text:4};function Qe(e){return String.fromCharCode.apply(null,e)}function Re(e,t){var i=e[t]<<8|e[t+1];return i<0?65536+i:i}function Te(e,t){var i=Ke(e,t);return i<0?4294967296+i:i}function Le(e,t){var i=Te(e,t);return i*=Math.pow(2,32),i+=Te(e,t+4)}function Ke(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function qe(e,t,i){e[t]=i>>24,e[t+1]=i>>16&255,e[t+2]=i>>8&255,e[t+3]=255&i}function xe(e){for(var t=e.byteLength,i=0;i<t;){var r=Te(e,i);if(r>8&&109===e[i+4]&&111===e[i+5]&&111===e[i+6]&&102===e[i+7])return!0;i=r>1?i+r:t}return!1}function Fe(e,t){var i=[];if(!t.length)return i;for(var r=e.byteLength,s=0;s<r;){var a=Te(e,s),o=a>1?s+a:r;if(Qe(e.subarray(s+4,s+8))===t[0])if(1===t.length)i.push(e.subarray(s+8,o));else{var n=Fe(e.subarray(s+8,o),t.slice(1));n.length&&De.apply(i,n)}s=o}return i}function Ue(e){var t=[],i=e[0],r=8,s=Te(e,r);r+=4;var a=0,o=0;0===i?(a=Te(e,r),o=Te(e,r+4),r+=8):(a=Le(e,r),o=Le(e,r+8),r+=16),r+=2;var n=e.length+o,l=Re(e,r);r+=2;for(var h=0;h<l;h++){var A=r,d=Te(e,A);A+=4;var c=2147483647&d;if(1==(2147483648&d)>>>31)return F.warn("SIDX has hierarchical references (not supported)"),null;var u=Te(e,A);A+=4,t.push({referenceSize:c,subsegmentDuration:u,info:{duration:u/s,start:n,end:n+c-1}}),n+=c,r=A+=4}return{earliestPresentationTime:a,timescale:s,version:i,referencesCount:l,references:t}}function Ge(e){for(var t=[],i=Fe(e,["moov","trak"]),r=0;r<i.length;r++){var s=i[r],a=Fe(s,["tkhd"])[0];if(a){var o=a[0],n=Te(a,0===o?12:20),l=Fe(s,["mdia","mdhd"])[0];if(l){var h=Te(l,0===(o=l[0])?12:20),A=Fe(s,["mdia","hdlr"])[0];if(A){var d=Qe(A.subarray(8,12)),c={soun:X.AUDIO,vide:X.VIDEO}[d];if(c){var u=Oe(Fe(s,["mdia","minf","stbl","stsd"])[0]);t[n]={timescale:h,type:c},t[c]=p({timescale:h,id:n},u)}}}}}return Fe(e,["moov","mvex","trex"]).forEach((function(e){var i=Te(e,4),r=t[i];r&&(r.default={duration:Te(e,12),flags:Te(e,20)})})),t}function Oe(e){var t=e.subarray(8),i=t.subarray(86),r=Qe(t.subarray(4,8)),s=r,a="enca"===r||"encv"===r;if(a){var o=Fe(t,[r])[0];Fe(o.subarray("enca"===r?28:78),["sinf"]).forEach((function(e){var t=Fe(e,["schm"])[0];if(t){var i=Qe(t.subarray(4,8));if("cbcs"===i||"cenc"===i){var r=Fe(e,["frma"])[0];r&&(s=Qe(r))}}}))}switch(s){case"avc1":case"avc2":case"avc3":case"avc4":var n=Fe(i,["avcC"])[0];s+="."+Ye(n[1])+Ye(n[2])+Ye(n[3]);break;case"mp4a":var l=Fe(t,[r])[0],h=Fe(l.subarray(28),["esds"])[0];if(h&&h.length>7){var A=4;if(3!==h[A++])break;A=Je(h,A),A+=2;var d=h[A++];if(128&d&&(A+=2),64&d&&(A+=h[A++]),4!==h[A++])break;A=Je(h,A);var c=h[A++];if(64!==c)break;if(s+="."+Ye(c),A+=12,5!==h[A++])break;A=Je(h,A);var u=h[A++],p=(248&u)>>3;31===p&&(p+=1+((7&u)<<3)+((224&h[A])>>5)),s+="."+p}break;case"hvc1":case"hev1":var g=Fe(i,["hvcC"])[0],m=g[1],y=["","A","B","C"][m>>6],E=31&m,C=Te(g,2),f=(32&m)>>5?"H":"L",I=g[12],w=g.subarray(6,12);s+="."+y+E,s+="."+C.toString(16).toUpperCase(),s+="."+f+I;for(var S="",M=w.length;M--;){var v=w[M];(v||S)&&(S="."+v.toString(16).toUpperCase()+S)}s+=S;break;case"dvh1":case"dvhe":var k=Fe(i,["dvcC"])[0],B=k[2]>>1&127,D=k[2]<<5&32|k[3]>>3&31;s+="."+Ne(B)+"."+Ne(D);break;case"vp09":var b=Fe(i,["vpcC"])[0],Q=b[4],R=b[5],T=b[6]>>4&15;s+="."+Ne(Q)+"."+Ne(R)+"."+Ne(T);break;case"av01":var L=Fe(i,["av1C"])[0],K=L[1]>>>5,q=31&L[1],x=L[2]>>>7?"H":"M",F=(64&L[2])>>6,U=(32&L[2])>>5,G=2===K&&F?U?12:10:F?10:8,O=(16&L[2])>>4,J=(8&L[2])>>3,Y=(4&L[2])>>2,N=3&L[2],P=1,j=1,z=1,W=0;s+="."+K+"."+Ne(q)+x+"."+Ne(G)+"."+O+"."+J+Y+N+"."+Ne(P)+"."+Ne(j)+"."+Ne(z)+"."+W}return{codec:s,encrypted:a}}function Je(e,t){for(var i=t+5;128&e[t++]&&t<i;);return t}function Ye(e){return("0"+e.toString(16).toUpperCase()).slice(-2)}function Ne(e){return(e<10?"0":"")+e}function Pe(e,t){if(!e||!t)return e;var i=t.keyId;return i&&t.isCommonEncryption&&Fe(e,["moov","trak"]).forEach((function(e){var t=Fe(e,["mdia","minf","stbl","stsd"])[0].subarray(8),r=Fe(t,["enca"]),s=r.length>0;s||(r=Fe(t,["encv"])),r.forEach((function(e){Fe(s?e.subarray(28):e.subarray(78),["sinf"]).forEach((function(e){var t=je(e);if(t){var r=t.subarray(8,24);r.some((function(e){return 0!==e}))||(F.log("[eme] Patching keyId in 'enc"+(s?"a":"v")+">sinf>>tenc' box: "+ke.hexDump(r)+" -> "+ke.hexDump(i)),t.set(i,8))}}))}))})),e}function je(e){var t=Fe(e,["schm"])[0];if(t){var i=Qe(t.subarray(4,8));if("cbcs"===i||"cenc"===i)return Fe(e,["schi","tenc"])[0]}return null}function ze(e,t){return Fe(t,["moof","traf"]).reduce((function(t,i){var r=Fe(i,["tfdt"])[0],s=r[0],a=Fe(i,["tfhd"]).reduce((function(t,i){var a=Te(i,4),o=e[a];if(o){var n=Te(r,4);if(1===s){if(n===Be)return F.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"),t;n*=Be+1,n+=Te(r,8)}var l=n/(o.timescale||9e4);if(S(l)&&(null===t||l<t))return l}return t}),null);return null!==a&&S(a)&&(null===t||a<t)?a:t}),null)}function We(e,t){for(var i=0,r=0,s=0,a=Fe(e,["moof","traf"]),o=0;o<a.length;o++){var n=a[o],l=Fe(n,["tfhd"])[0],h=t[Te(l,4)];if(h){var A=h.default,d=Te(l,0)|(null==A?void 0:A.flags),c=null==A?void 0:A.duration;8&d&&(c=Te(l,2&d?12:8));for(var u=h.timescale||9e4,p=Fe(n,["trun"]),g=0;g<p.length;g++)!(i=Ze(p[g]))&&c&&(i=c*Te(p[g],4)),h.type===X.VIDEO?r+=i/u:h.type===X.AUDIO&&(s+=i/u)}}if(0===r&&0===s){for(var m=1/0,y=0,E=0,C=Fe(e,["sidx"]),f=0;f<C.length;f++){var I=Ue(C[f]);if(null!=I&&I.references){m=Math.min(m,I.earliestPresentationTime/I.timescale);var w=I.references.reduce((function(e,t){return e+t.info.duration||0}),0);E=(y=Math.max(y,w+I.earliestPresentationTime/I.timescale))-m}}if(E&&S(E))return E}return r||s}function Ze(e){var t=Te(e,0),i=8;1&t&&(i+=4),4&t&&(i+=4);for(var r=0,s=Te(e,4),a=0;a<s;a++)256&t&&(r+=Te(e,i),i+=4),512&t&&(i+=4),1024&t&&(i+=4),2048&t&&(i+=4);return r}function Ve(e,t,i){Fe(t,["moof","traf"]).forEach((function(t){Fe(t,["tfhd"]).forEach((function(r){var s=Te(r,4),a=e[s];if(a){var o=a.timescale||9e4;Fe(t,["tfdt"]).forEach((function(e){var t=e[0],r=i*o;if(r){var s=Te(e,4);if(0===t)s-=r,qe(e,4,s=Math.max(s,0));else{s*=Math.pow(2,32),s+=Te(e,8),s-=r,s=Math.max(s,0);var a=Math.floor(s/(Be+1)),n=Math.floor(s%(Be+1));qe(e,4,a),qe(e,8,n)}}}))}}))}))}function He(e){var t={valid:null,remainder:null},i=Fe(e,["moof"]);if(i.length<2)return t.remainder=e,t;var r=i[i.length-1];return t.valid=Me(e,0,r.byteOffset-8),t.remainder=Me(e,r.byteOffset-8),t}function Xe(e,t){var i=new Uint8Array(e.length+t.length);return i.set(e),i.set(t,e.length),i}function _e(e,t){var i=[],r=t.samples,s=t.timescale,a=t.id,o=!1;return Fe(r,["moof"]).map((function(n){var l=n.byteOffset-8;Fe(n,["traf"]).map((function(n){var h=Fe(n,["tfdt"]).map((function(e){var t=e[0],i=Te(e,4);return 1===t&&(i*=Math.pow(2,32),i+=Te(e,8)),i/s}))[0];return void 0!==h&&(e=h),Fe(n,["tfhd"]).map((function(h){var A=Te(h,4),d=16777215&Te(h,0),c=0,u=0!=(16&d),p=0,g=0!=(32&d),m=8;A===a&&(0!=(1&d)&&(m+=8),0!=(2&d)&&(m+=4),0!=(8&d)&&(c=Te(h,m),m+=4),u&&(p=Te(h,m),m+=4),g&&(m+=4),"video"===t.type&&(o=$e(t.codec)),Fe(n,["trun"]).map((function(a){var n=a[0],h=16777215&Te(a,0),A=0!=(1&h),d=0,u=0!=(4&h),g=0!=(256&h),m=0,y=0!=(512&h),E=0,C=0!=(1024&h),f=0!=(2048&h),I=0,w=Te(a,4),S=8;A&&(d=Te(a,S),S+=4),u&&(S+=4);for(var M=d+l,v=0;v<w;v++){if(g?(m=Te(a,S),S+=4):m=c,y?(E=Te(a,S),S+=4):E=p,C&&(S+=4),f&&(I=0===n?Te(a,S):Ke(a,S),S+=4),t.type===X.VIDEO)for(var k=0;k<E;){var B=Te(r,M);et(o,r[M+=4])&&tt(r.subarray(M,M+B),o?2:1,e+I/s,i),M+=B,k+=B+4}e+=m/s}})))}))}))})),i}function $e(e){if(!e)return!1;var t=e.indexOf("."),i=t<0?e:e.substring(0,t);return"hvc1"===i||"hev1"===i||"dvh1"===i||"dvhe"===i}function et(e,t){if(e){var i=t>>1&63;return 39===i||40===i}return 6==(31&t)}function tt(e,t,i,r){var s=it(e),a=0;a+=t;for(var o=0,n=0,l=0;a<s.length;){o=0;do{if(a>=s.length)break;o+=l=s[a++]}while(255===l);n=0;do{if(a>=s.length)break;n+=l=s[a++]}while(255===l);var h=s.length-a,A=a;if(n<h)a+=n;else if(n>h){F.error("Malformed SEI payload. "+n+" is too small, only "+h+" bytes left to parse.");break}if(4===o){if(181===s[A++]){var d=Re(s,A);if(A+=2,49===d){var c=Te(s,A);if(A+=4,1195456820===c){var u=s[A++];if(3===u){var p=s[A++],g=64&p,m=g?2+3*(31&p):0,y=new Uint8Array(m);if(g){y[0]=p;for(var E=1;E<m;E++)y[E]=s[A++]}r.push({type:u,payloadType:o,pts:i,bytes:y})}}}}}else if(5===o&&n>16){for(var C=[],f=0;f<16;f++){var I=s[A++].toString(16);C.push(1==I.length?"0"+I:I),3!==f&&5!==f&&7!==f&&9!==f||C.push("-")}for(var w=n-16,S=new Uint8Array(w),M=0;M<w;M++)S[M]=s[A++];r.push({payloadType:o,pts:i,uuid:C.join(""),userData:ve(S),userDataBytes:S})}}}function it(e){for(var t=e.byteLength,i=[],r=1;r<t-2;)0===e[r]&&0===e[r+1]&&3===e[r+2]?(i.push(r+2),r+=2):r++;if(0===i.length)return e;var s=t-i.length,a=new Uint8Array(s),o=0;for(r=0;r<s;o++,r++)o===i[0]&&(o++,i.shift()),a[r]=e[o];return a}function rt(e){var t=e[0],i="",r="",s=0,a=0,o=0,n=0,l=0,h=0;if(0===t){for(;"\0"!==Qe(e.subarray(h,h+1));)i+=Qe(e.subarray(h,h+1)),h+=1;for(i+=Qe(e.subarray(h,h+1)),h+=1;"\0"!==Qe(e.subarray(h,h+1));)r+=Qe(e.subarray(h,h+1)),h+=1;r+=Qe(e.subarray(h,h+1)),h+=1,s=Te(e,12),a=Te(e,16),n=Te(e,20),l=Te(e,24),h=28}else if(1===t){s=Te(e,h+=4);var A=Te(e,h+=4),d=Te(e,h+=4);for(h+=4,o=Math.pow(2,32)*A+d,M(o)||(o=Number.MAX_SAFE_INTEGER,F.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),n=Te(e,h),l=Te(e,h+=4),h+=4;"\0"!==Qe(e.subarray(h,h+1));)i+=Qe(e.subarray(h,h+1)),h+=1;for(i+=Qe(e.subarray(h,h+1)),h+=1;"\0"!==Qe(e.subarray(h,h+1));)r+=Qe(e.subarray(h,h+1)),h+=1;r+=Qe(e.subarray(h,h+1)),h+=1}return{schemeIdUri:i,value:r,timeScale:s,presentationTime:o,presentationTimeDelta:a,eventDuration:n,id:l,payload:e.subarray(h,e.byteLength)}}function st(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];for(var s=i.length,a=8,o=s;o--;)a+=i[o].byteLength;var n=new Uint8Array(a);for(n[0]=a>>24&255,n[1]=a>>16&255,n[2]=a>>8&255,n[3]=255&a,n.set(e,4),o=0,a=8;o<s;o++)n.set(i[o],a),a+=i[o].byteLength;return n}function at(e,t,i){if(16!==e.byteLength)throw new RangeError("Invalid system id");var r,s,a;r=0,s=new Uint8Array,r>0?(a=new Uint8Array(4),t.length>0&&new DataView(a.buffer).setUint32(0,t.length,!1)):a=new Uint8Array;var o=new Uint8Array(4);return i&&i.byteLength>0&&new DataView(o.buffer).setUint32(0,i.byteLength,!1),st([112,115,115,104],new Uint8Array([r,0,0,0]),e,a,s,o,i||new Uint8Array)}function ot(e){var t=[];if(e instanceof ArrayBuffer)for(var i=e.byteLength,r=0;r+32<i;){var s=nt(new DataView(e,r));t.push(s),r+=s.size}return t}function nt(e){var t=e.getUint32(0),i=e.byteOffset,r=e.byteLength;if(r<t)return{offset:i,size:r};if(1886614376!==e.getUint32(4))return{offset:i,size:t};var s=e.getUint32(8)>>>24;if(0!==s&&1!==s)return{offset:i,size:t};var a=e.buffer,o=ke.hexDump(new Uint8Array(a,i+12,16)),n=e.getUint32(28),l=null,h=null;if(0===s){if(t-32<n||n<22)return{offset:i,size:t};h=new Uint8Array(a,i+32,n)}else if(1===s){if(!n||r<i+32+16*n+16)return{offset:i,size:t};l=[];for(var A=0;A<n;A++)l.push(new Uint8Array(a,i+32+16*A,16))}return{version:s,systemId:o,kids:l,data:h,offset:i,size:t}}var lt={},ht=function(){function e(e,t,i,r,s){void 0===r&&(r=[1]),void 0===s&&(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=e,this.uri=t,this.keyFormat=i,this.keyFormatVersions=r,this.iv=s,this.encrypted=!!e&&"NONE"!==e,this.isCommonEncryption=this.encrypted&&!he(e)}e.clearKeyUriToKeyIdMap=function(){lt={}};var t=e.prototype;return t.isSupported=function(){if(this.method){if(he(this.method)||"NONE"===this.method)return!0;if("identity"===this.keyFormat)return"SAMPLE-AES"===this.method;switch(this.keyFormat){case ue.FAIRPLAY:case ue.WIDEVINE:case ue.PLAYREADY:case ue.CLEARKEY:return-1!==["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)}}return!1},t.getDecryptData=function(t){if(!this.encrypted||!this.uri)return null;if(he(this.method)&&this.uri&&!this.iv){"number"!=typeof t&&(F.warn('missing IV for initialization segment with method="'+this.method+'" - compliance issue'),t=0);var i=At(t);return new e(this.method,this.uri,"identity",this.keyFormatVersions,i)}var r=ne(this.uri);if(r)switch(this.keyFormat){case ue.WIDEVINE:this.pssh=r,r.length>=22&&(this.keyId=r.subarray(r.length-22,r.length-6));break;case ue.PLAYREADY:var s=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=at(s,null,r),this.keyId=Se(r);break;default:var a=r.subarray(0,16);if(16!==a.length){var o=new Uint8Array(16);o.set(a,16-a.length),a=o}this.keyId=a}if(!this.keyId||16!==this.keyId.byteLength){var n=lt[this.uri];if(!n){var l=Object.keys(lt).length%Number.MAX_SAFE_INTEGER;n=new Uint8Array(16),new DataView(n.buffer,12,4).setUint32(0,l),lt[this.uri]=n}this.keyId=n}return this},e}();function At(e){for(var t=new Uint8Array(16),i=12;i<16;i++)t[i]=e>>8*(15-i)&255;return t}function dt(e){if(void 0===e&&(e=!0),"undefined"!=typeof self)return(e||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}function ct(e){return"undefined"!=typeof self&&e===self.ManagedMediaSource}var ut={audio:{a3ds:1,"ac-3":.95,"ac-4":1,alac:.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":.9,enca:1,fLaC:.9,flac:.9,FLAC:.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:.8,drac:1,dva1:1,dvav:1,dvh1:.7,dvhe:.7,encv:1,hev1:.75,hvc1:.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:.9},text:{stpp:1,wvtt:1}};function pt(e,t){var i=ut[t];return!!i&&!!i[e.slice(0,4)]}function gt(e,t,i){return void 0===i&&(i=!0),!e.split(",").some((function(e){return!mt(e,t,i)}))}function mt(e,t,i){var r;void 0===i&&(i=!0);var s=dt(i);return null!=(r=null==s?void 0:s.isTypeSupported(yt(e,t)))&&r}function yt(e,t){return t+'/mp4;codecs="'+e+'"'}function Et(e){if(e){var t=e.substring(0,4);return ut.video[t]}return 2}function Ct(e){return e.split(",").reduce((function(e,t){var i=ut.video[t];return i?(2*i+e)/(e?3:2):(ut.audio[t]+e)/(e?2:1)}),0)}var ft={};function It(e,t){if(void 0===t&&(t=!0),ft[e])return ft[e];for(var i={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"],"mp4a.40.34":["mp3"]}[e],r=0;r<i.length;r++){var s;if(mt(i[r],"audio",t))return ft[e]=i[r],i[r];if("mp3"===i[r]&&null!=(s=dt(t))&&s.isTypeSupported("audio/mpeg"))return""}return e}var wt=/flac|opus|mp4a\.40\.34/i;function St(e,t){return void 0===t&&(t=!0),e.replace(wt,(function(e){return It(e.toLowerCase(),t)}))}function Mt(e,t){return e&&"mp4a"!==e?e:t?t.split(",")[0]:t}function vt(e){for(var t=e.split(","),i=0;i<t.length;i++){var r=t[i].split(".");if(r.length>2){var s=r.shift()+".";s+=parseInt(r.shift()).toString(16),s+=("000"+parseInt(r.shift()).toString(16)).slice(-4),t[i]=s}}return t.join(",")}function kt(e){var t=dt(e)||{isTypeSupported:function(){return!1}};return{mpeg:t.isTypeSupported("audio/mpeg"),mp3:t.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:t.isTypeSupported('audio/mp4; codecs="ac-3"')}}var Bt=/#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,Dt=/#EXT-X-MEDIA:(.*)/g,bt=/^#EXT(?:INF|-X-TARGETDURATION):/m,Qt=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[^\r\n]*)/.source,/#EXT-X-BYTERANGE:*(.+)/.source,/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/#.*/.source].join("|"),"g"),Rt=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("|")),Tt=function(){function e(){}return e.findGroup=function(e,t){for(var i=0;i<e.length;i++){var r=e[i];if(r.id===t)return r}},e.resolve=function(e,t){return w.buildAbsoluteURL(t,e,{alwaysNormalize:!0})},e.isMediaPlaylist=function(e){return bt.test(e)},e.parseMasterPlaylist=function(t,i){var r,s={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:G(t)},a=[];for(Bt.lastIndex=0;null!=(r=Bt.exec(t));)if(r[1]){var o,n=new j(r[1],s),l=O(s,r[2]),h={attrs:n,bitrate:n.decimalInteger("BANDWIDTH")||n.decimalInteger("AVERAGE-BANDWIDTH"),name:n.NAME,url:e.resolve(l,i)},A=n.decimalResolution("RESOLUTION");A&&(h.width=A.width,h.height=A.height),Ft(n.CODECS,h),null!=(o=h.unknownCodecs)&&o.length||a.push(h),s.levels.push(h)}else if(r[3]){var d=r[3],c=r[4];switch(d){case"SESSION-DATA":var u=new j(c,s),p=u["DATA-ID"];p&&(null===s.sessionData&&(s.sessionData={}),s.sessionData[p]=u);break;case"SESSION-KEY":var g=qt(c,i,s);g.encrypted&&g.isSupported()?(null===s.sessionKeys&&(s.sessionKeys=[]),s.sessionKeys.push(g)):F.warn('[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "'+c+'"');break;case"DEFINE":J(s,new j(c,s),i);break;case"CONTENT-STEERING":var m=new j(c,s);s.contentSteering={uri:e.resolve(m["SERVER-URI"],i),pathwayId:m["PATHWAY-ID"]||"."};break;case"START":s.startTimeOffset=xt(c)}}var y=a.length>0&&a.length<s.levels.length;return s.levels=y?a:s.levels,0===s.levels.length&&(s.playlistParsingError=new Error("no levels found in manifest")),s},e.parseMasterPlaylistMedia=function(t,i,r){var s,a={},o=r.levels,n={AUDIO:o.map((function(e){return{id:e.attrs.AUDIO,audioCodec:e.audioCodec}})),SUBTITLES:o.map((function(e){return{id:e.attrs.SUBTITLES,textCodec:e.textCodec}})),"CLOSED-CAPTIONS":[]},l=0;for(Dt.lastIndex=0;null!==(s=Dt.exec(t));){var h=new j(s[1],r),A=h.TYPE;if(A){var d=n[A],c=a[A]||[];a[A]=c;var u=h.LANGUAGE,p=h["ASSOC-LANGUAGE"],g=h.CHANNELS,m=h.CHARACTERISTICS,y=h["INSTREAM-ID"],E={attrs:h,bitrate:0,id:l++,groupId:h["GROUP-ID"]||"",name:h.NAME||u||"",type:A,default:h.bool("DEFAULT"),autoselect:h.bool("AUTOSELECT"),forced:h.bool("FORCED"),lang:u,url:h.URI?e.resolve(h.URI,i):""};if(p&&(E.assocLang=p),g&&(E.channels=g),m&&(E.characteristics=m),y&&(E.instreamId=y),null!=d&&d.length){var C=e.findGroup(d,E.groupId)||d[0];Ut(E,C,"audioCodec"),Ut(E,C,"textCodec")}c.push(E)}}return a},e.parseLevelPlaylist=function(e,t,i,r,s,a){var o,n,h,A=new ie(t),d=A.fragments,c=[],u=null,p=0,g=0,m=0,y=0,E=null,C=new $(r,t),f=-1,I=!1,w=null;for(Qt.lastIndex=0,A.m3u8=e,A.hasVariableRefs=G(e);null!==(o=Qt.exec(e));){I&&(I=!1,(C=new $(r,t)).start=m,C.sn=p,C.cc=y,C.level=i,u&&(C.initSegment=u,C.rawProgramDateTime=u.rawProgramDateTime,u.rawProgramDateTime=null,w&&(C.setByteRange(w),w=null)));var M=o[1];if(M){C.duration=parseFloat(M);var v=(" "+o[2]).slice(1);C.title=v||null,C.tagList.push(v?["INF",M,v]:["INF",M])}else if(o[3]){if(S(C.duration)){C.start=m,h&&Yt(C,h,A),C.sn=p,C.level=i,C.cc=y,d.push(C);var k=(" "+o[3]).slice(1);C.relurl=O(A,k),Ot(C,E,c),E=C,m+=C.duration,p++,g=0,I=!0}}else if(o[4]){var B=(" "+o[4]).slice(1);E?C.setByteRange(B,E):C.setByteRange(B)}else if(o[5])C.rawProgramDateTime=(" "+o[5]).slice(1),C.tagList.push(["PROGRAM-DATE-TIME",C.rawProgramDateTime]),-1===f&&(f=d.length);else{if(!(o=o[0].match(Rt))){F.warn("No matches on slow regex match for level playlist!");continue}for(n=1;n<o.length&&void 0===o[n];n++);var D=(" "+o[n]).slice(1),b=(" "+o[n+1]).slice(1),Q=o[n+2]?(" "+o[n+2]).slice(1):"";switch(D){case"PLAYLIST-TYPE":A.type=b.toUpperCase();break;case"MEDIA-SEQUENCE":p=A.startSN=parseInt(b);break;case"SKIP":A.skippedSegments&&(A.playlistParsingError=new Error("#EXT-X-SKIP MUST NOT appear more than once in a Playlist"));var R=new j(b,A),T=R.decimalInteger("SKIPPED-SEGMENTS");if(S(T)){A.skippedSegments+=T;for(var L=T;L--;)d.push(null);p+=T}var K=R.enumeratedString("RECENTLY-REMOVED-DATERANGES");K&&(A.recentlyRemovedDateranges=(A.recentlyRemovedDateranges||[]).concat(K.split("\t")));break;case"TARGETDURATION":A.targetduration=Math.max(parseInt(b),1);break;case"VERSION":A.version=parseInt(b);break;case"INDEPENDENT-SEGMENTS":case"EXTM3U":break;case"ENDLIST":A.live=!1;break;case"#":(b||Q)&&C.tagList.push(Q?[b,Q]:[b]);break;case"DISCONTINUITY":y++,C.tagList.push(["DIS"]);break;case"GAP":C.gap=!0,C.tagList.push([D]);break;case"BITRATE":C.tagList.push([D,b]);break;case"DATERANGE":var q=new j(b,A),x=new V(q,A.dateRanges[q.ID],A.dateRangeTagCount);A.dateRangeTagCount++,x.isValid||A.skippedSegments?A.dateRanges[x.id]=x:F.warn('Ignoring invalid DATERANGE tag: "'+b+'"'),C.tagList.push(["EXT-X-DATERANGE",b]);break;case"DEFINE":var U=new j(b,A);"IMPORT"in U?Y(A,U,a):J(A,U,t);break;case"DISCONTINUITY-SEQUENCE":y=parseInt(b);break;case"KEY":var N=qt(b,t,A);if(N.isSupported()){if("NONE"===N.method){h=void 0;break}h||(h={}),h[N.keyFormat]&&(h=l({},h)),h[N.keyFormat]=N}else F.warn('[Keys] Ignoring invalid EXT-X-KEY tag: "'+b+'"');break;case"START":A.startTimeOffset=xt(b);break;case"MAP":var P=new j(b,A);if(C.duration){var z=new $(r,t);Jt(z,P,i,h),u=z,C.initSegment=u,u.rawProgramDateTime&&!C.rawProgramDateTime&&(C.rawProgramDateTime=u.rawProgramDateTime)}else{var W=C.byteRangeEndOffset;if(W){var Z=C.byteRangeStartOffset;w=W-Z+"@"+Z}else w=null;Jt(C,P,i,h),u=C,I=!0}u.cc=y;break;case"SERVER-CONTROL":var H=new j(b);A.canBlockReload=H.bool("CAN-BLOCK-RELOAD"),A.canSkipUntil=H.optionalFloat("CAN-SKIP-UNTIL",0),A.canSkipDateRanges=A.canSkipUntil>0&&H.bool("CAN-SKIP-DATERANGES"),A.partHoldBack=H.optionalFloat("PART-HOLD-BACK",0),A.holdBack=H.optionalFloat("HOLD-BACK",0);break;case"PART-INF":var X=new j(b);A.partTarget=X.decimalFloatingPoint("PART-TARGET");break;case"PART":var _=A.partList;_||(_=A.partList=[]);var te=g>0?_[_.length-1]:void 0,re=g++,se=new j(b,A),ae=new ee(se,C,t,re,te);_.push(ae),C.duration+=ae.duration;break;case"PRELOAD-HINT":var oe=new j(b,A);A.preloadHint=oe;break;case"RENDITION-REPORT":var ne=new j(b,A);A.renditionReports=A.renditionReports||[],A.renditionReports.push(ne);break;default:F.warn("line parsed but not handled: "+o)}}}E&&!E.relurl?(d.pop(),m-=E.duration,A.partList&&(A.fragmentHint=E)):A.partList&&(Ot(C,E,c),C.cc=y,A.fragmentHint=C,h&&Yt(C,h,A));var le=d.length,he=d[0],Ae=d[le-1];if((m+=A.skippedSegments*A.targetduration)>0&&le&&Ae){A.averagetargetduration=m/le;var de=Ae.sn;A.endSN="initSegment"!==de?de:0,A.live||(Ae.endList=!0),he&&(A.startCC=he.cc),f>0&&(Gt(d,f),he&&c.unshift(he))}else A.endSN=0,A.startCC=0;return A.fragmentHint&&(m+=A.fragmentHint.duration),A.totalduration=m,c.length&&A.dateRangeTagCount&&he&&Lt(c,A),A.endCC=y,A},e}();function Lt(e,t){for(var i=e.length,r=e[i-1],s=t.live?1/0:t.totalduration,a=Object.keys(t.dateRanges),o=a.length;o--;){var n=t.dateRanges[a[o]],l=n.startDate.getTime();n.tagAnchor=r;for(var h=i;h--;){var A=Kt(t,l,e,h,s);if(-1!==A){n.tagAnchor=t.fragments[A];break}}}}function Kt(e,t,i,r,s){var a=i[r];if(a){var o,n=((null==(o=i[r+1])?void 0:o.start)||s)-a.start,l=a.programDateTime;if((t>=l||0===r)&&t<=l+1e3*n){var h=i[r].sn-e.startSN,A=e.fragments;if(A.length>i.length)for(var d=(i[r+1]||A[A.length-1]).sn-e.startSN;d>h;d--){var c=A[d].programDateTime;if(t>=c&&t<c+1e3*A[d].duration)return d}return h}}return-1}function qt(e,t,i){var r,s,a=new j(e,i),o=null!=(r=a.METHOD)?r:"",n=a.URI,l=a.hexadecimalInteger("IV"),h=a.KEYFORMATVERSIONS,A=null!=(s=a.KEYFORMAT)?s:"identity";n&&a.IV&&!l&&F.error("Invalid IV: "+a.IV);var d=n?Tt.resolve(n,t):"",c=(h||"1").split("/").map(Number).filter(Number.isFinite);return new ht(o,d,A,c,l)}function xt(e){var t=new j(e).decimalFloatingPoint("TIME-OFFSET");return S(t)?t:null}function Ft(e,t){var i=(e||"").split(/[ ,]+/).filter((function(e){return e}));["video","audio","text"].forEach((function(e){var r=i.filter((function(t){return pt(t,e)}));r.length&&(t[e+"Codec"]=r.join(","),i=i.filter((function(e){return-1===r.indexOf(e)})))})),t.unknownCodecs=i}function Ut(e,t,i){var r=t[i];r&&(e[i]=r)}function Gt(e,t){for(var i=e[t],r=t;r--;){var s=e[r];if(!s)return;s.programDateTime=i.programDateTime-1e3*s.duration,i=s}}function Ot(e,t,i){if(e.rawProgramDateTime){if(e.programDateTime=Date.parse(e.rawProgramDateTime),!S(e.programDateTime))return e.programDateTime=null,void(e.rawProgramDateTime=null);i.push(e)}else null!=t&&t.programDateTime&&(e.programDateTime=t.endProgramDateTime)}function Jt(e,t,i,r){e.relurl=t.URI,t.BYTERANGE&&e.setByteRange(t.BYTERANGE),e.level=i,e.sn="initSegment",r&&(e.levelkeys=r),e.initSegment=null}function Yt(e,t,i){e.levelkeys=t;var r=i.encryptedFragments;r.length&&r[r.length-1].levelkeys===t||!Object.keys(t).some((function(e){return t[e].isCommonEncryption}))||r.push(e)}var Nt={MANIFEST:"manifest",LEVEL:"level",AUDIO_TRACK:"audioTrack",SUBTITLE_TRACK:"subtitleTrack"},Pt={MAIN:"main",AUDIO:"audio",SUBTITLE:"subtitle"};function jt(e){switch(e.type){case Nt.AUDIO_TRACK:return Pt.AUDIO;case Nt.SUBTITLE_TRACK:return Pt.SUBTITLE;default:return Pt.MAIN}}function zt(e,t){var i=e.url;return void 0!==i&&0!==i.indexOf("data:")||(i=t.url),i}var Wt=function(){function e(e){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.hls=e,this.registerListeners()}var t=e.prototype;return t.startLoad=function(e){},t.stopLoad=function(){this.destroyInternalLoaders()},t.registerListeners=function(){var e=this.hls;e.on(k.MANIFEST_LOADING,this.onManifestLoading,this),e.on(k.LEVEL_LOADING,this.onLevelLoading,this),e.on(k.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.on(k.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)},t.unregisterListeners=function(){var e=this.hls;e.off(k.MANIFEST_LOADING,this.onManifestLoading,this),e.off(k.LEVEL_LOADING,this.onLevelLoading,this),e.off(k.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.off(k.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)},t.createInternalLoader=function(e){var t=this.hls.config,i=t.pLoader,r=t.loader,s=new(i||r)(t);return this.loaders[e.type]=s,s},t.getInternalLoader=function(e){return this.loaders[e.type]},t.resetInternalLoader=function(e){this.loaders[e]&&delete this.loaders[e]},t.destroyInternalLoaders=function(){for(var e in this.loaders){var t=this.loaders[e];t&&t.destroy(),this.resetInternalLoader(e)}},t.destroy=function(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()},t.onManifestLoading=function(e,t){var i=t.url;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:Nt.MANIFEST,url:i,deliveryDirectives:null})},t.onLevelLoading=function(e,t){var i=t.id,r=t.level,s=t.pathwayId,a=t.url,o=t.deliveryDirectives;this.load({id:i,level:r,pathwayId:s,responseType:"text",type:Nt.LEVEL,url:a,deliveryDirectives:o})},t.onAudioTrackLoading=function(e,t){var i=t.id,r=t.groupId,s=t.url,a=t.deliveryDirectives;this.load({id:i,groupId:r,level:null,responseType:"text",type:Nt.AUDIO_TRACK,url:s,deliveryDirectives:a})},t.onSubtitleTrackLoading=function(e,t){var i=t.id,r=t.groupId,s=t.url,a=t.deliveryDirectives;this.load({id:i,groupId:r,level:null,responseType:"text",type:Nt.SUBTITLE_TRACK,url:s,deliveryDirectives:a})},t.load=function(e){var t,i,r,s=this,a=this.hls.config,o=this.getInternalLoader(e);if(o){var n=o.context;if(n&&n.url===e.url&&n.level===e.level)return void this.hls.logger.trace("[playlist-loader]: playlist request ongoing");this.hls.logger.log("[playlist-loader]: aborting previous loader for type: "+e.type),o.abort()}if(i=e.type===Nt.MANIFEST?a.manifestLoadPolicy.default:l({},a.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),o=this.createInternalLoader(e),S(null==(t=e.deliveryDirectives)?void 0:t.part)&&(e.type===Nt.LEVEL&&null!==e.level?r=this.hls.levels[e.level].details:e.type===Nt.AUDIO_TRACK&&null!==e.id?r=this.hls.audioTracks[e.id].details:e.type===Nt.SUBTITLE_TRACK&&null!==e.id&&(r=this.hls.subtitleTracks[e.id].details),r)){var h=r.partTarget,A=r.targetduration;if(h&&A){var d=1e3*Math.max(3*h,.8*A);i=l({},i,{maxTimeToFirstByteMs:Math.min(d,i.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(d,i.maxTimeToFirstByteMs)})}}var c=i.errorRetry||i.timeoutRetry||{},u={loadPolicy:i,timeout:i.maxLoadTimeMs,maxRetry:c.maxNumRetry||0,retryDelay:c.retryDelayMs||0,maxRetryDelay:c.maxRetryDelayMs||0},p={onSuccess:function(e,t,i,r){var a=s.getInternalLoader(i);s.resetInternalLoader(i.type);var o=e.data;0===o.indexOf("#EXTM3U")?(t.parsing.start=performance.now(),Tt.isMediaPlaylist(o)?s.handleTrackOrLevelPlaylist(e,t,i,r||null,a):s.handleMasterPlaylist(e,t,i,r)):s.handleManifestParsingError(e,i,new Error("no EXTM3U delimiter"),r||null,t)},onError:function(e,t,i,r){s.handleNetworkError(t,i,!1,e,r)},onTimeout:function(e,t,i){s.handleNetworkError(t,i,!0,void 0,e)}};o.load(e,u,p)},t.handleMasterPlaylist=function(e,t,i,r){var s=this.hls,a=e.data,o=zt(e,i),n=Tt.parseMasterPlaylist(a,o);if(n.playlistParsingError)this.handleManifestParsingError(e,i,n.playlistParsingError,r,t);else{var l=n.contentSteering,h=n.levels,A=n.sessionData,d=n.sessionKeys,c=n.startTimeOffset,u=n.variableList;this.variableList=u;var p=Tt.parseMasterPlaylistMedia(a,o,n),g=p.AUDIO,m=void 0===g?[]:g,y=p.SUBTITLES,E=p["CLOSED-CAPTIONS"];m.length&&(m.some((function(e){return!e.url}))||!h[0].audioCodec||h[0].attrs.AUDIO||(this.hls.logger.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),m.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new j({}),bitrate:0,url:""}))),s.trigger(k.MANIFEST_LOADED,{levels:h,audioTracks:m,subtitles:y,captions:E,contentSteering:l,url:o,stats:t,networkDetails:r,sessionData:A,sessionKeys:d,startTimeOffset:c,variableList:u})}},t.handleTrackOrLevelPlaylist=function(e,t,i,r,s){var a=this.hls,o=i.id,n=i.level,l=i.type,h=zt(e,i),A=S(n)?n:S(o)?o:0,d=jt(i),c=Tt.parseLevelPlaylist(e.data,h,A,d,0,this.variableList);if(l===Nt.MANIFEST){var u={attrs:new j({}),bitrate:0,details:c,name:"",url:h};a.trigger(k.MANIFEST_LOADED,{levels:[u],audioTracks:[],url:h,stats:t,networkDetails:r,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}t.parsing.end=performance.now(),i.levelDetails=c,this.handlePlaylistLoaded(c,e,t,i,r,s)},t.handleManifestParsingError=function(e,t,i,r,s){this.hls.trigger(k.ERROR,{type:B.NETWORK_ERROR,details:D.MANIFEST_PARSING_ERROR,fatal:t.type===Nt.MANIFEST,url:e.url,err:i,error:i,reason:i.message,response:e,context:t,networkDetails:r,stats:s})},t.handleNetworkError=function(e,t,i,r,s){void 0===i&&(i=!1);var a="A network "+(i?"timeout":"error"+(r?" (status "+r.code+")":""))+" occurred while loading "+e.type;e.type===Nt.LEVEL?a+=": "+e.level+" id: "+e.id:e.type!==Nt.AUDIO_TRACK&&e.type!==Nt.SUBTITLE_TRACK||(a+=" id: "+e.id+' group-id: "'+e.groupId+'"');var o=new Error(a);this.hls.logger.warn("[playlist-loader]: "+a);var n=D.UNKNOWN,l=!1,h=this.getInternalLoader(e);switch(e.type){case Nt.MANIFEST:n=i?D.MANIFEST_LOAD_TIMEOUT:D.MANIFEST_LOAD_ERROR,l=!0;break;case Nt.LEVEL:n=i?D.LEVEL_LOAD_TIMEOUT:D.LEVEL_LOAD_ERROR,l=!1;break;case Nt.AUDIO_TRACK:n=i?D.AUDIO_TRACK_LOAD_TIMEOUT:D.AUDIO_TRACK_LOAD_ERROR,l=!1;break;case Nt.SUBTITLE_TRACK:n=i?D.SUBTITLE_TRACK_LOAD_TIMEOUT:D.SUBTITLE_LOAD_ERROR,l=!1}h&&this.resetInternalLoader(e.type);var A={type:B.NETWORK_ERROR,details:n,fatal:l,url:e.url,loader:h,context:e,error:o,networkDetails:t,stats:s};if(r){var d=(null==t?void 0:t.url)||e.url;A.response=p({url:d,data:void 0},r)}this.hls.trigger(k.ERROR,A)},t.handlePlaylistLoaded=function(e,t,i,r,s,a){var o=this.hls,n=r.type,l=r.level,h=r.id,A=r.groupId,d=r.deliveryDirectives,c=zt(t,r),u=jt(r),p="number"==typeof r.level&&u===Pt.MAIN?l:void 0;if(e.fragments.length){e.targetduration||(e.playlistParsingError=new Error("Missing Target Duration"));var g=e.playlistParsingError;if(g)o.trigger(k.ERROR,{type:B.NETWORK_ERROR,details:D.LEVEL_PARSING_ERROR,fatal:!1,url:c,error:g,reason:g.message,response:t,context:r,level:p,parent:u,networkDetails:s,stats:i});else switch(e.live&&a&&(a.getCacheAge&&(e.ageHeader=a.getCacheAge()||0),a.getCacheAge&&!isNaN(e.ageHeader)||(e.ageHeader=0)),n){case Nt.MANIFEST:case Nt.LEVEL:o.trigger(k.LEVEL_LOADED,{details:e,level:p||0,id:h||0,stats:i,networkDetails:s,deliveryDirectives:d});break;case Nt.AUDIO_TRACK:o.trigger(k.AUDIO_TRACK_LOADED,{details:e,id:h||0,groupId:A||"",stats:i,networkDetails:s,deliveryDirectives:d});break;case Nt.SUBTITLE_TRACK:o.trigger(k.SUBTITLE_TRACK_LOADED,{details:e,id:h||0,groupId:A||"",stats:i,networkDetails:s,deliveryDirectives:d})}}else{var m=new Error("No Segments found in Playlist");o.trigger(k.ERROR,{type:B.NETWORK_ERROR,details:D.LEVEL_EMPTY_ERROR,fatal:!1,url:c,error:m,reason:m.message,response:t,context:r,level:p,parent:u,networkDetails:s,stats:i})}},e}();function Zt(e,t){var i;try{i=new Event("addtrack")}catch(e){(i=document.createEvent("Event")).initEvent("addtrack",!1,!1)}i.track=e,t.dispatchEvent(i)}function Vt(e,t){var i=e.mode;if("disabled"===i&&(e.mode="hidden"),e.cues&&!e.cues.getCueById(t.id))try{if(e.addCue(t),!e.cues.getCueById(t.id))throw new Error("addCue is failed for: "+t)}catch(i){F.debug("[texttrack-utils]: "+i);try{var r=new self.TextTrackCue(t.startTime,t.endTime,t.text);r.id=t.id,e.addCue(r)}catch(e){F.debug("[texttrack-utils]: Legacy TextTrackCue fallback failed: "+e)}}"disabled"===i&&(e.mode=i)}function Ht(e){var t=e.mode;if("disabled"===t&&(e.mode="hidden"),e.cues)for(var i=e.cues.length;i--;)e.removeCue(e.cues[i]);"disabled"===t&&(e.mode=t)}function Xt(e,t,i,r){var s=e.mode;if("disabled"===s&&(e.mode="hidden"),e.cues&&e.cues.length>0)for(var a=$t(e.cues,t,i),o=0;o<a.length;o++)r&&!r(a[o])||e.removeCue(a[o]);"disabled"===s&&(e.mode=s)}function _t(e,t){if(t<e[0].startTime)return 0;var i=e.length-1;if(t>e[i].endTime)return-1;for(var r=0,s=i;r<=s;){var a=Math.floor((s+r)/2);if(t<e[a].startTime)s=a-1;else{if(!(t>e[a].startTime&&r<i))return a;r=a+1}}return e[r].startTime-t<t-e[s].startTime?r:s}function $t(e,t,i){var r=[],s=_t(e,t);if(s>-1)for(var a=s,o=e.length;a<o;a++){var n=e[a];if(n.startTime>=t&&n.endTime<=i)r.push(n);else if(n.startTime>i)return r}return r}function ei(e){for(var t=[],i=0;i<e.length;i++){var r=e[i];"subtitles"!==r.kind&&"captions"!==r.kind||!r.label||t.push(e[i])}return t}var ti={audioId3:"org.id3",dateRange:"com.apple.quicktime.HLS",emsg:"https://aomedia.org/emsg/ID3"};function ii(e){if(!(e.size<2)){var t=ve(e.data,!0),i=new Uint8Array(e.data.subarray(t.length+1));return{key:e.type,info:t,data:i.buffer}}}function ri(e){if(!(e.size<2)){if("TXXX"===e.type){var t=1,i=ve(e.data.subarray(t),!0);t+=i.length+1;var r=ve(e.data.subarray(t));return{key:e.type,info:i,data:r}}var s=ve(e.data.subarray(1));return{key:e.type,info:"",data:s}}}function si(e){if("WXXX"===e.type){if(e.size<2)return;var t=1,i=ve(e.data.subarray(t),!0);t+=i.length+1;var r=ve(e.data.subarray(t));return{key:e.type,info:i,data:r}}var s=ve(e.data);return{key:e.type,info:"",data:s}}function ai(e,t,i){return void 0===t&&(t=0),void 0===i&&(i=1/0),oi(e,t,i,Uint8Array)}function oi(e,t,i,r){var s=ni(e),a=1;"BYTES_PER_ELEMENT"in r&&(a=r.BYTES_PER_ELEMENT);var o=li(e)?e.byteOffset:0,n=(o+e.byteLength)/a,l=(o+t)/a,h=Math.floor(Math.max(0,Math.min(l,n)));return new r(s,h,Math.floor(Math.min(h+Math.max(i,0),n))-h)}function ni(e){return e instanceof ArrayBuffer?e:e.buffer}function li(e){return e&&e.buffer instanceof ArrayBuffer&&void 0!==e.byteLength&&void 0!==e.byteOffset}function hi(e){return e instanceof ArrayBuffer?e:0==e.byteOffset&&e.byteLength==e.buffer.byteLength?e.buffer:new Uint8Array(e).buffer}function Ai(e){return btoa(String.fromCharCode.apply(String,e))}function di(e,t){if(e<0)return-di(-e,t);var i=Math.pow(10,t);if(Math.abs(e*i%1-.5)<Number.EPSILON){var r=Math.floor(e*i);return(r%2==0?r:r+1)/i}return Math.round(e*i)/i}function ci(e,t){var i=new URL(e),r=new URL(t);if(i.origin!==r.origin)return e;for(var s=i.pathname.split("/").slice(1),a=r.pathname.split("/").slice(1,-1);s[0]===a[0];)s.shift(),a.shift();for(;a.length;)a.shift(),s.unshift("..");return s.join("/")}function ui(){try{return crypto.randomUUID()}catch(r){try{var e=URL.createObjectURL(new Blob),t=e.toString();return URL.revokeObjectURL(e),t.slice(t.lastIndexOf("/")+1)}catch(e){var i=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=(i+16*Math.random())%16|0;return i=Math.floor(i/16),("x"==e?t:3&t|8).toString(16)}))}}}function pi(e){var t={key:e.type,description:"",data:"",mimeType:null,pictureType:null},i=3;if(!(e.size<2))if(e.data[0]===i){var r=e.data.subarray(1).indexOf(0);if(-1!==r){var s=ve(ai(e.data,1,r)),a=e.data[2+r],o=e.data.subarray(3+r).indexOf(0);if(-1!==o){var n,l=ve(ai(e.data,3+r,o));return n="--\x3e"===s?ve(ai(e.data,4+r+o)):hi(e.data.subarray(4+r+o)),t.mimeType=s,t.pictureType=a,t.description=l,t.data=n,t}}}else console.log("Ignore frame with unrecognized character encoding")}function gi(e){return"PRIV"===e.type?ii(e):"W"===e.type[0]?si(e):"APIC"===e.type?pi(e):ri(e)}function mi(e,t){var i=0;return i=(127&e[t])<<21,i|=(127&e[t+1])<<14,i|=(127&e[t+2])<<7,i|=127&e[t+3]}function yi(e){var t=String.fromCharCode(e[0],e[1],e[2],e[3]),i=mi(e,4),r=10;return{type:t,size:i,data:e.subarray(r,r+i)}}function Ei(e,t){return t+10<=e.length&&51===e[t]&&68===e[t+1]&&73===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128}function Ci(e,t){return t+10<=e.length&&73===e[t]&&68===e[t+1]&&51===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128}var fi=10,Ii=10;function wi(e){for(var t=0,i=[];Ci(e,t);){var r=mi(e,t+6);e[t+5]>>6&1&&(t+=fi);for(var s=(t+=fi)+r;t+Ii<s;){var a=yi(e.subarray(t)),o=gi(a);o&&i.push(o),t+=a.size+fi}Ei(e,t)&&(t+=fi)}return i}function Si(e){return e&&"PRIV"===e.key&&"com.apple.streaming.transportStreamTimestamp"===e.info}var Mi=.25;function vi(){if("undefined"!=typeof self)return self.VTTCue||self.TextTrackCue}function ki(e,t,i,r,s){var a=new e(t,i,"");try{a.value=r,s&&(a.type=s)}catch(o){a=new e(t,i,JSON.stringify(s?p({type:s},r):r))}return a}var Bi=function(){var e=vi();try{e&&new e(0,Number.POSITIVE_INFINITY,"")}catch(e){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY}();function Di(e){return Uint8Array.from(e.replace(/^0x/,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" ")).buffer}var bi=function(){function e(e){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=e,this._registerListeners()}var t=e.prototype;return t.destroy=function(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=null},t._registerListeners=function(){var e=this.hls;e.on(k.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(k.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(k.MANIFEST_LOADING,this.onManifestLoading,this),e.on(k.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.on(k.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(k.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(k.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this)},t._unregisterListeners=function(){var e=this.hls;e.off(k.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(k.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(k.MANIFEST_LOADING,this.onManifestLoading,this),e.off(k.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.off(k.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(k.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(k.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this)},t.onMediaAttached=function(e,t){this.media=t.media},t.onMediaDetaching=function(){this.id3Track&&(Ht(this.id3Track),this.id3Track=null),this.media=null,this.dateRangeCuesAppended={}},t.onManifestLoading=function(){this.dateRangeCuesAppended={}},t.createTrack=function(e){var t=this.getID3Track(e.textTracks);return t.mode="hidden",t},t.getID3Track=function(e){if(this.media){for(var t=0;t<e.length;t++){var i=e[t];if("metadata"===i.kind&&"id3"===i.label)return Zt(i,this.media),i}return this.media.addTextTrack("metadata","id3")}},t.onFragParsingMetadata=function(e,t){if(this.media){var i=this.hls.config,r=i.enableEmsgMetadataCues,s=i.enableID3MetadataCues;if(r||s){var a=t.samples;this.id3Track||(this.id3Track=this.createTrack(this.media));var o=vi();if(o)for(var n=0;n<a.length;n++){var l=a[n].type;if((l!==ti.emsg||r)&&s){var h=wi(a[n].data);if(h){var A=a[n].pts,d=A+a[n].duration;d>Bi&&(d=Bi),d-A<=0&&(d=A+Mi);for(var c=0;c<h.length;c++){var u=h[c];if(!Si(u)){this.updateId3CueEnds(A,l);var p=ki(o,A,d,u,l);p&&this.id3Track.addCue(p)}}}}}}}},t.updateId3CueEnds=function(e,t){var i,r=null==(i=this.id3Track)?void 0:i.cues;if(r)for(var s=r.length;s--;){var a=r[s];a.type===t&&a.startTime<e&&a.endTime===Bi&&(a.endTime=e)}},t.onBufferFlushing=function(e,t){var i=t.startOffset,r=t.endOffset,s=t.type,a=this.id3Track,o=this.hls;if(o){var n=o.config,l=n.enableEmsgMetadataCues,h=n.enableID3MetadataCues;a&&(l||h)&&Xt(a,i,r,"audio"===s?function(e){return e.type===ti.audioId3&&h}:"video"===s?function(e){return e.type===ti.emsg&&l}:function(e){return e.type===ti.audioId3&&h||e.type===ti.emsg&&l})}},t.onLevelUpdated=function(e,t){var i=t.details;this.updateDateRangeCues(i,!0)},t.onLevelPtsUpdated=function(e,t){Math.abs(t.drift)>.01&&this.updateDateRangeCues(t.details)},t.updateDateRangeCues=function(e,t){var i=this;if(this.media&&e.hasProgramDateTime&&this.hls.config.enableDateRangeMetadataCues){var r=this.dateRangeCuesAppended,s=this.id3Track,a=e.dateRanges,o=Object.keys(a);if(s&&t)for(var n=Object.keys(r).filter((function(e){return!o.includes(e)})),l=function(){var e=n[h];Object.keys(r[e].cues).forEach((function(t){s.removeCue(r[e].cues[t])})),delete r[e]},h=n.length;h--;)l();var A=e.fragments[e.fragments.length-1];if(0!==o.length&&S(null==A?void 0:A.programDateTime)){this.id3Track||(this.id3Track=this.createTrack(this.media));for(var d=vi(),c=function(){var e=o[u],t=a[e],s=t.startTime,n=r[e],l=(null==n?void 0:n.cues)||{},h=(null==n?void 0:n.durationKnown)||!1,A=Bi,c=t.duration;if(t.endDate&&null!==c)A=s+c,h=!0;else if(t.endOnNext&&!h){var p=o.reduce((function(e,i){if(i!==t.id){var r=a[i];if(r.class===t.class&&r.startDate>t.startDate&&(!e||t.startDate<e.startDate))return r}return e}),null);p&&(A=p.startTime,h=!0)}for(var g=Object.keys(t.attr),m=0;m<g.length;m++){var y=g[m];if(W(y)){var E=l[y];if(E)h&&!n.durationKnown?E.endTime=A:Math.abs(E.startTime-s)>.01&&(E.startTime=s,E.endTime=A);else if(d){var C=t.attr[y];Z(y)&&(C=Di(C));var f=ki(d,s,A,{key:y,data:C},ti.dateRange);f&&(f.id=e,i.id3Track.addCue(f),l[y]=f)}}}r[e]={cues:l,dateRange:t,durationKnown:h}},u=0;u<o.length;u++)c()}}},e}(),Qi=function(){function e(e){var t=this;this.hls=void 0,this.config=void 0,this.media=null,this.levelDetails=null,this.currentTime=0,this.stallCount=0,this._latency=null,this._targetLatencyUpdated=!1,this.onTimeupdate=function(){var e=t.media,i=t.levelDetails;if(e&&i){t.currentTime=e.currentTime;var r=t.computeLatency();if(null!==r){t._latency=r;var s=t.config,a=s.lowLatencyMode,o=s.maxLiveSyncPlaybackRate;if(a&&1!==o&&i.live){var n=t.targetLatency;if(null!==n){var l=r-n;if(l<Math.min(t.maxLatency,n+i.targetduration)&&l>.05&&t.forwardBufferLength>1){var h=Math.min(2,Math.max(1,o)),A=Math.round(2/(1+Math.exp(-.75*l-t.edgeStalled))*20)/20;e.playbackRate=Math.min(h,Math.max(1,A))}else 1!==e.playbackRate&&0!==e.playbackRate&&(e.playbackRate=1)}}}}},this.hls=e,this.config=e.config,this.registerListeners()}var t=e.prototype;return t.destroy=function(){this.unregisterListeners(),this.onMediaDetaching(),this.levelDetails=null,this.hls=null},t.registerListeners=function(){this.hls.on(k.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(k.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.on(k.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(k.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.on(k.ERROR,this.onError,this)},t.unregisterListeners=function(){this.hls.off(k.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(k.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.off(k.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(k.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.off(k.ERROR,this.onError,this)},t.onMediaAttached=function(e,t){this.media=t.media,this.media.addEventListener("timeupdate",this.onTimeupdate)},t.onMediaDetaching=function(){this.media&&(this.media.removeEventListener("timeupdate",this.onTimeupdate),this.media=null)},t.onManifestLoading=function(){this.levelDetails=null,this._latency=null,this.stallCount=0},t.onLevelUpdated=function(e,t){var i=t.details;this.levelDetails=i,i.advanced&&this.onTimeupdate(),!i.live&&this.media&&this.media.removeEventListener("timeupdate",this.onTimeupdate)},t.onError=function(e,t){var i;t.details===D.BUFFER_STALLED_ERROR&&(this.stallCount++,null!=(i=this.levelDetails)&&i.live&&this.hls.logger.warn("[latency-controller]: Stall detected, adjusting target latency"))},t.estimateLiveEdge=function(){var e=this.levelDetails;return null===e?null:e.edge+e.age},t.computeLatency=function(){var e=this.estimateLiveEdge();return null===e?null:e-this.currentTime},a(e,[{key:"latency",get:function(){return this._latency||0}},{key:"maxLatency",get:function(){var e=this.config,t=this.levelDetails;return void 0!==e.liveMaxLatencyDuration?e.liveMaxLatencyDuration:t?e.liveMaxLatencyDurationCount*t.targetduration:0}},{key:"targetLatency",get:function(){var e=this.levelDetails;if(null===e)return null;var t=e.holdBack,i=e.partHoldBack,r=e.targetduration,s=this.config,a=s.liveSyncDuration,o=s.liveSyncDurationCount,n=s.lowLatencyMode,l=this.hls.userConfig,h=n&&i||t;(this._targetLatencyUpdated||l.liveSyncDuration||l.liveSyncDurationCount||0===h)&&(h=void 0!==a?a:o*r);var A=r;return h+Math.min(this.stallCount*this.config.liveSyncOnStallIncrease,A)},set:function(e){this.stallCount=0,this.config.liveSyncDuration=e,this._targetLatencyUpdated=!0}},{key:"liveSyncPosition",get:function(){var e=this.estimateLiveEdge(),t=this.targetLatency,i=this.levelDetails;if(null===e||null===t||null===i)return null;var r=i.edge,s=e-t-this.edgeStalled,a=r-i.totalduration,o=r-(this.config.lowLatencyMode&&i.partTarget||i.targetduration);return Math.min(Math.max(a,s),o)}},{key:"drift",get:function(){var e=this.levelDetails;return null===e?1:e.drift}},{key:"edgeStalled",get:function(){var e=this.levelDetails;if(null===e)return 0;var t=3*(this.config.lowLatencyMode&&e.partTarget||e.targetduration);return Math.max(e.age-t,0)}},{key:"forwardBufferLength",get:function(){var e=this.media,t=this.levelDetails;if(!e||!t)return 0;var i=e.buffered.length;return(i?e.buffered.end(i-1):t.edge)-this.currentTime}}])}(),Ri=["NONE","TYPE-0","TYPE-1",null];function Ti(e){return Ri.indexOf(e)>-1}var Li=["SDR","PQ","HLG"];function Ki(e){return!!e&&Li.indexOf(e)>-1}var qi={No:"",Yes:"YES",v2:"v2"};function xi(e){var t=e.canSkipUntil,i=e.canSkipDateRanges,r=e.age;return t&&r<t/2?i?qi.v2:qi.Yes:qi.No}var Fi=function(){function e(e,t,i){this.msn=void 0,this.part=void 0,this.skip=void 0,this.msn=e,this.part=t,this.skip=i}return e.prototype.addDirectives=function(e){var t=new self.URL(e);return void 0!==this.msn&&t.searchParams.set("_HLS_msn",this.msn.toString()),void 0!==this.part&&t.searchParams.set("_HLS_part",this.part.toString()),this.skip&&t.searchParams.set("_HLS_skip",this.skip),t.href},e}(),Ui=function(){function e(e){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=[e.url],this._attrs=[e.attrs],this.bitrate=e.bitrate,e.details&&(this.details=e.details),this.id=e.id||0,this.name=e.name,this.width=e.width||0,this.height=e.height||0,this.frameRate=e.attrs.optionalFloat("FRAME-RATE",0),this._avgBitrate=e.attrs.decimalInteger("AVERAGE-BANDWIDTH"),this.audioCodec=e.audioCodec,this.videoCodec=e.videoCodec,this.codecSet=[e.videoCodec,e.audioCodec].filter((function(e){return!!e})).map((function(e){return e.substring(0,4)})).join(","),this.addGroupId("audio",e.attrs.AUDIO),this.addGroupId("text",e.attrs.SUBTITLES)}var t=e.prototype;return t.hasAudioGroup=function(e){return Gi(this._audioGroups,e)},t.hasSubtitleGroup=function(e){return Gi(this._subtitleGroups,e)},t.addGroupId=function(e,t){if(t)if("audio"===e){var i=this._audioGroups;i||(i=this._audioGroups=[]),-1===i.indexOf(t)&&i.push(t)}else if("text"===e){var r=this._subtitleGroups;r||(r=this._subtitleGroups=[]),-1===r.indexOf(t)&&r.push(t)}},t.addFallback=function(){},a(e,[{key:"maxBitrate",get:function(){return Math.max(this.realBitrate,this.bitrate)}},{key:"averageBitrate",get:function(){return this._avgBitrate||this.realBitrate||this.bitrate}},{key:"attrs",get:function(){return this._attrs[0]}},{key:"codecs",get:function(){return this.attrs.CODECS||""}},{key:"pathwayId",get:function(){return this.attrs["PATHWAY-ID"]||"."}},{key:"videoRange",get:function(){return this.attrs["VIDEO-RANGE"]||"SDR"}},{key:"score",get:function(){return this.attrs.optionalFloat("SCORE",0)}},{key:"uri",get:function(){return this.url[0]||""}},{key:"audioGroups",get:function(){return this._audioGroups}},{key:"subtitleGroups",get:function(){return this._subtitleGroups}},{key:"urlId",get:function(){return 0},set:function(e){}},{key:"audioGroupIds",get:function(){return this.audioGroups?[this.audioGroupId]:void 0}},{key:"textGroupIds",get:function(){return this.subtitleGroups?[this.textGroupId]:void 0}},{key:"audioGroupId",get:function(){var e;return null==(e=this.audioGroups)?void 0:e[0]}},{key:"textGroupId",get:function(){var e;return null==(e=this.subtitleGroups)?void 0:e[0]}}])}();function Gi(e,t){return!(!t||!e)&&-1!==e.indexOf(t)}function Oi(e,t){var i=t.startPTS;if(S(i)){var r,s=0;t.sn>e.sn?(s=i-e.start,r=e):(s=e.start-i,r=t),r.duration!==s&&(r.duration=s)}else t.sn>e.sn?e.cc===t.cc&&e.minEndPTS?t.start=e.start+(e.minEndPTS-e.start):t.start=e.start+e.duration:t.start=Math.max(e.start-t.duration,0)}function Ji(e,t,i,r,s,a){r-i<=0&&(F.warn("Fragment should have a positive duration",t),r=i+t.duration,a=s+t.duration);var o=i,n=r,l=t.startPTS,h=t.endPTS;if(S(l)){var A=Math.abs(l-i);S(t.deltaPTS)?t.deltaPTS=Math.max(A,t.deltaPTS):t.deltaPTS=A,o=Math.max(i,l),i=Math.min(i,l),s=Math.min(s,t.startDTS),n=Math.min(r,h),r=Math.max(r,h),a=Math.max(a,t.endDTS)}var d=i-t.start;0!==t.start&&(t.start=i),t.duration=r-t.start,t.startPTS=i,t.maxStartPTS=o,t.startDTS=s,t.endPTS=r,t.minEndPTS=n,t.endDTS=a;var c,u=t.sn;if(!e||u<e.startSN||u>e.endSN)return 0;var p=u-e.startSN,g=e.fragments;for(g[p]=t,c=p;c>0;c--)Oi(g[c],g[c-1]);for(c=p;c<g.length-1;c++)Oi(g[c],g[c+1]);return e.fragmentHint&&Oi(g[g.length-1],e.fragmentHint),e.PTSKnown=e.alignedSliding=!0,d}function Yi(e,t){for(var i=null,r=e.fragments,s=r.length-1;s>=0;s--){var a=r[s].initSegment;if(a){i=a;break}}e.fragmentHint&&delete e.fragmentHint.endPTS;var o,n=0;ji(e,t,(function(e,r){e.relurl&&(n=e.cc-r.cc),S(e.startPTS)&&S(e.endPTS)&&(r.start=r.startPTS=e.startPTS,r.startDTS=e.startDTS,r.maxStartPTS=e.maxStartPTS,r.endPTS=e.endPTS,r.endDTS=e.endDTS,r.minEndPTS=e.minEndPTS,r.duration=e.endPTS-e.startPTS,r.duration&&(o=r),t.PTSKnown=t.alignedSliding=!0),r.elementaryStreams=e.elementaryStreams,r.loader=e.loader,r.stats=e.stats,e.initSegment&&(r.initSegment=e.initSegment,i=e.initSegment)}));var l=t.fragmentHint?t.fragments.concat(t.fragmentHint):t.fragments;if(i&&l.forEach((function(e){var t;!e||e.initSegment&&e.initSegment.relurl!==(null==(t=i)?void 0:t.relurl)||(e.initSegment=i)})),t.skippedSegments)if(t.deltaUpdateFailed=t.fragments.some((function(e){return!e})),t.deltaUpdateFailed){F.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(var h=t.skippedSegments;h--;)t.fragments.shift();t.startSN=t.fragments[0].sn,t.startCC=t.fragments[0].cc}else{t.canSkipDateRanges&&(t.dateRanges=Ni(e.dateRanges,t));var A=e.fragments.filter((function(e){return e.rawProgramDateTime}));if(e.hasProgramDateTime&&!t.hasProgramDateTime)for(var d=1;d<l.length;d++)null===l[d].programDateTime&&Ot(l[d],l[d-1],A);Lt(A,t)}var c=t.fragments;if(n){F.warn("discontinuity sliding from playlist, take drift into account");for(var u=0;u<c.length;u++)c[u].cc+=n}t.skippedSegments&&(t.startCC=t.fragments[0].cc),Pi(e.partList,t.partList,(function(e,t){t.elementaryStreams=e.elementaryStreams,t.stats=e.stats})),o?Ji(t,o,o.startPTS,o.endPTS,o.startDTS,o.endDTS):zi(e,t),c.length&&(t.totalduration=t.edge-c[0].start),t.driftStartTime=e.driftStartTime,t.driftStart=e.driftStart;var p=t.advancedDateTime;if(t.advanced&&p){var g=t.edge;t.driftStart||(t.driftStartTime=p,t.driftStart=g),t.driftEndTime=p,t.driftEnd=g}else t.driftEndTime=e.driftEndTime,t.driftEnd=e.driftEnd,t.advancedDateTime=e.advancedDateTime}function Ni(e,t){var i=t.dateRanges,r=t.recentlyRemovedDateranges,s=l({},e);r&&r.forEach((function(e){delete s[e]}));var a=Object.keys(s).length;return a&&Object.keys(i).forEach((function(e){var t=s[e],r=new V(i[e].attr,t);r.isValid?(s[e]=r,t||(r.tagOrder+=a)):F.warn('Ignoring invalid Playlist Delta Update DATERANGE tag: "'+JSON.stringify(i[e].attr)+'"')})),s}function Pi(e,t,i){if(e&&t)for(var r=0,s=0,a=e.length;s<=a;s++){var o=e[s],n=t[s+r];o&&n&&o.index===n.index&&o.fragment.sn===n.fragment.sn?i(o,n):r--}}function ji(e,t,i){for(var r=t.skippedSegments,s=Math.max(e.startSN,t.startSN)-t.startSN,a=(e.fragmentHint?1:0)+(r?t.endSN:Math.min(e.endSN,t.endSN))-t.startSN,o=t.startSN-e.startSN,n=t.fragmentHint?t.fragments.concat(t.fragmentHint):t.fragments,l=e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments,h=s;h<=a;h++){var A=l[o+h],d=n[h];r&&!d&&A&&(d=t.fragments[h]=A),A&&d&&i(A,d)}}function zi(e,t){var i=t.startSN+t.skippedSegments-e.startSN,r=e.fragments;i<0||i>=r.length||Wi(t,r[i].start)}function Wi(e,t){if(t){for(var i=e.fragments,r=e.skippedSegments;r<i.length;r++)i[r].start+=t;e.fragmentHint&&(e.fragmentHint.start+=t)}}function Zi(e,t){void 0===t&&(t=1/0);var i=1e3*e.targetduration;if(e.updated){var r=e.fragments,s=4;if(r.length&&i*s>t){var a=1e3*r[r.length-1].duration;a<i&&(i=a)}}else i/=2;return Math.round(i)}function Vi(e,t,i){if(!e)return null;var r=e.fragments[t-e.startSN];return r||((r=e.fragmentHint)&&r.sn===t?r:t<e.startSN&&i&&i.sn===t?i:null)}function Hi(e,t,i){return e?Xi(e.partList,t,i):null}function Xi(e,t,i){if(e)for(var r=e.length;r--;){var s=e[r];if(s.index===i&&s.fragment.sn===t)return s}return null}function _i(e){e.forEach((function(e,t){var i=e.details;null!=i&&i.fragments&&i.fragments.forEach((function(e){e.level=t}))}))}function $i(e){switch(e.details){case D.FRAG_LOAD_TIMEOUT:case D.KEY_LOAD_TIMEOUT:case D.LEVEL_LOAD_TIMEOUT:case D.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function er(e,t){var i=$i(t);return e.default[(i?"timeout":"error")+"Retry"]}function tr(e,t){var i="linear"===e.backoff?1:Math.pow(2,t);return Math.min(i*e.retryDelayMs,e.maxRetryDelayMs)}function ir(e){return p(p({},e),{errorRetry:null,timeoutRetry:null})}function rr(e,t,i,r){if(!e)return!1;var s=null==r?void 0:r.code,a=t<e.maxNumRetry&&(sr(s)||!!i);return e.shouldRetry?e.shouldRetry(e,t,i,r,a):a}function sr(e){return 0===e&&!1===navigator.onLine||!!e&&(e<400||e>499)}var ar={search:function(e,t){for(var i=0,r=e.length-1,s=null,a=null;i<=r;){var o=t(a=e[s=(i+r)/2|0]);if(o>0)i=s+1;else{if(!(o<0))return a;r=s-1}}return null}};function or(e,t,i){if(null===t||!Array.isArray(e)||!e.length||!S(t))return null;if(t<(e[0].programDateTime||0))return null;if(t>=(e[e.length-1].endProgramDateTime||0))return null;i=i||0;for(var r=0;r<e.length;++r){var s=e[r];if(Ar(t,i,s))return s}return null}function nr(e,t,i,r,s){void 0===i&&(i=0),void 0===r&&(r=0),void 0===s&&(s=.005);var a=null;if(e){a=t[1+e.sn-t[0].sn]||null;var o=e.endDTS-i;o>0&&o<15e-7&&(i+=15e-7),a&&e.level!==a.level&&a.end<=e.end&&(a=t[2+e.sn-t[0].sn]||null)}else 0===i&&0===t[0].start&&(a=t[0]);if(a&&((!e||e.level===a.level)&&0===hr(i,r,a)||lr(a,e,Math.min(s,r))))return a;var n=ar.search(t,hr.bind(null,i,r));return!n||n===e&&a?a:n}function lr(e,t,i){if(t&&0===t.start&&t.level<e.level&&(t.endPTS||0)>0){var r=t.tagList.reduce((function(e,t){return"INF"===t[0]&&(e+=parseFloat(t[1])),e}),i);return e.start<=r}return!1}function hr(e,t,i){if(void 0===e&&(e=0),void 0===t&&(t=0),i.start<=e&&i.start+i.duration>e)return 0;var r=Math.min(t,i.duration+(i.deltaPTS?i.deltaPTS:0));return i.start+i.duration-r<=e?1:i.start-r>e&&i.start?-1:0}function Ar(e,t,i){var r=1e3*Math.min(t,i.duration+(i.deltaPTS?i.deltaPTS:0));return(i.endProgramDateTime||0)-r>e}function dr(e,t){return ar.search(e,(function(e){return e.cc<t?1:e.cc>t?-1:0}))}function cr(e,t,i){if(e&&e.startCC<=t&&e.endCC>=t){var r=i.start,s=i.end;return ar.search(e.fragments,(function(e){return e.cc<t||e.end<=r?1:e.cc>t||e.start>=s?-1:0}))}return null}var ur={DoNothing:0,SendEndCallback:1,SendAlternateToPenaltyBox:2,RemoveAlternatePermanently:3,InsertDiscontinuity:4,RetryRequest:5},pr={None:0,MoveAllAlternatesMatchingHost:1,MoveAllAlternatesMatchingHDCP:2,SwitchToSDR:4},gr=function(e){function t(t){var i;return(i=e.call(this,"error-controller",t.logger)||this).hls=void 0,i.playlistError=0,i.penalizedRenditions={},i.hls=t,i.registerListeners(),i}A(t,e);var i=t.prototype;return i.registerListeners=function(){var e=this.hls;e.on(k.ERROR,this.onError,this),e.on(k.MANIFEST_LOADING,this.onManifestLoading,this),e.on(k.LEVEL_UPDATED,this.onLevelUpdated,this)},i.unregisterListeners=function(){var e=this.hls;e&&(e.off(k.ERROR,this.onError,this),e.off(k.ERROR,this.onErrorOut,this),e.off(k.MANIFEST_LOADING,this.onManifestLoading,this),e.off(k.LEVEL_UPDATED,this.onLevelUpdated,this))},i.destroy=function(){this.unregisterListeners(),this.hls=null,this.penalizedRenditions={}},i.startLoad=function(e){},i.stopLoad=function(){this.playlistError=0},i.getVariantLevelIndex=function(e){return(null==e?void 0:e.type)===Pt.MAIN?e.level:this.hls.loadLevel},i.onManifestLoading=function(){this.playlistError=0,this.penalizedRenditions={}},i.onLevelUpdated=function(){this.playlistError=0},i.onError=function(e,t){var i;if(!t.fatal){var r=this.hls,s=t.context;switch(t.details){case D.FRAG_LOAD_ERROR:case D.FRAG_LOAD_TIMEOUT:case D.KEY_LOAD_ERROR:case D.KEY_LOAD_TIMEOUT:return void(t.errorAction=this.getFragRetryOrSwitchAction(t));case D.FRAG_PARSING_ERROR:if(null!=(i=t.frag)&&i.gap)return void(t.errorAction=mr());case D.FRAG_GAP:case D.FRAG_DECRYPT_ERROR:return t.errorAction=this.getFragRetryOrSwitchAction(t),void(t.errorAction.action=ur.SendAlternateToPenaltyBox);case D.LEVEL_EMPTY_ERROR:case D.LEVEL_PARSING_ERROR:var a,o,n=t.parent===Pt.MAIN?t.level:r.loadLevel;return void(t.details===D.LEVEL_EMPTY_ERROR&&null!=(a=t.context)&&null!=(o=a.levelDetails)&&o.live?t.errorAction=this.getPlaylistRetryOrSwitchAction(t,n):(t.levelRetry=!1,t.errorAction=this.getLevelSwitchAction(t,n)));case D.LEVEL_LOAD_ERROR:case D.LEVEL_LOAD_TIMEOUT:return void("number"==typeof(null==s?void 0:s.level)&&(t.errorAction=this.getPlaylistRetryOrSwitchAction(t,s.level)));case D.AUDIO_TRACK_LOAD_ERROR:case D.AUDIO_TRACK_LOAD_TIMEOUT:case D.SUBTITLE_LOAD_ERROR:case D.SUBTITLE_TRACK_LOAD_TIMEOUT:if(s){var l=r.levels[r.loadLevel];if(l&&(s.type===Nt.AUDIO_TRACK&&l.hasAudioGroup(s.groupId)||s.type===Nt.SUBTITLE_TRACK&&l.hasSubtitleGroup(s.groupId)))return t.errorAction=this.getPlaylistRetryOrSwitchAction(t,r.loadLevel),t.errorAction.action=ur.SendAlternateToPenaltyBox,void(t.errorAction.flags=pr.MoveAllAlternatesMatchingHost)}return;case D.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:var h=r.levels[r.loadLevel],A=null==h?void 0:h.attrs["HDCP-LEVEL"];return void(A?t.errorAction={action:ur.SendAlternateToPenaltyBox,flags:pr.MoveAllAlternatesMatchingHDCP,hdcpLevel:A}:this.keySystemError(t));case D.BUFFER_ADD_CODEC_ERROR:case D.REMUX_ALLOC_ERROR:case D.BUFFER_APPEND_ERROR:var d;return void(t.errorAction||(t.errorAction=this.getLevelSwitchAction(t,null!=(d=t.level)?d:r.loadLevel)));case D.INTERNAL_EXCEPTION:case D.BUFFER_APPENDING_ERROR:case D.BUFFER_FULL_ERROR:case D.LEVEL_SWITCH_ERROR:case D.BUFFER_STALLED_ERROR:case D.BUFFER_SEEK_OVER_HOLE:case D.BUFFER_NUDGE_ON_STALL:return void(t.errorAction=mr())}t.type===B.KEY_SYSTEM_ERROR&&this.keySystemError(t)}},i.keySystemError=function(e){var t=this.getVariantLevelIndex(e.frag);e.levelRetry=!1,e.errorAction=this.getLevelSwitchAction(e,t)},i.getPlaylistRetryOrSwitchAction=function(e,t){var i=er(this.hls.config.playlistLoadPolicy,e),r=this.playlistError++;if(rr(i,r,$i(e),e.response))return{action:ur.RetryRequest,flags:pr.None,retryConfig:i,retryCount:r};var s=this.getLevelSwitchAction(e,t);return i&&(s.retryConfig=i,s.retryCount=r),s},i.getFragRetryOrSwitchAction=function(e){var t=this.hls,i=this.getVariantLevelIndex(e.frag),r=t.levels[i],s=t.config,a=s.fragLoadPolicy,o=s.keyLoadPolicy,n=er(e.details.startsWith("key")?o:a,e),l=t.levels.reduce((function(e,t){return e+t.fragmentError}),0);if(r&&(e.details!==D.FRAG_GAP&&r.fragmentError++,rr(n,l,$i(e),e.response)))return{action:ur.RetryRequest,flags:pr.None,retryConfig:n,retryCount:l};var h=this.getLevelSwitchAction(e,i);return n&&(h.retryConfig=n,h.retryCount=l),h},i.getLevelSwitchAction=function(e,t){var i=this.hls;null==t&&(t=i.loadLevel);var r=this.hls.levels[t];if(r){var s,a,o=e.details;r.loadError++,o===D.BUFFER_APPEND_ERROR&&r.fragmentError++;var n=-1,l=i.levels,h=i.loadLevel,A=i.minAutoLevel,d=i.maxAutoLevel;i.autoLevelEnabled||(i.loadLevel=-1);for(var c,u=null==(s=e.frag)?void 0:s.type,p=(u===Pt.AUDIO&&o===D.FRAG_PARSING_ERROR||"audio"===e.sourceBufferName&&(o===D.BUFFER_ADD_CODEC_ERROR||o===D.BUFFER_APPEND_ERROR))&&l.some((function(e){var t=e.audioCodec;return r.audioCodec!==t})),g="video"===e.sourceBufferName&&(o===D.BUFFER_ADD_CODEC_ERROR||o===D.BUFFER_APPEND_ERROR)&&l.some((function(e){var t=e.codecSet,i=e.audioCodec;return r.codecSet!==t&&r.audioCodec===i})),m=null!=(a=e.context)?a:{},y=m.type,E=m.groupId,C=function(){var t=(f+h)%l.length;if(t!==h&&t>=A&&t<=d&&0===l[t].loadError){var i,s,a=l[t];if(o===D.FRAG_GAP&&u===Pt.MAIN&&e.frag){var c=l[t].details;if(c){var m=nr(e.frag,c.fragments,e.frag.start);if(null!=m&&m.gap)return 0}}else{if(y===Nt.AUDIO_TRACK&&a.hasAudioGroup(E)||y===Nt.SUBTITLE_TRACK&&a.hasSubtitleGroup(E))return 0;if(u===Pt.AUDIO&&null!=(i=r.audioGroups)&&i.some((function(e){return a.hasAudioGroup(e)}))||u===Pt.SUBTITLE&&null!=(s=r.subtitleGroups)&&s.some((function(e){return a.hasSubtitleGroup(e)}))||p&&r.audioCodec===a.audioCodec||!p&&r.audioCodec!==a.audioCodec||g&&r.codecSet===a.codecSet)return 0}return n=t,1}},f=l.length;f--&&(0===(c=C())||1!==c););if(n>-1&&i.loadLevel!==n)return e.levelRetry=!0,this.playlistError=0,{action:ur.SendAlternateToPenaltyBox,flags:pr.None,nextAutoLevel:n}}return{action:ur.SendAlternateToPenaltyBox,flags:pr.MoveAllAlternatesMatchingHost}},i.onErrorOut=function(e,t){var i;switch(null==(i=t.errorAction)?void 0:i.action){case ur.DoNothing:break;case ur.SendAlternateToPenaltyBox:this.sendAlternateToPenaltyBox(t),t.errorAction.resolved||t.details===D.FRAG_GAP?/MediaSource readyState: ended/.test(t.error.message)&&(this.warn('MediaSource ended after "'+t.sourceBufferName+'" sourceBuffer append error. Attempting to recover from media error.'),this.hls.recoverMediaError()):t.fatal=!0}t.fatal&&this.hls.stopLoad()},i.sendAlternateToPenaltyBox=function(e){var t=this.hls,i=e.errorAction;if(i){var r=i.flags,s=i.hdcpLevel,a=i.nextAutoLevel;switch(r){case pr.None:this.switchLevel(e,a);break;case pr.MoveAllAlternatesMatchingHDCP:s&&(t.maxHdcpLevel=Ri[Ri.indexOf(s)-1],i.resolved=!0),this.warn('Restricting playback to HDCP-LEVEL of "'+t.maxHdcpLevel+'" or lower')}i.resolved||this.switchLevel(e,a)}},i.switchLevel=function(e,t){void 0!==t&&e.errorAction&&(this.warn("switching to level "+t+" after "+e.details),this.hls.nextAutoLevel=t,e.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel)},t}(b);function mr(e){return{action:ur.DoNothing,flags:pr.None}}var yr=function(e){function t(t,i){var r;return(r=e.call(this,i,t.logger)||this).hls=void 0,r.timer=-1,r.requestScheduled=-1,r.canLoad=!1,r.hls=t,r}A(t,e);var i=t.prototype;return i.destroy=function(){this.clearTimer(),this.hls=this.log=this.warn=null},i.clearTimer=function(){-1!==this.timer&&(self.clearTimeout(this.timer),this.timer=-1)},i.startLoad=function(){this.canLoad=!0,this.requestScheduled=-1,this.loadPlaylist()},i.stopLoad=function(){this.canLoad=!1,this.clearTimer()},i.switchParams=function(e,t,i){var r=null==t?void 0:t.renditionReports;if(r){for(var s=-1,a=0;a<r.length;a++){var o=r[a],n=void 0;try{n=new self.URL(o.URI,t.url).href}catch(e){this.warn("Could not construct new URL for Rendition Report: "+e),n=o.URI||""}if(n===e){s=a;break}n===e.substring(0,n.length)&&(s=a)}if(-1!==s){var l=r[s],h=parseInt(l["LAST-MSN"])||(null==t?void 0:t.lastPartSn),A=parseInt(l["LAST-PART"])||(null==t?void 0:t.lastPartIndex);if(this.hls.config.lowLatencyMode){var d=Math.min(t.age-t.partTarget,t.targetduration);A>=0&&d>t.partTarget&&(A+=1)}var c=i&&xi(i);return new Fi(h,A>=0?A:void 0,c)}}},i.loadPlaylist=function(e){-1===this.requestScheduled&&(this.requestScheduled=self.performance.now())},i.shouldLoadPlaylist=function(e){return this.canLoad&&!!e&&!!e.url&&(!e.details||e.details.live)},i.shouldReloadPlaylist=function(e){return-1===this.timer&&-1===this.requestScheduled&&this.shouldLoadPlaylist(e)},i.playlistLoaded=function(e,t,i){var r=this,s=t.details,a=t.stats,o=self.performance.now(),n=a.loading.first?Math.max(0,o-a.loading.first):0;if(s.advancedDateTime=Date.now()-n,s.live||null!=i&&i.live){if(s.reloaded(i),i&&this.log("live playlist "+e+" "+(s.advanced?"REFRESHED "+s.lastPartSn+"-"+s.lastPartIndex:s.updated?"UPDATED":"MISSED")),i&&s.fragments.length>0&&Yi(i,s),!this.canLoad||!s.live)return;var l,h=void 0,A=void 0;if(s.canBlockReload&&s.endSN&&s.advanced){var d=this.hls.config.lowLatencyMode,c=s.lastPartSn,u=s.endSN,p=s.lastPartIndex,g=c===u;-1!==p?(h=g?u+1:c,A=g?d?0:p:p+1):h=u+1;var m=s.age,y=m+s.ageHeader,E=Math.min(y-s.partTarget,1.5*s.targetduration);if(E>0){if(y>3*s.targetduration)this.log("Playlist last advanced "+m.toFixed(2)+"s ago. Omitting segment and part directives."),h=void 0,A=void 0;else if(null!=i&&i.tuneInGoal&&y-s.partTarget>i.tuneInGoal)this.warn("CDN Tune-in goal increased from: "+i.tuneInGoal+" to: "+E+" with playlist age: "+s.age),E=0;else{var C=Math.floor(E/s.targetduration);h+=C,void 0!==A&&(A+=Math.round(E%s.targetduration/s.partTarget)),this.log("CDN Tune-in age: "+s.ageHeader+"s last advanced "+m.toFixed(2)+"s goal: "+E+" skip sn "+C+" to part "+A)}s.tuneInGoal=E}if(l=this.getDeliveryDirectives(s,t.deliveryDirectives,h,A),d||!g)return void this.loadPlaylist(l)}else(s.canBlockReload||s.canSkipUntil)&&(l=this.getDeliveryDirectives(s,t.deliveryDirectives,h,A));var f=this.hls.mainForwardBufferInfo,I=f?f.end-f.len:0,w=Zi(s,1e3*(s.edge-I));s.updated&&o>this.requestScheduled+w&&(this.requestScheduled=a.loading.start),void 0!==h&&s.canBlockReload?this.requestScheduled=a.loading.first+w-(1e3*s.partTarget||1e3):-1===this.requestScheduled||this.requestScheduled+w<o?this.requestScheduled=o:this.requestScheduled-o<=0&&(this.requestScheduled+=w);var S=this.requestScheduled-o;S=Math.max(0,S),this.log("reload live playlist "+e+" in "+Math.round(S)+" ms"),this.timer=self.setTimeout((function(){return r.loadPlaylist(l)}),S)}else this.clearTimer()},i.getDeliveryDirectives=function(e,t,i,r){var s=xi(e);return null!=t&&t.skip&&e.deltaUpdateFailed&&(i=t.msn,r=t.part,s=qi.No),new Fi(i,r,s)},i.checkRetry=function(e){var t=this,i=e.details,r=$i(e),s=e.errorAction,a=s||{},o=a.action,n=a.retryCount,l=void 0===n?0:n,h=a.retryConfig,A=!!s&&!!h&&(o===ur.RetryRequest||!s.resolved&&o===ur.SendAlternateToPenaltyBox);if(A){var d;if(this.requestScheduled=-1,l>=h.maxNumRetry)return!1;if(r&&null!=(d=e.context)&&d.deliveryDirectives)this.warn("Retrying playlist loading "+(l+1)+"/"+h.maxNumRetry+' after "'+i+'" without delivery-directives'),this.loadPlaylist();else{var c=tr(h,l);this.timer=self.setTimeout((function(){return t.loadPlaylist()}),c),this.warn("Retrying playlist loading "+(l+1)+"/"+h.maxNumRetry+' after "'+i+'" in '+c+"ms")}e.levelRetry=!0,s.resolved=!0}return A},t}(b),Er=function(){function e(e,t,i){void 0===t&&(t=0),void 0===i&&(i=0),this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=e,this.alpha_=e?Math.exp(Math.log(.5)/e):0,this.estimate_=t,this.totalWeight_=i}var t=e.prototype;return t.sample=function(e,t){var i=Math.pow(this.alpha_,e);this.estimate_=t*(1-i)+i*this.estimate_,this.totalWeight_+=e},t.getTotalWeight=function(){return this.totalWeight_},t.getEstimate=function(){if(this.alpha_){var e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_},e}(),Cr=function(){function e(e,t,i,r){void 0===r&&(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_=.001,this.minDelayMs_=50,this.slow_=new Er(e),this.fast_=new Er(t),this.defaultTTFB_=r,this.ttfb_=new Er(e)}var t=e.prototype;return t.update=function(e,t){var i=this.slow_,r=this.fast_,s=this.ttfb_;i.halfLife!==e&&(this.slow_=new Er(e,i.getEstimate(),i.getTotalWeight())),r.halfLife!==t&&(this.fast_=new Er(t,r.getEstimate(),r.getTotalWeight())),s.halfLife!==e&&(this.ttfb_=new Er(e,s.getEstimate(),s.getTotalWeight()))},t.sample=function(e,t){var i=(e=Math.max(e,this.minDelayMs_))/1e3,r=8*t/i;this.fast_.sample(i,r),this.slow_.sample(i,r)},t.sampleTTFB=function(e){var t=e/1e3,i=Math.sqrt(2)*Math.exp(-Math.pow(t,2)/2);this.ttfb_.sample(i,Math.max(e,5))},t.canEstimate=function(){return this.fast_.getTotalWeight()>=this.minWeight_},t.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},t.getEstimateTTFB=function(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_},t.destroy=function(){},e}(),fr={supported:!0,configurations:[],decodingInfoResults:[{supported:!0,powerEfficient:!0,smooth:!0}]},Ir={};function wr(e,t,i,r,s,a){var o=e.audioCodec?e.audioGroups:null,n=null==a?void 0:a.audioCodec,l=null==a?void 0:a.channels,h=l?parseInt(l):n?1/0:2,A=null;if(null!=o&&o.length)try{A=1===o.length&&o[0]?t.groups[o[0]].channels:o.reduce((function(e,i){if(i){var r=t.groups[i];if(!r)throw new Error("Audio track group "+i+" not found");Object.keys(r.channels).forEach((function(t){e[t]=(e[t]||0)+r.channels[t]}))}return e}),{2:0})}catch(e){return!0}return void 0!==e.videoCodec&&(e.width>1920&&e.height>1088||e.height>1920&&e.width>1088||e.frameRate>Math.max(r,30)||"SDR"!==e.videoRange&&e.videoRange!==i||e.bitrate>Math.max(s,8e6))||!!A&&S(h)&&Object.keys(A).some((function(e){return parseInt(e)>h}))}function Sr(e,t,i){var r=e.videoCodec,s=e.audioCodec;if(!r||!s||!i)return Promise.resolve(fr);var a={width:e.width,height:e.height,bitrate:Math.ceil(Math.max(.9*e.bitrate,e.averageBitrate)),framerate:e.frameRate||30},o=e.videoRange;"SDR"!==o&&(a.transferFunction=o.toLowerCase());var n=r.split(",").map((function(e){return{type:"media-source",video:p(p({},a),{},{contentType:yt(e,"video")})}}));return s&&e.audioGroups&&e.audioGroups.forEach((function(e){var i;e&&(null==(i=t.groups[e])||i.tracks.forEach((function(t){if(t.groupId===e){var i=t.channels||"",r=parseFloat(i);S(r)&&r>2&&n.push.apply(n,s.split(",").map((function(e){return{type:"media-source",audio:{contentType:yt(e,"audio"),channels:""+r}}})))}})))})),Promise.all(n.map((function(e){var t=Mr(e);return Ir[t]||(Ir[t]=i.decodingInfo(e))}))).then((function(e){return{supported:!e.some((function(e){return!e.supported})),configurations:n,decodingInfoResults:e}})).catch((function(e){return{supported:!1,configurations:n,decodingInfoResults:[],error:e}}))}function Mr(e){var t=e.audio,i=e.video,r=i||t;if(r){var s=r.contentType.split('"')[1];if(i)return"r"+i.height+"x"+i.width+"f"+Math.ceil(i.framerate)+(i.transferFunction||"sd")+"_"+s+"_"+Math.ceil(i.bitrate/1e5);if(t)return"c"+t.channels+(t.spatialRendering?"s":"n")+"_"+s}return""}function vr(){if("function"==typeof matchMedia){var e=matchMedia("(dynamic-range: high)"),t=matchMedia("bad query");if(e.media!==t.media)return!0===e.matches}return!1}function kr(e,t){var i=!1,r=[];if(e&&(i="SDR"!==e,r=[e]),t){var s="SDR"!==(r=t.allowedVideoRanges||Li.slice(0)).join("")&&!t.videoCodec;(i=void 0!==t.preferHDR?t.preferHDR:s&&vr())||(r=["SDR"])}return{preferHDR:i,allowedVideoRanges:r}}function Br(e,t,i,r,s){for(var a=Object.keys(e),o=null==r?void 0:r.channels,n=null==r?void 0:r.audioCodec,l=null==s?void 0:s.videoCodec,h=o&&2===parseInt(o),A=!1,d=!1,c=1/0,u=1/0,p=1/0,g=1/0,m=0,y=[],E=kr(t,s),C=E.preferHDR,f=E.allowedVideoRanges,I=function(){var t=e[a[w]];A||(A=t.channels[2]>0),c=Math.min(c,t.minHeight),u=Math.min(u,t.minFramerate),p=Math.min(p,t.minBitrate);var i=f.filter((function(e){return t.videoRanges[e]>0}));i.length>0&&(d=!0)},w=a.length;w--;)I();c=S(c)?c:0,u=S(u)?u:0;var M=Math.max(1080,c),v=Math.max(30,u);p=S(p)?p:i,i=Math.max(p,i),d||(t=void 0);var k=a.length>1,B=a.reduce((function(t,r){var s=e[r];if(r===t)return t;if(y=d?f.filter((function(e){return s.videoRanges[e]>0})):[],k){if(s.minBitrate>i)return Dr(r,"min bitrate of "+s.minBitrate+" > current estimate of "+i),t;if(!s.hasDefaultAudio)return Dr(r,"no renditions with default or auto-select sound found"),t;if(n&&r.indexOf(n.substring(0,4))%5!=0)return Dr(r,'audio codec preference "'+n+'" not found'),t;if(o&&!h){if(!s.channels[o])return Dr(r,"no renditions with "+o+" channel sound found (channels options: "+Object.keys(s.channels)+")"),t}else if((!n||h)&&A&&0===s.channels[2])return Dr(r,"no renditions with stereo sound found"),t;if(s.minHeight>M)return Dr(r,"min resolution of "+s.minHeight+" > maximum of "+M),t;if(s.minFramerate>v)return Dr(r,"min framerate of "+s.minFramerate+" > maximum of "+v),t;if(!y.some((function(e){return s.videoRanges[e]>0})))return Dr(r,"no variants with VIDEO-RANGE of "+JSON.stringify(y)+" found"),t;if(l&&r.indexOf(l.substring(0,4))%5!=0)return Dr(r,'video codec preference "'+l+'" not found'),t;if(s.maxScore<m)return Dr(r,"max score of "+s.maxScore+" < selected max of "+m),t}return t&&(Ct(r)>=Ct(t)||s.fragmentError>e[t].fragmentError)?t:(g=s.minIndex,m=s.maxScore,r)}),void 0);return{codecSet:B,videoRanges:y,preferHDR:C,minFramerate:u,minBitrate:p,minIndex:g}}function Dr(e,t){F.log('[abr] start candidates with "'+e+'" ignored because '+t)}function br(e){return e.reduce((function(e,t){var i=e.groups[t.groupId];i||(i=e.groups[t.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1}),i.tracks.push(t);var r=t.channels||"2";return i.channels[r]=(i.channels[r]||0)+1,i.hasDefault=i.hasDefault||t.default,i.hasAutoSelect=i.hasAutoSelect||t.autoselect,i.hasDefault&&(e.hasDefaultAudio=!0),i.hasAutoSelect&&(e.hasAutoSelectAudio=!0),e}),{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}function Qr(e,t,i,r){return e.slice(i,r+1).reduce((function(e,i,r){if(!i.codecSet)return e;var s=i.audioGroups,a=e[i.codecSet];a||(e[i.codecSet]=a={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,minIndex:r,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!s,fragmentError:0}),a.minBitrate=Math.min(a.minBitrate,i.bitrate);var o=Math.min(i.height,i.width);return a.minHeight=Math.min(a.minHeight,o),a.minFramerate=Math.min(a.minFramerate,i.frameRate),a.minIndex=Math.min(a.minIndex,r),a.maxScore=Math.max(a.maxScore,i.score),a.fragmentError+=i.fragmentError,a.videoRanges[i.videoRange]=(a.videoRanges[i.videoRange]||0)+1,s&&s.forEach((function(e){if(e){var i=t.groups[e];i&&(a.hasDefaultAudio=a.hasDefaultAudio||t.hasDefaultAudio?i.hasDefault:i.hasAutoSelect||!t.hasDefaultAudio&&!t.hasAutoSelectAudio,Object.keys(i.channels).forEach((function(e){a.channels[e]=(a.channels[e]||0)+i.channels[e]})))}})),e}),{})}function Rr(e,t,i){if("attrs"in e){var r=t.indexOf(e);if(-1!==r)return r}for(var s=0;s<t.length;s++)if(Tr(e,t[s],i))return s;return-1}function Tr(e,t,i){var r=e.groupId,s=e.name,a=e.lang,o=e.assocLang,n=e.characteristics,l=e.default,h=e.forced;return(void 0===r||t.groupId===r)&&(void 0===s||t.name===s)&&(void 0===a||t.lang===a)&&(void 0===a||t.assocLang===o)&&(void 0===l||t.default===l)&&(void 0===h||t.forced===h)&&(void 0===n||Lr(n,t.characteristics))&&(void 0===i||i(e,t))}function Lr(e,t){void 0===t&&(t="");var i=e.split(","),r=t.split(",");return i.length===r.length&&!i.some((function(e){return-1===r.indexOf(e)}))}function Kr(e,t){var i=e.audioCodec,r=e.channels;return!(void 0!==i&&(t.audioCodec||"").substring(0,4)!==i.substring(0,4)||void 0!==r&&r!==(t.channels||"2"))}function qr(e,t,i,r,s){var a=t[r],o=t.reduce((function(e,t,i){var r=t.uri;return(e[r]||(e[r]=[])).push(i),e}),{})[a.uri];o.length>1&&(r=Math.max.apply(Math,o));var n=a.videoRange,l=a.frameRate,h=a.codecSet.substring(0,4),A=xr(t,r,(function(t){if(t.videoRange!==n||t.frameRate!==l||t.codecSet.substring(0,4)!==h)return!1;var r=t.audioGroups,a=i.filter((function(e){return!r||-1!==r.indexOf(e.groupId)}));return Rr(e,a,s)>-1}));return A>-1?A:xr(t,r,(function(t){var r=t.audioGroups,a=i.filter((function(e){return!r||-1!==r.indexOf(e.groupId)}));return Rr(e,a,s)>-1}))}function xr(e,t,i){for(var r=t;r;r--)if(i(e[r]))return r;for(var s=t+1;s<e.length;s++)if(i(e[s]))return s;return-1}var Fr=function(e){function t(t){var i;return(i=e.call(this,"abr",t.logger)||this).hls=void 0,i.lastLevelLoadSec=0,i.lastLoadedFragLevel=-1,i.firstSelection=-1,i._nextAutoLevel=-1,i.nextAutoLevelKey="",i.audioTracksByGroup=null,i.codecTiers=null,i.timer=-1,i.fragCurrent=null,i.partCurrent=null,i.bitrateTestDelay=0,i.bwEstimator=void 0,i._abandonRulesCheck=function(){var e=i,t=e.fragCurrent,r=e.partCurrent,s=e.hls,a=s.autoLevelEnabled,o=s.media;if(t&&o){var n=performance.now(),l=r?r.stats:t.stats,h=r?r.duration:t.duration,A=n-l.loading.start,d=s.minAutoLevel;if(l.aborted||l.loaded&&l.loaded===l.total||t.level<=d)return i.clearTimer(),void(i._nextAutoLevel=-1);if(a&&!o.paused&&o.playbackRate&&o.readyState){var c=s.mainForwardBufferInfo;if(null!==c){var u=i.bwEstimator.getEstimateTTFB(),p=Math.abs(o.playbackRate);if(!(A<=Math.max(u,h/(2*p)*1e3))){var g=c.len/p,m=l.loading.first?l.loading.first-l.loading.start:-1,y=l.loaded&&m>-1,E=i.getBwEstimate(),C=s.levels,f=C[t.level],I=l.total||Math.max(l.loaded,Math.round(h*f.averageBitrate/8)),w=y?A-m:A;w<1&&y&&(w=Math.min(A,8*l.loaded/E));var M=y?1e3*l.loaded/w:0,v=M?(I-l.loaded)/M:8*I/E+u/1e3;if(!(v<=g)){var B,D=M?8*M:E,b=Number.POSITIVE_INFINITY;for(B=t.level-1;B>d;B--){var Q=C[B].maxBitrate;if((b=i.getTimeToLoadFrag(u/1e3,D,h*Q,!C[B].details))<g)break}if(!(b>=v||b>10*h)){s.nextLoadLevel=s.nextAutoLevel=B,y?i.bwEstimator.sample(A-Math.min(u,m),l.loaded):i.bwEstimator.sampleTTFB(A);var R=C[B].maxBitrate;i.getBwEstimate()*i.hls.config.abrBandWidthUpFactor>R&&i.resetEstimator(R),i.clearTimer(),i.warn("Fragment "+t.sn+(r?" part "+r.index:"")+" of level "+t.level+" is loading too slowly;\n Time to underbuffer: "+g.toFixed(3)+" s\n Estimated load time for current fragment: "+v.toFixed(3)+" s\n Estimated load time for down switch fragment: "+b.toFixed(3)+" s\n TTFB estimate: "+(0|m)+" ms\n Current BW estimate: "+(S(E)?0|E:"Unknown")+" bps\n New BW estimate: "+(0|i.getBwEstimate())+" bps\n Switching to level "+B+" @ "+(0|R)+" bps"),s.trigger(k.FRAG_LOAD_EMERGENCY_ABORTED,{frag:t,part:r,stats:l})}}}}}}},i.hls=t,i.bwEstimator=i.initEstimator(),i.registerListeners(),i}A(t,e);var i=t.prototype;return i.resetEstimator=function(e){e&&(this.log("setting initial bwe to "+e),this.hls.config.abrEwmaDefaultEstimate=e),this.firstSelection=-1,this.bwEstimator=this.initEstimator()},i.initEstimator=function(){var e=this.hls.config;return new Cr(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate)},i.registerListeners=function(){var e=this.hls;e.on(k.MANIFEST_LOADING,this.onManifestLoading,this),e.on(k.FRAG_LOADING,this.onFragLoading,this),e.on(k.FRAG_LOADED,this.onFragLoaded,this),e.on(k.FRAG_BUFFERED,this.onFragBuffered,this),e.on(k.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(k.LEVEL_LOADED,this.onLevelLoaded,this),e.on(k.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(k.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.on(k.ERROR,this.onError,this)},i.unregisterListeners=function(){var e=this.hls;e&&(e.off(k.MANIFEST_LOADING,this.onManifestLoading,this),e.off(k.FRAG_LOADING,this.onFragLoading,this),e.off(k.FRAG_LOADED,this.onFragLoaded,this),e.off(k.FRAG_BUFFERED,this.onFragBuffered,this),e.off(k.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(k.LEVEL_LOADED,this.onLevelLoaded,this),e.off(k.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(k.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.off(k.ERROR,this.onError,this))},i.destroy=function(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=null,this.fragCurrent=this.partCurrent=null},i.onManifestLoading=function(e,t){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()},i.onLevelsUpdated=function(){this.lastLoadedFragLevel>-1&&this.fragCurrent&&(this.lastLoadedFragLevel=this.fragCurrent.level),this._nextAutoLevel=-1,this.onMaxAutoLevelUpdated(),this.codecTiers=null,this.audioTracksByGroup=null},i.onMaxAutoLevelUpdated=function(){this.firstSelection=-1,this.nextAutoLevelKey=""},i.onFragLoading=function(e,t){var i,r=t.frag;this.ignoreFragment(r)||(r.bitrateTest||(this.fragCurrent=r,this.partCurrent=null!=(i=t.part)?i:null),this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100))},i.onLevelSwitching=function(e,t){this.clearTimer()},i.onError=function(e,t){if(!t.fatal)switch(t.details){case D.BUFFER_ADD_CODEC_ERROR:case D.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case D.FRAG_LOAD_TIMEOUT:var i=t.frag,r=this.fragCurrent,s=this.partCurrent;if(i&&r&&i.sn===r.sn&&i.level===r.level){var a=performance.now(),o=s?s.stats:i.stats,n=a-o.loading.start,l=o.loading.first?o.loading.first-o.loading.start:-1;if(o.loaded&&l>-1){var h=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(n-Math.min(h,l),o.loaded)}else this.bwEstimator.sampleTTFB(n)}}},i.getTimeToLoadFrag=function(e,t,i,r){return e+i/t+(r?this.lastLevelLoadSec:0)},i.onLevelLoaded=function(e,t){var i=this.hls.config,r=t.stats.loading,s=r.end-r.start;S(s)&&(this.lastLevelLoadSec=s/1e3),t.details.live?this.bwEstimator.update(i.abrEwmaSlowLive,i.abrEwmaFastLive):this.bwEstimator.update(i.abrEwmaSlowVoD,i.abrEwmaFastVoD)},i.onFragLoaded=function(e,t){var i=t.frag,r=t.part,s=r?r.stats:i.stats;if(i.type===Pt.MAIN&&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){var a=r?r.duration:i.duration,o=this.hls.levels[i.level],n=(o.loaded?o.loaded.bytes:0)+s.loaded,l=(o.loaded?o.loaded.duration:0)+a;o.loaded={bytes:n,duration:l},o.realBitrate=Math.round(8*n/l)}if(i.bitrateTest){var h={stats:s,frag:i,part:r,id:i.type};this.onFragBuffered(k.FRAG_BUFFERED,h),i.bitrateTest=!1}else this.lastLoadedFragLevel=i.level}},i.onFragBuffered=function(e,t){var i=t.frag,r=t.part,s=null!=r&&r.stats.loaded?r.stats:i.stats;if(!s.aborted&&!this.ignoreFragment(i)){var a=s.parsing.end-s.loading.start-Math.min(s.loading.first-s.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(a,s.loaded),s.bwEstimate=this.getBwEstimate(),i.bitrateTest?this.bitrateTestDelay=a/1e3:this.bitrateTestDelay=0}},i.ignoreFragment=function(e){return e.type!==Pt.MAIN||"initSegment"===e.sn},i.clearTimer=function(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1)},i.getAutoLevelKey=function(){return this.getBwEstimate()+"_"+this.getStarvationDelay().toFixed(2)},i.getNextABRAutoLevel=function(){var e=this.fragCurrent,t=this.partCurrent,i=this.hls;if(i.levels.length<=1)return i.loadLevel;var r=i.maxAutoLevel,s=i.config,a=i.minAutoLevel,o=t?t.duration:e?e.duration:0,n=this.getBwEstimate(),l=this.getStarvationDelay(),h=s.abrBandWidthFactor,A=s.abrBandWidthUpFactor;if(l){var d=this.findBestLevel(n,a,r,l,0,h,A);if(d>=0)return d}var c=o?Math.min(o,s.maxStarvationDelay):s.maxStarvationDelay;if(!l){var u=this.bitrateTestDelay;u&&(c=(o?Math.min(o,s.maxLoadingDelay):s.maxLoadingDelay)-u,this.info("bitrate test took "+Math.round(1e3*u)+"ms, set first fragment max fetchDuration to "+Math.round(1e3*c)+" ms"),h=A=1)}var p=this.findBestLevel(n,a,r,l,c,h,A);if(this.info((l?"rebuffering expected":"buffer is empty")+", optimal quality level "+p),p>-1)return p;var g=i.levels[a],m=i.levels[i.loadLevel];return(null==g?void 0:g.bitrate)<(null==m?void 0:m.bitrate)?a:i.loadLevel},i.getStarvationDelay=function(){var e=this.hls,t=e.media;if(!t)return 1/0;var i=t&&0!==t.playbackRate?Math.abs(t.playbackRate):1,r=e.mainForwardBufferInfo;return(r?r.len:0)/i},i.getBwEstimate=function(){return this.bwEstimator.canEstimate()?this.bwEstimator.getEstimate():this.hls.config.abrEwmaDefaultEstimate},i.findBestLevel=function(e,t,i,r,s,a,o){var n,l=this,h=r+s,A=this.lastLoadedFragLevel,d=-1===A?this.hls.firstLevel:A,c=this.fragCurrent,u=this.partCurrent,p=this.hls,g=p.levels,m=p.allAudioTracks,y=p.loadLevel,E=p.config;if(1===g.length)return 0;var C,f=g[d],I=!(null==f||null==(n=f.details)||!n.live),w=-1===y||-1===A,M="SDR",v=(null==f?void 0:f.frameRate)||0,k=E.audioPreference,B=E.videoPreference,D=this.audioTracksByGroup||(this.audioTracksByGroup=br(m)),b=-1;if(w){if(-1!==this.firstSelection)return this.firstSelection;var Q=Br(this.codecTiers||(this.codecTiers=Qr(g,D,t,i)),M,e,k,B),R=Q.codecSet,T=Q.videoRanges,L=Q.minFramerate,K=Q.minBitrate,q=Q.minIndex,x=Q.preferHDR;b=q,C=R,M=x?T[T.length-1]:T[0],v=L,e=Math.max(e,K),this.log("picked start tier "+JSON.stringify(Q))}else C=null==f?void 0:f.codecSet,M=null==f?void 0:f.videoRange;for(var F,U=u?u.duration:c?c.duration:0,G=this.bwEstimator.getEstimateTTFB()/1e3,O=[],J=function(){var t,n=g[Y],c=Y>d;if(!n)return 0;if(E.useMediaCapabilities&&!n.supportedResult&&!n.supportedPromise){var p=navigator.mediaCapabilities;"function"==typeof(null==p?void 0:p.decodingInfo)&&wr(n,D,M,v,e,k)?(n.supportedPromise=Sr(n,D,p),n.supportedPromise.then((function(e){if(l.hls){n.supportedResult=e;var t=l.hls.levels,i=t.indexOf(n);e.error?l.warn('MediaCapabilities decodingInfo error: "'+e.error+'" for level '+i+" "+JSON.stringify(e)):e.supported||(l.warn("Unsupported MediaCapabilities decodingInfo result for level "+i+" "+JSON.stringify(e)),i>-1&&t.length>1&&(l.log("Removing unsupported level "+i),l.hls.removeLevel(i)))}}))):n.supportedResult=fr}if((C&&n.codecSet!==C||M&&n.videoRange!==M||c&&v>n.frameRate||!c&&v>0&&v<n.frameRate||n.supportedResult&&(null==(t=n.supportedResult.decodingInfoResults)||!t[0].smooth))&&(!w||Y!==b))return O.push(Y),0;var m,B=n.details,Q=(u?null==B?void 0:B.partTarget:null==B?void 0:B.averagetargetduration)||U;m=c?o*e:a*e;var R=U&&r>=2*U&&0===s?g[Y].averageBitrate:g[Y].maxBitrate,T=l.getTimeToLoadFrag(G,m,R*Q,void 0===B);if(m>=R&&(Y===A||0===n.loadError&&0===n.fragmentError)&&(T<=G||!S(T)||I&&!l.bitrateTestDelay||T<h)){var L=l.forcedAutoLevel;return Y===y||-1!==L&&L===y||(O.length&&l.trace("Skipped level(s) "+O.join(",")+" of "+i+' max with CODECS and VIDEO-RANGE:"'+g[O[0]].codecs+'" '+g[O[0]].videoRange+'; not compatible with "'+f.codecs+'" '+M),l.info("switch candidate:"+d+"->"+Y+" adjustedbw("+Math.round(m)+")-bitrate="+Math.round(m-R)+" ttfb:"+G.toFixed(1)+" avgDuration:"+Q.toFixed(1)+" maxFetchDuration:"+h.toFixed(1)+" fetchDuration:"+T.toFixed(1)+" firstSelection:"+w+" codecSet:"+n.codecSet+" videoRange:"+n.videoRange+" hls.loadLevel:"+y)),w&&(l.firstSelection=Y),{v:Y}}},Y=i;Y>=t;Y--)if(0!==(F=J())&&F)return F.v;return-1},a(t,[{key:"firstAutoLevel",get:function(){var e=this.hls,t=e.maxAutoLevel,i=e.minAutoLevel,r=this.getBwEstimate(),s=this.hls.config.maxStarvationDelay,a=this.findBestLevel(r,i,t,0,s,1,1);if(a>-1)return a;var o=this.hls.firstLevel,n=Math.min(Math.max(o,i),t);return this.warn("Could not find best starting auto level. Defaulting to first in playlist "+o+" clamped to "+n),n}},{key:"forcedAutoLevel",get:function(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}},{key:"nextAutoLevel",get:function(){var e=this.forcedAutoLevel,t=this.bwEstimator.canEstimate(),i=this.lastLoadedFragLevel>-1;if(!(-1===e||t&&i&&this.nextAutoLevelKey!==this.getAutoLevelKey()))return e;var r=t&&i?this.getNextABRAutoLevel():this.firstAutoLevel;if(-1!==e){var s=this.hls.levels;if(s.length>Math.max(e,r)&&s[e].loadError<=s[r].loadError)return e}return this._nextAutoLevel=r,this.nextAutoLevelKey=this.getAutoLevelKey(),r},set:function(e){var t=this.hls,i=t.maxAutoLevel,r=t.minAutoLevel,s=Math.min(Math.max(e,r),i);this._nextAutoLevel!==s&&(this.nextAutoLevelKey="",this._nextAutoLevel=s)}}])}(b),Ur=function(e){function t(t,i){var r;return(r=e.call(this,t,i)||this)._boundTick=void 0,r._tickTimer=null,r._tickInterval=null,r._tickCallCount=0,r._boundTick=r.tick.bind(r),r}A(t,e);var i=t.prototype;return i.destroy=function(){this.onHandlerDestroying(),this.onHandlerDestroyed()},i.onHandlerDestroying=function(){this.clearNextTick(),this.clearInterval()},i.onHandlerDestroyed=function(){},i.hasInterval=function(){return!!this._tickInterval},i.hasNextTick=function(){return!!this._tickTimer},i.setInterval=function(e){return!this._tickInterval&&(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)},i.clearInterval=function(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),this._tickInterval=null,!0)},i.clearNextTick=function(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0)},i.tick=function(){this._tickCallCount++,1===this._tickCallCount&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)},i.tickImmediate=function(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)},i.doTick=function(){},t}(b),Gr={NOT_LOADED:"NOT_LOADED",APPENDING:"APPENDING",PARTIAL:"PARTIAL",OK:"OK"},Or=function(){function e(e){this.activePartLists=Object.create(null),this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=.2,this.hls=void 0,this.hasGaps=!1,this.hls=e,this._registerListeners()}var t=e.prototype;return t._registerListeners=function(){var e=this.hls;e.on(k.MANIFEST_LOADING,this.onManifestLoading,this),e.on(k.BUFFER_APPENDED,this.onBufferAppended,this),e.on(k.FRAG_BUFFERED,this.onFragBuffered,this),e.on(k.FRAG_LOADED,this.onFragLoaded,this)},t._unregisterListeners=function(){var e=this.hls;e.off(k.MANIFEST_LOADING,this.onManifestLoading,this),e.off(k.BUFFER_APPENDED,this.onBufferAppended,this),e.off(k.FRAG_BUFFERED,this.onFragBuffered,this),e.off(k.FRAG_LOADED,this.onFragLoaded,this)},t.destroy=function(){this._unregisterListeners(),this.fragments=this.activePartLists=this.endListFragments=this.timeRanges=null},t.getAppendedFrag=function(e,t){var i=this.activePartLists[t];if(i)for(var r=i.length;r--;){var s=i[r];if(!s)break;var a=s.end;if(s.start<=e&&null!==a&&e<=a)return s}return this.getBufferedFrag(e,t)},t.getBufferedFrag=function(e,t){return this.getFragAtPos(e,t,!0)},t.getFragAtPos=function(e,t,i){for(var r=this.fragments,s=Object.keys(r),a=s.length;a--;){var o=r[s[a]];if((null==o?void 0:o.body.type)===t&&(!i||o.buffered)){var n=o.body;if(n.start<=e&&e<=n.end)return n}}return null},t.detectEvictedFragments=function(e,t,i,r,s){var a=this;this.timeRanges&&(this.timeRanges[e]=t);var o=(null==r?void 0:r.fragment.sn)||-1;Object.keys(this.fragments).forEach((function(r){var n=a.fragments[r];if(n&&!(o>=n.body.sn))if(n.buffered||n.loaded&&!s){var l=n.range[e];l&&(0!==l.time.length?l.time.some((function(e){var i=!a.isTimeBuffered(e.startPTS,e.endPTS,t);return i&&a.removeFragment(n.body),i})):a.removeFragment(n.body))}else n.body.type===i&&a.removeFragment(n.body)}))},t.detectPartialFragments=function(e){var t=this,i=this.timeRanges;if(i&&"initSegment"!==e.frag.sn){var r=e.frag,s=Yr(r),a=this.fragments[s];if(!(!a||a.buffered&&r.gap)){var o=!r.relurl;Object.keys(i).forEach((function(s){var n=r.elementaryStreams[s];if(n){var l=i[s],h=o||!0===n.partial;a.range[s]=t.getBufferedTimes(r,e.part,h,l)}})),a.loaded=null,Object.keys(a.range).length?(a.buffered=!0,(a.body.endList=r.endList||a.body.endList)&&(this.endListFragments[a.body.type]=a),Jr(a)||this.removeParts(r.sn-1,r.type)):this.removeFragment(a.body)}}},t.removeParts=function(e,t){var i=this.activePartLists[t];i&&(this.activePartLists[t]=i.filter((function(t){return t.fragment.sn>=e})))},t.fragBuffered=function(e,t){var i=Yr(e),r=this.fragments[i];!r&&t&&(r=this.fragments[i]={body:e,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},e.gap&&(this.hasGaps=!0)),r&&(r.loaded=null,r.buffered=!0)},t.getBufferedTimes=function(e,t,i,r){for(var s={time:[],partial:i},a=e.start,o=e.end,n=e.minEndPTS||o,l=e.maxStartPTS||a,h=0;h<r.length;h++){var A=r.start(h)-this.bufferPadding,d=r.end(h)+this.bufferPadding;if(l>=A&&n<=d){s.time.push({startPTS:Math.max(a,r.start(h)),endPTS:Math.min(o,r.end(h))});break}if(a<d&&o>A){var c=Math.max(a,r.start(h)),u=Math.min(o,r.end(h));u>c&&(s.partial=!0,s.time.push({startPTS:c,endPTS:u}))}else if(o<=A)break}return s},t.getPartialFragment=function(e){var t,i,r,s=null,a=0,o=this.bufferPadding,n=this.fragments;return Object.keys(n).forEach((function(l){var h=n[l];h&&Jr(h)&&(i=h.body.start-o,r=h.body.end+o,e>=i&&e<=r&&(t=Math.min(e-i,r-e),a<=t&&(s=h.body,a=t)))})),s},t.isEndListAppended=function(e){var t=this.endListFragments[e];return void 0!==t&&(t.buffered||Jr(t))},t.getState=function(e){var t=Yr(e),i=this.fragments[t];return i?i.buffered?Jr(i)?Gr.PARTIAL:Gr.OK:Gr.APPENDING:Gr.NOT_LOADED},t.isTimeBuffered=function(e,t,i){for(var r,s,a=0;a<i.length;a++){if(r=i.start(a)-this.bufferPadding,s=i.end(a)+this.bufferPadding,e>=r&&t<=s)return!0;if(t<=r)return!1}return!1},t.onManifestLoading=function(){this.removeAllFragments()},t.onFragLoaded=function(e,t){if("initSegment"!==t.frag.sn&&!t.frag.bitrateTest){var i=t.frag,r=t.part?null:t,s=Yr(i);this.fragments[s]={body:i,appendedPTS:null,loaded:r,buffered:!1,range:Object.create(null)}}},t.onBufferAppended=function(e,t){var i=t.frag,r=t.part,s=t.timeRanges,a=t.type;if("initSegment"!==i.sn){var o=i.type;if(r){var n=this.activePartLists[o];n||(this.activePartLists[o]=n=[]),n.push(r)}this.timeRanges=s;var l=s[a];this.detectEvictedFragments(a,l,o,r)}},t.onFragBuffered=function(e,t){this.detectPartialFragments(t)},t.hasFragment=function(e){var t=Yr(e);return!!this.fragments[t]},t.hasFragments=function(e){var t=this.fragments,i=Object.keys(t);if(!e)return i.length>0;for(var r=i.length;r--;){var s=t[i[r]];if((null==s?void 0:s.body.type)===e)return!0}return!1},t.hasParts=function(e){var t;return!(null==(t=this.activePartLists[e])||!t.length)},t.removeFragmentsInRange=function(e,t,i,r,s){var a=this;r&&!this.hasGaps||Object.keys(this.fragments).forEach((function(o){var n=a.fragments[o];if(n){var l=n.body;l.type!==i||r&&!l.gap||l.start<t&&l.end>e&&(n.buffered||s)&&a.removeFragment(l)}}))},t.removeFragment=function(e){var t=Yr(e);e.stats.loaded=0,e.clearElementaryStreamInfo();var i=this.activePartLists[e.type];if(i){var r=e.sn;this.activePartLists[e.type]=i.filter((function(e){return e.fragment.sn!==r}))}delete this.fragments[t],e.endList&&delete this.endListFragments[e.type]},t.removeAllFragments=function(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1},e}();function Jr(e){var t,i,r;return e.buffered&&(e.body.gap||(null==(t=e.range.video)?void 0:t.partial)||(null==(i=e.range.audio)?void 0:i.partial)||(null==(r=e.range.audiovideo)?void 0:r.partial))}function Yr(e){return e.type+"_"+e.level+"_"+e.sn}var Nr={length:0,start:function(){return 0},end:function(){return 0}},Pr=function(){function e(){}return e.isBuffered=function(t,i){if(t)for(var r=e.getBuffered(t),s=r.length;s--;)if(i>=r.start(s)&&i<=r.end(s))return!0;return!1},e.bufferInfo=function(t,i,r){if(t){var s=e.getBuffered(t);if(s.length){for(var a=[],o=0;o<s.length;o++)a.push({start:s.start(o),end:s.end(o)});return e.bufferedInfo(a,i,r)}}return{len:0,start:i,end:i,nextStart:void 0}},e.bufferedInfo=function(e,t,i){t=Math.max(0,t),e.sort((function(e,t){return e.start-t.start||t.end-e.end}));var r=[];if(i)for(var s=0;s<e.length;s++){var a=r.length;if(a){var o=r[a-1].end;e[s].start-o<i?e[s].end>o&&(r[a-1].end=e[s].end):r.push(e[s])}else r.push(e[s])}else r=e;for(var n,l=0,h=t,A=t,d=0;d<r.length;d++){var c=r[d].start,u=r[d].end;if(t+i>=c&&t<u)h=c,l=(A=u)-t;else if(t+i<c){n=c;break}}return{len:l,start:h||0,end:A||0,nextStart:n}},e.getBuffered=function(e){try{return e.buffered||Nr}catch(e){return F.log("failed to get media.buffered",e),Nr}},e}(),jr=function(e,t,i,r,s,a){void 0===r&&(r=0),void 0===s&&(s=-1),void 0===a&&(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=zr(),this.buffering={audio:zr(),video:zr(),audiovideo:zr()},this.level=e,this.sn=t,this.id=i,this.size=r,this.part=s,this.partial=a};function zr(){return{start:0,executeStart:0,executeEnd:0,end:0}}function Wr(e,t){for(var i=0,r=e.length;i<r;i++){var s;if((null==(s=e[i])?void 0:s.cc)===t)return e[i]}return null}function Zr(e,t){return!!(e&&t.startCC<e.endCC&&t.endCC>e.startCC)}function Vr(e,t){if(e){var i=e.start+t;e.start=e.startPTS=i,e.endPTS=i+e.duration}}function Hr(e,t){for(var i=t.fragments,r=0,s=i.length;r<s;r++)Vr(i[r],e);t.fragmentHint&&Vr(t.fragmentHint,e),t.alignedSliding=!0}function Xr(e,t,i){t&&(_r(i,t),!i.alignedSliding&&t&&$r(i,t),i.alignedSliding||!t||i.skippedSegments||zi(t,i))}function _r(e,t){if(Zr(t,e)){var i=Math.min(t.endCC,e.endCC),r=Wr(t.fragments,i),s=Wr(e.fragments,i);r&&s&&(F.log("Aligning playlist at start of dicontinuity sequence "+i),Hr(r.start-s.start,e))}}function $r(e,t){if(e.hasProgramDateTime&&t.hasProgramDateTime){var i=e.fragments,r=t.fragments;if(i.length&&r.length){var s,a,o=Math.min(t.endCC,e.endCC);t.startCC<o&&e.startCC<o&&(s=Wr(r,o),a=Wr(i,o)),s&&a||(a=Wr(i,(s=r[Math.floor(r.length/2)]).cc)||i[Math.floor(i.length/2)]);var n=s.programDateTime,l=a.programDateTime;n&&l&&Hr((l-n)/1e3-(a.start-s.start),e)}}}var es=Math.pow(2,17),ts=function(){function e(e){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=e}var t=e.prototype;return t.destroy=function(){this.loader&&(this.loader.destroy(),this.loader=null)},t.abort=function(){this.loader&&this.loader.abort()},t.load=function(e,t){var i=this,r=e.url;if(!r)return Promise.reject(new as({type:B.NETWORK_ERROR,details:D.FRAG_LOAD_ERROR,fatal:!1,frag:e,error:new Error("Fragment does not have a "+(r?"part list":"url")),networkDetails:null}));this.abort();var s=this.config,a=s.fLoader,o=s.loader;return new Promise((function(n,l){if(i.loader&&i.loader.destroy(),e.gap){if(e.tagList.some((function(e){return"GAP"===e[0]})))return void l(rs(e));e.gap=!1}var h=i.loader=a?new a(s):new o(s),A=is(e);e.loader=h;var d=ir(s.fragLoadPolicy.default),c={loadPolicy:d,timeout:d.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:"initSegment"===e.sn?1/0:es};e.stats=h.stats,h.load(A,c,{onSuccess:function(t,r,s,a){i.resetLoader(e,h);var o=t.data;s.resetIV&&e.decryptdata&&(e.decryptdata.iv=new Uint8Array(o.slice(0,16)),o=o.slice(16)),n({frag:e,part:null,payload:o,networkDetails:a})},onError:function(t,s,a,o){i.resetLoader(e,h),l(new as({type:B.NETWORK_ERROR,details:D.FRAG_LOAD_ERROR,fatal:!1,frag:e,response:p({url:r,data:void 0},t),error:new Error("HTTP Error "+t.code+" "+t.text),networkDetails:a,stats:o}))},onAbort:function(t,r,s){i.resetLoader(e,h),l(new as({type:B.NETWORK_ERROR,details:D.INTERNAL_ABORTED,fatal:!1,frag:e,error:new Error("Aborted"),networkDetails:s,stats:t}))},onTimeout:function(t,r,s){i.resetLoader(e,h),l(new as({type:B.NETWORK_ERROR,details:D.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,error:new Error("Timeout after "+c.timeout+"ms"),networkDetails:s,stats:t}))},onProgress:function(i,r,s,a){t&&t({frag:e,part:null,payload:s,networkDetails:a})}})}))},t.loadPart=function(e,t,i){var r=this;this.abort();var s=this.config,a=s.fLoader,o=s.loader;return new Promise((function(n,l){if(r.loader&&r.loader.destroy(),e.gap||t.gap)l(rs(e,t));else{var h=r.loader=a?new a(s):new o(s),A=is(e,t);e.loader=h;var d=ir(s.fragLoadPolicy.default),c={loadPolicy:d,timeout:d.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:es};t.stats=h.stats,h.load(A,c,{onSuccess:function(s,a,o,l){r.resetLoader(e,h),r.updateStatsFromPart(e,t);var A={frag:e,part:t,payload:s.data,networkDetails:l};i(A),n(A)},onError:function(i,s,a,o){r.resetLoader(e,h),l(new as({type:B.NETWORK_ERROR,details:D.FRAG_LOAD_ERROR,fatal:!1,frag:e,part:t,response:p({url:A.url,data:void 0},i),error:new Error("HTTP Error "+i.code+" "+i.text),networkDetails:a,stats:o}))},onAbort:function(i,s,a){e.stats.aborted=t.stats.aborted,r.resetLoader(e,h),l(new as({type:B.NETWORK_ERROR,details:D.INTERNAL_ABORTED,fatal:!1,frag:e,part:t,error:new Error("Aborted"),networkDetails:a,stats:i}))},onTimeout:function(i,s,a){r.resetLoader(e,h),l(new as({type:B.NETWORK_ERROR,details:D.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,part:t,error:new Error("Timeout after "+c.timeout+"ms"),networkDetails:a,stats:i}))}})}}))},t.updateStatsFromPart=function(e,t){var i=e.stats,r=t.stats,s=r.total;if(i.loaded+=r.loaded,s){var a=Math.round(e.duration/t.duration),o=Math.min(Math.round(i.loaded/s),a),n=(a-o)*Math.round(i.loaded/o);i.total=i.loaded+n}else i.total=Math.max(i.loaded,i.total);var l=i.loading,h=r.loading;l.start?l.first+=h.first-h.start:(l.start=h.start,l.first=h.first),l.end=h.end},t.resetLoader=function(e,t){e.loader=null,this.loader===t&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),t.destroy()},e}();function is(e,t){void 0===t&&(t=null);var i=t||e,r={frag:e,part:t,responseType:"arraybuffer",url:i.url,headers:{},rangeStart:0,rangeEnd:0},s=i.byteRangeStartOffset,a=i.byteRangeEndOffset;if(S(s)&&S(a)){var o,n=s,l=a;if("initSegment"===e.sn&&ss(null==(o=e.decryptdata)?void 0:o.method)){var h=a-s;h%16&&(l=a+(16-h%16)),0!==s&&(r.resetIV=!0,n=s-16)}r.rangeStart=n,r.rangeEnd=l}return r}function rs(e,t){var i=new Error("GAP "+(e.gap?"tag":"attribute")+" found"),r={type:B.MEDIA_ERROR,details:D.FRAG_GAP,fatal:!1,frag:e,error:i,networkDetails:null};return t&&(r.part=t),(t||e).stats.aborted=!0,new as(r)}function ss(e){return"AES-128"===e||"AES-256"===e}var as=function(e){function t(t){var i;return(i=e.call(this,t.error.message)||this).data=void 0,i.data=t,i}return A(t,e),t}(C(Error)),os=function(){function e(e,t,i){this.subtle=void 0,this.aesIV=void 0,this.aesMode=void 0,this.subtle=e,this.aesIV=t,this.aesMode=i}return e.prototype.decrypt=function(e,t){switch(this.aesMode){case le.cbc:return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},t,e);case le.ctr:return this.subtle.decrypt({name:"AES-CTR",counter:this.aesIV,length:64},t,e);default:throw new Error("[AESCrypto] invalid aes mode "+this.aesMode)}},e}(),ns=function(){function e(e,t,i){this.subtle=void 0,this.key=void 0,this.aesMode=void 0,this.subtle=e,this.key=t,this.aesMode=i}return e.prototype.expandKey=function(){var e=ls(this.aesMode);return this.subtle.importKey("raw",this.key,{name:e},!1,["encrypt","decrypt"])},e}();function ls(e){switch(e){case le.cbc:return"AES-CBC";case le.ctr:return"AES-CTR";default:throw new Error("[FastAESKey] invalid aes mode "+e)}}function hs(e){var t=e.byteLength,i=t&&new DataView(e.buffer).getUint8(t-1);return i?Me(e,0,t-i):e}var As=function(){function e(){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()}var t=e.prototype;return t.uint8ArrayToUint32Array_=function(e){for(var t=new DataView(e),i=new Uint32Array(4),r=0;r<4;r++)i[r]=t.getUint32(4*r);return i},t.initTable=function(){var e=this.sBox,t=this.invSBox,i=this.subMix,r=i[0],s=i[1],a=i[2],o=i[3],n=this.invSubMix,l=n[0],h=n[1],A=n[2],d=n[3],c=new Uint32Array(256),u=0,p=0,g=0;for(g=0;g<256;g++)c[g]=g<128?g<<1:g<<1^283;for(g=0;g<256;g++){var m=p^p<<1^p<<2^p<<3^p<<4;m=m>>>8^255&m^99,e[u]=m,t[m]=u;var y=c[u],E=c[y],C=c[E],f=257*c[m]^16843008*m;r[u]=f<<24|f>>>8,s[u]=f<<16|f>>>16,a[u]=f<<8|f>>>24,o[u]=f,f=16843009*C^65537*E^257*y^16843008*u,l[m]=f<<24|f>>>8,h[m]=f<<16|f>>>16,A[m]=f<<8|f>>>24,d[m]=f,u?(u=y^c[c[c[C^y]]],p^=c[c[p]]):u=p=1}},t.expandKey=function(e){for(var t=this.uint8ArrayToUint32Array_(e),i=!0,r=0;r<t.length&&i;)i=t[r]===this.key[r],r++;if(!i){this.key=t;var s=this.keySize=t.length;if(4!==s&&6!==s&&8!==s)throw new Error("Invalid aes key size="+s);var a,o,n,l,h=this.ksRows=4*(s+6+1),A=this.keySchedule=new Uint32Array(h),d=this.invKeySchedule=new Uint32Array(h),c=this.sBox,u=this.rcon,p=this.invSubMix,g=p[0],m=p[1],y=p[2],E=p[3];for(a=0;a<h;a++)a<s?n=A[a]=t[a]:(l=n,a%s==0?(l=c[(l=l<<8|l>>>24)>>>24]<<24|c[l>>>16&255]<<16|c[l>>>8&255]<<8|c[255&l],l^=u[a/s|0]<<24):s>6&&a%s==4&&(l=c[l>>>24]<<24|c[l>>>16&255]<<16|c[l>>>8&255]<<8|c[255&l]),A[a]=n=(A[a-s]^l)>>>0);for(o=0;o<h;o++)a=h-o,l=3&o?A[a]:A[a-4],d[o]=o<4||a<=4?l:g[c[l>>>24]]^m[c[l>>>16&255]]^y[c[l>>>8&255]]^E[c[255&l]],d[o]=d[o]>>>0}},t.networkToHostOrderSwap=function(e){return e<<24|(65280&e)<<8|(16711680&e)>>8|e>>>24},t.decrypt=function(e,t,i){for(var r,s,a,o,n,l,h,A,d,c,u,p,g,m,y=this.keySize+6,E=this.invKeySchedule,C=this.invSBox,f=this.invSubMix,I=f[0],w=f[1],S=f[2],M=f[3],v=this.uint8ArrayToUint32Array_(i),k=v[0],B=v[1],D=v[2],b=v[3],Q=new Int32Array(e),R=new Int32Array(Q.length),T=this.networkToHostOrderSwap;t<Q.length;){for(d=T(Q[t]),c=T(Q[t+1]),u=T(Q[t+2]),p=T(Q[t+3]),n=d^E[0],l=p^E[1],h=u^E[2],A=c^E[3],g=4,m=1;m<y;m++)r=I[n>>>24]^w[l>>16&255]^S[h>>8&255]^M[255&A]^E[g],s=I[l>>>24]^w[h>>16&255]^S[A>>8&255]^M[255&n]^E[g+1],a=I[h>>>24]^w[A>>16&255]^S[n>>8&255]^M[255&l]^E[g+2],o=I[A>>>24]^w[n>>16&255]^S[l>>8&255]^M[255&h]^E[g+3],n=r,l=s,h=a,A=o,g+=4;r=C[n>>>24]<<24^C[l>>16&255]<<16^C[h>>8&255]<<8^C[255&A]^E[g],s=C[l>>>24]<<24^C[h>>16&255]<<16^C[A>>8&255]<<8^C[255&n]^E[g+1],a=C[h>>>24]<<24^C[A>>16&255]<<16^C[n>>8&255]<<8^C[255&l]^E[g+2],o=C[A>>>24]<<24^C[n>>16&255]<<16^C[l>>8&255]<<8^C[255&h]^E[g+3],R[t]=T(r^k),R[t+1]=T(o^B),R[t+2]=T(a^D),R[t+3]=T(s^b),k=d,B=c,D=u,b=p,t+=4}return R.buffer},e}(),ds=16,cs=function(){function e(e,t){var i=(void 0===t?{}:t).removePKCS7Padding,r=void 0===i||i;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.enableSoftwareAES=void 0,this.enableSoftwareAES=e.enableSoftwareAES,this.removePKCS7Padding=r,r)try{var s=self.crypto;s&&(this.subtle=s.subtle||s.webkitSubtle)}catch(e){}this.useSoftware=!this.subtle}var t=e.prototype;return t.destroy=function(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null},t.isSync=function(){return this.useSoftware},t.flush=function(){var e=this.currentResult,t=this.remainderData;if(!e||t)return this.reset(),null;var i=new Uint8Array(e);return this.reset(),this.removePKCS7Padding?hs(i):i},t.reset=function(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)},t.decrypt=function(e,t,i,r){var s=this;return this.useSoftware?new Promise((function(a,o){s.softwareDecrypt(new Uint8Array(e),t,i,r);var n=s.flush();n?a(n.buffer):o(new Error("[softwareDecrypt] Failed to decrypt data"))})):this.webCryptoDecrypt(new Uint8Array(e),t,i,r)},t.softwareDecrypt=function(e,t,i,r){var s=this.currentIV,a=this.currentResult,o=this.remainderData;if(r!==le.cbc||16!==t.byteLength)return F.warn("SoftwareDecrypt: can only handle AES-128-CBC"),null;this.logOnce("JS AES decrypt"),o&&(e=Xe(o,e),this.remainderData=null);var n=this.getValidChunk(e);if(!n.length)return null;s&&(i=s);var l=this.softwareDecrypter;l||(l=this.softwareDecrypter=new As),l.expandKey(t);var h=a;return this.currentResult=l.decrypt(n.buffer,0,i),this.currentIV=Me(n,-16).buffer,h||null},t.webCryptoDecrypt=function(e,t,i,r){var s=this;if(this.key!==t||!this.fastAesKey){if(!this.subtle)return Promise.resolve(this.onWebCryptoError(e,t,i,r));this.key=t,this.fastAesKey=new ns(this.subtle,t,r)}return this.fastAesKey.expandKey().then((function(t){return s.subtle?(s.logOnce("WebCrypto AES decrypt"),new os(s.subtle,new Uint8Array(i),r).decrypt(e.buffer,t)):Promise.reject(new Error("web crypto not initialized"))})).catch((function(a){return F.warn("[decrypter]: WebCrypto Error, disable WebCrypto API, "+a.name+": "+a.message),s.onWebCryptoError(e,t,i,r)}))},t.onWebCryptoError=function(e,t,i,r){var s=this.enableSoftwareAES;if(s){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(e,t,i,r);var a=this.flush();if(a)return a.buffer}throw new Error("WebCrypto"+(s?" and softwareDecrypt":"")+": failed to decrypt data")},t.getValidChunk=function(e){var t=e,i=e.length-e.length%ds;return i!==e.length&&(t=Me(e,0,i),this.remainderData=Me(e,i)),t},t.logOnce=function(e){this.logEnabled&&(F.log("[decrypter]: "+e),this.logEnabled=!1)},e}(),us={toString:function(e){for(var t="",i=e.length,r=0;r<i;r++)t+="["+e.start(r).toFixed(3)+"-"+e.end(r).toFixed(3)+"]";return t}},ps={STOPPED:"STOPPED",IDLE:"IDLE",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING",FRAG_LOADING_WAITING_RETRY:"FRAG_LOADING_WAITING_RETRY",WAITING_TRACK:"WAITING_TRACK",PARSING:"PARSING",PARSED:"PARSED",ENDED:"ENDED",ERROR:"ERROR",WAITING_INIT_PTS:"WAITING_INIT_PTS",WAITING_LEVEL:"WAITING_LEVEL"},gs=function(e){function t(t,i,r,s,a){var o;return(o=e.call(this,s,t.logger)||this).hls=void 0,o.fragPrevious=null,o.fragCurrent=null,o.fragmentTracker=void 0,o.transmuxer=null,o._state=ps.STOPPED,o.playlistType=void 0,o.media=null,o.mediaBuffer=null,o.config=void 0,o.bitrateTest=!1,o.lastCurrentTime=0,o.nextLoadPosition=0,o.startPosition=0,o.startTimeOffset=null,o.loadedmetadata=!1,o.retryDate=0,o.levels=null,o.fragmentLoader=void 0,o.keyLoader=void 0,o.levelLastLoaded=null,o.startFragRequested=!1,o.decrypter=void 0,o.initPTS=[],o.buffering=!0,o.loadingParts=!1,o.loopSn=void 0,o.onMediaSeeking=function(){var e=o,t=e.config,i=e.fragCurrent,r=e.media,s=e.mediaBuffer,a=e.state,n=r?r.currentTime:0,l=Pr.bufferInfo(s||r,n,t.maxBufferHole);if(o.log("media seeking to "+(S(n)?n.toFixed(3):n)+", state: "+a),o.state===ps.ENDED)o.resetLoadingState();else if(i){var h=t.maxFragLookUpTolerance,A=i.start-h,d=i.start+i.duration+h;if(!l.len||d<l.start||A>l.end){var c=n>d;(n<A||c)&&(c&&i.loader&&(o.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),i.abortRequests(),o.resetLoadingState()),o.fragPrevious=null)}}if(r&&(o.fragmentTracker.removeFragmentsInRange(n,1/0,o.playlistType,!0),n>o.lastCurrentTime&&(o.lastCurrentTime=n),!o.loadingParts)){var u=Math.max(l.end,n),p=o.shouldLoadParts(o.getLevelDetails(),u);p&&(o.log("LL-Part loading ON after seeking to "+n.toFixed(2)+" with buffer @"+u.toFixed(2)),o.loadingParts=p)}o.loadedmetadata||l.len||(o.nextLoadPosition=o.startPosition=n),o.tickImmediate()},o.onMediaEnded=function(){o.startPosition=o.lastCurrentTime=0,o.playlistType===Pt.MAIN&&o.hls.trigger(k.MEDIA_ENDED,{stalled:!1})},o.playlistType=a,o.hls=t,o.fragmentLoader=new ts(t.config),o.keyLoader=r,o.fragmentTracker=i,o.config=t.config,o.decrypter=new cs(t.config),o}A(t,e);var i=t.prototype;return i.registerListeners=function(){var e=this.hls;e.on(k.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(k.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(k.MANIFEST_LOADING,this.onManifestLoading,this),e.on(k.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(k.ERROR,this.onError,this)},i.unregisterListeners=function(){var e=this.hls;e.off(k.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(k.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(k.MANIFEST_LOADING,this.onManifestLoading,this),e.off(k.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(k.ERROR,this.onError,this)},i.doTick=function(){this.onTickEnd()},i.onTickEnd=function(){},i.startLoad=function(e){},i.stopLoad=function(){if(this.state!==ps.STOPPED){this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);var e=this.fragCurrent;null!=e&&e.loader&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=ps.STOPPED}},i.pauseBuffering=function(){this.buffering=!1},i.resumeBuffering=function(){this.buffering=!0},i._streamEnded=function(e,t){if(t.live||e.nextStart||!e.end||!this.media)return!1;var i=t.partList;if(null!=i&&i.length){var r=i[i.length-1];return Pr.isBuffered(this.media,r.start+r.duration/2)}var s=t.fragments[t.fragments.length-1].type;return this.fragmentTracker.isEndListAppended(s)},i.getLevelDetails=function(){var e;if(this.levels&&null!==this.levelLastLoaded)return null==(e=this.levelLastLoaded)?void 0:e.details},i.onMediaAttached=function(e,t){var i=this.media=this.mediaBuffer=t.media;i.addEventListener("seeking",this.onMediaSeeking),i.addEventListener("ended",this.onMediaEnded);var r=this.config;this.levels&&r.autoStartLoad&&this.state===ps.STOPPED&&this.startLoad(r.startPosition)},i.onMediaDetaching=function(){var e=this.media;null!=e&&e.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),e&&(e.removeEventListener("seeking",this.onMediaSeeking),e.removeEventListener("ended",this.onMediaEnded)),this.keyLoader&&this.keyLoader.detach(),this.media=this.mediaBuffer=null,this.loopSn=void 0,this.startFragRequested=this.loadedmetadata=this.loadingParts=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()},i.onManifestLoading=function(){this.initPTS=[],this.levels=this.levelLastLoaded=this.fragCurrent=null,this.lastCurrentTime=this.startPosition=0,this.startFragRequested=!1},i.onError=function(e,t){},i.onManifestLoaded=function(e,t){this.startTimeOffset=t.startTimeOffset},i.onHandlerDestroying=function(){this.stopLoad(),this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null),e.prototype.onHandlerDestroying.call(this),this.hls=this.onMediaSeeking=this.onMediaEnded=null},i.onHandlerDestroyed=function(){this.state=ps.STOPPED,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,e.prototype.onHandlerDestroyed.call(this)},i.loadFragment=function(e,t,i){this.startFragRequested=!0,this._loadFragForPlayback(e,t,i)},i._loadFragForPlayback=function(e,t,i){var r=this,s=function(t){if(r.fragContextChanged(e))return r.warn("Fragment "+e.sn+(t.part?" p: "+t.part.index:"")+" of level "+e.level+" was dropped during download."),void r.fragmentTracker.removeFragment(e);e.stats.chunkCount++,r._handleFragmentLoadProgress(t)};this._doFragLoad(e,t,i,s).then((function(t){if(t){var i=r.state;r.fragContextChanged(e)?(i===ps.FRAG_LOADING||!r.fragCurrent&&i===ps.PARSING)&&(r.fragmentTracker.removeFragment(e),r.state=ps.IDLE):("payload"in t&&(r.log("Loaded "+e.type+" sn: "+e.sn+" of "+r.playlistLabel()+" "+e.level),r.hls.trigger(k.FRAG_LOADED,t)),r._handleFragmentLoadComplete(t))}})).catch((function(t){r.state!==ps.STOPPED&&r.state!==ps.ERROR&&(r.warn("Frag error: "+((null==t?void 0:t.message)||t)),r.resetFragmentLoading(e))}))},i.clearTrackerIfNeeded=function(e){var t,i=this.fragmentTracker;if(i.getState(e)===Gr.APPENDING){var r=e.type,s=this.getFwdBufferInfo(this.mediaBuffer,r),a=Math.max(e.duration,s?s.len:this.config.maxBufferLength),o=this.backtrackFragment;(1==(o?e.sn-o.sn:0)||this.reduceMaxBufferLength(a,e.duration))&&i.removeFragment(e)}else 0===(null==(t=this.mediaBuffer)?void 0:t.buffered.length)?i.removeAllFragments():i.hasParts(e.type)&&(i.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type}),i.getState(e)===Gr.PARTIAL&&i.removeFragment(e))},i.checkLiveUpdate=function(e){if(e.updated&&!e.live){var t=e.fragments[e.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:t,part:null,stats:t.stats,id:t.type})}e.fragments[0]||(e.deltaUpdateFailed=!0)},i.flushMainBuffer=function(e,t,i){if(void 0===i&&(i=null),e-t){var r={startOffset:e,endOffset:t,type:i};this.hls.trigger(k.BUFFER_FLUSHING,r)}},i._loadInitSegment=function(e,t){var i=this;this._doFragLoad(e,t).then((function(t){if(!t||i.fragContextChanged(e)||!i.levels)throw new Error("init load aborted");return t})).then((function(t){var r=i.hls,s=t.payload,a=e.decryptdata;if(s&&s.byteLength>0&&null!=a&&a.key&&a.iv&&he(a.method)){var o=self.performance.now();return i.decrypter.decrypt(new Uint8Array(s),a.key.buffer,a.iv.buffer,Ae(a.method)).catch((function(t){throw r.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.FRAG_DECRYPT_ERROR,fatal:!1,error:t,reason:t.message,frag:e}),t})).then((function(s){var a=self.performance.now();return r.trigger(k.FRAG_DECRYPTED,{frag:e,payload:s,stats:{tstart:o,tdecrypt:a}}),t.payload=s,i.completeInitSegmentLoad(t)}))}return i.completeInitSegmentLoad(t)})).catch((function(t){i.state!==ps.STOPPED&&i.state!==ps.ERROR&&(i.warn(t),i.resetFragmentLoading(e))}))},i.completeInitSegmentLoad=function(e){if(!this.levels)throw new Error("init load aborted, missing levels");var t=e.frag.stats;this.state!==ps.STOPPED&&(this.state=ps.IDLE),e.frag.data=new Uint8Array(e.payload),t.parsing.start=t.buffering.start=self.performance.now(),t.parsing.end=t.buffering.end=self.performance.now(),this.tick()},i.fragContextChanged=function(e){var t=this.fragCurrent;return!e||!t||e.sn!==t.sn||e.level!==t.level},i.fragBufferedComplete=function(e,t){var i,r,s=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log("Buffered "+e.type+" sn: "+e.sn+(t?" part: "+t.index:"")+" of "+this.fragInfo(e)+" > buffer:"+(s?us.toString(Pr.getBuffered(s)):"(detached)")+")"),"initSegment"!==e.sn){var a;if(e.type!==Pt.SUBTITLE){var o=e.elementaryStreams;if(!Object.keys(o).some((function(e){return!!o[e]})))return void(this.state=ps.IDLE)}var n=null==(a=this.levels)?void 0:a[e.level];null!=n&&n.fragmentError&&(this.log("Resetting level fragment error count of "+n.fragmentError+" on frag buffered"),n.fragmentError=0)}this.state=ps.IDLE,s&&(!this.loadedmetadata&&e.type==Pt.MAIN&&s.buffered.length&&(null==(i=this.fragCurrent)?void 0:i.sn)===(null==(r=this.fragPrevious)?void 0:r.sn)&&(this.loadedmetadata=!0,this.seekToStartPos()),this.tick())},i.seekToStartPos=function(){},i._handleFragmentLoadComplete=function(e){var t=this.transmuxer;if(t){var i=e.frag,r=e.part,s=e.partsLoaded,a=!s||0===s.length||s.some((function(e){return!e})),o=new jr(i.level,i.sn,i.stats.chunkCount+1,0,r?r.index:-1,!a);t.flush(o)}},i._handleFragmentLoadProgress=function(e){},i._doFragLoad=function(e,t,i,r){var s,a=this;void 0===i&&(i=null),this.fragCurrent=e;var o=null==t?void 0:t.details;if(!this.levels||!o)throw new Error("frag load aborted, missing level"+(o?"":" detail")+"s");var n=null;!e.encrypted||null!=(s=e.decryptdata)&&s.key?!e.encrypted&&o.encryptedFragments.length&&this.keyLoader.loadClear(e,o.encryptedFragments):(this.log("Loading key for "+e.sn+" of ["+o.startSN+"-"+o.endSN+"], "+this.playlistLabel()+" "+e.level),this.state=ps.KEY_LOADING,this.fragCurrent=e,n=this.keyLoader.load(e).then((function(e){if(!a.fragContextChanged(e.frag))return a.hls.trigger(k.KEY_LOADED,e),a.state===ps.KEY_LOADING&&(a.state=ps.IDLE),e})),this.hls.trigger(k.KEY_LOADING,{frag:e}),null===this.fragCurrent&&(n=Promise.reject(new Error("frag load aborted, context changed in KEY_LOADING"))));var l=this.fragPrevious;if("initSegment"!==e.sn&&(!l||e.sn!==l.sn)){var h=this.shouldLoadParts(t.details,e.end);h!==this.loadingParts&&(this.log("LL-Part loading "+(h?"ON":"OFF")+" loading sn "+(null==l?void 0:l.sn)+"->"+e.sn),this.loadingParts=h)}if(i=Math.max(e.start,i||0),this.loadingParts&&"initSegment"!==e.sn){var A=o.partList;if(A&&r){i>e.end&&o.fragmentHint&&(e=o.fragmentHint);var d=this.getNextPart(A,e,i);if(d>-1){var c,u=A[d];return this.log("Loading part sn: "+e.sn+" p: "+u.index+" cc: "+e.cc+" of playlist ["+o.startSN+"-"+o.endSN+"] parts [0-"+d+"-"+(A.length-1)+"] "+this.playlistLabel()+": "+e.level+", target: "+parseFloat(i.toFixed(3))),this.nextLoadPosition=u.start+u.duration,this.state=ps.FRAG_LOADING,c=n?n.then((function(i){return!i||a.fragContextChanged(i.frag)?null:a.doFragPartsLoad(e,u,t,r)})).catch((function(e){return a.handleFragLoadError(e)})):this.doFragPartsLoad(e,u,t,r).catch((function(e){return a.handleFragLoadError(e)})),this.hls.trigger(k.FRAG_LOADING,{frag:e,part:u,targetBufferTime:i}),null===this.fragCurrent?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):c}if(!e.url||this.loadedEndOfParts(A,i))return Promise.resolve(null)}}if("initSegment"!==e.sn&&this.loadingParts)this.log("LL-Part loading OFF after next part miss @"+i.toFixed(2)),this.loadingParts=!1;else if(!e.url)return Promise.resolve(null);this.log("Loading "+e.type+" sn: "+e.sn+" of "+this.fragInfo(e,!1)+") cc: "+e.cc+" "+(o?"["+o.startSN+"-"+o.endSN+"]":"")+", target: "+parseFloat(i.toFixed(3))),S(e.sn)&&!this.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),this.state=ps.FRAG_LOADING;var p,g=this.config.progressive;return p=g&&n?n.then((function(t){return!t||a.fragContextChanged(null==t?void 0:t.frag)?null:a.fragmentLoader.load(e,r)})).catch((function(e){return a.handleFragLoadError(e)})):Promise.all([this.fragmentLoader.load(e,g?r:void 0),n]).then((function(e){var t=e[0];return!g&&t&&r&&r(t),t})).catch((function(e){return a.handleFragLoadError(e)})),this.hls.trigger(k.FRAG_LOADING,{frag:e,targetBufferTime:i}),null===this.fragCurrent?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):p},i.doFragPartsLoad=function(e,t,i,r){var s=this;return new Promise((function(a,o){var n,l=[],h=null==(n=i.details)?void 0:n.partList,A=function(t){s.fragmentLoader.loadPart(e,t,r).then((function(r){l[t.index]=r;var o=r.part;s.hls.trigger(k.FRAG_LOADED,r);var n=Hi(i.details,e.sn,t.index+1)||Xi(h,e.sn,t.index+1);if(!n)return a({frag:e,part:o,partsLoaded:l});A(n)})).catch(o)};A(t)}))},i.handleFragLoadError=function(e){if("data"in e){var t=e.data;e.data&&t.details===D.INTERNAL_ABORTED?this.handleFragLoadAborted(t.frag,t.part):this.hls.trigger(k.ERROR,t)}else this.hls.trigger(k.ERROR,{type:B.OTHER_ERROR,details:D.INTERNAL_EXCEPTION,err:e,error:e,fatal:!0});return null},i._handleTransmuxerFlush=function(e){var t=this.getCurrentContext(e);if(t&&this.state===ps.PARSING){var i=t.frag,r=t.part,s=t.level,a=self.performance.now();i.stats.parsing.end=a,r&&(r.stats.parsing.end=a);var o=this.getLevelDetails(),n=o&&i.sn>o.endSN||this.shouldLoadParts(o,i.end);n!==this.loadingParts&&(this.log("LL-Part loading "+(n?"ON":"OFF")+" after parsing segment ending @"+i.end.toFixed(2)),this.loadingParts=n),this.updateLevelTiming(i,r,s,e.partial)}else this.fragCurrent||this.state===ps.STOPPED||this.state===ps.ERROR||(this.state=ps.IDLE)},i.shouldLoadParts=function(e,t){if(this.config.lowLatencyMode){if(!e)return this.loadingParts;if(null!=e&&e.partList){var i,r=e.partList[0];if(t>=r.end+((null==(i=e.fragmentHint)?void 0:i.duration)||0)&&this.lastCurrentTime>r.start-r.fragment.duration)return!0}}return!1},i.getCurrentContext=function(e){var t=this.levels,i=this.fragCurrent,r=e.level,s=e.sn,a=e.part;if(null==t||!t[r])return this.warn("Levels object was unset while buffering fragment "+s+" of level "+r+". The current chunk will not be buffered."),null;var o=t[r],n=o.details,l=a>-1?Hi(n,s,a):null,h=l?l.fragment:Vi(n,s,i);return h?(i&&i!==h&&(h.stats=i.stats),{frag:h,part:l,level:o}):null},i.bufferFragmentData=function(e,t,i,r,s){var a;if(e&&this.state===ps.PARSING){var o=e.data1,n=e.data2,l=o;if(o&&n&&(l=Xe(o,n)),null!=(a=l)&&a.length){var h={type:e.type,frag:t,part:i,chunkMeta:r,parent:t.type,data:l};if(this.hls.trigger(k.BUFFER_APPENDING,h),e.dropped&&e.independent&&!i){if(s)return;this.flushBufferGap(t)}}}},i.flushBufferGap=function(e){var t=this.media;if(t)if(Pr.isBuffered(t,t.currentTime)){var i=t.currentTime,r=Pr.bufferInfo(t,i,0),s=e.duration,a=Math.min(2*this.config.maxFragLookUpTolerance,.25*s),o=Math.max(Math.min(e.start-a,r.end-a),i+a);e.start-o>a&&this.flushMainBuffer(o,e.start)}else this.flushMainBuffer(0,e.start)},i.getFwdBufferInfo=function(e,t){var i,r=this.getLoadPosition();if(!S(r))return null;var s=this.lastCurrentTime>r||null!=(i=this.media)&&i.paused?0:this.config.maxBufferHole;return this.getFwdBufferInfoAtPos(e,r,t,s)},i.getFwdBufferInfoAtPos=function(e,t,i,r){var s=Pr.bufferInfo(e,t,r);if(0===s.len&&void 0!==s.nextStart){var a=this.fragmentTracker.getBufferedFrag(t,i);if(a&&(s.nextStart<=a.end||a.gap))return Pr.bufferInfo(e,t,Math.max(s.nextStart,r))}return s},i.getMaxBufferLength=function(e){var t,i=this.config;return t=e?Math.max(8*i.maxBufferSize/e,i.maxBufferLength):i.maxBufferLength,Math.min(t,i.maxMaxBufferLength)},i.reduceMaxBufferLength=function(e,t){var i=this.config,r=Math.max(Math.min(e-t,i.maxBufferLength),t),s=Math.max(e-3*t,i.maxMaxBufferLength/2,r);return s>=r&&(i.maxMaxBufferLength=s,this.warn("Reduce max buffer length to "+s+"s"),!0)},i.getAppendedFrag=function(e,t){var i;void 0===t&&(t=Pt.MAIN);var r=null==(i=this.fragmentTracker)?void 0:i.getAppendedFrag(e,t);return r&&"fragment"in r?r.fragment:r},i.getNextFragment=function(e,t){var i=t.fragments,r=i.length;if(!r)return null;var s=this.config,a=i[0].start,o=s.lowLatencyMode&&!!t.partList,n=null;if(t.live){var l=s.initialLiveManifestSize;if(r<l)return this.warn("Not enough fragments to start playback (have: "+r+", need: "+l+")"),null;(!t.PTSKnown&&!this.startFragRequested&&-1===this.startPosition||e<a)&&(o&&!this.loadingParts&&(this.log("LL-Part loading ON for initial live fragment"),this.loadingParts=!0),n=this.getInitialLiveFragment(t,i),this.startPosition=this.nextLoadPosition=n?this.hls.liveSyncPosition||n.start:e)}else e<=a&&(n=i[0]);if(!n){var h=this.loadingParts?t.partEnd:t.fragmentEnd;n=this.getFragmentAtPosition(e,h,t)}return this.mapToInitFragWhenRequired(n)},i.isLoopLoading=function(e,t){var i=this.fragmentTracker.getState(e);return(i===Gr.OK||i===Gr.PARTIAL&&!!e.gap)&&this.nextLoadPosition>t},i.getNextFragmentLoopLoading=function(e,t,i,r,s){var a=null;if(e.gap&&(a=this.getNextFragment(this.nextLoadPosition,t))&&!a.gap&&i.nextStart){var o=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,i.nextStart,r,0);if(null!==o&&i.len+o.len>=s){var n=a.sn;return this.loopSn!==n&&(this.log('buffer full after gaps in "'+r+'" playlist starting at sn: '+n),this.loopSn=n),null}}return this.loopSn=void 0,a},i.mapToInitFragWhenRequired=function(e){return null==e||!e.initSegment||null!=e&&e.initSegment.data||this.bitrateTest?e:e.initSegment},i.getNextPart=function(e,t,i){for(var r=-1,s=!1,a=!0,o=0,n=e.length;o<n;o++){var l=e[o];if(a=a&&!l.independent,r>-1&&i<l.start)break;var h=l.loaded;h?r=-1:(s||l.independent||a)&&l.fragment===t&&(r=o),s=h}return r},i.loadedEndOfParts=function(e,t){var i=e[e.length-1];return i&&t>i.start&&i.loaded},i.getInitialLiveFragment=function(e,t){var i=this.fragPrevious,r=null;if(i){if(e.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+i.programDateTime),r=or(t,i.endProgramDateTime,this.config.maxFragLookUpTolerance)),!r){var s=i.sn+1;if(s>=e.startSN&&s<=e.endSN){var a=t[s-e.startSN];i.cc===a.cc&&(r=a,this.log("Live playlist, switching playlist, load frag with next SN: "+r.sn))}r||(r=dr(t,i.cc))&&this.log("Live playlist, switching playlist, load frag with same CC: "+r.sn)}}else{var o=this.hls.liveSyncPosition;null!==o&&(r=this.getFragmentAtPosition(o,this.bitrateTest?e.fragmentEnd:e.edge,e))}return r},i.getFragmentAtPosition=function(e,t,i){var r,s,a=this.config,o=this.fragPrevious,n=i.fragments,l=i.endSN,h=i.fragmentHint,A=a.maxFragLookUpTolerance,d=i.partList,c=!!(this.loadingParts&&null!=d&&d.length&&h);if(c&&h&&!this.bitrateTest&&(n=n.concat(h),l=h.sn),r=e<t?nr(o,n,e,e<this.lastCurrentTime||e>t-A||null!=(s=this.media)&&s.paused?0:A):n[n.length-1]){var u=r.sn-i.startSN,p=this.fragmentTracker.getState(r);if((p===Gr.OK||p===Gr.PARTIAL&&r.gap)&&(o=r),o&&r.sn===o.sn&&(!c||d[0].fragment.sn>r.sn)&&o&&r.level===o.level){var g=n[u+1];r=r.sn<l&&this.fragmentTracker.getState(g)!==Gr.OK?g:null}}return r},i.synchronizeToLiveEdge=function(e){var t=this.config,i=this.media;if(i){var r=this.hls.liveSyncPosition,s=i.currentTime,a=e.fragments[0].start,o=e.edge,n=s>=a-t.maxFragLookUpTolerance&&s<=o;if(null!==r&&i.duration>r&&(s<r||!n)){var l=void 0!==t.liveMaxLatencyDuration?t.liveMaxLatencyDuration:t.liveMaxLatencyDurationCount*e.targetduration;(!n&&i.readyState<4||s<o-l)&&(this.loadedmetadata||(this.nextLoadPosition=r),i.readyState&&(this.warn("Playback: "+s.toFixed(3)+" is located too far from the end of live sliding playlist: "+o+", reset currentTime to : "+r.toFixed(3)),i.currentTime=r))}}},i.alignPlaylists=function(e,t,i){var r=e.fragments.length;if(!r)return this.warn("No fragments in live playlist"),0;var s=e.fragments[0].start,a=!t,o=e.alignedSliding&&S(s);if(a||!o&&!s){var n=this.fragPrevious;Xr(n,i,e);var l=e.fragments[0].start;return this.log("Live playlist sliding: "+l.toFixed(2)+" start-sn: "+(t?t.startSN:"na")+"->"+e.startSN+" prev-sn: "+(n?n.sn:"na")+" fragments: "+r),l}return s},i.waitForCdnTuneIn=function(e){var t=3;return e.live&&e.canBlockReload&&e.partTarget&&e.tuneInGoal>Math.max(e.partHoldBack,e.partTarget*t)},i.setStartPosition=function(e,t){var i=this.startPosition;if(i<t&&(i=-1),-1===i||-1===this.lastCurrentTime){var r=null!==this.startTimeOffset,s=r?this.startTimeOffset:e.startTimeOffset;null!==s&&S(s)?(i=t+s,s<0&&(i+=e.edge),i=Math.min(Math.max(t,i),t+e.totalduration),this.log("Start time offset "+s+" found in "+(r?"multivariant":"media")+" playlist, adjust startPosition to "+i),this.startPosition=i):e.live?i=this.hls.liveSyncPosition||t:this.startPosition=i=0,this.lastCurrentTime=i}this.nextLoadPosition=i},i.getLoadPosition=function(){var e=this.media,t=0;return this.loadedmetadata&&e?t=e.currentTime:this.nextLoadPosition&&(t=this.nextLoadPosition),t},i.handleFragLoadAborted=function(e,t){this.transmuxer&&"initSegment"!==e.sn&&e.stats.aborted&&(this.warn("Fragment "+e.sn+(t?" part "+t.index:"")+" of level "+e.level+" was aborted"),this.resetFragmentLoading(e))},i.resetFragmentLoading=function(e){this.fragCurrent&&(this.fragContextChanged(e)||this.state===ps.FRAG_LOADING_WAITING_RETRY)||(this.state=ps.IDLE)},i.onFragmentOrKeyLoadError=function(e,t){if(t.chunkMeta&&!t.frag){var i=this.getCurrentContext(t.chunkMeta);i&&(t.frag=i.frag)}var r=t.frag;if(r&&r.type===e&&this.levels)if(this.fragContextChanged(r)){var s;this.warn("Frag load error must match current frag to retry "+r.url+" > "+(null==(s=this.fragCurrent)?void 0:s.url))}else{var a=t.details===D.FRAG_GAP;a&&this.fragmentTracker.fragBuffered(r,!0);var o=t.errorAction,n=o||{},l=n.action,h=n.retryCount,A=void 0===h?0:h,d=n.retryConfig;if(o&&l===ur.RetryRequest&&d){this.resetStartWhenNotLoaded(this.levelLastLoaded);var c=tr(d,A);this.warn("Fragment "+r.sn+" of "+e+" "+r.level+" errored with "+t.details+", retrying loading "+(A+1)+"/"+d.maxNumRetry+" in "+c+"ms"),o.resolved=!0,this.retryDate=self.performance.now()+c,this.state=ps.FRAG_LOADING_WAITING_RETRY}else if(d&&o){if(this.resetFragmentErrors(e),!(A<d.maxNumRetry))return void this.warn(t.details+" reached or exceeded max retry ("+A+")");a||l===ur.RemoveAlternatePermanently||(o.resolved=!0)}else(null==o?void 0:o.action)===ur.SendAlternateToPenaltyBox?this.state=ps.WAITING_LEVEL:this.state=ps.ERROR;this.tickImmediate()}},i.reduceLengthAndFlushBuffer=function(e){if(this.state===ps.PARSING||this.state===ps.PARSED){var t=e.frag,i=e.parent,r=this.getFwdBufferInfo(this.mediaBuffer,i),s=r&&r.len>.5;s&&this.reduceMaxBufferLength(r.len,(null==t?void 0:t.duration)||10);var a=!s;return a&&this.warn("Buffer full error while media.currentTime is not buffered, flush "+i+" buffer"),t&&(this.fragmentTracker.removeFragment(t),this.nextLoadPosition=t.start),this.resetLoadingState(),a}return!1},i.resetFragmentErrors=function(e){e===Pt.AUDIO&&(this.fragCurrent=null),this.loadedmetadata||(this.startFragRequested=!1),this.state!==ps.STOPPED&&(this.state=ps.IDLE)},i.afterBufferFlushed=function(e,t,i){if(e){var r=Pr.getBuffered(e);this.fragmentTracker.detectEvictedFragments(t,r,i),this.state===ps.ENDED&&this.resetLoadingState()}},i.resetLoadingState=function(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state!==ps.STOPPED&&(this.state=ps.IDLE)},i.resetStartWhenNotLoaded=function(e){if(!this.loadedmetadata){this.startFragRequested=!1;var t=e?e.details:null;null!=t&&t.live?(this.startPosition=-1,this.setStartPosition(t,0),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}},i.resetWhenMissingContext=function(e){this.warn("The loading context changed while buffering fragment "+e.sn+" of level "+e.level+". This chunk will not be buffered."),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState()},i.removeUnbufferedFrags=function(e){void 0===e&&(e=0),this.fragmentTracker.removeFragmentsInRange(e,1/0,this.playlistType,!1,!0)},i.updateLevelTiming=function(e,t,i,r){var s,a=this,o=i.details;if(o){if(!Object.keys(e.elementaryStreams).reduce((function(t,s){var n=e.elementaryStreams[s];if(n){var l=n.endPTS-n.startPTS;if(l<=0)return a.warn("Could not parse fragment "+e.sn+" "+s+" duration reliably ("+l+")"),t||!1;var h=r?0:Ji(o,e,n.startPTS,n.endPTS,n.startDTS,n.endDTS);return a.hls.trigger(k.LEVEL_PTS_UPDATED,{details:o,level:i,drift:h,type:s,frag:e,start:n.startPTS,end:n.endPTS}),!0}return t}),!1)&&null===(null==(s=this.transmuxer)?void 0:s.error)){var n=new Error("Found no media in fragment "+e.sn+" of level "+e.level+" resetting transmuxer to fallback to playlist timing");if(0===i.fragmentError&&(i.fragmentError++,e.gap=!0,this.fragmentTracker.removeFragment(e),this.fragmentTracker.fragBuffered(e,!0)),this.warn(n.message),this.hls.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.FRAG_PARSING_ERROR,fatal:!1,error:n,frag:e,reason:"Found no media in msn "+e.sn+' of level "'+i.url+'"'}),!this.hls)return;this.resetTransmuxer()}this.state=ps.PARSED,this.log("Parsed "+e.type+" sn: "+e.sn+(t?" part: "+t.index:"")+" of "+this.fragInfo(e)+")"),this.hls.trigger(k.FRAG_PARSED,{frag:e,part:t})}else this.warn("level.details undefined")},i.playlistLabel=function(){return this.playlistType===Pt.MAIN?"level":"track"},i.fragInfo=function(e,t){var i,r;return void 0===t&&(t=!0),this.playlistLabel()+" "+e.level+" (frag:["+(null!=(i=t?e.startPTS:e.start)?i:NaN).toFixed(3)+"-"+(null!=(r=t?e.endPTS:e.end)?r:NaN).toFixed(3)+"]"},i.resetTransmuxer=function(){var e;null==(e=this.transmuxer)||e.reset()},i.recoverWorkerError=function(e){"demuxerWorker"===e.event&&(this.fragmentTracker.removeAllFragments(),this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState())},a(t,[{key:"state",get:function(){return this._state},set:function(e){var t=this._state;t!==e&&(this._state=e,this.log(t+"->"+e))}}])}(Ur),ms=function(){function e(){this.chunks=[],this.dataLength=0}var t=e.prototype;return t.push=function(e){this.chunks.push(e),this.dataLength+=e.length},t.flush=function(){var e,t=this.chunks,i=this.dataLength;return t.length?(e=1===t.length?t[0]:ys(t,i),this.reset(),e):new Uint8Array(0)},t.reset=function(){this.chunks.length=0,this.dataLength=0},e}();function ys(e,t){for(var i=new Uint8Array(t),r=0,s=0;s<e.length;s++){var a=e[s];i.set(a,r),r+=a.length}return i}function Es(e,t){return void 0===e&&(e=""),void 0===t&&(t=9e4),{type:e,id:-1,pid:-1,inputTimeScale:t,sequenceNumber:-1,samples:[],dropped:0}}function Cs(e,t){for(var i=t,r=0;Ci(e,t);)r+=10,r+=mi(e,t+6),Ei(e,t+10)&&(r+=10),t+=r;if(r>0)return e.subarray(i,i+r)}function fs(e){if(8===e.data.byteLength){var t=new Uint8Array(e.data),i=1&t[3],r=(t[4]<<23)+(t[5]<<15)+(t[6]<<7)+t[7];return r/=45,i&&(r+=47721858.84),Math.round(r)}}function Is(e){for(var t=wi(e),i=0;i<t.length;i++){var r=t[i];if(Si(r))return fs(r)}}function ws(e,t){return Ci(e,t)&&mi(e,t+6)+10<=e.length-t}var Ss=function(){function e(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}var t=e.prototype;return t.resetInitSegment=function(e,t,i,r){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}},t.resetTimeStamp=function(e){this.initPTS=e,this.resetContiguity()},t.resetContiguity=function(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0},t.canParse=function(e,t){return!1},t.appendFrame=function(e,t,i){},t.demux=function(e,t){this.cachedData&&(e=Xe(this.cachedData,e),this.cachedData=null);var i,r=Cs(e,0),s=r?r.length:0,a=this._audioTrack,o=this._id3Track,n=r?Is(r):void 0,l=e.length;for((null===this.basePTS||0===this.frameIndex&&S(n))&&(this.basePTS=Ms(n,t,this.initPTS),this.lastPTS=this.basePTS),null===this.lastPTS&&(this.lastPTS=this.basePTS),r&&r.length>0&&o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:r,type:ti.audioId3,duration:Number.POSITIVE_INFINITY});s<l;){if(this.canParse(e,s)){var h=this.appendFrame(a,e,s);h?(this.frameIndex++,this.lastPTS=h.sample.pts,i=s+=h.length):s=l}else ws(e,s)?(r=Cs(e,s),o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:r,type:ti.audioId3,duration:Number.POSITIVE_INFINITY}),i=s+=r.length):s++;if(s===l&&i!==l){var A=Me(e,i);this.cachedData?this.cachedData=Xe(this.cachedData,A):this.cachedData=A}}return{audioTrack:a,videoTrack:Es(),id3Track:o,textTrack:Es()}},t.demuxSampleAes=function(e,t,i){return Promise.reject(new Error("["+this+"] This demuxer does not support Sample-AES decryption"))},t.flush=function(e){var t=this.cachedData;return t&&(this.cachedData=null,this.demux(t,0)),{audioTrack:this._audioTrack,videoTrack:Es(),id3Track:this._id3Track,textTrack:Es()}},t.destroy=function(){this.cachedData=null,this._audioTrack=this._id3Track=void 0},e}(),Ms=function(e,t,i){return S(e)?90*e:9e4*t+(i?9e4*i.baseTime/i.timescale:0)};function vs(e,t,i,r){var s=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],a=t[i+2],o=a>>2&15;if(!(o>12)){var n=1+(a>>6&3),l=t[i+3]>>6&3|(1&a)<<2,h="mp4a.40."+n,A=s[o],d=o;5!==n&&29!==n||(d-=3);var c=[n<<3|(14&d)>>1,(1&d)<<7|l<<3];return F.log("manifest codec:"+r+", parsed codec:"+h+", channels:"+l+", rate:"+A+" (ADTS object type:"+n+" sampling index:"+o+")"),{config:c,samplerate:A,channelCount:l,codec:h,parsedCodec:h,manifestCodec:r}}var u=new Error("invalid ADTS sampling index:"+o);e.emit(k.ERROR,k.ERROR,{type:B.MEDIA_ERROR,details:D.FRAG_PARSING_ERROR,fatal:!0,error:u,reason:u.message})}function ks(e,t){return 255===e[t]&&240==(246&e[t+1])}function Bs(e,t){return 1&e[t+1]?7:9}function Ds(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}function bs(e,t){return t+5<e.length}function Qs(e,t){return t+1<e.length&&ks(e,t)}function Rs(e,t){return bs(e,t)&&ks(e,t)&&Ds(e,t)<=e.length-t}function Ts(e,t){if(Qs(e,t)){var i=Bs(e,t);if(t+i>=e.length)return!1;var r=Ds(e,t);if(r<=i)return!1;var s=t+r;return s===e.length||Qs(e,s)}return!1}function Ls(e,t,i,r,s){if(!e.samplerate){var a=vs(t,i,r,s);if(!a)return;l(e,a)}}function Ks(e){return 9216e4/e}function qs(e,t){var i=Bs(e,t);if(t+i<=e.length){var r=Ds(e,t)-i;if(r>0)return{headerLength:i,frameLength:r}}}function xs(e,t,i,r,s){var a,o=r+s*Ks(e.samplerate),n=qs(t,i);if(n){var l=n.frameLength,h=n.headerLength,A=h+l,d=Math.max(0,i+A-t.length);d?(a=new Uint8Array(A-h)).set(t.subarray(i+h,t.length),0):a=t.subarray(i+h,i+A);var c={unit:a,pts:o};return d||e.samples.push(c),{sample:c,length:A,missing:d}}var u=t.length-i;return(a=new Uint8Array(u)).set(t.subarray(i,t.length),0),{sample:{unit:a,pts:o},length:u,missing:-1}}var Fs=null,Us=[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],Gs=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],Os=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],Js=[0,1,1,4];function Ys(e,t,i,r,s){if(!(i+24>t.length)){var a=Ns(t,i);if(a&&i+a.frameLength<=t.length){var o=r+s*(9e4*a.samplesPerFrame/a.sampleRate),n={unit:t.subarray(i,i+a.frameLength),pts:o,dts:o};return e.config=[],e.channelCount=a.channelCount,e.samplerate=a.sampleRate,e.samples.push(n),{sample:n,length:a.frameLength,missing:0}}}}function Ns(e,t){var i=e[t+1]>>3&3,r=e[t+1]>>1&3,s=e[t+2]>>4&15,a=e[t+2]>>2&3;if(1!==i&&0!==s&&15!==s&&3!==a){var o=e[t+2]>>1&1,n=e[t+3]>>6,l=1e3*Us[14*(3===i?3-r:3===r?3:4)+s-1],h=Gs[3*(3===i?0:2===i?1:2)+a],A=3===n?1:2,d=Os[i][r],c=Js[r],u=8*d*c,p=Math.floor(d*l/h+o)*c;if(null===Fs){var g=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);Fs=g?parseInt(g[1]):0}return!!Fs&&Fs<=87&&2===r&&l>=224e3&&0===n&&(e[t+3]=128|e[t+3]),{sampleRate:h,channelCount:A,frameLength:p,samplesPerFrame:u}}}function Ps(e,t){return 255===e[t]&&224==(224&e[t+1])&&0!=(6&e[t+1])}function js(e,t){return t+1<e.length&&Ps(e,t)}function zs(e,t){var i=4;return Ps(e,t)&&i<=e.length-t}function Ws(e,t){if(t+1<e.length&&Ps(e,t)){var i=4,r=Ns(e,t),s=i;null!=r&&r.frameLength&&(s=r.frameLength);var a=t+s;return a===e.length||js(e,a)}return!1}var Zs=function(e){function t(t,i){var r;return(r=e.call(this)||this).observer=void 0,r.config=void 0,r.observer=t,r.config=i,r}A(t,e);var i=t.prototype;return i.resetInitSegment=function(t,i,r,s){e.prototype.resetInitSegment.call(this,t,i,r,s),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:i,duration:s,inputTimeScale:9e4,dropped:0}},t.probe=function(e,t){if(!e)return!1;var i=Cs(e,0),r=(null==i?void 0:i.length)||0;if(Ws(e,r))return!1;for(var s=e.length;r<s;r++)if(Ts(e,r))return t.log("ADTS sync word found !"),!0;return!1},i.canParse=function(e,t){return Rs(e,t)},i.appendFrame=function(e,t,i){Ls(e,this.observer,t,i,e.manifestCodec);var r=xs(e,t,i,this.basePTS,this.frameIndex);if(r&&0===r.missing)return r},t}(Ss),Vs=/\/emsg[-/]ID3/i,Hs=function(){function e(e,t){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=t}var t=e.prototype;return t.resetTimeStamp=function(){},t.resetInitSegment=function(e,t,i,r){var s=this.videoTrack=Es("video",1),a=this.audioTrack=Es("audio",1),o=this.txtTrack=Es("text",1);if(this.id3Track=Es("id3",1),this.timeOffset=0,null!=e&&e.byteLength){var n=Ge(e);if(n.video){var l=n.video,h=l.id,A=l.timescale,d=l.codec;s.id=h,s.timescale=o.timescale=A,s.codec=d}if(n.audio){var c=n.audio,u=c.id,p=c.timescale,g=c.codec;a.id=u,a.timescale=p,a.codec=g}o.id=be.text,s.sampleDuration=0,s.duration=a.duration=r}},t.resetContiguity=function(){this.remainderData=null},e.probe=function(e){return xe(e)},t.demux=function(e,t){this.timeOffset=t;var i=e,r=this.videoTrack,s=this.txtTrack;if(this.config.progressive){this.remainderData&&(i=Xe(this.remainderData,e));var a=He(i);this.remainderData=a.remainder,r.samples=a.valid||new Uint8Array}else r.samples=i;var o=this.extractID3Track(r,t);return s.samples=_e(t,r),{videoTrack:r,audioTrack:this.audioTrack,id3Track:o,textTrack:this.txtTrack}},t.flush=function(){var e=this.timeOffset,t=this.videoTrack,i=this.txtTrack;t.samples=this.remainderData||new Uint8Array,this.remainderData=null;var r=this.extractID3Track(t,this.timeOffset);return i.samples=_e(e,t),{videoTrack:t,audioTrack:Es(),id3Track:r,textTrack:Es()}},t.extractID3Track=function(e,t){var i=this.id3Track;if(e.samples.length){var r=Fe(e.samples,["emsg"]);r&&r.forEach((function(e){var r=rt(e);if(Vs.test(r.schemeIdUri)){var s=S(r.presentationTime)?r.presentationTime/r.timeScale:t+r.presentationTimeDelta/r.timeScale,a=4294967295===r.eventDuration?Number.POSITIVE_INFINITY:r.eventDuration/r.timeScale;a<=.001&&(a=Number.POSITIVE_INFINITY);var o=r.payload;i.samples.push({data:o,len:o.byteLength,dts:s,pts:s,type:ti.emsg,duration:a})}}))}return i},t.demuxSampleAes=function(e,t,i){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))},t.destroy=function(){this.config=null,this.remainderData=null,this.videoTrack=this.audioTrack=this.id3Track=this.txtTrack=void 0},e}(),Xs=function(e,t){var i=0,r=5;t+=r;for(var s=new Uint32Array(1),a=new Uint32Array(1),o=new Uint8Array(1);r>0;){o[0]=e[t];var n=Math.min(r,8),l=8-n;a[0]=4278190080>>>24+l<<l,s[0]=(o[0]&a[0])>>l,i=i?i<<n|s[0]:s[0],t+=1,r-=n}return i},_s=function(e){function t(t){var i;return(i=e.call(this)||this).observer=void 0,i.observer=t,i}A(t,e);var i=t.prototype;return i.resetInitSegment=function(t,i,r,s){e.prototype.resetInitSegment.call(this,t,i,r,s),this._audioTrack={container:"audio/ac-3",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"ac3",samples:[],manifestCodec:i,duration:s,inputTimeScale:9e4,dropped:0}},i.canParse=function(e,t){return t+64<e.length},i.appendFrame=function(e,t,i){var r=$s(e,t,i,this.basePTS,this.frameIndex);if(-1!==r)return{sample:e.samples[e.samples.length-1],length:r,missing:0}},t.probe=function(e){if(!e)return!1;var t=Cs(e,0);if(!t)return!1;var i=t.length;return 11===e[i]&&119===e[i+1]&&void 0!==Is(t)&&Xs(e,i)<16},t}(Ss);function $s(e,t,i,r,s){if(i+8>t.length)return-1;if(11!==t[i]||119!==t[i+1])return-1;var a=t[i+4]>>6;if(a>=3)return-1;var o=[48e3,44100,32e3][a],n=63&t[i+4],l=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*n+a];if(i+l>t.length)return-1;var h=t[i+6]>>5,A=0;2===h?A+=2:(1&h&&1!==h&&(A+=2),4&h&&(A+=2));var d=(t[i+6]<<8|t[i+7])>>12-A&1,c=[2,1,2,3,3,4,4,5][h]+d,u=t[i+5]>>3,p=7&t[i+5],g=new Uint8Array([a<<6|u<<1|p>>2,(3&p)<<6|h<<3|d<<2|n>>4,n<<4&224]),m=r+s*(1536/o*9e4),y=t.subarray(i,i+l);return e.config=g,e.channelCount=c,e.samplerate=o,e.samples.push({unit:y,pts:m}),l}var ea=function(){function e(){this.VideoSample=null}var t=e.prototype;return t.createVideoSample=function(e,t,i){return{key:e,frame:!1,pts:t,dts:i,units:[],length:0}},t.getLastNalUnit=function(e){var t,i,r=this.VideoSample;if(r&&0!==r.units.length||(r=e[e.length-1]),null!=(t=r)&&t.units){var s=r.units;i=s[s.length-1]}return i},t.pushAccessUnit=function(e,t){if(e.units.length&&e.frame){if(void 0===e.pts){var i=t.samples,r=i.length;if(!r)return void t.dropped++;var s=i[r-1];e.pts=s.pts,e.dts=s.dts}t.samples.push(e)}},t.parseNALu=function(e,t,i){var r,s,a=t.byteLength,o=e.naluState||0,n=o,l=[],h=0,A=-1,d=0;for(-1===o&&(A=0,d=this.getNALuType(t,0),o=0,h=1);h<a;)if(r=t[h++],o)if(1!==o)if(r)if(1===r){if(s=h-o-1,A>=0){var c={data:t.subarray(A,s),type:d};l.push(c)}else{var u=this.getLastNalUnit(e.samples);u&&(n&&h<=4-n&&u.state&&(u.data=u.data.subarray(0,u.data.byteLength-n)),s>0&&(u.data=Xe(u.data,t.subarray(0,s)),u.state=0))}h<a?(A=h,d=this.getNALuType(t,h),o=0):o=-1}else o=0;else o=3;else o=r?0:2;else o=r?0:1;if(A>=0&&o>=0){var p={data:t.subarray(A,a),type:d,state:o};l.push(p)}if(0===l.length){var g=this.getLastNalUnit(e.samples);g&&(g.data=Xe(g.data,t))}return e.naluState=o,l},e}(),ta=function(){function e(e){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=e,this.bytesAvailable=e.byteLength,this.word=0,this.bitsAvailable=0}var t=e.prototype;return t.loadWord=function(){var e=this.data,t=this.bytesAvailable,i=e.byteLength-t,r=new Uint8Array(4),s=Math.min(4,t);if(0===s)throw new Error("no bytes available");r.set(e.subarray(i,i+s)),this.word=new DataView(r.buffer).getUint32(0),this.bitsAvailable=8*s,this.bytesAvailable-=s},t.skipBits=function(e){var t;e=Math.min(e,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,e-=(t=e>>3)<<3,this.bytesAvailable-=t,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)},t.readBits=function(e){var t=Math.min(this.bitsAvailable,e),i=this.word>>>32-t;if(e>32&&F.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=t,this.bitsAvailable>0)this.word<<=t;else{if(!(this.bytesAvailable>0))throw new Error("no bits available");this.loadWord()}return(t=e-t)>0&&this.bitsAvailable?i<<t|this.readBits(t):i},t.skipLZ=function(){var e;for(e=0;e<this.bitsAvailable;++e)if(0!=(this.word&2147483648>>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()},t.skipUEG=function(){this.skipBits(1+this.skipLZ())},t.skipEG=function(){this.skipBits(1+this.skipLZ())},t.readUEG=function(){var e=this.skipLZ();return this.readBits(e+1)-1},t.readEG=function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)},t.readBoolean=function(){return 1===this.readBits(1)},t.readUByte=function(){return this.readBits(8)},t.readUShort=function(){return this.readBits(16)},t.readUInt=function(){return this.readBits(32)},e}(),ia=function(e){function t(){return e.apply(this,arguments)||this}A(t,e);var i=t.prototype;return i.parsePES=function(e,t,i,r){var s,a=this,o=this.parseNALu(e,i.data,r),n=this.VideoSample,l=!1;i.data=null,n&&o.length&&!e.audFound&&(this.pushAccessUnit(n,e),n=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts)),o.forEach((function(r){var o,h;switch(r.type){case 1:var A=!1;s=!0;var d,c=r.data;if(l&&c.length>4){var u=a.readSliceType(c);2!==u&&4!==u&&7!==u&&9!==u||(A=!0)}A&&null!=(d=n)&&d.frame&&!n.key&&(a.pushAccessUnit(n,e),n=a.VideoSample=null),n||(n=a.VideoSample=a.createVideoSample(!0,i.pts,i.dts)),n.frame=!0,n.key=A;break;case 5:s=!0,null!=(o=n)&&o.frame&&!n.key&&(a.pushAccessUnit(n,e),n=a.VideoSample=null),n||(n=a.VideoSample=a.createVideoSample(!0,i.pts,i.dts)),n.key=!0,n.frame=!0;break;case 6:s=!0,tt(r.data,1,i.pts,t.samples);break;case 7:var p,g;s=!0,l=!0;var m=r.data,y=a.readSPS(m);if(!e.sps||e.width!==y.width||e.height!==y.height||(null==(p=e.pixelRatio)?void 0:p[0])!==y.pixelRatio[0]||(null==(g=e.pixelRatio)?void 0:g[1])!==y.pixelRatio[1]){e.width=y.width,e.height=y.height,e.pixelRatio=y.pixelRatio,e.sps=[m];for(var E=m.subarray(1,4),C="avc1.",f=0;f<3;f++){var I=E[f].toString(16);I.length<2&&(I="0"+I),C+=I}e.codec=C}break;case 8:s=!0,e.pps=[r.data];break;case 9:s=!0,e.audFound=!0,null!=(h=n)&&h.frame&&(a.pushAccessUnit(n,e),n=null),n||(n=a.VideoSample=a.createVideoSample(!1,i.pts,i.dts));break;case 12:s=!0;break;default:s=!1}n&&s&&n.units.push(r)})),r&&n&&(this.pushAccessUnit(n,e),this.VideoSample=null)},i.getNALuType=function(e,t){return 31&e[t]},i.readSliceType=function(e){var t=new ta(e);return t.readUByte(),t.readUEG(),t.readUEG()},i.skipScalingList=function(e,t){for(var i=8,r=8,s=0;s<e;s++)0!==r&&(r=(i+t.readEG()+256)%256),i=0===r?i:r},i.readSPS=function(e){var t,i,r,s=new ta(e),a=0,o=0,n=0,l=0,h=s.readUByte.bind(s),A=s.readBits.bind(s),d=s.readUEG.bind(s),c=s.readBoolean.bind(s),u=s.skipBits.bind(s),p=s.skipEG.bind(s),g=s.skipUEG.bind(s),m=this.skipScalingList.bind(this);h();var y=h();if(A(5),u(3),h(),g(),100===y||110===y||122===y||244===y||44===y||83===y||86===y||118===y||128===y){var E=d();if(3===E&&u(1),g(),g(),u(1),c())for(i=3!==E?8:12,r=0;r<i;r++)c()&&m(r<6?16:64,s)}g();var C=d();if(0===C)d();else if(1===C)for(u(1),p(),p(),t=d(),r=0;r<t;r++)p();g(),u(1);var f=d(),I=d(),w=A(1);0===w&&u(1),u(1),c()&&(a=d(),o=d(),n=d(),l=d());var S=[1,1];if(c()&&c())switch(h()){case 1:S=[1,1];break;case 2:S=[12,11];break;case 3:S=[10,11];break;case 4:S=[16,11];break;case 5:S=[40,33];break;case 6:S=[24,11];break;case 7:S=[20,11];break;case 8:S=[32,11];break;case 9:S=[80,33];break;case 10:S=[18,11];break;case 11:S=[15,11];break;case 12:S=[64,33];break;case 13:S=[160,99];break;case 14:S=[4,3];break;case 15:S=[3,2];break;case 16:S=[2,1];break;case 255:S=[h()<<8|h(),h()<<8|h()]}return{width:Math.ceil(16*(f+1)-2*a-2*o),height:(2-w)*(I+1)*16-(w?2:4)*(n+l),pixelRatio:S}},t}(ea),ra=function(e){function t(){for(var t,i=arguments.length,r=new Array(i),s=0;s<i;s++)r[s]=arguments[s];return(t=e.call.apply(e,[this].concat(r))||this).initVPS=null,t}A(t,e);var i=t.prototype;return i.parsePES=function(e,t,i,r){var s,a=this,o=this.parseNALu(e,i.data,r),n=this.VideoSample,l=!1;i.data=null,n&&o.length&&!e.audFound&&(this.pushAccessUnit(n,e),n=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts)),o.forEach((function(r){var o,h;switch(r.type){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:n||(n=a.VideoSample=a.createVideoSample(!1,i.pts,i.dts)),n.frame=!0,s=!0;break;case 16:case 17:case 18:case 21:var A;s=!0,l&&null!=(A=n)&&A.frame&&!n.key&&(a.pushAccessUnit(n,e),n=a.VideoSample=null),n||(n=a.VideoSample=a.createVideoSample(!0,i.pts,i.dts)),n.key=!0,n.frame=!0;break;case 19:case 20:s=!0,null!=(o=n)&&o.frame&&!n.key&&(a.pushAccessUnit(n,e),n=a.VideoSample=null),n||(n=a.VideoSample=a.createVideoSample(!0,i.pts,i.dts)),n.key=!0,n.frame=!0;break;case 39:s=!0,tt(r.data,2,i.pts,t.samples);break;case 32:if(s=!0,!e.vps){var d=a.readVPS(r.data);e.params=p({},d),a.initVPS=r.data}e.vps=[r.data];break;case 33:if(s=!0,l=!0,"object"==typeof e.params){if(void 0===e.vps||e.vps[0]===a.initVPS||void 0===e.sps||a.matchSPS(e.sps[0],r.data)||(a.initVPS=e.vps[0],e.sps=e.pps=void 0),!e.sps){var c=a.readSPS(r.data);for(var u in e.width=c.width,e.height=c.height,e.pixelRatio=c.pixelRatio,e.codec=c.codecString,e.sps=[],c.params)e.params[u]=c.params[u]}void 0!==e.vps&&e.vps[0]===a.initVPS&&e.sps.push(r.data)}n||(n=a.VideoSample=a.createVideoSample(!0,i.pts,i.dts)),n.key=!0;break;case 34:if(s=!0,"object"==typeof e.params){if(!e.pps){e.pps=[];var g=a.readPPS(r.data);for(var m in g)e.params[m]=g[m]}null===a.initVPS&&0!==e.pps.length||e.pps.push(r.data)}break;case 35:s=!0,e.audFound=!0,null!=(h=n)&&h.frame&&(a.pushAccessUnit(n,e),n=null),n||(n=a.VideoSample=a.createVideoSample(!1,i.pts,i.dts));break;default:s=!1}n&&s&&n.units.push(r)})),r&&n&&(this.pushAccessUnit(n,e),this.VideoSample=null)},i.getNALuType=function(e,t){return(126&e[t])>>>1},i.ebsp2rbsp=function(e){for(var t=new Uint8Array(e.byteLength),i=0,r=0;r<e.byteLength;r++)r>=2&&3===e[r]&&0===e[r-1]&&0===e[r-2]||(t[i]=e[r],i++);return new Uint8Array(t.buffer,0,i)},i.readVPS=function(e){var t=new ta(e);return t.readUByte(),t.readUByte(),t.readBits(4),t.skipBits(2),t.readBits(6),{numTemporalLayers:t.readBits(3)+1,temporalIdNested:t.readBoolean()}},i.readSPS=function(e){var t=new ta(this.ebsp2rbsp(e));t.readUByte(),t.readUByte(),t.readBits(4);var i=t.readBits(3);t.readBoolean();for(var r=t.readBits(2),s=t.readBoolean(),a=t.readBits(5),o=t.readUByte(),n=t.readUByte(),l=t.readUByte(),h=t.readUByte(),A=t.readUByte(),d=t.readUByte(),c=t.readUByte(),u=t.readUByte(),p=t.readUByte(),g=t.readUByte(),m=t.readUByte(),y=[],E=[],C=0;C<i;C++)y.push(t.readBoolean()),E.push(t.readBoolean());if(i>0)for(var f=i;f<8;f++)t.readBits(2);for(var I=0;I<i;I++)y[I]&&(t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte(),t.readUByte()),E[I]&&t.readUByte();t.readUEG();var w=t.readUEG();3==w&&t.skipBits(1);var S=t.readUEG(),M=t.readUEG(),v=t.readBoolean(),k=0,B=0,D=0,b=0;v&&(k+=t.readUEG(),B+=t.readUEG(),D+=t.readUEG(),b+=t.readUEG());for(var Q=t.readUEG(),R=t.readUEG(),T=t.readUEG(),L=t.readBoolean()?0:i;L<=i;L++)t.skipUEG(),t.skipUEG(),t.skipUEG();if(t.skipUEG(),t.skipUEG(),t.skipUEG(),t.skipUEG(),t.skipUEG(),t.skipUEG(),t.readBoolean()&&t.readBoolean())for(var K=0;K<4;K++)for(var q=0;q<(3===K?2:6);q++)if(t.readBoolean()){var x=Math.min(64,1<<4+(K<<1));K>1&&t.readEG();for(var F=0;F<x;F++)t.readEG()}else t.readUEG();t.readBoolean(),t.readBoolean(),t.readBoolean()&&(t.readUByte(),t.skipUEG(),t.skipUEG(),t.readBoolean());for(var U=t.readUEG(),G=0,O=0;O<U;O++){var J=!1;if(0!==O&&(J=t.readBoolean()),J){O===U&&t.readUEG(),t.readBoolean(),t.readUEG();for(var Y=0,N=0;N<=G;N++){var P=t.readBoolean(),j=!1;P||(j=t.readBoolean()),(P||j)&&Y++}G=Y}else{var z=t.readUEG(),W=t.readUEG();G=z+W;for(var Z=0;Z<z;Z++)t.readUEG(),t.readBoolean();for(var V=0;V<W;V++)t.readUEG(),t.readBoolean()}}if(t.readBoolean())for(var H=t.readUEG(),X=0;X<H;X++){for(var _=0;_<T+4;_++)t.readBits(1);t.readBits(1)}var $=0,ee=1,te=1,ie=!0,re=1,se=0;t.readBoolean(),t.readBoolean();var ae=!1;if(t.readBoolean()){if(t.readBoolean()){var oe=t.readUByte();oe>0&&oe<16?(ee=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][oe-1],te=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][oe-1]):255===oe&&(ee=t.readBits(16),te=t.readBits(16))}if(t.readBoolean()&&t.readBoolean(),t.readBoolean()&&(t.readBits(3),t.readBoolean(),t.readBoolean()&&(t.readUByte(),t.readUByte(),t.readUByte())),t.readBoolean()&&(t.readUEG(),t.readUEG()),t.readBoolean(),t.readBoolean(),t.readBoolean(),(ae=t.readBoolean())&&(k+=t.readUEG(),B+=t.readUEG(),D+=t.readUEG(),b+=t.readUEG()),t.readBoolean()&&(re=t.readBits(32),se=t.readBits(32),t.readBoolean()&&t.readUEG(),t.readBoolean())){var ne=t.readBoolean(),le=t.readBoolean(),he=!1;(ne||le)&&((he=t.readBoolean())&&(t.readUByte(),t.readBits(5),t.readBoolean(),t.readBits(5)),t.readBits(4),t.readBits(4),he&&t.readBits(4),t.readBits(5),t.readBits(5),t.readBits(5));for(var Ae=0;Ae<=i;Ae++){var de=!1;(ie=t.readBoolean())||t.readBoolean()?t.readEG():de=t.readBoolean();var ce=de?1:t.readUEG()+1;if(ne)for(var ue=0;ue<ce;ue++)t.readUEG(),t.readUEG(),he&&(t.readUEG(),t.readUEG()),t.skipBits(1);if(le)for(var pe=0;pe<ce;pe++)t.readUEG(),t.readUEG(),he&&(t.readUEG(),t.readUEG()),t.skipBits(1)}}t.readBoolean()&&(t.readBoolean(),t.readBoolean(),t.readBoolean(),$=t.readUEG())}var ge=S,me=M;if(v||ae){var ye=1,Ee=1;1===w?ye=Ee=2:2==w&&(ye=2),ge=S-ye*B-ye*k,me=M-Ee*b-Ee*D}for(var Ce=r?["A","B","C"][r]:"",fe=o<<24|n<<16|l<<8|h,Ie=0,we=0;we<32;we++)Ie=(Ie|(fe>>we&1)<<31-we)>>>0;var Se=Ie.toString(16);return 1===a&&"2"===Se&&(Se="6"),{codecString:"hvc1."+Ce+a+"."+Se+"."+(s?"H":"L")+m+".B0",params:{general_tier_flag:s,general_profile_idc:a,general_profile_space:r,general_profile_compatibility_flags:[o,n,l,h],general_constraint_indicator_flags:[A,d,c,u,p,g],general_level_idc:m,bit_depth:Q+8,bit_depth_luma_minus8:Q,bit_depth_chroma_minus8:R,min_spatial_segmentation_idc:$,chroma_format_idc:w,frame_rate:{fixed:ie,fps:se/re}},width:ge,height:me,pixelRatio:[ee,te]}},i.readPPS=function(e){var t=new ta(this.ebsp2rbsp(e));t.readUByte(),t.readUByte(),t.skipUEG(),t.skipUEG(),t.skipBits(2),t.skipBits(3),t.skipBits(2),t.skipUEG(),t.skipUEG(),t.skipEG(),t.skipBits(2),t.readBoolean()&&t.skipUEG(),t.skipEG(),t.skipEG(),t.skipBits(4);var i=t.readBoolean(),r=t.readBoolean(),s=1;return r&&i?s=0:r?s=3:i&&(s=2),{parallelismType:s}},i.matchSPS=function(e,t){return String.fromCharCode.apply(null,e).substr(3)===String.fromCharCode.apply(null,t).substr(3)},t}(ea),sa=function(){function e(e,t,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new cs(t,{removePKCS7Padding:!1})}var t=e.prototype;return t.decryptBuffer=function(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer,le.cbc)},t.decryptAacSample=function(e,t,i){var r=this,s=e[t].unit;if(!(s.length<=16)){var a=s.subarray(16,s.length-s.length%16),o=a.buffer.slice(a.byteOffset,a.byteOffset+a.length);this.decryptBuffer(o).then((function(a){var o=new Uint8Array(a);s.set(o,16),r.decrypter.isSync()||r.decryptAacSamples(e,t+1,i)}))}},t.decryptAacSamples=function(e,t,i){for(;;t++){if(t>=e.length)return void i();if(!(e[t].unit.length<32||(this.decryptAacSample(e,t,i),this.decrypter.isSync())))return}},t.getAvcEncryptedData=function(e){for(var t=16*Math.floor((e.length-48)/160)+16,i=new Int8Array(t),r=0,s=32;s<e.length-16;s+=160,r+=16)i.set(e.subarray(s,s+16),r);return i},t.getAvcDecryptedUnit=function(e,t){for(var i=new Uint8Array(t),r=0,s=32;s<e.length-16;s+=160,r+=16)e.set(i.subarray(r,r+16),s);return e},t.decryptAvcSample=function(e,t,i,r,s){var a=this,o=it(s.data),n=this.getAvcEncryptedData(o);this.decryptBuffer(n.buffer).then((function(n){s.data=a.getAvcDecryptedUnit(o,n),a.decrypter.isSync()||a.decryptAvcSamples(e,t,i+1,r)}))},t.decryptAvcSamples=function(e,t,i,r){if(e instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;t++,i=0){if(t>=e.length)return void r();for(var s=e[t].units;!(i>=s.length);i++){var a=s[i];if(!(a.data.length<=48||1!==a.type&&5!==a.type||(this.decryptAvcSample(e,t,i,r,a),this.decrypter.isSync())))return}}},e}(),aa=188,oa=function(){function e(e,t,i,r){this.logger=void 0,this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._pmtId=-1,this._videoTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.remainderData=null,this.videoParser=void 0,this.observer=e,this.config=t,this.typeSupported=i,this.logger=r,this.videoParser=null}e.probe=function(t,i){var r=e.syncOffset(t);return r>0&&i.warn("MPEG2-TS detected but first sync word found @ offset "+r),-1!==r},e.syncOffset=function(e){for(var t=e.length,i=Math.min(5*aa,t-aa)+1,r=0;r<i;){for(var s=!1,a=-1,o=0,n=r;n<t;n+=aa){if(71!==e[n]||t-n!==aa&&71!==e[n+aa]){if(o)return-1;break}if(o++,-1===a&&0!==(a=n)&&(i=Math.min(a+99*aa,e.length-aa)+1),s||(s=0===na(e,n)),s&&o>1&&(0===a&&o>2||n+aa>i))return a}r++}return-1},e.createTrack=function(e,t){return{container:"video"===e||"audio"===e?"video/mp2t":void 0,type:e,id:be[e],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0,duration:"audio"===e?t:void 0}};var t=e.prototype;return t.resetInitSegment=function(t,i,r,s){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=e.createTrack("video"),this._videoTrack.duration=s,this._audioTrack=e.createTrack("audio",s),this._id3Track=e.createTrack("id3"),this._txtTrack=e.createTrack("text"),this._audioTrack.segmentCodec="aac",this.aacOverFlow=null,this.remainderData=null,this.audioCodec=i,this.videoCodec=r},t.resetTimeStamp=function(){},t.resetContiguity=function(){var e=this._audioTrack,t=this._videoTrack,i=this._id3Track;e&&(e.pesData=null),t&&(t.pesData=null),i&&(i.pesData=null),this.aacOverFlow=null,this.remainderData=null},t.demux=function(t,i,r,s){var a;void 0===r&&(r=!1),void 0===s&&(s=!1),r||(this.sampleAes=null);var o=this._videoTrack,n=this._audioTrack,l=this._id3Track,h=this._txtTrack,A=o.pid,d=o.pesData,c=n.pid,u=l.pid,p=n.pesData,g=l.pesData,m=null,y=this.pmtParsed,E=this._pmtId,C=t.length;if(this.remainderData&&(C=(t=Xe(this.remainderData,t)).length,this.remainderData=null),C<aa&&!s)return this.remainderData=t,{audioTrack:n,videoTrack:o,id3Track:l,textTrack:h};var f=Math.max(0,e.syncOffset(t));(C-=(C-f)%aa)<t.byteLength&&!s&&(this.remainderData=new Uint8Array(t.buffer,C,t.buffer.byteLength-C));for(var I=0,w=f;w<C;w+=aa)if(71===t[w]){var S=!!(64&t[w+1]),M=na(t,w),v=void 0;if((48&t[w+3])>>4>1){if((v=w+5+t[w+4])===w+aa)continue}else v=w+4;switch(M){case A:if(S){if(d&&(a=ca(d,this.logger))){if(null===this.videoParser)switch(o.segmentCodec){case"avc":this.videoParser=new ia;break;case"hevc":this.videoParser=new ra}null!==this.videoParser&&this.videoParser.parsePES(o,h,a,!1)}d={data:[],size:0}}d&&(d.data.push(t.subarray(v,w+aa)),d.size+=w+aa-v);break;case c:if(S){if(p&&(a=ca(p,this.logger)))switch(n.segmentCodec){case"aac":this.parseAACPES(n,a);break;case"mp3":this.parseMPEGPES(n,a);break;case"ac3":this.parseAC3PES(n,a)}p={data:[],size:0}}p&&(p.data.push(t.subarray(v,w+aa)),p.size+=w+aa-v);break;case u:S&&(g&&(a=ca(g,this.logger))&&this.parseID3PES(l,a),g={data:[],size:0}),g&&(g.data.push(t.subarray(v,w+aa)),g.size+=w+aa-v);break;case 0:S&&(v+=t[v]+1),E=this._pmtId=la(t,v);break;case E:S&&(v+=t[v]+1);var k=ha(t,v,this.typeSupported,r,this.observer,this.logger);(A=k.videoPid)>0&&(o.pid=A,o.segmentCodec=k.segmentVideoCodec),(c=k.audioPid)>0&&(n.pid=c,n.segmentCodec=k.segmentAudioCodec),(u=k.id3Pid)>0&&(l.pid=u),null===m||y||(this.logger.warn("MPEG-TS PMT found at "+w+" after unknown PID '"+m+"'. Backtracking to sync byte @"+f+" to parse all TS packets."),m=null,w=f-188),y=this.pmtParsed=!0;break;case 17:case 8191:break;default:m=M}}else I++;I>0&&Aa(this.observer,new Error("Found "+I+" TS packet/s that do not start with 0x47"),void 0,this.logger),o.pesData=d,n.pesData=p,l.pesData=g;var B={audioTrack:n,videoTrack:o,id3Track:l,textTrack:h};return s&&this.extractRemainingSamples(B),B},t.flush=function(){var e,t=this.remainderData;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},t.extractRemainingSamples=function(e){var t,i=e.audioTrack,r=e.videoTrack,s=e.id3Track,a=e.textTrack,o=r.pesData,n=i.pesData,l=s.pesData;if(o&&(t=ca(o,this.logger))){if(null===this.videoParser)switch(r.segmentCodec){case"avc":this.videoParser=new ia;break;case"hevc":this.videoParser=new ra}null!==this.videoParser&&(this.videoParser.parsePES(r,a,t,!0),r.pesData=null)}else r.pesData=o;if(n&&(t=ca(n,this.logger))){switch(i.segmentCodec){case"aac":this.parseAACPES(i,t);break;case"mp3":this.parseMPEGPES(i,t);break;case"ac3":this.parseAC3PES(i,t)}i.pesData=null}else null!=n&&n.size&&this.logger.log("last AAC PES packet truncated,might overlap between fragments"),i.pesData=n;l&&(t=ca(l,this.logger))?(this.parseID3PES(s,t),s.pesData=null):s.pesData=l},t.demuxSampleAes=function(e,t,i){var r=this.demux(e,i,!0,!this.config.progressive),s=this.sampleAes=new sa(this.observer,this.config,t);return this.decrypt(r,s)},t.decrypt=function(e,t){return new Promise((function(i){var r=e.audioTrack,s=e.videoTrack;r.samples&&"aac"===r.segmentCodec?t.decryptAacSamples(r.samples,0,(function(){s.samples?t.decryptAvcSamples(s.samples,0,0,(function(){i(e)})):i(e)})):s.samples&&t.decryptAvcSamples(s.samples,0,0,(function(){i(e)}))}))},t.destroy=function(){this.observer&&this.observer.removeAllListeners(),this.config=this.logger=this.observer=null,this.aacOverFlow=this.videoParser=this.remainderData=this.sampleAes=null,this._videoTrack=this._audioTrack=this._id3Track=this._txtTrack=void 0},t.parseAACPES=function(e,t){var i,r,s,a=0,o=this.aacOverFlow,n=t.data;if(o){this.aacOverFlow=null;var l=o.missing,h=o.sample.unit.byteLength;if(-1===l)n=Xe(o.sample.unit,n);else{var A=h-l;o.sample.unit.set(n.subarray(0,l),A),e.samples.push(o.sample),a=o.missing}}for(i=a,r=n.length;i<r-1&&!Qs(n,i);i++);if(i!==a){var d,c=i<r-1;if(d=c?"AAC PES did not start with ADTS header,offset:"+i:"No ADTS header found in AAC PES",Aa(this.observer,new Error(d),c,this.logger),!c)return}if(Ls(e,this.observer,n,i,this.audioCodec),void 0!==t.pts)s=t.pts;else{if(!o)return void this.logger.warn("[tsdemuxer]: AAC PES unknown PTS");var u=Ks(e.samplerate);s=o.sample.pts+u}for(var p,g=0;i<r;){if(i+=(p=xs(e,n,i,s,g)).length,p.missing){this.aacOverFlow=p;break}for(g++;i<r-1&&!Qs(n,i);i++);}},t.parseMPEGPES=function(e,t){var i=t.data,r=i.length,s=0,a=0,o=t.pts;if(void 0!==o)for(;a<r;)if(js(i,a)){var n=Ys(e,i,a,o,s);if(!n)break;a+=n.length,s++}else a++;else this.logger.warn("[tsdemuxer]: MPEG PES unknown PTS")},t.parseAC3PES=function(e,t){var i=t.data,r=t.pts;if(void 0!==r)for(var s,a=i.length,o=0,n=0;n<a&&(s=$s(e,i,n,r,o++))>0;)n+=s;else this.logger.warn("[tsdemuxer]: AC3 PES unknown PTS")},t.parseID3PES=function(e,t){if(void 0!==t.pts){var i=l({},t,{type:this._videoTrack?ti.emsg:ti.audioId3,duration:Number.POSITIVE_INFINITY});e.samples.push(i)}else this.logger.warn("[tsdemuxer]: ID3 PES unknown PTS")},e}();function na(e,t){return((31&e[t+1])<<8)+e[t+2]}function la(e,t){return(31&e[t+10])<<8|e[t+11]}function ha(e,t,i,r,s,a){var o={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},n=t+3+((15&e[t+1])<<8|e[t+2])-4;for(t+=12+((15&e[t+10])<<8|e[t+11]);t<n;){var l=na(e,t),h=(15&e[t+3])<<8|e[t+4];switch(e[t]){case 207:if(!r){da("ADTS AAC",a);break}case 15:-1===o.audioPid&&(o.audioPid=l);break;case 21:-1===o.id3Pid&&(o.id3Pid=l);break;case 219:if(!r){da("H.264",a);break}case 27:-1===o.videoPid&&(o.videoPid=l,o.segmentVideoCodec="avc");break;case 3:case 4:i.mpeg||i.mp3?-1===o.audioPid&&(o.audioPid=l,o.segmentAudioCodec="mp3"):a.log("MPEG audio found, not supported in this browser");break;case 193:if(!r){da("AC-3",a);break}case 129:i.ac3?-1===o.audioPid&&(o.audioPid=l,o.segmentAudioCodec="ac3"):a.log("AC-3 audio found, not supported in this browser");break;case 6:if(-1===o.audioPid&&h>0)for(var A=t+5,d=h;d>2;){106===e[A]&&(!0!==i.ac3?a.log("AC-3 audio found, not supported in this browser for now"):(o.audioPid=l,o.segmentAudioCodec="ac3"));var c=e[A+1]+2;A+=c,d-=c}break;case 194:case 135:return Aa(s,new Error("Unsupported EC-3 in M2TS found"),void 0,a),o;case 36:s.emit(k.ERROR,k.ERROR,{type:B.MEDIA_ERROR,details:D.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!1,reason:"Unsupported HEVC stream type found 0x24"}),a.warn("Unsupported HEVC stream type found"),-1===o.videoPid&&(o.videoPid=l,o.segmentVideoCodec="hevc",a.log("HEVC in M2TS found"))}t+=h+5}return o}function Aa(e,t,i,r){r.warn("parsing error: "+t.message),e.emit(k.ERROR,k.ERROR,{type:B.MEDIA_ERROR,details:D.FRAG_PARSING_ERROR,fatal:!1,levelRetry:i,error:t,reason:t.message})}function da(e,t){t.log(e+" with AES-128-CBC encryption found in unencrypted stream")}function ca(e,t){var i,r,s,a,o,n=0,l=e.data;if(!e||0===e.size)return null;for(;l[0].length<19&&l.length>1;)l[0]=Xe(l[0],l[1]),l.splice(1,1);if(1===((i=l[0])[0]<<16)+(i[1]<<8)+i[2]){if((r=(i[4]<<8)+i[5])&&r>e.size-6)return null;var h=i[7];192&h&&(a=536870912*(14&i[9])+4194304*(255&i[10])+16384*(254&i[11])+128*(255&i[12])+(254&i[13])/2,64&h?a-(o=536870912*(14&i[14])+4194304*(255&i[15])+16384*(254&i[16])+128*(255&i[17])+(254&i[18])/2)>54e5&&(t.warn(Math.round((a-o)/9e4)+"s delta between PTS and DTS, align them"),a=o):o=a);var A=(s=i[8])+9;if(e.size<=A)return null;e.size-=A;for(var d=new Uint8Array(e.size),c=0,u=l.length;c<u;c++){var p=(i=l[c]).byteLength;if(A){if(A>p){A-=p;continue}i=i.subarray(A),p-=A,A=0}d.set(i,n),n+=p}return r&&(r-=s+3),{data:d,pts:a,dts:o,len:r}}return null}var ua=function(e){function t(){return e.apply(this,arguments)||this}A(t,e);var i=t.prototype;return i.resetInitSegment=function(t,i,r,s){e.prototype.resetInitSegment.call(this,t,i,r,s),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:i,duration:s,inputTimeScale:9e4,dropped:0}},t.probe=function(e){if(!e)return!1;var t=Cs(e,0),i=(null==t?void 0:t.length)||0;if(t&&11===e[i]&&119===e[i+1]&&void 0!==Is(t)&&Xs(e,i)<=16)return!1;for(var r=e.length;i<r;i++)if(Ws(e,i))return F.log("MPEG Audio sync word found !"),!0;return!1},i.canParse=function(e,t){return zs(e,t)},i.appendFrame=function(e,t,i){if(null!==this.basePTS)return Ys(e,t,i,this.basePTS,this.frameIndex)},t}(Ss),pa=function(){function e(){}return e.getSilentFrame=function(e,t){if("mp4a.40.2"===e){if(1===t)return new Uint8Array([0,200,0,128,35,128]);if(2===t)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===t)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===t)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(6===t)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])}else{if(1===t)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(2===t)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(3===t)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])}},e}(),ga=Math.pow(2,32)-1,ma=function(){function e(){}return e.init=function(){var t;for(t in e.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],dac3:[],"ac-3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]},e.types)e.types.hasOwnProperty(t)&&(e.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);var i=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]),r=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]);e.HDLR_TYPES={video:i,audio:r};var s=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),a=new Uint8Array([0,0,0,0,0,0,0,0]);e.STTS=e.STSC=e.STCO=a,e.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),e.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),e.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),e.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);var o=new Uint8Array([105,115,111,109]),n=new Uint8Array([97,118,99,49]),l=new Uint8Array([0,0,0,1]);e.FTYP=e.box(e.types.ftyp,o,l,o,n),e.DINF=e.box(e.types.dinf,e.box(e.types.dref,s))},e.box=function(e){for(var t=8,i=arguments.length,r=new Array(i>1?i-1:0),s=1;s<i;s++)r[s-1]=arguments[s];for(var a=r.length,o=a;a--;)t+=r[a].byteLength;var n=new Uint8Array(t);for(n[0]=t>>24&255,n[1]=t>>16&255,n[2]=t>>8&255,n[3]=255&t,n.set(e,4),a=0,t=8;a<o;a++)n.set(r[a],t),t+=r[a].byteLength;return n},e.hdlr=function(t){return e.box(e.types.hdlr,e.HDLR_TYPES[t])},e.mdat=function(t){return e.box(e.types.mdat,t)},e.mdhd=function(t,i){i*=t;var r=Math.floor(i/(ga+1)),s=Math.floor(i%(ga+1));return e.box(e.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,r>>24,r>>16&255,r>>8&255,255&r,s>>24,s>>16&255,s>>8&255,255&s,85,196,0,0]))},e.mdia=function(t){return e.box(e.types.mdia,e.mdhd(t.timescale,t.duration),e.hdlr(t.type),e.minf(t))},e.mfhd=function(t){return e.box(e.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))},e.minf=function(t){return"audio"===t.type?e.box(e.types.minf,e.box(e.types.smhd,e.SMHD),e.DINF,e.stbl(t)):e.box(e.types.minf,e.box(e.types.vmhd,e.VMHD),e.DINF,e.stbl(t))},e.moof=function(t,i,r){return e.box(e.types.moof,e.mfhd(t),e.traf(r,i))},e.moov=function(t){for(var i=t.length,r=[];i--;)r[i]=e.trak(t[i]);return e.box.apply(null,[e.types.moov,e.mvhd(t[0].timescale,t[0].duration)].concat(r).concat(e.mvex(t)))},e.mvex=function(t){for(var i=t.length,r=[];i--;)r[i]=e.trex(t[i]);return e.box.apply(null,[e.types.mvex].concat(r))},e.mvhd=function(t,i){i*=t;var r=Math.floor(i/(ga+1)),s=Math.floor(i%(ga+1)),a=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,r>>24,r>>16&255,r>>8&255,255&r,s>>24,s>>16&255,s>>8&255,255&s,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 e.box(e.types.mvhd,a)},e.sdtp=function(t){var i,r,s=t.samples||[],a=new Uint8Array(4+s.length);for(i=0;i<s.length;i++)r=s[i].flags,a[i+4]=r.dependsOn<<4|r.isDependedOn<<2|r.hasRedundancy;return e.box(e.types.sdtp,a)},e.stbl=function(t){return e.box(e.types.stbl,e.stsd(t),e.box(e.types.stts,e.STTS),e.box(e.types.stsc,e.STSC),e.box(e.types.stsz,e.STSZ),e.box(e.types.stco,e.STCO))},e.avc1=function(t){var i,r,s,a=[],o=[];for(i=0;i<t.sps.length;i++)s=(r=t.sps[i]).byteLength,a.push(s>>>8&255),a.push(255&s),a=a.concat(Array.prototype.slice.call(r));for(i=0;i<t.pps.length;i++)s=(r=t.pps[i]).byteLength,o.push(s>>>8&255),o.push(255&s),o=o.concat(Array.prototype.slice.call(r));var n=e.box(e.types.avcC,new Uint8Array([1,a[3],a[4],a[5],255,224|t.sps.length].concat(a).concat([t.pps.length]).concat(o))),l=t.width,h=t.height,A=t.pixelRatio[0],d=t.pixelRatio[1];return e.box(e.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,l>>8&255,255&l,h>>8&255,255&h,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]),n,e.box(e.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),e.box(e.types.pasp,new Uint8Array([A>>24,A>>16&255,A>>8&255,255&A,d>>24,d>>16&255,d>>8&255,255&d])))},e.esds=function(e){var t=e.config;return new Uint8Array([0,0,0,0,3,25,0,1,0,4,17,64,21,0,0,0,0,0,0,0,0,0,0,0,5,2].concat(t,[6,1,2]))},e.audioStsd=function(e){var t=e.samplerate;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,255&t,0,0])},e.mp4a=function(t){return e.box(e.types.mp4a,e.audioStsd(t),e.box(e.types.esds,e.esds(t)))},e.mp3=function(t){return e.box(e.types[".mp3"],e.audioStsd(t))},e.ac3=function(t){return e.box(e.types["ac-3"],e.audioStsd(t),e.box(e.types.dac3,t.config))},e.stsd=function(t){return"audio"===t.type?"mp3"===t.segmentCodec&&"mp3"===t.codec?e.box(e.types.stsd,e.STSD,e.mp3(t)):"ac3"===t.segmentCodec?e.box(e.types.stsd,e.STSD,e.ac3(t)):e.box(e.types.stsd,e.STSD,e.mp4a(t)):"avc"===t.segmentCodec?e.box(e.types.stsd,e.STSD,e.avc1(t)):e.box(e.types.stsd,e.STSD,e.hvc1(t))},e.tkhd=function(t){var i=t.id,r=t.duration*t.timescale,s=t.width,a=t.height,o=Math.floor(r/(ga+1)),n=Math.floor(r%(ga+1));return e.box(e.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,i>>24&255,i>>16&255,i>>8&255,255&i,0,0,0,0,o>>24,o>>16&255,o>>8&255,255&o,n>>24,n>>16&255,n>>8&255,255&n,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,s>>8&255,255&s,0,0,a>>8&255,255&a,0,0]))},e.traf=function(t,i){var r=e.sdtp(t),s=t.id,a=Math.floor(i/(ga+1)),o=Math.floor(i%(ga+1));return e.box(e.types.traf,e.box(e.types.tfhd,new Uint8Array([0,0,0,0,s>>24,s>>16&255,s>>8&255,255&s])),e.box(e.types.tfdt,new Uint8Array([1,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,o>>24,o>>16&255,o>>8&255,255&o])),e.trun(t,r.length+16+20+8+16+8+8),r)},e.trak=function(t){return t.duration=t.duration||4294967295,e.box(e.types.trak,e.tkhd(t),e.mdia(t))},e.trex=function(t){var i=t.id;return e.box(e.types.trex,new Uint8Array([0,0,0,0,i>>24,i>>16&255,i>>8&255,255&i,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},e.trun=function(t,i){var r,s,a,o,n,l,h=t.samples||[],A=h.length,d=12+16*A,c=new Uint8Array(d);for(i+=8+d,c.set(["video"===t.type?1:0,0,15,1,A>>>24&255,A>>>16&255,A>>>8&255,255&A,i>>>24&255,i>>>16&255,i>>>8&255,255&i],0),r=0;r<A;r++)a=(s=h[r]).duration,o=s.size,n=s.flags,l=s.cts,c.set([a>>>24&255,a>>>16&255,a>>>8&255,255&a,o>>>24&255,o>>>16&255,o>>>8&255,255&o,n.isLeading<<2|n.dependsOn,n.isDependedOn<<6|n.hasRedundancy<<4|n.paddingValue<<1|n.isNonSync,61440&n.degradPrio,15&n.degradPrio,l>>>24&255,l>>>16&255,l>>>8&255,255&l],12+16*r);return e.box(e.types.trun,c)},e.initSegment=function(t){e.types||e.init();var i=e.moov(t);return Xe(e.FTYP,i)},e.hvc1=function(t){for(var i=t.params,r=[t.vps,t.sps,t.pps],s=4,a=new Uint8Array([1,i.general_profile_space<<6|(i.general_tier_flag?32:0)|i.general_profile_idc,i.general_profile_compatibility_flags[0],i.general_profile_compatibility_flags[1],i.general_profile_compatibility_flags[2],i.general_profile_compatibility_flags[3],i.general_constraint_indicator_flags[0],i.general_constraint_indicator_flags[1],i.general_constraint_indicator_flags[2],i.general_constraint_indicator_flags[3],i.general_constraint_indicator_flags[4],i.general_constraint_indicator_flags[5],i.general_level_idc,240|i.min_spatial_segmentation_idc>>8,255&i.min_spatial_segmentation_idc,252|i.parallelismType,252|i.chroma_format_idc,248|i.bit_depth_luma_minus8,248|i.bit_depth_chroma_minus8,0,parseInt(i.frame_rate.fps),s-1|i.temporal_id_nested<<2|i.num_temporal_layers<<3|(i.frame_rate.fixed?64:0),r.length]),o=a.length,n=0;n<r.length;n+=1){o+=3;for(var l=0;l<r[n].length;l+=1)o+=2+r[n][l].length}var h=new Uint8Array(o);h.set(a,0),o=a.length;for(var A=r.length-1,d=0;d<r.length;d+=1){h.set(new Uint8Array([32+d|(d===A?128:0),0,r[d].length]),o),o+=3;for(var c=0;c<r[d].length;c+=1)h.set(new Uint8Array([r[d][c].length>>8,255&r[d][c].length]),o),o+=2,h.set(r[d][c],o),o+=r[d][c].length}var u=e.box(e.types.hvcC,h),p=t.width,g=t.height,m=t.pixelRatio[0],y=t.pixelRatio[1];return e.box(e.types.hvc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,p>>8&255,255&p,g>>8&255,255&g,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]),u,e.box(e.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),e.box(e.types.pasp,new Uint8Array([m>>24,m>>16&255,m>>8&255,255&m,y>>24,y>>16&255,y>>8&255,255&y])))},e}();ma.types=void 0,ma.HDLR_TYPES=void 0,ma.STTS=void 0,ma.STSC=void 0,ma.STCO=void 0,ma.STSZ=void 0,ma.VMHD=void 0,ma.SMHD=void 0,ma.STSD=void 0,ma.FTYP=void 0,ma.DINF=void 0;var ya=9e4;function Ea(e,t,i,r){void 0===i&&(i=1),void 0===r&&(r=!1);var s=e*t*i;return r?Math.round(s):s}function Ca(e,t,i,r){return void 0===i&&(i=1),void 0===r&&(r=!1),Ea(e,t,1/i,r)}function fa(e,t){return Ea(e,1e3,1/ya,t)}function Ia(e,t){return void 0===t&&(t=1),Ea(e,ya,1/t)}var wa=1e4,Sa=1024,Ma=1152,va=1536,ka=null,Ba=null,Da=function(){function e(e,t,i,r){if(this.logger=void 0,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=e,this.config=t,this.typeSupported=i,this.logger=r,this.ISGenerated=!1,null===ka){var s=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);ka=s?parseInt(s[1]):0}if(null===Ba){var a=navigator.userAgent.match(/Safari\/(\d+)/i);Ba=a?parseInt(a[1]):0}}var t=e.prototype;return t.destroy=function(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null},t.resetTimeStamp=function(e){this.logger.log("[mp4-remuxer]: initPTS & initDTS reset"),this._initPTS=this._initDTS=e},t.resetNextTimestamp=function(){this.logger.log("[mp4-remuxer]: reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1},t.resetInitSegment=function(){this.logger.log("[mp4-remuxer]: ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0},t.getVideoStartPts=function(e){var t=!1,i=e.reduce((function(e,i){var r=i.pts-e;return r<-4294967296?(t=!0,ba(e,i.pts)):r>0?e:i.pts}),e[0].pts);return t&&this.logger.debug("PTS rollover detected"),i},t.remux=function(e,t,i,r,s,a,o,n){var l,h,A,d,c,u,p=s,g=s,m=e.pid>-1,y=t.pid>-1,E=t.samples.length,C=e.samples.length>0,f=o&&E>0||E>1;if((!m||C)&&(!y||f)||this.ISGenerated||o){if(this.ISGenerated){var I,w,S,M,v=this.videoTrackConfig;(v&&(t.width!==v.width||t.height!==v.height||(null==(I=t.pixelRatio)?void 0:I[0])!==(null==(w=v.pixelRatio)?void 0:w[0])||(null==(S=t.pixelRatio)?void 0:S[1])!==(null==(M=v.pixelRatio)?void 0:M[1]))||!v&&f||null===this.nextAudioPts&&C)&&this.resetInitSegment()}this.ISGenerated||(A=this.generateIS(e,t,s,a));var k,B=this.isVideoContiguous,D=-1;if(f&&(D=Qa(t.samples),!B&&this.config.forceKeyFrameOnDiscontinuity))if(u=!0,D>0){this.logger.warn("[mp4-remuxer]: Dropped "+D+" out of "+E+" video samples due to a missing keyframe");var b=this.getVideoStartPts(t.samples);t.samples=t.samples.slice(D),t.dropped+=D,k=g+=(t.samples[0].pts-b)/t.inputTimeScale}else-1===D&&(this.logger.warn("[mp4-remuxer]: No keyframe found out of "+E+" video samples"),u=!1);if(this.ISGenerated){if(C&&f){var Q=this.getVideoStartPts(t.samples),R=(ba(e.samples[0].pts,Q)-Q)/t.inputTimeScale;p+=Math.max(0,R),g+=Math.max(0,-R)}if(C){if(e.samplerate||(this.logger.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"),A=this.generateIS(e,t,s,a)),h=this.remuxAudio(e,p,this.isAudioContiguous,a,y||f||n===Pt.AUDIO?g:void 0),f){var T=h?h.endPTS-h.startPTS:0;t.inputTimeScale||(this.logger.warn("[mp4-remuxer]: regenerate InitSegment as video detected"),A=this.generateIS(e,t,s,a)),l=this.remuxVideo(t,g,B,T)}}else f&&(l=this.remuxVideo(t,g,B,0));l&&(l.firstKeyFrame=D,l.independent=-1!==D,l.firstKeyFramePTS=k)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(i.samples.length&&(c=Ra(i,s,this._initPTS,this._initDTS)),r.samples.length&&(d=Ta(r,s,this._initPTS))),{audio:h,video:l,initSegment:A,independent:u,text:d,id3:c}},t.generateIS=function(e,t,i,r){var s,a,o,n=e.samples,l=t.samples,h=this.typeSupported,A={},d=this._initPTS,c=!d||r,u="audio/mp4";if(c&&(s=a=1/0),e.config&&n.length){switch(e.timescale=e.samplerate,e.segmentCodec){case"mp3":h.mpeg?(u="audio/mpeg",e.codec=""):h.mp3&&(e.codec="mp3");break;case"ac3":e.codec="ac-3"}A.audio={id:"audio",container:u,codec:e.codec,initSegment:"mp3"===e.segmentCodec&&h.mpeg?new Uint8Array(0):ma.initSegment([e]),metadata:{channelCount:e.channelCount}},c&&(o=e.inputTimeScale,d&&o===d.timescale?c=!1:s=a=n[0].pts-Math.round(o*i))}if(t.sps&&t.pps&&l.length){if(t.timescale=t.inputTimeScale,A.video={id:"main",container:"video/mp4",codec:t.codec,initSegment:ma.initSegment([t]),metadata:{width:t.width,height:t.height}},c)if(o=t.inputTimeScale,d&&o===d.timescale)c=!1;else{var p=this.getVideoStartPts(l),g=Math.round(o*i);a=Math.min(a,ba(l[0].dts,p)-g),s=Math.min(s,p-g)}this.videoTrackConfig={width:t.width,height:t.height,pixelRatio:t.pixelRatio}}if(Object.keys(A).length)return this.ISGenerated=!0,c?(this._initPTS={baseTime:s,timescale:o},this._initDTS={baseTime:a,timescale:o}):s=o=void 0,{tracks:A,initPTS:s,timescale:o}},t.remuxVideo=function(e,t,i,r){var s,a,o=e.inputTimeScale,n=e.samples,h=[],A=n.length,d=this._initPTS,c=this.nextAvcDts,u=8,p=this.videoSampleDuration,g=Number.POSITIVE_INFINITY,m=Number.NEGATIVE_INFINITY,y=!1;if(!i||null===c){var E=t*o,C=n[0].pts-ba(n[0].dts,n[0].pts);ka&&null!==c&&Math.abs(E-C-c)<15e3?i=!0:c=E-C}for(var f=d.baseTime*o/d.timescale,I=0;I<A;I++){var w=n[I];w.pts=ba(w.pts-f,c),w.dts=ba(w.dts-f,c),w.dts<n[I>0?I-1:I].dts&&(y=!0)}y&&n.sort((function(e,t){var i=e.dts-t.dts,r=e.pts-t.pts;return i||r})),s=n[0].dts;var S=(a=n[n.length-1].dts)-s,M=S?Math.round(S/(A-1)):p||e.inputTimeScale/30;if(i){var v=s-c,b=v>M,Q=v<-1;if((b||Q)&&(b?this.logger.warn((e.segmentCodec||"").toUpperCase()+": "+fa(v,!0)+" ms ("+v+"dts) hole between fragments detected at "+t.toFixed(3)):this.logger.warn((e.segmentCodec||"").toUpperCase()+": "+fa(-v,!0)+" ms ("+v+"dts) overlapping between fragments detected at "+t.toFixed(3)),!Q||c>=n[0].pts||ka)){s=c;var R=n[0].pts-v;if(b)n[0].dts=s,n[0].pts=R;else for(var T=!0,L=0;L<n.length&&!(n[L].dts>R&&T);L++){var K=n[L].pts;if(n[L].dts-=v,n[L].pts-=v,L<n.length-1){var q=n[L+1].pts;T=q<=n[L].pts==q<=K}}this.logger.log("Video: Initial PTS/DTS adjusted: "+fa(R,!0)+"/"+fa(s,!0)+", delta: "+fa(v,!0)+" ms")}}for(var x=0,F=0,U=s=Math.max(0,s),G=0;G<A;G++){for(var O=n[G],J=O.units,Y=J.length,N=0,P=0;P<Y;P++)N+=J[P].data.length;F+=N,x+=Y,O.length=N,O.dts<U?(O.dts=U,U+=M/4|0||1):U=O.dts,g=Math.min(O.pts,g),m=Math.max(O.pts,m)}a=n[A-1].dts;var j,z=F+4*x+8;try{j=new Uint8Array(z)}catch(e){return void this.observer.emit(k.ERROR,k.ERROR,{type:B.MUX_ERROR,details:D.REMUX_ALLOC_ERROR,fatal:!1,error:e,bytes:z,reason:"fail allocating video mdat "+z})}var W=new DataView(j.buffer);W.setUint32(0,z),j.set(ma.types.mdat,4);for(var Z=!1,V=Number.POSITIVE_INFINITY,H=Number.POSITIVE_INFINITY,X=Number.NEGATIVE_INFINITY,_=Number.NEGATIVE_INFINITY,$=0;$<A;$++){for(var ee=n[$],te=ee.units,ie=0,re=0,se=te.length;re<se;re++){var ae=te[re],oe=ae.data,ne=ae.data.byteLength;W.setUint32(u,ne),u+=4,j.set(oe,u),u+=ne,ie+=4+ne}var le=void 0;if($<A-1)p=n[$+1].dts-ee.dts,le=n[$+1].pts-ee.pts;else{var he=this.config,Ae=$>0?ee.dts-n[$-1].dts:M;if(le=$>0?ee.pts-n[$-1].pts:M,he.stretchShortVideoTrack&&null!==this.nextAudioPts){var de=Math.floor(he.maxBufferHole*o),ce=(r?g+r*o:this.nextAudioPts)-ee.pts;ce>de?((p=ce-Ae)<0?p=Ae:Z=!0,this.logger.log("[mp4-remuxer]: It is approximately "+ce/90+" ms to the next segment; using duration "+p/90+" ms for the last video frame.")):p=Ae}else p=Ae}var ue=Math.round(ee.pts-ee.dts);V=Math.min(V,p),X=Math.max(X,p),H=Math.min(H,le),_=Math.max(_,le),h.push(new Ka(ee.key,p,ie,ue))}if(h.length)if(ka){if(ka<70){var pe=h[0].flags;pe.dependsOn=2,pe.isNonSync=0}}else if(Ba&&_-H<X-V&&M/X<.025&&0===h[0].cts){this.logger.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");for(var ge=s,me=0,ye=h.length;me<ye;me++){var Ee=ge+h[me].duration,Ce=ge+h[me].cts;if(me<ye-1){var fe=Ee+h[me+1].cts;h[me].duration=fe-Ce}else h[me].duration=me?h[me-1].duration:M;h[me].cts=0,ge=Ee}}p=Z||!p?M:p,this.nextAvcDts=c=a+p,this.videoSampleDuration=p,this.isVideoContiguous=!0;var Ie={data1:ma.moof(e.sequenceNumber++,s,l({},e,{samples:h})),data2:j,startPTS:g/o,endPTS:(m+p)/o,startDTS:s/o,endDTS:c/o,type:"video",hasAudio:!1,hasVideo:!0,nb:h.length,dropped:e.dropped};return e.samples=[],e.dropped=0,Ie},t.getSamplesPerFrame=function(e){switch(e.segmentCodec){case"mp3":return Ma;case"ac3":return va;default:return Sa}},t.remuxAudio=function(e,t,i,r,s){var a=e.inputTimeScale,o=a/(e.samplerate?e.samplerate:a),n=this.getSamplesPerFrame(e),h=n*o,A=this._initPTS,d="mp3"===e.segmentCodec&&this.typeSupported.mpeg,c=[],u=void 0!==s,p=e.samples,g=d?0:8,m=this.nextAudioPts||-1,y=t*a,E=A.baseTime*a/A.timescale;if(this.isAudioContiguous=i=i||p.length&&m>0&&(r&&Math.abs(y-m)<9e3||Math.abs(ba(p[0].pts-E,y)-m)<20*h),p.forEach((function(e){e.pts=ba(e.pts-E,y)})),!i||m<0){if(p=p.filter((function(e){return e.pts>=0})),!p.length)return;m=0===s?0:r&&!u?Math.max(0,y):p[0].pts}if("aac"===e.segmentCodec)for(var C=this.config.maxAudioFramesDrift,f=0,I=m;f<p.length;f++){var w=p[f],S=w.pts,M=S-I,v=Math.abs(1e3*M/a);if(M<=-C*h&&u)0===f&&(this.logger.warn("Audio frame @ "+(S/a).toFixed(3)+"s overlaps nextAudioPts by "+Math.round(1e3*M/a)+" ms."),this.nextAudioPts=m=I=S);else if(M>=C*h&&v<wa&&u){var b=Math.round(M/h);(I=S-b*h)<0&&(b--,I+=h),0===f&&(this.nextAudioPts=m=I),this.logger.warn("[mp4-remuxer]: Injecting "+b+" audio frame @ "+(I/a).toFixed(3)+"s due to "+Math.round(1e3*M/a)+" ms gap.");for(var Q=0;Q<b;Q++){var R=Math.max(I,0),T=pa.getSilentFrame(e.parsedCodec||e.manifestCodec||e.codec,e.channelCount);T||(this.logger.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."),T=w.unit.subarray()),p.splice(f,0,{unit:T,pts:R}),I+=h,f++}}w.pts=I,I+=h}for(var L,K=null,q=null,x=0,F=p.length;F--;)x+=p[F].unit.byteLength;for(var U=0,G=p.length;U<G;U++){var O=p[U],J=O.unit,Y=O.pts;if(null!==q)c[U-1].duration=Math.round((Y-q)/o);else{if(i&&"aac"===e.segmentCodec&&(Y=m),K=Y,!(x>0))return;x+=g;try{L=new Uint8Array(x)}catch(e){return void this.observer.emit(k.ERROR,k.ERROR,{type:B.MUX_ERROR,details:D.REMUX_ALLOC_ERROR,fatal:!1,error:e,bytes:x,reason:"fail allocating audio mdat "+x})}d||(new DataView(L.buffer).setUint32(0,x),L.set(ma.types.mdat,4))}L.set(J,g);var N=J.byteLength;g+=N,c.push(new Ka(!0,n,N,0)),q=Y}var P=c.length;if(P){var j=c[c.length-1];this.nextAudioPts=m=q+o*j.duration;var z=d?new Uint8Array(0):ma.moof(e.sequenceNumber++,K/o,l({},e,{samples:c}));e.samples=[];var W=K/a,Z=m/a,V={data1:z,data2:L,startPTS:W,endPTS:Z,startDTS:W,endDTS:Z,type:"audio",hasAudio:!0,hasVideo:!1,nb:P};return this.isAudioContiguous=!0,V}},e}();function ba(e,t){var i;if(null===t)return e;for(i=t<e?-8589934592:8589934592;Math.abs(e-t)>4294967296;)e+=i;return e}function Qa(e){for(var t=0;t<e.length;t++)if(e[t].key)return t;return-1}function Ra(e,t,i,r){var s=e.samples.length;if(s){for(var a=e.inputTimeScale,o=0;o<s;o++){var n=e.samples[o];n.pts=ba(n.pts-i.baseTime*a/i.timescale,t*a)/a,n.dts=ba(n.dts-r.baseTime*a/r.timescale,t*a)/a}var l=e.samples;return e.samples=[],{samples:l}}}function Ta(e,t,i){var r=e.samples.length;if(r){for(var s=e.inputTimeScale,a=0;a<r;a++){var o=e.samples[a];o.pts=ba(o.pts-i.baseTime*s/i.timescale,t*s)/s}e.samples.sort((function(e,t){return e.pts-t.pts}));var n=e.samples;return e.samples=[],{samples:n}}}var La,Ka=function(e,t,i,r){this.size=void 0,this.duration=void 0,this.cts=void 0,this.flags=void 0,this.duration=t,this.size=i,this.cts=r,this.flags={isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:e?2:1,isNonSync:e?0:1}},qa=function(){function e(e,t,i,r){this.logger=void 0,this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null,this.logger=r}var t=e.prototype;return t.destroy=function(){},t.resetTimeStamp=function(e){this.initPTS=e,this.lastEndTime=null},t.resetNextTimestamp=function(){this.lastEndTime=null},t.resetInitSegment=function(e,t,i,r){this.audioCodec=t,this.videoCodec=i,this.generateInitSegment(Pe(e,r)),this.emitInitSegment=!0},t.generateInitSegment=function(e){var t=this.audioCodec,i=this.videoCodec;if(null==e||!e.byteLength)return this.initTracks=void 0,void(this.initData=void 0);var r=this.initData=Ge(e);r.audio&&(t=Fa(r.audio,X.AUDIO)),r.video&&(i=Fa(r.video,X.VIDEO));var s={};r.audio&&r.video?s.audiovideo={container:"video/mp4",codec:t+","+i,initSegment:e,id:"main"}:r.audio?s.audio={container:"audio/mp4",codec:t,initSegment:e,id:"audio"}:r.video?s.video={container:"video/mp4",codec:i,initSegment:e,id:"main"}:this.logger.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."),this.initTracks=s},t.remux=function(e,t,i,r,s,a){var o,n,l=this.initPTS,h=this.lastEndTime,A={audio:void 0,video:void 0,text:r,id3:i,initSegment:void 0};S(h)||(h=this.lastEndTime=s||0);var d=t.samples;if(null==d||!d.length)return A;var c={initPTS:void 0,timescale:1},u=this.initData;if(null!=(o=u)&&o.length||(this.generateInitSegment(d),u=this.initData),null==(n=u)||!n.length)return this.logger.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."),A;this.emitInitSegment&&(c.tracks=this.initTracks,this.emitInitSegment=!1);var p=We(d,u),g=ze(u,d),m=null===g?s:g;(xa(l,m,s,p)||c.timescale!==l.timescale&&a)&&(c.initPTS=m-s,l&&1===l.timescale&&this.logger.warn("Adjusting initPTS @"+s+" from "+l.baseTime/l.timescale+" to "+c.initPTS),this.initPTS=l={baseTime:c.initPTS,timescale:1});var y=e?m-l.baseTime/l.timescale:h,E=y+p;Ve(u,d,l.baseTime/l.timescale),p>0?this.lastEndTime=E:(this.logger.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());var C=!!u.audio,f=!!u.video,I="";C&&(I+="audio"),f&&(I+="video");var w={data1:d,startPTS:y,startDTS:y,endPTS:E,endDTS:E,type:I,hasAudio:C,hasVideo:f,nb:1,dropped:0};return A.audio="audio"===w.type?w:void 0,A.video="audio"!==w.type?w:void 0,A.initSegment=c,A.id3=Ra(i,s,l,l),r.samples.length&&(A.text=Ta(r,s,l)),A},e}();function xa(e,t,i,r){if(null===e)return!0;var s=Math.max(r,1),a=t-e.baseTime/e.timescale;return Math.abs(a-i)>s}function Fa(e,t){var i=null==e?void 0:e.codec;if(i&&i.length>4)return i;if(t===X.AUDIO){if("ec-3"===i||"ac-3"===i||"alac"===i)return i;if("fLaC"===i||"Opus"===i)return St(i,!1);var r="mp4a.40.5";return this.logger.info('Parsed audio codec "'+i+'" or audio object type not handled. Using "'+r+'"'),r}return this.logger.warn('Unhandled video codec "'+i+'"'),"hvc1"===i||"hev1"===i?"hvc1.1.6.L120.90":"av01"===i?"av01.0.04M.08":"avc1.42e01e"}try{La=self.performance.now.bind(self.performance)}catch(e){La=Date.now}var Ua=[{demux:Hs,remux:qa},{demux:oa,remux:Da},{demux:Zs,remux:Da},{demux:ua,remux:Da}];Ua.splice(2,0,{demux:_s,remux:Da});var Ga=function(){function e(e,t,i,r,s,a){this.asyncResult=!1,this.logger=void 0,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.observer=e,this.typeSupported=t,this.config=i,this.id=s,this.logger=a}var t=e.prototype;return t.configure=function(e){this.transmuxConfig=e,this.decrypter&&this.decrypter.reset()},t.push=function(e,t,i,r){var s=this,a=i.transmuxing;a.executeStart=La();var o=new Uint8Array(e),n=this.currentTransmuxState,l=this.transmuxConfig;r&&(this.currentTransmuxState=r);var h=r||n,A=h.contiguous,d=h.discontinuity,c=h.trackSwitch,u=h.accurateTimeOffset,p=h.timeOffset,g=h.initSegmentChange,m=l.audioCodec,y=l.videoCodec,E=l.defaultInitPts,C=l.duration,f=l.initSegmentData,I=Oa(o,t);if(I&&he(I.method)){var w=this.getDecrypter(),S=Ae(I.method);if(!w.isSync())return this.asyncResult=!0,this.decryptionPromise=w.webCryptoDecrypt(o,I.key.buffer,I.iv.buffer,S).then((function(e){var t=s.push(e,null,i);return s.decryptionPromise=null,t})),this.decryptionPromise;var M=w.softwareDecrypt(o,I.key.buffer,I.iv.buffer,S);if(i.part>-1&&(M=w.flush()),!M)return a.executeEnd=La(),Ja(i);o=new Uint8Array(M)}var v=this.needsProbing(d,c);if(v){var b=this.configureTransmuxer(o);if(b)return this.logger.warn("[transmuxer] "+b.message),this.observer.emit(k.ERROR,k.ERROR,{type:B.MEDIA_ERROR,details:D.FRAG_PARSING_ERROR,fatal:!1,error:b,reason:b.message}),a.executeEnd=La(),Ja(i)}(d||c||g||v)&&this.resetInitSegment(f,m,y,C,t),(d||g||v)&&this.resetInitialTimestamp(E),A||this.resetContiguity();var Q=this.transmux(o,I,p,u,i);this.asyncResult=Ya(Q);var R=this.currentTransmuxState;return R.contiguous=!0,R.discontinuity=!1,R.trackSwitch=!1,a.executeEnd=La(),Q},t.flush=function(e){var t=this,i=e.transmuxing;i.executeStart=La();var r=this.decrypter,s=this.currentTransmuxState,a=this.decryptionPromise;if(a)return this.asyncResult=!0,a.then((function(){return t.flush(e)}));var o=[],n=s.timeOffset;if(r){var l=r.flush();l&&o.push(this.push(l,null,e))}var h=this.demuxer,A=this.remuxer;if(!h||!A){i.executeEnd=La();var d=[Ja(e)];return this.asyncResult?Promise.resolve(d):d}var c=h.flush(n);return Ya(c)?(this.asyncResult=!0,c.then((function(i){return t.flushRemux(o,i,e),o}))):(this.flushRemux(o,c,e),this.asyncResult?Promise.resolve(o):o)},t.flushRemux=function(e,t,i){var r=t.audioTrack,s=t.videoTrack,a=t.id3Track,o=t.textTrack,n=this.currentTransmuxState,l=n.accurateTimeOffset,h=n.timeOffset;this.logger.log("[transmuxer.ts]: Flushed "+this.id+" sn: "+i.sn+(i.part>-1?" p: "+i.part:"")+" of "+(this.id===Pt.MAIN?"level":"track")+" "+i.level);var A=this.remuxer.remux(r,s,a,o,h,l,!0,this.id);e.push({remuxResult:A,chunkMeta:i}),i.transmuxing.executeEnd=La()},t.resetInitialTimestamp=function(e){var t=this.demuxer,i=this.remuxer;t&&i&&(t.resetTimeStamp(e),i.resetTimeStamp(e))},t.resetContiguity=function(){var e=this.demuxer,t=this.remuxer;e&&t&&(e.resetContiguity(),t.resetNextTimestamp())},t.resetInitSegment=function(e,t,i,r,s){var a=this.demuxer,o=this.remuxer;a&&o&&(a.resetInitSegment(e,t,i,r),o.resetInitSegment(e,t,i,s))},t.destroy=function(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)},t.transmux=function(e,t,i,r,s){return t&&"SAMPLE-AES"===t.method?this.transmuxSampleAes(e,t,i,r,s):this.transmuxUnencrypted(e,i,r,s)},t.transmuxUnencrypted=function(e,t,i,r){var s=this.demuxer.demux(e,t,!1,!this.config.progressive),a=s.audioTrack,o=s.videoTrack,n=s.id3Track,l=s.textTrack;return{remuxResult:this.remuxer.remux(a,o,n,l,t,i,!1,this.id),chunkMeta:r}},t.transmuxSampleAes=function(e,t,i,r,s){var a=this;return this.demuxer.demuxSampleAes(e,t,i).then((function(e){return{remuxResult:a.remuxer.remux(e.audioTrack,e.videoTrack,e.id3Track,e.textTrack,i,r,!1,a.id),chunkMeta:s}}))},t.configureTransmuxer=function(e){for(var t,i=this.config,r=this.observer,s=this.typeSupported,a=0,o=Ua.length;a<o;a++){var n;if(null!=(n=Ua[a].demux)&&n.probe(e,this.logger)){t=Ua[a];break}}if(!t)return new Error("Failed to find demuxer by probing fragment data");var l=this.demuxer,h=this.remuxer,A=t.remux,d=t.demux;h&&h instanceof A||(this.remuxer=new A(r,i,s,this.logger)),l&&l instanceof d||(this.demuxer=new d(r,i,s,this.logger),this.probe=d.probe)},t.needsProbing=function(e,t){return!this.demuxer||!this.remuxer||e||t},t.getDecrypter=function(){var e=this.decrypter;return e||(e=this.decrypter=new cs(this.config)),e},e}();function Oa(e,t){var i=null;return e.byteLength>0&&null!=(null==t?void 0:t.key)&&null!==t.iv&&null!=t.method&&(i=t),i}var Ja=function(e){return{remuxResult:{},chunkMeta:e}};function Ya(e){return"then"in e&&e.then instanceof Function}var Na=function(e,t,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=e,this.videoCodec=t,this.initSegmentData=i,this.duration=r,this.defaultInitPts=s||null},Pa=function(e,t,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=e,this.contiguous=t,this.accurateTimeOffset=i,this.trackSwitch=r,this.timeOffset=s,this.initSegmentChange=a},ja={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,i="~";function r(){}function s(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function a(e,t,r,a,o){if("function"!=typeof r)throw new TypeError("The listener must be a function");var n=new s(r,a||e,o),l=i?i+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],n]:e._events[l].push(n):(e._events[l]=n,e._eventsCount++),e}function o(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function n(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(i=!1)),n.prototype.eventNames=function(){var e,r,s=[];if(0===this._eventsCount)return s;for(r in e=this._events)t.call(e,r)&&s.push(i?r.slice(1):r);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(e)):s},n.prototype.listeners=function(e){var t=i?i+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,a=r.length,o=new Array(a);s<a;s++)o[s]=r[s].fn;return o},n.prototype.listenerCount=function(e){var t=i?i+e:e,r=this._events[t];return r?r.fn?1:r.length:0},n.prototype.emit=function(e,t,r,s,a,o){var n=i?i+e:e;if(!this._events[n])return!1;var l,h,A=this._events[n],d=arguments.length;if(A.fn){switch(A.once&&this.removeListener(e,A.fn,void 0,!0),d){case 1:return A.fn.call(A.context),!0;case 2:return A.fn.call(A.context,t),!0;case 3:return A.fn.call(A.context,t,r),!0;case 4:return A.fn.call(A.context,t,r,s),!0;case 5:return A.fn.call(A.context,t,r,s,a),!0;case 6:return A.fn.call(A.context,t,r,s,a,o),!0}for(h=1,l=new Array(d-1);h<d;h++)l[h-1]=arguments[h];A.fn.apply(A.context,l)}else{var c,u=A.length;for(h=0;h<u;h++)switch(A[h].once&&this.removeListener(e,A[h].fn,void 0,!0),d){case 1:A[h].fn.call(A[h].context);break;case 2:A[h].fn.call(A[h].context,t);break;case 3:A[h].fn.call(A[h].context,t,r);break;case 4:A[h].fn.call(A[h].context,t,r,s);break;default:if(!l)for(c=1,l=new Array(d-1);c<d;c++)l[c-1]=arguments[c];A[h].fn.apply(A[h].context,l)}}return!0},n.prototype.on=function(e,t,i){return a(this,e,t,i,!1)},n.prototype.once=function(e,t,i){return a(this,e,t,i,!0)},n.prototype.removeListener=function(e,t,r,s){var a=i?i+e:e;if(!this._events[a])return this;if(!t)return o(this,a),this;var n=this._events[a];if(n.fn)n.fn!==t||s&&!n.once||r&&n.context!==r||o(this,a);else{for(var l=0,h=[],A=n.length;l<A;l++)(n[l].fn!==t||s&&!n[l].once||r&&n[l].context!==r)&&h.push(n[l]);h.length?this._events[a]=1===h.length?h[0]:h:o(this,a)}return this},n.prototype.removeAllListeners=function(e){var t;return e?(t=i?i+e:e,this._events[t]&&o(this,t)):(this._events=new r,this._eventsCount=0),this},n.prototype.off=n.prototype.removeListener,n.prototype.addListener=n.prototype.on,n.prefixed=i,n.EventEmitter=n,e.exports=n}(ja);var za=f(ja.exports),Wa=[];function Za(){self.addEventListener("message",(function(e){var t=e.data,i=t.instanceNo;if(void 0!==i){var r=Wa[i];if("reset"===t.cmd&&(delete Wa[t.resetNo],r&&r.destroy(),t.cmd="init"),"init"===t.cmd){var s=JSON.parse(t.config),a=new za;a.on(k.FRAG_DECRYPTED,_a),a.on(k.ERROR,_a);var o=x(s.debug,t.id);return $a(o,i),Wa[i]=new Ga(a,t.typeSupported,s,"",t.id,o),void _a("init",null,i)}if(r)switch(t.cmd){case"configure":r.configure(t.config);break;case"demux":var n=r.push(t.data,t.decryptdata,t.chunkMeta,t.state);Ya(n)?n.then((function(e){Va(self,e,i)})).catch((function(e){_a(k.ERROR,{instanceNo:i,type:B.MEDIA_ERROR,details:D.FRAG_PARSING_ERROR,chunkMeta:t.chunkMeta,fatal:!1,error:e,err:e,reason:"transmuxer-worker push error"},i)})):Va(self,n,i);break;case"flush":var l=t.chunkMeta,h=r.flush(l);Ya(h)?h.then((function(e){Xa(self,e,l,i)})).catch((function(e){_a(k.ERROR,{type:B.MEDIA_ERROR,details:D.FRAG_PARSING_ERROR,chunkMeta:t.chunkMeta,fatal:!1,error:e,err:e,reason:"transmuxer-worker flush error"},i)})):Xa(self,h,l,i)}}}))}function Va(e,t,i){if(eo(t.remuxResult))return!1;var r=[],s=t.remuxResult,a=s.audio,o=s.video;return a&&Ha(r,a),o&&Ha(r,o),e.postMessage({event:"transmuxComplete",data:t,instanceNo:i},r),!0}function Ha(e,t){t.data1&&e.push(t.data1.buffer),t.data2&&e.push(t.data2.buffer)}function Xa(e,t,i,r){t.reduce((function(t,i){return Va(e,i,r)||t}),!1)||e.postMessage({event:"transmuxComplete",data:t[0],instanceNo:r}),e.postMessage({event:"flush",data:i,instanceNo:r})}function _a(e,t,i){self.postMessage({event:e,data:t,instanceNo:i})}function $a(e,t){var i=function(i){var r=function(e){_a("workerLog",{logType:i,message:e},t)};e[i]=r};for(var r in e)i(r)}function eo(e){return!(e.audio||e.video||e.text||e.id3||e.initSegment)}void 0!==i&&i&&Za();var to=void 0,io={};function ro(){return!0}function so(){var e=io[to];if(e)return e.clientCount++,e;var i=new self.Blob(["var exports={};var module={exports:exports};function define(f){f()};define.amd=true;("+t.toString()+")(true);"],{type:"text/javascript"}),r=self.URL.createObjectURL(i),s={worker:new self.Worker(r),objectURL:r,clientCount:1};return io[to]=s,s}function ao(e){var t=io[e];if(t)return t.clientCount++,t;var i=new self.URL(e,self.location.href).href,r={worker:new self.Worker(i),scriptURL:i,clientCount:1};return io[e]=r,r}function oo(e){var t=io[e||to];if(t&&1==t.clientCount--){var i=t.worker,r=t.objectURL;delete io[e||to],r&&self.URL.revokeObjectURL(r),i.terminate()}}var no=0,lo=function(){function e(e,t,i,r){var s=this;this.error=null,this.hls=void 0,this.id=void 0,this.instanceNo=no++,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0,this.onWorkerMessage=function(e){var t=e.data,i=s.hls;if(i&&null!=t&&t.event&&t.instanceNo===s.instanceNo)switch(t.event){case"init":var r,a=null==(r=s.workerContext)?void 0:r.objectURL;a&&self.URL.revokeObjectURL(a);break;case"transmuxComplete":s.handleTransmuxComplete(t.data);break;case"flush":s.onFlush(t.data);break;case"workerLog":i.logger[t.data.logType]&&i.logger[t.data.logType](t.data.message);break;default:t.data=t.data||{},t.data.frag=s.frag,t.data.part=s.part,t.data.id=s.id,i.trigger(t.event,t.data)}},this.onWorkerError=function(e){if(s.hls){var t=new Error(e.message+" ("+e.filename+":"+e.lineno+")");s.hls.config.enableWorker=!1,s.hls.logger.warn('Error in "'+s.id+'" Web Worker, fallback to inline'),s.hls.trigger(k.ERROR,{type:B.OTHER_ERROR,details:D.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:t})}};var a=e.config;this.hls=e,this.id=t,this.useWorker=!!a.enableWorker,this.onTransmuxComplete=i,this.onFlush=r;var o=function(e,t){(t=t||{}).frag=s.frag||void 0,e===k.ERROR&&(t.parent=s.id,t.part=s.part,s.error=t.error),s.hls.trigger(e,t)};this.observer=new za,this.observer.on(k.FRAG_DECRYPTED,o),this.observer.on(k.ERROR,o);var n=kt(a.preferManagedMediaSource);if(this.useWorker&&"undefined"!=typeof Worker){var l=this.hls.logger;if(a.workerPath||ro()){try{a.workerPath?(l.log("loading Web Worker "+a.workerPath+' for "'+t+'"'),this.workerContext=ao(a.workerPath)):(l.log('injecting Web Worker for "'+t+'"'),this.workerContext=so());var h=this.workerContext.worker;h.addEventListener("message",this.onWorkerMessage),h.addEventListener("error",this.onWorkerError),h.postMessage({instanceNo:this.instanceNo,cmd:"init",typeSupported:n,id:t,config:JSON.stringify(a)})}catch(i){l.warn('Error setting up "'+t+'" Web Worker, fallback to inline',i),this.terminateWorker(),this.error=null,this.transmuxer=new Ga(this.observer,n,a,"",t,e.logger)}return}}this.transmuxer=new Ga(this.observer,n,a,"",t,e.logger)}var t=e.prototype;return t.reset=function(){if(this.frag=null,this.part=null,this.workerContext){var e=this.instanceNo;this.instanceNo=no++;var t=this.hls.config,i=kt(t.preferManagedMediaSource);this.workerContext.worker.postMessage({instanceNo:this.instanceNo,cmd:"reset",resetNo:e,typeSupported:i,id:this.id,config:JSON.stringify(t)})}},t.terminateWorker=function(){if(this.workerContext){var e=this.workerContext.worker;this.workerContext=null,e.removeEventListener("message",this.onWorkerMessage),e.removeEventListener("error",this.onWorkerError),oo(this.hls.config.workerPath)}},t.destroy=function(){if(this.workerContext)this.terminateWorker(),this.onWorkerMessage=this.onWorkerError=null;else{var e=this.transmuxer;e&&(e.destroy(),this.transmuxer=null)}var t=this.observer;t&&t.removeAllListeners(),this.frag=null,this.part=null,this.observer=null,this.hls=null},t.push=function(e,t,i,r,s,a,o,n,l,h){var A,d,c=this;l.transmuxing.start=self.performance.now();var u=this.instanceNo,p=this.transmuxer,g=a?a.start:s.start,m=s.decryptdata,y=this.frag,E=!(y&&s.cc===y.cc),C=!(y&&l.level===y.level),f=y?l.sn-y.sn:-1,I=this.part?l.part-this.part.index:-1,w=0===f&&l.id>1&&l.id===(null==y?void 0:y.stats.chunkCount),S=!C&&(1===f||0===f&&(1===I||w&&I<=0)),M=self.performance.now();(C||f||0===s.stats.parsing.start)&&(s.stats.parsing.start=M),!a||!I&&S||(a.stats.parsing.start=M);var v=!(y&&(null==(A=s.initSegment)?void 0:A.url)===(null==(d=y.initSegment)?void 0:d.url)),k=new Pa(E,S,n,C,g,v);if(!S||E||v){this.hls.logger.log("[transmuxer-interface, "+s.type+"]: Starting new transmux session for sn: "+l.sn+" p: "+l.part+" level: "+l.level+" id: "+l.id+"\n discontinuity: "+E+"\n trackSwitch: "+C+"\n contiguous: "+S+"\n accurateTimeOffset: "+n+"\n timeOffset: "+g+"\n initSegmentChange: "+v);var B=new Na(i,r,t,o,h);this.configureTransmuxer(B)}if(this.frag=s,this.part=a,this.workerContext)this.workerContext.worker.postMessage({instanceNo:u,cmd:"demux",data:e,decryptdata:m,chunkMeta:l,state:k},e instanceof ArrayBuffer?[e]:[]);else if(p){var D=p.push(e,m,l,k);Ya(D)?D.then((function(e){c.handleTransmuxComplete(e)})).catch((function(e){c.transmuxerError(e,l,"transmuxer-interface push error")})):this.handleTransmuxComplete(D)}},t.flush=function(e){var t=this;e.transmuxing.start=self.performance.now();var i=this.instanceNo,r=this.transmuxer;if(this.workerContext)this.workerContext.worker.postMessage({instanceNo:i,cmd:"flush",chunkMeta:e});else if(r){var s=r.flush(e);Ya(s)?s.then((function(i){t.handleFlushResult(i,e)})).catch((function(i){t.transmuxerError(i,e,"transmuxer-interface flush error")})):this.handleFlushResult(s,e)}},t.transmuxerError=function(e,t,i){this.hls&&(this.error=e,this.hls.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.FRAG_PARSING_ERROR,chunkMeta:t,frag:this.frag||void 0,part:this.part||void 0,fatal:!1,error:e,err:e,reason:i}))},t.handleFlushResult=function(e,t){var i=this;e.forEach((function(e){i.handleTransmuxComplete(e)})),this.onFlush(t)},t.configureTransmuxer=function(e){var t=this.instanceNo,i=this.transmuxer;this.workerContext?this.workerContext.worker.postMessage({instanceNo:t,cmd:"configure",config:e}):i&&i.configure(e)},t.handleTransmuxComplete=function(e){e.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(e)},e}();function ho(e,t){if(e.length!==t.length)return!1;for(var i=0;i<e.length;i++)if(!Ao(e[i].attrs,t[i].attrs))return!1;return!0}function Ao(e,t,i){var r=e["STABLE-RENDITION-ID"];return r&&!i?r===t["STABLE-RENDITION-ID"]:!(i||["LANGUAGE","NAME","CHARACTERISTICS","AUTOSELECT","DEFAULT","FORCED","ASSOC-LANGUAGE"]).some((function(i){return e[i]!==t[i]}))}function co(e,t){return t.label.toLowerCase()===e.name.toLowerCase()&&(!t.language||t.language.toLowerCase()===(e.lang||"").toLowerCase())}var uo=100,po=function(e){function t(t,i,r){var s;return(s=e.call(this,t,i,r,"audio-stream-controller",Pt.AUDIO)||this).videoAnchor=null,s.mainFragLoading=null,s.bufferedTrack=null,s.switchingTrack=null,s.trackId=-1,s.waitingData=null,s.mainDetails=null,s.flushing=!1,s.bufferFlushed=!1,s.cachedTrackLoadedData=null,s.registerListeners(),s}A(t,e);var i=t.prototype;return i.onHandlerDestroying=function(){this.unregisterListeners(),e.prototype.onHandlerDestroying.call(this),this.mainDetails=null,this.bufferedTrack=null,this.switchingTrack=null},i.registerListeners=function(){e.prototype.registerListeners.call(this);var t=this.hls;t.on(k.LEVEL_LOADED,this.onLevelLoaded,this),t.on(k.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),t.on(k.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.on(k.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),t.on(k.BUFFER_RESET,this.onBufferReset,this),t.on(k.BUFFER_CREATED,this.onBufferCreated,this),t.on(k.BUFFER_FLUSHING,this.onBufferFlushing,this),t.on(k.BUFFER_FLUSHED,this.onBufferFlushed,this),t.on(k.INIT_PTS_FOUND,this.onInitPtsFound,this),t.on(k.FRAG_LOADING,this.onFragLoading,this),t.on(k.FRAG_BUFFERED,this.onFragBuffered,this)},i.unregisterListeners=function(){var t=this.hls;t&&(e.prototype.unregisterListeners.call(this),t.off(k.LEVEL_LOADED,this.onLevelLoaded,this),t.off(k.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),t.off(k.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.off(k.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),t.off(k.BUFFER_RESET,this.onBufferReset,this),t.off(k.BUFFER_CREATED,this.onBufferCreated,this),t.off(k.BUFFER_FLUSHING,this.onBufferFlushing,this),t.off(k.BUFFER_FLUSHED,this.onBufferFlushed,this),t.off(k.INIT_PTS_FOUND,this.onInitPtsFound,this),t.on(k.FRAG_LOADING,this.onFragLoading,this),t.off(k.FRAG_BUFFERED,this.onFragBuffered,this))},i.onInitPtsFound=function(e,t){var i=t.frag,r=t.id,s=t.initPTS,a=t.timescale;if(r===Pt.MAIN){var o=i.cc,n=this.fragCurrent;if(this.initPTS[o]={baseTime:s,timescale:a},this.log("InitPTS for cc: "+o+" found from main: "+s+"/"+a),this.videoAnchor=i,this.state===ps.WAITING_INIT_PTS){var l=this.waitingData;l&&l.frag.cc===o||(this.nextLoadPosition=this.findSyncFrag(i).start),this.tick()}else!this.loadedmetadata&&n&&n.cc!==o&&(this.startFragRequested=!1,this.nextLoadPosition=this.findSyncFrag(i).start,n.abortRequests(),this.resetLoadingState())}},i.findSyncFrag=function(e){var t=this.getLevelDetails(),i=e.cc;return cr(t,i,e)||t&&dr(t.fragments,i)||e},i.startLoad=function(e){if(!this.levels)return this.startPosition=e,void(this.state=ps.STOPPED);var t=this.lastCurrentTime;this.stopLoad(),this.setInterval(uo),t>0&&-1===e?(this.log("Override startPosition with lastCurrentTime @"+t.toFixed(3)),e=t,this.state=ps.IDLE):(this.loadedmetadata=!1,this.state=ps.WAITING_TRACK),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()},i.doTick=function(){switch(this.state){case ps.IDLE:this.doTickIdle();break;case ps.WAITING_TRACK:var t,i=this.levels,r=this.trackId,s=null==i||null==(t=i[r])?void 0:t.details;if(s){if(this.waitForCdnTuneIn(s))break;this.state=ps.WAITING_INIT_PTS}break;case ps.FRAG_LOADING_WAITING_RETRY:var a,o=performance.now(),n=this.retryDate;if(!n||o>=n||null!=(a=this.media)&&a.seeking){var l=this.levels,h=this.trackId;this.log("RetryDate reached, switch back to IDLE state"),this.resetStartWhenNotLoaded((null==l?void 0:l[h])||null),this.state=ps.IDLE}break;case ps.WAITING_INIT_PTS:var A=this.waitingData;if(A){var d=A.frag,c=A.part,u=A.cache,p=A.complete,g=this.videoAnchor;if(void 0!==this.initPTS[d.cc]){this.waitingData=null,this.state=ps.FRAG_LOADING;var m={frag:d,part:c,payload:u.flush(),networkDetails:null};this._handleFragmentLoadProgress(m),p&&e.prototype._handleFragmentLoadComplete.call(this,m)}else g&&g.cc!==A.frag.cc&&(this.log("Waiting fragment cc ("+d.cc+") cancelled because video is at cc "+g.cc),this.nextLoadPosition=this.findSyncFrag(g).start,this.clearWaitingFragment())}else this.state!==ps.STOPPED&&(this.state=ps.IDLE)}this.onTickEnd()},i.clearWaitingFragment=function(){var e=this.waitingData;e&&(this.loadedmetadata||(this.startFragRequested=!1),this.fragmentTracker.removeFragment(e.frag),this.waitingData=null,this.state!==ps.STOPPED&&(this.state=ps.IDLE))},i.resetLoadingState=function(){this.clearWaitingFragment(),e.prototype.resetLoadingState.call(this)},i.onTickEnd=function(){var e=this.media;null!=e&&e.readyState&&(this.lastCurrentTime=e.currentTime)},i.doTickIdle=function(){var e,t=this.hls,i=this.levels,r=this.media,s=this.trackId,a=t.config;if(this.buffering&&(r||!this.startFragRequested&&a.startFragPrefetch)&&null!=i&&i[s]){var o=i[s],n=o.details;if(!n||n.live&&this.levelLastLoaded!==o||this.waitForCdnTuneIn(n))this.state=ps.WAITING_TRACK;else{var l=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&l&&(this.bufferFlushed=!1,this.afterBufferFlushed(l,X.AUDIO,Pt.AUDIO));var h=this.getFwdBufferInfo(l,Pt.AUDIO);if(null!==h){var A=this.bufferedTrack,d=this.switchingTrack;if(!d&&this._streamEnded(h,n))return t.trigger(k.BUFFER_EOS,{type:"audio"}),void(this.state=ps.ENDED);var c=h.len,u=t.maxBufferLength,p=n.fragments,g=p[0].start,m=this.getLoadPosition(),y=this.flushing?m:h.end;if(d&&r){var E=m;A&&!Ao(d.attrs,A.attrs)&&(y=E),n.PTSKnown&&E<g&&(h.end>g||h.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),r.currentTime=g+.05)}if(!(c>=u&&!d&&y<p[p.length-1].start)){var C=this.getNextFragment(y,n);if(C&&this.isLoopLoading(C,y)&&(C=this.getNextFragmentLoopLoading(C,n,h,Pt.MAIN,u)),C){var f=null==(e=this.mainFragLoading)?void 0:e.frag;if(this.startFragRequested&&f&&"initSegment"!==f.sn&&"initSegment"!==C.sn&&!C.endList&&(!n.live||!this.loadingParts&&y<this.hls.liveSyncPosition)){var I=f;if(C.start>I.end){var w=this.fragmentTracker.getFragAtPos(y,Pt.MAIN);w&&w.end>f.end&&(I=w,this.mainFragLoading={frag:w,targetBufferTime:null})}if(C.start>I.end)return}this.loadFragment(C,o,y)}else this.bufferFlushed=!0}}}}},i.onMediaDetaching=function(){this.bufferFlushed=this.flushing=!1,e.prototype.onMediaDetaching.call(this)},i.onAudioTracksUpdated=function(e,t){var i=t.audioTracks;this.resetTransmuxer(),this.levels=i.map((function(e){return new Ui(e)}))},i.onAudioTrackSwitching=function(e,t){var i=!!t.url;this.trackId=t.id;var r=this.fragCurrent;r&&(r.abortRequests(),this.removeUnbufferedFrags(r.start)),this.resetLoadingState(),i?(this.switchingTrack=t,this.flushAudioIfNeeded(t),this.state!==ps.STOPPED&&(this.setInterval(uo),this.state=ps.IDLE,this.tick())):(this.resetTransmuxer(),this.switchingTrack=null,this.bufferedTrack=t,this.clearInterval())},i.onManifestLoading=function(){e.prototype.onManifestLoading.call(this),this.bufferFlushed=this.flushing=!1,this.mainDetails=this.waitingData=this.videoAnchor=this.bufferedTrack=this.cachedTrackLoadedData=this.switchingTrack=null,this.trackId=-1},i.onLevelLoaded=function(e,t){this.mainDetails=t.details,null!==this.cachedTrackLoadedData&&(this.hls.trigger(k.AUDIO_TRACK_LOADED,this.cachedTrackLoadedData),this.cachedTrackLoadedData=null)},i.onAudioTrackLoaded=function(e,t){var i;if(null!=this.mainDetails){var r=this.levels,s=t.details,a=t.id;if(r){this.log("Audio track "+a+" loaded ["+s.startSN+","+s.endSN+"]"+(s.lastPartSn?"[part-"+s.lastPartSn+"-"+s.lastPartIndex+"]":"")+",duration:"+s.totalduration);var o=r[a],n=0;if(s.live||null!=(i=o.details)&&i.live){this.checkLiveUpdate(s);var l,h=this.mainDetails;if(s.deltaUpdateFailed||!h)return;!o.details&&s.hasProgramDateTime&&h.hasProgramDateTime?($r(s,h),n=s.fragments[0].start):n=this.alignPlaylists(s,o.details,null==(l=this.levelLastLoaded)?void 0:l.details)}o.details=s,this.levelLastLoaded=o,this.startFragRequested||!this.mainDetails&&s.live||this.setStartPosition(this.mainDetails||s,n),this.state!==ps.WAITING_TRACK||this.waitForCdnTuneIn(s)||(this.state=ps.IDLE),this.tick()}else this.warn("Audio tracks were reset while loading level "+a)}else this.cachedTrackLoadedData=t},i._handleFragmentLoadProgress=function(e){var t,i=e.frag,r=e.part,s=e.payload,a=this.config,o=this.trackId,n=this.levels;if(n){var l=n[o];if(l){var h=l.details;if(!h)return this.warn("Audio track details undefined on fragment load progress"),void this.removeUnbufferedFrags(i.start);var A=a.defaultAudioCodec||l.audioCodec||"mp4a.40.2",d=this.transmuxer;d||(d=this.transmuxer=new lo(this.hls,Pt.AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));var c=this.initPTS[i.cc],u=null==(t=i.initSegment)?void 0:t.data;if(void 0!==c){var p=!1,g=r?r.index:-1,m=-1!==g,y=new jr(i.level,i.sn,i.stats.chunkCount,s.byteLength,g,m);d.push(s,u,A,"",i,r,h.totalduration,p,y,c)}else this.log("Unknown video PTS for cc "+i.cc+", waiting for video PTS before demuxing audio frag "+i.sn+" of ["+h.startSN+" ,"+h.endSN+"],track "+o),(this.waitingData=this.waitingData||{frag:i,part:r,cache:new ms,complete:!1}).cache.push(new Uint8Array(s)),this.state=ps.WAITING_INIT_PTS}else this.warn("Audio track is undefined on fragment load progress")}else this.warn("Audio tracks were reset while fragment load was in progress. Fragment "+i.sn+" of level "+i.level+" will not be buffered")},i._handleFragmentLoadComplete=function(t){this.waitingData?this.waitingData.complete=!0:e.prototype._handleFragmentLoadComplete.call(this,t)},i.onBufferReset=function(){this.mediaBuffer=null,this.loadedmetadata=!1},i.onBufferCreated=function(e,t){var i=t.tracks.audio;i&&(this.mediaBuffer=i.buffer||null)},i.onFragLoading=function(e,t){t.frag.type===Pt.MAIN&&"initSegment"!==t.frag.sn&&(this.mainFragLoading=t,this.state===ps.IDLE&&this.tick())},i.onFragBuffered=function(e,t){var i=t.frag,r=t.part;if(i.type===Pt.AUDIO)if(this.fragContextChanged(i))this.warn("Fragment "+i.sn+(r?" p: "+r.index:"")+" of level "+i.level+" finished buffering, but was aborted. state: "+this.state+", audioSwitch: "+(this.switchingTrack?this.switchingTrack.name:"false"));else{if("initSegment"!==i.sn){this.fragPrevious=i;var s=this.switchingTrack;s&&(this.bufferedTrack=s,this.switchingTrack=null,this.hls.trigger(k.AUDIO_TRACK_SWITCHED,p({},s)))}this.fragBufferedComplete(i,r)}else if(!this.loadedmetadata&&i.type===Pt.MAIN){var a=this.fragmentTracker.getState(i);a!==Gr.OK&&a!==Gr.PARTIAL||(this.loadedmetadata=!0)}},i.onError=function(t,i){var r;if(i.fatal)this.state=ps.ERROR;else switch(i.details){case D.FRAG_GAP:case D.FRAG_PARSING_ERROR:case D.FRAG_DECRYPT_ERROR:case D.FRAG_LOAD_ERROR:case D.FRAG_LOAD_TIMEOUT:case D.KEY_LOAD_ERROR:case D.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(Pt.AUDIO,i);break;case D.AUDIO_TRACK_LOAD_ERROR:case D.AUDIO_TRACK_LOAD_TIMEOUT:case D.LEVEL_PARSING_ERROR:i.levelRetry||this.state!==ps.WAITING_TRACK||(null==(r=i.context)?void 0:r.type)!==Nt.AUDIO_TRACK||(this.state=ps.IDLE);break;case D.BUFFER_APPEND_ERROR:case D.BUFFER_FULL_ERROR:if(!i.parent||"audio"!==i.parent)return;if(i.details===D.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(i)&&(this.bufferedTrack=null,e.prototype.flushMainBuffer.call(this,0,Number.POSITIVE_INFINITY,"audio"));break;case D.INTERNAL_EXCEPTION:this.recoverWorkerError(i)}},i.onBufferFlushing=function(e,t){t.type!==X.VIDEO&&(this.flushing=!0)},i.onBufferFlushed=function(e,t){var i=t.type;if(i!==X.VIDEO){this.flushing=!1,this.bufferFlushed=!0,this.state===ps.ENDED&&(this.state=ps.IDLE);var r=this.mediaBuffer||this.media;r&&(this.afterBufferFlushed(r,i,Pt.AUDIO),this.tick())}},i._handleTransmuxComplete=function(e){var t,i="audio",r=this.hls,s=e.remuxResult,a=e.chunkMeta,o=this.getCurrentContext(a);if(o){var n=o.frag,h=o.part,A=o.level,d=A.details,c=s.audio,u=s.text,p=s.id3,g=s.initSegment;if(!this.fragContextChanged(n)&&d){if(this.state=ps.PARSING,this.switchingTrack&&c&&this.completeAudioSwitch(this.switchingTrack),null!=g&&g.tracks){var m=n.initSegment||n;this._bufferInitSegment(A,g.tracks,m,a),r.trigger(k.FRAG_PARSING_INIT_SEGMENT,{frag:m,id:i,tracks:g.tracks})}if(c){var y=c.startPTS,E=c.endPTS,C=c.startDTS,f=c.endDTS;h&&(h.elementaryStreams[X.AUDIO]={startPTS:y,endPTS:E,startDTS:C,endDTS:f}),n.setElementaryStreamInfo(X.AUDIO,y,E,C,f),this.bufferFragmentData(c,n,h,a)}if(null!=p&&null!=(t=p.samples)&&t.length){var I=l({id:i,frag:n,details:d},p);r.trigger(k.FRAG_PARSING_METADATA,I)}if(u){var w=l({id:i,frag:n,details:d},u);r.trigger(k.FRAG_PARSING_USERDATA,w)}}else this.fragmentTracker.removeFragment(n)}else this.resetWhenMissingContext(a)},i._bufferInitSegment=function(e,t,i,r){if(this.state===ps.PARSING&&(t.video&&delete t.video,t.audiovideo&&delete t.audiovideo,t.audio)){var s=t.audio;s.id="audio";var a=e.audioCodec;this.log("Init audio buffer, container:"+s.container+", codecs[level/parsed]=["+a+"/"+s.codec+"]"),a&&1===a.split(",").length&&(s.levelCodec=a),this.hls.trigger(k.BUFFER_CODECS,t);var o=s.initSegment;if(null!=o&&o.byteLength){var n={type:"audio",frag:i,part:null,chunkMeta:r,parent:i.type,data:o};this.hls.trigger(k.BUFFER_APPENDING,n)}this.tickImmediate()}},i.loadFragment=function(t,i,r){var s,a=this.fragmentTracker.getState(t);if(this.switchingTrack||a===Gr.NOT_LOADED||a===Gr.PARTIAL)if("initSegment"===t.sn)this._loadInitSegment(t,i);else if(null!=(s=i.details)&&s.live&&!this.initPTS[t.cc]){this.log("Waiting for video PTS in continuity counter "+t.cc+" of live stream before loading audio fragment "+t.sn+" of level "+this.trackId),this.state=ps.WAITING_INIT_PTS;var o=this.mainDetails;o&&o.fragments[0].start!==i.details.fragments[0].start&&$r(i.details,o)}else e.prototype.loadFragment.call(this,t,i,r);else this.clearTrackerIfNeeded(t)},i.flushAudioIfNeeded=function(t){var i=this.media,r=this.bufferedTrack,s=null==r?void 0:r.attrs,a=t.attrs;i&&s&&(s.CHANNELS!==a.CHANNELS||r.name!==t.name||r.lang!==t.lang)&&(this.log("Switching audio track : flushing all audio"),e.prototype.flushMainBuffer.call(this,0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null)},i.completeAudioSwitch=function(e){var t=this.hls;this.flushAudioIfNeeded(e),this.bufferedTrack=e,this.switchingTrack=null,t.trigger(k.AUDIO_TRACK_SWITCHED,p({},e))},t}(gs),go=function(e){function t(t){var i;return(i=e.call(this,t,"audio-track-controller")||this).tracks=[],i.groupIds=null,i.tracksInGroup=[],i.trackId=-1,i.currentTrack=null,i.selectDefaultTrack=!0,i.registerListeners(),i}A(t,e);var i=t.prototype;return i.registerListeners=function(){var e=this.hls;e.on(k.MANIFEST_LOADING,this.onManifestLoading,this),e.on(k.MANIFEST_PARSED,this.onManifestParsed,this),e.on(k.LEVEL_LOADING,this.onLevelLoading,this),e.on(k.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(k.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(k.ERROR,this.onError,this)},i.unregisterListeners=function(){var e=this.hls;e.off(k.MANIFEST_LOADING,this.onManifestLoading,this),e.off(k.MANIFEST_PARSED,this.onManifestParsed,this),e.off(k.LEVEL_LOADING,this.onLevelLoading,this),e.off(k.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(k.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(k.ERROR,this.onError,this)},i.destroy=function(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,e.prototype.destroy.call(this)},i.onManifestLoading=function(){this.tracks=[],this.tracksInGroup=[],this.groupIds=null,this.currentTrack=null,this.trackId=-1,this.selectDefaultTrack=!0},i.onManifestParsed=function(e,t){this.tracks=t.audioTracks||[]},i.onAudioTrackLoaded=function(e,t){var i=t.id,r=t.groupId,s=t.details,a=this.tracksInGroup[i];if(a&&a.groupId===r){var o=a.details;a.details=t.details,this.log("Audio track "+i+' "'+a.name+'" lang:'+a.lang+" group:"+r+" loaded ["+s.startSN+"-"+s.endSN+"]"),i===this.trackId&&this.playlistLoaded(i,t,o)}else this.warn("Audio track with id:"+i+" and group:"+r+" not found in active group "+(null==a?void 0:a.groupId))},i.onLevelLoading=function(e,t){this.switchLevel(t.level)},i.onLevelSwitching=function(e,t){this.switchLevel(t.level)},i.switchLevel=function(e){var t=this.hls.levels[e];if(t){var i=t.audioGroups||null,r=this.groupIds,s=this.currentTrack;if(!i||(null==r?void 0:r.length)!==(null==i?void 0:i.length)||null!=i&&i.some((function(e){return-1===(null==r?void 0:r.indexOf(e))}))){this.groupIds=i,this.trackId=-1,this.currentTrack=null;var a=this.tracks.filter((function(e){return!i||-1!==i.indexOf(e.groupId)}));if(a.length)this.selectDefaultTrack&&!a.some((function(e){return e.default}))&&(this.selectDefaultTrack=!1),a.forEach((function(e,t){e.id=t}));else if(!s&&!this.tracksInGroup.length)return;this.tracksInGroup=a;var o=this.hls.config.audioPreference;if(!s&&o){var n=Rr(o,a,Kr);if(n>-1)s=a[n];else{var l=Rr(o,this.tracks);s=this.tracks[l]}}var h=this.findTrackId(s);-1===h&&s&&(h=this.findTrackId(null));var A={audioTracks:a};this.log("Updating audio tracks, "+a.length+" track(s) found in group(s): "+(null==i?void 0:i.join(","))),this.hls.trigger(k.AUDIO_TRACKS_UPDATED,A);var d=this.trackId;if(-1!==h&&-1===d)this.setAudioTrack(h);else if(a.length&&-1===d){var c,u=new Error("No audio track selected for current audio group-ID(s): "+(null==(c=this.groupIds)?void 0:c.join(","))+" track count: "+a.length);this.warn(u.message),this.hls.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:u})}}else this.shouldReloadPlaylist(s)&&this.setAudioTrack(this.trackId)}},i.onError=function(e,t){!t.fatal&&t.context&&(t.context.type!==Nt.AUDIO_TRACK||t.context.id!==this.trackId||this.groupIds&&-1===this.groupIds.indexOf(t.context.groupId)||(this.requestScheduled=-1,this.checkRetry(t)))},i.setAudioOption=function(e){var t=this.hls;if(t.config.audioPreference=e,e){var i=this.allAudioTracks;if(this.selectDefaultTrack=!1,i.length){var r=this.currentTrack;if(r&&Tr(e,r,Kr))return r;var s=Rr(e,this.tracksInGroup,Kr);if(s>-1){var a=this.tracksInGroup[s];return this.setAudioTrack(s),a}if(r){var o=t.loadLevel;-1===o&&(o=t.firstAutoLevel);var n=qr(e,t.levels,i,o,Kr);if(-1===n)return null;t.nextLoadLevel=n}if(e.channels||e.audioCodec){var l=Rr(e,i);if(l>-1)return i[l]}}}return null},i.setAudioTrack=function(e){var t=this.tracksInGroup;if(e<0||e>=t.length)this.warn("Invalid audio track id: "+e);else{this.clearTimer(),this.selectDefaultTrack=!1;var i=this.currentTrack,r=t[e],s=r.details&&!r.details.live;if(!(e===this.trackId&&r===i&&s||(this.log("Switching to audio-track "+e+' "'+r.name+'" lang:'+r.lang+" group:"+r.groupId+" channels:"+r.channels),this.trackId=e,this.currentTrack=r,this.hls.trigger(k.AUDIO_TRACK_SWITCHING,p({},r)),s))){var a=this.switchParams(r.url,null==i?void 0:i.details,r.details);this.loadPlaylist(a)}}},i.findTrackId=function(e){for(var t=this.tracksInGroup,i=0;i<t.length;i++){var r=t[i];if((!this.selectDefaultTrack||r.default)&&(!e||Tr(e,r,Kr)))return i}if(e){for(var s=e.name,a=e.lang,o=e.assocLang,n=e.characteristics,l=e.audioCodec,h=e.channels,A=0;A<t.length;A++)if(Tr({name:s,lang:a,assocLang:o,characteristics:n,audioCodec:l,channels:h},t[A],Kr))return A;for(var d=0;d<t.length;d++){var c=t[d];if(Ao(e.attrs,c.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return d}for(var u=0;u<t.length;u++){var p=t[u];if(Ao(e.attrs,p.attrs,["LANGUAGE"]))return u}}return-1},i.loadPlaylist=function(t){var i=this.currentTrack;if(this.shouldLoadPlaylist(i)&&i){e.prototype.loadPlaylist.call(this);var r=i.id,s=i.groupId,a=i.url;if(t)try{a=t.addDirectives(a)}catch(e){this.warn("Could not construct new URL with HLS Delivery Directives: "+e)}this.log("loading audio-track playlist "+r+' "'+i.name+'" lang:'+i.lang+" group:"+s),this.clearTimer(),this.hls.trigger(k.AUDIO_TRACK_LOADING,{url:a,id:r,groupId:s,deliveryDirectives:t||null})}},a(t,[{key:"allAudioTracks",get:function(){return this.tracks}},{key:"audioTracks",get:function(){return this.tracksInGroup}},{key:"audioTrack",get:function(){return this.trackId},set:function(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}}])}(yr),mo=500,yo=function(e){function t(t,i,r){var s;return(s=e.call(this,t,i,r,"subtitle-stream-controller",Pt.SUBTITLE)||this).currentTrackId=-1,s.tracksBuffered=[],s.mainDetails=null,s.registerListeners(),s}A(t,e);var i=t.prototype;return i.onHandlerDestroying=function(){this.unregisterListeners(),e.prototype.onHandlerDestroying.call(this),this.mainDetails=null},i.registerListeners=function(){e.prototype.registerListeners.call(this);var t=this.hls;t.on(k.LEVEL_LOADED,this.onLevelLoaded,this),t.on(k.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),t.on(k.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),t.on(k.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),t.on(k.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),t.on(k.BUFFER_FLUSHING,this.onBufferFlushing,this),t.on(k.FRAG_BUFFERED,this.onFragBuffered,this)},i.unregisterListeners=function(){e.prototype.unregisterListeners.call(this);var t=this.hls;t.off(k.LEVEL_LOADED,this.onLevelLoaded,this),t.off(k.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),t.off(k.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),t.off(k.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),t.off(k.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),t.off(k.BUFFER_FLUSHING,this.onBufferFlushing,this),t.off(k.FRAG_BUFFERED,this.onFragBuffered,this)},i.startLoad=function(e){this.stopLoad(),this.state=ps.IDLE,this.setInterval(mo),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()},i.onManifestLoading=function(){e.prototype.onManifestLoading.call(this),this.mainDetails=null},i.onMediaDetaching=function(){this.tracksBuffered=[],e.prototype.onMediaDetaching.call(this)},i.onLevelLoaded=function(e,t){this.mainDetails=t.details},i.onSubtitleFragProcessed=function(e,t){var i=t.frag,r=t.success;if("initSegment"!==i.sn&&(this.fragPrevious=i),this.state=ps.IDLE,r){var s=this.tracksBuffered[this.currentTrackId];if(s){for(var a,o=i.start,n=0;n<s.length;n++)if(o>=s[n].start&&o<=s[n].end){a=s[n];break}var l=i.start+i.duration;a?a.end=l:(a={start:o,end:l},s.push(a)),this.fragmentTracker.fragBuffered(i),this.fragBufferedComplete(i,null)}}},i.onBufferFlushing=function(e,t){var i=t.startOffset,r=t.endOffset;if(0===i&&r!==Number.POSITIVE_INFINITY){var s=r-1;if(s<=0)return;t.endOffsetSubtitles=Math.max(0,s),this.tracksBuffered.forEach((function(e){for(var t=0;t<e.length;)if(e[t].end<=s)e.shift();else{if(!(e[t].start<s))break;e[t].start=s,t++}})),this.fragmentTracker.removeFragmentsInRange(i,s,Pt.SUBTITLE)}},i.onFragBuffered=function(e,t){var i;this.loadedmetadata||t.frag.type!==Pt.MAIN||null!=(i=this.media)&&i.buffered.length&&(this.loadedmetadata=!0)},i.onError=function(e,t){var i=t.frag;(null==i?void 0:i.type)===Pt.SUBTITLE&&(t.details===D.FRAG_GAP&&this.fragmentTracker.fragBuffered(i,!0),this.fragCurrent&&this.fragCurrent.abortRequests(),this.state!==ps.STOPPED&&(this.state=ps.IDLE))},i.onSubtitleTracksUpdated=function(e,t){var i=this,r=t.subtitleTracks;this.levels&&ho(this.levels,r)?this.levels=r.map((function(e){return new Ui(e)})):(this.tracksBuffered=[],this.levels=r.map((function(e){var t=new Ui(e);return i.tracksBuffered[t.id]=[],t})),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,Pt.SUBTITLE),this.fragPrevious=null,this.mediaBuffer=null)},i.onSubtitleTrackSwitch=function(e,t){var i;if(this.currentTrackId=t.id,null!=(i=this.levels)&&i.length&&-1!==this.currentTrackId){var r=this.levels[this.currentTrackId];null!=r&&r.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,r&&this.state!==ps.STOPPED&&this.setInterval(mo)}else this.clearInterval()},i.onSubtitleTrackLoaded=function(e,t){var i,r=this.currentTrackId,s=this.levels,a=t.details,o=t.id;if(s){var n=s[o];if(!(o>=s.length)&&n){this.log("Subtitle track "+o+" loaded ["+a.startSN+","+a.endSN+"]"+(a.lastPartSn?"[part-"+a.lastPartSn+"-"+a.lastPartIndex+"]":"")+",duration:"+a.totalduration),this.mediaBuffer=this.mediaBufferTimeRanges;var l=0;if(a.live||null!=(i=n.details)&&i.live){var h=this.mainDetails;if(a.deltaUpdateFailed||!h)return;var A,d=h.fragments[0];n.details?0===(l=this.alignPlaylists(a,n.details,null==(A=this.levelLastLoaded)?void 0:A.details))&&d&&Wi(a,l=d.start):a.hasProgramDateTime&&h.hasProgramDateTime?($r(a,h),l=a.fragments[0].start):d&&Wi(a,l=d.start)}n.details=a,this.levelLastLoaded=n,o===r&&(this.startFragRequested||!this.mainDetails&&a.live||this.setStartPosition(this.mainDetails||a,l),this.tick(),a.live&&!this.fragCurrent&&this.media&&this.state===ps.IDLE&&(nr(null,a.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),n.details=void 0)))}}else this.warn("Subtitle tracks were reset while loading level "+o)},i._handleFragmentLoadComplete=function(e){var t=this,i=e.frag,r=e.payload,s=i.decryptdata,a=this.hls;if(!this.fragContextChanged(i)&&r&&r.byteLength>0&&null!=s&&s.key&&s.iv&&he(s.method)){var o=performance.now();this.decrypter.decrypt(new Uint8Array(r),s.key.buffer,s.iv.buffer,Ae(s.method)).catch((function(e){throw a.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.FRAG_DECRYPT_ERROR,fatal:!1,error:e,reason:e.message,frag:i}),e})).then((function(e){var t=performance.now();a.trigger(k.FRAG_DECRYPTED,{frag:i,payload:e,stats:{tstart:o,tdecrypt:t}})})).catch((function(e){t.warn(e.name+": "+e.message),t.state=ps.IDLE}))}},i.doTick=function(){if(this.media){if(this.state===ps.IDLE){var e=this.currentTrackId,t=this.levels,i=null==t?void 0:t[e];if(!i||!t.length||!i.details)return;var r=this.config,s=this.getLoadPosition(),a=Pr.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],s,r.maxBufferHole),o=a.end,n=a.len,l=i.details;if(n>this.hls.maxBufferLength+l.levelTargetDuration)return;var h=l.fragments,A=h.length,d=l.edge,c=null,u=this.fragPrevious;if(o<d){var p=r.maxFragLookUpTolerance,g=o>d-p?0:p;!(c=nr(u,h,Math.max(h[0].start,o),g))&&u&&u.start<h[0].start&&(c=h[0])}else c=h[A-1];if(!c)return;if("initSegment"!==(c=this.mapToInitFragWhenRequired(c)).sn){var m=h[c.sn-l.startSN-1];m&&m.cc===c.cc&&this.fragmentTracker.getState(m)===Gr.NOT_LOADED&&(c=m)}this.fragmentTracker.getState(c)===Gr.NOT_LOADED&&this.loadFragment(c,i,o)}}else this.state=ps.IDLE},i.loadFragment=function(t,i,r){"initSegment"===t.sn?this._loadInitSegment(t,i):e.prototype.loadFragment.call(this,t,i,r)},a(t,[{key:"mediaBufferTimeRanges",get:function(){return new Eo(this.tracksBuffered[this.currentTrackId]||[])}}])}(gs),Eo=function(e){this.buffered=void 0;var t=function(t,i,r){if((i>>>=0)>r-1)throw new DOMException("Failed to execute '"+t+"' on 'TimeRanges': The index provided ("+i+") is greater than the maximum bound ("+r+")");return e[i][t]};this.buffered={get length(){return e.length},end:function(i){return t("end",i,e.length)},start:function(i){return t("start",i,e.length)}}},Co=function(e){function t(t){var i;return(i=e.call(this,t,"subtitle-track-controller")||this).media=null,i.tracks=[],i.groupIds=null,i.tracksInGroup=[],i.trackId=-1,i.currentTrack=null,i.selectDefaultTrack=!0,i.queuedDefaultTrack=-1,i.useTextTrackPolling=!1,i.subtitlePollingInterval=-1,i._subtitleDisplay=!0,i.asyncPollTrackChange=function(){return i.pollTrackChange(0)},i.onTextTracksChanged=function(){if(i.useTextTrackPolling||self.clearInterval(i.subtitlePollingInterval),i.media&&i.hls.config.renderTextTracksNatively){for(var e=null,t=ei(i.media.textTracks),r=0;r<t.length;r++)if("hidden"===t[r].mode)e=t[r];else if("showing"===t[r].mode){e=t[r];break}var s=i.findTrackForTextTrack(e);i.subtitleTrack!==s&&i.setSubtitleTrack(s)}},i.registerListeners(),i}A(t,e);var i=t.prototype;return i.destroy=function(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,this.onTextTracksChanged=this.asyncPollTrackChange=null,e.prototype.destroy.call(this)},i.registerListeners=function(){var e=this.hls;e.on(k.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(k.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(k.MANIFEST_LOADING,this.onManifestLoading,this),e.on(k.MANIFEST_PARSED,this.onManifestParsed,this),e.on(k.LEVEL_LOADING,this.onLevelLoading,this),e.on(k.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(k.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(k.ERROR,this.onError,this)},i.unregisterListeners=function(){var e=this.hls;e.off(k.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(k.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(k.MANIFEST_LOADING,this.onManifestLoading,this),e.off(k.MANIFEST_PARSED,this.onManifestParsed,this),e.off(k.LEVEL_LOADING,this.onLevelLoading,this),e.off(k.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(k.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(k.ERROR,this.onError,this)},i.onMediaAttached=function(e,t){this.media=t.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))},i.pollTrackChange=function(e){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.onTextTracksChanged,e)},i.onMediaDetaching=function(){this.media&&(self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||this.media.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),ei(this.media.textTracks).forEach((function(e){Ht(e)})),this.subtitleTrack=-1,this.media=null)},i.onManifestLoading=function(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0},i.onManifestParsed=function(e,t){this.tracks=t.subtitleTracks},i.onSubtitleTrackLoaded=function(e,t){var i=t.id,r=t.groupId,s=t.details,a=this.tracksInGroup[i];if(a&&a.groupId===r){var o=a.details;a.details=t.details,this.log("Subtitle track "+i+' "'+a.name+'" lang:'+a.lang+" group:"+r+" loaded ["+s.startSN+"-"+s.endSN+"]"),i===this.trackId&&this.playlistLoaded(i,t,o)}else this.warn("Subtitle track with id:"+i+" and group:"+r+" not found in active group "+(null==a?void 0:a.groupId))},i.onLevelLoading=function(e,t){this.switchLevel(t.level)},i.onLevelSwitching=function(e,t){this.switchLevel(t.level)},i.switchLevel=function(e){var t=this.hls.levels[e];if(t){var i=t.subtitleGroups||null,r=this.groupIds,s=this.currentTrack;if(!i||(null==r?void 0:r.length)!==(null==i?void 0:i.length)||null!=i&&i.some((function(e){return-1===(null==r?void 0:r.indexOf(e))}))){this.groupIds=i,this.trackId=-1,this.currentTrack=null;var a=this.tracks.filter((function(e){return!i||-1!==i.indexOf(e.groupId)}));if(a.length)this.selectDefaultTrack&&!a.some((function(e){return e.default}))&&(this.selectDefaultTrack=!1),a.forEach((function(e,t){e.id=t}));else if(!s&&!this.tracksInGroup.length)return;this.tracksInGroup=a;var o=this.hls.config.subtitlePreference;if(!s&&o){this.selectDefaultTrack=!1;var n=Rr(o,a);if(n>-1)s=a[n];else{var l=Rr(o,this.tracks);s=this.tracks[l]}}var h=this.findTrackId(s);-1===h&&s&&(h=this.findTrackId(null));var A={subtitleTracks:a};this.log("Updating subtitle tracks, "+a.length+' track(s) found in "'+(null==i?void 0:i.join(","))+'" group-id'),this.hls.trigger(k.SUBTITLE_TRACKS_UPDATED,A),-1!==h&&-1===this.trackId&&this.setSubtitleTrack(h)}else this.shouldReloadPlaylist(s)&&this.setSubtitleTrack(this.trackId)}},i.findTrackId=function(e){for(var t=this.tracksInGroup,i=this.selectDefaultTrack,r=0;r<t.length;r++){var s=t[r];if((!i||s.default)&&(i||e)&&(!e||Tr(s,e)))return r}if(e){for(var a=0;a<t.length;a++){var o=t[a];if(Ao(e.attrs,o.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return a}for(var n=0;n<t.length;n++){var l=t[n];if(Ao(e.attrs,l.attrs,["LANGUAGE"]))return n}}return-1},i.findTrackForTextTrack=function(e){if(e)for(var t=this.tracksInGroup,i=0;i<t.length;i++)if(co(t[i],e))return i;return-1},i.onError=function(e,t){!t.fatal&&t.context&&(t.context.type!==Nt.SUBTITLE_TRACK||t.context.id!==this.trackId||this.groupIds&&-1===this.groupIds.indexOf(t.context.groupId)||this.checkRetry(t))},i.setSubtitleOption=function(e){if(this.hls.config.subtitlePreference=e,e){var t=this.allSubtitleTracks;if(this.selectDefaultTrack=!1,t.length){var i=this.currentTrack;if(i&&Tr(e,i))return i;var r=Rr(e,this.tracksInGroup);if(r>-1){var s=this.tracksInGroup[r];return this.setSubtitleTrack(r),s}if(i)return null;var a=Rr(e,t);if(a>-1)return t[a]}}return null},i.loadPlaylist=function(t){e.prototype.loadPlaylist.call(this);var i=this.currentTrack;if(this.shouldLoadPlaylist(i)&&i){var r=i.id,s=i.groupId,a=i.url;if(t)try{a=t.addDirectives(a)}catch(e){this.warn("Could not construct new URL with HLS Delivery Directives: "+e)}this.log("Loading subtitle playlist for id "+r),this.hls.trigger(k.SUBTITLE_TRACK_LOADING,{url:a,id:r,groupId:s,deliveryDirectives:t||null})}},i.toggleTrackModes=function(){var e=this.media;if(e){var t,i=ei(e.textTracks),r=this.currentTrack;if(r&&((t=i.filter((function(e){return co(r,e)}))[0])||this.warn('Unable to find subtitle TextTrack with name "'+r.name+'" and language "'+r.lang+'"')),[].slice.call(i).forEach((function(e){"disabled"!==e.mode&&e!==t&&(e.mode="disabled")})),t){var s=this.subtitleDisplay?"showing":"hidden";t.mode!==s&&(t.mode=s)}}},i.setSubtitleTrack=function(e){var t=this.tracksInGroup;if(this.media)if(e<-1||e>=t.length||!S(e))this.warn("Invalid subtitle track id: "+e);else{this.clearTimer(),this.selectDefaultTrack=!1;var i=this.currentTrack,r=t[e]||null;if(this.trackId=e,this.currentTrack=r,this.toggleTrackModes(),r){var s=!!r.details&&!r.details.live;if(e!==this.trackId||r!==i||!s){this.log("Switching to subtitle-track "+e+(r?' "'+r.name+'" lang:'+r.lang+" group:"+r.groupId:""));var a=r.id,o=r.groupId,n=void 0===o?"":o,l=r.name,h=r.type,A=r.url;this.hls.trigger(k.SUBTITLE_TRACK_SWITCH,{id:a,groupId:n,name:l,type:h,url:A});var d=this.switchParams(r.url,null==i?void 0:i.details,r.details);this.loadPlaylist(d)}}else this.hls.trigger(k.SUBTITLE_TRACK_SWITCH,{id:e})}else this.queuedDefaultTrack=e},a(t,[{key:"subtitleDisplay",get:function(){return this._subtitleDisplay},set:function(e){this._subtitleDisplay=e,this.trackId>-1&&this.toggleTrackModes()}},{key:"allSubtitleTracks",get:function(){return this.tracks}},{key:"subtitleTracks",get:function(){return this.tracksInGroup}},{key:"subtitleTrack",get:function(){return this.trackId},set:function(e){this.selectDefaultTrack=!1,this.setSubtitleTrack(e)}}])}(yr),fo=function(){function e(e){this.buffers=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.buffers=e}var t=e.prototype;return t.append=function(e,t,i){var r=this.queues[t];r.push(e),1!==r.length||i||this.executeNext(t)},t.appendBlocker=function(e){var t=this;return new Promise((function(i){var r={execute:i,onStart:function(){},onComplete:function(){},onError:function(){}};t.append(r,e)}))},t.unblockAudio=function(e){this.queues.audio[0]===e&&this.shiftAndExecuteNext("audio")},t.executeNext=function(e){var t=this.queues[e];if(t.length){var i=t[0];try{i.execute()}catch(t){F.warn('[buffer-operation-queue]: Exception executing "'+e+'" SourceBuffer operation: '+t),i.onError(t);var r=this.buffers[e];null!=r&&r.updating||this.shiftAndExecuteNext(e)}}},t.shiftAndExecuteNext=function(e){this.queues[e].shift(),this.executeNext(e)},t.current=function(e){return this.queues[e][0]},e}(),Io=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/,wo=function(e){function t(t,i){var r;return(r=e.call(this,"buffer-controller",t.logger)||this).details=null,r._objectUrl=null,r.operationQueue=void 0,r.listeners=void 0,r.hls=void 0,r.fragmentTracker=void 0,r.bufferCodecEventsExpected=0,r._bufferCodecEventsTotal=0,r.media=null,r.mediaSource=null,r.lastMpegAudioChunk=null,r.blockedAudioAppend=null,r.lastVideoAppendEnd=0,r.appendSource=void 0,r.appendErrors={audio:0,video:0,audiovideo:0},r.tracks={},r.pendingTracks={},r.sourceBuffer=void 0,r._onEndStreaming=function(e){r.hls&&r.hls.pauseBuffering()},r._onStartStreaming=function(e){r.hls&&r.hls.resumeBuffering()},r._onMediaSourceOpen=function(){var e=r,t=e.media,i=e.mediaSource;if(r.log("Media source opened"),t){t.removeEventListener("emptied",r._onMediaEmptied);var s=r.getDurationAndRange();s&&r.updateMediaSource(s),r.hls.trigger(k.MEDIA_ATTACHED,{media:t,mediaSource:i})}i&&i.removeEventListener("sourceopen",r._onMediaSourceOpen),r.checkPendingTracks()},r._onMediaSourceClose=function(){r.log("Media source closed")},r._onMediaSourceEnded=function(){r.log("Media source ended")},r._onMediaEmptied=function(){var e=r,t=e.mediaSrc,i=e._objectUrl;t!==i&&r.error("Media element src was set while attaching MediaSource ("+i+" > "+t+")")},r.hls=t,r.fragmentTracker=i,r.appendSource=ct(dt(t.config.preferManagedMediaSource)),r._initSourceBuffer(),r.registerListeners(),r}A(t,e);var i=t.prototype;return i.hasSourceTypes=function(){return this.getSourceBufferTypes().length>0||Object.keys(this.pendingTracks).length>0},i.destroy=function(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=null,this.hls=this.fragmentTracker=null,this._onMediaSourceOpen=this._onMediaSourceClose=null,this._onMediaSourceEnded=null,this._onStartStreaming=this._onEndStreaming=null},i.registerListeners=function(){var e=this.hls;e.on(k.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(k.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(k.MANIFEST_LOADING,this.onManifestLoading,this),e.on(k.MANIFEST_PARSED,this.onManifestParsed,this),e.on(k.BUFFER_RESET,this.onBufferReset,this),e.on(k.BUFFER_APPENDING,this.onBufferAppending,this),e.on(k.BUFFER_CODECS,this.onBufferCodecs,this),e.on(k.BUFFER_EOS,this.onBufferEos,this),e.on(k.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(k.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(k.FRAG_PARSED,this.onFragParsed,this),e.on(k.FRAG_CHANGED,this.onFragChanged,this),e.on(k.ERROR,this.onError,this)},i.unregisterListeners=function(){var e=this.hls;e.off(k.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(k.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(k.MANIFEST_LOADING,this.onManifestLoading,this),e.off(k.MANIFEST_PARSED,this.onManifestParsed,this),e.off(k.BUFFER_RESET,this.onBufferReset,this),e.off(k.BUFFER_APPENDING,this.onBufferAppending,this),e.off(k.BUFFER_CODECS,this.onBufferCodecs,this),e.off(k.BUFFER_EOS,this.onBufferEos,this),e.off(k.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(k.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(k.FRAG_PARSED,this.onFragParsed,this),e.off(k.FRAG_CHANGED,this.onFragChanged,this),e.off(k.ERROR,this.onError,this)},i._initSourceBuffer=function(){this.sourceBuffer={},this.operationQueue=new fo(this.sourceBuffer),this.listeners={audio:[],video:[],audiovideo:[]},this.resetAppendErrors(),this.lastMpegAudioChunk=null,this.blockedAudioAppend=null,this.lastVideoAppendEnd=0},i.onManifestLoading=function(){this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=0,this.details=null},i.onManifestParsed=function(e,t){var i=2;(t.audio&&!t.video||!t.altAudio)&&(i=1),this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=i,this.log(this.bufferCodecEventsExpected+" bufferCodec event(s) expected")},i.onMediaAttaching=function(e,t){var i=this.media=t.media,r=dt(this.appendSource);if(i&&r){var s,a=this.mediaSource=new r;this.log("created media source: "+(null==(s=a.constructor)?void 0:s.name)),a.addEventListener("sourceopen",this._onMediaSourceOpen),a.addEventListener("sourceended",this._onMediaSourceEnded),a.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(a.addEventListener("startstreaming",this._onStartStreaming),a.addEventListener("endstreaming",this._onEndStreaming));var o=this._objectUrl=self.URL.createObjectURL(a);if(this.appendSource)try{i.removeAttribute("src");var n=self.ManagedMediaSource;i.disableRemotePlayback=i.disableRemotePlayback||n&&a instanceof n,So(i),Mo(i,o),i.load()}catch(e){i.src=o}else i.src=o;i.addEventListener("emptied",this._onMediaEmptied)}},i.onMediaDetaching=function(){var e=this.media,t=this.mediaSource,i=this._objectUrl;if(t){if(this.log("media source detaching"),"open"===t.readyState)try{t.endOfStream()}catch(e){this.warn("onMediaDetaching: "+e.message+" while calling endOfStream")}this.onBufferReset(),t.removeEventListener("sourceopen",this._onMediaSourceOpen),t.removeEventListener("sourceended",this._onMediaSourceEnded),t.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(t.removeEventListener("startstreaming",this._onStartStreaming),t.removeEventListener("endstreaming",this._onEndStreaming)),this.mediaSource=null,this._objectUrl=null}e&&(e.removeEventListener("emptied",this._onMediaEmptied),i&&self.URL.revokeObjectURL(i),this.mediaSrc===i?(e.removeAttribute("src"),this.appendSource&&So(e),e.load()):this.warn("media|source.src was changed by a third party - skip cleanup"),this.media=null),this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={},this.hls.trigger(k.MEDIA_DETACHED,void 0)},i.onBufferReset=function(){var e=this;this.getSourceBufferTypes().forEach((function(t){e.resetBuffer(t)})),this._initSourceBuffer(),this.hls.resumeBuffering()},i.resetBuffer=function(e){var t=this.sourceBuffer[e];try{var i;t&&(this.removeBufferListeners(e),this.sourceBuffer[e]=void 0,null!=(i=this.mediaSource)&&i.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(t))}catch(t){this.warn("onBufferReset "+e,t)}},i.onBufferCodecs=function(e,t){var i=this,r=this.getSourceBufferTypes().length,s=Object.keys(t);if(s.forEach((function(e){if(r){var s,a=i.tracks[e];if(a&&"function"==typeof(null==(s=a.buffer)?void 0:s.changeType)){var o,n=t[e],l=n.id,h=n.codec,A=n.levelCodec,d=n.container,c=n.metadata,u=Mt(a.codec,a.levelCodec),p=null==u?void 0:u.replace(Io,"$1"),g=Mt(h,A),m=null==(o=g)?void 0:o.replace(Io,"$1");if(g&&p!==m){"audio"===e.slice(0,5)&&(g=St(g,i.appendSource));var y=d+";codecs="+g;i.appendChangeType(e,y),i.log("switching codec "+u+" to "+g),i.tracks[e]={buffer:a.buffer,codec:h,container:d,levelCodec:A,metadata:c,id:l}}}}else i.pendingTracks[e]=t[e]})),!r){var a=Math.max(this.bufferCodecEventsExpected-1,0);this.bufferCodecEventsExpected!==a&&(this.log(a+" bufferCodec event(s) expected "+s.join(",")),this.bufferCodecEventsExpected=a),this.mediaSource&&"open"===this.mediaSource.readyState&&this.checkPendingTracks()}},i.appendChangeType=function(e,t){var i=this,r=this.operationQueue,s={execute:function(){var s=i.sourceBuffer[e];s&&(i.log("changing "+e+" sourceBuffer type to "+t),s.changeType(t)),r.shiftAndExecuteNext(e)},onStart:function(){},onComplete:function(){},onError:function(t){i.warn("Failed to change "+e+" SourceBuffer type",t)}};r.append(s,e,!!this.pendingTracks[e])},i.blockAudio=function(e){var t,i=this,r=e.start,s=r+.05*e.duration;if(!0!==(null==(t=this.fragmentTracker.getAppendedFrag(r,Pt.MAIN))?void 0:t.gap)){var a={execute:function(){var e;(i.lastVideoAppendEnd>s||i.sourceBuffer.video&&Pr.isBuffered(i.sourceBuffer.video,s)||!0===(null==(e=i.fragmentTracker.getAppendedFrag(s,Pt.MAIN))?void 0:e.gap))&&(i.blockedAudioAppend=null,i.operationQueue.shiftAndExecuteNext("audio"))},onStart:function(){},onComplete:function(){},onError:function(){}};this.blockedAudioAppend={op:a,frag:e},this.operationQueue.append(a,"audio",!0)}},i.unblockAudio=function(){var e=this.blockedAudioAppend;e&&(this.blockedAudioAppend=null,this.operationQueue.unblockAudio(e.op))},i.onBufferAppending=function(e,t){var i=this,r=this.operationQueue,s=this.tracks,a=t.data,o=t.type,n=t.parent,l=t.frag,h=t.part,A=t.chunkMeta,d=A.buffering[o],c=l.sn,u=self.performance.now();d.start=u;var p=l.stats.buffering,g=h?h.stats.buffering:null;0===p.start&&(p.start=u),g&&0===g.start&&(g.start=u);var m=s.audio,y=!1;"audio"===o&&"audio/mpeg"===(null==m?void 0:m.container)&&(y=!this.lastMpegAudioChunk||1===A.id||this.lastMpegAudioChunk.sn!==A.sn,this.lastMpegAudioChunk=A);var E=this.sourceBuffer.video;if(E&&"initSegment"!==c){var C=h||l,f=this.blockedAudioAppend;if("audio"!==o||"main"===n||this.blockedAudioAppend){if("video"===o){var I=C.end;if(f){var w=f.frag.start;(I>w||I<this.lastVideoAppendEnd||Pr.isBuffered(E,w))&&this.unblockAudio()}this.lastVideoAppendEnd=I}}else{var S=C.start+.05*C.duration,M=E.buffered,v=this.operationQueue.current("video");M.length||v?!v&&!Pr.isBuffered(E,S)&&this.lastVideoAppendEnd<S&&this.blockAudio(C):this.blockAudio(C)}}var b=(h||l).start,Q={execute:function(){if(d.executeStart=self.performance.now(),y){var e=i.sourceBuffer[o];if(e){var t=b-e.timestampOffset;Math.abs(t)>=.1&&(i.log("Updating audio SourceBuffer timestampOffset to "+b+" (delta: "+t+") sn: "+c+")"),e.timestampOffset=b)}}i.appendExecutor(a,o)},onStart:function(){},onComplete:function(){var e=self.performance.now();d.executeEnd=d.end=e,0===p.first&&(p.first=e),g&&0===g.first&&(g.first=e);var t=i.sourceBuffer,r={};for(var s in t)r[s]=Pr.getBuffered(t[s]);i.appendErrors[o]=0,"audio"===o||"video"===o?i.appendErrors.audiovideo=0:(i.appendErrors.audio=0,i.appendErrors.video=0),i.hls.trigger(k.BUFFER_APPENDED,{type:o,frag:l,part:h,chunkMeta:A,parent:l.type,timeRanges:r})},onError:function(e){var t={type:B.MEDIA_ERROR,parent:l.type,details:D.BUFFER_APPEND_ERROR,sourceBufferName:o,frag:l,part:h,chunkMeta:A,error:e,err:e,fatal:!1};if(e.code===DOMException.QUOTA_EXCEEDED_ERR)t.details=D.BUFFER_FULL_ERROR;else{var r=++i.appendErrors[o];t.details=D.BUFFER_APPEND_ERROR,i.warn("Failed "+r+"/"+i.hls.config.appendErrorMaxRetry+' times to append segment in "'+o+'" sourceBuffer'),r>=i.hls.config.appendErrorMaxRetry&&(t.fatal=!0)}i.hls.trigger(k.ERROR,t)}};r.append(Q,o,!!this.pendingTracks[o])},i.getFlushOp=function(e,t,i){var r=this;return{execute:function(){r.removeExecutor(e,t,i)},onStart:function(){},onComplete:function(){r.hls.trigger(k.BUFFER_FLUSHED,{type:e})},onError:function(t){r.warn("Failed to remove from "+e+" SourceBuffer",t)}}},i.onBufferFlushing=function(e,t){var i=this,r=this.operationQueue,s=t.type,a=t.startOffset,o=t.endOffset;s?r.append(this.getFlushOp(s,a,o),s):this.getSourceBufferTypes().forEach((function(e){r.append(i.getFlushOp(e,a,o),e)}))},i.onFragParsed=function(e,t){var i=this,r=t.frag,s=t.part,a=[],o=s?s.elementaryStreams:r.elementaryStreams;o[X.AUDIOVIDEO]?a.push("audiovideo"):(o[X.AUDIO]&&a.push("audio"),o[X.VIDEO]&&a.push("video"));var n=function(){var e=self.performance.now();r.stats.buffering.end=e,s&&(s.stats.buffering.end=e);var t=s?s.stats:r.stats;i.hls.trigger(k.FRAG_BUFFERED,{frag:r,part:s,stats:t,id:r.type})};0===a.length&&this.warn("Fragments must have at least one ElementaryStreamType set. type: "+r.type+" level: "+r.level+" sn: "+r.sn),this.blockBuffers(n,a)},i.onFragChanged=function(e,t){this.trimBuffers()},i.onBufferEos=function(e,t){var i=this;"video"===t.type&&this.unblockAudio(),this.getSourceBufferTypes().reduce((function(e,r){var s=i.sourceBuffer[r];return!s||t.type&&t.type!==r||(s.ending=!0,s.ended||(s.ended=!0,i.log(r+" sourceBuffer now EOS"))),e&&!(s&&!s.ended)}),!0)&&(this.log("Queueing mediaSource.endOfStream()"),this.blockBuffers((function(){i.getSourceBufferTypes().forEach((function(e){var t=i.sourceBuffer[e];t&&(t.ending=!1)}));var e=i.mediaSource;e&&"open"===e.readyState?(i.log("Calling mediaSource.endOfStream()"),e.endOfStream()):e&&i.log("Could not call mediaSource.endOfStream(). mediaSource.readyState: "+e.readyState)})))},i.onLevelUpdated=function(e,t){var i=this,r=t.details;if(r.fragments.length){this.details=r;var s=this.getDurationAndRange();s&&(this.getSourceBufferTypes().length?this.blockBuffers((function(){return i.updateMediaSource(s)})):this.updateMediaSource(s))}},i.onError=function(e,t){if(t.details===D.BUFFER_APPEND_ERROR&&t.frag){var i,r=null==(i=t.errorAction)?void 0:i.nextAutoLevel;S(r)&&r!==t.frag.level&&this.resetAppendErrors()}},i.resetAppendErrors=function(){this.appendErrors={audio:0,video:0,audiovideo:0}},i.trimBuffers=function(){var e=this.hls,t=this.details,i=this.media;if(i&&null!==t&&this.getSourceBufferTypes().length){var r=e.config,s=i.currentTime,a=t.levelTargetDuration,o=t.live&&null!==r.liveBackBufferLength?r.liveBackBufferLength:r.backBufferLength;if(S(o)&&o>0){var n=Math.max(o,a),l=Math.floor(s/a)*a-n;this.flushBackBuffer(s,a,l)}if(S(r.frontBufferFlushThreshold)&&r.frontBufferFlushThreshold>0){var h=Math.max(r.maxBufferLength,r.frontBufferFlushThreshold),A=Math.max(h,a),d=Math.floor(s/a)*a+A;this.flushFrontBuffer(s,a,d)}}},i.flushBackBuffer=function(e,t,i){var r=this,s=this.details,a=this.sourceBuffer;this.getSourceBufferTypes().forEach((function(o){var n=a[o];if(n){var l=Pr.getBuffered(n);if(l.length>0&&i>l.start(0)){if(r.hls.trigger(k.BACK_BUFFER_REACHED,{bufferEnd:i}),null!=s&&s.live)r.hls.trigger(k.LIVE_BACK_BUFFER_REACHED,{bufferEnd:i});else if(n.ended&&l.end(l.length-1)-e<2*t)return void r.log("Cannot flush "+o+" back buffer while SourceBuffer is in ended state");r.hls.trigger(k.BUFFER_FLUSHING,{startOffset:0,endOffset:i,type:o})}}}))},i.flushFrontBuffer=function(e,t,i){var r=this,s=this.sourceBuffer;this.getSourceBufferTypes().forEach((function(a){var o=s[a];if(o){var n=Pr.getBuffered(o),l=n.length;if(l<2)return;var h=n.start(l-1),A=n.end(l-1);if(i>h||e>=h&&e<=A)return;if(o.ended&&e-A<2*t)return void r.log("Cannot flush "+a+" front buffer while SourceBuffer is in ended state");r.hls.trigger(k.BUFFER_FLUSHING,{startOffset:h,endOffset:1/0,type:a})}}))},i.getDurationAndRange=function(){if(!this.details||!this.media||!this.mediaSource||"open"!==this.mediaSource.readyState)return null;var e=this.details,t=this.hls,i=this.media,r=this.mediaSource,s=e.fragments[0].start+e.totalduration,a=i.duration,o=S(r.duration)?r.duration:0;if(e.live&&t.config.liveDurationInfinity){if(r.duration=1/0,e.fragments.length&&e.live&&r.setLiveSeekableRange){var n=Math.max(0,e.fragments[0].start);return{duration:1/0,start:n,end:Math.max(n,n+e.totalduration)}}return{duration:1/0}}return s>o&&s>a||!S(a)?{duration:s}:null},i.updateMediaSource=function(e){var t=e.duration,i=e.start,r=e.end;this.media&&this.mediaSource&&"open"===this.mediaSource.readyState&&(S(t)&&this.log("Updating Media Source duration to "+t.toFixed(3)),this.mediaSource.duration=t,void 0!==i&&void 0!==r&&(this.log("Media Source duration is set to "+this.mediaSource.duration+". Setting seekable range to "+i+"-"+r+"."),this.mediaSource.setLiveSeekableRange(i,r)))},i.checkPendingTracks=function(){var e=this.bufferCodecEventsExpected,t=this.operationQueue,i=this.pendingTracks,r=Object.keys(i).length;if(r&&(!e||2===r||"audiovideo"in i)){this.createSourceBuffers(i),this.pendingTracks={};var s=this.getSourceBufferTypes();if(s.length)this.hls.trigger(k.BUFFER_CREATED,{tracks:this.tracks}),s.forEach((function(e){t.executeNext(e)}));else{var a=new Error("could not create source buffer for media codec(s)");this.hls.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:a,reason:a.message})}}},i.createSourceBuffers=function(e){var t=this,i=this.sourceBuffer,r=this.mediaSource;if(!r)throw Error("createSourceBuffers called when mediaSource was null");var s=function(s){if(!i[s]){var a,o=e[s];if(!o)throw Error("source buffer exists for track "+s+", however track does not");var n=-1===(null==(a=o.levelCodec)?void 0:a.indexOf(","))?o.levelCodec:o.codec;n&&"audio"===s.slice(0,5)&&(n=St(n,t.appendSource));var l=o.container+";codecs="+n;t.log("creating sourceBuffer("+l+")");try{var h=i[s]=r.addSourceBuffer(l),A=s;t.addBufferListener(A,"updatestart",t._onSBUpdateStart),t.addBufferListener(A,"updateend",t._onSBUpdateEnd),t.addBufferListener(A,"error",t._onSBUpdateError),t.appendSource&&t.addBufferListener(A,"bufferedchange",(function(e,i){var r=i.removedRanges;null!=r&&r.length&&t.hls.trigger(k.BUFFER_FLUSHED,{type:s})})),t.tracks[s]={buffer:h,codec:n,container:o.container,levelCodec:o.levelCodec,metadata:o.metadata,id:o.id}}catch(e){t.error("error while trying to add sourceBuffer: "+e.message),t.hls.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:e,sourceBufferName:s,mimeType:l})}}};for(var a in e)s(a)},i._onSBUpdateStart=function(e){this.operationQueue.current(e).onStart()},i._onSBUpdateEnd=function(e){var t;if("closed"!==(null==(t=this.mediaSource)?void 0:t.readyState)){var i=this.operationQueue;i.current(e).onComplete(),i.shiftAndExecuteNext(e)}else this.resetBuffer(e)},i._onSBUpdateError=function(e,t){var i,r=new Error(e+" SourceBuffer error. MediaSource readyState: "+(null==(i=this.mediaSource)?void 0:i.readyState));this.error(""+r,t),this.hls.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.BUFFER_APPENDING_ERROR,sourceBufferName:e,error:r,fatal:!1});var s=this.operationQueue.current(e);s&&s.onError(r)},i.removeExecutor=function(e,t,i){var r=this.media,s=this.mediaSource,a=this.operationQueue,o=this.sourceBuffer[e];if(!r||!s||!o)return this.warn("Attempting to remove from the "+e+" SourceBuffer, but it does not exist"),void a.shiftAndExecuteNext(e);var n=S(r.duration)?r.duration:1/0,l=S(s.duration)?s.duration:1/0,h=Math.max(0,t),A=Math.min(i,n,l);A>h&&(!o.ending||o.ended)?(o.ended=!1,this.log("Removing ["+h+","+A+"] from the "+e+" SourceBuffer"),o.remove(h,A)):a.shiftAndExecuteNext(e)},i.appendExecutor=function(e,t){var i=this.sourceBuffer[t];if(i)i.ending=!1,i.ended=!1,i.appendBuffer(e);else if(!this.pendingTracks[t])throw new Error("Attempting to append to the "+t+" SourceBuffer, but it does not exist")},i.blockBuffers=function(e,t){var i=this;if(void 0===t&&(t=this.getSourceBufferTypes()),!t.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),void Promise.resolve().then(e);var r=this.operationQueue,s=t.map((function(e){return r.appendBlocker(e)}));t.length>1&&!!this.blockedAudioAppend&&this.unblockAudio(),Promise.all(s).then((function(s){e(),t.forEach((function(e,t){var s=i.sourceBuffer[e];null!=s&&s.updating||r.shiftAndExecuteNext(e)}))}))},i.getSourceBufferTypes=function(){return Object.keys(this.sourceBuffer)},i.addBufferListener=function(e,t,i){var r=this.sourceBuffer[e];if(r){var s=i.bind(this,e);this.listeners[e].push({event:t,listener:s}),r.addEventListener(t,s)}},i.removeBufferListeners=function(e){var t=this.sourceBuffer[e];t&&this.listeners[e].forEach((function(e){t.removeEventListener(e.event,e.listener)}))},a(t,[{key:"mediaSrc",get:function(){var e,t,i=(null==(e=this.media)||null==(t=e.querySelector)?void 0:t.call(e,"source"))||this.media;return null==i?void 0:i.src}}])}(b);function So(e){var t=e.querySelectorAll("source");[].slice.call(t).forEach((function(t){e.removeChild(t)}))}function Mo(e,t){var i=self.document.createElement("source");i.type="video/mp4",i.src=t,e.appendChild(i)}var vo={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},ko=function(e){return String.fromCharCode(vo[e]||e)},Bo=15,Do=100,bo={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},Qo={17:2,18:4,21:6,22:8,23:10,19:13,20:15},Ro={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},To={25:2,26:4,29:6,30:8,31:10,27:13,28:15},Lo=["white","green","blue","cyan","red","yellow","magenta","black","transparent"],Ko=function(){function e(){this.time=null,this.verboseLevel=0}return e.prototype.log=function(e,t){if(this.verboseLevel>=e){var i="function"==typeof t?t():t;F.log(this.time+" ["+e+"] "+i)}},e}(),qo=function(e){for(var t=[],i=0;i<e.length;i++)t.push(e[i].toString(16));return t},xo=function(){function e(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}var t=e.prototype;return t.reset=function(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1},t.setStyles=function(e){for(var t=["foreground","underline","italics","background","flash"],i=0;i<t.length;i++){var r=t[i];e.hasOwnProperty(r)&&(this[r]=e[r])}},t.isDefault=function(){return"white"===this.foreground&&!this.underline&&!this.italics&&"black"===this.background&&!this.flash},t.equals=function(e){return this.foreground===e.foreground&&this.underline===e.underline&&this.italics===e.italics&&this.background===e.background&&this.flash===e.flash},t.copy=function(e){this.foreground=e.foreground,this.underline=e.underline,this.italics=e.italics,this.background=e.background,this.flash=e.flash},t.toString=function(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash},e}(),Fo=function(){function e(){this.uchar=" ",this.penState=new xo}var t=e.prototype;return t.reset=function(){this.uchar=" ",this.penState.reset()},t.setChar=function(e,t){this.uchar=e,this.penState.copy(t)},t.setPenState=function(e){this.penState.copy(e)},t.equals=function(e){return this.uchar===e.uchar&&this.penState.equals(e.penState)},t.copy=function(e){this.uchar=e.uchar,this.penState.copy(e.penState)},t.isEmpty=function(){return" "===this.uchar&&this.penState.isDefault()},e}(),Uo=function(){function e(e){this.chars=[],this.pos=0,this.currPenState=new xo,this.cueStartTime=null,this.logger=void 0;for(var t=0;t<Do;t++)this.chars.push(new Fo);this.logger=e}var t=e.prototype;return t.equals=function(e){for(var t=0;t<Do;t++)if(!this.chars[t].equals(e.chars[t]))return!1;return!0},t.copy=function(e){for(var t=0;t<Do;t++)this.chars[t].copy(e.chars[t])},t.isEmpty=function(){for(var e=!0,t=0;t<Do;t++)if(!this.chars[t].isEmpty()){e=!1;break}return e},t.setCursor=function(e){this.pos!==e&&(this.pos=e),this.pos<0?(this.logger.log(3,"Negative cursor position "+this.pos),this.pos=0):this.pos>Do&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=Do)},t.moveCursor=function(e){var t=this.pos+e;if(e>1)for(var i=this.pos+1;i<t+1;i++)this.chars[i].setPenState(this.currPenState);this.setCursor(t)},t.backSpace=function(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)},t.insertChar=function(e){var t=this;e>=144&&this.backSpace();var i=ko(e);this.pos>=Do?this.logger.log(0,(function(){return"Cannot insert "+e.toString(16)+" ("+i+") at position "+t.pos+". Skipping it!"})):(this.chars[this.pos].setChar(i,this.currPenState),this.moveCursor(1))},t.clearFromPos=function(e){var t;for(t=e;t<Do;t++)this.chars[t].reset()},t.clear=function(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()},t.clearToEndOfRow=function(){this.clearFromPos(this.pos)},t.getTextString=function(){for(var e=[],t=!0,i=0;i<Do;i++){var r=this.chars[i].uchar;" "!==r&&(t=!1),e.push(r)}return t?"":e.join("")},t.setPenStyles=function(e){this.currPenState.setStyles(e),this.chars[this.pos].setPenState(this.currPenState)},e}(),Go=function(){function e(e){this.rows=[],this.currRow=Bo-1,this.nrRollUpRows=null,this.lastOutputScreen=null,this.logger=void 0;for(var t=0;t<Bo;t++)this.rows.push(new Uo(e));this.logger=e}var t=e.prototype;return t.reset=function(){for(var e=0;e<Bo;e++)this.rows[e].clear();this.currRow=Bo-1},t.equals=function(e){for(var t=!0,i=0;i<Bo;i++)if(!this.rows[i].equals(e.rows[i])){t=!1;break}return t},t.copy=function(e){for(var t=0;t<Bo;t++)this.rows[t].copy(e.rows[t])},t.isEmpty=function(){for(var e=!0,t=0;t<Bo;t++)if(!this.rows[t].isEmpty()){e=!1;break}return e},t.backSpace=function(){this.rows[this.currRow].backSpace()},t.clearToEndOfRow=function(){this.rows[this.currRow].clearToEndOfRow()},t.insertChar=function(e){this.rows[this.currRow].insertChar(e)},t.setPen=function(e){this.rows[this.currRow].setPenStyles(e)},t.moveCursor=function(e){this.rows[this.currRow].moveCursor(e)},t.setCursor=function(e){this.logger.log(2,"setCursor: "+e),this.rows[this.currRow].setCursor(e)},t.setPAC=function(e){this.logger.log(2,(function(){return"pacData = "+JSON.stringify(e)}));var t=e.row-1;if(this.nrRollUpRows&&t<this.nrRollUpRows-1&&(t=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==t){for(var i=0;i<Bo;i++)this.rows[i].clear();var r=this.currRow+1-this.nrRollUpRows,s=this.lastOutputScreen;if(s){var a=s.rows[r].cueStartTime,o=this.logger.time;if(null!==a&&null!==o&&a<o)for(var n=0;n<this.nrRollUpRows;n++)this.rows[t-this.nrRollUpRows+n+1].copy(s.rows[r+n])}}this.currRow=t;var l=this.rows[this.currRow];if(null!==e.indent){var h=e.indent,A=Math.max(h-1,0);l.setCursor(e.indent),e.color=l.chars[A].penState.foreground}var d={foreground:e.color,underline:e.underline,italics:e.italics,background:"black",flash:!1};this.setPen(d)},t.setBkgData=function(e){this.logger.log(2,(function(){return"bkgData = "+JSON.stringify(e)})),this.backSpace(),this.setPen(e),this.insertChar(32)},t.setRollUpRows=function(e){this.nrRollUpRows=e},t.rollUp=function(){var e=this;if(null!==this.nrRollUpRows){this.logger.log(1,(function(){return e.getDisplayText()}));var t=this.currRow+1-this.nrRollUpRows,i=this.rows.splice(t,1)[0];i.clear(),this.rows.splice(this.currRow,0,i),this.logger.log(2,"Rolling up")}else this.logger.log(3,"roll_up but nrRollUpRows not set yet")},t.getDisplayText=function(e){e=e||!1;for(var t=[],i="",r=-1,s=0;s<Bo;s++){var a=this.rows[s].getTextString();a&&(r=s+1,e?t.push("Row "+r+": '"+a+"'"):t.push(a.trim()))}return t.length>0&&(i=e?"["+t.join(" | ")+"]":t.join("\n")),i},t.getTextAndFormat=function(){return this.rows},e}(),Oo=function(){function e(e,t,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=e,this.outputFilter=t,this.mode=null,this.verbose=0,this.displayedMemory=new Go(i),this.nonDisplayedMemory=new Go(i),this.lastOutputScreen=new Go(i),this.currRollUpRow=this.displayedMemory.rows[Bo-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=i}var t=e.prototype;return t.reset=function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[Bo-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null},t.getHandler=function(){return this.outputFilter},t.setHandler=function(e){this.outputFilter=e},t.setPAC=function(e){this.writeScreen.setPAC(e)},t.setBkgData=function(e){this.writeScreen.setBkgData(e)},t.setMode=function(e){e!==this.mode&&(this.mode=e,this.logger.log(2,(function(){return"MODE="+e})),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)},t.insertChars=function(e){for(var t=this,i=0;i<e.length;i++)this.writeScreen.insertChar(e[i]);var r=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(2,(function(){return r+": "+t.writeScreen.getDisplayText(!0)})),"MODE_PAINT-ON"!==this.mode&&"MODE_ROLL-UP"!==this.mode||(this.logger.log(1,(function(){return"DISPLAYED: "+t.displayedMemory.getDisplayText(!0)})),this.outputDataUpdate())},t.ccRCL=function(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")},t.ccBS=function(){this.logger.log(2,"BS - BackSpace"),"MODE_TEXT"!==this.mode&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())},t.ccAOF=function(){},t.ccAON=function(){},t.ccDER=function(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()},t.ccRU=function(e){this.logger.log(2,"RU("+e+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(e)},t.ccFON=function(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:!0})},t.ccRDC=function(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")},t.ccTR=function(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT")},t.ccRTD=function(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT")},t.ccEDM=function(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)},t.ccCR=function(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)},t.ccENM=function(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()},t.ccEOC=function(){var e=this;if(this.logger.log(2,"EOC - End Of Caption"),"MODE_POP-ON"===this.mode){var t=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=t,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,(function(){return"DISP: "+e.displayedMemory.getDisplayText()}))}this.outputDataUpdate(!0)},t.ccTO=function(e){this.logger.log(2,"TO("+e+") - Tab Offset"),this.writeScreen.moveCursor(e)},t.ccMIDROW=function(e){var t={flash:!1};if(t.underline=e%2==1,t.italics=e>=46,t.italics)t.foreground="white";else{var i=Math.floor(e/2)-16,r=["white","green","blue","cyan","red","yellow","magenta"];t.foreground=r[i]}this.logger.log(2,"MIDROW: "+JSON.stringify(t)),this.writeScreen.setPen(t)},t.outputDataUpdate=function(e){void 0===e&&(e=!1);var t=this.logger.time;null!==t&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,t,this.lastOutputScreen),e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:t):this.cueStartTime=t,this.lastOutputScreen.copy(this.displayedMemory))},t.cueSplitAtTime=function(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e))},e}(),Jo=function(){function e(e,t,i){this.channels=void 0,this.currentChannel=0,this.cmdHistory=Po(),this.logger=void 0;var r=this.logger=new Ko;this.channels=[null,new Oo(e,t,r),new Oo(e+1,i,r)]}var t=e.prototype;return t.getHandler=function(e){return this.channels[e].getHandler()},t.setHandler=function(e,t){this.channels[e].setHandler(t)},t.addData=function(e,t){var i=this;this.logger.time=e;for(var r=function(e){var r=127&t[e],s=127&t[e+1],a=!1,o=null;if(0===r&&0===s)return 0;i.logger.log(3,(function(){return"["+qo([t[e],t[e+1]])+"] -> ("+qo([r,s])+")"}));var n=i.cmdHistory;if(r>=16&&r<=31){if(No(r,s,n))return Yo(null,null,n),i.logger.log(3,(function(){return"Repeated command ("+qo([r,s])+") is dropped"})),0;Yo(r,s,i.cmdHistory),(a=i.parseCmd(r,s))||(a=i.parseMidrow(r,s)),a||(a=i.parsePAC(r,s)),a||(a=i.parseBackgroundAttributes(r,s))}else Yo(null,null,n);if(!a&&(o=i.parseChars(r,s))){var l=i.currentChannel;l&&l>0?i.channels[l].insertChars(o):i.logger.log(2,"No channel found yet. TEXT-MODE?")}a||o||i.logger.log(2,(function(){return"Couldn't parse cleaned data "+qo([r,s])+" orig: "+qo([t[e],t[e+1]])}))},s=0;s<t.length;s+=2)r(s)},t.parseCmd=function(e,t){if(!((20===e||28===e||21===e||29===e)&&t>=32&&t<=47||(23===e||31===e)&&t>=33&&t<=35))return!1;var i=20===e||21===e||23===e?1:2,r=this.channels[i];return 20===e||21===e||28===e||29===e?32===t?r.ccRCL():33===t?r.ccBS():34===t?r.ccAOF():35===t?r.ccAON():36===t?r.ccDER():37===t?r.ccRU(2):38===t?r.ccRU(3):39===t?r.ccRU(4):40===t?r.ccFON():41===t?r.ccRDC():42===t?r.ccTR():43===t?r.ccRTD():44===t?r.ccEDM():45===t?r.ccCR():46===t?r.ccENM():47===t&&r.ccEOC():r.ccTO(t-32),this.currentChannel=i,!0},t.parseMidrow=function(e,t){var i=0;if((17===e||25===e)&&t>=32&&t<=47){if((i=17===e?1:2)!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;var r=this.channels[i];return!!r&&(r.ccMIDROW(t),this.logger.log(3,(function(){return"MIDROW ("+qo([e,t])+")"})),!0)}return!1},t.parsePAC=function(e,t){var i;if(!((e>=17&&e<=23||e>=25&&e<=31)&&t>=64&&t<=127||(16===e||24===e)&&t>=64&&t<=95))return!1;var r=e<=23?1:2;i=t>=64&&t<=95?1===r?bo[e]:Ro[e]:1===r?Qo[e]:To[e];var s=this.channels[r];return!!s&&(s.setPAC(this.interpretPAC(i,t)),this.currentChannel=r,!0)},t.interpretPAC=function(e,t){var i,r={color:null,italics:!1,indent:null,underline:!1,row:e};return i=t>95?t-96:t-64,r.underline=1==(1&i),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},t.parseChars=function(e,t){var i,r,s=null,a=null;return e>=25?(i=2,a=e-8):(i=1,a=e),a>=17&&a<=19?(r=17===a?t+80:18===a?t+112:t+144,this.logger.log(2,(function(){return"Special char '"+ko(r)+"' in channel "+i})),s=[r]):e>=32&&e<=127&&(s=0===t?[e]:[e,t]),s&&this.logger.log(3,(function(){return"Char codes = "+qo(s).join(",")})),s},t.parseBackgroundAttributes=function(e,t){var i;if(!((16===e||24===e)&&t>=32&&t<=47||(23===e||31===e)&&t>=45&&t<=47))return!1;var r={};16===e||24===e?(i=Math.floor((t-32)/2),r.background=Lo[i],t%2==1&&(r.background=r.background+"_semi")):45===t?r.background="transparent":(r.foreground="black",47===t&&(r.underline=!0));var s=e<=23?1:2;return this.channels[s].setBkgData(r),!0},t.reset=function(){for(var e=0;e<Object.keys(this.channels).length;e++){var t=this.channels[e];t&&t.reset()}Yo(null,null,this.cmdHistory)},t.cueSplitAtTime=function(e){for(var t=0;t<this.channels.length;t++){var i=this.channels[t];i&&i.cueSplitAtTime(e)}},e}();function Yo(e,t,i){i.a=e,i.b=t}function No(e,t,i){return i.a===e&&i.b===t}function Po(){return{a:null,b:null}}var jo=function(){function e(e,t){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=e,this.trackName=t}var t=e.prototype;return t.dispatchCue=function(){null!==this.startTime&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)},t.newCue=function(e,t,i){(null===this.startTime||this.startTime>e)&&(this.startTime=e),this.endTime=t,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)},t.reset=function(){this.cueRanges=[],this.startTime=null},e}(),zo=function(){if(null!=de&&de.VTTCue)return self.VTTCue;var e=["","lr","rl"],t=["start","middle","end","left","right"];function i(e,t){if("string"!=typeof t)return!1;if(!Array.isArray(e))return!1;var i=t.toLowerCase();return!!~e.indexOf(i)&&i}function r(t){return i(e,t)}function s(e){return i(t,e)}function a(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];for(var s=1;s<arguments.length;s++){var a=arguments[s];for(var o in a)e[o]=a[o]}return e}function o(e,t,i){var o=this,n={enumerable:!0};o.hasBeenReset=!1;var l="",h=!1,A=e,d=t,c=i,u=null,p="",g=!0,m="auto",y="start",E=50,C="middle",f=50,I="middle";Object.defineProperty(o,"id",a({},n,{get:function(){return l},set:function(e){l=""+e}})),Object.defineProperty(o,"pauseOnExit",a({},n,{get:function(){return h},set:function(e){h=!!e}})),Object.defineProperty(o,"startTime",a({},n,{get:function(){return A},set:function(e){if("number"!=typeof e)throw new TypeError("Start time must be set to a number.");A=e,this.hasBeenReset=!0}})),Object.defineProperty(o,"endTime",a({},n,{get:function(){return d},set:function(e){if("number"!=typeof e)throw new TypeError("End time must be set to a number.");d=e,this.hasBeenReset=!0}})),Object.defineProperty(o,"text",a({},n,{get:function(){return c},set:function(e){c=""+e,this.hasBeenReset=!0}})),Object.defineProperty(o,"region",a({},n,{get:function(){return u},set:function(e){u=e,this.hasBeenReset=!0}})),Object.defineProperty(o,"vertical",a({},n,{get:function(){return p},set:function(e){var t=r(e);if(!1===t)throw new SyntaxError("An invalid or illegal string was specified.");p=t,this.hasBeenReset=!0}})),Object.defineProperty(o,"snapToLines",a({},n,{get:function(){return g},set:function(e){g=!!e,this.hasBeenReset=!0}})),Object.defineProperty(o,"line",a({},n,{get:function(){return m},set:function(e){if("number"!=typeof e&&"auto"!==e)throw new SyntaxError("An invalid number or illegal string was specified.");m=e,this.hasBeenReset=!0}})),Object.defineProperty(o,"lineAlign",a({},n,{get:function(){return y},set:function(e){var t=s(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");y=t,this.hasBeenReset=!0}})),Object.defineProperty(o,"position",a({},n,{get:function(){return E},set:function(e){if(e<0||e>100)throw new Error("Position must be between 0 and 100.");E=e,this.hasBeenReset=!0}})),Object.defineProperty(o,"positionAlign",a({},n,{get:function(){return C},set:function(e){var t=s(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");C=t,this.hasBeenReset=!0}})),Object.defineProperty(o,"size",a({},n,{get:function(){return f},set:function(e){if(e<0||e>100)throw new Error("Size must be between 0 and 100.");f=e,this.hasBeenReset=!0}})),Object.defineProperty(o,"align",a({},n,{get:function(){return I},set:function(e){var t=s(e);if(!t)throw new SyntaxError("An invalid or illegal string was specified.");I=t,this.hasBeenReset=!0}})),o.displayState=void 0}return o.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},o}(),Wo=function(){function e(){}return e.prototype.decode=function(e,t){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))},e}();function Zo(e){function t(e,t,i,r){return 3600*(0|e)+60*(0|t)+(0|i)+parseFloat(r||0)}var i=e.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return i?parseFloat(i[2])>59?t(i[2],i[3],0,i[4]):t(i[1],i[2],i[3],i[4]):null}var Vo=function(){function e(){this.values=Object.create(null)}var t=e.prototype;return t.set=function(e,t){this.get(e)||""===t||(this.values[e]=t)},t.get=function(e,t,i){return i?this.has(e)?this.values[e]:t[i]:this.has(e)?this.values[e]:t},t.has=function(e){return e in this.values},t.alt=function(e,t,i){for(var r=0;r<i.length;++r)if(t===i[r]){this.set(e,t);break}},t.integer=function(e,t){/^-?\d+$/.test(t)&&this.set(e,parseInt(t,10))},t.percent=function(e,t){if(/^([\d]{1,3})(\.[\d]*)?%$/.test(t)){var i=parseFloat(t);if(i>=0&&i<=100)return this.set(e,i),!0}return!1},e}();function Ho(e,t,i,r){var s=r?e.split(r):[e];for(var a in s)if("string"==typeof s[a]){var o=s[a].split(i);2===o.length&&t(o[0],o[1])}}var Xo=new zo(0,0,""),_o="middle"===Xo.align?"middle":"center";function $o(e,t,i){var r=e;function s(){var t=Zo(e);if(null===t)throw new Error("Malformed timestamp: "+r);return e=e.replace(/^[^\sa-zA-Z-]+/,""),t}function a(e,t){var r=new Vo;Ho(e,(function(e,t){var s;switch(e){case"region":for(var a=i.length-1;a>=0;a--)if(i[a].id===t){r.set(e,i[a].region);break}break;case"vertical":r.alt(e,t,["rl","lr"]);break;case"line":s=t.split(","),r.integer(e,s[0]),r.percent(e,s[0])&&r.set("snapToLines",!1),r.alt(e,s[0],["auto"]),2===s.length&&r.alt("lineAlign",s[1],["start",_o,"end"]);break;case"position":s=t.split(","),r.percent(e,s[0]),2===s.length&&r.alt("positionAlign",s[1],["start",_o,"end","line-left","line-right","auto"]);break;case"size":r.percent(e,t);break;case"align":r.alt(e,t,["start",_o,"end","left","right"])}}),/:/,/\s/),t.region=r.get("region",null),t.vertical=r.get("vertical","");var s=r.get("line","auto");"auto"===s&&-1===Xo.line&&(s=-1),t.line=s,t.lineAlign=r.get("lineAlign","start"),t.snapToLines=r.get("snapToLines",!0),t.size=r.get("size",100),t.align=r.get("align",_o);var a=r.get("position","auto");"auto"===a&&50===Xo.position&&(a="start"===t.align||"left"===t.align?0:"end"===t.align||"right"===t.align?100:50),t.position=a}function o(){e=e.replace(/^\s+/,"")}if(o(),t.startTime=s(),o(),"--\x3e"!==e.slice(0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+r);e=e.slice(3),o(),t.endTime=s(),o(),a(e,t)}function en(e){return e.replace(/<br(?: \/)?>/gi,"\n")}var tn=function(){function e(){this.state="INITIAL",this.buffer="",this.decoder=new Wo,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}var t=e.prototype;return t.parse=function(e){var t=this;function i(){var e=t.buffer,i=0;for(e=en(e);i<e.length&&"\r"!==e[i]&&"\n"!==e[i];)++i;var r=e.slice(0,i);return"\r"===e[i]&&++i,"\n"===e[i]&&++i,t.buffer=e.slice(i),r}function r(e){Ho(e,(function(e,t){}),/:/)}e&&(t.buffer+=t.decoder.decode(e,{stream:!0}));try{var s="";if("INITIAL"===t.state){if(!/\r\n|\n/.test(t.buffer))return this;var a=(s=i()).match(/^()?WEBVTT([ \t].*)?$/);if(null==a||!a[0])throw new Error("Malformed WebVTT signature.");t.state="HEADER"}for(var o=!1;t.buffer;){if(!/\r\n|\n/.test(t.buffer))return this;switch(o?o=!1:s=i(),t.state){case"HEADER":/:/.test(s)?r(s):s||(t.state="ID");continue;case"NOTE":s||(t.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(s)){t.state="NOTE";break}if(!s)continue;if(t.cue=new zo(0,0,""),t.state="CUE",-1===s.indexOf("--\x3e")){t.cue.id=s;continue}case"CUE":if(!t.cue){t.state="BADCUE";continue}try{$o(s,t.cue,t.regionList)}catch(e){t.cue=null,t.state="BADCUE";continue}t.state="CUETEXT";continue;case"CUETEXT":var n=-1!==s.indexOf("--\x3e");if(!s||n&&(o=!0)){t.oncue&&t.cue&&t.oncue(t.cue),t.cue=null,t.state="ID";continue}if(null===t.cue)continue;t.cue.text&&(t.cue.text+="\n"),t.cue.text+=s;continue;case"BADCUE":s||(t.state="ID")}}}catch(e){"CUETEXT"===t.state&&t.cue&&t.oncue&&t.oncue(t.cue),t.cue=null,t.state="INITIAL"===t.state?"BADWEBVTT":"BADCUE"}return this},t.flush=function(){var e=this;try{if((e.cue||"HEADER"===e.state)&&(e.buffer+="\n\n",e.parse()),"INITIAL"===e.state||"BADWEBVTT"===e.state)throw new Error("Malformed WebVTT signature.")}catch(t){e.onparsingerror&&e.onparsingerror(t)}return e.onflush&&e.onflush(),this},e}();function rn(e){for(var t=5381,i=e.length;i;)t=33*t^e.charCodeAt(--i);return(t>>>0).toString()}var sn=/\r\n|\n\r|\n|\r/g,an=function(e,t,i){return void 0===i&&(i=0),e.slice(i,i+t.length)===t},on=function(e){var t=parseInt(e.slice(-3)),i=parseInt(e.slice(-6,-4)),r=parseInt(e.slice(-9,-7)),s=e.length>9?parseInt(e.substring(0,e.indexOf(":"))):0;if(!(S(t)&&S(i)&&S(r)&&S(s)))throw Error("Malformed X-TIMESTAMP-MAP: Local:"+e);return t+=1e3*i,t+=6e4*r,t+=36e5*s};function nn(e,t,i){return rn(e.toString())+rn(t.toString())+rn(i)}var ln=function(e,t,i){var r=e[t],s=e[r.prevCC];if(!s||!s.new&&r.new)return e.ccOffset=e.presentationOffset=r.start,void(r.new=!1);for(;null!=(a=s)&&a.new;){var a;e.ccOffset+=r.start-s.start,r.new=!1,s=e[(r=s).prevCC]}e.presentationOffset=i};function hn(e,t,i,r,s,a,o){var n,l=new tn,h=ve(new Uint8Array(e)).trim().replace(sn,"\n").split("\n"),A=[],d=t?Ia(t.baseTime,t.timescale):0,c="00:00.000",u=0,p=0,g=!0;l.oncue=function(e){var a=i[r],o=i.ccOffset,l=(u-d)/9e4;if(null!=a&&a.new&&(void 0!==p?o=i.ccOffset=a.start:ln(i,r,l)),l){if(!t)return void(n=new Error("Missing initPTS for VTT MPEGTS"));o=l-i.presentationOffset}var h=e.endTime-e.startTime,c=ba(9e4*(e.startTime+o-p),9e4*s)/9e4;e.startTime=Math.max(c,0),e.endTime=Math.max(c+h,0);var g=e.text.trim();e.text=decodeURIComponent(encodeURIComponent(g)),e.id||(e.id=nn(e.startTime,e.endTime,g)),e.endTime>0&&A.push(e)},l.onparsingerror=function(e){n=e},l.onflush=function(){n?o(n):a(A)},h.forEach((function(e){if(g){if(an(e,"X-TIMESTAMP-MAP=")){g=!1,e.slice(16).split(",").forEach((function(e){an(e,"LOCAL:")?c=e.slice(6):an(e,"MPEGTS:")&&(u=parseInt(e.slice(7)))}));try{p=on(c)/1e3}catch(e){n=e}return}""===e&&(g=!1)}l.parse(e+"\n")})),l.flush()}var An="stpp.ttml.im1t",dn=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,cn=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,un={left:"start",center:"center",right:"end",start:"start",end:"end"};function pn(e,t,i,r){var s=Fe(new Uint8Array(e),["mdat"]);if(0!==s.length){var a=s.map((function(e){return ve(e)})),o=Ca(t.baseTime,1,t.timescale);try{a.forEach((function(e){return i(gn(e,o))}))}catch(e){r(e)}}else r(new Error("Could not parse IMSC1 mdat"))}function gn(e,t){var i=(new DOMParser).parseFromString(e,"text/xml").getElementsByTagName("tt")[0];if(!i)throw new Error("Invalid ttml");var r={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},s=Object.keys(r).reduce((function(e,t){return e[t]=i.getAttribute("ttp:"+t)||r[t],e}),{}),a="preserve"!==i.getAttribute("xml:space"),o=yn(mn(i,"styling","style")),n=yn(mn(i,"layout","region")),h=mn(i,"body","[begin]");return[].map.call(h,(function(e){var i=En(e,a);if(!i||!e.hasAttribute("begin"))return null;var r=wn(e.getAttribute("begin"),s),h=wn(e.getAttribute("dur"),s),A=wn(e.getAttribute("end"),s);if(null===r)throw In(e);if(null===A){if(null===h)throw In(e);A=r+h}var d=new zo(r-t,A-t,i);d.id=nn(d.startTime,d.endTime,d.text);var c=Cn(n[e.getAttribute("region")],o[e.getAttribute("style")],o),u=c.textAlign;if(u){var p=un[u];p&&(d.lineAlign=p),d.align=u}return l(d,c),d})).filter((function(e){return null!==e}))}function mn(e,t,i){var r=e.getElementsByTagName(t)[0];return r?[].slice.call(r.querySelectorAll(i)):[]}function yn(e){return e.reduce((function(e,t){var i=t.getAttribute("xml:id");return i&&(e[i]=t),e}),{})}function En(e,t){return[].slice.call(e.childNodes).reduce((function(e,i,r){var s;return"br"===i.nodeName&&r?e+"\n":null!=(s=i.childNodes)&&s.length?En(i,t):t?e+i.textContent.trim().replace(/\s+/g," "):e+i.textContent}),"")}function Cn(e,t,i){var r="http://www.w3.org/ns/ttml#styling",s=null,a=["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"],o=null!=e&&e.hasAttribute("style")?e.getAttribute("style"):null;return o&&i.hasOwnProperty(o)&&(s=i[o]),a.reduce((function(i,a){var o=fn(t,r,a)||fn(e,r,a)||fn(s,r,a);return o&&(i[a]=o),i}),{})}function fn(e,t,i){return e&&e.hasAttributeNS(t,i)?e.getAttributeNS(t,i):null}function In(e){return new Error("Could not parse ttml timestamp "+e)}function wn(e,t){if(!e)return null;var i=Zo(e);return null===i&&(dn.test(e)?i=Sn(e,t):cn.test(e)&&(i=Mn(e,t))),i}function Sn(e,t){var i=dn.exec(e),r=(0|i[4])+(0|i[5])/t.subFrameRate;return 3600*(0|i[1])+60*(0|i[2])+(0|i[3])+r/t.frameRate}function Mn(e,t){var i=cn.exec(e),r=Number(i[1]);switch(i[2]){case"h":return 3600*r;case"m":return 60*r;case"ms":return 1e3*r;case"f":return r/t.frameRate;case"t":return r/t.tickRate}return r}var vn=function(){function e(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=bn(),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(k.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(k.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(k.MANIFEST_LOADING,this.onManifestLoading,this),e.on(k.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(k.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(k.FRAG_LOADING,this.onFragLoading,this),e.on(k.FRAG_LOADED,this.onFragLoaded,this),e.on(k.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(k.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(k.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(k.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(k.BUFFER_FLUSHING,this.onBufferFlushing,this)}var t=e.prototype;return t.destroy=function(){var e=this.hls;e.off(k.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(k.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(k.MANIFEST_LOADING,this.onManifestLoading,this),e.off(k.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(k.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(k.FRAG_LOADING,this.onFragLoading,this),e.off(k.FRAG_LOADED,this.onFragLoaded,this),e.off(k.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(k.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(k.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(k.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(k.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.media=null,this.cea608Parser1=this.cea608Parser2=void 0},t.initCea608Parsers=function(){var e=new jo(this,"textTrack1"),t=new jo(this,"textTrack2"),i=new jo(this,"textTrack3"),r=new jo(this,"textTrack4");this.cea608Parser1=new Jo(1,e,t),this.cea608Parser2=new Jo(3,i,r)},t.addCues=function(e,t,i,r,s){for(var a=!1,o=s.length;o--;){var n=s[o],l=Dn(n[0],n[1],t,i);if(l>=0&&(n[0]=Math.min(n[0],t),n[1]=Math.max(n[1],i),a=!0,l/(i-t)>.5))return}if(a||s.push([t,i]),this.config.renderTextTracksNatively){var h=this.captionsTracks[e];this.Cues.newCue(h,t,i,r)}else{var A=this.Cues.newCue(null,t,i,r);this.hls.trigger(k.CUES_PARSED,{type:"captions",cues:A,track:e})}},t.onInitPtsFound=function(e,t){var i=this,r=t.frag,s=t.id,a=t.initPTS,o=t.timescale,n=this.unparsedVttFrags;s===Pt.MAIN&&(this.initPTS[r.cc]={baseTime:a,timescale:o}),n.length&&(this.unparsedVttFrags=[],n.forEach((function(e){i.onFragLoaded(k.FRAG_LOADED,e)})))},t.getExistingTrack=function(e,t){var i=this.media;if(i)for(var r=0;r<i.textTracks.length;r++){var s=i.textTracks[r];if(Bn(s,{name:e,lang:t,characteristics:"transcribes-spoken-dialog,describes-music-and-sound",attrs:{}}))return s}return null},t.createCaptionsTrack=function(e){this.config.renderTextTracksNatively?this.createNativeTrack(e):this.createNonNativeTrack(e)},t.createNativeTrack=function(e){if(!this.captionsTracks[e]){var t=this.captionsProperties,i=this.captionsTracks,r=this.media,s=t[e],a=s.label,o=s.languageCode,n=this.getExistingTrack(a,o);if(n)i[e]=n,Ht(i[e]),Zt(i[e],r);else{var l=this.createTextTrack("captions",a,o);l&&(l[e]=!0,i[e]=l)}}},t.createNonNativeTrack=function(e){if(!this.nonNativeCaptionsTracks[e]){var t=this.captionsProperties[e];if(t){var i={_id:e,label:t.label,kind:"captions",default:!!t.media&&!!t.media.default,closedCaptions:t.media};this.nonNativeCaptionsTracks[e]=i,this.hls.trigger(k.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[i]})}}},t.createTextTrack=function(e,t,i){var r=this.media;if(r)return r.addTextTrack(e,t,i)},t.onMediaAttaching=function(e,t){this.media=t.media,this._cleanTracks()},t.onMediaDetaching=function(){var e=this.captionsTracks;Object.keys(e).forEach((function(t){Ht(e[t]),delete e[t]})),this.nonNativeCaptionsTracks={},this.media=null},t.onManifestLoading=function(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=bn(),this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())},t._cleanTracks=function(){var e=this.media;if(e){var t=e.textTracks;if(t)for(var i=0;i<t.length;i++)Ht(t[i])}},t.onSubtitleTracksUpdated=function(e,t){var i=this,r=t.subtitleTracks||[],s=r.some((function(e){return e.textCodec===An}));if(this.config.enableWebVTT||s&&this.config.enableIMSC1){if(ho(this.tracks,r))return void(this.tracks=r);if(this.textTracks=[],this.tracks=r,this.config.renderTextTracksNatively){var a=this.media,o=a?ei(a.textTracks):null;if(this.tracks.forEach((function(e,t){var r;if(o){for(var s=null,a=0;a<o.length;a++)if(o[a]&&Bn(o[a],e)){s=o[a],o[a]=null;break}s&&(r=s)}if(r)Ht(r);else{var n=kn(e);(r=i.createTextTrack(n,e.name,e.lang))&&(r.mode="disabled")}r&&i.textTracks.push(r)})),null!=o&&o.length){var n=o.filter((function(e){return null!==e})).map((function(e){return e.label}));n.length&&this.hls.logger.warn("Media element contains unused subtitle tracks: "+n.join(", ")+". Replace media element for each source to clear TextTracks and captions menu.")}}else if(this.tracks.length){var l=this.tracks.map((function(e){return{label:e.name,kind:e.type.toLowerCase(),default:e.default,subtitleTrack:e}}));this.hls.trigger(k.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:l})}}},t.onManifestLoaded=function(e,t){var i=this;this.config.enableCEA708Captions&&t.captions&&t.captions.forEach((function(e){var t=/(?:CC|SERVICE)([1-4])/.exec(e.instreamId);if(t){var r="textTrack"+t[1],s=i.captionsProperties[r];s&&(s.label=e.name,e.lang&&(s.languageCode=e.lang),s.media=e)}}))},t.closedCaptionsForLevel=function(e){var t=this.hls.levels[e.level];return null==t?void 0:t.attrs["CLOSED-CAPTIONS"]},t.onFragLoading=function(e,t){if(this.enabled&&t.frag.type===Pt.MAIN){var i,r,s=this.cea608Parser1,a=this.cea608Parser2,o=this.lastSn,n=t.frag,l=n.cc,h=n.sn,A=null!=(i=null==(r=t.part)?void 0:r.index)?i:-1;s&&a&&(h!==o+1||h===o&&A!==this.lastPartIndex+1||l!==this.lastCc)&&(s.reset(),a.reset()),this.lastCc=l,this.lastSn=h,this.lastPartIndex=A}},t.onFragLoaded=function(e,t){var i=t.frag,r=t.payload;if(i.type===Pt.SUBTITLE)if(r.byteLength){var s=i.decryptdata,a="stats"in t;if(null==s||!s.encrypted||a){var o=this.tracks[i.level],n=this.vttCCs;n[i.cc]||(n[i.cc]={start:i.start,prevCC:this.prevCC,new:!0},this.prevCC=i.cc),o&&o.textCodec===An?this._parseIMSC1(i,r):this._parseVTTs(t)}}else this.hls.trigger(k.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:i,error:new Error("Empty subtitle payload")})},t._parseIMSC1=function(e,t){var i=this,r=this.hls;pn(t,this.initPTS[e.cc],(function(t){i._appendCues(t,e.level),r.trigger(k.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})}),(function(t){r.logger.log("Failed to parse IMSC1: "+t),r.trigger(k.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e,error:t})}))},t._parseVTTs=function(e){var t,i=this,r=e.frag,s=e.payload,a=this.initPTS,o=this.unparsedVttFrags,n=a.length-1;if(a[r.cc]||-1!==n){var l=this.hls;hn(null!=(t=r.initSegment)&&t.data?Xe(r.initSegment.data,new Uint8Array(s)):s,this.initPTS[r.cc],this.vttCCs,r.cc,r.start,(function(e){i._appendCues(e,r.level),l.trigger(k.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:r})}),(function(t){var a="Missing initPTS for VTT MPEGTS"===t.message;a?o.push(e):i._fallbackToIMSC1(r,s),l.logger.log("Failed to parse VTT cue: "+t),a&&n>r.cc||l.trigger(k.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:r,error:t})}))}else o.push(e)},t._fallbackToIMSC1=function(e,t){var i=this,r=this.tracks[e.level];r.textCodec||pn(t,this.initPTS[e.cc],(function(){r.textCodec=An,i._parseIMSC1(e,t)}),(function(){r.textCodec="wvtt"}))},t._appendCues=function(e,t){var i=this.hls;if(this.config.renderTextTracksNatively){var r=this.textTracks[t];if(!r||"disabled"===r.mode)return;e.forEach((function(e){return Vt(r,e)}))}else{var s=this.tracks[t];if(!s)return;var a=s.default?"default":"subtitles"+t;i.trigger(k.CUES_PARSED,{type:"subtitles",cues:e,track:a})}},t.onFragDecrypted=function(e,t){t.frag.type===Pt.SUBTITLE&&this.onFragLoaded(k.FRAG_LOADED,t)},t.onSubtitleTracksCleared=function(){this.tracks=[],this.captionsTracks={}},t.onFragParsingUserdata=function(e,t){if(this.enabled&&this.config.enableCEA708Captions){var i=t.frag,r=t.samples;if(i.type!==Pt.MAIN||"NONE"!==this.closedCaptionsForLevel(i))for(var s=0;s<r.length;s++){var a=r[s].bytes;if(a){this.cea608Parser1||this.initCea608Parsers();var o=this.extractCea608Data(a);this.cea608Parser1.addData(r[s].pts,o[0]),this.cea608Parser2.addData(r[s].pts,o[1])}}}},t.onBufferFlushing=function(e,t){var i=t.startOffset,r=t.endOffset,s=t.endOffsetSubtitles,a=t.type,o=this.media;if(o&&!(o.currentTime<r)){if(!a||"video"===a){var n=this.captionsTracks;Object.keys(n).forEach((function(e){return Xt(n[e],i,r)}))}if(this.config.renderTextTracksNatively&&0===i&&void 0!==s){var l=this.textTracks;Object.keys(l).forEach((function(e){return Xt(l[e],i,s)}))}}},t.extractCea608Data=function(e){for(var t=[[],[]],i=31&e[0],r=2,s=0;s<i;s++){var a=e[r++],o=127&e[r++],n=127&e[r++];if((0!==o||0!==n)&&0!=(4&a)){var l=3&a;0!==l&&1!==l||(t[l].push(o),t[l].push(n))}}return t},e}();function kn(e){return e.characteristics&&/transcribes-spoken-dialog/gi.test(e.characteristics)&&/describes-music-and-sound/gi.test(e.characteristics)?"captions":"subtitles"}function Bn(e,t){return!!e&&e.kind===kn(t)&&co(t,e)}function Dn(e,t,i,r){return Math.min(t,r)-Math.max(e,i)}function bn(){return{ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}}}var Qn=function(){function e(e){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=e,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}var t=e.prototype;return t.setStreamController=function(e){this.streamController=e},t.destroy=function(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null},t.registerListeners=function(){var e=this.hls;e.on(k.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.on(k.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(k.MANIFEST_PARSED,this.onManifestParsed,this),e.on(k.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(k.BUFFER_CODECS,this.onBufferCodecs,this),e.on(k.MEDIA_DETACHING,this.onMediaDetaching,this)},t.unregisterListener=function(){var e=this.hls;e.off(k.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.off(k.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(k.MANIFEST_PARSED,this.onManifestParsed,this),e.off(k.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(k.BUFFER_CODECS,this.onBufferCodecs,this),e.off(k.MEDIA_DETACHING,this.onMediaDetaching,this)},t.onFpsDropLevelCapping=function(e,t){var i=this.hls.levels[t.droppedLevel];this.isLevelAllowed(i)&&this.restrictedLevels.push({bitrate:i.bitrate,height:i.height,width:i.width})},t.onMediaAttaching=function(e,t){this.media=t.media instanceof HTMLVideoElement?t.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()},t.onManifestParsed=function(e,t){var i=this.hls;this.restrictedLevels=[],this.firstLevel=t.firstLevel,i.config.capLevelToPlayerSize&&t.video&&this.startCapping()},t.onLevelsUpdated=function(e,t){this.timer&&S(this.autoLevelCapping)&&this.detectPlayerSize()},t.onBufferCodecs=function(e,t){this.hls.config.capLevelToPlayerSize&&t.video&&this.startCapping()},t.onMediaDetaching=function(){this.stopCapping(),this.media=null},t.detectPlayerSize=function(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0)return void(this.clientRect=null);var e=this.hls.levels;if(e.length){var t=this.hls,i=this.getMaxLevel(e.length-1);i!==this.autoLevelCapping&&t.logger.log("Setting autoLevelCapping to "+i+": "+e[i].height+"p@"+e[i].bitrate+" for media "+this.mediaWidth+"x"+this.mediaHeight),t.autoLevelCapping=i,t.autoLevelEnabled&&t.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping}}},t.getMaxLevel=function(t){var i=this,r=this.hls.levels;if(!r.length)return-1;var s=r.filter((function(e,r){return i.isLevelAllowed(e)&&r<=t}));return this.clientRect=null,e.getMaxLevelByMediaSize(s,this.mediaWidth,this.mediaHeight)},t.startCapping=function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},t.stopCapping=function(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)},t.getDimensions=function(){if(this.clientRect)return this.clientRect;var e=this.media,t={width:0,height:0};if(e){var i=e.getBoundingClientRect();t.width=i.width,t.height=i.height,t.width||t.height||(t.width=i.right-i.left||e.width||0,t.height=i.bottom-i.top||e.height||0)}return this.clientRect=t,t},t.isLevelAllowed=function(e){return!this.restrictedLevels.some((function(t){return e.bitrate===t.bitrate&&e.width===t.width&&e.height===t.height}))},e.getMaxLevelByMediaSize=function(e,t,i){if(null==e||!e.length)return-1;for(var r=function(e,t){return!t||e.width!==t.width||e.height!==t.height},s=e.length-1,a=Math.max(t,i),o=0;o<e.length;o+=1){var n=e[o];if((n.width>=a||n.height>=a)&&r(n,e[o+1])){s=o;break}}return s},a(e,[{key:"mediaWidth",get:function(){return this.getDimensions().width*this.contentScaleFactor}},{key:"mediaHeight",get:function(){return this.getDimensions().height*this.contentScaleFactor}},{key:"contentScaleFactor",get:function(){var e=1;if(!this.hls.config.ignoreDevicePixelRatio)try{e=self.devicePixelRatio}catch(e){}return e}}])}(),Rn=function(){function e(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()}var t=e.prototype;return t.setStreamController=function(e){this.streamController=e},t.registerListeners=function(){this.hls.on(k.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.on(k.MEDIA_DETACHING,this.onMediaDetaching,this)},t.unregisterListeners=function(){this.hls.off(k.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.off(k.MEDIA_DETACHING,this.onMediaDetaching,this)},t.destroy=function(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null},t.onMediaAttaching=function(e,t){var i=this.hls.config;if(i.capLevelOnFPSDrop){var r=t.media instanceof self.HTMLVideoElement?t.media:null;this.media=r,r&&"function"==typeof r.getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),i.fpsDroppedMonitoringPeriod)}},t.onMediaDetaching=function(){this.media=null},t.checkFPS=function(e,t,i){var r=performance.now();if(t){if(this.lastTime){var s=r-this.lastTime,a=i-this.lastDroppedFrames,o=t-this.lastDecodedFrames,n=1e3*a/s,l=this.hls;if(l.trigger(k.FPS_DROP,{currentDropped:a,currentDecoded:o,totalDroppedFrames:i}),n>0&&a>l.config.fpsDroppedMonitoringThreshold*o){var h=l.currentLevel;l.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+h),h>0&&(-1===l.autoLevelCapping||l.autoLevelCapping>=h)&&(h-=1,l.trigger(k.FPS_DROP_LEVEL_CAPPING,{level:h,droppedLevel:l.currentLevel}),l.autoLevelCapping=h,this.streamController.nextLevelSwitch())}}this.lastTime=r,this.lastDroppedFrames=i,this.lastDecodedFrames=t}},t.checkFPSInterval=function(){var e=this.media;if(e)if(this.isVideoPlaybackQualityAvailable){var t=e.getVideoPlaybackQuality();this.checkFPS(e,t.totalVideoFrames,t.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)},e}(),Tn=function(e){function t(i){var r;return(r=e.call(this,"eme",i.logger)||this).hls=void 0,r.config=void 0,r.media=null,r.keyFormatPromise=null,r.keySystemAccessPromises={},r._requestLicenseFailureCount=0,r.mediaKeySessions=[],r.keyIdToKeySessionPromise={},r.setMediaKeysQueue=t.CDMCleanupPromise?[t.CDMCleanupPromise]:[],r.onMediaEncrypted=function(e){var t=e.initDataType,i=e.initData,s='"'+e.type+'" event: init data type: "'+t+'"';if(r.debug(s),null!==i){var a,o;if("sinf"===t&&r.getLicenseServerUrl(ce.FAIRPLAY)){var n=Qe(new Uint8Array(i));try{var l=re(JSON.parse(n).sinf),h=je(new Uint8Array(l));if(!h)throw new Error("'schm' box missing or not cbcs/cenc with schi > tenc");a=h.subarray(8,24),o=ce.FAIRPLAY}catch(e){return void r.warn(s+" Failed to parse sinf: "+e)}}else if(r.getLicenseServerUrl(ce.WIDEVINE)){var A=ot(i),d=Object.keys(r.keySystemAccessPromises);d.length||(d=Ee(r.config));var c=A.filter((function(e){var t=e.systemId?me(e.systemId):null;return!!t&&d.indexOf(t)>-1}))[0];if(!c)return void(0===A.length||A.some((function(e){return!e.systemId}))?r.warn(s+" contains incomplete or invalid pssh data"):r.log("ignoring "+s+" for "+A.map((function(e){return me(e.systemId)})).join(",")+" pssh data in favor of playlist keys"));if(o=me(c.systemId),0===c.version&&c.data)if(o===ce.WIDEVINE){var u=c.data.length-22;a=c.data.subarray(u,u+16)}else o===ce.PLAYREADY&&(a=Se(c.data))}if(o&&a){for(var p,g=ke.hexDump(a),m=r,y=m.keyIdToKeySessionPromise,E=m.mediaKeySessions,C=y[g],f=function(){var e=E[I],s=e.decryptdata;if(!s.keyId)return 0;var o=ke.hexDump(s.keyId);return g===o||-1!==s.uri.replace(/-/g,"").indexOf(g)?(C=y[o],s.pssh||(delete y[o],s.pssh=new Uint8Array(i),s.keyId=a,C=y[g]=C.then((function(){return r.generateRequestWithPreferredKeySession(e,t,i,"encrypted-event-key-match")}))),1):void 0},I=0;I<E.length&&(0===(p=f())||1!==p);I++);C||(C=y[g]=r.getKeySystemSelectionPromise([o]).then((function(e){var s,o=e.keySystem,n=e.mediaKeys;r.throwIfDestroyed();var l=new ht("ISO-23001-7",g,null!=(s=ye(o))?s:"");return l.pssh=new Uint8Array(i),l.keyId=a,r.attemptSetMediaKeys(o,n).then((function(){r.throwIfDestroyed();var e=r.createMediaKeySessionContext({decryptdata:l,keySystem:o,mediaKeys:n});return r.generateRequestWithPreferredKeySession(e,t,i,"encrypted-event-no-match")}))}))),C.catch((function(e){return r.handleError(e)}))}}},r.onWaitingForKey=function(e){r.log('"'+e.type+'" event')},r.hls=i,r.config=i.config,r.registerListeners(),r}A(t,e);var i=t.prototype;return i.destroy=function(){this.unregisterListeners(),this.onMediaDetached();var e=this.config;e.requestMediaKeySystemAccessFunc=null,e.licenseXhrSetup=e.licenseResponseCallback=void 0,e.drmSystems=e.drmSystemOptions={},this.hls=this.config=this.keyIdToKeySessionPromise=null,this.onMediaEncrypted=this.onWaitingForKey=null},i.registerListeners=function(){this.hls.on(k.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(k.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(k.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(k.MANIFEST_LOADED,this.onManifestLoaded,this)},i.unregisterListeners=function(){this.hls.off(k.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(k.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(k.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(k.MANIFEST_LOADED,this.onManifestLoaded,this)},i.getLicenseServerUrl=function(e){var t=this.config,i=t.drmSystems,r=t.widevineLicenseUrl,s=i[e];return s?s.licenseUrl:e===ce.WIDEVINE&&r?r:void 0},i.getLicenseServerUrlOrThrow=function(e){var t=this.getLicenseServerUrl(e);if(void 0===t)throw new Error('no license server URL configured for key-system "'+e+'"');return t},i.getServerCertificateUrl=function(e){var t=this.config.drmSystems[e];if(t)return t.serverCertificateUrl;this.log('No Server Certificate in config.drmSystems["'+e+'"]')},i.attemptKeySystemAccess=function(e){var t=this,i=this.hls.levels,r=function(e,t,i){return!!e&&i.indexOf(e)===t},s=i.map((function(e){return e.audioCodec})).filter(r),a=i.map((function(e){return e.videoCodec})).filter(r);return s.length+a.length===0&&a.push("avc1.42e01e"),new Promise((function(i,r){var o=function(e){var n=e.shift();t.getMediaKeysPromise(n,s,a).then((function(e){return i({keySystem:n,mediaKeys:e})})).catch((function(t){e.length?o(e):r(t instanceof Fn?t:new Fn({type:B.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_NO_ACCESS,error:t,fatal:!0},t.message))}))};o(e)}))},i.requestMediaKeySystemAccess=function(e,t){var i=this.config.requestMediaKeySystemAccessFunc;if("function"!=typeof i){var r="Configured requestMediaKeySystemAccess is not a function "+i;return null===fe&&"http:"===self.location.protocol&&(r="navigator.requestMediaKeySystemAccess is not available over insecure protocol "+location.protocol),Promise.reject(new Error(r))}return i(e,t)},i.getMediaKeysPromise=function(e,t,i){var r=this,s=Ie(e,t,i,this.config.drmSystemOptions),a=this.keySystemAccessPromises[e],o=null==a?void 0:a.keySystemAccess;if(!o){this.log('Requesting encrypted media "'+e+'" key-system access with config: '+JSON.stringify(s)),o=this.requestMediaKeySystemAccess(e,s);var n=this.keySystemAccessPromises[e]={keySystemAccess:o};return o.catch((function(t){r.log('Failed to obtain access to key-system "'+e+'": '+t)})),o.then((function(t){r.log('Access for key-system "'+t.keySystem+'" obtained');var i=r.fetchServerCertificate(e);return r.log('Create media-keys for "'+e+'"'),n.mediaKeys=t.createMediaKeys().then((function(t){return r.log('Media-keys created for "'+e+'"'),i.then((function(i){return i?r.setMediaKeysServerCertificate(t,e,i):t}))})),n.mediaKeys.catch((function(t){r.error('Failed to create media-keys for "'+e+'"}: '+t)})),n.mediaKeys}))}return o.then((function(){return a.mediaKeys}))},i.createMediaKeySessionContext=function(e){var t=e.decryptdata,i=e.keySystem,r=e.mediaKeys;this.log('Creating key-system session "'+i+'" keyId: '+ke.hexDump(t.keyId||[]));var s=r.createSession(),a={decryptdata:t,keySystem:i,mediaKeys:r,mediaKeysSession:s,keyStatus:"status-pending"};return this.mediaKeySessions.push(a),a},i.renewKeySession=function(e){var t=e.decryptdata;if(t.pssh){var i=this.createMediaKeySessionContext(e),r=this.getKeyIdString(t),s="cenc";this.keyIdToKeySessionPromise[r]=this.generateRequestWithPreferredKeySession(i,s,t.pssh,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(e)},i.getKeyIdString=function(e){if(!e)throw new Error("Could not read keyId of undefined decryptdata");if(null===e.keyId)throw new Error("keyId is null");return ke.hexDump(e.keyId)},i.updateKeySession=function(e,t){var i,r=e.mediaKeysSession;return this.log('Updating key-session "'+r.sessionId+'" for keyID '+ke.hexDump((null==(i=e.decryptdata)?void 0:i.keyId)||[])+"\n } (data length: "+(t?t.byteLength:t)+")"),r.update(t)},i.selectKeySystemFormat=function(e){var t=Object.keys(e.levelkeys||{});return this.keyFormatPromise||(this.log("Selecting key-system from fragment (sn: "+e.sn+" "+e.type+": "+e.level+") key formats "+t.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(t)),this.keyFormatPromise},i.getKeyFormatPromise=function(e){var t=this;return new Promise((function(i,r){var s=Ee(t.config),a=e.map(pe).filter((function(e){return!!e&&-1!==s.indexOf(e)}));return t.getKeySystemSelectionPromise(a).then((function(e){var t=e.keySystem,s=ye(t);s?i(s):r(new Error('Unable to find format for key-system "'+t+'"'))})).catch(r)}))},i.loadKey=function(e){var t=this,i=e.keyInfo.decryptdata,r=this.getKeyIdString(i),s="(keyId: "+r+' format: "'+i.keyFormat+'" method: '+i.method+" uri: "+i.uri+")";this.log("Starting session for key "+s);var a=this.keyIdToKeySessionPromise[r];return a||(a=this.getKeySystemForKeyPromise(i).then((function(r){var a=r.keySystem,o=r.mediaKeys;return t.throwIfDestroyed(),t.log("Handle encrypted media sn: "+e.frag.sn+" "+e.frag.type+": "+e.frag.level+" using key "+s),t.attemptSetMediaKeys(a,o).then((function(){return t.throwIfDestroyed(),t.createMediaKeySessionContext({keySystem:a,mediaKeys:o,decryptdata:i})}))})),(this.keyIdToKeySessionPromise[r]=a.then((function(e){var r="cenc";return t.generateRequestWithPreferredKeySession(e,r,i.pssh,"playlist-key")}))).catch((function(e){return t.handleError(e)}))),a},i.throwIfDestroyed=function(e){if(!this.hls)throw new Error("invalid state")},i.handleError=function(e){this.hls&&(this.error(e.message),e instanceof Fn?this.hls.trigger(k.ERROR,e.data):this.hls.trigger(k.ERROR,{type:B.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_NO_KEYS,error:e,fatal:!0}))},i.getKeySystemForKeyPromise=function(e){var t=this.getKeyIdString(e),i=this.keyIdToKeySessionPromise[t];if(!i){var r=pe(e.keyFormat),s=r?[r]:Ee(this.config);return this.attemptKeySystemAccess(s)}return i},i.getKeySystemSelectionPromise=function(e){if(e.length||(e=Ee(this.config)),0===e.length)throw new Fn({type:B.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},"Missing key-system license configuration options "+JSON.stringify({drmSystems:this.config.drmSystems}));return this.attemptKeySystemAccess(e)},i.attemptSetMediaKeys=function(e,t){var i=this,r=this.setMediaKeysQueue.slice();this.log('Setting media-keys for "'+e+'"');var s=Promise.all(r).then((function(){if(!i.media)throw new Error("Attempted to set mediaKeys without media element attached");return i.media.setMediaKeys(t)}));return this.setMediaKeysQueue.push(s),s.then((function(){i.log('Media-keys set for "'+e+'"'),r.push(s),i.setMediaKeysQueue=i.setMediaKeysQueue.filter((function(e){return-1===r.indexOf(e)}))}))},i.generateRequestWithPreferredKeySession=function(e,t,i,r){var s,a,o=this,n=null==(s=this.config.drmSystems)||null==(a=s[e.keySystem])?void 0:a.generateRequest;if(n)try{var l=n.call(this.hls,t,i,e);if(!l)throw new Error("Invalid response from configured generateRequest filter");t=l.initDataType,i=e.decryptdata.pssh=l.initData?new Uint8Array(l.initData):null}catch(e){var h;if(this.warn(e.message),null!=(h=this.hls)&&h.config.debug)throw e}if(null===i)return this.log('Skipping key-session request for "'+r+'" (no initData)'),Promise.resolve(e);var A=this.getKeyIdString(e.decryptdata);this.log('Generating key-session request for "'+r+'": '+A+" (init data type: "+t+" length: "+(i?i.byteLength:null)+")");var d=new za,c=e._onmessage=function(t){var i=e.mediaKeysSession;if(i){var r=t.messageType,s=t.message;o.log('"'+r+'" message event for session "'+i.sessionId+'" message size: '+s.byteLength),"license-request"===r||"license-renewal"===r?o.renewLicense(e,s).catch((function(e){o.handleError(e),d.emit("error",e)})):"license-release"===r?e.keySystem===ce.FAIRPLAY&&(o.updateKeySession(e,se("acknowledged")),o.removeSession(e)):o.warn('unhandled media key message type "'+r+'"')}else d.emit("error",new Error("invalid state"))},u=e._onkeystatuseschange=function(t){if(e.mediaKeysSession){o.onKeyStatusChange(e);var i=e.keyStatus;d.emit("keyStatus",i),"expired"===i&&(o.warn(e.keySystem+" expired for key "+A),o.renewKeySession(e))}else d.emit("error",new Error("invalid state"))};e.mediaKeysSession.addEventListener("message",c),e.mediaKeysSession.addEventListener("keystatuseschange",u);var p=new Promise((function(e,t){d.on("error",t),d.on("keyStatus",(function(i){i.startsWith("usable")?e():"output-restricted"===i?t(new Fn({type:B.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,fatal:!1},"HDCP level output restricted")):"internal-error"===i?t(new Fn({type:B.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_STATUS_INTERNAL_ERROR,fatal:!0},'key status changed to "'+i+'"')):"expired"===i?t(new Error("key expired while generating request")):o.warn('unhandled key status change "'+i+'"')}))}));return e.mediaKeysSession.generateRequest(t,i).then((function(){var t;o.log('Request generated for key-session "'+(null==(t=e.mediaKeysSession)?void 0:t.sessionId)+'" keyId: '+A)})).catch((function(e){throw new Fn({type:B.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_NO_SESSION,error:e,fatal:!1},"Error generating key-session request: "+e)})).then((function(){return p})).catch((function(t){throw d.removeAllListeners(),o.removeSession(e),t})).then((function(){return d.removeAllListeners(),e}))},i.onKeyStatusChange=function(e){var t=this;e.mediaKeysSession.keyStatuses.forEach((function(i,r){t.log('key status change "'+i+'" for keyStatuses keyId: '+ke.hexDump("buffer"in r?new Uint8Array(r.buffer,r.byteOffset,r.byteLength):new Uint8Array(r))+" session keyId: "+ke.hexDump(new Uint8Array(e.decryptdata.keyId||[]))+" uri: "+e.decryptdata.uri),e.keyStatus=i}))},i.fetchServerCertificate=function(e){var t=this.config,i=new(0,t.loader)(t),r=this.getServerCertificateUrl(e);return r?(this.log('Fetching server certificate for "'+e+'"'),new Promise((function(s,a){var o={responseType:"arraybuffer",url:r},n=t.certLoadPolicy.default,l={loadPolicy:n,timeout:n.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},h={onSuccess:function(e,t,i,r){s(e.data)},onError:function(t,i,s,n){a(new Fn({type:B.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:s,response:p({url:o.url,data:void 0},t)},'"'+e+'" certificate request failed ('+r+"). Status: "+t.code+" ("+t.text+")"))},onTimeout:function(t,i,s){a(new Fn({type:B.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:s,response:{url:o.url,data:void 0}},'"'+e+'" certificate request timed out ('+r+")"))},onAbort:function(e,t,i){a(new Error("aborted"))}};i.load(o,l,h)}))):Promise.resolve()},i.setMediaKeysServerCertificate=function(e,t,i){var r=this;return new Promise((function(s,a){e.setServerCertificate(i).then((function(a){r.log("setServerCertificate "+(a?"success":"not supported by CDM")+" ("+(null==i?void 0:i.byteLength)+') on "'+t+'"'),s(e)})).catch((function(e){a(new Fn({type:B.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:e,fatal:!0},e.message))}))}))},i.renewLicense=function(e,t){var i=this;return this.requestLicense(e,new Uint8Array(t)).then((function(t){return i.updateKeySession(e,new Uint8Array(t)).catch((function(e){throw new Fn({type:B.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_SESSION_UPDATE_FAILED,error:e,fatal:!0},e.message)}))}))},i.unpackPlayReadyKeyMessage=function(e,t){var i=String.fromCharCode.apply(null,new Uint16Array(t.buffer));if(!i.includes("PlayReadyKeyMessage"))return e.setRequestHeader("Content-Type","text/xml; charset=utf-8"),t;var r=(new DOMParser).parseFromString(i,"application/xml"),s=r.querySelectorAll("HttpHeader");if(s.length>0)for(var a,o=0,n=s.length;o<n;o++){var l,h,A=null==(l=(a=s[o]).querySelector("name"))?void 0:l.textContent,d=null==(h=a.querySelector("value"))?void 0:h.textContent;A&&d&&e.setRequestHeader(A,d)}var c=r.querySelector("Challenge"),u=null==c?void 0:c.textContent;if(!u)throw new Error("Cannot find <Challenge> in key message");return se(atob(u))},i.setupLicenseXHR=function(e,t,i,r){var s=this,a=this.config.licenseXhrSetup;return a?Promise.resolve().then((function(){if(!i.decryptdata)throw new Error("Key removed");return a.call(s.hls,e,t,i,r)})).catch((function(o){if(!i.decryptdata)throw o;return e.open("POST",t,!0),a.call(s.hls,e,t,i,r)})).then((function(i){return e.readyState||e.open("POST",t,!0),{xhr:e,licenseChallenge:i||r}})):(e.open("POST",t,!0),Promise.resolve({xhr:e,licenseChallenge:r}))},i.requestLicense=function(e,t){var i=this,r=this.config.keyLoadPolicy.default;return new Promise((function(s,a){var o=i.getLicenseServerUrlOrThrow(e.keySystem);i.log("Sending license request to URL: "+o);var n=new XMLHttpRequest;n.responseType="arraybuffer",n.onreadystatechange=function(){if(!i.hls||!e.mediaKeysSession)return a(new Error("invalid state"));if(4===n.readyState)if(200===n.status){i._requestLicenseFailureCount=0;var l=n.response;i.log("License received "+(l instanceof ArrayBuffer?l.byteLength:l));var h=i.config.licenseResponseCallback;if(h)try{l=h.call(i.hls,n,o,e)}catch(e){i.error(e)}s(l)}else{var A=r.errorRetry,d=A?A.maxNumRetry:0;if(i._requestLicenseFailureCount++,i._requestLicenseFailureCount>d||n.status>=400&&n.status<500)a(new Fn({type:B.KEY_SYSTEM_ERROR,details:D.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:n,response:{url:o,data:void 0,code:n.status,text:n.statusText}},"License Request XHR failed ("+o+"). Status: "+n.status+" ("+n.statusText+")"));else{var c=d-i._requestLicenseFailureCount+1;i.warn("Retrying license request, "+c+" attempts left"),i.requestLicense(e,t).then(s,a)}}},e.licenseXhr&&e.licenseXhr.readyState!==XMLHttpRequest.DONE&&e.licenseXhr.abort(),e.licenseXhr=n,i.setupLicenseXHR(n,o,e,t).then((function(t){var r=t.xhr,s=t.licenseChallenge;e.keySystem==ce.PLAYREADY&&(s=i.unpackPlayReadyKeyMessage(r,s)),r.send(s)}))}))},i.onMediaAttached=function(e,t){if(this.config.emeEnabled){var i=t.media;this.media=i,i.addEventListener("encrypted",this.onMediaEncrypted),i.addEventListener("waitingforkey",this.onWaitingForKey)}},i.onMediaDetached=function(){var e,i=this,r=this.media,s=this.mediaKeySessions;r&&(r.removeEventListener("encrypted",this.onMediaEncrypted),r.removeEventListener("waitingforkey",this.onWaitingForKey),this.media=null),this._requestLicenseFailureCount=0,this.setMediaKeysQueue=[],this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},ht.clearKeyUriToKeyIdMap();var a=s.length;t.CDMCleanupPromise=Promise.all(s.map((function(e){return i.removeSession(e)})).concat(null==r||null==(e=r.setMediaKeys(null))?void 0:e.catch((function(e){i.log("Could not clear media keys: "+e)})))).then((function(){a&&(i.log("finished closing key sessions and clearing media keys"),s.length=0)})).catch((function(e){i.log("Could not close sessions and clear media keys: "+e)}))},i.onManifestLoading=function(){this.keyFormatPromise=null},i.onManifestLoaded=function(e,t){var i=t.sessionKeys;if(i&&this.config.emeEnabled&&!this.keyFormatPromise){var r=i.reduce((function(e,t){return-1===e.indexOf(t.keyFormat)&&e.push(t.keyFormat),e}),[]);this.log("Selecting key-system from session-keys "+r.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(r)}},i.removeSession=function(e){var t=this,i=e.mediaKeysSession,r=e.licenseXhr;if(i){this.log("Remove licenses and keys and close session "+i.sessionId),e._onmessage&&(i.removeEventListener("message",e._onmessage),e._onmessage=void 0),e._onkeystatuseschange&&(i.removeEventListener("keystatuseschange",e._onkeystatuseschange),e._onkeystatuseschange=void 0),r&&r.readyState!==XMLHttpRequest.DONE&&r.abort(),e.mediaKeysSession=e.decryptdata=e.licenseXhr=void 0;var s=this.mediaKeySessions.indexOf(e);return s>-1&&this.mediaKeySessions.splice(s,1),i.remove().catch((function(e){t.log("Could not remove session: "+e)})).then((function(){return i.close()})).catch((function(e){t.log("Could not close session: "+e)}))}},t}(b);Tn.CDMCleanupPromise=void 0;var Ln,Kn,qn,xn,Fn=function(e){function t(t,i){var r;return(r=e.call(this,i)||this).data=void 0,t.error||(t.error=new Error(i)),r.data=t,t.err=t.error,r}return A(t,e),t}(C(Error));(function(e){e.MANIFEST="m",e.AUDIO="a",e.VIDEO="v",e.MUXED="av",e.INIT="i",e.CAPTION="c",e.TIMED_TEXT="tt",e.KEY="k",e.OTHER="o"})(Ln||(Ln={})),function(e){e.DASH="d",e.HLS="h",e.SMOOTH="s",e.OTHER="o"}(Kn||(Kn={})),function(e){e.OBJECT="CMCD-Object",e.REQUEST="CMCD-Request",e.SESSION="CMCD-Session",e.STATUS="CMCD-Status"}(qn||(qn={}));var Un=((xn={})[qn.OBJECT]=["br","d","ot","tb"],xn[qn.REQUEST]=["bl","dl","mtp","nor","nrr","su"],xn[qn.SESSION]=["cid","pr","sf","sid","st","v"],xn[qn.STATUS]=["bs","rtp"],xn),Gn=function e(t,i){Array.isArray(t)&&(t=t.map((function(t){return t instanceof e?t:new e(t)}))),this.value=t,this.params=i},On="Dict";function Jn(e){return Array.isArray(e)?JSON.stringify(e):e instanceof Map?"Map{}":e instanceof Set?"Set{}":"object"==typeof e?JSON.stringify(e):String(e)}function Yn(e,t,i,r){return new Error("failed to "+e+' "'+Jn(t)+'" as '+i,{cause:r})}function Nn(e,t,i){return Yn("serialize",e,t,i)}var Pn=function(e){this.description=e},jn="Bare Item",zn="Boolean";function Wn(e){if("boolean"!=typeof e)throw Nn(e,zn);return e?"?1":"?0"}var Zn="Byte Sequence";function Vn(e){if(!1===ArrayBuffer.isView(e))throw Nn(e,Zn);return":"+Ai(e)+":"}var Hn="Integer";function Xn(e){return e<-999999999999999||999999999999999<e}function _n(e){if(Xn(e))throw Nn(e,Hn);return e.toString()}function $n(e){return"@"+_n(e.getTime()/1e3)}var el="Decimal";function tl(e){var t=di(e,3);if(Math.floor(Math.abs(t)).toString().length>12)throw Nn(e,el);var i=t.toString();return i.includes(".")?i:i+".0"}var il="String",rl=/[\x00-\x1f\x7f]+/;function sl(e){if(rl.test(e))throw Nn(e,il);return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'}function al(e){return e.description||e.toString().slice(7,-1)}var ol="Token";function nl(e){var t=al(e);if(!1===/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(t))throw Nn(t,ol);return t}function ll(e){switch(typeof e){case"number":if(!S(e))throw Nn(e,jn);return Number.isInteger(e)?_n(e):tl(e);case"string":return sl(e);case"symbol":return nl(e);case"boolean":return Wn(e);case"object":if(e instanceof Date)return $n(e);if(e instanceof Uint8Array)return Vn(e);if(e instanceof Pn)return nl(e);default:throw Nn(e,jn)}}var hl="Key";function Al(e){if(!1===/^[a-z*][a-z0-9\-_.*]*$/.test(e))throw Nn(e,hl);return e}function dl(e){return null==e?"":Object.entries(e).map((function(e){var t=e[0],i=e[1];return!0===i?";"+Al(t):";"+Al(t)+"="+ll(i)})).join("")}function cl(e){return e instanceof Gn?""+ll(e.value)+dl(e.params):ll(e)}function ul(e){return"("+e.value.map(cl).join(" ")+")"+dl(e.params)}function pl(e,t){if(void 0===t&&(t={whitespace:!0}),"object"!=typeof e)throw Nn(e,On);var i=e instanceof Map?e.entries():Object.entries(e),r=(null==t?void 0:t.whitespace)?" ":"";return Array.from(i).map((function(e){var t=e[0],i=e[1];i instanceof Gn==0&&(i=new Gn(i));var r=Al(t);return!0===i.value?r+=dl(i.params):(r+="=",Array.isArray(i.value)?r+=ul(i):r+=cl(i)),r})).join(","+r)}function gl(e,t){return pl(e,t)}function ml(e){return"ot"===e||"sf"===e||"st"===e}function yl(e){return"number"==typeof e?S(e):null!=e&&""!==e&&!1!==e}var El=function(e){return Math.round(e)},Cl=function(e){return 100*El(e/100)},fl={br:El,d:El,bl:Cl,dl:Cl,mtp:Cl,nor:function(e,t){return(null==t?void 0:t.baseUrl)&&(e=ci(e,t.baseUrl)),encodeURIComponent(e)},rtp:Cl,tb:El};function Il(e,t){var i={};if(null==e||"object"!=typeof e)return i;var r=Object.keys(e).sort(),s=l({},fl,null==t?void 0:t.formatters),a=null==t?void 0:t.filter;return r.forEach((function(r){if(!(null==a?void 0:a(r))){var o=e[r],n=s[r];n&&(o=n(o,t)),"v"===r&&1===o||"pr"==r&&1===o||yl(o)&&(ml(r)&&"string"==typeof o&&(o=new Pn(o)),i[r]=o)}})),i}function wl(e,t){return void 0===t&&(t={}),e?gl(Il(e,t),l({whitespace:!1},t)):""}function Sl(e,t){void 0===t&&(t={});var i={};if(!e)return i;var r=Object.entries(e),s=Object.entries(Un).concat(Object.entries((null==t?void 0:t.customHeaderMap)||{})),a=r.reduce((function(e,t){var i,r,a=t[0],o=t[1],n=(null===(i=s.find((function(e){return e[1].includes(a)})))||void 0===i?void 0:i[0])||qn.REQUEST;return null!==(r=e[n])&&void 0!==r||(e[n]={}),e[n][a]=o,e}),{});return Object.entries(a).reduce((function(e,i){var r=i[0],s=i[1];return e[r]=wl(s,t),e}),i)}function Ml(e,t,i){return l(e,Sl(t,i))}var vl="CMCD";function kl(e,t){if(void 0===t&&(t={}),!e)return"";var i=wl(e,t);return vl+"="+encodeURIComponent(i)}var Bl=/CMCD=[^&#]+/;function Dl(e,t,i){var r=kl(t,i);if(!r)return e;if(Bl.test(e))return e.replace(Bl,r);var s=e.includes("?")?"&":"?";return""+e+s+r}var bl=function(){function e(e){var t=this;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=function(){t.initialized&&(t.starved=!0),t.buffering=!0},this.onPlaying=function(){t.initialized||(t.initialized=!0),t.buffering=!1},this.applyPlaylistData=function(e){try{t.apply(e,{ot:Ln.MANIFEST,su:!t.initialized})}catch(e){t.hls.logger.warn("Could not generate manifest CMCD data.",e)}},this.applyFragmentData=function(e){try{var i=e.frag,r=e.part,s=t.hls.levels[i.level],a=t.getObjectType(i),o={d:1e3*(r||i).duration,ot:a};a!==Ln.VIDEO&&a!==Ln.AUDIO&&a!=Ln.MUXED||(o.br=s.bitrate/1e3,o.tb=t.getTopBandwidth(a)/1e3,o.bl=t.getBufferLength(a));var n=r?t.getNextPart(r):t.getNextFrag(i);null!=n&&n.url&&n.url!==i.url&&(o.nor=n.url),t.apply(e,o)}catch(e){t.hls.logger.warn("Could not generate segment CMCD data.",e)}},this.hls=e;var i=this.config=e.config,r=i.cmcd;null!=r&&(i.pLoader=this.createPlaylistLoader(),i.fLoader=this.createFragmentLoader(),this.sid=r.sessionId||ui(),this.cid=r.contentId,this.useHeaders=!0===r.useHeaders,this.includeKeys=r.includeKeys,this.registerListeners())}var t=e.prototype;return t.registerListeners=function(){var e=this.hls;e.on(k.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(k.MEDIA_DETACHED,this.onMediaDetached,this),e.on(k.BUFFER_CREATED,this.onBufferCreated,this)},t.unregisterListeners=function(){var e=this.hls;e.off(k.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(k.MEDIA_DETACHED,this.onMediaDetached,this),e.off(k.BUFFER_CREATED,this.onBufferCreated,this)},t.destroy=function(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=this.media=null},t.onMediaAttached=function(e,t){this.media=t.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)},t.onMediaDetached=function(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)},t.onBufferCreated=function(e,t){var i,r;this.audioBuffer=null==(i=t.tracks.audio)?void 0:i.buffer,this.videoBuffer=null==(r=t.tracks.video)?void 0:r.buffer},t.createData=function(){var e;return{v:1,sf:Kn.HLS,sid:this.sid,cid:this.cid,pr:null==(e=this.media)?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}},t.apply=function(e,t){void 0===t&&(t={}),l(t,this.createData());var i=t.ot===Ln.INIT||t.ot===Ln.VIDEO||t.ot===Ln.MUXED;this.starved&&i&&(t.bs=!0,t.su=!0,this.starved=!1),null==t.su&&(t.su=this.buffering);var r=this.includeKeys;r&&(t=Object.keys(t).reduce((function(e,i){return r.includes(i)&&(e[i]=t[i]),e}),{}));var s={baseUrl:e.url};this.useHeaders?(e.headers||(e.headers={}),Ml(e.headers,t,s)):e.url=Dl(e.url,t,s)},t.getNextFrag=function(e){var t,i=null==(t=this.hls.levels[e.level])?void 0:t.details;if(i){var r=e.sn-i.startSN;return i.fragments[r+1]}},t.getNextPart=function(e){var t,i,r=e.index,s=e.fragment,a=null==(t=this.hls.levels[s.level])||null==(i=t.details)?void 0:i.partList;if(a)for(var o=s.sn,n=a.length-1;n>=0;n--){var l=a[n];if(l.index===r&&l.fragment.sn===o)return a[n+1]}},t.getObjectType=function(e){var t=e.type;return"subtitle"===t?Ln.TIMED_TEXT:"initSegment"===e.sn?Ln.INIT:"audio"===t?Ln.AUDIO:"main"===t?this.hls.audioTracks.length?Ln.VIDEO:Ln.MUXED:void 0},t.getTopBandwidth=function(e){var t,i=0,r=this.hls;if(e===Ln.AUDIO)t=r.audioTracks;else{var s=r.maxAutoLevel,a=s>-1?s+1:r.levels.length;t=r.levels.slice(0,a)}for(var n,l=o(t);!(n=l()).done;){var h=n.value;h.bitrate>i&&(i=h.bitrate)}return i>0?i:NaN},t.getBufferLength=function(e){var t=this.media,i=e===Ln.AUDIO?this.audioBuffer:this.videoBuffer;return i&&t?1e3*Pr.bufferInfo(i,t.currentTime,this.config.maxBufferHole).len:NaN},t.createPlaylistLoader=function(){var e=this.config.pLoader,t=this.applyPlaylistData,i=e||this.config.loader;return function(){function e(e){this.loader=void 0,this.loader=new i(e)}var r=e.prototype;return r.destroy=function(){this.loader.destroy()},r.abort=function(){this.loader.abort()},r.load=function(e,i,r){t(e),this.loader.load(e,i,r)},a(e,[{key:"stats",get:function(){return this.loader.stats}},{key:"context",get:function(){return this.loader.context}}])}()},t.createFragmentLoader=function(){var e=this.config.fLoader,t=this.applyFragmentData,i=e||this.config.loader;return function(){function e(e){this.loader=void 0,this.loader=new i(e)}var r=e.prototype;return r.destroy=function(){this.loader.destroy()},r.abort=function(){this.loader.abort()},r.load=function(e,i,r){t(e),this.loader.load(e,i,r)},a(e,[{key:"stats",get:function(){return this.loader.stats}},{key:"context",get:function(){return this.loader.context}}])}()},e}(),Ql=3e5,Rl=function(e){function t(t){var i;return(i=e.call(this,"content-steering",t.logger)||this).hls=void 0,i.loader=null,i.uri=null,i.pathwayId=".",i._pathwayPriority=null,i.timeToLoad=300,i.reloadTimer=-1,i.updated=0,i.started=!1,i.enabled=!0,i.levels=null,i.audioTracks=null,i.subtitleTracks=null,i.penalizedPathways={},i.hls=t,i.registerListeners(),i}A(t,e);var i=t.prototype;return i.registerListeners=function(){var e=this.hls;e.on(k.MANIFEST_LOADING,this.onManifestLoading,this),e.on(k.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(k.MANIFEST_PARSED,this.onManifestParsed,this),e.on(k.ERROR,this.onError,this)},i.unregisterListeners=function(){var e=this.hls;e&&(e.off(k.MANIFEST_LOADING,this.onManifestLoading,this),e.off(k.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(k.MANIFEST_PARSED,this.onManifestParsed,this),e.off(k.ERROR,this.onError,this))},i.pathways=function(){return(this.levels||[]).reduce((function(e,t){return-1===e.indexOf(t.pathwayId)&&e.push(t.pathwayId),e}),[])},i.startLoad=function(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){var e=1e3*this.timeToLoad-(performance.now()-this.updated);if(e>0)return void this.scheduleRefresh(this.uri,e)}this.loadSteeringManifest(this.uri)}},i.stopLoad=function(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout()},i.clearTimeout=function(){-1!==this.reloadTimer&&(self.clearTimeout(this.reloadTimer),this.reloadTimer=-1)},i.destroy=function(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null},i.removeLevel=function(e){var t=this.levels;t&&(this.levels=t.filter((function(t){return t!==e})))},i.onManifestLoading=function(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null},i.onManifestLoaded=function(e,t){var i=t.contentSteering;null!==i&&(this.pathwayId=i.pathwayId,this.uri=i.uri,this.started&&this.startLoad())},i.onManifestParsed=function(e,t){this.audioTracks=t.audioTracks,this.subtitleTracks=t.subtitleTracks},i.onError=function(e,t){var i=t.errorAction;if((null==i?void 0:i.action)===ur.SendAlternateToPenaltyBox&&i.flags===pr.MoveAllAlternatesMatchingHost){var r=this.levels,s=this._pathwayPriority,a=this.pathwayId;if(t.context){var o=t.context,n=o.groupId,l=o.pathwayId,h=o.type;n&&r?a=this.getPathwayForGroupId(n,h,a):l&&(a=l)}a in this.penalizedPathways||(this.penalizedPathways[a]=performance.now()),!s&&r&&(s=this.pathways()),s&&s.length>1&&(this.updatePathwayPriority(s),i.resolved=this.pathwayId!==a),i.resolved||this.warn("Could not resolve "+t.details+' ("'+t.error.message+'") with content-steering for Pathway: '+a+" levels: "+(r?r.length:r)+" priorities: "+JSON.stringify(s)+" penalized: "+JSON.stringify(this.penalizedPathways))}},i.filterParsedLevels=function(e){this.levels=e;var t=this.getLevelsForPathway(this.pathwayId);if(0===t.length){var i=e[0].pathwayId;this.log("No levels found in Pathway "+this.pathwayId+'. Setting initial Pathway to "'+i+'"'),t=this.getLevelsForPathway(i),this.pathwayId=i}return t.length!==e.length?(this.log("Found "+t.length+"/"+e.length+' levels in Pathway "'+this.pathwayId+'"'),t):e},i.getLevelsForPathway=function(e){return null===this.levels?[]:this.levels.filter((function(t){return e===t.pathwayId}))},i.updatePathwayPriority=function(e){var t;this._pathwayPriority=e;var i=this.penalizedPathways,r=performance.now();Object.keys(i).forEach((function(e){r-i[e]>Ql&&delete i[e]}));for(var s=0;s<e.length;s++){var a=e[s];if(!(a in i)){if(a===this.pathwayId)return;var o=this.hls.nextLoadLevel,n=this.hls.levels[o];if((t=this.getLevelsForPathway(a)).length>0){this.log('Setting Pathway to "'+a+'"'),this.pathwayId=a,_i(t),this.hls.trigger(k.LEVELS_UPDATED,{levels:t});var l=this.hls.levels[o];n&&l&&this.levels&&(l.attrs["STABLE-VARIANT-ID"]!==n.attrs["STABLE-VARIANT-ID"]&&l.bitrate!==n.bitrate&&this.log("Unstable Pathways change from bitrate "+n.bitrate+" to "+l.bitrate),this.hls.nextLoadLevel=o);break}}}},i.getPathwayForGroupId=function(e,t,i){for(var r=this.getLevelsForPathway(i).concat(this.levels||[]),s=0;s<r.length;s++)if(t===Nt.AUDIO_TRACK&&r[s].hasAudioGroup(e)||t===Nt.SUBTITLE_TRACK&&r[s].hasSubtitleGroup(e))return r[s].pathwayId;return i},i.clonePathways=function(e){var t=this,i=this.levels;if(i){var r={},s={};e.forEach((function(e){var a=e.ID,o=e["BASE-ID"],n=e["URI-REPLACEMENT"];if(!i.some((function(e){return e.pathwayId===a}))){var l=t.getLevelsForPathway(o).map((function(e){var t=new j(e.attrs);t["PATHWAY-ID"]=a;var i=t.AUDIO&&t.AUDIO+"_clone_"+a,o=t.SUBTITLES&&t.SUBTITLES+"_clone_"+a;i&&(r[t.AUDIO]=i,t.AUDIO=i),o&&(s[t.SUBTITLES]=o,t.SUBTITLES=o);var l=Ll(e.uri,t["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",n),h=new Ui({attrs:t,audioCodec:e.audioCodec,bitrate:e.bitrate,height:e.height,name:e.name,url:l,videoCodec:e.videoCodec,width:e.width});if(e.audioGroups)for(var A=1;A<e.audioGroups.length;A++)h.addGroupId("audio",e.audioGroups[A]+"_clone_"+a);if(e.subtitleGroups)for(var d=1;d<e.subtitleGroups.length;d++)h.addGroupId("text",e.subtitleGroups[d]+"_clone_"+a);return h}));i.push.apply(i,l),Tl(t.audioTracks,r,n,a),Tl(t.subtitleTracks,s,n,a)}}))}},i.loadSteeringManifest=function(e){var t,i=this,r=this.hls.config,s=r.loader;this.loader&&this.loader.destroy(),this.loader=new s(r);try{t=new self.URL(e)}catch(t){return this.enabled=!1,void this.log("Failed to parse Steering Manifest URI: "+e)}if("data:"!==t.protocol){var a=0|(this.hls.bandwidthEstimate||r.abrEwmaDefaultEstimate);t.searchParams.set("_HLS_pathway",this.pathwayId),t.searchParams.set("_HLS_throughput",""+a)}var o={responseType:"json",url:t.href},n=r.steeringManifestLoadPolicy.default,l=n.errorRetry||n.timeoutRetry||{},h={loadPolicy:n,timeout:n.maxLoadTimeMs,maxRetry:l.maxNumRetry||0,retryDelay:l.retryDelayMs||0,maxRetryDelay:l.maxRetryDelayMs||0},A={onSuccess:function(e,r,s,a){i.log('Loaded steering manifest: "'+t+'"');var o=e.data;if(1===(null==o?void 0:o.VERSION)){i.updated=performance.now(),i.timeToLoad=o.TTL;var n=o["RELOAD-URI"],l=o["PATHWAY-CLONES"],h=o["PATHWAY-PRIORITY"];if(n)try{i.uri=new self.URL(n,t).href}catch(e){return i.enabled=!1,void i.log("Failed to parse Steering Manifest RELOAD-URI: "+n)}i.scheduleRefresh(i.uri||s.url),l&&i.clonePathways(l);var A={steeringManifest:o,url:t.toString()};i.hls.trigger(k.STEERING_MANIFEST_LOADED,A),h&&i.updatePathwayPriority(h)}else i.log("Steering VERSION "+o.VERSION+" not supported!")},onError:function(e,t,r,s){if(i.log("Error loading steering manifest: "+e.code+" "+e.text+" ("+t.url+")"),i.stopLoad(),410===e.code)return i.enabled=!1,void i.log("Steering manifest "+t.url+" no longer available");var a=1e3*i.timeToLoad;if(429!==e.code)i.scheduleRefresh(i.uri||t.url,a);else{var o=i.loader;if("function"==typeof(null==o?void 0:o.getResponseHeader)){var n=o.getResponseHeader("Retry-After");n&&(a=1e3*parseFloat(n))}i.log("Steering manifest "+t.url+" rate limited")}},onTimeout:function(e,t,r){i.log("Timeout loading steering manifest ("+t.url+")"),i.scheduleRefresh(i.uri||t.url)}};this.log("Requesting steering manifest: "+t),this.loader.load(o,h,A)},i.scheduleRefresh=function(e,t){var i=this;void 0===t&&(t=1e3*this.timeToLoad),this.clearTimeout(),this.reloadTimer=self.setTimeout((function(){var t,r=null==(t=i.hls)?void 0:t.media;!r||r.ended?i.scheduleRefresh(e,1e3*i.timeToLoad):i.loadSteeringManifest(e)}),t)},a(t,[{key:"pathwayPriority",get:function(){return this._pathwayPriority},set:function(e){this.updatePathwayPriority(e)}}])}(b);function Tl(e,t,i,r){e&&Object.keys(t).forEach((function(s){var a=e.filter((function(e){return e.groupId===s})).map((function(e){var a=l({},e);return a.details=void 0,a.attrs=new j(a.attrs),a.url=a.attrs.URI=Ll(e.url,e.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",i),a.groupId=a.attrs["GROUP-ID"]=t[s],a.attrs["PATHWAY-ID"]=r,a}));e.push.apply(e,a)}))}function Ll(e,t,i,r){var s,a=r.HOST,o=r.PARAMS,n=r[i];t&&(s=null==n?void 0:n[t])&&(e=s);var l=new self.URL(e);return a&&!s&&(l.host=a),o&&Object.keys(o).sort().forEach((function(e){e&&l.searchParams.set(e,o[e])})),l.href}var Kl=/^age:\s*[\d.]+\s*$/im,ql=function(){function e(e){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=e&&e.xhrSetup||null,this.stats=new H,this.retryDelay=0}var t=e.prototype;return t.destroy=function(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null},t.abortInternal=function(){var e=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),e&&(e.onreadystatechange=null,e.onprogress=null,4!==e.readyState&&(this.stats.aborted=!0,e.abort()))},t.abort=function(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)},t.load=function(e,t,i){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=e,this.config=t,this.callbacks=i,this.loadInternal()},t.loadInternal=function(){var e=this,t=this.config,i=this.context;if(t&&i){var r=this.loader=new self.XMLHttpRequest,s=this.stats;s.loading.first=0,s.loaded=0,s.aborted=!1;var a=this.xhrSetup;a?Promise.resolve().then((function(){if(e.loader===r&&!e.stats.aborted)return a(r,i.url)})).catch((function(t){if(e.loader===r&&!e.stats.aborted)return r.open("GET",i.url,!0),a(r,i.url)})).then((function(){e.loader!==r||e.stats.aborted||e.openAndSendXhr(r,i,t)})).catch((function(t){e.callbacks.onError({code:r.status,text:t.message},i,r,s)})):this.openAndSendXhr(r,i,t)}},t.openAndSendXhr=function(e,t,i){e.readyState||e.open("GET",t.url,!0);var r=t.headers,s=i.loadPolicy,a=s.maxTimeToFirstByteMs,o=s.maxLoadTimeMs;if(r)for(var n in r)e.setRequestHeader(n,r[n]);t.rangeEnd&&e.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=t.responseType,self.clearTimeout(this.requestTimeout),i.timeout=a&&S(a)?a:o,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),i.timeout),e.send()},t.readystatechange=function(){var e=this.context,t=this.loader,i=this.stats;if(e&&t){var r=t.readyState,s=this.config;if(!i.aborted&&r>=2&&(0===i.loading.first&&(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)))),4===r)){self.clearTimeout(this.requestTimeout),t.onreadystatechange=null,t.onprogress=null;var a=t.status,o="text"!==t.responseType;if(a>=200&&a<300&&(o&&t.response||null!==t.responseText)){i.loading.end=Math.max(self.performance.now(),i.loading.first);var n=o?t.response:t.responseText,l="arraybuffer"===t.responseType?n.byteLength:n.length;if(i.loaded=i.total=l,i.bwEstimate=8e3*i.total/(i.loading.end-i.loading.first),!this.callbacks)return;var h=this.callbacks.onProgress;if(h&&h(i,e,n,t),!this.callbacks)return;var A={url:t.responseURL,data:n,code:a};this.callbacks.onSuccess(A,i,e,t)}else{var d=s.loadPolicy.errorRetry;rr(d,i.retry,!1,{url:e.url,data:void 0,code:a})?this.retry(d):(F.error(a+" while loading "+e.url),this.callbacks.onError({code:a,text:t.statusText},e,t,i))}}}},t.loadtimeout=function(){if(this.config){var e=this.config.loadPolicy.timeoutRetry;if(rr(e,this.stats.retry,!0))this.retry(e);else{var t;F.warn("timeout while loading "+(null==(t=this.context)?void 0:t.url));var i=this.callbacks;i&&(this.abortInternal(),i.onTimeout(this.stats,this.context,this.loader))}}},t.retry=function(e){var t=this.context,i=this.stats;this.retryDelay=tr(e,i.retry),i.retry++,F.warn((status?"HTTP Status "+status:"Timeout")+" while loading "+(null==t?void 0:t.url)+", retrying "+i.retry+"/"+e.maxNumRetry+" in "+this.retryDelay+"ms"),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)},t.loadprogress=function(e){var t=this.stats;t.loaded=e.loaded,e.lengthComputable&&(t.total=e.total)},t.getCacheAge=function(){var e=null;if(this.loader&&Kl.test(this.loader.getAllResponseHeaders())){var t=this.loader.getResponseHeader("age");e=t?parseFloat(t):null}return e},t.getResponseHeader=function(e){return this.loader&&new RegExp("^"+e+":\\s*[\\d.]+\\s*$","im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(e):null},e}();function xl(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(e){}return!1}var Fl=/(\d+)-(\d+)\/(\d+)/,Ul=function(){function e(e){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=e.fetchSetup||Yl,this.controller=new self.AbortController,this.stats=new H}var t=e.prototype;return t.destroy=function(){this.loader=this.callbacks=this.context=this.config=this.request=null,this.abortInternal(),this.response=null,this.fetchSetup=this.controller=this.stats=null},t.abortInternal=function(){this.controller&&!this.stats.loading.end&&(this.stats.aborted=!0,this.controller.abort())},t.abort=function(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)},t.load=function(e,t,i){var r=this,s=this.stats;if(s.loading.start)throw new Error("Loader can only be used once.");s.loading.start=self.performance.now();var a=Gl(e,this.controller.signal),o=i.onProgress,n="arraybuffer"===e.responseType,l=n?"byteLength":"length",h=t.loadPolicy,A=h.maxTimeToFirstByteMs,d=h.maxLoadTimeMs;this.context=e,this.config=t,this.callbacks=i,this.request=this.fetchSetup(e,a),self.clearTimeout(this.requestTimeout),t.timeout=A&&S(A)?A:d,this.requestTimeout=self.setTimeout((function(){r.abortInternal(),i.onTimeout(s,e,r.response)}),t.timeout),self.fetch(this.request).then((function(a){r.response=r.loader=a;var l=Math.max(self.performance.now(),s.loading.start);if(self.clearTimeout(r.requestTimeout),t.timeout=d,r.requestTimeout=self.setTimeout((function(){r.abortInternal(),i.onTimeout(s,e,r.response)}),d-(l-s.loading.start)),!a.ok){var h=a.status,A=a.statusText;throw new Nl(A||"fetch, bad network response",h,a)}return s.loading.first=l,s.total=Jl(a.headers)||s.total,o&&S(t.highWaterMark)?r.loadProgressively(a,s,e,t.highWaterMark,o):n?a.arrayBuffer():"json"===e.responseType?a.json():a.text()})).then((function(a){var n=r.response;if(!n)throw new Error("loader destroyed");self.clearTimeout(r.requestTimeout),s.loading.end=Math.max(self.performance.now(),s.loading.first);var h=a[l];h&&(s.loaded=s.total=h);var A={url:n.url,data:a,code:n.status};o&&!S(t.highWaterMark)&&o(s,e,a,n),i.onSuccess(A,s,e,n)})).catch((function(t){if(self.clearTimeout(r.requestTimeout),!s.aborted){var a=t&&t.code||0,o=t?t.message:null;i.onError({code:a,text:o},e,t?t.details:null,s)}}))},t.getCacheAge=function(){var e=null;if(this.response){var t=this.response.headers.get("age");e=t?parseFloat(t):null}return e},t.getResponseHeader=function(e){return this.response?this.response.headers.get(e):null},t.loadProgressively=function(e,t,i,r,s){void 0===r&&(r=0);var a=new ms,o=e.body.getReader(),n=function(){return o.read().then((function(o){if(o.done)return a.dataLength&&s(t,i,a.flush(),e),Promise.resolve(new ArrayBuffer(0));var l=o.value,h=l.length;return t.loaded+=h,h<r||a.dataLength?(a.push(l),a.dataLength>=r&&s(t,i,a.flush(),e)):s(t,i,l,e),n()})).catch((function(){return Promise.reject()}))};return n()},e}();function Gl(e,t){var i={method:"GET",mode:"cors",credentials:"same-origin",signal:t,headers:new self.Headers(l({},e.headers))};return e.rangeEnd&&i.headers.set("Range","bytes="+e.rangeStart+"-"+String(e.rangeEnd-1)),i}function Ol(e){var t=Fl.exec(e);if(t)return parseInt(t[2])-parseInt(t[1])+1}function Jl(e){var t=e.get("Content-Range");if(t){var i=Ol(t);if(S(i))return i}var r=e.get("Content-Length");if(r)return parseInt(r)}function Yl(e,t){return new self.Request(e.url,t)}var Nl=function(e){function t(t,i,r){var s;return(s=e.call(this,t)||this).code=void 0,s.details=void 0,s.code=i,s.details=r,s}return A(t,e),t}(C(Error)),Pl=/\s/,jl={newCue:function(e,t,i,r){for(var s,a,o,n,l,h=[],A=self.VTTCue||self.TextTrackCue,d=0;d<r.rows.length;d++)if(o=!0,n=0,l="",!(s=r.rows[d]).isEmpty()){for(var c,u=0;u<s.chars.length;u++)Pl.test(s.chars[u].uchar)&&o?n++:(l+=s.chars[u].uchar,o=!1);s.cueStartTime=t,t===i&&(i+=1e-4),n>=16?n--:n++;var p=en(l.trim()),g=nn(t,i,p);null!=e&&null!=(c=e.cues)&&c.getCueById(g)||((a=new A(t,i,p)).id=g,a.line=d+1,a.align="left",a.position=10+Math.min(80,10*Math.floor(8*n/32)),h.push(a))}return e&&h.length&&(h.sort((function(e,t){return"auto"===e.line||"auto"===t.line?0:e.line>8&&t.line>8?t.line-e.line:e.line-t.line})),h.forEach((function(t){return Vt(e,t)}))),h}},zl=p(p({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:6e7,maxBufferHole:.1,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,maxFragLookUpTolerance:.25,liveSyncDurationCount:3,liveSyncOnStallIncrease:1,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,loader:ql,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:Fr,bufferController:wo,capLevelController:Qn,errorController:gr,fpsController:Rn,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrEwmaDefaultEstimateMax:5e6,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:fe,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableID3MetadataCues:!0,useMediaCapabilities:!0,certLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null}},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:12e4,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3},Wl()),{},{subtitleStreamController:yo,subtitleTrackController:Co,timelineController:vn,audioStreamController:po,audioTrackController:go,emeController:Tn,cmcdController:bl,contentSteeringController:Rl});function Wl(){return{cueHandler:jl,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}}function Zl(e,t,i){if((t.liveSyncDurationCount||t.liveMaxLatencyDurationCount)&&(t.liveSyncDuration||t.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(void 0!==t.liveMaxLatencyDurationCount&&(void 0===t.liveSyncDurationCount||t.liveMaxLatencyDurationCount<=t.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(void 0!==t.liveMaxLatencyDuration&&(void 0===t.liveSyncDuration||t.liveMaxLatencyDuration<=t.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');var r=Vl(e),s=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return["manifest","level","frag"].forEach((function(e){var a=("level"===e?"playlist":e)+"LoadPolicy",o=void 0===t[a],n=[];s.forEach((function(i){var s=e+"Loading"+i,l=t[s];if(void 0!==l&&o){n.push(s);var h=r[a].default;switch(t[a]={default:h},i){case"TimeOut":h.maxLoadTimeMs=l,h.maxTimeToFirstByteMs=l;break;case"MaxRetry":h.errorRetry.maxNumRetry=l,h.timeoutRetry.maxNumRetry=l;break;case"RetryDelay":h.errorRetry.retryDelayMs=l,h.timeoutRetry.retryDelayMs=l;break;case"MaxRetryTimeout":h.errorRetry.maxRetryDelayMs=l,h.timeoutRetry.maxRetryDelayMs=l}}})),n.length&&i.warn('hls.js config: "'+n.join('", "')+'" setting(s) are deprecated, use "'+a+'": '+JSON.stringify(t[a]))})),p(p({},r),t)}function Vl(e){return e&&"object"==typeof e?Array.isArray(e)?e.map(Vl):Object.keys(e).reduce((function(t,i){return t[i]=Vl(e[i]),t}),{}):e}function Hl(e,t){var i=e.loader;i!==Ul&&i!==ql?(t.log("[config]: Custom loader detected, cannot enable progressive streaming"),e.progressive=!1):xl()&&(e.loader=Ul,e.progressive=!0,e.enableSoftwareAES=!0,t.log("[config]: Progressive streaming enabled, using FetchLoader"))}var Xl=function(e){function t(t,i){var r;return(r=e.call(this,t,"level-controller")||this)._levels=[],r._firstLevel=-1,r._maxAutoLevel=-1,r._startLevel=void 0,r.currentLevel=null,r.currentLevelIndex=-1,r.manualLevelIndex=-1,r.steering=void 0,r.onParsedComplete=void 0,r.steering=i,r._registerListeners(),r}A(t,e);var i=t.prototype;return i._registerListeners=function(){var e=this.hls;e.on(k.MANIFEST_LOADING,this.onManifestLoading,this),e.on(k.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(k.LEVEL_LOADED,this.onLevelLoaded,this),e.on(k.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(k.FRAG_BUFFERED,this.onFragBuffered,this),e.on(k.ERROR,this.onError,this)},i._unregisterListeners=function(){var e=this.hls;e.off(k.MANIFEST_LOADING,this.onManifestLoading,this),e.off(k.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(k.LEVEL_LOADED,this.onLevelLoaded,this),e.off(k.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(k.FRAG_BUFFERED,this.onFragBuffered,this),e.off(k.ERROR,this.onError,this)},i.destroy=function(){this._unregisterListeners(),this.steering=null,this.resetLevels(),e.prototype.destroy.call(this)},i.stopLoad=function(){this._levels.forEach((function(e){e.loadError=0,e.fragmentError=0})),e.prototype.stopLoad.call(this)},i.resetLevels=function(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1},i.onManifestLoading=function(e,t){this.resetLevels()},i.onManifestLoaded=function(e,t){var i=this.hls.config.preferManagedMediaSource,r=[],s={},a={},o=!1,n=!1,l=!1;t.levels.forEach((function(e){var t,h=e.attrs,A=e.audioCodec,d=e.videoCodec;A&&(e.audioCodec=A=St(A,i)||void 0),0===(null==(t=d)?void 0:t.indexOf("avc1"))&&(d=e.videoCodec=vt(d));var c=e.width,u=e.height,p=e.unknownCodecs;if(o||(o=!(!c||!u)),n||(n=!!d),l||(l=!!A),!(null!=p&&p.length||A&&!gt(A,"audio",i)||d&&!gt(d,"video",i))){var g=h.CODECS,m=h["FRAME-RATE"],y=h["HDCP-LEVEL"],E=h["PATHWAY-ID"],C=h.RESOLUTION,f=h["VIDEO-RANGE"],I=(E||".")+"-"+e.bitrate+"-"+C+"-"+m+"-"+g+"-"+f+"-"+y;if(s[I])if(s[I].uri===e.url||e.attrs["PATHWAY-ID"])s[I].addGroupId("audio",h.AUDIO),s[I].addGroupId("text",h.SUBTITLES);else{var w=a[I]+=1;e.attrs["PATHWAY-ID"]=new Array(w+1).join(".");var S=new Ui(e);s[I]=S,r.push(S)}else{var M=new Ui(e);s[I]=M,a[I]=1,r.push(M)}}})),this.filterAndSortMediaOptions(r,t,o,n,l)},i.filterAndSortMediaOptions=function(e,t,i,r,s){var a=this,o=[],n=[],l=e;if((i||r)&&s&&(l=l.filter((function(e){var t=e.videoCodec,i=e.videoRange,r=e.width,s=e.height;return(!!t||!(!r||!s))&&Ki(i)}))),0!==l.length){if(t.audioTracks){var h=this.hls.config.preferManagedMediaSource;_l(o=t.audioTracks.filter((function(e){return!e.audioCodec||gt(e.audioCodec,"audio",h)})))}t.subtitles&&_l(n=t.subtitles);var A=l.slice(0);l.sort((function(e,t){if(e.attrs["HDCP-LEVEL"]!==t.attrs["HDCP-LEVEL"])return(e.attrs["HDCP-LEVEL"]||"")>(t.attrs["HDCP-LEVEL"]||"")?1:-1;if(i&&e.height!==t.height)return e.height-t.height;if(e.frameRate!==t.frameRate)return e.frameRate-t.frameRate;if(e.videoRange!==t.videoRange)return Li.indexOf(e.videoRange)-Li.indexOf(t.videoRange);if(e.videoCodec!==t.videoCodec){var r=Et(e.videoCodec),s=Et(t.videoCodec);if(r!==s)return s-r}if(e.uri===t.uri&&e.codecSet!==t.codecSet){var a=Ct(e.codecSet),o=Ct(t.codecSet);if(a!==o)return o-a}return e.averageBitrate!==t.averageBitrate?e.averageBitrate-t.averageBitrate:0}));var d=A[0];if(this.steering&&(l=this.steering.filterParsedLevels(l)).length!==A.length)for(var c=0;c<A.length;c++)if(A[c].pathwayId===l[0].pathwayId){d=A[c];break}this._levels=l;for(var u=0;u<l.length;u++)if(l[u]===d){var p;this._firstLevel=u;var g=d.bitrate,m=this.hls.bandwidthEstimate;if(this.log("manifest loaded, "+l.length+" level(s) found, first bitrate: "+g),void 0===(null==(p=this.hls.userConfig)?void 0:p.abrEwmaDefaultEstimate)){var y=Math.min(g,this.hls.config.abrEwmaDefaultEstimateMax);y>m&&m===zl.abrEwmaDefaultEstimate&&(this.hls.bandwidthEstimate=y)}break}var E=s&&!r,C={levels:l,audioTracks:o,subtitleTracks:n,sessionData:t.sessionData,sessionKeys:t.sessionKeys,firstLevel:this._firstLevel,stats:t.stats,audio:s,video:r,altAudio:!E&&o.some((function(e){return!!e.url}))};this.hls.trigger(k.MANIFEST_PARSED,C),(this.hls.config.autoStartLoad||this.hls.forceStartLoad)&&this.hls.startLoad(this.hls.config.startPosition)}else Promise.resolve().then((function(){if(a.hls){t.levels.length&&a.warn("One or more CODECS in variant not supported: "+JSON.stringify(t.levels[0].attrs));var e=new Error("no level with compatible codecs found in manifest");a.hls.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:t.url,error:e,reason:e.message})}}))},i.onError=function(e,t){!t.fatal&&t.context&&t.context.type===Nt.LEVEL&&t.context.level===this.level&&this.checkRetry(t)},i.onFragBuffered=function(e,t){var i=t.frag;if(void 0!==i&&i.type===Pt.MAIN){var r=i.elementaryStreams;if(!Object.keys(r).some((function(e){return!!r[e]})))return;var s=this._levels[i.level];null!=s&&s.loadError&&(this.log("Resetting level error count of "+s.loadError+" on frag buffered"),s.loadError=0)}},i.onLevelLoaded=function(e,t){var i,r,s=t.level,a=t.details,o=this._levels[s];if(!o)return this.warn("Invalid level index "+s),void(null!=(r=t.deliveryDirectives)&&r.skip&&(a.deltaUpdateFailed=!0));if(s===this.currentLevelIndex){0===o.fragmentError&&(o.loadError=0);var n=o.details;n===t.details&&n.advanced&&(n=void 0),this.playlistLoaded(s,t,n)}else null!=(i=t.deliveryDirectives)&&i.skip&&(a.deltaUpdateFailed=!0)},i.loadPlaylist=function(t){e.prototype.loadPlaylist.call(this);var i=this.currentLevelIndex,r=this.currentLevel;if(r&&this.shouldLoadPlaylist(r)){var s=r.uri;if(t)try{s=t.addDirectives(s)}catch(e){this.warn("Could not construct new URL with HLS Delivery Directives: "+e)}var a=r.attrs["PATHWAY-ID"];this.log("Loading level index "+i+(void 0!==(null==t?void 0:t.msn)?" at sn "+t.msn+" part "+t.part:"")+" with"+(a?" Pathway "+a:"")+" "+s),this.clearTimer(),this.hls.trigger(k.LEVEL_LOADING,{url:s,level:i,pathwayId:r.attrs["PATHWAY-ID"],id:0,deliveryDirectives:t||null})}},i.removeLevel=function(e){var t,i=this,r=this._levels.filter((function(t,r){return r!==e||(i.steering&&i.steering.removeLevel(t),t===i.currentLevel&&(i.currentLevel=null,i.currentLevelIndex=-1,t.details&&t.details.fragments.forEach((function(e){return e.level=-1}))),!1)}));_i(r),this._levels=r,this.currentLevelIndex>-1&&null!=(t=this.currentLevel)&&t.details&&(this.currentLevelIndex=this.currentLevel.details.fragments[0].level),this.hls.trigger(k.LEVELS_UPDATED,{levels:r})},i.onLevelsUpdated=function(e,t){var i=t.levels;this._levels=i},i.checkMaxAutoUpdated=function(){var e=this.hls,t=e.autoLevelCapping,i=e.maxAutoLevel,r=e.maxHdcpLevel;this._maxAutoLevel!==i&&(this._maxAutoLevel=i,this.hls.trigger(k.MAX_AUTO_LEVEL_UPDATED,{autoLevelCapping:t,levels:this.levels,maxAutoLevel:i,minAutoLevel:this.hls.minAutoLevel,maxHdcpLevel:r}))},a(t,[{key:"levels",get:function(){return 0===this._levels.length?null:this._levels}},{key:"level",get:function(){return this.currentLevelIndex},set:function(e){var t=this._levels;if(0!==t.length){if(e<0||e>=t.length){var i=new Error("invalid level idx"),r=e<0;if(this.hls.trigger(k.ERROR,{type:B.OTHER_ERROR,details:D.LEVEL_SWITCH_ERROR,level:e,fatal:r,error:i,reason:i.message}),r)return;e=Math.min(e,t.length-1)}var s=this.currentLevelIndex,a=this.currentLevel,o=a?a.attrs["PATHWAY-ID"]:void 0,n=t[e],l=n.attrs["PATHWAY-ID"];if(this.currentLevelIndex=e,this.currentLevel=n,s!==e||!n.details||!a||o!==l){this.log("Switching to level "+e+" ("+(n.height?n.height+"p ":"")+(n.videoRange?n.videoRange+" ":"")+(n.codecSet?n.codecSet+" ":"")+"@"+n.bitrate+")"+(l?" with Pathway "+l:"")+" from level "+s+(o?" with Pathway "+o:""));var h={level:e,attrs:n.attrs,details:n.details,bitrate:n.bitrate,averageBitrate:n.averageBitrate,maxBitrate:n.maxBitrate,realBitrate:n.realBitrate,width:n.width,height:n.height,codecSet:n.codecSet,audioCodec:n.audioCodec,videoCodec:n.videoCodec,audioGroups:n.audioGroups,subtitleGroups:n.subtitleGroups,loaded:n.loaded,loadError:n.loadError,fragmentError:n.fragmentError,name:n.name,id:n.id,uri:n.uri,url:n.url,urlId:0,audioGroupIds:n.audioGroupIds,textGroupIds:n.textGroupIds};this.hls.trigger(k.LEVEL_SWITCHING,h);var A=n.details;if(!A||A.live){var d=this.switchParams(n.uri,null==a?void 0:a.details,A);this.loadPlaylist(d)}}}}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(e){this.manualLevelIndex=e,void 0===this._startLevel&&(this._startLevel=e),-1!==e&&(this.level=e)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(e){this._firstLevel=e}},{key:"startLevel",get:function(){if(void 0===this._startLevel){var e=this.hls.config.startLevel;return void 0!==e?e:this.hls.firstAutoLevel}return this._startLevel},set:function(e){this._startLevel=e}},{key:"pathwayPriority",get:function(){return this.steering?this.steering.pathwayPriority:null},set:function(e){if(this.steering){var t=this.steering.pathways(),i=e.filter((function(e){return-1!==t.indexOf(e)}));if(e.length<1)return void this.warn("pathwayPriority "+e+" should contain at least one pathway from list: "+t);this.steering.pathwayPriority=i}}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(e){this.level=e,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=e)}}])}(yr);function _l(e){var t={};e.forEach((function(e){var i=e.groupId||"";e.id=t[i]=t[i]||0,t[i]++}))}var $l=function(){function e(e){this.config=void 0,this.keyUriToKeyInfo={},this.emeController=null,this.config=e}var t=e.prototype;return t.abort=function(e){for(var t in this.keyUriToKeyInfo){var i=this.keyUriToKeyInfo[t].loader;if(i){var r;if(e&&e!==(null==(r=i.context)?void 0:r.frag.type))return;i.abort()}}},t.detach=function(){for(var e in this.keyUriToKeyInfo){var t=this.keyUriToKeyInfo[e];(t.mediaKeySessionContext||t.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[e]}},t.destroy=function(){for(var e in this.detach(),this.keyUriToKeyInfo){var t=this.keyUriToKeyInfo[e].loader;t&&t.destroy()}this.keyUriToKeyInfo={}},t.createKeyLoadError=function(e,t,i,r,s){return void 0===t&&(t=D.KEY_LOAD_ERROR),new as({type:B.NETWORK_ERROR,details:t,fatal:!1,frag:e,response:s,error:i,networkDetails:r})},t.loadClear=function(e,t){var i=this;if(this.emeController&&this.config.emeEnabled)for(var r=e.sn,s=e.cc,a=function(){var e=t[o];if(s<=e.cc&&("initSegment"===r||"initSegment"===e.sn||r<e.sn))return i.emeController.selectKeySystemFormat(e).then((function(t){e.setKeyFormat(t)})),1},o=0;o<t.length&&!a();o++);},t.load=function(e){var t=this;return!e.decryptdata&&e.encrypted&&this.emeController?this.emeController.selectKeySystemFormat(e).then((function(i){return t.loadInternal(e,i)})):this.loadInternal(e)},t.loadInternal=function(e,t){var i,r;t&&e.setKeyFormat(t);var s=e.decryptdata;if(!s){var a=new Error(t?"Expected frag.decryptdata to be defined after setting format "+t:"Missing decryption data on fragment in onKeyLoading");return Promise.reject(this.createKeyLoadError(e,D.KEY_LOAD_ERROR,a))}var o=s.uri;if(!o)return Promise.reject(this.createKeyLoadError(e,D.KEY_LOAD_ERROR,new Error('Invalid key URI: "'+o+'"')));var n,l=this.keyUriToKeyInfo[o];if(null!=(i=l)&&i.decryptdata.key)return s.key=l.decryptdata.key,Promise.resolve({frag:e,keyInfo:l});if(null!=(r=l)&&r.keyLoadPromise)switch(null==(n=l.mediaKeySessionContext)?void 0:n.keyStatus){case void 0:case"status-pending":case"usable":case"usable-in-future":return l.keyLoadPromise.then((function(t){return s.key=t.keyInfo.decryptdata.key,{frag:e,keyInfo:l}}))}switch(l=this.keyUriToKeyInfo[o]={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"identity"===s.keyFormat?this.loadKeyHTTP(l,e):this.loadKeyEME(l,e);case"AES-128":case"AES-256":case"AES-256-CTR":return this.loadKeyHTTP(l,e);default:return Promise.reject(this.createKeyLoadError(e,D.KEY_LOAD_ERROR,new Error('Key supplied with unsupported METHOD: "'+s.method+'"')))}},t.loadKeyEME=function(e,t){var i={frag:t,keyInfo:e};if(this.emeController&&this.config.emeEnabled){var r=this.emeController.loadKey(i);if(r)return(e.keyLoadPromise=r.then((function(t){return e.mediaKeySessionContext=t,i}))).catch((function(t){throw e.keyLoadPromise=null,t}))}return Promise.resolve(i)},t.loadKeyHTTP=function(e,t){var i=this,r=this.config,s=new(0,r.loader)(r);return t.keyLoader=e.loader=s,e.keyLoadPromise=new Promise((function(a,o){var n={keyInfo:e,frag:t,responseType:"arraybuffer",url:e.decryptdata.uri},l=r.keyLoadPolicy.default,h={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},A={onSuccess:function(e,t,r,s){var n=r.frag,l=r.keyInfo,h=r.url;if(!n.decryptdata||l!==i.keyUriToKeyInfo[h])return o(i.createKeyLoadError(n,D.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),s));l.decryptdata.key=n.decryptdata.key=new Uint8Array(e.data),n.keyLoader=null,l.loader=null,a({frag:n,keyInfo:l})},onError:function(e,r,s,a){i.resetLoader(r),o(i.createKeyLoadError(t,D.KEY_LOAD_ERROR,new Error("HTTP Error "+e.code+" loading key "+e.text),s,p({url:n.url,data:void 0},e)))},onTimeout:function(e,r,s){i.resetLoader(r),o(i.createKeyLoadError(t,D.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),s))},onAbort:function(e,r,s){i.resetLoader(r),o(i.createKeyLoadError(t,D.INTERNAL_ABORTED,new Error("key loading aborted"),s))}};s.load(n,h,A)}))},t.resetLoader=function(e){var t=e.frag,i=e.keyInfo,r=e.url,s=i.loader;t.keyLoader===s&&(t.keyLoader=null,i.loader=null),delete this.keyUriToKeyInfo[r],s&&s.destroy()},e}();function eh(){return self.SourceBuffer||self.WebKitSourceBuffer}function th(){if(!dt())return!1;var e=eh();return!e||e.prototype&&"function"==typeof e.prototype.appendBuffer&&"function"==typeof e.prototype.remove}function ih(){if(!th())return!1;var e=dt();return"function"==typeof(null==e?void 0:e.isTypeSupported)&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some((function(t){return e.isTypeSupported(yt(t,"video"))}))||["mp4a.40.2","fLaC"].some((function(t){return e.isTypeSupported(yt(t,"audio"))})))}function rh(){var e,t=eh();return"function"==typeof(null==t||null==(e=t.prototype)?void 0:e.changeType)}var sh=250,ah=2,oh=.1,nh=.05,lh=function(e){function t(t,i,r,s){var a;return(a=e.call(this,"gap-controller",s.logger)||this).config=void 0,a.media=null,a.fragmentTracker=void 0,a.hls=void 0,a.nudgeRetry=0,a.stallReported=!1,a.stalled=null,a.moved=!1,a.seeking=!1,a.ended=0,a.config=t,a.media=i,a.fragmentTracker=r,a.hls=s,a}A(t,e);var i=t.prototype;return i.destroy=function(){this.media=null,this.hls=this.fragmentTracker=null},i.poll=function(e,t,i,r){var s=this.config,a=this.media,o=this.stalled;if(null!==a){var n=a.currentTime,l=a.seeking,h=this.seeking&&!l,A=!this.seeking&&l;if(this.seeking=l,n===e)if(A||h)this.stalled=null;else if(a.paused&&!l||a.ended||0===a.playbackRate||!Pr.getBuffered(a).length)this.nudgeRetry=0;else{var d=Pr.bufferInfo(a,n,0),c=d.nextStart||0;if(l){var u=d.len>ah,p=!c||t&&t.start<=n||c-n>ah&&!this.fragmentTracker.getPartialFragment(n);if(u||p)return;this.moved=!1}if(!this.moved&&null!==this.stalled){if(!(d.len>0||c))return;var g=Math.max(c,d.start||0)-n,m=null!=i&&i.live?2*i.targetduration:ah,y=this.fragmentTracker.getPartialFragment(n);if(g>0&&(g<=m||y))return void(a.paused||this._trySkipBufferHole(y))}var E=self.performance.now();if(null!==o){var C=E-o;if(!l&&C>=sh){if(r===ps.ENDED&&(null==i||!i.live)&&Math.abs(n-((null==i?void 0:i.edge)||0))<1){if(C<1e3||this.ended)return;return this.ended=n,void this.hls.trigger(k.MEDIA_ENDED,{stalled:!0})}if(this._reportStall(d),!this.media)return}var f=Pr.bufferInfo(a,n,s.maxBufferHole);this._tryFixBufferStall(f,C)}else this.stalled=E}else if(this.ended=0,this.moved=!0,l||(this.nudgeRetry=0),null!==o){if(this.stallReported){var I=self.performance.now()-o;this.warn("playback not stuck anymore @"+n+", after "+Math.round(I)+"ms"),this.stallReported=!1}this.stalled=null}}},i._tryFixBufferStall=function(e,t){var i=this.config,r=this.fragmentTracker,s=this.media;if(null!==s){var a=s.currentTime,o=r.getPartialFragment(a);if(o&&(this._trySkipBufferHole(o)||!this.media))return;(e.len>i.maxBufferHole||e.nextStart&&e.nextStart-a<i.maxBufferHole)&&t>1e3*i.highBufferWatchdogPeriod&&(this.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())}},i._reportStall=function(e){var t=this.hls,i=this.media;if(!this.stallReported&&i){this.stallReported=!0;var r=new Error("Playback stalling at @"+i.currentTime+" due to low buffer ("+JSON.stringify(e)+")");this.warn(r.message),t.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.BUFFER_STALLED_ERROR,fatal:!1,error:r,buffer:e.len})}},i._trySkipBufferHole=function(e){var t=this.config,i=this.hls,r=this.media;if(null===r)return 0;var s=r.currentTime,a=Pr.bufferInfo(r,s,0),o=s<a.start?a.start:a.nextStart;if(o){var n=a.len<=t.maxBufferHole,l=a.len>0&&a.len<1&&r.readyState<3,h=o-s;if(h>0&&(n||l)){if(h>t.maxBufferHole){var A=this.fragmentTracker,d=!1;if(0===s){var c=A.getAppendedFrag(0,Pt.MAIN);c&&o<c.end&&(d=!0)}if(!d){var u=e||A.getAppendedFrag(s,Pt.MAIN);if(u){for(var p=!1,g=u.end;g<o;){var m=A.getPartialFragment(g);if(!m){p=!0;break}g+=m.duration}if(p)return 0}}}var y=Math.max(o+nh,s+oh);if(this.warn("skipping hole, adjusting currentTime from "+s+" to "+y),this.moved=!0,this.stalled=null,r.currentTime=y,e&&!e.gap){var E=new Error("fragment loaded with buffer holes, seeking from "+s+" to "+y);i.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:E,reason:E.message,frag:e})}return y}}return 0},i._tryNudgeBuffer=function(){var e=this.config,t=this.hls,i=this.media,r=this.nudgeRetry;if(null!==i){var s=i.currentTime;if(this.nudgeRetry++,r<e.nudgeMaxRetry){var a=s+(r+1)*e.nudgeOffset,o=new Error("Nudging 'currentTime' from "+s+" to "+a);this.warn(o.message),i.currentTime=a,t.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.BUFFER_NUDGE_ON_STALL,error:o,fatal:!1})}else{var n=new Error("Playhead still not moving while enough data buffered @"+s+" after "+e.nudgeMaxRetry+" nudges");this.error(n.message),t.trigger(k.ERROR,{type:B.MEDIA_ERROR,details:D.BUFFER_STALLED_ERROR,error:n,fatal:!0})}}},t}(b),hh=100,Ah=function(e){function t(t,i,r){var s;return(s=e.call(this,t,i,r,"stream-controller",Pt.MAIN)||this).audioCodecSwap=!1,s.gapController=null,s.level=-1,s._forceStartLoad=!1,s.altAudio=!1,s.audioOnly=!1,s.fragPlaying=null,s.fragLastKbps=0,s.couldBacktrack=!1,s.backtrackFragment=null,s.audioCodecSwitch=!1,s.videoBuffer=null,s.onMediaPlaying=function(){s.tick()},s.onMediaSeeked=function(){var e=s.media,t=e?e.currentTime:null;S(t)&&s.log("Media seeked to "+t.toFixed(3));var i=s.getMainFwdBufferInfo();null!==i&&0!==i.len?s.tick():s.warn('Main forward buffer length on "seeked" event '+(i?i.len:"empty")+")")},s.registerListeners(),s}A(t,e);var i=t.prototype;return i.registerListeners=function(){e.prototype.registerListeners.call(this);var t=this.hls;t.on(k.MANIFEST_PARSED,this.onManifestParsed,this),t.on(k.LEVEL_LOADING,this.onLevelLoading,this),t.on(k.LEVEL_LOADED,this.onLevelLoaded,this),t.on(k.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.on(k.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.on(k.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.on(k.BUFFER_CREATED,this.onBufferCreated,this),t.on(k.BUFFER_FLUSHED,this.onBufferFlushed,this),t.on(k.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(k.FRAG_BUFFERED,this.onFragBuffered,this)},i.unregisterListeners=function(){e.prototype.unregisterListeners.call(this);var t=this.hls;t.off(k.MANIFEST_PARSED,this.onManifestParsed,this),t.off(k.LEVEL_LOADED,this.onLevelLoaded,this),t.off(k.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.off(k.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.off(k.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.off(k.BUFFER_CREATED,this.onBufferCreated,this),t.off(k.BUFFER_FLUSHED,this.onBufferFlushed,this),t.off(k.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(k.FRAG_BUFFERED,this.onFragBuffered,this)},i.onHandlerDestroying=function(){this.onMediaPlaying=this.onMediaSeeked=null,this.unregisterListeners(),e.prototype.onHandlerDestroying.call(this)},i.startLoad=function(e){if(this.levels){var t=this.lastCurrentTime,i=this.hls;if(this.stopLoad(),this.setInterval(hh),this.level=-1,!this.startFragRequested){var r=i.startLevel;-1===r&&(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}t>0&&-1===e&&(this.log("Override startPosition with lastCurrentTime @"+t.toFixed(3)),e=t),this.state=ps.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}else this._forceStartLoad=!0,this.state=ps.STOPPED},i.stopLoad=function(){this._forceStartLoad=!1,e.prototype.stopLoad.call(this)},i.doTick=function(){switch(this.state){case ps.WAITING_LEVEL:var e=this.levels,t=this.level,i=null==e?void 0:e[t],r=null==i?void 0:i.details;if(r&&(!r.live||this.levelLastLoaded===i)){if(this.waitForCdnTuneIn(r))break;this.state=ps.IDLE;break}if(this.hls.nextLoadLevel!==this.level){this.state=ps.IDLE;break}break;case ps.FRAG_LOADING_WAITING_RETRY:var s,a=self.performance.now(),o=this.retryDate;if(!o||a>=o||null!=(s=this.media)&&s.seeking){var n=this.levels,l=this.level,h=null==n?void 0:n[l];this.resetStartWhenNotLoaded(h||null),this.state=ps.IDLE}}this.state===ps.IDLE&&this.doTickIdle(),this.onTickEnd()},i.onTickEnd=function(){e.prototype.onTickEnd.call(this),this.checkBuffer(),this.checkFragmentChanged()},i.doTickIdle=function(){if(this.buffering){var e=this.hls,t=this.levelLastLoaded,i=this.levels,r=this.media;if(null!==t&&(r||!this.startFragRequested&&e.config.startFragPrefetch)&&(!this.altAudio||!this.audioOnly)){var s=e.nextLoadLevel;if(null!=i&&i[s]){var a=i[s],o=this.getMainFwdBufferInfo();if(null!==o){var n=this.getLevelDetails();if(n&&this._streamEnded(o,n)){var l={};return this.altAudio&&(l.type="video"),this.hls.trigger(k.BUFFER_EOS,l),void(this.state=ps.ENDED)}e.loadLevel!==s&&-1===e.manualLevel&&this.log("Adapting to level "+s+" from level "+this.level),this.level=e.nextLoadLevel=s;var h=a.details;if(!h||this.state===ps.WAITING_LEVEL||h.live&&this.levelLastLoaded!==a)return this.level=s,void(this.state=ps.WAITING_LEVEL);var A=o.len,d=this.getMaxBufferLength(a.maxBitrate);if(!(A>=d)){this.backtrackFragment&&this.backtrackFragment.start>o.end&&(this.backtrackFragment=null);var c=this.backtrackFragment?this.backtrackFragment.start:o.end,u=this.getNextFragment(c,h);if(this.couldBacktrack&&!this.fragPrevious&&u&&"initSegment"!==u.sn&&this.fragmentTracker.getState(u)!==Gr.OK){var p,g=(null!=(p=this.backtrackFragment)?p:u).sn-h.startSN,m=h.fragments[g-1];m&&u.cc===m.cc&&(u=m,this.fragmentTracker.removeFragment(m))}else this.backtrackFragment&&o.len&&(this.backtrackFragment=null);if(u&&this.isLoopLoading(u,c)){if(!u.gap){var y=this.audioOnly&&!this.altAudio?X.AUDIO:X.VIDEO,E=(y===X.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;E&&this.afterBufferFlushed(E,y,Pt.MAIN)}u=this.getNextFragmentLoopLoading(u,h,o,Pt.MAIN,d)}u&&(!u.initSegment||u.initSegment.data||this.bitrateTest||(u=u.initSegment),this.loadFragment(u,a,c))}}}}}},i.loadFragment=function(t,i,r){var s=this.fragmentTracker.getState(t);s===Gr.NOT_LOADED||s===Gr.PARTIAL?"initSegment"===t.sn?this._loadInitSegment(t,i):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,i)):e.prototype.loadFragment.call(this,t,i,r):this.clearTrackerIfNeeded(t)},i.getBufferedFrag=function(e){return this.fragmentTracker.getBufferedFrag(e,Pt.MAIN)},i.followingBufferedFrag=function(e){return e?this.getBufferedFrag(e.end+.5):null},i.immediateLevelSwitch=function(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},i.nextLevelSwitch=function(){var e=this.levels,t=this.media;if(null!=t&&t.readyState){var i,r=this.getAppendedFrag(t.currentTime);r&&r.start>1&&this.flushMainBuffer(0,r.start-1);var s=this.getLevelDetails();if(null!=s&&s.live){var a=this.getMainFwdBufferInfo();if(!a||a.len<2*s.targetduration)return}if(!t.paused&&e){var o=e[this.hls.nextLoadLevel],n=this.fragLastKbps;i=n&&this.fragCurrent?this.fragCurrent.duration*o.maxBitrate/(1e3*n)+1:0}else i=0;var l=this.getBufferedFrag(t.currentTime+i);if(l){var h=this.followingBufferedFrag(l);if(h){this.abortCurrentFrag();var A=h.maxStartPTS?h.maxStartPTS:h.start,d=h.duration,c=Math.max(l.end,A+Math.min(Math.max(d-this.config.maxFragLookUpTolerance,d*(this.couldBacktrack?.5:.125)),d*(this.couldBacktrack?.75:.25)));this.flushMainBuffer(c,Number.POSITIVE_INFINITY)}}}},i.abortCurrentFrag=function(){var e=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,e&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.state){case ps.KEY_LOADING:case ps.FRAG_LOADING:case ps.FRAG_LOADING_WAITING_RETRY:case ps.PARSING:case ps.PARSED:this.state=ps.IDLE}this.nextLoadPosition=this.getLoadPosition()},i.flushMainBuffer=function(t,i){e.prototype.flushMainBuffer.call(this,t,i,this.altAudio?"video":null)},i.onMediaAttached=function(t,i){e.prototype.onMediaAttached.call(this,t,i);var r=i.media;r.addEventListener("playing",this.onMediaPlaying),r.addEventListener("seeked",this.onMediaSeeked),this.gapController=new lh(this.config,r,this.fragmentTracker,this.hls)},i.onMediaDetaching=function(){var t=this.media;t&&(t.removeEventListener("playing",this.onMediaPlaying),t.removeEventListener("seeked",this.onMediaSeeked)),this.videoBuffer=null,this.fragPlaying=null,this.gapController&&(this.gapController.destroy(),this.gapController=null),e.prototype.onMediaDetaching.call(this)},i.onManifestLoading=function(){e.prototype.onManifestLoading.call(this),this.log("Trigger BUFFER_RESET"),this.hls.trigger(k.BUFFER_RESET,void 0),this.couldBacktrack=!1,this.fragLastKbps=0,this.fragPlaying=this.backtrackFragment=null,this.altAudio=this.audioOnly=!1},i.onManifestParsed=function(e,t){var i=!1,r=!1;t.levels.forEach((function(e){var t=e.audioCodec;t&&(i=i||-1!==t.indexOf("mp4a.40.2"),r=r||-1!==t.indexOf("mp4a.40.5"))})),this.audioCodecSwitch=i&&r&&!rh(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=t.levels,this.startFragRequested=!1},i.onLevelLoading=function(e,t){var i=this.levels;if(i&&this.state===ps.IDLE){var r=i[t.level];(!r.details||r.details.live&&this.levelLastLoaded!==r||this.waitForCdnTuneIn(r.details))&&(this.state=ps.WAITING_LEVEL)}},i.onLevelLoaded=function(e,t){var i,r=this.levels,s=t.level,a=t.details,o=a.totalduration;if(r){this.log("Level "+s+" loaded ["+a.startSN+","+a.endSN+"]"+(a.lastPartSn?"[part-"+a.lastPartSn+"-"+a.lastPartIndex+"]":"")+", cc ["+a.startCC+", "+a.endCC+"] duration:"+o);var n=r[s],l=this.fragCurrent;!l||this.state!==ps.FRAG_LOADING&&this.state!==ps.FRAG_LOADING_WAITING_RETRY||l.level!==t.level&&l.loader&&this.abortCurrentFrag();var h=0;if(a.live||null!=(i=n.details)&&i.live){var A;if(this.checkLiveUpdate(a),a.deltaUpdateFailed)return;h=this.alignPlaylists(a,n.details,null==(A=this.levelLastLoaded)?void 0:A.details)}if(n.details=a,this.levelLastLoaded=n,this.hls.trigger(k.LEVEL_UPDATED,{details:a,level:s}),this.state===ps.WAITING_LEVEL){if(this.waitForCdnTuneIn(a))return;this.state=ps.IDLE}this.startFragRequested?a.live&&this.synchronizeToLiveEdge(a):this.setStartPosition(a,h),this.tick()}else this.warn("Levels were reset while loading level "+s)},i._handleFragmentLoadProgress=function(e){var t,i=e.frag,r=e.part,s=e.payload,a=this.levels;if(a){var o=a[i.level],n=o.details;if(!n)return this.warn("Dropping fragment "+i.sn+" of level "+i.level+" after level details were reset"),void this.fragmentTracker.removeFragment(i);var l=o.videoCodec,h=n.PTSKnown||!n.live,A=null==(t=i.initSegment)?void 0:t.data,d=this._getAudioCodec(o),c=this.transmuxer=this.transmuxer||new lo(this.hls,Pt.MAIN,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),u=r?r.index:-1,p=-1!==u,g=new jr(i.level,i.sn,i.stats.chunkCount,s.byteLength,u,p),m=this.initPTS[i.cc];c.push(s,A,d,l,i,r,n.totalduration,h,g,m)}else this.warn("Levels were reset while fragment load was in progress. Fragment "+i.sn+" of level "+i.level+" will not be buffered")},i.onAudioTrackSwitching=function(e,t){var i=this.altAudio;if(!t.url){if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;var r=this.fragCurrent;r&&(this.log("Switching to main audio track, cancel main fragment load"),r.abortRequests(),this.fragmentTracker.removeFragment(r)),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();var s=this.hls;i&&(s.trigger(k.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null}),this.fragmentTracker.removeAllFragments()),s.trigger(k.AUDIO_TRACK_SWITCHED,t)}},i.onAudioTrackSwitched=function(e,t){var i=t.id,r=!!this.hls.audioTracks[i].url;if(r){var 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()},i.onBufferCreated=function(e,t){var i,r,s=t.tracks,a=!1;for(var o in s){var n=s[o];if("main"===n.id){if(r=o,i=n,"video"===o){var l=s[o];l&&(this.videoBuffer=l.buffer)}}else a=!0}a&&i?(this.log("Alternate track found, use "+r+".buffered to schedule main fragment loading"),this.mediaBuffer=i.buffer):this.mediaBuffer=this.media},i.onFragBuffered=function(e,t){var i=t.frag,r=t.part;if(!i||i.type===Pt.MAIN){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===ps.PARSED&&(this.state=ps.IDLE));var s=r?r.stats:i.stats;this.fragLastKbps=Math.round(8*s.total/(s.buffering.end-s.loading.first)),"initSegment"!==i.sn&&(this.fragPrevious=i),this.fragBufferedComplete(i,r)}},i.onError=function(e,t){var i;if(t.fatal)this.state=ps.ERROR;else switch(t.details){case D.FRAG_GAP:case D.FRAG_PARSING_ERROR:case D.FRAG_DECRYPT_ERROR:case D.FRAG_LOAD_ERROR:case D.FRAG_LOAD_TIMEOUT:case D.KEY_LOAD_ERROR:case D.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(Pt.MAIN,t);break;case D.LEVEL_LOAD_ERROR:case D.LEVEL_LOAD_TIMEOUT:case D.LEVEL_PARSING_ERROR:t.levelRetry||this.state!==ps.WAITING_LEVEL||(null==(i=t.context)?void 0:i.type)!==Nt.LEVEL||(this.state=ps.IDLE);break;case D.BUFFER_APPEND_ERROR:case D.BUFFER_FULL_ERROR:if(!t.parent||"main"!==t.parent)return;if(t.details===D.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(t)&&this.flushMainBuffer(0,Number.POSITIVE_INFINITY);break;case D.INTERNAL_EXCEPTION:this.recoverWorkerError(t)}},i.checkBuffer=function(){var e=this.media,t=this.gapController;if(e&&t&&e.readyState){if(this.loadedmetadata||!Pr.getBuffered(e).length){var i=this.state,r=i!==ps.IDLE?this.fragCurrent:null,s=this.getLevelDetails();t.poll(this.lastCurrentTime,r,s,i)}this.lastCurrentTime=e.currentTime}},i.onFragLoadEmergencyAborted=function(){this.state=ps.IDLE,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.lastCurrentTime),this.tickImmediate()},i.onBufferFlushed=function(e,t){var i=t.type;if(i!==X.AUDIO||this.audioOnly&&!this.altAudio){var r=(i===X.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;this.afterBufferFlushed(r,i,Pt.MAIN),this.tick()}},i.onLevelsUpdated=function(e,t){this.level>-1&&this.fragCurrent&&(this.level=this.fragCurrent.level),this.levels=t.levels},i.swapAudioCodec=function(){this.audioCodecSwap=!this.audioCodecSwap},i.seekToStartPos=function(){var e=this.media;if(e){var t=e.currentTime,i=this.startPosition;if(i>=0&&t<i){if(e.seeking)return void this.log("could not seek to "+i+", already seeking at "+t);var r=Pr.getBuffered(e),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 "+t),e.currentTime=i}}},i._getAudioCodec=function(e){var t=this.config.defaultAudioCodec||e.audioCodec;return this.audioCodecSwap&&t&&(this.log("Swapping audio codec"),t=-1!==t.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),t},i._loadBitrateTestFrag=function(e,t){var i=this;e.bitrateTest=!0,this._doFragLoad(e,t).then((function(r){var s=i.hls;if(r&&!i.fragContextChanged(e)){t.fragmentError=0,i.state=ps.IDLE,i.startFragRequested=!1,i.bitrateTest=!1;var a=e.stats;a.parsing.start=a.parsing.end=a.buffering.start=a.buffering.end=self.performance.now(),s.trigger(k.FRAG_LOADED,r),e.bitrateTest=!1}}))},i._handleTransmuxComplete=function(e){var t,i=this.playlistType,r=this.hls,s=e.remuxResult,a=e.chunkMeta,o=this.getCurrentContext(a);if(o){var n=o.frag,l=o.part,h=o.level,A=s.video,d=s.text,c=s.id3,u=s.initSegment,p=h.details,g=this.altAudio?void 0:s.audio;if(this.fragContextChanged(n))this.fragmentTracker.removeFragment(n);else{if(this.state=ps.PARSING,u){if(null!=u&&u.tracks){var m=n.initSegment||n;this._bufferInitSegment(h,u.tracks,m,a),r.trigger(k.FRAG_PARSING_INIT_SEGMENT,{frag:m,id:i,tracks:u.tracks})}var y=u.initPTS,E=u.timescale;S(y)&&(this.initPTS[n.cc]={baseTime:y,timescale:E},r.trigger(k.INIT_PTS_FOUND,{frag:n,id:i,initPTS:y,timescale:E}))}if(A&&p){var C=p.fragments[n.sn-1-p.startSN],f=n.sn===p.startSN,I=!C||n.cc>C.cc;if(!1!==s.independent){var w=A.startPTS,M=A.endPTS,v=A.startDTS,B=A.endDTS;if(l)l.elementaryStreams[A.type]={startPTS:w,endPTS:M,startDTS:v,endDTS:B};else if(A.firstKeyFrame&&A.independent&&1===a.id&&!I&&(this.couldBacktrack=!0),A.dropped&&A.independent){var D=this.getMainFwdBufferInfo(),b=(D?D.end:this.getLoadPosition())+this.config.maxBufferHole,Q=A.firstKeyFramePTS?A.firstKeyFramePTS:w;if(!f&&b<Q-this.config.maxBufferHole&&!I)return void this.backtrack(n);I&&(n.gap=!0),n.setElementaryStreamInfo(A.type,n.start,M,n.start,B,!0)}else f&&w>ah&&(n.gap=!0);n.setElementaryStreamInfo(A.type,w,M,v,B),this.backtrackFragment&&(this.backtrackFragment=n),this.bufferFragmentData(A,n,l,a,f||I)}else{if(!f&&!I)return void this.backtrack(n);n.gap=!0}}if(g){var R=g.startPTS,T=g.endPTS,L=g.startDTS,K=g.endDTS;l&&(l.elementaryStreams[X.AUDIO]={startPTS:R,endPTS:T,startDTS:L,endDTS:K}),n.setElementaryStreamInfo(X.AUDIO,R,T,L,K),this.bufferFragmentData(g,n,l,a)}if(p&&null!=c&&null!=(t=c.samples)&&t.length){var q={id:i,frag:n,details:p,samples:c.samples};r.trigger(k.FRAG_PARSING_METADATA,q)}if(p&&d){var x={id:i,frag:n,details:p,samples:d.samples};r.trigger(k.FRAG_PARSING_USERDATA,x)}}}else this.resetWhenMissingContext(a)},i._bufferInitSegment=function(e,t,i,r){var s=this;if(this.state===ps.PARSING){this.audioOnly=!!t.audio&&!t.video,this.altAudio&&!this.audioOnly&&delete t.audio;var a=t.audio,o=t.video,n=t.audiovideo;if(a){var l=e.audioCodec,h=navigator.userAgent.toLowerCase();if(this.audioCodecSwitch){l&&(l=-1!==l.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5");var A=a.metadata;A&&"channelCount"in A&&1!==(A.channelCount||1)&&-1===h.indexOf("firefox")&&(l="mp4a.40.5")}l&&-1!==l.indexOf("mp4a.40.5")&&-1!==h.indexOf("android")&&"audio/mpeg"!==a.container&&(l="mp4a.40.2",this.log("Android: force audio codec to "+l)),e.audioCodec&&e.audioCodec!==l&&this.log('Swapping manifest audio codec "'+e.audioCodec+'" for "'+l+'"'),a.levelCodec=l,a.id="main",this.log("Init audio buffer, container:"+a.container+", codecs[selected/level/parsed]=["+(l||"")+"/"+(e.audioCodec||"")+"/"+a.codec+"]"),delete t.audiovideo}o&&(o.levelCodec=e.videoCodec,o.id="main",this.log("Init video buffer, container:"+o.container+", codecs[level/parsed]=["+(e.videoCodec||"")+"/"+o.codec+"]"),delete t.audiovideo),n&&(this.log("Init audiovideo buffer, container:"+n.container+", codecs[level/parsed]=["+e.codecs+"/"+n.codec+"]"),delete t.video,delete t.audio);var d=Object.keys(t);d.length&&(this.hls.trigger(k.BUFFER_CODECS,t),d.forEach((function(e){var a=t[e].initSegment;null!=a&&a.byteLength&&s.hls.trigger(k.BUFFER_APPENDING,{type:e,data:a,frag:i,part:null,chunkMeta:r,parent:i.type})}))),this.tickImmediate()}},i.getMainFwdBufferInfo=function(){return this.getFwdBufferInfo(this.mediaBuffer?this.mediaBuffer:this.media,Pt.MAIN)},i.backtrack=function(e){this.couldBacktrack=!0,this.backtrackFragment=e,this.resetTransmuxer(),this.flushBufferGap(e),this.fragmentTracker.removeFragment(e),this.fragPrevious=null,this.nextLoadPosition=e.start,this.state=ps.IDLE},i.checkFragmentChanged=function(){var e=this.media,t=null;if(e&&e.readyState>1&&!1===e.seeking){var i=e.currentTime;if(Pr.isBuffered(e,i)?t=this.getAppendedFrag(i):Pr.isBuffered(e,i+.1)&&(t=this.getAppendedFrag(i+.1)),t){this.backtrackFragment=null;var r=this.fragPlaying,s=t.level;r&&t.sn===r.sn&&r.level===s||(this.fragPlaying=t,this.hls.trigger(k.FRAG_CHANGED,{frag:t}),r&&r.level===s||this.hls.trigger(k.LEVEL_SWITCHED,{level:s}))}}},a(t,[{key:"maxBufferLength",get:function(){var e=this.levels,t=this.level,i=null==e?void 0:e[t];return i?this.getMaxBufferLength(i.maxBitrate):this.config.maxBufferLength}},{key:"nextLevel",get:function(){var e=this.nextBufferedFrag;return e?e.level:-1}},{key:"currentFrag",get:function(){var e;if(this.fragPlaying)return this.fragPlaying;var t=(null==(e=this.media)?void 0:e.currentTime)||this.lastCurrentTime;return S(t)?this.getAppendedFrag(t):null}},{key:"currentProgramDateTime",get:function(){var e,t=(null==(e=this.media)?void 0:e.currentTime)||this.lastCurrentTime;if(S(t)){var i=this.getLevelDetails(),r=this.currentFrag||(i?nr(null,i.fragments,t):null);if(r){var s=r.programDateTime;if(null!==s){var a=s+1e3*(t-r.start);return new Date(a)}}}return null}},{key:"currentLevel",get:function(){var e=this.currentFrag;return e?e.level:-1}},{key:"nextBufferedFrag",get:function(){var e=this.currentFrag;return e?this.followingBufferedFrag(e):null}},{key:"forceStartLoad",get:function(){return this._forceStartLoad}}])}(gs),dh=function(){function e(t){void 0===t&&(t={}),this.config=void 0,this.userConfig=void 0,this.logger=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new za,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;var i=this.logger=x(t.debug||!1,"Hls instance"),r=this.config=Zl(e.DefaultConfig,t,i);this.userConfig=t,r.progressive&&Hl(r,i);var s=r.abrController,a=r.bufferController,o=r.capLevelController,n=r.errorController,l=r.fpsController,h=new n(this),A=this.abrController=new s(this),d=new Or(this),c=this.bufferController=new a(this,d),u=this.capLevelController=new o(this),p=new l(this),g=new Wt(this),m=new bi(this),y=r.contentSteeringController,E=y?new y(this):null,C=this.levelController=new Xl(this,E),f=new $l(this.config),I=this.streamController=new Ah(this,d,f);u.setStreamController(I),p.setStreamController(I);var w=[g,C,I];E&&w.splice(1,0,E),this.networkControllers=w;var S=[A,c,u,p,m,d];this.audioTrackController=this.createController(r.audioTrackController,w);var M=r.audioStreamController;M&&w.push(new M(this,d,f)),this.subtitleTrackController=this.createController(r.subtitleTrackController,w);var v=r.subtitleStreamController;v&&w.push(new v(this,d,f)),this.createController(r.timelineController,S),f.emeController=this.emeController=this.createController(r.emeController,S),this.cmcdController=this.createController(r.cmcdController,S),this.latencyController=this.createController(Qi,S),this.coreComponents=S,w.push(h);var B=h.onErrorOut;"function"==typeof B&&this.on(k.ERROR,B,h)}e.isMSESupported=function(){return th()},e.isSupported=function(){return ih()},e.getMediaSource=function(){return dt()};var t=e.prototype;return t.createController=function(e,t){if(e){var i=new e(this);return t&&t.push(i),i}return null},t.on=function(e,t,i){void 0===i&&(i=this),this._emitter.on(e,t,i)},t.once=function(e,t,i){void 0===i&&(i=this),this._emitter.once(e,t,i)},t.removeAllListeners=function(e){this._emitter.removeAllListeners(e)},t.off=function(e,t,i,r){void 0===i&&(i=this),this._emitter.off(e,t,i,r)},t.listeners=function(e){return this._emitter.listeners(e)},t.emit=function(e,t,i){return this._emitter.emit(e,t,i)},t.trigger=function(e,t){if(this.config.debug)return this.emit(e,e,t);try{return this.emit(e,e,t)}catch(t){if(this.logger.error("An internal error happened while handling event "+e+'. Error message: "'+t.message+'". Here is a stacktrace:',t),!this.triggeringException){this.triggeringException=!0;var i=e===k.ERROR;this.trigger(k.ERROR,{type:B.OTHER_ERROR,details:D.INTERNAL_EXCEPTION,fatal:i,event:e,error:t}),this.triggeringException=!1}}return!1},t.listenerCount=function(e){return this._emitter.listenerCount(e)},t.destroy=function(){this.logger.log("destroy"),this.trigger(k.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this._url=null,this.networkControllers.forEach((function(e){return e.destroy()})),this.networkControllers.length=0,this.coreComponents.forEach((function(e){return e.destroy()})),this.coreComponents.length=0;var e=this.config;e.xhrSetup=e.fetchSetup=void 0,this.userConfig=null},t.attachMedia=function(e){this.logger.log("attachMedia"),this._media=e,this.trigger(k.MEDIA_ATTACHING,{media:e})},t.detachMedia=function(){this.logger.log("detachMedia"),this.trigger(k.MEDIA_DETACHING,void 0),this._media=null},t.loadSource=function(e){this.stopLoad();var t=this.media,i=this._url,r=this._url=w.buildAbsoluteURL(self.location.href,e,{alwaysNormalize:!0});this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.logger.log("loadSource:"+r),t&&i&&(i!==r||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(t)),this.trigger(k.MANIFEST_LOADING,{url:e})},t.startLoad=function(e){void 0===e&&(e=-1),this.logger.log("startLoad("+e+")"),this.networkControllers.forEach((function(t){t.startLoad(e)}))},t.stopLoad=function(){this.logger.log("stopLoad"),this.networkControllers.forEach((function(e){e.stopLoad()}))},t.resumeBuffering=function(){this.networkControllers.forEach((function(e){e.resumeBuffering&&e.resumeBuffering()}))},t.pauseBuffering=function(){this.networkControllers.forEach((function(e){e.pauseBuffering&&e.pauseBuffering()}))},t.swapAudioCodec=function(){this.logger.log("swapAudioCodec"),this.streamController.swapAudioCodec()},t.recoverMediaError=function(){this.logger.log("recoverMediaError");var e=this._media;this.detachMedia(),e&&this.attachMedia(e)},t.removeLevel=function(e){this.levelController.removeLevel(e)},t.setAudioOption=function(e){var t;return(null==(t=this.audioTrackController)?void 0:t.setAudioOption(e))||null},t.setSubtitleOption=function(e){var t;return(null==(t=this.subtitleTrackController)?void 0:t.setSubtitleOption(e))||null},a(e,[{key:"url",get:function(){return this._url}},{key:"levels",get:function(){var e=this.levelController.levels;return e||[]}},{key:"currentLevel",get:function(){return this.streamController.currentLevel},set:function(e){this.logger.log("set currentLevel:"+e),this.levelController.manualLevel=e,this.streamController.immediateLevelSwitch()}},{key:"nextLevel",get:function(){return this.streamController.nextLevel},set:function(e){this.logger.log("set nextLevel:"+e),this.levelController.manualLevel=e,this.streamController.nextLevelSwitch()}},{key:"loadLevel",get:function(){return this.levelController.level},set:function(e){this.logger.log("set loadLevel:"+e),this.levelController.manualLevel=e}},{key:"nextLoadLevel",get:function(){return this.levelController.nextLoadLevel},set:function(e){this.levelController.nextLoadLevel=e}},{key:"firstLevel",get:function(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)},set:function(e){this.logger.log("set firstLevel:"+e),this.levelController.firstLevel=e}},{key:"startLevel",get:function(){var e=this.levelController.startLevel;return-1===e&&this.abrController.forcedAutoLevel>-1?this.abrController.forcedAutoLevel:e},set:function(e){this.logger.log("set startLevel:"+e),-1!==e&&(e=Math.max(e,this.minAutoLevel)),this.levelController.startLevel=e}},{key:"capLevelToPlayerSize",get:function(){return this.config.capLevelToPlayerSize},set:function(e){var t=!!e;t!==this.config.capLevelToPlayerSize&&(t?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=t)}},{key:"autoLevelCapping",get:function(){return this._autoLevelCapping},set:function(e){this._autoLevelCapping!==e&&(this.logger.log("set autoLevelCapping:"+e),this._autoLevelCapping=e,this.levelController.checkMaxAutoUpdated())}},{key:"bandwidthEstimate",get:function(){var e=this.abrController.bwEstimator;return e?e.getEstimate():NaN},set:function(e){this.abrController.resetEstimator(e)}},{key:"ttfbEstimate",get:function(){var e=this.abrController.bwEstimator;return e?e.getEstimateTTFB():NaN}},{key:"maxHdcpLevel",get:function(){return this._maxHdcpLevel},set:function(e){Ti(e)&&this._maxHdcpLevel!==e&&(this._maxHdcpLevel=e,this.levelController.checkMaxAutoUpdated())}},{key:"autoLevelEnabled",get:function(){return-1===this.levelController.manualLevel}},{key:"manualLevel",get:function(){return this.levelController.manualLevel}},{key:"minAutoLevel",get:function(){var e=this.levels,t=this.config.minAutoBitrate;if(!e)return 0;for(var i=e.length,r=0;r<i;r++)if(e[r].maxBitrate>=t)return r;return 0}},{key:"maxAutoLevel",get:function(){var e,t=this.levels,i=this.autoLevelCapping,r=this.maxHdcpLevel;if(e=-1===i&&null!=t&&t.length?t.length-1:i,r)for(var s=e;s--;){var a=t[s].attrs["HDCP-LEVEL"];if(a&&a<=r)return s}return e}},{key:"firstAutoLevel",get:function(){return this.abrController.firstAutoLevel}},{key:"nextAutoLevel",get:function(){return this.abrController.nextAutoLevel},set:function(e){this.abrController.nextAutoLevel=e}},{key:"playingDate",get:function(){return this.streamController.currentProgramDateTime}},{key:"mainForwardBufferInfo",get:function(){return this.streamController.getMainFwdBufferInfo()}},{key:"maxBufferLength",get:function(){return this.streamController.maxBufferLength}},{key:"allAudioTracks",get:function(){var e=this.audioTrackController;return e?e.allAudioTracks:[]}},{key:"audioTracks",get:function(){var e=this.audioTrackController;return e?e.audioTracks:[]}},{key:"audioTrack",get:function(){var e=this.audioTrackController;return e?e.audioTrack:-1},set:function(e){var t=this.audioTrackController;t&&(t.audioTrack=e)}},{key:"allSubtitleTracks",get:function(){var e=this.subtitleTrackController;return e?e.allSubtitleTracks:[]}},{key:"subtitleTracks",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTrack:-1},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}},{key:"media",get:function(){return this._media}},{key:"subtitleDisplay",get:function(){var e=this.subtitleTrackController;return!!e&&e.subtitleDisplay},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}},{key:"lowLatencyMode",get:function(){return this.config.lowLatencyMode},set:function(e){this.config.lowLatencyMode=e}},{key:"liveSyncPosition",get:function(){return this.latencyController.liveSyncPosition}},{key:"latency",get:function(){return this.latencyController.latency}},{key:"maxLatency",get:function(){return this.latencyController.maxLatency}},{key:"targetLatency",get:function(){return this.latencyController.targetLatency},set:function(e){this.latencyController.targetLatency=e}},{key:"drift",get:function(){return this.latencyController.drift}},{key:"forceStartLoad",get:function(){return this.streamController.forceStartLoad}},{key:"pathwayPriority",get:function(){return this.levelController.pathwayPriority},set:function(e){this.levelController.pathwayPriority=e}}],[{key:"version",get:function(){return to}},{key:"Events",get:function(){return k}},{key:"ErrorTypes",get:function(){return B}},{key:"ErrorDetails",get:function(){return D}},{key:"DefaultConfig",get:function(){return e.defaultConfig?e.defaultConfig:zl},set:function(t){e.defaultConfig=t}}])}();return dh.defaultConfig=void 0,dh}()}(!1)})),ZA=(zA=WA)&&zA.__esModule&&Object.prototype.hasOwnProperty.call(zA,"default")?zA.default:zA;class VA extends ko{constructor(e){super(),this.player=e,this.TAG_NAME="HlsDecoder",e._opt,this.canVideoPlay=!1,this.$videoElement=null,this.canvasRenderInterval=null,this.bandwidthEstimateInterval=null,this.fpsInterval=null,this.hlsFps=0,this.hlsPrevFrams=0,this.isInitInfo=!1,this.eventsDestroy=[],this.supportVideoFrameCallbackHandle=null,this.player.isHlsCanVideoPlay()?(this.$videoElement=this.player.video.$videoElement,this.canVideoPlay=!0):ZA.isSupported()?(this.$videoElement=this.player.video.$videoElement,this.hls=new ZA({}),this._initHls(),this._bindEvents()):this.player.debug.error(this.TAG_NAME,"init hls error ,not support "),this.player.debug.log(this.TAG_NAME,"init")}destroy(){return new Promise(((e,t)=>{this.supportVideoFrameCallbackHandle&&this.$videoElement&&(this.$videoElement.cancelVideoFrameCallback(this.supportVideoFrameCallbackHandle),this.supportVideoFrameCallbackHandle=null),this.hls&&(this.hls.destroy(),this.hls=null),this.eventsDestroy.length&&(this.eventsDestroy.forEach((e=>e())),this.eventsDestroy=[]),this.isInitInfo=!1,this._stopCanvasRender(),this._stopBandwidthEstimateInterval(),this._stopFpsInterval(),this.$videoElement=null,this.hlsFps=0,this.player.debug.log(this.TAG_NAME,"destroy"),setTimeout((()=>{e()}),0)}))}checkHlsBufferedDelay(){const e=this.$videoElement;let t=0;const i=e.buffered,r=i.length?i.end(i.length-1):0;return t=r-e.currentTime,t<0&&(this.player.debug.warn(this.TAG_NAME,`checkHlsBufferedDelay ${t} < 0, and buffered is ${r} ,currentTime is ${e.currentTime} , try to seek ${e.currentTime} to ${r}`),e.currentTime=r,t=0),t}getFps(){return this.hlsFps}_startCanvasRender(){Co()?this.supportVideoFrameCallbackHandle=this.$videoElement.requestVideoFrameCallback(this.videoFrameCallback.bind(this)):(this._stopCanvasRender(),this.canvasRenderInterval=setInterval((()=>{this.player.video.render({$video:this.$videoElement,ts:parseInt(1e3*this.$videoElement.currentTime,10)||0})}),40))}_stopCanvasRender(){this.canvasRenderInterval&&(clearInterval(this.canvasRenderInterval),this.canvasRenderInterval=null)}videoFrameCallback(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.player.isDestroyedOrClosed())return void this.player.debug.log(this.TAG_NAME,"videoFrameCallback() player is destroyed");const i=parseInt(1e3*Math.max(t.mediaTime,this.$videoElement.currentTime),10)||0;this.player.video.render({$video:this.$videoElement,ts:i}),this.player.handleRender(),this.player.updateStats({dts:i}),this.supportVideoFrameCallbackHandle=this.$videoElement.requestVideoFrameCallback(this.videoFrameCallback.bind(this))}_startBandwidthEstimateInterval(){this._stopBandwidthEstimateInterval(),this.bandwidthEstimateInterval=setInterval((()=>{let e=0;this.hls.bandwidthEstimate&&(e=this.hls.bandwidthEstimate),this.player.emit(yt.kBps,(e/1024/8/10).toFixed(2))}),1e3)}_stopBandwidthEstimateInterval(){this.bandwidthEstimateInterval&&(clearInterval(this.bandwidthEstimateInterval),this.bandwidthEstimateInterval=null)}_startFpsInterval(){this._stopCanvasRender(),this.fpsInterval=setInterval((()=>{if(this.$videoElement)if(Ha(this.$videoElement.getVideoPlaybackQuality)){const e=this.$videoElement.getVideoPlaybackQuality();this.hlsFps=e.totalVideoFrames-this.hlsPrevFrams,this.hlsPrevFrams=e.totalVideoFrames}else{const e=this.$videoElement.webkitDecodedFrameCount||0;this.hlsFps=e-this.hlsPrevFrams,this.hlsPrevFrams=e}}),1e3)}_stopFpsInterval(){this.fpsInterval&&(clearInterval(this.fpsInterval),this.fpsInterval=null)}_initHls(){this.player._opt.useCanvasRender&&(this.$videoElement=document.createElement("video"),this.$videoElement.muted=!0,Ca()&&(this.$videoElement.style.position="absolute"),this.initVideoEvents()),this.hls.attachMedia(this.$videoElement)}_bindEvents(){const e=this.player,{proxy:t}=this.player.events;this.hls;const i=this.$videoElement,r=Co(),s=t(i,ir,(t=>{if(this.hls){const i=parseInt(t.timeStamp,10);this.player._opt.useCanvasRender&&po(r)&&e.updateStats({ts:i,dts:i})}}));this.eventsDestroy.push(s),this._startBandwidthEstimateInterval(),this._startFpsInterval(),this.hls.on(ZA.Events.ERROR,((t,i)=>{if(i.fatal)switch(i.type){case ZA.ErrorTypes.NETWORK_ERROR:this.player.debug.warn(this.TAG_NAME,"fatal network error encountered, try to recover",i),401==i.response.code&&this.player.emit(yt.liveEnd,401),this.hls.startLoad();break;case ZA.ErrorTypes.MEDIA_ERROR:this.player.debug.warn(this.TAG_NAME,"fatal media error encountered, try to recover"),e.resetPlayerH265()}else if("mediaError"===i.type){if("Unsupported HEVC stream type found 0x24"!==i.reason)return;e.resetPlayerH265()}})),this.hls.on(ZA.Events.MEDIA_ATTACHING,(()=>{this.player.debug.log(this.TAG_NAME,"MEDIA_ATTACHING")})),this.hls.on(ZA.Events.MEDIA_ATTACHED,(()=>{this.player.debug.log(this.TAG_NAME,"MEDIA_ATTACHED")})),this.hls.on(ZA.Events.MEDIA_DETACHING,(()=>{this.player.debug.log(this.TAG_NAME,"MEDIA_DETACHING")})),this.hls.on(ZA.Events.MEDIA_DETACHED,(()=>{this.player.debug.log(this.TAG_NAME,"MEDIA_DETACHED")})),this.hls.on(ZA.Events.BUFFER_RESET,(()=>{this.player.debug.log(this.TAG_NAME,"BUFFER_RESET")})),this.hls.on(ZA.Events.BUFFER_CODECS,(()=>{this.player.debug.log(this.TAG_NAME,"BUFFER_CODECS")})),this.hls.on(ZA.Events.BUFFER_CREATED,(()=>{this.player.debug.log(this.TAG_NAME,"BUFFER_CREATED")})),this.hls.on(ZA.Events.LEVEL_PTS_UPDATED,((e,t)=>{})),this.hls.on(ZA.Events.INIT_PTS_FOUND,((e,t)=>{})),this.hls.on(ZA.Events.FRAG_PARSING_METADATA,((e,t)=>{})),this.hls.on(ZA.Events.BUFFER_APPENDING,((e,t)=>{this.player.debug.log(this.TAG_NAME,"BUFFER_APPENDING",t,videoCodec)})),this.hls.on(ZA.Events.BUFFER_APPENDED,(()=>{this.player.debug.log(this.TAG_NAME,"BUFFER_APPENDED")})),this.hls.on(ZA.Events.BUFFER_EOS,(()=>{this.player.debug.log(this.TAG_NAME,"fired when the stream is finished and we want to notify the media buffer that there will be no more data")})),this.hls.on(ZA.Events.BUFFER_FLUSHING,(()=>{this.player.debug.log(this.TAG_NAME,"fired when the media buffer should be flushed")})),this.hls.on(ZA.Events.BUFFER_FLUSHED,(()=>{this.player.debug.log(this.TAG_NAME,"fired when the media buffer has been flushed")})),this.hls.on(ZA.Events.MANIFEST_LOADING,(()=>{this.player.debug.log(this.TAG_NAME,"MANIFEST_LOADING 开始加载playlist m3u8资源")})),this.hls.on(ZA.Events.MANIFEST_LOADED,((e,t)=>{this.player.debug.log(this.TAG_NAME,"MANIFEST_LOADED playlist m3u8文件加载完成",t.url)})),this.hls.on(ZA.Events.MANIFEST_PARSED,(t=>{e._times.demuxStart||(e._times.demuxStart=la())})),this.hls.on(ZA.Events.LEVEL_LOADING,(()=>{this.player.debug.log(this.TAG_NAME,"LEVEL_LOADING 加载特定码率的m3u8文件")})),this.hls.on(ZA.Events.LEVEL_LOADED,((e,t)=>{this.player.debug.log(this.TAG_NAME,"LEVEL_LOADED 特定码率的m3u8文件解析完成拿到该码率对应的ts列表")})),this.hls.on(ZA.Events.FRAG_LOADING,(e=>{this.player.debug.log(this.TAG_NAME,e,"FRAG_LOADING 开始加载某个ts分片文件开始根据ts片下载时间预估带宽")})),this.hls.on(ZA.Events.FRAG_LOADED,((t,i)=>{this.player.debug.log(this.TAG_NAME,t,videoCodec,i,"FRAG_LOADED ts分片文件加载成功开始转码"),e._times.decodeStart||(e._times.decodeStart=la()),this.player.debug.log(this.TAG_NAME,"FRAG_LOADED",i),i.frag;const r=(i.stats||{}).buffering||{};this.player.debug.log(this.TAG_NAME,"FRAG_LOADED buffering.end",r,r.end),r.end&&this.player.updateStats({dts:r.end})})),this.hls.on(ZA.Events.BUFFER_APPENDING,(()=>{this.player.debug.log(this.TAG_NAME,"BUFFER_APPENDING 视频流赋给video标签"),e._times.videoStart||(e._times.videoStart=la(),e.handlePlayToRenderTimes())})),this.hls.on(ZA.Events.FRAG_DECRYPTED,(()=>{this.player.debug.log(this.TAG_NAME,"FRAG_DECRYPTED fired when a fragment decryption is completed")})),this.hls.on(ZA.Events.KEY_LOADING,(()=>{this.player.debug.log(this.TAG_NAME,"KEY_LOADING fired when a decryption key loading starts")})),this.hls.on(ZA.Events.KEY_LOADING,(()=>{this.player.debug.log(this.TAG_NAME,"KEY_LOADING fired when a fragment decryption is completed")})),this.hls.on(ZA.Events.FPS_DROP,(e=>{this.player.debug.log(this.TAG_NAME,"FPS_DROP",e)})),this.hls.on(ZA.Events.FPS_DROP_LEVEL_CAPPING,(e=>{this.player.debug.log(this.TAG_NAME,"FPS_DROP_LEVEL_CAPPING",e)})),this.hls.on(ZA.Events.FRAG_PARSING_INIT_SEGMENT,((e,t)=>{const i=!!(t&&t.tracks&&t.tracks.audio),r=!!(t&&t.tracks&&t.tracks.video);if(i&&t.tracks.audio){let e=t.tracks.audio;const i=e.metadata&&e.metadata.channelCount?e.metadata.channelCount:0,r=e.codec;this.player.audio&&this.player.audio.updateAudioInfo({encType:r,channels:i,sampleRate:44100})}if(r&&t.tracks.video){let e=t.tracks.video;const i={encTypeCode:-1!==e.codec.indexOf("avc")?Qt:Rt};e.metadata&&(i.width=e.metadata.width,i.height=e.metadata.height),this.player.video&&this.player.video.updateVideoInfo(i)}}))}initVideoPlay(e){this.player._opt.useCanvasRender&&(this.$videoElement=document.createElement("video"),this.initVideoEvents()),this.$videoElement.autoplay=!0,this.$videoElement.muted=!0,this.$videoElement.src=e}_initRenderSize(){this.isInitInfo||(this.player.video.updateVideoInfo({width:this.$videoElement.videoWidth,height:this.$videoElement.videoHeight}),this.player.video.initCanvasViewSize(),this.isInitInfo=!0)}initVideoEvents(){const{proxy:e}=this.player.events,t=e(this.$videoElement,er,(()=>{this.player.debug.log(this.TAG_NAME,"video canplay"),this.$videoElement.play().then((()=>{this.player.debug.log(this.TAG_NAME,"video play"),this._startCanvasRender(),this._initRenderSize()})).catch((e=>{this.player.debug.warn(this.TAG_NAME,"video play error ",e)}))})),i=e(this.$videoElement,tr,(()=>{this.player.debug.log(this.TAG_NAME,"video waiting")})),r=e(this.$videoElement,ir,(e=>{const t=parseInt(e.timeStamp,10);this.player.handleRender(),this.player.updateStats({ts:t}),this.$videoElement.paused&&(this.player.debug.warn(this.TAG_NAME,"video is paused and next try to replay"),this.$videoElement.play().then((()=>{this.player.debug.log(this.TAG_NAME,"video is paused and replay success")})).catch((e=>{this.player.debug.warn(this.TAG_NAME,"video is paused and replay error ",e)})))})),s=e(this.$videoElement,rr,(()=>{this.player.debug.log(this.TAG_NAME,"video playback Rate change",this.$videoElement&&this.$videoElement.playbackRate)}));this.eventsDestroy.push(t,i,r,s)}loadSource(e){return new Promise(((t,i)=>{this.canVideoPlay?(this.initVideoPlay(e),t()):this.hls.on(ZA.Events.MEDIA_ATTACHED,(()=>{this.hls.loadSource(e),t()}))}))}}class HA extends ko{constructor(e){super(),this.player=e,e.debug.log("mp4Decoder","init"),console.log("mp4Decoder","init"),this.$videoElement=this.player.video.$videoElement,this.player._opt.hasAudio&&(this.$videoElement.muted=!this.player._opt.isNotMute)}destroy(){this.$videoElement.src="",this.player.debug.log("mp4Decoder","destroy")}loadSource(e){return new Promise(((t,i)=>{this.$videoElement.src=e,this.$videoElement.play(),this.player.playing=!0,console.log("mp4Decoder","loadSource",e),t()}))}}class XA extends ko{constructor(e){super(),this.player=e,this.wsConnect=null,this.rtcContent=null,this.intervalTime=null,this.localStream=null,e.debug.log("wsRtcDecoder","init"),this.$videoElement=this.player.video.$videoElement}destroy(){clearInterval(this.intervalTime),this.rtcContent&&(this.rtcContent.close(),this.rtcContent=null,this.localStream=null,this.intervalTime=null),this.wsConnect&&(this.wsConnect.close(),this.wsConnect=null),this.player.debug.log("wsRtcDecoder","destroy")}loadSource(e){return new Promise(((t,i)=>{this.wsConnect=new WebSocket(e),this.$videoElement.muted=!1,this.wsConnect.onopen=()=>{this.intervalTime=setInterval((()=>{this.wsConnect.send(JSON.stringify({type:"ping"}))}),4500),this.onCallback("已连接中!"),this.createMedia(),t()},this.wsConnect.onmessage=e=>{const t=JSON.parse(e.data);switch(t.type){case"sdp":this.rtcContent.setRemoteDescription(new RTCSessionDescription({sdp:t.sdp,type:"answer"})),this.onCallback("接收视频信息...");break;case"candidate":case"pong":case"ErrSDP":case"ErrCandidate":case"Err":break;case"ErrKeepAlive":console.log("🚀 ~ CustomRTC ~ ErrKeepAlive: 服务端保活失败"),this.destroy()}},this.wsConnect.onclose=()=>{this.onCallback("网络连接中断!"),this.destroy(),i()}}))}async createMedia(){this.localStream=await navigator.mediaDevices.getUserMedia({video:!1,audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}}),this.createPeer()}createPeer(){if(this.rtcContent=new RTCPeerConnection({bundlePolicy:"balanced",iceTransportPolicy:"all",iceCandidatePoolSize:0,iceServers:this.player._opt.iceServers}),this.localStream){const e=this.localStream.getAudioTracks()[0];e.enabled=!1,this.rtcContent.addTrack(e,this.localStream)}this.rtcContent.addTransceiver("audio",{direction:"sendrecv"}),this.rtcContent.addTransceiver("video",{direction:"recvonly"}),this.createOffer(),this.rtcContent.onicecandidate=e=>{e.candidate&&(this.wsConnect?this.wsConnect.send(JSON.stringify({type:"candidate",candidate:JSON.stringify(e.candidate)})):console.log("ws 未连接!!!"))},this.rtcContent.oniceconnectionstatechange=e=>{"checking"===this.rtcContent?.iceConnectionState&&this.onCallback("正在检查视频源信息..."),"connected"===this.rtcContent?.iceConnectionState?this.onCallback("[成功]建立视频连接"):"disconnected"===this.rtcContent?.iceConnectionState?this.onCallback("[失败]视频连接已断开"):"failed"===this.rtcContent?.iceConnectionState&&this.onCallback("[失败]视频连接失败")},this.rtcContent.ontrack=e=>{this.$videoElement.srcObject=e.streams[0]}}createOffer(){this.rtcContent.createOffer().then((e=>{this.rtcContent.setLocalDescription(e).then((t=>{this.onCallback("获取视频信息..."),this.wsConnect.send(JSON.stringify({channel_id:this.player._opt.channelId,connect_type:1,sdp:e.sdp,type:"sdp"}))}))}))}startVoice(){if(this.localStream){const e=this.localStream?.getAudioTracks()[0];e.enabled=!0}}pauseVoice(){if(this.localStream){const e=this.localStream?.getAudioTracks()[0];e.enabled=!1}}removeVoice(){this.localStream&&this.localStream.getTracks().forEach((e=>{e.stop()}))}onCallback(e){this.player.debug.log("wsrtcMsg:",e)}}const _A=2097152,$A="fetch",ed="xhr",td="arraybuffer",id="text",rd="json",sd="real_time_speed",ad=Object.prototype.toString;function od(e){if("[object Object]"!==ad.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function nd(e){if(!e||null===e[0]||void 0===e[0]||0===e[0]&&(null===e[1]||void 0===e[1]))return;let t="bytes="+e[0]+"-";return e[1]&&(t+=e[1]),t}function ld(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function hd(e,t){if(!e)return;if(!t)return e;let i;const r=Object.keys(t).map((e=>{if(i=t[e],null!=i)return Array.isArray(i)?e+="[]":i=[i],i.map((t=>{var i;return i=t,"[object Date]"===ad.call(i)?t=t.toISOString():function(e){return null!==e&&"object"==typeof e}(t)&&(t=JSON.stringify(t)),`${ld(e)}=${ld(t)}`})).join("&")})).filter(Boolean).join("&");if(r){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}function Ad(e,t,i,r,s,a,o,n,l,h,A){s=null!=s?parseFloat(s):null,r=parseInt(r||"0",10),Number.isNaN(r)&&(r=0);return{data:e,done:t,option:{range:l,vid:h,index:n,contentLength:r,age:s,startTime:a,firstByteTime:o,endTime:Date.now(),priOptions:A},response:i}}function dd(e,t){return Math.round(8*e*1e3/t/1024)}class cd extends Error{retryCount=0;isTimeout=!1;loaderType=$A;startTime=0;endTime=0;options={};constructor(e,t,i,r){super(r),this.url=e,this.request=t,this.response=i}}class ud extends ko{_abortController=null;_timeoutTimer=null;_reader=null;_response=null;_aborted=!1;_index=-1;_range=null;_receivedLength=0;_running=!1;_logger=null;_vid="";_onProcessMinLen=0;_onCancel=null;_priOptions=null;TAG_NAME="FetchLoader";constructor(e){super(),this.player=e}load(e){let{url:t,vid:i,timeout:r,responseType:s,onProgress:a,index:o,onTimeout:n,onCancel:l,range:h,transformResponse:A,request:d,params:c,logger:u,method:p,headers:g,body:m,mode:y,credentials:E,cache:C,redirect:f,referrer:I,referrerPolicy:w,onProcessMinLen:S,priOptions:M}=e;this._aborted=!1,this._onProcessMinLen=S,this._onCancel=l,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=o,this._range=h||[0,0],this._vid=i||t,this._priOptions=M||{};const v={method:p,headers:g,body:m,mode:y,credentials:E,cache:C,redirect:f,referrer:I,referrerPolicy:w,signal:this._abortController?.signal};let k=!1;clearTimeout(this._timeoutTimer),t=hd(t,c);const B=nd(h);B&&(g=d?d.headers:v.headers=v.headers||(Headers?new Headers:{}),Headers&&g instanceof Headers?g.append("Range",B):g.Range=B),r&&(this._timeoutTimer=setTimeout((()=>{if(k=!0,this.cancel(),n){const e=new cd(t,v,null,"timeout");e.isTimeout=!0,n(e,{index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions})}}),r));const D=Date.now();return(La(o)||La(h))&&this.player.debug.log(this.TAG_NAME,"[fetch load start], index,",o,",range,",h),new Promise(((e,i)=>{fetch(d||t,d?void 0:v).then((async r=>{if(clearTimeout(this._timeoutTimer),this._response=r,this._aborted||!this._running)return;if(A&&(r=A(r,t)||r),!r.ok)throw new cd(t,v,r,"bad network response");const n=Date.now();let l;if(s===id)l=await r.text(),this._running=!1;else if(s===rd)l=await r.json(),this._running=!1;else{if(a)return this.resolve=e,this.reject=i,void this._loadChunk(r,a,D,n);{l=await r.arrayBuffer(),l=new Uint8Array(l),this._running=!1;const e=Date.now()-D,t=dd(l.byteLength,e);this.emit(sd,{speed:t,len:l.byteLength,time:e,vid:this._vid,index:this._index,range:this._range,priOptions:this._priOptions})}}(La(o)||La(h))&&this.player.debug.log(this.TAG_NAME,"[fetch load end], index,",o,",range,",h),e(Ad(l,!0,r,r.headers.get("Content-Length"),r.headers.get("age"),D,n,o,h,this._vid,this._priOptions))})).catch((e=>{clearTimeout(this._timeoutTimer),this._running=!1,this._aborted&&!k||((e=e instanceof cd?e:new cd(t,v,null,e?.message)).startTime=D,e.endTime=Date.now(),e.isTimeout=k,e.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},i(e))}))}))}async cancel(){if(!this._aborted){if(this._aborted=!0,this._running=!1,this._response){try{this._reader&&await this._reader.cancel()}catch(e){}this._response=this._reader=null}if(this._abortController){try{this._abortController.abort()}catch(e){}this._abortController=null}this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions})}}_loadChunk(e,t,i,r){if(!e.body||!e.body.getReader){this._running=!1;const t=new cd(e.url,"",e,"onProgress of bad response.body.getReader");return t.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(t)}this._onProcessMinLen>0&&(this._cache=new Uint8Array(_A),this._writeIdx=0);const s=this._reader=e.body.getReader();let a,o,n;const l=async()=>{o=Date.now();try{a=await s.read(),n=Date.now()}catch(e){return n=Date.now(),void(this._aborted||(this._running=!1,e.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this.reject(e)))}const h=this._range?.length>0?this._range[0]:0,A=h+this._receivedLength;if(this._aborted)return this._running=!1,void t(void 0,!1,{range:[A,A],vid:this._vid,index:this._index,startTime:o,endTime:n,st:i,firstByteTime:r,priOptions:this._priOptions},e);const d=a.value?a.value.byteLength:0;let c;if(this._receivedLength+=d,this.player.debug.log(this.TAG_NAME,"【fetchLoader,onProgress call】,task,",this._range,", start,",A,", end,",h+this._receivedLength,", done,",a.done),this._onProcessMinLen>0){if(this._writeIdx+d>=this._onProcessMinLen||a.done)c=new Uint8Array(this._writeIdx+d),c.set(this._cache.slice(0,this._writeIdx),0),d>0&&c.set(a.value,this._writeIdx),this._writeIdx=0,this.player.debug.log(this.TAG_NAME,"【fetchLoader,onProgress enough】,done,",a.done,",len,",c.byteLength,", writeIdx,",this._writeIdx);else if(d>0&&this._writeIdx+d<_A)this._cache.set(a.value,this._writeIdx),this._writeIdx+=d,this.player.debug.log(this.TAG_NAME,"【fetchLoader,onProgress cache】,len,",d,", writeIdx,",this._writeIdx);else if(d>0){const e=new Uint8Array(this._writeIdx+d+2048);this.player.debug.log(this.TAG_NAME,"【fetchLoader,onProgress extra start】,size,",this._writeIdx+d+2048,", datalen,",d,", writeIdx,",this._writeIdx),e.set(this._cache.slice(0,this._writeIdx),0),d>0&&e.set(a.value,this._writeIdx),this._writeIdx+=d,delete this._cache,this._cache=e,this.player.debug.log(this.TAG_NAME,"【fetchLoader,onProgress extra end】,len,",d,", writeIdx,",this._writeIdx)}}else c=a.value;if((c&&c.byteLength>0||a.done)&&t(c,a.done,{range:[this._range[0]+this._receivedLength-(c?c.byteLength:0),this._range[0]+this._receivedLength],vid:this._vid,index:this._index,startTime:o,endTime:n,st:i,firstByteTime:r,priOptions:this._priOptions},e),a.done){const t=Date.now()-i,s=dd(this._receivedLength,t);this.emit(sd,{speed:s,len:this._receivedLength,time:t,vid:this._vid,index:this._index,range:this._range,priOptions:this._priOptions}),this._running=!1,this.player.debug.log(this.TAG_NAME,"[fetchLoader onProgress end],task,",this._range,",done,",a.done),this.resolve(Ad(a,!0,e,e.headers.get("Content-Length"),e.headers.get("age"),i,r,this._index,this._range,this._vid,this._priOptions))}else l()};l()}get receiveLen(){return this._receivedLength}get running(){return this._running}set running(e){this._running=e}static isSupported(){return!("undefined"==typeof fetch)}}class pd{TAG_NAME="Task";constructor(e,t,i){this.promise=function(){let e,t;const i=new Promise(((i,r)=>{e=i,t=r}));return i.used=!1,i.resolve=function(){return i.used=!0,e(...arguments)},i.reject=function(){return i.used=!0,t(...arguments)},i}(),this.alive=!!t.onProgress,this._loaderType=e,this.player=i,this._loader=e===$A&&window.fetch?new ud(i):new gd(i),this._config=t,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=t.retryCheckFunc}exec(){const{retry:e,retryDelay:t,onRetryError:i,transformError:r,...s}=this._config,a=async()=>{try{const e=await this._loader.load(s);this.promise.resolve(e)}catch(o){if(this._loader.running=!1,this.player.debug.log(this.TAG_NAME,"[task request catch err]",o),this._canceled)return;o.loaderType=this._loaderType,o.retryCount=this._retryCount;let n=o;r&&(n=r(n)||n),i&&this._retryCount>0&&i(n,this._retryCount,{index:s.index,vid:s.vid,range:s.range,priOptions:s.priOptions}),this._retryCount++;let l=!0;if(this._retryCheckFunc&&(l=this._retryCheckFunc(o)),l&&this._retryCount<=e)return clearTimeout(this._retryTimer),this.player.debug.log(this.TAG_NAME,"[task request setTimeout],retry",this._retryCount,",retry range,",s.range),void(this._retryTimer=setTimeout(a,t));this.promise.reject(n)}};return a(),this.promise}async cancel(){return clearTimeout(this._retryTimer),this._canceled=!0,this._loader.running=!1,this._loader.cancel()}get running(){return this._loader&&this._loader.running}get loader(){return this._loader}}class gd extends ko{_xhr=null;_aborted=!1;_timeoutTimer=null;_range=null;_receivedLength=0;_url=null;_onProgress=null;_index=-1;_headers=null;_currentChunkSizeKB=384;_timeout=null;_xhr=null;_withCredentials=null;_startTime=-1;_loadCompleteResolve=null;_loadCompleteReject=null;_runing=!1;_logger=!1;_vid="";_responseType;_credentials;_method;_transformResponse;_firstRtt;_onCancel=null;_priOptions=null;TAG_NAME="XhrLoader";constructor(e){super(),this.player=e}load(e){clearTimeout(this._timeoutTimer),this._range=e.range,this._onProgress=e.onProgress,this._index=e.index,this._headers=e.headers,this._withCredentials="include"===e.credentials||"same-origin"===e.credentials,this._body=e.body||null,e.method&&(this._method=e.method),this._timeout=e.timeout||null,this._runing=!0,this._vid=e.vid||e.url,this._responseType=e.responseType,this._firstRtt=-1,this._onTimeout=e.onTimeout,this._onCancel=e.onCancel,this._request=e.request,this._priOptions=e.priOptions||{},this.player.debug.log(this.TAG_NAME,"【xhrLoader task】, range",this._range),this._url=hd(e.url,e.params);const t=Date.now();return new Promise(((e,t)=>{this._loadCompleteResolve=e,this._loadCompleteReject=t,this._startLoad()})).catch((e=>{if(clearTimeout(this._timeoutTimer),this._runing=!1,!this._aborted)throw(e=e instanceof cd?e:new cd(this._url,this._request)).startTime=t,e.endTime=Date.now(),e.options={index:this._index,vid:this._vid,priOptions:this._priOptions},e}))}_startLoad(){let e=null;if(this._responseType===td&&this._range&&this._range.length>1)if(this._onProgress){this._firstRtt=-1;const t=1024*this._currentChunkSizeKB,i=this._range[0]+this._receivedLength;let r=this._range[1];t<this._range[1]-i&&(r=i+t),e=[i,r],this.player.debug.log(this.TAG_NAME,"[xhr_loader->],tast :",this._range,", SubRange, ",e)}else e=this._range,this.player.debug.log(this.TAG_NAME,"[xhr_loader->],tast :",this._range,", allRange, ",e);this._internalOpen(e)}_internalOpen(e){try{this._startTime=Date.now();const t=this._xhr=new XMLHttpRequest;t.open(this._method||"GET",this._url,!0),t.responseType=this._responseType,this._timeout&&(t.timeout=this._timeout),t.withCredentials=this._withCredentials,t.onload=this._onLoad.bind(this),t.onreadystatechange=this._onReadyStatechange.bind(this),t.onerror=e=>{this._running=!1;const t=new cd(this._url,this._request,e?.currentTarget?.response,"xhr.onerror.status:"+e?.currentTarget?.status+",statusText,"+e?.currentTarget?.statusText);t.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(t)},t.ontimeout=e=>{this.cancel();const t=new cd(this._url,this._request,{status:408},"timeout");this._onTimeout&&(t.isTimeout=!0,this._onTimeout(t,{index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions})),t.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(t)};const i=this._headers||{},r=nd(e);r&&(i.Range=r),i&&Object.keys(i).forEach((e=>{t.setRequestHeader(e,i[e])})),this.player.debug.log(this.TAG_NAME,"[xhr.send->] tast,",this._range,",load sub range, ",e),t.send(this._body)}catch(t){t.options={index:this._index,range:e,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(t)}}_onReadyStatechange(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}_onLoad(e){const t=e.target.status;if(t<200||t>299){const i=new cd(this._url,null,{...e.target.response,status:t},"bad response,status:"+t);return i.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(i)}let i,r=null,s=!1;const a=this._range?.length>0?this._range[0]:0;if(this._responseType===td){const t=new Uint8Array(e.target.response);if(i=a+this._receivedLength,t&&t.byteLength>0){this._receivedLength+=t.byteLength;const e=Date.now()-this._startTime,r=dd(this._receivedLength,e);this.emit(sd,{speed:r,len:this._receivedLength,time:e,vid:this._vid,index:this._index,range:[i,a+this._receivedLength],priOptions:this._priOptions})}r=t,s=!(this._range?.length>1&&this._range[1]&&this._receivedLength<this._range[1]-this._range[0]),this.player.debug.log(this.TAG_NAME,"[xhr load done->], tast :",this._range,", start",i,"end ",a+this._receivedLength,",dataLen,",t?t.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",s)}else s=!0,r=e.target.response;let o={ok:t>=200&&t<300,status:t,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(o=this._transformResponse(o,this._url)||o),this._onProgress&&this._onProgress(r,s,{index:this._index,vid:this._vid,range:[i,a+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},o),s?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(Ad(this._onProgress?null:r,s,o,o.headers["content-length"],o.headers.age,this._startTime,this._firstRtt,this._index,this._range,this._vid,this._priOptions))):this._startLoad()}cancel(){if(!this._aborted)return this._aborted=!0,this._runing=!1,super.removeAllListeners(),this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions}),this._xhr?this._xhr.abort():void 0}static isSupported(){return"undefined"!=typeof XMLHttpRequest}get receiveLen(){return this._receivedLength}get running(){return this._running}set running(e){this._running=e}_getHeaders(e){const t=e.getAllResponseHeaders().trim().split("\r\n"),i={};for(const e of t){const t=e.split(": ");i[t[0].toLowerCase()]=t.slice(1).join(": ")}return i}}class md extends ko{type=$A;_queue=[];_alive=[];_currentTask=null;_config;constructor(e,t){super(),this.player=t,this._config=function(e){return{loaderType:$A,retry:0,retryDelay:0,timeout:0,request:null,onTimeout:void 0,onProgress:void 0,onRetryError:void 0,transformRequest:void 0,transformResponse:void 0,transformError:void 0,responseType:id,range:void 0,url:"",params:void 0,method:"GET",headers:{},body:void 0,mode:void 0,credentials:void 0,cache:void 0,redirect:void 0,referrer:void 0,referrerPolicy:void 0,integrity:void 0,onProcessMinLen:0,...e}}(e),this._config.loaderType!==ed&&ud.isSupported()||(this.type=ed)}destroy(){this._queue=[],this._alive=[],this._currentTask=null}isFetch(){return this.type===$A}static isFetchSupport(){return ud.isSupported()}load(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"string"!=typeof e&&e?t=e:t.url=e||t.url||this._config.url,t=Object.assign({},this._config,t),t.params&&(t.params=Object.assign({},t.params)),t.headers&&od(t.headers)&&(t.headers=Object.assign({},t.headers)),t.body&&od(t.body)&&(t.body=Object.assign({},t.body)),t.transformRequest&&(t=t.transformRequest(t)||t);const i=new pd(this.type,t,this.player);return i.loader.on(sd,(e=>{this.emit(sd,e)})),this._queue.push(i),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),i.promise}async cancel(){const e=this._queue.map((e=>e.cancel())).concat(this._alive.map((e=>e.cancel())));this._currentTask&&e.push(this._currentTask.cancel()),this._queue=[],this._alive=[],await Promise.all(e),await function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new Promise((t=>setTimeout(t,e)))}()}_processTask(){if(this._currentTask=this._queue.shift(),!this._currentTask)return;this._currentTask.alive&&this._alive.push(this._currentTask);const e=this._currentTask.exec().catch((e=>{}));e&&"function"==typeof e.finally&&e.finally((()=>{this._currentTask?.alive&&this._alive?.length>0&&(this._alive=this._alive.filter((e=>e&&e!==this._currentTask))),this._processTask()}))}}const yd="network",Ed="network_timeout",Cd="other",fd="manifest",Id="hls",wd="demux";class Sd extends Error{constructor(e,t,i,r,s){super(s||i?.message),this.errorType=e===Ed?yd:e,this.originError=i,this.ext=r,this.errorMessage=this.message}static create(e,t,i,r,s){return e instanceof Sd?e:(e instanceof Error&&(i=e,e=""),e||(e=Cd),new Sd(e,t,i,r,s))}static network(e){return new Sd(e?.isTimeout?Ed:yd,null,e instanceof Error?e:null,{url:e?.url,response:e?.response,httpCode:e?.response?.status})}}const Md=/^#(EXT[^:]*)(?::(.*))?$/,vd=/([^=]+)=(?:"([^"]*)"|([^",]*))(?:,|$)/g,kd=/^(?:[a-zA-Z0-9+\-.]+:)?\/\//,Bd=/^((?:[a-zA-Z0-9+\-.]+:)?\/\/[^/?#]*)?([^?#]*\/)?/;function Dd(e){const t=e.match(Md);if(t&&t[1])return[t[1].replace("EXT-X-",""),t[2]]}function bd(e){const t={};let i=vd.exec(e);for(;i;)t[i[1]]=i[2]||i[3],i=vd.exec(e);return t}function Qd(e,t){if(!t||!e||kd.test(e))return e;const i=Bd.exec(t);return i?"/"===e[0]?i[1]+e:i[1]+i[2]+e:e}const Rd={audio:[/^mp4a/,/^vorbis$/,/^opus$/,/^flac$/,/^[ae]c-3$/],video:[/^avc/,/^hev/,/^hvc/,/^vp0?[89]/,/^av1$/],text:[/^vtt$/,/^wvtt/,/^stpp/]};function Td(e,t){const i=Rd[e];if(i&&t&&t.length)for(let e=0;e<i.length;e++)for(let r=0;r<t.length;r++)if(i[e].test(t[r]))return t[r]}class Ld{constructor(){this.version=0,this.streams=[],this.isMaster=!0}}const Kd="AUDIO",qd="SUBTITLE";class xd{id=0;url="";default=!1;autoSelect=!1;forced=!1;group="";name="";lang="";segments=[];endSN=0}class Fd extends xd{mediaType=Kd;channels=0}class Ud extends xd{mediaType=qd}class Gd{id=0;bitrate=0;width=0;height=0;name="";url="";audioCodec="";videoCodec="";textCodec="";audioGroup="";audioStreams=[];subtitleStreams=[];closedCaptionsStream=[]}class Od{version=0;url="";type="";startCC=0;endCC=0;startSN=0;endSN=0;totalDuration=0;targetDuration=0;live=!0;segments=[]}class Jd{sn=0;cc=0;url="";title="";start=0;duration=0;key=null;byteRange=null;isInitSegment=!1;initSegment=null;isLast=!1;hasAudio=!1;hasVideo=!1;get end(){return this.start+this.duration}setTrackExist(e,t){this.hasVideo=e,this.hasAudio=t}setByteRange(e,t){this.byteRange=[0];const i=e.split("@");1===i.length&&t&&t.byteRange?(this.byteRange[0]=t.byteRange[1]||0,this.byteRange[0]&&(this.byteRange[0]+=1)):this.byteRange[0]=parseInt(i[1]),this.byteRange[1]=this.byteRange[0]+parseInt(i[0])-1}}class Yd{method="";url="";iv=null;keyFormat="";keyFormatVersions="";constructor(e){e instanceof Yd&&(this.method=e.method,this.url=e.url,this.keyFormat=e.keyFormat,this.keyFormatVersions=e.keyFormatVersions,e.iv&&(this.iv=new Uint8Array(e.iv)))}clone(e){const t=new Yd(this);return null!=e&&t.setIVFromSN(e),t}setIVFromSN(e){if(!this.iv&&"AES-128"===this.method&&"number"==typeof e&&this.url){this.iv=new Uint8Array(16);for(let t=12;t<16;t++)this.iv[t]=e>>8*(15-t)&255}}}class Nd{static parse(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;if(!e.includes("#EXTM3U"))throw new Error("Invalid m3u8 file");const i=function(e){return e.split(/[\r\n]/).map((e=>e.trim())).filter(Boolean)}(e);return Nd.isMediaPlaylist(e)?function(e,t){const i=new Od;i.url=t;let r,s=new Jd,a=null,o=null,n=0,l=0,h=0,A=0,d=!1;for(;(r=e[A++])&&!d;){if("#"!==r[0]){s.sn=l,s.cc=h,s.url=Qd(r,t),o&&(s.key=o.clone(l)),a&&(s.initSegment=a),i.segments.push(s),s=new Jd,l++;continue}const e=Dd(r);if(!e)continue;const[A,c]=e;switch(A){case"VERSION":i.version=parseInt(c);break;case"PLAYLIST-TYPE":i.type=c?.toUpperCase();break;case"TARGETDURATION":i.targetDuration=parseFloat(c);break;case"ENDLIST":{const e=i.segments[i.segments.length-1];e&&(e.isLast=!0),i.live=!1,d=!0}break;case"MEDIA-SEQUENCE":l=i.startSN=parseInt(c);break;case"DISCONTINUITY-SEQUENCE":h=i.startCC=parseInt(c);break;case"DISCONTINUITY":h++;break;case"BYTERANGE":s.setByteRange(c,i.segments[i.segments.length-1]);break;case"EXTINF":{const[e,t]=c.split(",");s.start=n,s.duration=parseFloat(e),n+=s.duration,s.title=t}break;case"KEY":{const e=bd(c);if("NONE"===e.METHOD){o=null;break}if("AES-128"!==e.METHOD)throw new Error(`encrypt ${e.METHOD}/${e.KEYFORMAT} is not supported`);if(o=new Yd,o.method=e.METHOD,o.url=/^blob:/.test(e.URI)?e.URI:Qd(e.URI,t),o.keyFormat=e.KEYFORMAT||"identity",o.keyFormatVersions=e.KEYFORMATVERSIONS,e.IV){let t=e.IV.slice(2);t=(1&t.length?"0":"")+t,o.iv=new Uint8Array(t.length/2);for(let e=0,i=t.length/2;e<i;e++)o.iv[e]=parseInt(t.slice(2*e,2*e+2),16)}}break;case"MAP":{const e=bd(c);s.url=Qd(e.URI,t),e.BYTERANGE&&s.setByteRange(e.BYTERANGE),s.isInitSegment=!0,s.sn=0,o&&(s.key=o.clone(0)),a=s,s=new Jd}}}const c=i.segments[i.segments.length-1];return c&&(i.endSN=c.sn),i.totalDuration=n,i.endCC=h,i}(i,t):function(e,t){const i=new Ld;let r,s=0;const a=[],o=[];for(;r=e[s++];){const n=Dd(r);if(!n)continue;const[l,h]=n;if("VERSION"===l)i.version=parseInt(h);else if("MEDIA"===l&&h){const e=bd(h);let i;switch(e.TYPE){case"AUDIO":i=new Fd;break;case"SUBTITLES":i=new Ud;break;default:i=new xd}i.url=Qd(e.URI,t),i.default="YES"===e.DEFAULT,i.autoSelect="YES"===e.AUTOSELECT,i.group=e["GROUP-ID"],i.name=e.NAME,i.lang=e.LANGUAGE,e.CHANNELS&&(i.channels=Number(e.CHANNELS.split("/")[0]),Number.isNaN(i.channels)&&(i.channels=0)),"AUDIO"===e.TYPE&&e.URI&&a.push(i),"SUBTITLES"===e.TYPE&&o.push(i)}else if("STREAM-INF"===l&&h){const r=new Gd,a=bd(h);if(r.bitrate=parseInt(a["AVERAGE-BANDWIDTH"]||a.BANDWIDTH),r.name=a.NAME,r.url=Qd(e[s++],t),a.RESOLUTION){const[e,t]=a.RESOLUTION.split("x");r.width=parseInt(e),r.height=parseInt(t)}if(a.CODECS){const e=a.CODECS.split(/[ ,]+/).filter(Boolean);r.videoCodec=Td("video",e),r.audioCodec=Td("audio",e),r.textCodec=Td("text",e)}r.audioGroup=a.AUDIO,r.subtitleGroup=a.SUBTITLES,i.streams.push(r)}}return i.streams.forEach(((e,t)=>{e.id=t})),a.length&&(a.forEach(((e,t)=>{e.id=t})),i.streams.forEach((e=>{e.audioGroup&&(e.audioStreams=a.filter((t=>t.group===e.audioGroup)))}))),o.length&&(o.forEach(((e,t)=>{e.id=t})),i.streams.forEach((e=>{e.subtitleGroup&&(e.subtitleStreams=o.filter((t=>t.group===e.subtitleGroup)))}))),i}(i,t)}static isMediaPlaylist(e){return e.includes("#EXTINF:")||e.includes("#EXT-X-TARGETDURATION:")}}class Pd{constructor(e){this.hls=e,this.player=e.player,this.TAG_NAME="HlsManifestLoader",this._timer=null;const{retryCount:t,retryDelay:i,loadTimeout:r,fetchOptions:s}=this.hls.config;this._loader=new md({...s,responseType:"text",retry:t,retryDelay:i,timeout:r,onRetryError:this._onLoaderRetry},this.player),this._audioLoader=new md({...s,responseType:"text",retry:t,retryDelay:i,timeout:r,onRetryError:this._onLoaderRetry},this.player),this._subtitleLoader=new md({...s,responseType:"text",retry:t,retryDelay:i,timeout:r,onRetryError:this._onLoaderRetry},this.player)}async destroy(){await this.stopPoll(),this._audioLoader&&(this._audioLoader.destroy(),this._audioLoader=null),this._subtitleLoader&&(this._subtitleLoader.destroy(),this._subtitleLoader=null),this._loader&&(this._loader.destroy(),this._loader=null)}async load(e,t,i){this.player.debug.log(this.TAG_NAME,"load()",e,t,i);const r=[this._loader.load(e)];let s,a,o,n,l,h;t&&r.push(this._audioLoader.load(t)),i&&r.push(this._subtitleLoader.load(i));try{const[e,i,n]=await Promise.all(r);if(!e)return[];s=e.data,t?(a=i?.data,o=n?.data):o=i?.data}catch(e){throw Sd.network(e)}try{if(n=Nd.parse(s,e),!1===n?.live&&n.segments&&!n.segments.length)throw new Error("empty segments list");a&&(l=Nd.parse(a,t)),o&&(h=Nd.parse(o,i))}catch(e){throw new Sd(fd,Id,e)}return n&&(n.isMaster?this.hls.emit(Yr,{playlist:n}):this.hls.emit(Nr,{playlist:n})),[n,l,h]}poll(e,t,i,r,s,a){clearTimeout(this._timer),a=a||3e3;let o=this.hls.config.pollRetryCount;const n=async()=>{clearTimeout(this._timer);try{const s=await this.load(e,t,i);if(!s[0])return;o=this.hls.config.pollRetryCount,r(s[0],s[1],s[2])}catch(e){o--,o<=0&&s(e)}this._timer=setTimeout(n,a)};this._timer=setTimeout(n,a)}stopPoll(){return clearTimeout(this._timer),this.cancel()}cancel(){return Promise.all([this._loader.cancel(),this._audioLoader.cancel()])}_onLoaderRetry=(e,t)=>{this.hls.emit(Zr,{error:Sd.network(e),retryTime:t})}}class jd{_chunkSpeeds=[];_speeds=[];addRecord(e,t){e&&t&&(this._speeds.push(8e3*e/t),this._speeds=this._speeds.slice(-3))}addChunkRecord(e,t){e&&t&&(this._chunkSpeeds.push(8e3*e/t),this._chunkSpeeds=this._chunkSpeeds.slice(-100))}getAvgSpeed(){return this._chunkSpeeds.length||this._speeds.length?this._speeds.length?this._speeds.reduce(((e,t)=>e+t))/this._speeds.length:this._chunkSpeeds.reduce(((e,t)=>e+t))/this._chunkSpeeds.length:0}getLatestSpeed(){return this._chunkSpeeds.length||this._speeds.length?this._speeds.length?this._speeds[this._speeds.length-1]:this._chunkSpeeds[this._chunkSpeeds.length-1]:0}reset(){this._chunkSpeeds=[],this._speeds=[]}}class zd{constructor(e){this.hls=e,this.player=e.player,this._bandwidthService=new jd;const{retryCount:t,retryDelay:i,loadTimeout:r,fetchOptions:s}=this.hls.config;this._segmentLoader=new md({...s,responseType:"arraybuffer",retry:t,retryDelay:i,timeout:r,onRetryError:this._onLoaderRetry},this.player),this._audioSegmentLoader=new md({...s,responseType:"arraybuffer",retry:t,retryDelay:i,timeout:r,onRetryError:this._onLoaderRetry},this.player),this._keyLoader=new md({...s,responseType:"arraybuffer",retry:t,retryDelay:i,timeout:r,onRetryError:this._onLoaderRetry},this.player)}destroy(){this.reset(),this._keyLoader&&(this._keyLoader.destroy(),this._keyLoader=null),this._audioSegmentLoader&&(this._audioSegmentLoader.destroy(),this._audioSegmentLoader=null),this._segmentLoader&&(this._segmentLoader.destroy(),this._segmentLoader=null)}speedInfo(){return{speed:this._bandwidthService.getLatestSpeed(),avgSpeed:this._bandwidthService.getAvgSpeed()}}resetBandwidth(){this._bandwidthService.reset()}load(e,t,i){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:i;const s=[];return e&&(s[0]=this.loadVideoSegment(e,i)),t&&(s[1]=this.loadAudioSegment(t,r)),Promise.all(s)}loadVideoSegment(e,t){return this._loadSegment(this._segmentLoader,e,t)}loadAudioSegment(e,t){return this._loadSegment(this._audioSegmentLoader,e,t)}async _loadSegment(e,t,i){let r,s,a,o,n;const l=[];if(this.hls.emit(Vr,{url:t.url}),l[0]=e.load(t.url),i&&t.initSegment){const i=t.initSegment.url;r=this._mapCache[i],r||(this.hls.emit(Vr,{url:i}),l[1]=e.load(i).then((e=>{if(e){Object.keys(this._mapCache)>30&&(this._mapCache={}),r=this._mapCache[i]=e.data,this._emitOnLoaded(e,i)}})));const s=t.initSegment.key?.url;s&&(n=t.initSegment.key.iv,o=this._keyCache[s],o||(this.hls.emit(Vr,{url:s}),l[2]=this._keyLoader.load(s).then((e=>{e&&(o=this._keyCache[s]=e.data,this._emitOnLoaded(e,s))}))))}const h=t.key?.url;h&&(a=t.key.iv,s=this._keyCache[h],s||(this.hls.emit(Vr,{url:h}),l[3]=this._keyLoader.load(h).then((e=>{e&&(s=this._keyCache[h]=e.data,this._emitOnLoaded(e,h))}))));const[A]=await Promise.all(l);if(!A)return;const d=A.data;return this._emitOnLoaded(A,t.url),{data:d,map:r,key:s,mapKey:o,keyIv:a,mapKeyIv:n}}reset(){this.error=null,this._mapCache={},this._keyCache={},this._bandwidthService.reset()}async cancel(){await Promise.all([this._keyLoader.cancel(),this._segmentLoader.cancel(),this._audioSegmentLoader.cancel()])}_emitOnLoaded=(e,t)=>{const{data:i,response:r,option:s}=e,{firstByteTime:a,startTime:o,endTime:n,contentLength:l}=s||{},h=n-o;this._bandwidthService.addRecord(l||i.byteLength,h),this.hls.emit(Hr,{time:h,byteLength:l,url:t}),this.hls.emit(Xr,{url:t,elapsed:h||0}),this.hls.emit(Wr,{url:t,responseUrl:r.url,elapsed:a-o}),this.hls.emit(_r,{headers:r.headers})};_onLoaderRetry=(e,t)=>{this.hls.emit(Zr,{error:Sd.network(e),retryTime:t})}}class Wd{constructor(e,t,i){this.live=void 0,this.id=0,this.bitrate=0,this.width=0,this.height=0,this.name="",this.url="",this.audioCodec="",this.videoCodec="",this.textCodec="",this.startCC=0,this.endCC=0,this.startSN=0,this.endSN=-1,this.totalDuration=0,this.targetDuration=0,this.snDiff=null,this.segments=[],this.audioStreams=[],this.subtitleStreams=[],this.closedCaptions=[],this.currentAudioStream=null,this.currentSubtitleStream=null,this.TAG_NAME="HlsStream",this.update(e,t,i)}get lastSegment(){return this.segments.length?this.segments[this.segments.length-1]:null}get segmentDuration(){return this.targetDuration||this.segments[0]?.duration||0}get liveEdge(){return this.endTime}get endTime(){return this.lastSegment?.end||0}get currentSubtitleEndSn(){return this.currentSubtitleStream?.endSN||0}clearOldSegment(e,t){return this._clearSegments(e,t)}getAudioSegment(e){if(!e||!this.currentAudioStream)return;const t=e.sn-this.snDiff;return this.currentAudioStream.segments.find((e=>e.sn===t))}update(e,t){this.url=e.url,Array.isArray(e.segments)?(null!==this.live&&void 0!==this.live||(this.live=e.live),this._updateSegments(e,this),this.startCC=e.startCC,this.endCC=e.endCC,this.startSN=e.startSN,this.endSN=e.endSN||-1,this.totalDuration=e.totalDuration,this.targetDuration=e.targetDuration,this.live=e.live,t&&this.currentAudioStream&&Array.isArray(t.segments)&&(this._updateSegments(t,this.currentAudioStream),(null===this.snDiff||void 0===this.snDiff)&&e.segments.length&&t.segments.length&&(this.snDiff=e.segments[0].sn-t.segments[0].sn))):(this.id=e.id,this.bitrate=e.bitrate,this.width=e.width,this.height=e.height,this.name=e.name,this.audioCodec=e.audioCodec,this.videoCodec=e.videoCodec,this.textCodec=e.textCodec,this.audioStreams=e.audioStreams,this.subtitleStreams=e.subtitleStreams,!this.currentAudioStream&&this.audioStreams.length&&(this.currentAudioStream=this.audioStreams.find((e=>e.default))||this.audioStreams[0]),!this.currentSubtitleStream&&this.subtitleStreams.length&&(this.currentSubtitleStream=this.subtitleStreams.find((e=>e.default))||this.subtitleStreams[0]))}updateSubtitle(e){if(console.log(e,66),!(e&&this.currentSubtitleStream&&Array.isArray(e.segments)))return;const t=this._updateSegments(e,this.currentSubtitleStream),i=this.currentSubtitleStream.segments;return i.length>100&&(this.currentSubtitleStream.segments=i.slice(100)),t?t.map((e=>({sn:e.sn,url:e.url,duration:e.duration,start:e.start,end:e.end,lang:this.currentSubtitleStream.lang}))):void 0}switchSubtitle(e){const t=this.subtitleStreams.find((t=>t.lang===e)),i=this.currentSubtitleStream;t&&(this.currentSubtitleStream=t,i.segments=[])}_clearSegments(e,t){let i=0;const r=this.segments;for(let t=0,s=r.length;t<s;t++)if(r[t].end>=e){i=t;break}return i>t&&(i=t),i&&(this.segments=this.segments.slice(i),this.currentAudioStream&&(this.currentAudioStream.segments=this.currentAudioStream.segments.slice(i))),t-i}_updateSegments(e,t){const i=t.segments;if(this.live){const r=i[i.length-1],s=r?.sn||-1;if(s<e.endSN&&e.segments.length){const a=e.segments.findIndex((e=>e.sn===s)),o=a<0?e.segments:e.segments.slice(a+1);if(i.length&&o.length){let e=r.end;o.forEach((t=>{t.start=e,e=t.end}));const t=r?.cc||-1;t>o[0].cc&&o.forEach((e=>e.cc+=t))}return t.endSN=e.endSN,t.segments=i.concat(o),o}}else t.segments=e.segments}}class Zd{constructor(e){this.hls=e,this.player=e.player,this.streams=[],this.currentStream=null,this.dvrWindow=0,this._segmentPointer=-1,this.TAG_NAME="HlsPlaylist"}destroy(){this.reset()}get lastSegment(){return this.currentStream?.lastSegment}get currentSegment(){return this.currentSegments?.[this._segmentPointer]}get nextSegment(){return this.currentSegments?.[this._segmentPointer+1]}get currentSegments(){return this.currentStream?.segments}get currentSubtitleEndSn(){return this.currentStream?.currentSubtitleEndSn}get liveEdge(){return this.currentStream?.liveEdge}get totalDuration(){return this.currentStream?.totalDuration||0}get seekRange(){const e=this.currentSegments;if(e&&e.length)return[e[0].start,e[e.length-1].end]}get isEmpty(){return!this.currentSegments?.length}get isLive(){return this.currentStream?.live}get hasSubtitle(){return!!this.currentStream?.currentSubtitleStream}getAudioSegment(e){return this.currentStream?.getAudioSegment(e)}moveSegmentPointer(e){null==e&&(e=this._segmentPointer+1),this._segmentPointer=ha(e,-1,this.currentSegments?.length),this.player.debug.log(this.TAG_NAME,`moveSegmentPointer() and param pos is ${e} and clamp result is ${this._segmentPointer}`)}reset(){this.streams=[],this.currentStream=null,this.dvrWindow=0,this._segmentPointer=-1}getSegmentByIndex(e){return this.currentSegments?.[e]}setNextSegmentByIndex(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=parseInt(this.totalDuration)/this.currentSegments.length,i=parseInt(e/t);this._segmentPointer=i-2<0?0:i-2,this.player.debug.log(this.TAG_NAME,"setNextSegmentByIndex()",e,this._segmentPointer)}findSegmentIndexByTime(e){const t=this.currentSegments;if(t){for(let i,r=0,s=t.length;r<s;r++)if(i=t[r],e>=i.start&&e<i.end)return r;const i=t[t.length-1];if(Math.abs(e-i?.end)<.2)return t.length-1}}upsertPlaylist(e,t,i){if(!e)return void this.player.debug.warn(this.TAG_NAME,"upsertPlaylist() playlist is null");if(e.isMaster)this.streams.length=e.streams.length,e.streams.filter((e=>e.url)).forEach(((e,t)=>{this.streams[t]?this.streams[t].update(e):this.streams[t]=new Wd(e)})),this.currentStream=this.streams[0];else if(Array.isArray(e.segments)){const r=this.currentStream;if(r){r.update(e,t,i);const s=r.updateSubtitle(i);s&&this.hls.emit(Jr,{list:s})}else this.reset(),this.currentStream=this.streams[0]=new Wd(e,t,i)}this.currentStream&&this.hls.isLive&&!this.dvrWindow&&(this.dvrWindow=this.currentSegments.reduce(((e,t)=>e+=t.duration),0))}switchSubtitle(e){this.currentStream?.switchSubtitle(e)}clearOldSegment(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:50;const t=this.currentStream;if(!this.dvrWindow||!t)return;const i=t.endTime-this.dvrWindow;if(i<=0)return void this.player.debug.log(this.TAG_NAME,`clearOldSegment() stream.endTime:${t.endTime}, this.dvrWindow:${this.dvrWindow} startTime <= 0`);const r=t.segments;if(r.length<=e)return void this.player.debug.log(this.TAG_NAME,`clearOldSegment() segments.length:${r.length} <= maxPlaylistSize:${e}`);const s=this._segmentPointer;this._segmentPointer=t.clearOldSegment(i,s),this.player.debug.log(this.TAG_NAME,"clearOldSegment() update _segmentPointer:",s,this._segmentPointer),this.player.debug.log(this.TAG_NAME,"currentSegments",this.currentSegments)}checkSegmentTrackChange(e,t){const i=this.findSegmentIndexByTime(e),r=this.getSegmentByIndex(i);if(!r)return;if(!r.hasAudio&&!r.hasVideo)return;if(2!==t&&r.hasAudio&&r.hasVideo)return r;if(r.end-e>.3)return;const s=this.getSegmentByIndex(i+1);return s&&(s.hasAudio||s.hasVideo)&&(s.hasAudio!==r.hasAudio||s.hasVideo!==r.hasVideo)?s:void 0}}class Vd{constructor(e,t){this.hls=e,this.player=t;const i=window.crypto||window.msCrypto;this.subtle=i&&(i.subtle||i.webkitSubtle),this.externalDecryptor=null}decrypt(e,t){if(!e&&!t)return;const i=[];return e&&(i[0]=this._decryptSegment(e)),t&&(i[1]=this._decryptSegment(t)),Promise.all(i)}async _decryptSegment(e){let t=e.data;return e.key&&(t=await this._decryptData(e.data,e.key,e.keyIv)),e.map?Zh(e.map,t):t}async _decryptData(e,t,i){if(this.externalDecryptor)return await this.externalDecryptor.decrypt(e,t,i);if(this.subtle){const r=await this.subtle.importKey("raw",t,{name:"AES-CBC"},!1,["encrypt","decrypt"]),s=await this.subtle.decrypt({name:"AES-CBC",iv:i},r,e);return new Uint8Array(s)}e=yh(e),t=yh(t),i=yh(i);return function(e){const{words:t}=e,{sigBytes:i}=e,r=new Uint8Array(i);for(let e=0;e<i;e+=1)r[e]=t[e>>>2]>>>24-e%4*8&255;return r}(s.default.AES.decrypt({ciphertext:e},t,{iv:i,mode:s.default.mode.CBC}))}}class Hd extends Rh{constructor(e){super(e),this.player=e,this._pmtId=-1,this._remainingPacketData=null,this._videoPesData=[],this._audioPesData=[],this._gopId=0,this._videoPid=-1,this._audioPid=-1,this._codecType=Qt,this._audioCodecType=Kt.AAC,this._vps=null,this._sps=null,this._pps=null,this.TAG_NAME="HlsTsLoader",this._isForHls=!0,this.videoTrack=Hd.initVideoTrack(),this.audioTrack=Hd.initAudioTrack(),this._ptsIndex=0,this._baseDts=-1,this._baseDtsInited=!1,this._basefps=25,this._baseFpsInterval=null,this._tempSampleTsList=[],this._hasAudio=!1,this._hasVideo=!1,this._audioNextPts=void 0,this._videoNextDts=void 0,this._audioTimestampBreak=!1,this._videoTimestampBreak=!1,this._lastAudioExceptionGapDot=0,this._lastAudioExceptionOverlapDot=0,this._lastAudioExceptionLargeGapDot=0,this._isSendAACSeqHeader=!1,this.workerClearTimeout=null,this.workerUrl=null,this.loopWorker=null,this.tempSampleListInfo={},this._isUseWorker()&&this._initLoopWorker(),this.player.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.workerUrl&&(URL.revokeObjectURL(this.workerUrl),this.workerUrl=null),this.workerClearTimeout&&(clearTimeout(this.workerClearTimeout),this.workerClearTimeout=null),this.loopWorker&&(this.loopWorker.postMessage({cmd:"destroy"}),this.loopWorker.terminate(),this.loopWorker=null),this._stopDecodeLoopInterval(),this.videoTrack=null,this.audioTrack=null,this.tempSampleListInfo={},this._ptsIndex=0,this._baseDts=-1,this._baseDtsInited=!1,this._basefps=25,this._hasCalcFps=!1,this._audioNextPts=void 0,this._videoNextDts=void 0,this._audioTimestampBreak=!1,this._videoTimestampBreak=!1,this._lastAudioExceptionGapDot=0,this._lastAudioExceptionOverlapDot=0,this._lastAudioExceptionLargeGapDot=0,this._isForHls=!0,this._isSendAACSeqHeader=!1,this.player.debug.log(this.TAG_NAME,"destroy")}static initVideoTrack(){return{samples:[]}}static initAudioTrack(){return{samples:[]}}static probe(e){return!!e.length&&(71===e[0]&&71===e[188]&&71===e[376])}_parsePES(e){const t=e[8];if(null==t||e.length<t+9)return;const i=e[0]<<16|e[1]<<8|e[2];if(1!==i)return this.player.debug.warn(this.TAG_NAME,`_parsePES startPrefix should be 1 but with value ${i}`),{error:!0,code:"startPrefixError"};const r=(e[4]<<8)+e[5];if(r&&r>e.length-6)return;let s,a;const o=e[7];return 192&o&&(s=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,64&o?(a=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2,s-a>54e5&&(s=a)):a=s),{data:e.subarray(9+t),pts:s,dts:a,originalPts:s,originalDts:a}}_demux(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];t&&(this._pmtId=-1,this.videoTrack=Hd.initVideoTrack(),this.audioTrack=Hd.initAudioTrack()),!i||t?(this._remainingPacketData=null,this._videoPesData=[],this._audioPesData=[]):(this.videoTrack.samples=[],this.audioTrack.samples=[],this._remainingPacketData&&(e=Zh(this._remainingPacketData,e),this._remainingPacketData=null));let r=e.length;const s=r%188;s&&(this._remainingPacketData=e.subarray(r-s),r-=s);for(let t=0;t<r;t+=188){if(71!==e[t])throw new Error("TS packet did not start with 0x47");const i=!!(64&e[t+1]),r=((31&e[t+1])<<8)+e[t+2];let s;if((48&e[t+3])>>4>1){if(s=t+5+e[t+4],s===t+188)continue}else s=t+4;switch(r){case 0:i&&(s+=e[s]+1),this._pmtId=(31&e[s+10])<<8|e[s+11];break;case this._pmtId:{i&&(s+=e[s]+1);const t=s+3+((15&e[s+1])<<8|e[s+2])-4;for(s+=12+((15&e[s+10])<<8|e[s+11]);s<t;){const t=(31&e[s+1])<<8|e[s+2];switch(e[s]){case 15:this._audioPid=t,this._audioCodecType=Kt.AAC;break;case 27:if(-1!==this._videoPid)break;this._videoPid=t,this._codecType=Qt;break;case 36:if(-1!==this._videoPid)break;this._videoPid=t,this._codecType=Rt;break;default:this.player.debug.log(this.TAG_NAME,`Unsupported stream. type: ${e[s]}, pid: ${t}`)}s+=5+((15&e[s+3])<<8|e[s+4])}}break;case this._videoPid:i&&this._videoPesData.length&&this._parseVideoData(),this._videoPesData.push(e.subarray(s,t+188));break;case this._audioPid:i&&this._audioPesData.length&&this._parseAudioData(),this._audioPesData.push(e.subarray(s,t+188));break;case 17:case 8191:break;default:this.player.debug.log(this.TAG_NAME,`Unknown pid: ${r}`)}}this._parseVideoData(),this._parseAudioData(),this.audioTrack.formatTimescale=this.videoTrack.formatTimescale=this.videoTrack.timescale=9e4,this.audioTrack.timescale=this.audioTrack.sampleRate||0}demuxAndFix(e,t,i,r){this.player._times.demuxStart||(this.player._times.demuxStart=la()),this._demux(e,t,i),this._fix(r,t,i)}getPtsIndex(){return this._ptsIndex}setPtsIndex(e){this._postMessageToLoopWorker("updatePtsIndex",{time:e,total:this.player.hlsDecoder.hls._playlist.totalDuration})}setfps(e){this._postMessageToLoopWorker("updateFps",{fps:e})}_parseVideoData(){if(!this._videoPesData.length)return void this.player.debug.log(this.TAG_NAME,"_parseVideoData","no video pes data");const e=this._parsePES(Zh(...this._videoPesData));if(!e||e.error)return void(e&&"startPrefixError"===e.code&&(this._videoPesData=[]));const t=function(e){const t=e.length;let i=2,r=0;for(;null!==e[i]&&void 0!==e[i]&&1!==e[i];)i++;if(i++,r=i+2,r>=t)return[];const s=[];for(;r<t;)switch(e[r]){case 0:if(0!==e[r-1]){r+=2;break}if(0!==e[r-2]){r++;break}i!==r-2&&s.push(e.subarray(i,r-2));do{r++}while(1!==e[r]&&r<t);i=r+1,r=i+2;break;case 1:if(0!==e[r-1]||0!==e[r-2]){r+=3;break}i!==r-2&&s.push(e.subarray(i,r-2)),i=r+1,r=i+2;break;default:r+=3}return i<t&&s.push(e.subarray(i)),s}(e.data);t?this._createVideoSample(t,e.pts,e.dts):this.player.debug.warn(this.TAG_NAME,"Cannot parse avc units",e),this._videoPesData=[]}_createVideoSample(e,t,i){if(!e.length)return;const r=this._codecType===Rt,s={isIFrame:!1,type:He,isHevc:r,vps:null,sps:null,pps:null,pts:t,dts:i,payload:null};e.forEach((e=>{const t=r?e[0]>>>1&63:31&e[0];switch(t){case 5:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:if(!r&&5!==t||r&&5===t)break;s.isIFrame=!0,this._gopId++;break;case 6:case 39:case 40:if(!r&&6!==t||r&&6===t)break;return void function(e,t){const i=e.length;let r=t?2:1,s=0,a=0,o="";for(;255===e[r];)s+=255,r++;for(s+=e[r++];255===e[r];)a+=255,r++;if(a+=e[r++],5===s&&i>r+16)for(let t=0;t<16;t++)o+=e[r].toString(16),r++;e.subarray(r)}(function(e){const t=e.byteLength,i=[];let r=1;for(;r<t-2;)0===e[r]&&0===e[r+1]&&3===e[r+2]?(i.push(r+2),r+=2):r++;if(!i.length)return e;const s=t-i.length,a=new Uint8Array(s);let o=0;for(r=0;r<s;o++,r++)o===i[0]&&(o++,i.shift()),a[r]=e[o];return a}(e),r);case 32:if(!r)break;s.vps||(s.vps=e);break;case 7:case 33:if(!r&&7!==t||r&&7===t)break;s.sps||(s.sps=e);break;case 8:case 34:if(!r&&8!==t||r&&8===t)break;s.pps||(s.pps=e)}if(r&&Vn(t)||!r&&xn(t)){const t=ra(e);if(s.payload){const e=new Uint8Array(s.payload.byteLength+t.byteLength);e.set(s.payload,0),e.set(t,s.payload.byteLength),s.payload=e}else s.payload=t}}));let a=null;r?s.sps&&s.vps&&s.pps&&(a=zn({vps:s.vps,sps:s.sps,pps:s.pps})):s.sps&&s.pps&&(a=Tn({sps:s.sps,pps:s.pps})),a&&(this.player.debug.log(this.TAG_NAME,"_createVideoSample","seqHeader"),this._doDecodeByHls(a,He,Math.round(s.pts/90),!0,0)),s.isIFrame&&this.calcIframeIntervalTimestamp(Math.round(s.dts/90)),this.videoTrack.samples=this.videoTrack.samples.concat(s)}_parseAudioData(){if(!this._audioPesData.length)return;if(!this.player._opt.hasAudio)return;const e=this._parsePES(Zh(...this._audioPesData));if(e&&!e.error){if(this._audioCodecType===Kt.AAC){const t=function(e,t){const i=e.length;let r=0;for(;r+2<i&&(255!==e[r]||240!=(246&e[r+1]));)r++;if(r>=i)return;const s=r,a=[],o=(60&e[r+2])>>>2,n=Ys[o];if(!n)throw new Error(`Invalid sampling index: ${o}`);const l=1+((192&e[r+2])>>>6),h=(1&e[r+2])<<2|(192&e[r+3])>>>6;let A,d,c=0;const u=zs(n);for(;r+7<i;)if(255===e[r]&&240==(246&e[r+1])){if(d=(3&e[r+3])<<11|e[r+4]<<3|(224&e[r+5])>>5,i-r<d)break;A=2*(1&~e[r+1]),a.push({pts:t+c*u,data:e.subarray(r+7+A,r+d)}),c++,r+=d}else r++;return{skip:s,remaining:r>=i?void 0:e.subarray(r),frames:a,samplingFrequencyIndex:o,sampleRate:n,objectType:l,channelCount:h,originCodec:`mp4a.40.${l}`}}(e.data,e.originalPts);if(t){if(this.audioTrack.codec=t.codec,this.audioTrack.sampleRate=t.sampleRate,this.audioTrack.channelCount=t.channelCount,!this._isSendAACSeqHeader){const e=Gs({profile:t.objectType,sampleRate:t.samplingFrequencyIndex,channel:t.channelCount});this._isSendAACSeqHeader=!0,this.player.debug.log(this.TAG_NAME,"aac seq header",`profile: ${t.objectType}, sampleRate:${t.sampleRate},sampleRateIndex: ${t.samplingFrequencyIndex}, channel: ${t.channelCount}`),this._doDecodeByHls(e,Ve,0,!1,0)}if(this._isSendAACSeqHeader){const e=[];t.frames.forEach((t=>{const i=t.pts,r=new Uint8Array(t.data.length+2);r.set([175,1],0),r.set(t.data,2);const s={type:Ve,pts:i,dts:i,payload:r};e.push(s)})),this.audioTrack.samples=this.audioTrack.samples.concat(e)}else this.player.debug.warn(this.TAG_NAME,"aac seq header not send")}else this.player.debug.warn(this.TAG_NAME,"aac parseADTS error")}this._audioPesData=[]}else e&&"startPrefixError"===e.code&&(this._audioPesData=[])}_fix(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];e=Math.round(9e4*e);const r=this.videoTrack,s=this.audioTrack,a=r.samples,o=s.samples;if(!a.length&&!o.length)return;const n=a[0],l=o[0];let h=0;if(a.length&&o.length&&(h=n.dts-l.pts),this._baseDtsInited||this._calculateBaseDts(),t&&(this._calculateBaseDts(),this._baseDts-=e),!i){this._videoNextDts=h>0?e+h:e,this._audioNextPts=h>0?e:e-h;const t=n?n.dts-this._baseDts-this._videoNextDts:0,i=l?l.pts-this._baseDts-this._audioNextPts:0;Math.abs(t||i)>Bs&&(this._calculateBaseDts(this.audioTrack,this.videoTrack),this._baseDts-=e)}this._resetBaseDtsWhenStreamBreaked(),this._fixAudio(s),this._fixVideo(r);let A=r.samples.concat(s.samples);A=A.map((e=>(e.dts=Math.round(e.dts/90),e.pts=Math.round(e.pts/90),e.cts=e.pts-e.dts,e))).sort(((e,t)=>e.dts-t.dts));let d=0;A.forEach((e=>{const t=new Uint8Array(e.payload);if(0==d&&e.dts)d=e.dts;else{e.dts-d>200?(d+=50,e.dts=d):d=e.dts}delete e.payload,this._isUseWorker()?this.loopWorker.postMessage({...e,payload:t,cmd:"sample"},[t.buffer]):e.type===He?this._doDecodeVideo({...e,payload:t}):e.type===Ve&&this._doDecodeAudio({...e,payload:t})})),po(this._hasCalcFps)&&this._isUseWorker()&&(this._hasCalcFps=!0,this._calcDecodeFps(A))}_isUseWorker(){return!this.player.isUseMSE()&&this.isForHls()}_calculateBaseDts(){const e=this.audioTrack,t=this.videoTrack,i=e.samples,r=t.samples;if(!i.length&&!r.length)return!1;let s=1/0,a=1/0;i.length&&(e.baseDts=s=i[0].pts),r.length&&(t.baseDts=a=r[0].dts),this._baseDts=Math.min(s,a);const o=a-s;return Number.isFinite(o)&&Math.abs(o)>45e3&&this.player.debug.warn(this.TAG_NAME,`large av first frame gap,\n video pts: ${a},\n audio pts: ${s},\n base dts: ${this._baseDts},\n detect is: ${o}`),this._baseDtsInited=!0,!0}_resetBaseDtsWhenStreamBreaked(){if(this._baseDtsInited&&this._videoTimestampBreak&&this._audioTimestampBreak){if(!this._calculateBaseDts(this.audioTrack,this.videoTrack))return;this._baseDts-=Math.min(this._audioNextPts,this._videoNextDts),this._audioLastSample=null,this._videoLastSample=null,this._videoTimestampBreak=!1,this._audioTimestampBreak=!1}}_fixAudio(e){const t=e.samples;t.length&&(t.forEach((e=>{e.pts-=this._baseDts,e.dts=e.pts})),this._doFixAudioInternal(e,t,9e4))}_fixVideo(e){const t=e.samples;if(!t.length)return;if(t.forEach((e=>{e.dts-=this._baseDts,e.pts-=this._baseDts})),void 0===this._videoNextDts){const e=t[0];this._videoNextDts=e.dts}const i=t.length;let r=0;const s=t[0],a=t[1],o=this._videoNextDts-s.dts;let n;Math.abs(o)>45e3&&(s.dts+=o,s.pts+=o,this.player.debug.warn(this.TAG_NAME,`large video gap between chunk,\n next dts is ${this._videoNextDts},\n first dts is ${s.dts},\n next dts is ${a.dts},\n duration is ${o}`),a&&Math.abs(a.dts-s.dts)>Bs&&(this._videoTimestampBreak=!0,t.forEach(((e,t)=>{0!==t&&(e.dts+=o,e.pts+=o)}))));const l=e.samples[0],h=e.samples[i-1];n=1===i?9e3:Math.floor((h.dts-l.dts)/(i-1));for(let s=0;s<i;s++){const a=t[s].dts,o=t[s+1];if(r=s<i-1?o.dts-a:t[s-1]?Math.min(a-t[s-1].dts,n):n,r>Bs||r<0){this._videoTimestampBreak=!0,r=this._audioTimestampBreak?n:Math.max(r,2700);const i=this._audioNextPts||0;o&&o.dts>i&&(r=n),this.player.debug.warn(this.TAG_NAME,`large video gap between frames,\n time is ${a/e.timescale},\n dts is ${a},\n origin dts is ${t[s].originalDts},\n next dts is ${this._videoNextDts},\n sample Duration is ${r} ,\n ref Sample DurationInt is ${n}`)}t[s].duration=r,this._videoNextDts+=r}}_doFixAudioInternal(e,t,i){e.sampleDuration||(e.sampleDuration=zs(e.timescale,i));const r=e.sampleDuration;if(void 0===this._audioNextPts){const e=t[0];this._audioNextPts=e.pts}for(let i=0;i<t.length;i++){const s=this._audioNextPts,a=t[i],o=a.pts-s;if(!this._audioTimestampBreak&&o>=3*r&&o<=vs&&!Ca()){js(e.codec,e.channelCount)||t[0].data.subarray();const n=Math.floor(o/r);Math.abs(a.pts-this._lastAudioExceptionGapDot)>ks&&(this._lastAudioExceptionGapDot=a.pts),this.player.debug.warn(this.TAG_NAME,`audio gap detected,\n pts is ${t.pts},\n originPts is ${t.originalPts},\n count is ${n},\n nextPts is ${s},\n ref sample duration is ${r}`);for(let e=0;e<n;e++)this._audioNextPts+=r,i++;i--}else o<=-3*r&&o>=-9e4?(Math.abs(a.pts-this._lastAudioExceptionOverlapDot)>ks&&(this._lastAudioExceptionOverlapDot=a.pts,this.player.debug.warn(this.TAG_NAME,`audio overlap detected,\n pts is ${a.pts},\n originPts is ${a.originalPts},\n nextPts is ${s},\n ref sample duration is ${r}`)),t.splice(i,1),i--):(Math.abs(o)>=vs&&(this._audioTimestampBreak=!0,Math.abs(a.pts-this._lastAudioExceptionLargeGapDot)>ks&&(this._lastAudioExceptionLargeGapDot=a.pts,this.player.debug.warn(this.TAG_NAME,`large audio gap detected,\n time is ${a.pts/1e3}\n pts is ${a.pts},\n originPts is ${a.originalPts},\n nextPts is ${s},\n sample duration is ${o}\n ref sample duration is ${r}`))),a.dts=a.pts=s,this._audioNextPts+=r)}}_calcDecodeFps(e){const t=ao(e.map((e=>({ts:e.dts||e.pts,type:e.type}))),He);t&&(this.player.debug.log(this.TAG_NAME,`_calcDecodeFps() video fps is ${t}, update base fps is ${this._basefps}`),this._basefps=t),this._postMessageToLoopWorker("updateBaseFps",{baseFps:this._basefps})}_initLoopWorker(){this.player.debug.log(this.TAG_NAME,"_initLoopWorker()");const e=Eo(function(){const e=1,t=2;let i=new class{constructor(){this.baseFps=0,this.ptsIndex=0,this.ptsIndexdts=0,this.timeIdx=0,this.fpsInterval=null,this.preLoopTimestamp=null,this.startBpsTime=null,this.allSampleList=[]}destroy(){this._clearInterval(),this.baseFps=0,this.ptsIndex=0,this.ptsIndexdts=0,this.timeIdx=0,this.allSampleList=[],this.preLoopTimestamp=null,this.startBpsTime=null}updateBaseFps(e){this.baseFps=e>25?25:e,this._clearInterval(),this._startInterval()}updateFps(e){this.baseFps=e,this._clearInterval(),this._startInterval()}updatePtsIndex(e){this.timeIdx=e;let t=this.allSampleList.length-1;this.ptsIndex=parseInt(t)||0}pushSample(e){if(delete e.cmd,this.allSampleList.push(e),this.timeIdx>0){let e=this.allSampleList.findIndex((e=>e.dts>=this.timeIdx));-1!=e&&(this.timeIdx=0,this.ptsIndex=e)}}_startInterval(){const e=Math.ceil(1e3/this.baseFps);this.fpsInterval=setInterval((()=>{let t=(new Date).getTime();this.preLoopTimestamp||(this.preLoopTimestamp=t),this.startBpsTime||(this.startBpsTime=t);const i=t-this.preLoopTimestamp;if(i>2*e&&console.warn(`EasyPro:[TsLoader LoopWorker] loop interval is ${i}ms, more than ${e} * 2ms`),this._loop(),this.preLoopTimestamp=(new Date).getTime(),this.startBpsTime){t-this.startBpsTime>=1e3&&(this._calcSampleList(),this.startBpsTime=t)}}),e)}_setTimeIndex(){postMessage({cmd:"sampleIndex",index:this.ptsIndex,len:this.allSampleList.length,fps:this.baseFps,dts:this.ptsIndexdts})}_clearInterval(){this.fpsInterval&&(clearInterval(this.fpsInterval),this.fpsInterval=null)}_calcSampleList(){const i={buferredDuration:0,allListLength:this.allSampleList.length,audioListLength:0,videoListLength:0};this.allSampleList.forEach((r=>{r.type===t?(i.videoListLength++,r.duration&&(i.buferredDuration+=Math.round(r.duration/90))):r.type===e&&i.audioListLength++})),postMessage({cmd:"sampleListInfo",...i})}_loop(){let i=null;if(this.ptsIndex+1<=this.allSampleList.length){if(i=this.allSampleList[this.ptsIndex],this.ptsIndex++,i&&i.dts&&(this.ptsIndexdts=i.dts),i.type===t){postMessage({cmd:"decodeVideo",...i},[i.payload.buffer]);let t=this.allSampleList[this.ptsIndex];for(t&&t.dts&&(this.ptsIndexdts=t.dts);t&&t.type===e;)i=this.allSampleList[this.ptsIndex],this.ptsIndex++,i.dts&&(this.ptsIndexdts=i.dts),postMessage({cmd:"decodeAudio",...i},[i.payload.buffer]),t=this.allSampleList[this.ptsIndex],t&&t.dts&&(this.ptsIndexdts=t.dts)}else i.type===e&&(postMessage({cmd:"decodeAudio",...i},[i.payload.buffer]),this.allSampleList.length&&this.allSampleList[this.ptsIndex].type===t&&(i=this.allSampleList[this.ptsIndex],this.ptsIndex++,i&&i.dts&&(this.ptsIndexdts=i.dts),postMessage({cmd:"decodeVideo",...i},[i.payload.buffer])));this._setTimeIndex()}}};self.onmessage=e=>{const t=e.data;switch(t.cmd){case"updateBaseFps":i.updateBaseFps(t.baseFps);break;case"sample":i.pushSample(t);break;case"updatePtsIndex":i.updatePtsIndex(t.time,t.total);break;case"updateFps":i.updateFps(t.fps);break;case"destroy":i.destroy(),i=null}}}.toString()),t=new Blob([e],{type:"text/javascript"}),i=URL.createObjectURL(t);let r=new Worker(i);this.workerUrl=i,this.workerClearTimeout=setTimeout((()=>{window.URL.revokeObjectURL(this.workerUrl),this.workerUrl=null,this.workerClearTimeout=null}),de),r.onmessage=e=>{const t=e.data;switch(t.cmd){case"decodeVideo":this._doDecodeVideo(t);break;case"decodeAudio":this._doDecodeAudio(t);break;case"sampleListInfo":this.tempSampleListInfo=t;break;case"sampleIndex":this._ptsIndex=parseInt(t.dts/1e3)+1}},this.loopWorker=r}_postMessageToLoopWorker(e,t){this._isUseWorker()&&(this.loopWorker?this.loopWorker.postMessage({cmd:e,...t}):this.player.debug.warn(this.TAG_NAME,"loop worker is not init, can not post message"))}_doDecodeAudio(e){const t=new Uint8Array(e.payload);this.player.updateStats({abps:t.byteLength});let i=t;uo(this.player._opt.m7sCryptoAudio)&&(i=this.cryptoPayloadAudio(t)),this.isForHls()?this._doDecodeByHls(i,Ve,e.dts,!1,0):this._doDecodeByTs(i,Ve,e.dts,!1,0)}_doDecodeVideo(e){const t=new Uint8Array(e.payload);let i=null;i=e.isHevc?Wn(t,e.isIFrame):Ln(t,e.isIFrame),this.player.updateStats({dts:e.dts,vbps:i.byteLength});const r=e.pts-e.dts;let s=this.cryptoPayload(i,e.isIFrame);this.isForHls()?this._doDecodeByHls(s,He,e.dts,e.isIFrame,r):this._doDecodeByTs(s,He,e.dts,e.isIFrame,r)}_stopDecodeLoopInterval(){this._baseFpsInterval&&(clearInterval(this._baseFpsInterval),this._baseFpsInterval=null)}getBuferredDuration(){return this.tempSampleListInfo.buferredDuration||0}getSampleListLength(){return this.tempSampleListInfo.allListLength||0}getSampleAudioListLength(){return this.tempSampleListInfo.audioListLength||0}getSampleVideoListLength(){return this.tempSampleListInfo.videoListLength||0}isForHls(){return this._isForHls}getInputByteLength(){return this._remainingPacketData&&this._remainingPacketData.byteLength||0}}function Xd(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<8)+(e[t+1]||0)}function _d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<24>>>0)+(e[t+1]<<16)+(e[t+2]<<8)+(e[t+3]||0)}function $d(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;const i=Math.pow(2,32);return _d(e,t)*i+_d(e,t+4)}const ec="aac",tc="g7110a",ic="g7110m",rc="avc",sc="hevc";class ac{static FREQ=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];static getFrameDuration(e){return 1024*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4)/e}static getRateIndexByRate(e){return ac.FREQ.indexOf(e)}}function oc(e,t,i,r,s,a){const o=[],n=s?.entries,l=t.entries,h=r.entries,A=i.entrySizes,d=a?.entries;let c,u,p;d&&(c={},d.forEach((e=>{c[e-1]=!0}))),n&&(u=[],n.forEach((e=>{let{count:t,offset:i}=e;for(let e=0;e<t;e++)u.push(i)})));let g=-1,m=0,y=0,E=0,C=0,f=0,I=l[0].samplesPerChunk,w=l[1]?l[1].firstChunk-1:1/0;return e.entries.forEach((e=>{let{count:t,delta:r}=e;for(let e=0;e<t;e++)p={dts:m,duration:r,size:A[y]||i.sampleSize,offset:h[E]+f,index:y},d&&(p.keyframe=c[y],p.keyframe&&g++,p.gopId=g),u&&y<u.length&&(p.pts=p.dts+u[y]),o.push(p),m+=r,y++,y<I?f+=p.size:(E++,f=0,E>=w&&(C++,w=l[C+1]?l[C+1].firstChunk-1:1/0),I+=l[C].samplesPerChunk)})),o}function nc(e,t){return e.dataReferenceIndex=Xd(t,6),e.width=Xd(t,24),e.height=Xd(t,26),e.horizresolution=_d(t,28),e.vertresolution=_d(t,32),e.frameCount=Xd(t,40),e.depth=Xd(t,74),78}function lc(e,t){return e.dataReferenceIndex=Xd(t,6),e.channelCount=Xd(t,16),e.sampleSize=Xd(t,18),e.sampleRate=_d(t,24)/65536,28}function hc(e,t,i){if(!e)return;if(e.size!==e.data.length)throw new Error(`box ${e.type} size !== data.length`);const r={start:e.start,size:e.size,headerSize:e.headerSize,type:e.type};return t&&(r.version=e.data[e.headerSize],r.flags=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return(e[t]<<16)+(e[t+1]<<8)+(e[t+2]||0)}(e.data,e.headerSize+1),r.headerSize+=4),i(r,e.data.subarray(r.headerSize),r.start+r.headerSize),r}const Ac=function(){const e=[];for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return i.forEach((t=>{e.push(function(e,t,i){const r=String(i),s=t>>0;let a=Math.ceil(s/r.length);const o=[],n=String(e);for(;a--;)o.push(r);return o.join("").substring(0,s-n.length)+n}(Number(t).toString(16),2,0))})),e[0]};class dc{static probe(e){return!!dc.findBox(e,["ftyp"])}static findBox(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;const r=[];if(!e)return r;let s=0,a="",o=0;for(;e.length>7;){if(s=_d(e),a=String.fromCharCode.apply(null,e.subarray(4,8)),o=8,1===s?(s=$d(e,8),o+=8):s||(s=e.length),!t[0]||a===t[0]){const n=e.subarray(0,s);if(!(t.length<2))return dc.findBox(n.subarray(o),t.slice(1),i+o);r.push({start:i,size:s,headerSize:o,type:a,data:n})}i+=s,e=e.subarray(s)}return r}static tfhd(e){return hc(e,!0,((e,t)=>{e.trackId=_d(t);let i=4;const r=1&e.flags,s=2&e.flags,a=8&e.flags,o=16&e.flags,n=32&e.flags;r&&(i+=4,e.baseDataOffset=_d(t,i),i+=4),s&&(e.sampleDescriptionIndex=_d(t,i),i+=4),a&&(e.defaultSampleDuration=_d(t,i),i+=4),o&&(e.defaultSampleSize=_d(t,i),i+=4),n&&(e.defaultSampleFlags=_d(t,i))}))}static sidx(e){return hc(e,!0,((e,t)=>{let i=0;e.reference_ID=_d(t,i),i+=4,e.timescale=_d(t,i),i+=4,0===e.version?(e.earliest_presentation_time=_d(t,i),i+=4,e.first_offset=_d(t,i),i+=4):(e.earliest_presentation_time=$d(t,i),i+=8,e.first_offset=$d(t,i),i+=8),i+=2,e.references=[];const r=Xd(t,i);i+=2;for(let s=0;s<r;s++){const r={};e.references.push(r);let s=_d(t,i);i+=4,r.reference_type=s>>31&1,r.referenced_size=2147483647&s,r.subsegment_duration=_d(t,i),i+=4,s=_d(t,i),i+=4,r.starts_with_SAP=s>>31&1,r.SAP_type=s>>28&7,r.SAP_delta_time=268435455&s}}))}static moov(e){return hc(e,!1,((e,t,i)=>{e.mvhd=dc.mvhd(dc.findBox(t,["mvhd"],i)[0]),e.trak=dc.findBox(t,["trak"],i).map((e=>dc.trak(e))),e.pssh=dc.pssh(dc.findBox(t,["pssh"],i)[0])}))}static mvhd(e){return hc(e,!0,((e,t)=>{let i=0;1===e.version?(e.timescale=_d(t,16),e.duration=$d(t,20),i+=28):(e.timescale=_d(t,8),e.duration=_d(t,12),i+=16),e.nextTrackId=_d(t,i+76)}))}static trak(e){return hc(e,!1,((e,t,i)=>{e.tkhd=dc.tkhd(dc.findBox(t,["tkhd"],i)[0]),e.mdia=dc.mdia(dc.findBox(t,["mdia"],i)[0])}))}static tkhd(e){return hc(e,!0,((e,t)=>{let i=0;1===e.version?(e.trackId=_d(t,16),e.duration=$d(t,24),i+=32):(e.trackId=_d(t,8),e.duration=_d(t,16),i+=20),e.width=_d(t,i+52),e.height=_d(t,i+56)}))}static mdia(e){return hc(e,!1,((e,t,i)=>{e.mdhd=dc.mdhd(dc.findBox(t,["mdhd"],i)[0]),e.hdlr=dc.hdlr(dc.findBox(t,["hdlr"],i)[0]),e.minf=dc.minf(dc.findBox(t,["minf"],i)[0])}))}static mdhd(e){return hc(e,!0,((e,t)=>{let i=0;1===e.version?(e.timescale=_d(t,16),e.duration=$d(t,20),i+=28):(e.timescale=_d(t,8),e.duration=_d(t,12),i+=16);const r=Xd(t,i);e.language=String.fromCharCode(96+(r>>10&31),96+(r>>5&31),96+(31&r))}))}static hdlr(e){return hc(e,!0,((e,t)=>{0===e.version&&(e.handlerType=String.fromCharCode.apply(null,t.subarray(4,8)))}))}static minf(e){return hc(e,!1,((e,t,i)=>{e.vmhd=dc.vmhd(dc.findBox(t,["vmhd"],i)[0]),e.smhd=dc.smhd(dc.findBox(t,["smhd"],i)[0]),e.stbl=dc.stbl(dc.findBox(t,["stbl"],i)[0])}))}static vmhd(e){return hc(e,!0,((e,t)=>{e.graphicsmode=Xd(t),e.opcolor=[Xd(t,2),Xd(t,4),Xd(t,6)]}))}static smhd(e){return hc(e,!0,((e,t)=>{e.balance=Xd(t)}))}static stbl(e){return hc(e,!1,((e,t,i)=>{e.stsd=dc.stsd(dc.findBox(t,["stsd"],i)[0]),e.stts=dc.stts(dc.findBox(t,["stts"],i)[0]),e.ctts=dc.ctts(dc.findBox(t,["ctts"],i)[0]),e.stsc=dc.stsc(dc.findBox(t,["stsc"],i)[0]),e.stsz=dc.stsz(dc.findBox(t,["stsz"],i)[0]),e.stco=dc.stco(dc.findBox(t,["stco"],i)[0]),e.stco||(e.co64=dc.co64(dc.findBox(t,["co64"],i)[0]),e.stco=e.co64);const r=e.stsd.entries[0]?.sinf?.schi?.tenc.default_IV_size;e.stss=dc.stss(dc.findBox(t,["stss"],i)[0]),e.senc=dc.senc(dc.findBox(t,["senc"],i)[0],r)}))}static senc(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return hc(e,!0,((e,i)=>{let r=0;const s=_d(i,r);r+=4,e.samples=[];for(let a=0;a<s;a++){const s={InitializationVector:[]};for(let e=0;e<t;e++)s.InitializationVector[e]=i[r+e];if(r+=t,2&e.flags){s.subsamples=[];const e=Xd(i,r);r+=2;for(let t=0;t<e;t++){const e={};e.BytesOfClearData=Xd(i,r),r+=2,e.BytesOfProtectedData=_d(i,r),r+=4,s.subsamples.push(e)}}e.samples.push(s)}}))}static pssh(e){return hc(e,!0,((e,t)=>{const i=[],r=[];let s=0;for(let e=0;e<16;e++)r.push(Ac(t[s+e]));if(s+=16,e.version>0){const e=_d(t,s);s+=4;for(let r=0;r<(""+e).length;r++)for(let e=0;e<16;e++){const e=t[s];s+=1,i.push(Ac(e))}}const a=_d(t,s);e.data_size=a,s+=4,e.kid=i,e.system_id=r,e.buffer=t}))}static stsd(e){return hc(e,!0,((e,t,i)=>{e.entryCount=_d(t),e.entries=dc.findBox(t.subarray(4),[],i+4).map((e=>{switch(e.type){case"avc1":case"avc2":case"avc3":case"avc4":return dc.avc1(e);case"hvc1":case"hev1":return dc.hvc1(e);case"mp4a":return dc.mp4a(e);case"alaw":case"ulaw":return dc.alaw(e);case"enca":return hc(e,!1,((e,t,i)=>{e.channelCount=Xd(t,16),e.samplesize=Xd(t,18),e.sampleRate=_d(t,24)/65536,t=t.subarray(28),e.sinf=dc.sinf(dc.findBox(t,["sinf"],i)[0]),e.esds=dc.esds(dc.findBox(t,["esds"],i)[0])}));case"encv":return hc(e,!1,((e,t,i)=>{e.width=Xd(t,24),e.height=Xd(t,26),e.horizresolution=_d(t,28),e.vertresolution=_d(t,32),t=t.subarray(78),e.sinf=dc.sinf(dc.findBox(t,["sinf"],i)[0]),e.avcC=dc.avcC(dc.findBox(t,["avcC"],i)[0]),e.hvcC=dc.hvcC(dc.findBox(t,["hvcC"],i)[0]),e.pasp=dc.pasp(dc.findBox(t,["pasp"],i)[0])}))}})).filter(Boolean)}))}static tenc(e){return hc(e,!1,((e,t)=>{let i=6;e.default_IsEncrypted=t[i],i+=1,e.default_IV_size=t[i],i+=1,e.default_KID=[];for(let r=0;r<16;r++)e.default_KID.push(Ac(t[i])),i+=1}))}static schi(e){return hc(e,!1,((e,t,i)=>{e.tenc=dc.tenc(dc.findBox(t,["tenc"],i)[0])}))}static sinf(e){return hc(e,!1,((e,t,i)=>{e.schi=dc.schi(dc.findBox(t,["schi"],i)[0]),e.frma=dc.frma(dc.findBox(t,["frma"],i)[0])}))}static frma(e){return hc(e,!1,((e,t)=>{e.data_format="";for(let i=0;i<4;i++)e.data_format+=String.fromCharCode(t[i])}))}static avc1(e){return hc(e,!1,((e,t,i)=>{const r=nc(e,t),s=t.subarray(r);i+=r,e.avcC=dc.avcC(dc.findBox(s,["avcC"],i)[0]),e.pasp=dc.pasp(dc.findBox(s,["pasp"],i)[0])}))}static avcC(e){return hc(e,!1,((e,t)=>{e.configurationVersion=t[0],e.AVCProfileIndication=t[1],e.profileCompatibility=t[2],e.AVCLevelIndication=t[3],e.codec=function(e){let t,i="avc1.";for(let r=0;r<3;r++)t=e[r].toString(16),t.length<2&&(t=`0${t}`),i+=t;return i}([t[1],t[2],t[3]]),e.lengthSizeMinusOne=3&t[4],e.spsLength=31&t[5],e.sps=[];let i=6;for(let r=0;r<e.spsLength;r++){const r=Xd(t,i);i+=2,e.sps.push(t.subarray(i,i+r)),i+=r}e.ppsLength=t[i],i+=1,e.pps=[];for(let r=0;r<e.ppsLength;r++){const r=Xd(t,i);i+=2,e.pps.push(t.subarray(i,i+=r)),i+=r}}))}static hvc1(e){return hc(e,!1,((e,t,i)=>{const r=nc(e,t),s=t.subarray(r);i+=r,e.hvcC=dc.hvcC(dc.findBox(s,["hvcC"],i)[0]),e.pasp=dc.pasp(dc.findBox(s,["pasp"],i)[0])}))}static hvcC(e){return hc(e,!1,((t,i)=>{t.data=e.data,t.codec="hev1.1.6.L93.B0",t.configurationVersion=i[0];const r=i[1];t.generalProfileSpace=r>>6,t.generalTierFlag=(32&r)>>5,t.generalProfileIdc=31&r,t.generalProfileCompatibility=_d(i,2),t.generalConstraintIndicatorFlags=i.subarray(6,12),t.generalLevelIdc=i[12],t.avgFrameRate=Xd(i,19),t.numOfArrays=i[22],t.vps=[],t.sps=[],t.pps=[];let s=23,a=0,o=0,n=0;for(let e=0;e<t.numOfArrays;e++){a=63&i[s],o=Xd(i,s+1),s+=3;const e=[];for(let t=0;t<o;t++)n=Xd(i,s),s+=2,e.push(i.subarray(s,s+n)),s+=n;32===a?t.vps.push(...e):33===a?t.sps.push(...e):34===a&&t.pps.push(...e)}}))}static pasp(e){return hc(e,!1,((e,t)=>{e.hSpacing=_d(t),e.vSpacing=_d(t,4)}))}static mp4a(e){return hc(e,!1,((e,t,i)=>{const r=lc(e,t);e.esds=dc.esds(dc.findBox(t.subarray(r),["esds"],i+r)[0])}))}static esds(e){return hc(e,!0,((e,t)=>{e.codec="mp4a.";let i=0,r=0,s=0,a=0;for(;t.length;){for(i=0,a=t[i],r=t[i+1],i+=2;128&r;)s=(127&r)<<7,r=t[i],i+=1;if(s+=127&r,3===a)t=t.subarray(i+3);else{if(4!==a){if(5===a){const r=e.config=t.subarray(i,i+s);let a=(248&r[0])>>3;return 31===a&&r.length>=2&&(a=32+((7&r[0])<<3)+((224&r[1])>>5)),e.objectType=a,e.codec+=a.toString(16),void("."===e.codec[e.codec.length-1]&&(e.codec=e.codec.substring(0,e.codec.length-1)))}return void("."===e.codec[e.codec.length-1]&&(e.codec=e.codec.substring(0,e.codec.length-1)))}e.codec+=(t[i].toString(16)+".").padStart(3,"0"),t=t.subarray(i+13)}}}))}static alaw(e){return hc(e,!1,((e,t)=>{lc(e,t)}))}static stts(e){return hc(e,!0,((e,t)=>{const i=_d(t),r=[];let s=4;for(let e=0;e<i;e++)r.push({count:_d(t,s),delta:_d(t,s+4)}),s+=8;e.entryCount=i,e.entries=r}))}static ctts(e){return hc(e,!0,((e,t)=>{const i=_d(t),r=[];let s=4;if(1===e.version)for(let e=0;e<i;e++)r.push({count:_d(t,s),offset:_d(t,s+4)}),s+=8;else for(let e=0;e<i;e++)r.push({count:_d(t,s),offset:-(1+~_d(t,s+4))}),s+=8;e.entryCount=i,e.entries=r}))}static stsc(e){return hc(e,!0,((e,t)=>{const i=_d(t),r=[];let s=4;for(let e=0;e<i;e++)r.push({firstChunk:_d(t,s),samplesPerChunk:_d(t,s+4),sampleDescriptionIndex:_d(t,s+8)}),s+=12;e.entryCount=i,e.entries=r}))}static stsz(e){return hc(e,!0,((e,t)=>{const i=_d(t),r=_d(t,4),s=[];if(!i){let e=8;for(let i=0;i<r;i++)s.push(_d(t,e)),e+=4}e.sampleSize=i,e.sampleCount=r,e.entrySizes=s}))}static stco(e){return hc(e,!0,((e,t)=>{const i=_d(t),r=[];let s=4;for(let e=0;e<i;e++)r.push(_d(t,s)),s+=4;e.entryCount=i,e.entries=r}))}static co64(e){return hc(e,!0,((e,t)=>{const i=_d(t),r=[];let s=4;for(let e=0;e<i;e++)r.push($d(t,s)),s+=8;e.entryCount=i,e.entries=r}))}static stss(e){return hc(e,!0,((e,t)=>{const i=_d(t),r=[];let s=4;for(let e=0;e<i;e++)r.push(_d(t,s)),s+=4;e.entryCount=i,e.entries=r}))}static moof(e){return hc(e,!1,((e,t,i)=>{e.mfhd=dc.mfhd(dc.findBox(t,["mfhd"],i)[0]),e.traf=dc.findBox(t,["traf"],i).map((e=>dc.traf(e)))}))}static mfhd(e){return hc(e,!0,((e,t)=>{e.sequenceNumber=_d(t)}))}static traf(e){return hc(e,!1,((e,t,i)=>{e.tfhd=dc.tfhd(dc.findBox(t,["tfhd"],i)[0]),e.tfdt=dc.tfdt(dc.findBox(t,["tfdt"],i)[0]),e.trun=dc.trun(dc.findBox(t,["trun"],i)[0])}))}static trun(e){return hc(e,!0,((e,t)=>{const{version:i,flags:r}=e,s=t.length,a=e.sampleCount=_d(t);let o=4;if(s>o&&1&r&&(e.dataOffset=-(1+~_d(t,o)),o+=4),s>o&&4&r&&(e.firstSampleFlags=_d(t,o),o+=4),e.samples=[],s>o){let s;for(let n=0;n<a;n++)s={},256&r&&(s.duration=_d(t,o),o+=4),512&r&&(s.size=_d(t,o),o+=4),1024&r&&(s.flags=_d(t,o),o+=4),2048&r&&(s.cts=i?-(1+~_d(t,o+4)):_d(t,o),o+=4),e.samples.push(s)}}))}static tfdt(e){return hc(e,!0,((e,t)=>{1===e.version?e.baseMediaDecodeTime=$d(t):e.baseMediaDecodeTime=_d(t)}))}static probe(e){return!!dc.findBox(e,["ftyp"])}static parseSampleFlags(e){return{isLeading:(12&e[0])>>>2,dependsOn:3&e[0],isDependedOn:(192&e[1])>>>6,hasRedundancy:(48&e[1])>>>4,paddingValue:(14&e[1])>>>1,isNonSyncSample:1&e[1],degradationPriority:e[2]<<8|e[3]}}static moovToTrack(e,t,i){const r=e.trak;if(!r||!r.length)return;const s=r.find((e=>"vide"===e.mdia?.hdlr?.handlerType)),a=r.find((e=>"soun"===e.mdia?.hdlr?.handlerType));if(s&&t){const i=t,r=s.tkhd?.trackId;null!=r&&(i.id=s.tkhd.trackId),i.tkhdDuration=s.tkhd.duration,i.mvhdDurtion=e.mvhd.duration,i.mvhdTimecale=e.mvhd.timescale,i.timescale=i.formatTimescale=s.mdia.mdhd.timescale,i.duration=s.mdia.mdhd.duration||i.mvhdDurtion/i.mvhdTimecale*i.timescale;const a=s.mdia.minf.stbl.stsd.entries[0];if(i.width=a.width,i.height=a.height,a.pasp&&(i.sarRatio=[a.pasp.hSpacing,a.pasp.vSpacing]),a.hvcC)i.codecType=sc,i.codec=a.hvcC.codec,i.vps=a.hvcC.vps,i.sps=a.hvcC.sps,i.pps=a.hvcC.pps,i.hvcC=a.hvcC.data;else{if(!a.avcC)throw new Error("unknown video stsd entry");i.codecType=rc,i.codec=a.avcC.codec,i.sps=a.avcC.sps,i.pps=a.avcC.pps}i.present=!0,i.ext={},i.ext.stss=s.mdia?.minf?.stbl?.stss,i.ext.ctts=s.mdia?.minf?.stbl?.ctts,a&&"encv"===a.type&&(i.isVideoEncryption=!0,a.default_KID=a.sinf?.schi?.tenc.default_KID,a.default_IsEncrypted=a.sinf?.schi?.tenc.default_IsEncrypted,a.default_IV_size=a.sinf?.schi?.tenc.default_IV_size,i.videoSenc=s.mdia.minf.stbl.senc&&s.mdia.minf.stbl.senc.samples,a.data_format=a.sinf?.frma?.data_format,i.useEME=e.useEME,i.kidValue=e.kidValue,i.pssh=e.pssh,i.encv=a)}if(a&&i){const t=i,r=a.tkhd?.trackId;null!=r&&(t.id=a.tkhd.trackId),t.tkhdDuration=a.tkhd.duration,t.mvhdDurtion=e.mvhd.duration,t.mvhdTimecale=e.mvhd.timescale,t.timescale=t.formatTimescale=a.mdia.mdhd.timescale,t.duration=a.mdia.mdhd.duration||t.mvhdDurtion/t.mvhdTimecale*t.timescale;const s=a.mdia.minf.stbl.stsd.entries[0];switch(t.sampleSize=s.sampleSize,t.sampleRate=s.sampleRate,t.channelCount=s.channelCount,t.present=!0,s.type){case"alaw":t.codecType=t.codec=tc,t.sampleRate=8e3;break;case"ulaw":t.codecType=t.codec=ic,t.sampleRate=8e3;break;default:t.codecType=ec,t.sampleDuration=ac.getFrameDuration(t.sampleRate,t.timescale),t.sampleRateIndex=ac.getRateIndexByRate(t.sampleRate),t.objectType=s.esds?.objectType||2,s.esds&&(t.config=Array.from(s.esds.config)),t.codec=s.esds?.codec||"mp4a.40.2"}t.sampleDuration=ac.getFrameDuration(t.sampleRate,t.timescale),t.objectType=s.esds?.objectType||2,s.esds&&(s.esds.config?t.config=Array.from(s.esds.config):console.warn("esds config is null")),t.codec=s.esds?.codec||"mp4a.40.2",t.sampleRateIndex=ac.getRateIndexByRate(t.sampleRate),t.ext={},t.ext.stss=a.mdia?.minf?.stbl?.stss,t.ext.ctts=a.mdia?.minf?.stbl?.ctts,t.present=!0,s&&"enca"===s.type&&(t.isAudioEncryption=!0,s.data_format=s.sinf?.frma?.data_format,s.default_KID=s.sinf?.schi?.tenc.default_KID,s.default_IsEncrypted=s.sinf?.schi?.tenc.default_IsEncrypted,s.default_IV_size=s.sinf?.schi?.tenc.default_IV_size,t.audioSenc=a.mdia.minf.stbl.senc&&a.mdia.minf.stbl.senc.samples,t.useEME=e.useEME,t.kidValue=e.kidValue,t.enca=s)}if(i&&(i.isVideoEncryption=!!t&&t.isVideoEncryption),t&&(t.isAudioEncryption=!!i&&i.isAudioEncryption),t?.encv||i?.enca){const e=t?.encv?.default_KID,r=i?.enca?.default_KID,s=e||r?(e||r).join(""):null;t&&(t.kid=s),i&&(i.kid=s)}return t&&(t.flags=3841),i&&(i.flags=1793),{videoTrack:t,audioTrack:i}}static evaluateDefaultDuration(e,t,i){const r=t?.samples?.length;if(!r)return 1024;return 1024*r/t.timescale*e.timescale/i}static moofToSamples(e,t,i){const r={};return e.mfhd&&(t&&(t.sequenceNumber=e.mfhd.sequenceNumber),i&&(i.sequenceNumber=e.mfhd.sequenceNumber)),e.traf.forEach((e=>{let{tfhd:s,tfdt:a,trun:o}=e;if(!s||!o)return;a&&(t&&t.id===s.trackId&&(t.baseMediaDecodeTime=a.baseMediaDecodeTime),i&&i.id===s.trackId&&(i.baseMediaDecodeTime=a.baseMediaDecodeTime));const n=s.defaultSampleSize||0,l=s.defaultSampleDuration||dc.evaluateDefaultDuration(t,i,o.samples.length||o.sampleCount);let h=o.dataOffset||0,A=0,d=-1;if(!o.samples.length&&o.sampleCount){r[s.trackId]=[];for(let e=0;e<o.sampleCount;e++)r[s.trackId].push({offset:h,dts:A,duration:l,size:n}),A+=l,h+=n}else r[s.trackId]=o.samples.map(((e,t)=>((e={offset:h,dts:A,pts:A+(e.cts||0),duration:e.duration||l,size:e.size||n,gopId:d,keyframe:0===t||null!==e.flags&&void 0!==e.flags&&(65536&e.flags)>>>0!=65536}).keyframe&&(d++,e.gopId=d),A+=e.duration,h+=e.size,e)))})),r}static moovToSamples(e){const t=e.trak;if(!t||!t.length)return;const i=t.find((e=>"vide"===e.mdia?.hdlr?.handlerType)),r=t.find((e=>"soun"===e.mdia?.hdlr?.handlerType));if(!i&&!r)return;let s,a;if(i){const e=i.mdia?.minf?.stbl;if(!e)return;const{stts:t,stsc:r,stsz:a,stco:o,stss:n,ctts:l}=e;if(!(t&&r&&a&&o&&n))return;s=oc(t,r,a,o,l,n)}if(r){const e=r.mdia?.minf?.stbl;if(!e)return;const t=r.mdia.mdhd?.timescale,{stts:i,stsc:s,stsz:o,stco:n}=e;if(!(t&&i&&s&&o&&n))return;a=oc(i,s,o,n)}return{videoSamples:s,audioSamples:a}}}class cc extends Rh{constructor(e){super(e),this.player=e,this.TAG_NAME="HlsFmp4Loader",this.tempSampleListInfo={},this.isInitVideo=!1,this.isInitAudio=!1,this.videoTrack={id:1,samples:[],sps:[],pps:[],vps:[],codec:""},this.audioTrack={id:2,samples:[],sampleRate:0,channelCount:0,codec:"",codecType:""},this.workerClearTimeout=null,this.workerUrl=null,this.loopWorker=null,this._hasCalcFps=!1,this._basefps=25,this.player.isUseMSE()||this._initLoopWorker(),e.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.workerUrl&&(URL.revokeObjectURL(this.workerUrl),this.workerUrl=null),this.workerClearTimeout&&(clearTimeout(this.workerClearTimeout),this.workerClearTimeout=null),this.loopWorker&&(this.loopWorker.postMessage({cmd:"destroy"}),this.loopWorker.terminate(),this.loopWorker=null),this._hasCalcFps=!1,this.videoTrack=null,this.audioTrack=null,this.isInitVideo=!1,this.isInitAudio=!1,this._basefps=25,this.player.debug.log(this.TAG_NAME,"destroy")}demux(e,t){let i=this.audioTrack,r=this.videoTrack;if(this.checkInitAudio(),this.checkInitVideo(),i.samples=[],r.samples=[],t){if(this.player.updateStats({abps:t.byteLength}),po(this.isInitAudio)){const e=dc.findBox(t,["moov"])[0];if(!e)return void this.player.debug.error(this.TAG_NAME,"cannot found moov box");dc.moovToTrack(dc.moov(e),null,i),this.checkInitAudio()&&(this.player.debug.log(this.TAG_NAME,"audioData audio init success"),this._sendAccADTSHeader(i))}const e=dc.findBox(t,["moof"])[0];if(e){const r=dc.moofToSamples(dc.moof(e),null,i)[i.id],s=i.baseMediaDecodeTime;if(r){const a=e.start;r.map((e=>{e.offset+=a;const r=t.subarray(e.offset,e.offset+e.size),o=e.dts+s,n=new Uint8Array(r.length+2);n.set([175,1],0),n.set(r,2),i.samples.push({type:Ve,pts:o,dts:o,payload:n,duration:e.duration,size:n.byteLength})}))}}}if(e){if(this.player.updateStats({vbps:e.byteLength}),po(this.isInitVideo)&&po(this.isInitAudio)){const t=dc.findBox(e,["moov"])[0];if(!t)throw new Error("cannot found moov box");if(dc.moovToTrack(dc.moov(t),r,i),po(this.isInitAudio)&&this.checkInitAudio()&&(this.player.debug.log(this.TAG_NAME,"videoData audio init success",i),this._sendAccADTSHeader(i)),this.checkInitVideo()){this.player.debug.log(this.TAG_NAME,"video init success");let e=null;r.codecType===ar?r.sps.length&&r.vps.length&&r.pps.length&&(e=zn({sps:r.sps[0],pps:r.pps[0],vps:r.vps[0]})):r.sps.length&&r.pps.length&&(e=Tn({sps:r.sps[0],pps:r.pps[0]})),e&&(this.player.debug.log(this.TAG_NAME,"seqHeader"),this._doDecodeByHls(e,He,0,!0,0))}}const t=dc.findBox(e,["moof"])[0];if(t){const s=dc.moofToSamples(dc.moof(t),r,i),a=r.baseMediaDecodeTime,o=i.baseMediaDecodeTime,n=t.start;Object.keys(s).forEach((t=>{r.id==t?s[t].map((t=>{t.offset+=n;const i={type:He,pts:(t.pts||t.dts)+a,dts:t.dts+a,units:[],payload:null,isIFrame:!1};i.duration=t.duration,i.gopId=t.gopId,t.keyframe&&(i.isIFrame=!0);const s=e.subarray(t.offset,t.offset+t.size);i.payload=s,r.samples.push(i)})):i.id==t&&s[t].map((t=>{t.offset+=n;const r=e.subarray(t.offset,t.offset+t.size),s=t.dts+o,a=new Uint8Array(r.length+2);a.set([175,1],0),a.set(r,2),i.samples.push({type:Ve,pts:s,dts:s,payload:a,duration:t.duration,size:a.byteLength})}))}))}}const s=r.samples.concat(i.samples);s.sort(((e,t)=>e.dts-t.dts)),s.forEach((e=>{const t=new Uint8Array(e.payload);delete e.payload,this.player.isUseMSE()?e.type===He?this._doDecodeVideo({...e,payload:t}):e.type===Ve&&this._doDecodeAudio({...e,payload:t}):this.loopWorker.postMessage({...e,payload:t,cmd:"sample"},[t.buffer])})),po(this._hasCalcFps)&&(this._hasCalcFps=!0,this._calcDecodeFps(s))}checkInitAudio(){return this.isInitAudio=!!(this.audioTrack.sampleRate&&this.audioTrack.channelCount&&this.audioTrack.codec&&"aac"===this.audioTrack.codecType),this.isInitAudio}checkInitVideo(){return this.isInitVideo=!!(this.videoTrack.pps.length&&this.videoTrack.sps.length&&this.videoTrack.codec),this.isInitVideo}_sendAccADTSHeader(e){const t=Gs({profile:e.objectType,sampleRate:e.sampleRateIndex,channel:e.channelCount});this._doDecodeByHls(t,Ve,0,!0,0)}_calcDecodeFps(e){const t=ao(e.map((e=>({ts:e.dts||e.pts,type:e.type}))),He);t&&(this.player.debug.log(this.TAG_NAME,`_calcDecodeFps() video fps is ${t}, update base fps is ${this._basefps}`),this._basefps=t),this._postMessageToLoopWorker("updateBaseFps",{baseFps:this._basefps})}_initLoopWorker(){this.player.debug.log(this.TAG_NAME,"_initLoopWorker()");const e=Eo(function(){const e=1,t=2;let i=new class{constructor(){this.baseFps=0,this.fpsInterval=null,this.preLoopTimestamp=null,this.startBpsTime=null,this.allSampleList=[]}destroy(){this._clearInterval(),this.baseFps=0,this.allSampleList=[],this.preLoopTimestamp=null,this.startBpsTime=null}updateBaseFps(e){this.baseFps=e,this._clearInterval(),this._startInterval()}pushSample(e){delete e.cmd,this.allSampleList.push(e)}_startInterval(){const e=Math.ceil(1e3/this.baseFps);this.fpsInterval=setInterval((()=>{let t=(new Date).getTime();this.preLoopTimestamp||(this.preLoopTimestamp=t),this.startBpsTime||(this.startBpsTime=t);const i=t-this.preLoopTimestamp;if(i>2*e&&console.warn(`EasyPro:[HlsFmp4Loader LoopWorker] loop interval is ${i}ms, more than ${e} * 2ms`),this._loop(),this.preLoopTimestamp=(new Date).getTime(),this.startBpsTime){t-this.startBpsTime>=1e3&&(this._calcSampleList(),this.startBpsTime=t)}}),e)}_clearInterval(){this.fpsInterval&&(clearInterval(this.fpsInterval),this.fpsInterval=null)}_calcSampleList(){const i={buferredDuration:0,allListLength:this.allSampleList.length,audioListLength:0,videoListLength:0};this.allSampleList.forEach((r=>{r.type===t?(i.videoListLength++,r.duration&&(i.buferredDuration+=r.duration)):r.type===e&&i.audioListLength++})),postMessage({cmd:"sampleListInfo",...i})}_loop(){let i=null;if(this.allSampleList.length)if(i=this.allSampleList.shift(),i.type===t){postMessage({cmd:"decodeVideo",...i},[i.payload.buffer]);let t=this.allSampleList[0];for(;t&&t.type===e;)i=this.allSampleList.shift(),postMessage({cmd:"decodeAudio",...i},[i.payload.buffer]),t=this.allSampleList[0]}else i.type===e&&(postMessage({cmd:"decodeAudio",...i},[i.payload.buffer]),this.allSampleList.length&&this.allSampleList[0].type===t&&(i=this.allSampleList.shift(),postMessage({cmd:"decodeVideo",...i},[i.payload.buffer])))}};self.onmessage=e=>{const t=e.data;switch(t.cmd){case"updateBaseFps":i.updateBaseFps(t.baseFps);break;case"sample":i.pushSample(t);break;case"destroy":i.destroy(),i=null}}}.toString()),t=new Blob([e],{type:"text/javascript"}),i=URL.createObjectURL(t);let r=new Worker(i);this.workerUrl=i,this.workerClearTimeout=setTimeout((()=>{window.URL.revokeObjectURL(this.workerUrl),this.workerUrl=null,this.workerClearTimeout=null}),de),r.onmessage=e=>{const t=e.data;switch(t.cmd){case"decodeVideo":this._doDecodeVideo(t);break;case"decodeAudio":this._doDecodeAudio(t);break;case"sampleListInfo":this.tempSampleListInfo=t}},this.loopWorker=r}_postMessageToLoopWorker(e,t){this.player.isUseMSE()||(this.loopWorker?this.loopWorker.postMessage({cmd:e,...t}):this.player.debug.warn(this.TAG_NAME,"loop worker is not init, can not post message"))}_doDecodeAudio(e){const t=new Uint8Array(e.payload);this._doDecodeByHls(t,Ve,e.dts,!1,0)}_doDecodeVideo(e){const t=new Uint8Array(e.payload);let i=null;i=e.isHevc?Wn(t,e.isIFrame):Ln(t,e.isIFrame),this.player.updateStats({dts:e.dts});const r=e.pts-e.dts;this._doDecodeByHls(i,He,e.dts,e.isIFrame,r)}getBuferredDuration(){return this.tempSampleListInfo.buferredDuration||0}getSampleListLength(){return this.tempSampleListInfo.allListLength||0}getSampleAudioListLength(){return this.tempSampleListInfo.audioListLength||0}getSampleVideoListLength(){return this.tempSampleListInfo.videoListLength||0}}class uc{constructor(e,t){this.hls=e,this.player=this.hls.player,this.isMP4=t,this._initSegmentId="",this.TAG_NAME="HlsTransmuxer",this._demuxer=t?new cc(this.hls.player):new Hd(this.hls.player),this.player.debug.log(this.TAG_NAME,`init and isMP4 is ${t}`)}destroy(){this._demuxer&&(this._demuxer.destroy(),this._demuxer=null)}transmux(e,t,i,r,s,a){this.player.debug.log(this.TAG_NAME,`transmux videoChunk:${e&&e.byteLength}, audioChunk:${t&&t.byteLength}, discontinuity:${i}, contiguous:${r}, startTime:${s}, needInit:${a}`);const o=this._demuxer;try{this.isMP4?o.demux(e,t):o.demuxAndFix(Zh(e,t),i,r,s)}catch(e){throw new Sd(wd,Id,e)}}}class pc{constructor(e){this.hls=e,this.player=e.player,this._decryptor=new Vd(this.hls,this.player),this._transmuxer=null,this._mse=null,this._softVideo=null,this._sourceCreated=!1,this._needInitSegment=!0,this._directAppend=!1,this.TAG_NAME="HlsBufferService"}async destroy(){this._softVideo=null,this._transmuxer&&(this._transmuxer.destroy(),this._transmuxer=null)}get baseDts(){return this._transmuxer?._demuxer?._baseDts}get nbSb(){return 0}async updateDuration(e){this.player.debug.log(this.TAG_NAME,"updateDuration()",e)}getBuferredDuration(){return this._transmuxer?._demuxer?.getBuferredDuration()}getBufferedSegments(){return this._transmuxer?._demuxer?.getSampleListLength()}getBufferedAudioSegments(){return this._transmuxer?._demuxer?.getSampleAudioListLength()}getBufferedVideoSegments(){return this._transmuxer?._demuxer?.getSampleVideoListLength()}createSource(e,t,i,r){if(this._sourceCreated)return;const s=e||t;s&&(Hd.probe(s)?this._transmuxer||(this._transmuxer=new uc(this.hls,!1)):dc.probe(s)?this._transmuxer||(this._transmuxer=new uc(this.hls,!0)):this.player.debug.error(this.TAG_NAME,"createSource error: chunk is not ts"))}async appendBuffer(e,t,i,r,s,a,o){if(i?.length||r?.length)return this._needInitSegment,this._transmuxer.transmux(i,r,s,a,o,this._needInitSegment||s),!0}async clearAllBuffer(){this.player.debug.log(this.TAG_NAME,"clearAllBuffer")}decryptBuffer(e,t){return this._decryptor.decrypt(e,t)}async reset(){this._transmuxer=null,this._needInitSegment=!0,this._directAppend=!1}async endOfStream(){this._softVideo&&this._softVideo.endOfStream()}async setLiveSeekableRange(e,t){}seamlessSwitch(){this._needInitSegment=!0}}class gc{constructor(e){this.emitter=e,this._seiSet=new Set,e.on($r,(e=>{e&&this._seiSet.add(e)}))}throw(e){if(null==e||!this._seiSet.size)return;const t=e-.2,i=e+.2,r=[];this._seiSet.forEach((e=>{e.time>=t&&e.time<=i&&r.push(e)})),r.forEach((e=>{this._seiSet.delete(e),this.emitter.emit(es,e)}))}reset(){this._seiSet.clear()}}class mc{constructor(e){this._timescale=e,this.encodeType="",this.audioCodec="",this.videoCodec="",this.domain="",this.fps=0,this.bitrate=0,this.width=0,this.height=0,this.samplerate=0,this.channelCount=0,this.gop=0,this._bitsAccumulateSize=0,this._bitsAccumulateDuration=0}getStats(){return{encodeType:this.encodeType,audioCodec:this.audioCodec,videoCodec:this.videoCodec,domain:this.domain,fps:this.fps,bitrate:this.bitrate,width:this.width,height:this.height,samplerate:this.samplerate,channelCount:this.channelCount,gop:this.gop}}setEncodeType(e){this.encodeType=e}setFpsFromScriptData(e){let{data:t}=e;const i=t?.onMetaData?.framerate;i&&i>0&&i<100&&(this.fps=i)}setVideoMeta(e){if(this.width=e.width,this.height=e.height,this.videoCodec=e.codec,this.encodeType=e.codecType,e.fpsNum&&e.fpsDen){const t=e.fpsNum/e.fpsDen;t>0&&t<100&&(this.fps=t)}}setAudioMeta(e){this.audioCodec=e.codec,this.samplerate=e.sampleRate,this.channelCount=e.channelCount}setDomain(e){this.domain=e.split("/").slice(2,3)[0]}updateBitrate(e){if((!this.fps||this.fps>=100)&&e.length){const t=e.reduce(((e,t)=>e+t.duration),0)/e.length;this.fps=Math.round(this._timescale/t)}e.forEach((e=>{1===e.gopId&&this.gop++,this._bitsAccumulateDuration+=e.duration/(this._timescale/1e3),this._bitsAccumulateSize+=e.units.reduce(((e,t)=>e+t.length),0),this._bitsAccumulateDuration>=1e3&&(this.bitrate=8*this._bitsAccumulateSize,this._bitsAccumulateDuration=0,this._bitsAccumulateSize=0)}))}}class yc{_core=null;_samples=[];constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e3;this._core=e,this._timescale=t,this._stats=new mc(t),this._bindEvents()}getStats(){const{currentTime:e=0,decodeFps:t=0}=this._core?.media||{};return{...this._stats.getStats(),downloadSpeed:this._core?.speedInfo?.().speed||0,avgSpeed:this._core?.speedInfo?.().avgSpeed||0,currentTime:e,bufferEnd:this._core?.bufferInfo()?.remaining||0,decodeFps:t}}_bindEvents(){this._core.on(Pr,(e=>this._stats.updateBitrate(e.samples))),this._core.on(jr,(e=>{this._stats.setFpsFromScriptData(e)})),this._core.on(zr,(e=>{"video"===e.type?this._stats.setVideoMeta(e.track):this._stats.setAudioMeta(e.track)})),this._core.on(Wr,(e=>{this._stats.setDomain(e.responseUrl)}))}reset(){this._samples=[],this._stats=new mc(this._timescale)}}class Ec extends ko{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),this.player=e,this.config=null,this._manifestLoader=null,this._segmentLoader=null,this._playlist=null,this._bufferService=null,this._seiService=null,this._stats=null,this._prevSegSn=null,this._prevSegCc=null,this._tickTimer=null,this._tickInterval=1e3,this._segmentProcessing=!1,this._reloadOnPlay=!1,this._switchUrlOpts=null,this._disconnectTimer=null,this.TAG_NAME="Hls256",this.canVideoPlay=!1,this._tickfps=1,this.$videoElement=null,this.config=t=function(e){return{isLive:!0,maxPlaylistSize:50,retryCount:3,retryDelay:1e3,pollRetryCount:2,loadTimeout:1e4,preloadTime:30,softDecode:!1,bufferBehind:10,maxJumpDistance:3,startTime:0,targetLatency:10,maxLatency:20,allowedStreamTrackChange:!0,...e}}(t),this._manifestLoader=new Pd(this),this._segmentLoader=new zd(this),this._playlist=new Zd(this),this._bufferService=new pc(this),this._seiService=new gc(this),this._stats=new yc(this,9e4),this.player.debug.log(this.TAG_NAME,"init")}async destroy(){this.player.debug.log(this.TAG_NAME,"destroy()"),this._playlist.reset(),this._segmentLoader.reset(),this._seiService.reset(),this._tickfps=1,await Promise.all([this._clear(),this._bufferService.destroy()]),this._manifestLoader&&(await this._manifestLoader.destroy(),this._manifestLoader=null),this._segmentLoader&&(this._segmentLoader.destroy(),this._segmentLoader=null),this._playlist&&(this._playlist.destroy(),this._playlist=null),this.player.debug.log(this.TAG_NAME,"destroy end")}_startTick(){this._stopTick(),this._tickTimer=setTimeout((()=>{this._tick()}),this._tickInterval)}_stopTick(){this._tickTimer&&clearTimeout(this._tickTimer),this._tickTimer=null}_tick(){this.player.isDestroyedOrClosed()?this.player.debug.log(this.TAG_NAME,"_tick() player is destroyed"):(1==this._tickfps?this._tickInterval=1e3*this._playlist.nextSegment.duration:2==this._tickfps?this._tickInterval=this._playlist.nextSegment.duration/2*1e3:4==this._tickfps?this._tickInterval=300*this._playlist.nextSegment.duration:8==this._tickfps?this._tickInterval=200*this._playlist.nextSegment.duration:16==this._tickfps&&(this._tickInterval=100*this._playlist.nextSegment.duration),this._startTick(),this._loadSegment())}get isLive(){return this._playlist.isLive}get streams(){return this._playlist.streams}get currentStream(){return this._playlist.currentStream}get hasSubtitle(){return this._playlist.hasSubtitle}get baseDts(){return this._bufferService?.baseDts}getPtsIndex(){return this._bufferService?._transmuxer?._demuxer?.getPtsIndex()}setPtsIndex(e){this._bufferService?._transmuxer?._demuxer?.setPtsIndex(e)}setfps(e,t){this._tickfps=parseInt(t),this._bufferService?._transmuxer?._demuxer?.setfps(e)}speedInfo(){return this._segmentLoader.speedInfo()}resetBandwidth(){this._segmentLoader.resetBandwidth()}getStats(){return this._stats.getStats()}async loadSource(e){return await this._reset(),await this._loadData(e),this._startTick(),!0}async _loadData(e){try{e&&(e=e.trim())}catch(e){}if(!e)throw this._emitError(new Sd(Cd,Cd,null,null,"m3u8 url is missing"));const t=await this._loadM3U8(e),{currentStream:i}=this._playlist;if(this._urlSwitching){0===i.bitrate&&this._switchUrlOpts?.bitrate&&(i.bitrate=this._switchUrlOpts?.bitrate);const e=this._getSeamlessSwitchPoint();this.config.startTime=e;const t=this._playlist.findSegmentIndexByTime(e),r=this._playlist.getSegmentByIndex(t+1);if(r){const e=r.start;this.player.debug.warn(this.TAG_NAME,`clear buffer from ${e}`)}}t&&(this.isLive?(this.player.debug.log(this.TAG_NAME,"is live"),this._bufferService.setLiveSeekableRange(0,4294967295),this.config.targetLatency<this._playlist.totalDuration&&(this.config.targetLatency=this._playlist.totalDuration,this.config.maxLatency=1.5*this.config.targetLatency),t.isMaster||this._pollM3U8(e)):(this.player.debug.log(this.TAG_NAME,`is vod and totalDuration is ${i.totalDuration} s`),await this._bufferService.updateDuration(i.totalDuration))),await this._loadSegment()}async _loadM3U8(e){let t;try{[t]=await this._manifestLoader.load(e)}catch(e){throw this._emitError(Sd.create(e))}if(t)return this._playlist.upsertPlaylist(t),t.isMaster?(this._playlist.currentStream.subtitleStreams?.length&&this.emit(rs,{list:this._playlist.currentStream.subtitleStreams}),await this._refreshM3U8()):this.player.debug.warn(this.TAG_NAME,"_loadM3U8() is not master playlist"),this.emit(ss),t;this.player.debug.warn(this.TAG_NAME,"_loadM3U8() playlist is empty")}_refreshM3U8(){this.player.debug.log(this.TAG_NAME,"_refreshM3U8()");const e=this._playlist.currentStream;if(!e||!e.url)throw this._emitError(Sd.create(null,null,new Error("m3u8 url is not defined")));const t=e.url,i=e.currentAudioStream?.url,r=e.currentSubtitleStream?.url;return this._manifestLoader.load(t,i,r).then((e=>{let[s,a,o]=e;s?(this._playlist.upsertPlaylist(s,a,o),this.isLive&&this._pollM3U8(t,i,r)):this.player.debug.warn(this.TAG_NAME,"_refreshM3U8() mediaPlaylist is empty")})).catch((e=>{throw this._emitError(Sd.create(e))}))}_pollM3U8(e,t,i){let r=this._playlist.isEmpty;this._manifestLoader.poll(e,t,i,((e,t,i)=>{this._playlist.upsertPlaylist(e,t,i),this._playlist.clearOldSegment(),e&&r&&!this._playlist.isEmpty&&this._loadSegment(),r&&(r=this._playlist.isEmpty)}),(e=>{this._emitError(Sd.create(e))}),1e3*(this._playlist.lastSegment?.duration||0))}_loadSegment=async()=>{if(this._segmentProcessing)return void this.player.debug.warn("_loadSegment()","_segmentProcessing is ture and return");if(!this._playlist)return void this.player.debug.warn("_loadSegment()","this._playlist is null and return");const e=this._playlist.currentSegment,t=this._playlist.nextSegment;if(this.player.debug.log(this.TAG_NAME,"_loadSegment()","curSeg",e&&e.url,"nextSeg",t&&t.url),t)return this._loadSegmentDirect();this.player.debug.log(this.TAG_NAME,"nextSeg is null and return")};loadSegment=()=>{this._loadSegment()};async _loadSegmentDirect(){const e=this._playlist.nextSegment;if(!e)return void this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect() !seg");let t=!1,i=null;try{this._segmentProcessing=!0,t=await this._reqAndBufferSegment(e,this._playlist.getAudioSegment(e))}catch(e){i=e}finally{this._segmentProcessing=!1}return i?this._emitError(Sd.create(i)):(t?(this._urlSwitching&&(this._urlSwitching=!1,this.emit(is,{url:this.config.url})),this._playlist.moveSegmentPointer(),this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect()","seg.isLast",e.isLast),e.isLast?(this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect()","seg.isLast"),this._end()):(this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect()","and next _loadSegment()"),e.sn<2&&this._loadSegment())):this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect() not appended"),t)}async _reqAndBufferSegment(e,t){this.player.debug.log(this.TAG_NAME,"video seg",e&&e.url,"audio seg",t&&t.url);const i=e?e.cc:t.cc,r=this._prevSegCc!==i;let s=[];try{s=await this._segmentLoader.load(e,t,r)}catch(e){throw e.fatal=!1,this._segmentLoader.error=e,e}if(!s[0])return;const a=await this._bufferService.decryptBuffer(...s);if(!a)return void this.player.debug.log(this.TAG_NAME,"decryptBuffer return null");const o=e?e.sn:t.sn,n=e?e.start:t.start,l=this._playlist.currentStream;return this._bufferService.createSource(a[0],a[1],l?.videoCodec,l?.audioCodec),await this._bufferService.appendBuffer(e,t,a[0],a[1],r,this._prevSegSn===o-1,n),this._prevSegCc=i,this._prevSegSn=o,!0}async _clear(){this.player.debug.log(this.TAG_NAME,"_clear()"),clearTimeout(this._disconnectTimer),this._stopTick(),await Promise.all([this._segmentLoader.cancel(),this._manifestLoader.stopPoll()]),this._segmentProcessing=!1}async _reset(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.player.debug.log(this.TAG_NAME,"_reset()"),this._reloadOnPlay=!1,this._prevSegSn=null,this._prevSegCc=null,this._switchUrlOpts=null,this._playlist.reset(),this._segmentLoader.reset(),this._seiService.reset(),this._stats.reset(),await this._clear(),this._bufferService.reset(e)}_end(){this.player.debug.log(this.TAG_NAME,"_end()"),this._clear()}_emitError(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!1===e.originError?.fatal?console.warn(e):(console.table(e),console.error(e),console.error(this.media?.error),this._stopTick(),this._urlSwitching&&(this._urlSwitching=!1,this.emit(ts,e)),t&&this._end(),this._seiService.reset(),this.emit(as,e)),e}_getSeamlessSwitchPoint(){const{media:e}=this;let t=e.currentTime;if(!e.paused){const i=this._playlist.findSegmentIndexByTime(e.currentTime),r=this._playlist.getSegmentByIndex(i),s=this._stats?.getStats().downloadSpeed;if(s&&r){t+=r.duration*this._playlist.currentStream.bitrate/s+1}else t+=5}return t}getDemuxBuferredDuration(){return this._bufferService.getBuferredDuration()||0}getDemuxBufferedListLength(){return this._bufferService.getBufferedSegments()||0}getDemuxAudioBufferedListLength(){return this._bufferService.getBufferedAudioSegments()||0}getDemuxVideoBufferedListLength(){return this._bufferService.getBufferedVideoSegments()||0}}class Cc extends ko{TAG_NAME="Hls256Decoder";constructor(e){super(),this.player=e,this.$videoElement=this.player.video.$videoElement,this.hls=null,this.eventsDestroy=[],this.bandwidthEstimateInterval=null,this.hls=new Ec(e),this._bindEvents()}async destroy(){return this._stopBandwidthEstimateInterval(),this.hls&&(await this.hls.destroy(),this.hls=null),this.eventsDestroy.length&&(this.eventsDestroy.forEach((e=>e())),this.eventsDestroy=[]),this.$videoElement=null,this.player.debug.log(this.TAG_NAME,"destroy"),!0}_bindEvents(){this.hls.on(as,(e=>{this.player.emitError(It.hlsError,e)})),this._startBandwidthEstimateInterval()}_startBandwidthEstimateInterval(){this._stopBandwidthEstimateInterval(),this.bandwidthEstimateInterval=setInterval((()=>{const e=this.hls.speedInfo();this.player.emit(yt.kBps,(e.avgSpeed/1024/8).toFixed(2)),this.hls.resetBandwidth()}),1e3)}_stopBandwidthEstimateInterval(){this.bandwidthEstimateInterval&&(clearInterval(this.bandwidthEstimateInterval),this.bandwidthEstimateInterval=null)}async loadSource(e){return this.url=e,await this.hls.loadSource(e),!0}checkHlsBufferedDelay(){let e=0;return this.hls&&(e=this.hls.getDemuxBuferredDuration()),e}getDemuxBufferedListLength(){let e=0;return this.hls&&(e=this.hls.getDemuxBufferedListLength()),e}getDemuxAudioBufferedListLength(){let e=0;return this.hls&&(e=this.hls.getDemuxAudioBufferedListLength()),e}getDemuxVideoBufferedListLength(){let e=0;return this.hls&&(e=this.hls.getDemuxVideoBufferedListLength()),e}}class fc extends ko{constructor(e){super(),this.player=e,this.TAG_NAME="CommonWebrtc",this.rtcPeerConnection=null,this.videoStream=null,this.isDisconnected=!1,this.isH264=this.player.isWebrtcH264(),this.eventsDestroy=[],this.supportVideoFrameCallbackHandle=null,this.isInitInfo=!1,this.$videoElement=this.player.video.$videoElement,this.bandwidthEstimateInterval=null,this.rtcPeerTrackVideoReceiver=null,this.rtcPeerTrackAudioReceiver=null,this.prevWebrtcVideoStats={},this.prevWebrtcAudioStats={},this.currentWebrtcStats={},this.player._opt.webrtcUseCanvasRender&&this.isH264&&(this.$videoElement=document.createElement("video"),Ca()&&(this.$videoElement.style.position="absolute"),this._initVideoEvents()),this.$videoElement.muted=!0,this._initRtcPeerConnection()}destroy(){this.isDisconnected=!1,this.isInitInfo=!1,this.prevWebrtcVideoStats={},this.currentWebrtcStats={},this.rtcPeerTrackVideoReceiver=null,this.rtcPeerTrackAudioReceiver=null,this._stopBandwidthEstimateInterval(),this.supportVideoFrameCallbackHandle&&this.$videoElement&&(this.$videoElement.cancelVideoFrameCallback(this.supportVideoFrameCallbackHandle),this.supportVideoFrameCallbackHandle=null),this.eventsDestroy.length&&(this.eventsDestroy.forEach((e=>e())),this.eventsDestroy=[]),this.isH264&&(this.videoStream&&(this.videoStream.getTracks().forEach((e=>e.stop())),this.videoStream=null),this.$videoElement.srcObject=null),this.rtcPeerConnection&&(this.rtcPeerConnection.onicecandidate=sa,this.rtcPeerConnection.ontrack=sa,this.rtcPeerConnection.onconnectionstatechange=sa,this.rtcPeerConnection.ondatachannel=sa,this.rtcPeerConnection.close(),this.rtcPeerConnection=null)}_initVideoEvents(){const{proxy:e}=this.player.events,t=e(this.$videoElement,er,(()=>{this.player.debug.log(this.TAG_NAME,"video canplay"),this.$videoElement.play().then((()=>{this.player.debug.log(this.TAG_NAME,"video play"),this._startCanvasRender(),this._initRenderSize()})).catch((e=>{this.player.debug.warn(this.TAG_NAME,"video play error ",e)}))})),i=e(this.$videoElement,tr,(()=>{this.player.debug.log("HlsDecoder","video waiting")})),r=e(this.$videoElement,ir,(e=>{const t=parseInt(e.timeStamp,10);this.player.handleRender(),this.player.updateStats({ts:t}),this.$videoElement.paused&&(this.player.debug.warn("HlsDecoder","video is paused and next try to replay"),this.$videoElement.play().then((()=>{this.player.debug.log("HlsDecoder","video is paused and replay success")})).catch((e=>{this.player.debug.warn("HlsDecoder","video is paused and replay error ",e)})))})),s=e(this.$videoElement,rr,(()=>{this.player.debug.log("HlsDecoder","video playback Rate change",this.$videoElement&&this.$videoElement.playbackRate)}));this.eventsDestroy.push(t,i,r,s)}_initRtcPeerConnection(){const e=new RTCPeerConnection,t=this.player;e.addTransceiver("video",{direction:"recvonly"}),e.addTransceiver("audio",{direction:"recvonly"}),e.onsignalingstatechange=e=>{this.player.debug.log(this.TAG_NAME,"onsignalingstatechange",e)},e.oniceconnectionstatechange=i=>{this.player.debug.log(this.TAG_NAME,"oniceconnectionstatechange",e.iceConnectionState);const r=e.iceConnectionState;switch(this.player.emit(yt.webrtcOnIceConnectionStateChange,r),this.isDisconnected="disconnected"===r,e.iceConnectionState){case"new":case"checking":case"closed":case"connected":case"completed":break;case"failed":t.emit(yt.webrtcFailed);break;case"disconnected":t.emit(yt.webrtcDisconnect);break;case"closed":t.emit(yt.webrtcClosed)}},e.onicecandidate=e=>{this.player.debug.log(this.TAG_NAME,"onicecandidate",e),e.candidate&&this.player.debug.log(this.TAG_NAME,"Remote ICE candidate: ",e.candidate.candidate)},e.ontrack=t=>{if(this.player.debug.log(this.TAG_NAME,"ontrack",t),"video"===t.track.kind){this.player.debug.log(this.TAG_NAME,"ontrack video"),this.rtcPeerTrackVideoReceiver=e.getReceivers().find((function(e){return e.track===t.track})),this.rtcPeerTrackVideoReceiver&&this._startBandwidthEstimateInterval();let i=t.streams[0];this.$videoElement.autoplay=!0,this.$videoElement.srcObject=i,this.videoStream=i}else"audio"===t.track.kind&&(this.player.debug.log(this.TAG_NAME,"ontrack audio"),this.rtcPeerTrackAudioReceiver=e.getReceivers().find((function(e){return e.track===t.track})),this.rtcPeerTrackAudioReceiver&&this._startBandwidthEstimateInterval())},e.onicecandidateerror=e=>{this.player.debug.log(this.TAG_NAME,"onicecandidateerror",e),this.player.emitError(It.webrtcIceCandidateError,e)},e.onconnectionstatechange=i=>{switch(this.player.debug.log(this.TAG_NAME,"onconnectionstatechange",i),this.player.emit(yt.webrtcOnConnectionStateChange,e.connectionState),e.connectionState){case"new":case"connecting":case"connected":case"disconnected":break;case"failed":this.isDisconnected&&t.emit(yt.webrtcFailed)}},this.rtcPeerConnection=e}_startBandwidthEstimateInterval(){this.player.debug.log(this.TAG_NAME,"_startBandwidthEstimateInterval"),this._stopBandwidthEstimateInterval(),this.bandwidthEstimateInterval=setInterval((()=>{this.rtcPeerTrackVideoReceiver&&this.rtcPeerTrackVideoReceiver.getStats().then((e=>{let t={},i=0;e.forEach((e=>{if(e)switch(e.type){case fs:("succeeded"===e.state||e.bytesReceived)&&(this.currentWebrtcStats.timestamp=e.timestamp,this.currentWebrtcStats.rtt=e.currentRoundTripTime||-1,this.currentWebrtcStats.bytesReceived=e.bytesReceived||0,this.currentWebrtcStats.bytesSent=e.bytesSent||0);break;case Ss:this.currentWebrtcStats.remoteCandidate=e||{};break;case ws:this.currentWebrtcStats.localCandidate=e||{};break;case Is:this.currentWebrtcStats.lastTimeStamp=e.timestamp;const r=((e.timestamp||0)-(this.prevWebrtcVideoStats.timestamp||0))/1e3,s=Number(e.bytesReceived||0)-Number(this.prevWebrtcVideoStats.bytesReceived||0),a=Math.floor(s/r);i+=a,t.vbps=a,this.prevWebrtcVideoStats=e;break;case Ms:e.frameWidth&&e.frameHeight&&(this.currentWebrtcStats.frameWidth=e.frameWidth||0,this.currentWebrtcStats.frameHeight=e.frameHeight||0)}})),this.rtcPeerTrackAudioReceiver?this.rtcPeerTrackAudioReceiver.getStats().then((e=>{e.forEach((e=>{if(e&&e.type===Is){this.currentWebrtcStats.lastTimeStamp=e.timestamp;const r=((e.timestamp||0)-(this.prevWebrtcAudioStats.timestamp||0))/1e3,s=Number(e.bytesReceived||0)-Number(this.prevWebrtcAudioStats.bytesReceived||0),a=Math.floor(s/r);i+=a,t.abps=a,this.prevWebrtcAudioStats=e}})),this.player.updateStats(t),this.player.emit(yt.kBps,(i/1024).toFixed(2))})):(this.player.updateStats(t),this.player.emit(yt.kBps,(i/1024).toFixed(2)))}))}),1e3)}_stopBandwidthEstimateInterval(){this.player.debug.log(this.TAG_NAME,"_stopBandwidthEstimateInterval"),this.bandwidthEstimateInterval&&(clearInterval(this.bandwidthEstimateInterval),this.bandwidthEstimateInterval=null)}_startCanvasRender(){Co()?this.supportVideoFrameCallbackHandle=this.$videoElement.requestVideoFrameCallback(this.videoFrameCallback.bind(this)):(this._stopCanvasRender(),this.canvasRenderInterval=setInterval((()=>{this.player.video.render({$video:this.$videoElement,ts:0})}),40))}_stopCanvasRender(){this.canvasRenderInterval&&(clearInterval(this.canvasRenderInterval),this.canvasRenderInterval=null)}videoFrameCallback(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.player.isDestroyedOrClosed()?this.player.debug.log(this.TAG_NAME,"videoFrameCallback() player is destroyed"):(this.player.video.render({$video:this.$videoElement,ts:t.mediaTime||0}),this.player.updateStats({dts:t.mediaTime||0}),this.supportVideoFrameCallbackHandle=this.$videoElement.requestVideoFrameCallback(this.videoFrameCallback.bind(this)))}_initRenderSize(){this.isInitInfo||(this.player.video.updateVideoInfo({width:this.$videoElement.videoWidth,height:this.$videoElement.videoHeight}),this.player.video.initCanvasViewSize(),this.isInitInfo=!0)}getVideoCurrentTime(){let e=0;return this.$videoElement&&(e=this.$videoElement.currentTime),e}}class Ic extends fc{constructor(e){super(e),this.rtcPeerConnectionDataChannel=null,this.player.isWebrtcH265()&&(this.streamRate=ua((t=>{e.emit(yt.kBps,(t/1024).toFixed(2))}))),this.TAG_NAME="WebrtcForM7SDecoder",this.player.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.stopStreamRateInterval(),this.rtcPeerConnectionDataChannel&&(this.rtcPeerConnectionDataChannel.onopen=sa,this.rtcPeerConnectionDataChannel.onclose=sa,this.rtcPeerConnectionDataChannel.onmessage=sa,this.rtcPeerConnectionDataChannel.close(),this.rtcPeerConnectionDataChannel=null),this.player.debug.log(this.TAG_NAME,"destroy")}_initRtcPeerConnection(){const e=new RTCPeerConnection,t=this.player;e.addTransceiver("video",{direction:"recvonly"}),e.addTransceiver("audio",{direction:"recvonly"}),e.onsignalingstatechange=e=>{this.player.debug.log(this.TAG_NAME,"onsignalingstatechange",e)},e.oniceconnectionstatechange=i=>{this.player.debug.log(this.TAG_NAME,"oniceconnectionstatechange",e.iceConnectionState);const r=e.iceConnectionState;switch(this.player.emit(yt.webrtcOnIceConnectionStateChange,r),this.isDisconnected="disconnected"===r,e.iceConnectionState){case"new":case"checking":case"closed":case"connected":case"completed":break;case"failed":t.emit(yt.webrtcFailed);break;case"disconnected":t.emit(yt.webrtcDisconnect);break;case"closed":t.emit(yt.webrtcClosed)}},e.onicecandidate=e=>{this.player.debug.log(this.TAG_NAME,"onicecandidate",e),e.candidate&&this.player.debug.log(this.TAG_NAME,"Remote ICE candidate: ",e.candidate.candidate)},e.ontrack=i=>{this.player.debug.log(this.TAG_NAME,"ontrack",i);const r=t.video.$videoElement;if(t.isWebrtcH264())if("video"===i.track.kind){this.player.debug.log(this.TAG_NAME,"ontrack video"),this.rtcPeerTrackVideoReceiver=e.getReceivers().find((function(e){return e.track===i.track})),this.rtcPeerTrackVideoReceiver&&this._startBandwidthEstimateInterval();let t=i.streams[0];r.autoplay=!0,r.srcObject=t,this.videoStream=t}else"audio"===i.track.kind&&(this.player.debug.log(this.TAG_NAME,"ontrack audio"),this.rtcPeerTrackAudioReceiver=e.getReceivers().find((function(e){return e.track===i.track})),this.rtcPeerTrackAudioReceiver&&this._startBandwidthEstimateInterval())},e.onicecandidateerror=e=>{this.player.debug.log(this.TAG_NAME,"onicecandidateerror",e),this.player.emitError(It.webrtcIceCandidateError,e)},e.onconnectionstatechange=i=>{switch(t.debug.log(this.TAG_NAME,`sdp connect status ${e.connectionState}`),e.connectionState){case"new":case"connecting":case"connected":case"disconnected":break;case"failed":this.isDisconnected&&t.emit(yt.webrtcFailed)}},e.ondatachannel=e=>{const t=e.channel;this.player.debug.log(this.TAG_NAME,"ondatachannel"),t.onopen=()=>{this.player.debug.log(this.TAG_NAME,"ondatachannel and onopen")},t.onmessage=e=>{const t=e.data;if(this.player.isWebrtcH264())return this.player.debug.warn(this.TAG_NAME,"ondatachannel is H265 but decode is h264 so emit webrtcStreamH265 "),void this.player.emit(yt.webrtcStreamH265);this.player.isDestroyedOrClosed()?this.player.debug.warn(this.TAG_NAME,"ondatachannel and player is destroyed"):(this.streamRate&&this.streamRate(t.byteLength),this.player.demux&&this.player.demux.dispatch(t))},t.onclose=()=>{this.player.debug.warn(this.TAG_NAME,"ondatachannel and onclose")},this.rtcPeerConnectionDataChannel=t};e.createDataChannel("signal").onmessage=e=>{this.player.debug.log(this.TAG_NAME,"signalChannel,onmessage",e);JSON.parse(e.data).type},this.rtcPeerConnection=e}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval((()=>{this.streamRate&&this.streamRate(0)}),1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}loadSource(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((i,r)=>{const s=this.rtcPeerConnection;s.createOffer().then((a=>{s.setLocalDescription(a),this.player.debug.log(this.TAG_NAME,"getWebRtcRemoteSdp loadSource"),function(e,t,i){return i.username&&i.password&&btoa(i.username+":"+i.password),fetch(e,{method:"POST",body:t})}(e,a.sdp,t).then((e=>{e.text().then((e=>{this.player.debug.log(this.TAG_NAME,"getWebRtcRemoteSdp response"),e?s.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:e})).then((()=>{this.player.isWebrtcH265()&&this.startStreamRateInterval(),i()})).catch((e=>{r(e)})):r("sdp is null")})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource response.text() error",e),r(e)}))})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource getWebRtcRemoteSdp response error",e),r(e)}))})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource rtcPeerConnection.createOffer() error",e),r(e)}))}))}}class wc extends fc{constructor(e){super(e),this.TAG_NAME="WebrtcForZLMDecoder",this.player.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.player.debug.log(this.TAG_NAME,"destroy")}loadSource(e){return new Promise(((t,i)=>{const r=this.rtcPeerConnection;r.createOffer().then((s=>{r.setLocalDescription(s),this.player.debug.log(this.TAG_NAME,"getWebRtcRemoteSdp loadSource"),function(e,t){return kl({url:e,type:"POST",data:t,contentType:"text/plain;charset=utf-8",processData:!1,dataType:"json"})}(e,s.sdp).then((e=>{this.player.debug.log(this.TAG_NAME,`getWebRtcRemoteSdp response and code is ${e.code}`);const s=e;if(s&&0!==s.code)return i(s.msg);s&&s.sdp?r.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:s.sdp})).then((()=>{t()})).catch((e=>{i(e)})):i("sdp is null")})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource getWebRtcRemoteSdp response error",e),i(e)}))})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource rtcPeerConnection.createOffer() error",e),i(e)}))}))}}class Sc extends ko{constructor(e,t){if(super(),this.player=e,this.player.$container.classList.add("easyplayer-container-playback"),this._showPrecision=null,this._startTime=null,this._playStartTime=null,this._playingTimestamp=null,this._fps=parseInt(t.fps,10)||e._opt.playbackFps,this._isUseFpsRender=!!uo(t.isUseFpsRender),this._rate=1,this._audioTimestamp=0,this._videoTimestamp=0,this.controlType=t.controlType||oe.normal,t.controlType&&-1===[oe.normal,oe.simple].indexOf(t.controlType)&&(this.player.debug.warn("Playback","constructor()","controlType is not in [normal,simple]",t.controlType),this.controlType=oe.normal),this._currentLocalTimestamp=0,this._localOneFrameTimestamp=t.localOneFrameTimestamp||40,this._localCalculateTimeInterval=null,this._isUseLocalCalculateTime=!!uo(t.isUseLocalCalculateTime),this._isPlaybackPauseClearCache=!po(t.isPlaybackPauseClearCache),this._isCacheBeforeDecodeForFpsRender=!!uo(t.isCacheBeforeDecodeForFpsRender),this._startfpsTime=null,this._startFpsTimestamp=null,this._checkStatsInterval=null,this._playbackTs=0,this._renderFps=0,this._playingTimestamp=0,this._isUseLocalCalculateTime?this._startLocalCalculateTime():this._listen(),this.playbackList=[],this._playbackListStartTimestamp=null,this._totalDuration=0,this._totalDurations=0,t.controlType===oe.normal)this.initPlaybackList(t.playList,t.showPrecision,t.startTime);else if(t.controlType===oe.simple){t.duration&&(this._totalDuration=1e3*t.duration,this._totalDurations=t.duration);let e=t.startTime||0;e>this.totalDuration&&(e=this.totalDuration),this.setStartTime(e)}this.player.on(yt.playbackPause,(e=>{e?this.pause():this.resume()}));const i={fps:this._fps,isUseFpsRender:this._isUseFpsRender,localOneFrameTimestamp:this._localOneFrameTimestamp,isUseLocalCalculateTime:this._isUseLocalCalculateTime,uiUsePlaybackPause:t.uiUsePlaybackPause,showControl:t.showControl};e.debug.log("Playback","init",JSON.stringify(i))}destroy(){this._startTime=null,this._showPrecision=null,this._playStartTime=null,this._playingTimestamp=null,this._totalDuration=0,this._playingTimestamp=0,this._audioTimestamp=0,this._videoTimestamp=0,this._fps=null,this._isUseFpsRender=!1,this._rate=1,this.playbackList=[],this._playbackListStartTimestamp=null,this._localCalculateTimeInterval=null,this._currentLocalTimestamp=0,this._startfpsTime=null,this._startFpsTimestamp=null,this._renderFps=0,this._playbackTs=0,this._stopLocalCalculateTime(),this.clearStatsInterval(),this.player.$container&&this.player.$container.classList.remove("easyplayer-container-playback"),this.off(),this.player.debug.log("Playback","destroy")}_listen(){this.player.on(yt.stats,(e=>{this.player.emit(yt.loading,!1);const t=e.ts;if(this.player.playbackPause)return;this._playStartTime||(this._playStartTime=t-1e3);let i=t-this._playStartTime;"playbackTF"==this.player._opt.playType&&"HlsDecoder"==this.player.hlsDecoder.TAG_NAME?(i=1e3*Math.round(this.player.video.getCurrentTime()),this._totalDuration=1e3*Math.round(this.player.video.getDurationTime()),parseInt(this.player.video.getDurationTime())<=parseInt(this.player.video.getCurrentTime())&&(this.player.playbackPause=!0,this.player.video.setCurrentTime(),this.player.emit(yt.playbackEnd)),this.setPlayingTimestamp(i)):(this.player.hlsDecoder&&this.player.hlsDecoder.hls._playlist.totalDuration&&0==this._totalDurations&&(this._totalDuration=1e3*parseInt(this.player.hlsDecoder.hls._playlist.totalDuration)),i=1e3*this.player.hlsDecoder.hls.getPtsIndex(),this._playingTimestamp=i,this.setPlayingTimestamp(i),parseInt(this.player.hlsDecoder.hls._playlist.totalDuration)<=parseInt(this.player.hlsDecoder.hls.getPtsIndex())&&(this.player.playbackPause=!0,this.player.emit(yt.playbackEnd)))}))}pause(){this.clearStatsInterval()}resume(){this.startCheckStatsInterval()}updateStats(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._startFpsTimestamp||(this._startFpsTimestamp=la()),La(e.ts)&&(this.player.updateStats({fps:!0,ts:e.ts}),this._playbackTs=e.ts,this._startfpsTime||(this._startfpsTime=e.ts),this._renderFps+=1);const t=la(),i=t-this._startFpsTimestamp;if(i<1e3)return;let r=null;this._startfpsTime&&(r=this._playbackTs-this._startfpsTime),this.player.emit(yt.playbackStats,{fps:this._renderFps,rate:this.rate,start:this._startfpsTime,end:this._playbackTs,timestamp:i,dataTimestamp:r,audioBufferSize:this.player.audio?this.player.audio.bufferSize:0,videoBufferSize:this.player.video?this.player.video.bufferSize:0,ts:this._playbackTs}),this._renderFps=0,this._startfpsTime=this._playbackTs,this._startFpsTimestamp=t}updateLocalOneFrameTimestamp(e){this._localOneFrameTimestamp=e}_startLocalCalculateTime(){this._stopLocalCalculateTime(),this._localCalculateTimeInterval=setInterval((()=>{const e=this._currentLocalTimestamp;this._playStartTime||(this._playStartTime=e-1e3);let t=e-this._playStartTime;if(this.player._opt.isMp4){if(0==this._totalDurations)t=1e3*Math.round(this.player.video.getCurrentTime()),this._totalDuration=1e3*Math.round(this.player.video.getDurationTime());else{let e=Math.round(this.player.video.getDurationTime())-Math.round(this.player.video.getCurrentTime()),i=this._totalDurations-e;t=i?1e3*i:0}parseInt(this.player.video.getDurationTime())<=parseInt(this.player.video.getCurrentTime())&&(this.player.playbackPause=!0,this.player.video.setCurrentTime(),this.player.emit(yt.playbackEnd))}this.setPlayingTimestamp(t)}),1e3)}startCheckStatsInterval(){this.clearStatsInterval(),this._checkStatsInterval=setInterval((()=>{this.updateStats()}),1e3)}_stopLocalCalculateTime(){this._localCalculateTimeInterval&&(clearInterval(this._localCalculateTimeInterval),this._localCalculateTimeInterval=null)}clearStatsInterval(){this._checkStatsInterval&&(clearInterval(this._checkStatsInterval),this._checkStatsInterval=null)}increaseLocalTimestamp(){this._isUseLocalCalculateTime&&(this._currentLocalTimestamp+=this._localOneFrameTimestamp)}initPlaybackList(e,t,i){this.playbackList=e||[];let r=0;if(this.playbackList.forEach(((e,t)=>{10===Ya(e.start)&&(e.startTimestamp=1e3*e.start,e.startTime=fa(e.startTimestamp)),10===Ya(e.end)&&(e.endTimestamp=1e3*e.end,e.endTime=fa(e.endTimestamp)),e.duration=e.end-e.start,r+=e.duration})),this._totalDuration=r,this.player.debug.log("Playback",this.playbackList),this.playbackList.length>0){const e=this.playbackList[0].startTimestamp;this._playbackListStartTimestamp=e;let t=e;i&&(10===Ya(i)&&(i*=1e3),this._isTimeInPlaybackList(i)&&(t=i)),this.setStartTime(t)}const s=t||wi;this.setShowPrecision(s)}get totalDuration(){return(this._totalDuration||0)/1e3}get startTime(){return this._startTime||0}setStartTime(e){this._startTime=e,this._playingTimestamp=e,this._playStartTime=null}setRate(e){this._rate=e,this.player.emit(yt.playbackRateChange,e)}get fps(){return this._fps}get rate(){return this._rate}get isUseFpsRender(){return this._isUseFpsRender}get isUseLocalCalculateTime(){return this._isUseLocalCalculateTime}get showPrecision(){return this._showPrecision}get is60Min(){return this.showPrecision===wi}get is30Min(){return this.showPrecision===Si}get is10Min(){return this.showPrecision===Mi}get is5Min(){return this.showPrecision===vi}get is1Min(){return this.showPrecision===vi}get isPlaybackPauseClearCache(){return this._isPlaybackPauseClearCache}get isCacheBeforeDecodeForFpsRender(){return this._isCacheBeforeDecodeForFpsRender}setShowPrecision(e){Bi.includes(e)||(this.player.debug.warn("Playback","setShowPrecision()","type is not in PLAYBACK_CONTROL_TIME_PRECISION_ARRAY",e),e=wi),this._showPrecision&&this._showPrecision===e||(this._showPrecision=e,this.player.emit(yt.playbackPrecision,this._showPrecision,this.playbackList),this.player.emit(yt.playbackShowPrecisionChange,this._showPrecision))}setPlayingTimestamp(e){let t;if(this.controlType===oe.normal){t=this.startTime+e,this._playingTimestamp=t,this.player.emit(yt.playbackTime,t);const i=new Date(t);this.player.emit(yt.playbackTimestamp,{ts:t,hour:i.getHours(),min:i.getMinutes(),second:i.getSeconds()})}else this.controlType===oe.simple&&(t=this.startTime+Math.round(e/1e3),t>this.totalDuration&&(this.player.debug.log("Playback","setPlayingTimestamp()",`timestamp ${t} > this.totalDuration ${this.totalDuration}`),t=this.totalDuration),this._playingTimestamp=t,this.player.emit(yt.playbackTime,t),this.player.emit(yt.playbackTimestamp,{ts:t}))}get playingTimestamp(){return this._playingTimestamp}narrowPrecision(){const e=Bi.indexOf(this.showPrecision)-1;if(e>=0){const t=Bi[e];this.setShowPrecision(t)}}expandPrecision(){const e=Bi.indexOf(this.showPrecision)+1;if(e<=Bi.length-1){const t=Bi[e];this.setShowPrecision(t)}}seek(e){if(this.player.debug.log("Playback","seek()",e),this.controlType===oe.normal){if("true"===e.hasRecord){let t=e.time;"min"===e.type&&(t=60*e.time);let i=function(e){let t={};e>-1&&(t={hour:Math.floor(e/60/60)%60,min:Math.floor(e/60)%60,second:e%60});return t}(t);if(this._playbackListStartTimestamp){const e=new Date(this._playbackListStartTimestamp).setHours(i.hour,i.min,i.second,0);i.timestamp=e;const t=this._findMoreInfoByTimestamp(e);i&&t.more&&(i.more=t.more)}this.player.emit(yt.playbackSeek,i)}}else if(this.controlType===oe.simple){let t=e.time;this.player.emit(yt.playbackSeek,{ts:t})}}currentTimeScroll(){this.player.emit(yt.playbackTimeScroll)}_findMoreInfoByTimestamp(e){let t=null;return this.playbackList.forEach(((i,r)=>{i.startTimestamp<=e&&i.endTimestamp>=e&&(t=i)})),t}_isTimeInPlaybackList(e){let t=!1;return this.playbackList.forEach(((i,r)=>{i.startTimestamp<=e&&i.endTimestamp>=e&&(t=!0)})),t}getControlType(){return this.controlType}isControlTypeNormal(){return this.controlType===oe.normal}isControlTypeSimple(){return this.controlType===oe.simple}}class Mc extends ko{constructor(e){super(),this.player=e,this.TAG_NAME="zoom",this.bindEvents=[],this.isDragging=!1,this.currentZoom=1,this.prevVideoElementStyleTransform=null,this.prevVideoElementStyleScale=null,this.maxScale=5,this.tempPosition={x:0,y:0},this.videoPosition={left:0,top:0};const{events:{proxy:t},debug:i}=this.player;this.player.on(yt.zooming,(e=>{}));const r=t(window,pa()?"touchend":"mouseup",(e=>{this.handleMouseUp(e)}));this.bindEvents.push(r),e.debug.log("zoom","init")}destroy(){this.bindEvents=[],this.isDragging=!1,this.currentZoom=1,this.prevVideoElementStyleTransform=null,this.prevVideoElementStyleScale=null,this.tempPosition={x:0,y:0},this.videoPosition={left:0,top:0},this.off(),this.player.debug.log("zoom","destroy")}_bindEvents(){const{events:{proxy:e},debug:t}=this.player,i=e(this.player.$container,pa()?"touchmove":"mousemove",(e=>{this.handleMouseMove(e)}));this.bindEvents.push(i);const r=e(this.player.$container,pa()?"touchstart":"mousedown",(e=>{this.handleMouseDown(e)}));this.bindEvents.push(r);const s=e(window,pa()?"touchend":"mouseup",(e=>{this.handleMouseUp(e)}));this.bindEvents.push(s)}_unbindEvents(){this.bindEvents.forEach((e=>{e&&e()}))}handleMouseMove(e){if(e.stopPropagation(),this.isDragging&&this.player.zooming){e.preventDefault();const{posX:t,posY:i}=Xa(e),r=this.tempPosition.x-t,s=this.tempPosition.y-i;this.videoPosition.left=this.videoPosition.left-r,this.videoPosition.top=this.videoPosition.top-s,this.tempPosition.x=t,this.tempPosition.y=i,this.updateVideoPosition()}}handleMouseDown(e){e.stopPropagation();const t=Za(e);if(this.player.zooming&&(t.matches("video")||t.matches("canvas"))){e.preventDefault();const{posX:t,posY:i}=Xa(e);this.player.$container.style.cursor="grabbing",this.tempPosition.x=t,this.tempPosition.y=i,this.isDragging=!0,this.player.debug.log("zoom","handleMouseDown is dragging true")}}handleMouseUp(e){e.stopPropagation(),this.isDragging&&this.player.zooming&&(e.preventDefault(),this.tempPosition={x:0,y:0},this.isDragging=!1,this.player.$container.style.cursor="grab",this.player.debug.log("zoom","handleMouseUp is dragging false"))}updateVideoPosition(){const e=this.player.video.$videoElement;e.style.left=this.videoPosition.left+"px",e.style.top=this.videoPosition.top+"px"}_resetVideoPosition(){this.player.resize(),this.tempPosition={x:0,y:0},this.videoPosition={left:0,top:0},this.currentZoom=1,this.isDragging=!1}narrowPrecision(){this.currentZoom<=1||(this.currentZoom-=1,this.updateVideoElementScale())}expandPrecision(){this.currentZoom>=this.maxScale||(this.currentZoom+=1,this.updateVideoElementScale())}updatePrevVideoElementStyleScale(e){this.prevVideoElementStyleScale=e}updateVideoElementScale(){const e=this.player.video.$videoElement;let t=e.style.transform,i=1,r=1;if(this.prevVideoElementStyleScale){const e=this.prevVideoElementStyleScale[0];void 0!==e&&(i=e,r=e);const t=this.prevVideoElementStyleScale[1];void 0!==t&&(r=t)}r=wa(r),i=wa(i);const s=.5*i*(this.currentZoom-1)+i,a=.5*r*(this.currentZoom-1)+r;let o;o=-1===t.indexOf("scale(")?t+` scale(${s},${a})`:t.replace(/scale\([0-9., ]*\)/,`scale(${s},${a})`),this.player.debug.log("zoom",`updateVideoElementScale end is ${s}, ${a} style is ${o}`),e.style.transform=o}}class vc extends ko{constructor(e){super(),this.player=e,this.faceDetector=null,this.objectDetector=null,this.imageDetector=null,this.occlusionDetector=null,this.initFaceDetector(),this.initObjectDetector(),this.initImageDetector(),this.initOcclusionDetector();let t="init";this.faceDetector&&(t+=" and use faceDetector"),this.objectDetector&&(t+=" and use objectDetector"),this.imageDetector&&(t+=" and use imageDetector"),this.occlusionDetector&&(t+=" and use occlusionDetector"),this.player.debug.log("AiLoader",t)}destroy(){this.off(),this.faceDetector&&(this.faceDetector.destroy(),this.faceDetector=null),this.objectDetector&&(this.objectDetector.destroy(),this.objectDetector=null),this.imageDetector&&(this.imageDetector.destroy(),this.imageDetector=null),this.occlusionDetector&&(this.occlusionDetector.destroy(),this.occlusionDetector=null),this.player.debug.log("AiLoader","destroy")}initFaceDetector(){if(this.player._opt.useFaceDetector&&window.EasyPlayerProFaceDetector){const e=new EasyPlayerProFaceDetector({detectWidth:this.player._opt.aiFaceDetectWidth,showRect:!1,debug:this.player._opt.debug,debugLevel:this.player._opt.debugLevel,debugUuid:this.player._opt.debugUuid});e.load().then((()=>{this.player.debug.log("AiLoader","init face detector success"),this.faceDetector=e,this.faceDetector.on("easyplayer-face-detector-info",(e=>{if(this.player.emit(yt.aiFaceDetectorInfo,e),this.player._opt.aiFaceDetectShowRect){const t=this.player._opt.aiFaceDetectRectConfig||{},i=(e.list||[]).map((e=>(e.type="rect",e.color=t.borderColor||"#0000FF",e.lineWidth=t.borderWidth||2,e)));this.player.video&&this.player.video.addAiContentToCanvas(i)}}))}))}}initObjectDetector(){if(this.player._opt.useObjectDetector&&window.EasyPlayerProObjectDetector){const e=new EasyPlayerProObjectDetector({detectWidth:this.player._opt.aiObjectDetectWidth,showRect:!1,debug:this.player._opt.debug,debugLevel:this.player._opt.debugLevel,debugUuid:this.player._opt.debugUuid});e.load().then((()=>{this.player.debug.log("AiLoader","init object detector success"),this.objectDetector=e,this.objectDetector.on("easyplayer-object-detector-info",(e=>{if(this.player.emit(yt.aiObjectDetectorInfo,e),this.player._opt.aiObjectDetectShowRect){const t=[],i=this.player._opt.aiObjectDetectRectConfig||{};(e.list||[]).forEach((e=>{const r={type:"rect",color:i.borderColor||"#0000FF",lineWidth:i.borderWidth||2,x:e.rect.x,y:e.rect.y,width:e.rect.width,height:e.rect.height},s={type:"text",color:i.color||"#000",fontSize:i.fontSize||14,text:e.zh,x:e.rect.x,y:e.rect.y-25};t.push(r,s)})),this.player.video&&this.player.video.addAiContentToCanvas(t)}}))}))}}initImageDetector(){if(this.player._opt.useImageDetector&&window.EasyPlayerProImageDetector){const e=new EasyPlayerProImageDetector({debug:this.player._opt.debug,debugLevel:this.player._opt.debugLevel,debugUuid:this.player._opt.debugUuid});e.load().then((()=>{this.player.debug.log("AiLoader","init image detector success"),this.imageDetector=e}))}}initOcclusionDetector(){if(this.player._opt.useOcclusionDetector&&window.EasyPlayerProOcclusionDetector){const e=new EasyPlayerProOcclusionDetector({debug:this.player._opt.debug,debugLevel:this.player._opt.debugLevel,debugUuid:this.player._opt.debugUuid});e.load().then((()=>{this.player.debug.log("AiLoader","init occlusion detector success"),this.occlusionDetector=e}))}}updateFaceDetectorConfig(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.faceDetector&&this.faceDetector.updateConfig(e)}updateObjectDetectorConfig(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.objectDetector&&this.objectDetector.updateConfig(e)}updateImageDetectorConfig(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.imageDetector&&this.imageDetector.updateConfig(e)}updateOcclusionDetectorConfig(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.occlusionDetector&&this.occlusionDetector.updateConfig(e)}}class kc extends ko{constructor(e){super(),this.player=e,this.LOG_NAME="Contextmenu",this.menuList=[],this.$contextmenus=e.control.$contextmenus,pa()?this.player.debug.warn(this.LOG_NAME,"not support mobile"):this.init(),e.debug.log(this.LOG_NAME,"init")}destroy(){this.menuList=[],this.player.debug.log(this.LOG_NAME,"destroy")}get isShow(){return e=this.player.$container,t="easyplayer-contextmenus-show",e.classList.contains(t);var e,t}show(){TA(this.player.$container,"easyplayer-contextmenus-show")}hide(){LA(this.player.$container,"easyplayer-contextmenus-show")}init(){const{events:{proxy:e},debug:t}=this.player;this.player._opt.contextmenuBtns.length>0&&this.player._opt.contextmenuBtns.forEach((e=>{this.addMenuItem(e)})),e(this.player.$container,"contextmenu",(e=>{e.preventDefault(),this.show();const t=e.clientX,i=e.clientY,{height:r,width:s,left:a,top:o}=this.player.$container.getBoundingClientRect(),{height:n,width:l}=this.$contextmenus.getBoundingClientRect();let h=t-a,A=i-o;t+l>a+s&&(h=s-l),i+n>o+r&&(A=r-n),Aa(this.$contextmenus,{left:`${h}px`,top:`${A}px`})})),e(this.player.$container,"click",(e=>{xA(e,this.$contextmenus)||this.hide()})),this.player.on(yt.blur,(()=>{this.hide()}))}_validateMenuItem(e){let t=!0;return e.content||(this.player.debug.warn(this.LOG_NAME,"content is required"),t=!1),t}addMenuItem(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=lo(Gr);if(e=Object.assign({},t,e),!this._validateMenuItem(e))return;const{events:{proxy:i},debug:r}=this.player,s=Sa(),a=`\n <div class="easyplayer-contextmenu easyplayer-contextmenu-${s}">\n ${e.content}\n </div>\n `,o=Array.from(this.$contextmenus.children)[e.index];o?o.insertAdjacentHTML("beforebegin",a):KA(this.$contextmenus,a);const n=this.$contextmenus.querySelector(`.easyplayer-contextmenu-${s}`);e.click&&i(n,"click",(t=>{t.preventDefault(),e.click.call(this.player,this,t),this.hide()})),this.menuList.push({uuid:s,$menuItem:n})}}class Bc extends fc{constructor(e){super(e),this.TAG_NAME="WebrtcForSRSDecoder",this.player.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.player.debug.log(this.TAG_NAME,"destroy")}loadSource(e){return new Promise(((t,i)=>{const r=this.rtcPeerConnection;r.createOffer().then((s=>{r.setLocalDescription(s),this.player.debug.log(this.TAG_NAME,"getWebRtcRemoteSdp loadSource"),function(e,t){return fetch(e,{method:"POST",mode:"cors",cache:"no-cache",credentials:"include",redirect:"follow",referrerPolicy:"no-referrer",headers:{"Content-Type":"application/sdp"},body:t})}(e,s.sdp).then((e=>{this.player.debug.log(this.TAG_NAME,`getWebRtcRemoteSdp response and code is ${e.code}`);const s=e;if(s&&0!==s.code)return i(s.msg);s?r.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:s})).then((()=>{t()})).catch((e=>{i(e)})):i("sdp is null")})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource getWebRtcRemoteSdp response error",e),i(e)}))})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource rtcPeerConnection.createOffer() error",e),i(e)}))}))}}class Dc extends fc{constructor(e){super(e),this.TAG_NAME="WebrtcForOthersDecoder",this.player.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.player.debug.log(this.TAG_NAME,"destroy")}loadSource(e){return new Promise(((t,i)=>{const r=this.rtcPeerConnection;r.createOffer().then((s=>{r.setLocalDescription(s),this.player.debug.log(this.TAG_NAME,"getWebRtcRemoteSdp loadSource"),function(e,t){return fetch(e,{method:"POST",mode:"cors",cache:"no-cache",credentials:"include",redirect:"follow",referrerPolicy:"no-referrer",headers:{"Content-Type":"application/sdp"},body:t})}(e,s.sdp).then((e=>{this.player.debug.log(this.TAG_NAME,`getWebRtcRemoteSdp response and code is ${e.code}`),e.text().then((e=>{this.player.debug.log(this.TAG_NAME,"getWebRtcRemoteSdp response");try{let t=JSON.parse(e);this.player.debug.log(this.TAG_NAME,"this is json sdp response"),0!=t.code&&(this.player.debug.log(this.TAG_NAME,`response json code ${t.code}`),i(new Error(`response sdp json code: ${t.code}`))),e=t.sdp}catch(e){this.player.debug.log(this.TAG_NAME,"this is raw sdp response")}e?r.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:e})).then((()=>{t()})).catch((e=>{i(e)})):i("sdp is null")})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource response.text() error",e),i(e)}))})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource getWebRtcRemoteSdp response error",e),i(e)}))})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource rtcPeerConnection.createOffer() error",e),i(e)}))}))}}class bc extends ko{constructor(e){if(super(),this.TAG_NAME="AliyunRtc",this.player=e,!window.AliRTS)throw new Error("AliyunRtc is not defined");this.aliyunRtc=window.AliRTS.createClient(),this.aliyunRtcRemoteStream=null,this.$videoElement=this.player.video.$videoElement,this.listenEvents(),this.player.debug.log(this.TAG_NAME,"init")}destroy(){this.aliyunRtc&&(this.aliyunRtcRemoteStream&&(this.aliyunRtcRemoteStream=null),this.aliyunRtc.unsubscribe(),this.aliyunRtc=null),this.off(),this.player.debug.log(this.TAG_NAME,"destroy")}listenEvents(){this.aliyunRtc.on("onError",(e=>{this.player.debug.log(this.TAG_NAME,`onError and code is ${e.errorCode} and message: ${e.message}`),10400!==e.errorCode&&(this.player.debug.error(this.TAG_NAME,`onError and code is ${e.errorCode} and message: ${e.message}`),this.player.emitError(It.aliyunRtcError,e))})),this.aliyunRtc.on("reconnect",(e=>{this.player.debug.log(this.TAG_NAME,"reconnect",e)}));const e="canplay",t="waiting",i="playing",r="media";this.aliyunRtc.on("onPlayEvent",(s=>{if(s.event===e)this.player.debug.log(this.TAG_NAME,"onPlayEvent and canplay");else if(s.event===t)this.player.debug.log(this.TAG_NAME,"onPlayEvent and playing - > waiting");else if(s.event===i)this.player.debug.log(this.TAG_NAME,"onPlayEvent and waiting -> playing");else if(s.event===r){const e=s.data;let t={},i=0;if(e.audio){const r=Math.floor(e.audio.bytesReceivedPerSecond);i+=r,t.abps=r}if(e.video){const r=Math.floor(e.video.bytesReceivedPerSecond);i+=r,t.vbps=r}this.player.updateStats(t),this.player.emit(yt.kBps,(i/1024).toFixed(2))}}))}loadSource(e){return new Promise(((t,i)=>{this.aliyunRtc.isSupport({isReceiveVideo:!0}).then((()=>{this.aliyunRtc.subscribe(e,{}).then((e=>{this.aliyunRtcRemoteStream=e,e.play(this.$videoElement),t()})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource and subscribe is not success: ",e.message),i(e.message)}))})).catch((e=>{this.player.debug.error(this.TAG_NAME,"loadSource and is not support: ",e.message),i(e.message)}))}))}getVideoCurrentTime(){let e=0;return this.$videoElement&&(e=this.$videoElement.currentTime),e}}class Qc{constructor(e){this.player=e,this.TAG_NAME="PressureObserverCpu",this.observer=null,this.latestCpuInfo=null,this.currentLevel=-1,this._init(),this.player.debug.log(this.TAG_NAME,"init")}destroy(){this.observer&&(this.observer.disconnect(),this.observer=null),this.latestCpuInfo=null,this.currentLevel=-1,this.player.debug.log(this.TAG_NAME,"destroy")}getCurrentCpuState(){return this.currentLevel}_init(){po(fo())?this.player.debug.log(this.TAG_NAME,"not support PressureObserver"):(this.observer=new PressureObserver((e=>{const t=(e||[]).find((e=>"cpu"===e.source));if(t){switch(this.latestCpuInfo=t,t.state){case"nominal":this.currentLevel=0;break;case"fair":this.currentLevel=1;break;case"serious":this.currentLevel=2;break;case"critical":this.currentLevel=3;break;default:this.currentLevel=-1}this.player.emit(yt.pressureObserverCpu,this.currentLevel)}})),this.observer&&this.observer.observe("cpu"))}}class Rc extends xo{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(e),this.TAG_NAME="DynamicWatermark",this.isPauseAnimation=!1,this.isStopAnimation=!1,this.rafID=null,this.speed=t.speed||.2,this.isDynamic=!0,this.shadowRootDynamicDom=null,this.isGhost=!0===t.isGhost,this.ghostConfig={on:t.on||5,off:t.off||5},this.waterMarkWillRemove=!1,this.waterMarkWillAdd=!1,this.player.once(yt.start,(()=>{const e=t.content;let i=this.player.getVideoInfo();i||(i={width:200,height:200}),this.update({text:{content:e,fontSize:t.fontSize||18,color:t.color||"white"},left:i.width*Math.random(),top:i.height*Math.random(),opacity:t.opacity||.15}),this.startAnimation()})),this.player.debug.log(this.TAG_NAME,"int")}destroy(){super.destroy(),this.rafID&&(cancelAnimationFrame(this.rafID),this.rafID=null)}startAnimation(){if(!this.rafID){let e=1,t=1,i=Math.random(),r={width:0,height:0};const s=()=>{try{if(po(this.isPauseAnimation)&&this.shadowRootDynamicDom&&this.shadowRootInnerDom){const a=this.shadowRootInnerDom,o=this.shadowRootDynamicDom,n=a.getBoundingClientRect(),l=o.getBoundingClientRect();if(l.width&&l.height&&(r.width=l.width,r.height=l.height),!this.shadowRootInnerDom.contains(this.shadowRootDynamicDom))return this.isGhost?po(this.waterMarkWillAdd)&&(this.waterMarkWillAdd=!0,setTimeout((()=>{this._addDom(n,r),this.waterMarkWillAdd=!1}),1e3*this.ghostConfig.off)):this._addDom(n,r),void(0!==this.speed&&requestAnimationFrame(s));const h=Math.min(1,0===this.speed?0:this.speed?this.speed:.2);let A=l.left-n.left,d=l.top-n.top;A+=h*t*i,d+=h*e*(1-i),A+r.width>n.width?(t=-1,i=Math.random()):A<0&&(t=1,i=Math.random()),d+r.height>n.height?(e=-1,i=Math.random()):d<0&&(e=1,i=Math.random()),A=Math.min(n.width-r.width,A),d=Math.min(n.height-r.height,d);const c=A/n.width*100,u=d/n.height*100;this.shadowRootDynamicDom.style.left=`${c}%`,this.shadowRootDynamicDom.style.top=`${u}%`,po(this.waterMarkWillRemove)&&this.isGhost&&(this.waterMarkWillRemove=!0,setTimeout((()=>{this._removeDom(),this.waterMarkWillRemove=!1}),1e3*this.ghostConfig.on))}}catch(e){}if(this.isStopAnimation)return this.isStopAnimation=!1,cancelAnimationFrame(this.rafID),void(this.rafID=null);0!==this.speed&&requestAnimationFrame(s)};this.rafID=requestAnimationFrame(s)}}_addDom(e,t){if(this.shadowRootInnerDom&&this.shadowRootDynamicDom){this.shadowRootInnerDom.appendChild(this.shadowRootDynamicDom);let i=e.width*Math.random(),r=e.height*Math.random();i=Math.min(e.width-2*t.width,i),r=Math.min(e.height-2*t.height,r),this.shadowRootDynamicDom.style.left=`${i}px`,this.shadowRootDynamicDom.style.top=`${r}px`}}resumeAnimation(){this.isPauseAnimation=!1}pauseAnimation(){this.isPauseAnimation=!0}stopAnimation(){this.isStopAnimation=!0}}class Tc extends ko{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),this._opt={},this.TAG_NAME="Player",this.$container=e;const i=Ao();if(this._opt=Object.assign({},i,t),this.debug=new Ks(this),this.debug.log(this.TAG_NAME,"init"),this._opt.forceNoOffscreen=!0,this._canPlayAppleMpegurl=!1,this._playerMessage=[],this._playerMessageTime=null,this._playerMessageTimeout=null,(Ca()||$a())&&(this._canPlayAppleMpegurl=_a(),this.debug.log(this.TAG_NAME,"isIOS or isSafari and canPlayAppleMpegurl",this._canPlayAppleMpegurl)),pa()&&(this.debug.log(this.TAG_NAME,"isMobile and set _opt.controlAutoHide false"),this._opt.controlAutoHide=!1,uo(Fs.isEnabled)&&uo(this._opt.useWebFullScreen)&&(this.debug.log(this.TAG_NAME,"screenfull.isEnabled is true and _opt.useWebFullScreen is true , set _opt.useWebFullScreen false"),this._opt.useWebFullScreen=!1),po(Fs.isEnabled)&&po(this._opt.useWebFullScreen)&&(this.debug.log(this.TAG_NAME,"screenfull.isEnabled is false and _opt.useWebFullScreen is false , set _opt.useWebFullScreen true"),this._opt.useWebFullScreen=!0)),mo()&&(this.debug.log(this.TAG_NAME,"isIphone and set _opt.videoRenderSupportScale false"),this._opt.videoRenderSupportScale=!1,za()&&uo(this._opt.isHls)&&po(this._opt.supportHls265)&&(this.debug.log(this.TAG_NAME,"isIphone and is in wechat and is hls so set supportHls265 true"),this._opt.supportHls265=!0)),po(this._opt.playFailedAndReplay)&&(this.debug.log(this.TAG_NAME,"_opt.playFailedAndReplay is false and set others replay params false"),this._opt.webglAlignmentErrorReplay=!1,this._opt.webglContextLostErrorReplay=!1,this._opt.autoWasm=!1,this._opt.mseDecodeErrorReplay=!1,this._opt.mediaSourceTsIsMaxDiffReplay=!1,this._opt.wcsDecodeErrorReplay=!1,this._opt.wasmDecodeErrorReplay=!1,this._opt.simdDecodeErrorReplay=!1,this._opt.videoElementPlayingFailedReplay=!1,this._opt.networkDelayTimeoutReplay=!1,this._opt.widthOrHeightChangeReplay=!1,this._opt.simdH264DecodeVideoWidthIsTooLargeReplay=!1,this._opt.mediaSourceUseCanvasRenderPlayFailedReplay=!1,this._opt.heartTimeoutReplay=!1,this._opt.loadingTimeoutReplay=!1,this._opt.websocket1006ErrorReplay=!1),this._opt.forceNoOffscreen||("undefined"==typeof OffscreenCanvas?(this._opt.forceNoOffscreen=!0,this._opt.useOffscreen=!1):this._opt.useOffscreen=!0),this._opt.isMpeg4&&(this.debug.log(this.TAG_NAME,"isMpeg4 is true, so set _opt.useWasm true and others params false"),this._opt.useWCS=!1,this._opt.useMSE=!1,this._opt.isNakedFlow=!1,this._opt.useSIMD=!1,this._opt.isFmp4=!1,this._opt.useWasm=!0),this.isPlayback()&&(this._opt.mseDecoderUseWorker=!1),this._opt.poster&&(this._opt.background=this._opt.poster),po(this._opt.muted)&&(this._opt.isNotMute=!0),this._opt.mseDecoderUseWorker&&(this._opt.mseDecoderUseWorker=!!(self.Worker&&self.MediaSource&&"canConstructInDedicatedWorker"in self.MediaSource&&!0===self.MediaSource.canConstructInDedicatedWorker),po(this._opt.mseDecoderUseWorker)&&this.debug.log(this.TAG_NAME,"mseDecoderUseWorker is true but not support so set _opt.mseDecoderUseWorker = false")),(this.isOldHls()||this.isWebrtcH264()||this.isAliyunRtc())&&(this.debug.log(this.TAG_NAME,"isOldHls or isWebrtcH264 or isAliyunRtc is true, so set some params false and _opt.recordType is webm"),this._opt.useWCS=!1,this._opt.useMSE=!1,this._opt.isNakedFlow=!1,this._opt.useSIMD=!1,this._opt.isFmp4=!1,this._opt.useWasm=!1,this._opt.recordType=B),this._opt.isNakedFlow&&(this.debug.log(this.TAG_NAME,"isNakedFlow is true, so set _opt.mseDecodeAudio false"),this._opt.mseDecodeAudio=!1),ya()&&(this.debug.log(this.TAG_NAME,"isFirefox is true, so set _opt.mseDecodeAudio false"),this._opt.mseDecodeAudio=!1),!this.isOldHls()&&!this.isWebrtcH264()){if(this._opt.useWCS){const e="VideoEncoder"in window,t=Ba();this._opt.useWCS=e,this._opt.useWCS&&this._opt.isH265&&(this._opt.useWCS=t),this._opt.useWCS||this.debug.warn(this.TAG_NAME,`\n useWCS is true,\n and supportWCS is ${e}, supportHevcWCS is ${t} , _opt.isH265 is ${this._opt.isH265}\n so set useWCS false`),this._opt.useWCS&&(this._opt.useOffscreen?this._opt.wcsUseVideoRender=!1:this._opt.wcsUseVideoRender&&(this._opt.wcsUseVideoRender=Da()&&ba(),this._opt.wcsUseVideoRender||this.debug.warn(this.TAG_NAME,"wcsUseVideoRender is true, but not support so set wcsUseVideoRender false")))}if(this._opt.useMSE){const e=function(){let e=!1;return"MediaSource"in self&&(e=!0),e}()||function(){let e=!1;return!("MediaSource"in self)&&"ManagedMediaSource"in self&&(e=!0),e}(),t=ka()||function(){let e=!1;return!("MediaSource"in self)&&"ManagedMediaSource"in self&&(self.ManagedMediaSource.isTypeSupported(Ai)||self.ManagedMediaSource.isTypeSupported(di)||self.ManagedMediaSource.isTypeSupported(ci)||self.ManagedMediaSource.isTypeSupported(ui)||self.ManagedMediaSource.isTypeSupported(pi))&&(e=!0),e}();this._opt.useMSE=e,this._opt.useMSE&&this._opt.isH265&&(this._opt.useMSE=t),this._opt.useMSE||this.debug.warn(this.TAG_NAME,`\n useMSE is true,\n and supportMSE is ${e}, supportHevcMSE is ${t} , _opt.isH265 is ${this._opt.isH265}\n so set useMSE false`)}}if(po(this._opt.useMSE)&&(this._opt.mseDecodeAudio=!1),this._opt.useMSE?(this._opt.useWCS&&this.debug.warn(this.TAG_NAME,"useMSE is true and useWCS is true then useWCS set true->false"),this._opt.forceNoOffscreen||this.debug.warn(this.TAG_NAME,"useMSE is true and forceNoOffscreen is false then forceNoOffscreen set false->true"),this._opt.useWCS=!1,this._opt.forceNoOffscreen=!0):this._opt.useWCS,this._opt.isWebrtc&&this._opt.demuxUseWorker&&(this.debug.warn(this.TAG_NAME,"isWebrtc is true and demuxUseWorker is true then demuxUseWorker set true->false"),this._opt.demuxUseWorker=!1),this._opt.isHls&&this._opt.demuxUseWorker&&(this.debug.warn(this.TAG_NAME,"isHls is true and demuxUseWorker is true then demuxUseWorker set true->false"),this._opt.demuxUseWorker=!1),this._opt.isAliyunRtc&&this._opt.demuxUseWorker&&(this.debug.warn(this.TAG_NAME,"isAliyunRtc is true and demuxUseWorker is true then demuxUseWorker set true->false"),this._opt.demuxUseWorker=!1),this.isStreamWebTransport()&&this._opt.demuxUseWorker&&(this.debug.warn(this.TAG_NAME,"is stream use webTransport is true and demuxUseWorker is true then demuxUseWorker set true->false"),this._opt.demuxUseWorker=!1),po(this._opt.demuxUseWorker)&&(this._opt.mseDecoderUseWorker=!1),this.isPlayback()&&(this._opt.mseDecoderUseWorker=!1),this._opt.useMThreading&&(this._opt.useMThreading="undefined"!=typeof SharedArrayBuffer,this._opt.useMThreading||this.debug.warn(this.TAG_NAME,"useMThreading is true, but not support so set useMThreading false")),this._opt.useSIMD||-1!==this._opt.decoder.indexOf("-simd")){const e=WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),t=mo();this._opt.useSIMD=e&&po(t),this._opt.useSIMD||this.debug.warn(this.TAG_NAME,`useSIMD is true, but not supportisSupportSimd is ${e} ,isIphone is ${t} so set useSIMD false`)}var r;if(this._opt.useSIMD?-1===this._opt.decoder.indexOf("-simd")?this._opt.useMThreading?this._opt.decoder=this._opt.decoder.replace("decoder-pro.js","decoder-pro-simd-mt.js"):this._opt.decoder=this._opt.decoder.replace("decoder-pro.js","decoder-pro-simd.js"):this._opt.useMThreading&&(this._opt.decoder=this._opt.decoder.replace("decoder-pro-simd.js","decoder-pro-simd-mt.js")):-1!==this._opt.decoder.indexOf("-simd")?this._opt.useMThreading?this._opt.decoder=this._opt.decoder.replace("decoder-pro-simd.js","decoder-pro-mt.js"):this._opt.decoder=this._opt.decoder.replace("decoder-pro-simd.js","decoder-pro.js"):this._opt.useMThreading&&(this._opt.decoder=this._opt.decoder.replace("decoder-pro.js","decoder-pro-mt.js")),-1!==this._opt.decoder.indexOf("-simd")?this._opt.useMThreading?(this._opt.decoderAudio=this._opt.decoder.replace("decoder-pro-simd-mt.js","decoder-pro-audio.js"),this._opt.decoderHard=this._opt.decoder.replace("decoder-pro-simd-mt.js","decoder-pro-hard.js"),this._opt.decoderHardNotWasm=this._opt.decoder.replace("decoder-pro-simd-mt.js","decoder-pro-hard-not-wasm.js")):(this._opt.decoderAudio=this._opt.decoder.replace("decoder-pro-simd.js","decoder-pro-audio.js"),this._opt.decoderHard=this._opt.decoder.replace("decoder-pro-simd.js","decoder-pro-hard.js"),this._opt.decoderHardNotWasm=this._opt.decoder.replace("decoder-pro-simd.js","decoder-pro-hard-not-wasm.js")):this._opt.useMThreading?(this._opt.decoderAudio=this._opt.decoder.replace("decoder-pro-mt.js","decoder-pro-audio.js"),this._opt.decoderHard=this._opt.decoder.replace("decoder-pro-mt.js","decoder-pro-hard.js"),this._opt.decoderHardNotWasm=this._opt.decoder.replace("decoder-pro-mt.js","decoder-pro-hard-not-wasm.js")):(this._opt.decoderAudio=this._opt.decoder.replace("decoder-pro.js","decoder-pro-audio.js"),this._opt.decoderHard=this._opt.decoder.replace("decoder-pro.js","decoder-pro-hard.js"),this._opt.decoderHardNotWasm=this._opt.decoder.replace("decoder-pro.js","decoder-pro-hard-not-wasm.js")),po(this._opt.hasAudio)&&(this._opt.operateBtns.audio=!1),po(this._opt.hasVideo)&&(this._opt.operateBtns.fullscreen=!1,this._opt.operateBtns.screenshot=!1,this._opt.operateBtns.record=!1,this._opt.operateBtns.ptz=!1,this._opt.operateBtns.quality=!1,this._opt.operateBtns.zoom=!1),this._opt.qualityConfig&&0===this._opt.qualityConfig.length&&this._opt.operateBtns.quality&&(this._opt.operateBtns.quality=!1,this.debug.warn(this.TAG_NAME,"_opt.qualityConfig is empty, so set operateBtns.quality false")),uo(this._opt.useWebGPU)&&(this._opt.useWebGPU=function(){let e=!1;return"gpu"in navigator&&(e=!0),e}(),po(this._opt.useWebGPU)&&this.debug.warn(this.TAG_NAME,"useWebGPU is true, but not support so set useWebGPU false")),this._opt.hasControl=this._hasControl(),this._loading=!1,this._playing=!1,this._playbackPause=!1,this._hasLoaded=!1,this._zooming=!1,this._destroyed=!1,this._closed=!1,this._checkHeartTimeout=null,this._checkLoadingTimeout=null,this._checkStatsInterval=null,this._checkVisibleHiddenTimeout=null,this._startBpsTime=null,this._isPlayingBeforePageHidden=!1,this._stats={buf:0,netBuf:0,fps:0,maxFps:0,dfps:0,abps:0,vbps:0,ts:0,mseTs:0,currentPts:0,pTs:0,dts:0,mseVideoBufferDelayTime:0,isDropping:!1},this._allStatsData={},this._faceDetectActive=!1,this._objectDetectActive=!1,this._occlusionDetectActive=!1,this._imageDetectActive=!1,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this._videoTimestamp=0,this._audioTimestamp=0,this._latestAudioTimestamp=0,this._videoIframeIntervalTs=0,this._streamQuality=this._opt.defaultStreamQuality||"",!this._streamQuality&&this._opt.qualityConfig.length>0&&(this._streamQuality=this._opt.qualityConfig[0]||""),this._visibility=!0,this._lastestVisibilityChangeTimestamp=null,this._tempWorkerStats=null,this._historyFpsList=[],this._historyVideoDiffList=[],this._tempStreamList=[],this._tempInnerPlayBgobj=null,this._flvMetaData=null,this._flvMetaDataFps=null,this._mseWorkerData={},po(this._opt.useMSE)&&po(this._opt.useWCS)&&!this.isWebrtcH264()&&!this.isOldHls()&&(this._opt.useWasm=!0),(this.isOldHls()||this.isWebrtcH264())&&(this._opt.hasVideo=!0,this._opt.hasAudio=!0),this._opt.hasVideo||(this._opt.useMSE=!1,this._opt.useWCS=!1),this._opt.useWasm&&(this._opt.useOffscreen?this._opt.wasmUseVideoRender=!1:this._opt.wasmUseVideoRender&&(this._opt.wasmUseVideoRender=Ia()&&Da()&&ba(),this._opt.wasmUseVideoRender||this.debug.warn(this.TAG_NAME,"use wasm video render, but not support so set wasmUseVideoRender false")),this._opt.useSIMD?this.debug.log(this.TAG_NAME,"use simd wasm"):this.debug.log(this.TAG_NAME,"use wasm")),this._opt.useWasm&&(this._opt.useFaceDetector&&window.EasyPlayerProFaceDetector||this._opt.useObjectDetector&&window.EasyPlayerProObjectDetector||this._opt.useOcclusionDetector&&window.EasyPlayerProOcclusionDetector||this._opt.useImageDetector&&window.EasyPlayerProImageDetector)?(this.ai=new vc(this),this._opt.useFaceDetector&&window.EasyPlayerProFaceDetector||(this._opt.operateBtns.aiFace=!1),this._opt.useObjectDetector&&window.EasyPlayerProObjectDetector||(this._opt.operateBtns.aiObject=!1),this._opt.useOcclusionDetector&&window.EasyPlayerProOcclusionDetector||(this._opt.operateBtns.aiOcclusion=!1),this._opt.useImageDetector&&this._opt.aiImageDetectActive&&window.EasyPlayerProImageDetector&&(this.imageDetectActive=!0)):(this._opt.operateBtns.aiObject=!1,this._opt.operateBtns.aiFace=!1,this._opt.operateBtns.aiOcclusion=!1),this._opt.useFaceDetector&&(this._opt.useWasm&&window.EasyPlayerProFaceDetector||this.debug.warn(this.TAG_NAME,`use face detector, useWasm is ${this._opt.useWasm} and window.EasyProFaceDetector is null`)),this._opt.useObjectDetector&&(this._opt.useWasm&&window.EasyPlayerProObjectDetector||this.debug.warn(this.TAG_NAME,`use object detector, useWasm is ${this._opt.useWasm} and window.EasyProObjectDetector is null`)),this._opt.useOcclusionDetector&&(this._opt.useWasm&&window.EasyPlayerProOcclusionDetector||this.debug.warn(this.TAG_NAME,`use occlusion detector, useWasm is ${this._opt.useWasm} and window.EasyPlayerProOcclusionDetector is null`)),this._opt.useImageDetector&&(this._opt.useWasm&&window.EasyPlayerProImageDetector||this.debug.warn(this.TAG_NAME,`use image detector, useWasm is ${this._opt.useWasm} and window.EasyPlayerProImageDetector is null`)),this._opt.useVideoRender&&(this._opt.useWasm&&!this._opt.useOffscreen?(this._opt.wasmUseVideoRender=Ia()&&Da()&&ba(),this._opt.wasmUseVideoRender||this.debug.warn(this.TAG_NAME,"use wasm video render, but not support so set wasmUseVideoRender false")):this._opt.useWCS&&!this._opt.useOffscreen&&(this._opt.wcsUseVideoRender=Da()&&ba(),this._opt.wcsUseVideoRender||this.debug.warn(this.TAG_NAME,"use wcs video render, but not support so set wcsUseVideoRender false"))),this._opt.useCanvasRender&&(this._opt.useMSE&&po(this._opt.mseDecoderUseWorker)&&(this._opt.mseUseCanvasRender=!0),this._opt.useWasm&&(this._opt.wasmUseVideoRender=!1),this._opt.useWCS&&(this._opt.wcsUseVideoRender=!1),this.isOldHls()&&!Ca()&&(this._opt.hlsUseCanvasRender=!0),this.isWebrtcH264()&&(this._opt.webrtcUseCanvasRender=!0)),this._opt.useVideoRender=!1,this._opt.useCanvasRender=!1,this._opt.useWasm?this._opt.wasmUseVideoRender?this._opt.useVideoRender=!0:this._opt.useCanvasRender=!0:this._opt.useWCS?this._opt.wcsUseVideoRender?this._opt.useVideoRender=!0:this._opt.useCanvasRender=!0:this._opt.useMSE?this._opt.mseUseCanvasRender?this._opt.useCanvasRender=!0:this._opt.useVideoRender=!0:this.isOldHls()?this._opt.hlsUseCanvasRender?this._opt.useCanvasRender=!0:this._opt.useVideoRender=!0:this.isWebrtcH264()&&(this._opt.webrtcUseCanvasRender?this._opt.useCanvasRender=!0:this._opt.useVideoRender=!0),r=this,Object.defineProperty(r,"rect",{get:()=>{let e={};return r.$container&&(e=r.$container.getBoundingClientRect(),e.width=Math.max(e.width,r.$container.clientWidth),e.height=Math.max(e.height,r.$container.clientHeight)),e}}),["bottom","height","left","right","top","width"].forEach((e=>{Object.defineProperty(r,e,{get:()=>r.rect[e]||0})})),this.events=new vo(this),this._opt.hasVideo&&(this.video=new Ho(this),this.recorder=new nl(this)),this.isWsRtc()?(this.wsRtcDecoder=new XA(this),this.loaded=!0):this.isMp4()?(this.mp4Decoder=new HA(this),this.loaded=!0):this.isOldHls()?(this.hlsDecoder=new VA(this),this.loaded=!0):this.isWebrtcH264()?(this._opt.isWebrtcForZLM?this.webrtc=new wc(this):this._opt.isWebrtcForSRS?this.webrtc=new Bc(this):this._opt.isWebrtcForOthers?this.webrtc=new Dc(this):this.webrtc=new Ic(this),this.loaded=!0):this.isAliyunRtc()?(this.aliyunRtcDecoder=new bc(this),this.loaded=!0):(this.isUseHls265()&&(this.hlsDecoder=new Cc(this)),this.isWebrtcH265()&&(this.webrtc=new Ic(this)),po(eo(this._opt))?this.decoderWorker=new ul(this):this.loaded=!0),this._opt.hasAudio&&(this.audio=new mn(this)),this.stream=null,this.demux=null,this._lastVolume=null,this._isMute=null,this._isInZoom=!1,this._playingStartTimestamp=null,this.isMSEVideoDecoderInitializationFailedNotSupportHevc=!1,this.isMSEAudioDecoderError=!1,this.isMSEPlaybackRateChangePause=!1,this.isPlayFailedAndPaused=!1,this._opt.useWCS&&(this.webcodecsDecoder=new IA(this),!this._opt.hasAudio&&po(this._opt.demuxUseWorker)&&(this.loaded=!0)),this._opt.useMSE&&po(this._opt.mseDecoderUseWorker)&&(this.mseDecoder=new NA(this),!this._opt.hasAudio&&po(this._opt.demuxUseWorker)&&(this.loaded=!0)),this.control=new OA(this),this._opt.contextmenuBtns.length>0&&po(this._opt.disableContextmenu)&&ga()?this.contextmenu=new kc(this):uo(this._opt.disableContextmenu)&&this._opt.contextmenuBtns.length>0&&ga()&&this.debug.warn(this.TAG_NAME,"disableContextmenu is true, but contextmenuBtns is not empty, so Contextmenu can not be createdplease check"),this.isPlayback()&&(this.playback=new Sc(this,this._opt.playbackConfig)),this._opt.operateBtns.zoom&&(this.zoom=new Mc(this)),/(iphone|ipad|ipod|ios|android)/i.test(window.navigator.userAgent.toLowerCase())&&po(this._opt.supportLockScreenPlayAudio&&$a())&&(this.keepScreenOn=new jA(this)),(e=>{try{const t=t=>{Za(t)===e.$container&&(e.emit(Et.fullscreen,e.fullscreen),e.fullscreen?e._opt.useMSE&&e.resize():e.resize())};Fs.on("change",t),e.events.destroys.push((()=>{Fs.off("change",t)}))}catch(e){}if(e.on(yt.decoderWorkerInit,(()=>{e.debug.log("player","listen decoderWorkerInit and set loaded true"),e.loaded=!0})),e.on(yt.play,(()=>{e.loading=!1})),e.on(yt.screenshot,(t=>{e.emit(yt.screenshots,t)})),e.on(yt.close,(t=>{e.emit(yt.contextmenuClose,t)})),e.on(yt.fullscreen,(t=>{if(t)try{Fs.request(e.$container).then((()=>{})).catch((t=>{e.debug.error("player","fullscreen request error",t),pa()&&e._opt.useWebFullScreen&&(e.webFullscreen=!0)}))}catch(t){pa()&&e._opt.useWebFullScreen&&(e.webFullscreen=!0)}else try{Fs.exit().then((()=>{e.webFullscreen&&(e.webFullscreen=!1)})).catch((t=>{e.debug.error("player","fullscreen exit error",t),e.webFullscreen&&(e.webFullscreen=!1)}))}catch(t){e.webFullscreen&&(e.webFullscreen=!1)}})),pa()&&e.on(yt.webFullscreen,(t=>{t?e.$container.classList.add("easyplayer-fullscreen-web"):e.$container.classList.remove("easyplayer-fullscreen-web"),e.emit(Et.fullscreen,e.fullscreen)})),e.on(yt.resize,(()=>{e.video&&e.video.resize()})),e._opt.debug){const t=[yt.timeUpdate,yt.currentPts,yt.videoSEI],i=[yt.stats,yt.playbackStats,yt.playbackEnd,yt.playbackTimestamp,yt.flvMetaData,yt.playToRenderTimes,yt.audioInfo,yt.videoInfo];Object.keys(yt).forEach((r=>{e.on(yt[r],(function(s){if(!t.includes(r)){i.includes(r)&&(s=JSON.stringify(s));for(var a=arguments.length,o=new Array(a>1?a-1:0),n=1;n<a;n++)o[n-1]=arguments[n];e.debug.log("player events",yt[r],s,...o)}}))})),Object.keys(It).forEach((t=>{e.on(It[t],(function(){for(var i=arguments.length,r=new Array(i),s=0;s<i;s++)r[s]=arguments[s];e.debug.warn("player event error",It[t],...r)}))}))}})(this),JA(this),this.singleWatermark=new xo(this),this._opt.ghostWatermarkConfig.content){const e=Object.assign({},this._opt.ghostWatermarkConfig,{isGhost:!0});this.ghostWatermark=new Rc(this,e)}this._opt.dynamicWatermarkConfig.content&&(this.dynamicWatermark=new Rc(this,this._opt.dynamicWatermarkConfig)),this._opt.watermarkConfig&&this.updateWatermark(this._opt.watermarkConfig),fo()&&(this.pressureObserverCpu=new Qc(this)),this._opt.useWCS&&this.debug.log(this.TAG_NAME,"use WCS"),this._opt.useMSE&&(this._opt.mseDecoderUseWorker?this.debug.log(this.TAG_NAME,"use worker MSE"):this.debug.log(this.TAG_NAME,"use MSE")),this._opt.useOffscreen&&this.debug.log(this.TAG_NAME,"use offscreen"),this._opt.isHls&&(this._opt.supportHls265?this.debug.log(this.TAG_NAME,"use hls 265"):this.debug.log(this.TAG_NAME,"use hls")),this._opt.isWebrtc&&(this._opt.isWebrtcH265?this.debug.log(this.TAG_NAME,"use webrtc h265"):this._opt.isWebrtcForZLM?this.debug.log(this.TAG_NAME,"use webrtc for ZLM"):this._opt.isWebrtcForSRS?this.debug.log(this.TAG_NAME,"use webrtc for SRS"):this._opt.isWebrtcForOthers?this.debug.log(this.TAG_NAME,"use webrtc for Others"):this.debug.log(this.TAG_NAME,"use webrtc for M7S")),this.isAliyunRtc()&&this.debug.log(this.TAG_NAME,"use aliyun rtc"),this._opt.isFmp4&&this.debug.log(this.TAG_NAME,"use fmp4"),this._opt.isMpeg4&&this.debug.log(this.TAG_NAME,"use mpeg4"),this.isPlayback()&&this.debug.log(this.TAG_NAME,"use playback"),this._opt.hasVideo&&(0===this.width&&this.debug.warn(this.TAG_NAME,"container width is 0, please check the container width"),0===this.height&&this.debug.warn(this.TAG_NAME,"container height is 0, please check the container height")),this.debug.log("Player options",JSON.stringify(this._opt))}async destroy(){this._destroyed=!0,this.emit("destroy"),this.off(),this.events&&(this.events.destroy(),this.events=null),this.clearCheckLoadingTimeout(),this.clearStatsInterval(),this.clearVisibilityHiddenTimeout(),this.decoderWorker&&(await this.decoderWorker.destroy(),this.decoderWorker=null),await this._destroy()}async _destroy(){this._loading=!1,this._playing=!1,this._playbackPause=!1,this._hasLoaded=!1,this._lastVolume=null,this._isMute=null,this._zooming=!1,this._faceDetectActive=!1,this._objectDetectActive=!1,this._occlusionDetectActive=!1,this._imageDetectActive=!1,this._playerMessage=[],this._playerMessageTime&&(clearTimeout(this._playerMessageTime),this._playerMessageTime=null),this._playerMessageTimeout&&(clearTimeout(this._playerMessageTimeout),this._playerMessageTimeout=null),this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this.singleWatermark&&(this.singleWatermark.destroy(),this.singleWatermark=null),this.ghostWatermark&&(this.ghostWatermark.destroy(),this.ghostWatermark=null),this.dynamicWatermark&&(this.dynamicWatermark.destroy(),this.dynamicWatermark=null),this.pressureObserverCpu&&(this.pressureObserverCpu.destroy(),this.pressureObserverCpu=null),this.stream&&(await this.stream.destroy(),this.stream=null),this.hlsDecoder&&(await this.hlsDecoder.destroy(),this.hlsDecoder=null),this.mp4Decoder&&(await this.mp4Decoder.destroy(),this.mp4Decoder=null),this.wsRtcDecoder&&(await this.wsRtcDecoder.destroy(),this.wsRtcDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.webrtc&&(this.webrtc.destroy(),this.webrtc=null),this.aliyunRtcDecoder&&(this.aliyunRtcDecoder.destroy(),this.aliyunRtcDecoder=null),this.video&&(this.video.destroy(),this.video=null),this.audio&&(this.audio.destroy(),this.audio=null),this.recorder&&(this.recorder.destroy(),this.recorder=null),this.control&&(this.control.destroy(),this.control=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.demux&&(this.demux.destroy(),this.demux=null),this.playback&&(this.playback.destroy(),this.playback=null),this.zoom&&(this.zoom.destroy(),this.zoom=null),this.ai&&(this.ai.destroy(),this.ai=null),this.keepScreenOn&&(this.releaseWakeLock(),this.keepScreenOn.destroy(),this.keepScreenOn=null),this.resetStats(),this._audioTimestamp=0,this._latestAudioTimestamp=0,this._videoTimestamp=0,this._streamQuality="",this._visibility=!0,this._isInZoom=!1,this._playingStartTimestamp=null,this._lastestVisibilityChangeTimestamp=null,this._videoIframeIntervalTs=null,this._tempWorkerStats=null,this._tempStreamList=[],this._tempInnerPlayBgobj={},this._flvMetaData=null,this._flvMetaDataFps=null,this._mseWorkerData={},this.isMSEVideoDecoderInitializationFailedNotSupportHevc=!1,this.isMSEAudioDecoderError=!1,this.isMSEPlaybackRateChangePause=!1,this.isPlayFailedAndPaused=!1,this.debug.log("play","destroy end"),this._opt=Ao(),this.$container=null}set fullscreen(e){pa()&&this._opt.useWebFullScreen?this.webFullscreen=e:this.emit(yt.fullscreen,e)}get fullscreen(){return Fs.isFullscreen||this.webFullscreen}set webFullscreen(e){this.emit(yt.webFullscreen,e),setTimeout((()=>{this.updateOption({rotate:e?270:0}),this.resize()}),10)}get webFullscreen(){return this.$container.classList.contains("easyplayer-fullscreen-web")}set loaded(e){this._hasLoaded=e}get loaded(){return this._hasLoaded||this.isOldHls()||this.isWebrtcH264()||this._opt.useMSE&&po(this._opt.hasAudio)&&po(this._opt.demuxUseWorker)||this._opt.useWCS&&!this._opt.hasAudio&&po(this._opt.demuxUseWorker)}set playing(e){this.isClosed()&&e?this.debug.log(this.TAG_NAME,"player is closed, so can not play"):(e&&uo(this.loading)&&(this.loading=!1),this.playing!==e&&(this._playing=e,this.emit(yt.playing,e),this.emit(yt.volumechange,this.volume),e?this.emit(yt.play):this.emit(yt.pause)))}get playing(){return this._playing}get volume(){return this.audio&&this.audio.volume||0}set volume(e){this.emit(yt.mute,e>0),this.video&&this.video.$videoElement&&(this.video.$videoElement.muted=!(e>0)),e!==this.volume&&(this.audio?(this.audio.setVolume(e),this._lastVolume=this.volume,this._isMute=0===this.volume):this.debug.warn(this.TAG_NAME,"set volume error, audio is null"))}get lastVolume(){return this._lastVolume}set loading(e){this.loading!==e&&(this._loading=e,this._opt.isMp4?this.emit(yt.loading,!0):this.emit(yt.loading,this._loading))}get loading(){return this._loading}set zooming(e){this.zooming!==e&&(this.zoom||(this.zoom=new Mc(this)),this._zooming=e,this.emit(yt.zooming,this.zooming))}get zooming(){return this._zooming}set recording(e){e?this.playing&&!this.recording&&(this.recorder&&this.recorder.startRecord(),this.isDemuxInWorker()&&this.decoderWorker&&this.decoderWorker.updateWorkConfig({key:"isRecording",value:!0})):this.recording&&(this.isDemuxInWorker()&&this.decoderWorker&&this.decoderWorker.updateWorkConfig({key:"isRecording",value:!1}),this.recorder&&this.recorder.stopRecordAndSave().then((()=>{})).catch((e=>{})))}get recording(){return!!this.recorder&&this.recorder.isRecording}set audioTimestamp(e){null!==e&&(this._audioTimestamp=e)}get audioTimestamp(){return this._audioTimestamp}set latestAudioTimestamp(e){null!==e&&(this._latestAudioTimestamp=e)}get latestAudioTimestamp(){return this._latestAudioTimestamp}get videoTimestamp(){return this._stats.currentPts||this._stats.ts}set streamQuality(e){this.streamQuality!==e&&(this._streamQuality=e,this.emit(yt.streamQualityChange,e))}get streamQuality(){return this._streamQuality}get isDebug(){return uo(this._opt.debug)}get scaleType(){const e=this._opt,t=e.isResize,i=e.isFullResize;let r=Ht;return po(i)&&po(t)?r=Ht:po(i)&&uo(t)?r=Xt:uo(i)&&uo(t)&&(r=_t),r}set visibility(e){this._visibility!==e&&(this._visibility=e,this.emit(yt.visibilityChange,e),this._lastestVisibilityChangeTimestamp=la(),e?this.clearVisibilityHiddenTimeout():this.startVisibilityHiddenTimeout())}get visibility(){return this._visibility}set playbackPause(e){this._playbackPause!==e&&(this._playbackPause=e,this.emit(yt.playbackPause,e),this.emit(yt.playbackPauseOrResume,e))}get playbackPause(){return this.isPlayback()&&this._playbackPause}set videoIframeIntervalTs(e){this._videoIframeIntervalTs=e}get videoIframeIntervalTs(){return this._videoIframeIntervalTs}set faceDetectActive(e){this._faceDetectActive!==e&&(this._faceDetectActive=e,this.emit(yt.faceDetectActive,e))}get faceDetectActive(){return this._faceDetectActive}set objectDetectActive(e){this._objectDetectActive!==e&&(this._objectDetectActive=e,this.emit(yt.objectDetectActive,e))}get objectDetectActive(){return this._objectDetectActive}set occlusionDetectActive(e){this._occlusionDetectActive!==e&&(this._occlusionDetectActive=e,this.emit(yt.occlusionDetectActive,e))}get occlusionDetectActive(){return this._occlusionDetectActive}set imageDetectActive(e){this._imageDetectActive!==e&&(this._imageDetectActive=e)}get imageDetectActive(){return this._imageDetectActive}get isUseWorkerDemuxAndDecode(){return this.stream&&this.stream.getStreamType()===C}isDestroyed(){return this._destroyed}isClosed(){return this._closed}isDestroyedOrClosed(){return this.isDestroyed()||this.isClosed()}isPlaying(){let e=!1;return this._opt.playType===S?e=this.playing:this._opt.playType===v&&(e=po(this.playbackPause)&&this.playing),e}updateOption(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._opt=Object.assign({},this._opt,e),uo(t)&&this.decoderWorker&&Object.keys(e).forEach((t=>{this.decoderWorker.updateWorkConfig({key:t,value:e[t]})}))}init(){return new Promise(((e,t)=>{this.video||this._opt.hasVideo&&(this.video=new Ho(this)),this.audio||this._opt.hasAudio&&(this.audio=new mn(this)),this.stream||(this.stream=new Bn(this)),this.isWsRtc()?(this.wsRtcDecoder||(this.wsRtcDecoder=new XA(this),this.loaded=!0),e()):this.isMp4()?(this.mp4Decoder||(this.mp4Decoder=new HA(this),this.loaded=!0),e()):this.isOldHls()?(this.hlsDecoder||(this.hlsDecoder=new VA(this),this.loaded=!0),e()):this.isWebrtcH264()?(this.webrtc||(this._opt.isWebrtcForZLM?this.webrtc=new wc(this):this._opt.isWebrtcForSRS?this.webrtc=new Bc(this):this._opt.isWebrtcForOthers?this.webrtc=new Dc(this):this.webrtc=new Ic(this),this.loaded=!0),e()):this.isAliyunRtc()?(this.aliyunRtcDecoder||(this.aliyunRtcDecoder=new bc(this),this.loaded=!0),e()):(this.demux||this._opt.hasVideo&&!this.isUseWorkerDemuxAndDecode&&(this.demux=new uA(this)),this._opt.useWCS&&(this.webcodecsDecoder||(this.webcodecsDecoder=new IA(this))),this._opt.useMSE&&po(this._opt.mseDecoderUseWorker)&&(this.mseDecoder||(this.mseDecoder=new NA(this))),this.isUseHls265()&&(this.hlsDecoder||(this.hlsDecoder=new Cc(this))),this.isWebrtcH265()&&(this.webrtc||(this.webrtc=new Ic(this))),this.decoderWorker?this.loaded?e():this.once(yt.decoderWorkerInit,(()=>{this.isDestroyedOrClosed()?(this.debug.error(this.TAG_NAME,"init() failed and player is destroyed"),t("init() failed and player is destroyed")):(this.loaded=!0,e())})):eo(this._opt)?e():(this.decoderWorker=new ul(this),this.once(yt.decoderWorkerInit,(()=>{this.isDestroyedOrClosed()?(this.debug.error(this.TAG_NAME,"init() failed and player is destroyed"),t("init() failed and player is destroyed")):(this.loaded=!0,e())}))))}))}play(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((i,r)=>{if(!e&&!this._opt.url)return r("url is empty");this._closed=!1,this.loading=!0,this.playing=!1,this._times.playInitStart=la(),e||(e=this._opt.url),this._opt.url=e,this.control&&this._opt.loadingBackground&&this.control.initLoadingBackground(),this.init().then((()=>{this.debug.log(this.TAG_NAME,"play() init and next fetch stream"),this._times.playStart=la(),this._opt.isNotMute&&this.mute(!1),this.enableWakeLock(),this.checkLoadingTimeout(),this.stream?(this.stream.once(It.fetchError,(e=>{this.emitError(It.fetchError,e)})),this.stream.once(It.websocketError,(e=>{this.emitError(It.websocketError,e)})),this.stream.once(yt.streamEnd,(e=>{this.emit(yt.streamEnd,e)})),this.stream.once(It.hlsError,(e=>{this.emitError(It.hlsError,e)})),this.stream.once(It.webrtcError,(e=>{this.emitError(It.webrtcError,e)})),this.stream.once(yt.streamSuccess,(()=>{i(),this._times.streamResponse=la(),this.video&&this.video.play(),this.checkStatsInterval(),this.isPlayback()&&this.playback&&this.playback.startCheckStatsInterval()})),this.stream.fetchStream(e,t)):(this.debug.warn(this.TAG_NAME,`play() this.stream is null and is isDestroyedOrClosed is ${this.isDestroyedOrClosed()}`),r("this.stream is null"))})).catch((e=>{r(e)}))}))}playForControl(){return new Promise(((e,t)=>{this.debug.log(this.TAG_NAME,`playForControl() and pauseAndNextPlayUseLastFrameShow is ${this._opt.pauseAndNextPlayUseLastFrameShow}`),this._opt.pauseAndNextPlayUseLastFrameShow&&this._tempInnerPlayBgobj&&this._tempInnerPlayBgobj.loadingBackground&&this.updateOption({loadingBackground:this._tempInnerPlayBgobj.loadingBackground,loadingBackgroundWidth:this._tempInnerPlayBgobj.loadingBackgroundWidth,loadingBackgroundHeight:this._tempInnerPlayBgobj.loadingBackgroundHeight}),this.play().then((t=>{e(t)})).catch((e=>{t(e)}))}))}close(){return new Promise(((e,t)=>{this._close().then((()=>{this.video&&this.video.clearView(),e()})).catch((e=>{t(e)}))}))}resumeAudioAfterPause(){this.lastVolume&&po(this._isMute)&&(this.volume=this.lastVolume)}async _close(){this._closed=!0,this.video&&(this.video.resetInit(),this.video.pause(!0)),this.loading=!1,this.recording=!1,this.zooming=!1,this.playing=!1,this.clearCheckLoadingTimeout(),this.clearStatsInterval(),this.isPlayback()&&this.playback&&this.playback.clearStatsInterval(),this.releaseWakeLock(),this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this.decoderWorker&&(await this.decoderWorker.destroy(),this.decoderWorker=null),this.stream&&(await this.stream.destroy(),this.stream=null),this.demux&&(this.demux.destroy(),this.demux=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.hlsDecoder&&(await this.hlsDecoder.destroy(),this.hlsDecoder=null),this.mp4Decoder&&(this.mp4Decoder.destroy(),this.mp4Decoder=null),this.wsRtcDecoder&&(this.wsRtcDecoder.destroy(),this.wsRtcDecoder=null),this.webrtc&&(this.webrtc.destroy(),this.webrtc=null),this.aliyunRtcDecoder&&(this.aliyunRtcDecoder.destroy(),this.aliyunRtcDecoder=null),this.audio&&(this.audio.destroy(),this.audio=null)}pause(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return new Promise(((t,i)=>{e?this.close().then((()=>{t()})).catch((e=>{i(e)})):this._close().then((()=>{t()})).catch((e=>{i(e)}))}))}pauseForControl(){return new Promise(((e,t)=>{if(this.debug.log(this.TAG_NAME,"_pauseInner()"),this._opt.pauseAndNextPlayUseLastFrameShow&&this.video){const e=this.video.screenshot("","png",.92,"base64");if(e){const t=this.getVideoInfo();t?(this.debug.log(this.TAG_NAME,`pauseForControl() and loadingBackground width is ${t.width} and height is ${t.height}`),this._tempInnerPlayBgobj={loadingBackground:e,loadingBackgroundWidth:t.width,loadingBackgroundHeight:t.height}):this.debug.warn(this.TAG_NAME,"pauseForControl() and videoInfo is null")}else this.debug.warn(this.TAG_NAME,"pauseForControl() and loadingBackground is null")}this.pause().then((t=>{e(t)})).catch((e=>{t(e)}))}))}isAudioMute(){let e=!0;return this.audio&&(e=this.audio.isMute),e}isAudioNotMute(){return!this.isAudioMute()}mute(e){this.audio&&this.audio.mute(e)}resize(){this.video&&this.video.resize()}startRecord(e,t){this.recording||(this.recorder.setFileName(e,t),this.recording=!0)}stopRecordAndSave(e,t){return new Promise(((i,r)=>{this.recorder||r("recorder is null"),this.recording?(this._opt.useWasm&&this.decoderWorker&&this.decoderWorker.updateWorkConfig({key:"isRecording",value:!1}),this.recorder.stopRecordAndSave(e,t).then((e=>{i(e)})).catch((e=>{r(e)}))):r("recorder is not recording")}))}_hasControl(){let e=!1,t=!1;return Object.keys(this._opt.operateBtns).forEach((e=>{this._opt.operateBtns[e]&&-1===(""+e).indexOf("Fn")&&(t=!0)})),(this._opt.showBandwidth||t)&&(e=!0),this._opt.extendOperateBtns&&this._opt.extendOperateBtns.length>0&&(e=!0),this.isPlayback()&&this._opt.playbackConfig.showControl&&(e=!0),e}useWasmDecode(){return po(this._opt.useMSE)&&po(this._opt.useWCS)}canVideoTrackWritter(){const e=this._opt;return!this.isOldHls()&&!this.isWebrtcH264()&&po(e.useMSE)&&!this.isAliyunRtc()&&(e.useWCS&&po(e.useOffscreen)&&e.wcsUseVideoRender||this.useWasmDecode())}checkHeartTimeout$2(){if(po(this.playbackPause)&&this.playing){if(this.isDestroyedOrClosed())return void(this.debug&&this.debug.warn(this.TAG_NAME,"checkHeartTimeout$2 but player is destroyed"));if(po(this.isHistoryFpsListAllZero()))return void(this.debug&&this.debug.warn(this.TAG_NAME,"checkHeartTimeout$2 but fps is not all zero"));if(0!==this._stats.fps)return void(this.debug&&this.debug.warn(this.TAG_NAME,`checkHeartTimeout$2 but fps is ${this._stats.fps}`));if(po(this.visibility)&&0!==this._stats.vbps)return void(this.debug&&this.debug.warn(this.TAG_NAME,`checkHeartTimeout$2 but page is not visibility and vbps is ${this._stats.vbps}`));const e=this._historyFpsList.join(",");this.debug.warn(this.TAG_NAME,`checkHeartTimeout$2 and\n pause and emit delayTimeout event and\n current vbps is ${this._stats.vbps} and\n current fps is ${this._stats.fps} and\n history FpsList is ${e} and\n current visibility is ${this.visibility} and`),this.emit(yt.timeout,yt.delayTimeout),this.emit(yt.delayTimeout)}else this.debug.log(this.TAG_NAME,`checkHeartTimeout$2 playbackPause is ${this.playbackPause}, playing is ${this.playing}`)}checkStatsInterval(){this._checkStatsInterval=setInterval((()=>{this.updateStats()}),1e3)}checkLoadingTimeout(){this._checkLoadingTimeout=setTimeout((()=>{this.playing?this.debug.warn(this.TAG_NAME,`checkLoadingTimeout but loading is ${this.loading} and playing is ${this.playing}`):this.isDestroyedOrClosed()?this.debug&&this.debug.warn(this.TAG_NAME,"checkLoadingTimeout but player is destroyed"):(this.debug.warn(this.TAG_NAME,"checkLoadingTimeout and pause and emit loadingTimeout event"),this.emit(yt.timeout,yt.loadingTimeout),this.emit(yt.loadingTimeout))}),1e3*this._opt.loadingTimeout)}clearCheckLoadingTimeout(){this._checkLoadingTimeout&&(this.debug.log(this.TAG_NAME,"clearCheckLoadingTimeout"),clearTimeout(this._checkLoadingTimeout),this._checkLoadingTimeout=null)}clearStatsInterval(){this._checkStatsInterval&&(clearInterval(this._checkStatsInterval),this._checkStatsInterval=null)}handleRender(){this.isDestroyedOrClosed()?this.debug&&this.debug.warn(this.TAG_NAME,"handleRender but player is destroyed"):(this.loading&&(this.clearCheckLoadingTimeout(),this.loading=!1,this.emit(yt.start)),this.playing||(this.playing=!0))}resetPlayerH265(){this.emit(yt.supportHlsH265)}updateStats(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this._startBpsTime||(this._startBpsTime=la()),La(e.ts)){const t=parseInt(e.ts,10);this._stats.ts=t,null===this._playingStartTimestamp&&t>0&&(this._playingStartTimestamp=t)}La(e.dts)&&(this._stats.dts=parseInt(e.dts,10)),La(e.mseTs)&&(this._stats.mseTs=e.mseTs),La(e.buf)&&(this._stats.buf=e.buf),La(e.netBuf)&&(this._stats.netBuf=e.netBuf),La(e.currentPts)&&(this._stats.currentPts=e.currentPts),e.fps&&(this._stats.fps+=1),e.dfps&&(this._stats.dfps+=1),e.abps&&(this._stats.abps+=e.abps),e.vbps&&(this._stats.vbps+=e.vbps),e.workerStats&&(this._tempWorkerStats=e.workerStats),e.isDropping&&(this._stats.isDropping=e.isDropping),e.mseVideoBufferDelayTime&&(this._stats.mseVideoBufferDelayTime=parseInt(1e3*e.mseVideoBufferDelayTime,10));const t=la();if(t-this._startBpsTime<1e3)return;null!==this._playingStartTimestamp&&this._stats.fps>0&&(this._stats.pTs+=1);let i=0,r=0,s=0,a=0,o=0;this._opt.useMSE&&(this.mseDecoder?(i=this.mseDecoder.checkSourceBufferDelay(),i=parseInt(1e3*i,10),r=this.mseDecoder.checkSourceBufferStore(),r=r.toFixed(2),s=this.mseDecoder.getDecodeDiffTimes(),a=this.mseDecoder.getDecodePlaybackRate(),o=this.mseDecoder.getPendingSegmentsLength()):this.isMseDecoderUseWorker()&&(i=this.video.checkSourceBufferDelay(),i=parseInt(1e3*i,10),r=this.video.checkSourceBufferStore(),r=r.toFixed(2),a=this.video.getDecodePlaybackRate())),this._opt.useWCS&&this.webcodecsDecoder&&(s=this.webcodecsDecoder.getDecodeDiffTimes()),this.isOldHls()&&this.hlsDecoder&&(i=this.hlsDecoder.checkHlsBufferedDelay(),i=parseInt(1e3*i,10)),this.isWsRtc()&&this.wsRtcDecoder,this.isMp4()&&this.mp4Decoder;let n=0,l=0,h=0;this.isUseHls265()&&this.hlsDecoder&&(i=this.hlsDecoder.checkHlsBufferedDelay(),i=i.toFixed(2),n=this.hlsDecoder.getDemuxBufferedListLength(),h=this.hlsDecoder.getDemuxVideoBufferedListLength(),l=this.hlsDecoder.getDemuxAudioBufferedListLength());let A=0,d=0,c=0,u=!1,p=0;this._opt.useWasm||this._opt.demuxUseWorker?this._tempWorkerStats&&(d=this._tempWorkerStats.demuxBufferDelay,c=this._tempWorkerStats.audioDemuxBufferDelay,A=this._tempWorkerStats.streamBufferByteLength,this._stats.netBuf=this._tempWorkerStats.netBuf,p=this._tempWorkerStats.pushLatestDelay,u=this._tempWorkerStats.isStreamTsMoreThanLocal,this._stats.buf=this._tempWorkerStats.latestDelay):this.demux&&(A=this.demux.getInputByteLength(),p=this.demux.getPushLatestDelay(),u=this.demux.getIsStreamTsMoreThanLocal(),this.demux.bufferList&&(d=this.demux.bufferList.length));let g=0,m=0;this.audio&&this.audio.bufferList&&(g=this.audio.bufferList.length,m=parseInt(g*this.audio.oneBufferDuration,10));let y=0,E=0;if(this.isPlayback()&&this.video){this._opt.playbackConfig.isUseFpsRender&&(y=this.video.bufferList&&this.video.bufferList.length||0);let e=this.video.getStreamFps();const t=e>0?1e3/e:0;E=parseInt(t*y+t*d,10)}let C=0;this.videoTimestamp>0&&(C=this._stats.dts-this.videoTimestamp);const f=C+this._stats.netBuf;this.isOldHls()&&(this._stats.fps=this.hlsDecoder.getFps()),this.isMp4()||this.isWsRtc(),this._stats.fps>this._stats.maxFps&&(this._stats.maxFps=this._stats.fps);let I=this.getVideoCurrentTime();const w=this._stats.videoCurrentTime;let S=-1;w&&I&&(S=(I-w).toFixed(2),I=I.toFixed(2));let M=0;this.audioTimestamp>0&&(M=this.audioTimestamp-this.getRenderCurrentPts()),this._allStatsData=Object.assign(this._stats,{audioBuffer:g,audioBufferDelayTs:m,audioTs:this.audioTimestamp,latestAudioTs:this.latestAudioTimestamp,playbackVideoBuffer:y,playbackVideoWaitingBuffer:0,playbackAudioWaitingBuffer:0,playbackCacheDataDuration:E,demuxBuffer:d,pushLatestDelay:p,audioDemuxBuffer:c,streamBuffer:A,mseDelay:i,mseStore:r,mseDecodeDiffTimes:s,mseDecodePlaybackRate:a,msePendingBuffer:o,wcsDecodeDiffTimes:s,hlsDelay:i,hlsDemuxLength:n,hlsDemuxAudioLength:l,hlsDemuxVideoLength:h,delayTs:C,totalDelayTs:f,isStreamTsMoreThanLocal:u,videoCurrentTime:I,videoCurrentTimeDiff:S,audioSyncVideo:M});let v=null,k=null,B="";if(this.isPlayer()&&this._opt.hasVideo&&this.playing){v=function(e,t){let i=3;const r=t||25;return e<.33*r?i=0:e<.5*r?i=1:e<.83*r&&(i=2),i}(this._stats.fps,this._flvMetaDataFps),this._allStatsData.performance=v;const e=this.checkVideoSmooth(this._allStatsData);B=e.reason,k=e.result,this._allStatsData.videoSmooth=k}this.emit(yt.stats,this._allStatsData),this._allStatsData.streamBuffer>this._opt.flvDemuxBufferSizeMaxLarge&&this.getDemuxType()===Q&&this.emit(It.flvDemuxBufferSizeTooLarge,this._allStatsData.streamBuffer),this._opt.hasVideo?(this.updateHistoryFpsList(this._stats.fps,this._stats.videoCurrentTimeDiff),La(v)&&this.emit(yt.performance,v),La(k)&&this.emit(yt.videoSmooth,k,B)):this._opt.hasAudio&&this.updateHistoryFpsList(this._stats.abps,0),this._stats.fps=0,this._stats.dfps=0,this._stats.abps=0,this._stats.vbps=0,this._stats.isDropping=!1,this._startBpsTime=t}resetStats(){this._startBpsTime=null,this._playingStartTimestamp=null,this._historyFpsList=[],this._historyVideoDiffList=[],this._stats={buf:0,netBuf:0,fps:0,maxFps:0,dfps:0,abps:0,vbps:0,ts:0,mseTs:0,currentPts:0,pTs:0,dts:0,mseVideoBufferDelayTime:0,isDropping:!1},this._allStatsData={}}checkVideoSmooth(e){let t=!0,i="";if(this._opt.videoBuffer,this._opt.videoBufferDelay,this.isWebrtcH264()||this.isOldHls())return{result:t,reason:i};if(0===e.vbps&&po(this._opt.isHls)&&(i="vbpsIsZero",this.debug.log(this.TAG_NAME,`checkVideoSmooth false because ${i}`),t=!1),t&&e.isDropping&&(i="isDroppingIsTrue",this.debug.log(this.TAG_NAME,`checkVideoSmooth false because ${i}`),t=!1),t&&this.visibility&&this._historyFpsList.length>=this._opt.heartTimeout){const r=function(e){const t=Math.max(...e),i=Math.min(...e);return e.filter((e=>e!==t&&e!==i))}(this._historyFpsList),s=r.reduce(((e,t)=>e+t),0)/r.length,a=.83*s;e.fps<a&&(i="fpsIsLow",this.debug.log(this.TAG_NAME,`checkVideoSmooth false because fps is ${e.fps} < min fix is ${a} and avgFps is ${s}`),t=!1)}return t&&this.visibility&&this._opt.useMSE&&(e.videoCurrentTimeDiff>=1.5||e.videoCurrentTimeDiff<=.5)&&-1!==e.videoCurrentTimeDiff&&(i="videoCurrentTimeDiffIsNotNormal",this.debug.log(this.TAG_NAME,`checkVideoSmooth false because videoCurrentTimeDiff is ${e.videoCurrentTimeDiff}`),t=!1),{result:t,reason:i}}enableWakeLock(){this._opt.keepScreenOn&&this.keepScreenOn&&this.keepScreenOn.enable()}releaseWakeLock(){this._opt.keepScreenOn&&this.keepScreenOn&&this.keepScreenOn.disable()}clearBufferDelay(){this._opt.useWasm?this.decoderWorker&&this.decoderWorker.clearWorkBuffer(!0):this.demux&&this.demux.clearBuffer(!0)}doDestroy(){this.emit(yt.beforeDestroy)}setMessage(e){this._playerMessage.push(e);let t="";this._playerMessage.forEach((e=>{t+=`<div>${e.msg}</div>`})),this._playerMessageTime&&(clearTimeout(this._playerMessageTime),this._playerMessageTime=null),this._playerMessageTimeout&&(clearTimeout(this._playerMessageTimeout),this._playerMessageTimeout=null),this.control.$messageContent.style.zIndex=10,this.control.$messageContent.style.opacity=1,this.control.$messageContent.innerHTML=t,this._playerMessageTime=setTimeout((()=>{this.control.$messageContent.style.opacity=0,this._playerMessageTimeout=setTimeout((()=>{this.control.$messageContent.style.zIndex=-1}),1e3)}),1e3*this._opt.messageTime)}clearMessage(){this._playerMessage=[]}startVoice(){this.wsRtcDecoder&&this.wsRtcDecoder.startVoice()}pauseVoice(){this.wsRtcDecoder&&this.wsRtcDecoder.pauseVoice()}removeVoice(){this.wsRtcDecoder&&this.wsRtcDecoder.removeVoice()}handlePlayToRenderTimes(){if(this.isDestroyedOrClosed())return void this.debug.log(this.TAG_NAME,"handlePlayToRenderTimes but player is closed or destroyed");const e=this.getPlayToRenderTimes();this.emit(yt.playToRenderTimes,e)}getPlayToRenderTimes(){const e=this._times;return e.playTimestamp=e.playStart-e.playInitStart,e.streamTimestamp=e.streamStart-e.playStart,e.streamResponseTimestamp=e.streamResponse-e.streamStart>0?e.streamResponse-e.streamStart:0,e.demuxTimestamp=e.demuxStart-e.streamResponse>0?e.demuxStart-e.streamResponse:0,e.decodeTimestamp=e.decodeStart-e.demuxStart>0?e.decodeStart-e.demuxStart:0,e.videoTimestamp=e.videoStart-e.decodeStart,e.allTimestamp=e.videoStart-e.playInitStart,e}getOption(){return this._opt}getPlayType(){return this._opt.playType}isPlayer(){return this._opt.playType===S}isPlayback(){return this._opt.playType===v}isDemuxSetCodecInit(){let e=!0,t=this._opt;return t.useWCS&&!t.useOffscreen?e=!!this.webcodecsDecoder&&this.webcodecsDecoder.hasInit:t.useMSE&&(e=!!this.mseDecoder&&this.mseDecoder.hasInit),e}isDemuxDecodeFirstIIframeInit(){let e=!0,t=this._opt;return t.useWCS&&!t.useOffscreen?e=!!this.webcodecsDecoder&&this.webcodecsDecoder.isDecodeFirstIIframe:t.useMSE&&(e=!!this.mseDecoder&&this.mseDecoder.isDecodeFirstIIframe),e}isAudioPlaybackRateSpeed(){let e=!1;return this.audio&&(e=this.audio.isPlaybackRateSpeed()),e}getPlayingTimestamp(){return this._stats.pTs}getRecordingType(){let e=null;return this.recorder&&(e=this.recorder.getType()),e}getRecordingByteLength(){let e=0;return this.recording&&(e=this.recorder.getToTalByteLength()),e}getRecordingDuration(){let e=0;return this.recording&&(e=this.recorder.getTotalDuration()),e}getDecodeType(){let e="";const t=this.getOption();return this.isWebrtcH264()?V:this.isAliyunRtc()?$:this.isOldHls()?H:this.isMp4()?X:this.isWsRtc()?_:(t.useMSE&&(e+=N+" ",t.mseDecoderUseWorker&&(e+="worker")),t.useWCS&&(e+=P+" "),t.useWasm&&(e+=z+" ",t.useSIMD&&(e+=W+" "),t.useMThreading&&(e+=Z+" ")),t.useOffscreen&&(e+=j+" "),e)}getDemuxType(){return this._opt.demuxType}getRenderType(){let e="";return this.video&&(e=this.video.getType()),e}getCanvasRenderType(){let e="";return this.video&&(e=this.video.getCanvasType()),e}getAudioEngineType(){let e="";return this.audio&&(e=this.audio.getEngineType()),e}getStreamType(){let e="";return this.stream&&(e=this.stream.getStreamType()),e}getAllStatsData(){return this._allStatsData}isFlvDemux(){return this._opt.demuxType===Q}isM7SDemux(){return this._opt.demuxType===R}isNakedFlowDemux(){return this._opt.demuxType===x}isMpeg4Demux(){return this._opt.demuxType===U}isTsDemux(){return this._opt.demuxType===O}isFmp4Demux(){return this._opt.demuxType===F}togglePerformancePanel(e){this.updateOption({showPerformance:e}),this.emit(yt.togglePerformancePanel,e)}setScaleMode(e){let t={isFullResize:!1,isResize:!1,aspectRatio:"default"};switch(e=Number(e)){case Ht:t.isFullResize=!1,t.isResize=!1;break;case Xt:t.isFullResize=!1,t.isResize=!0;break;case _t:t.isFullResize=!0,t.isResize=!0}this.updateOption(t),this.resize(),this.emit(yt.viewResizeChange,e)}startVisibilityHiddenTimeout(){this.clearVisibilityHiddenTimeout(),this._opt.pageVisibilityHiddenTimeout>0&&(this.visibilityHiddenTimeout=setTimeout((()=>{this.emit(yt.visibilityHiddenTimeout)}),1e3*this._opt.pageVisibilityHiddenTimeout))}clearVisibilityHiddenTimeout(){this._checkVisibleHiddenTimeout&&(clearTimeout(this._checkVisibleHiddenTimeout),this._checkVisibleHiddenTimeout=null)}faceDetect(e){this.faceDetectActive=e,po(e)&&this.video&&this.video.addAiContentToCanvas([])}objectDetect(e){this.objectDetectActive=e,po(e)&&this.video&&this.video.addAiContentToCanvas([])}occlusionDetect(e){this.occlusionDetectActive=e}downloadNakedFlowFile(){this.demux&&this.demux.downloadNakedFlowFile&&this.demux.downloadNakedFlowFile()}downloadFmp4File(){this.demux&&this.demux.downloadFmp4File&&this.demux.downloadFmp4File()}downloadMpeg4File(){const e=new Blob([this._tempStreamList]);try{const t=document.createElement("a");t.href=window.URL.createObjectURL(e),t.download=Date.now()+".mpeg4",t.click(),window.URL.revokeObjectURL(t.href)}catch(e){console.error("downloadMpeg4File",e)}}hasCacheOnGopBuffer(){const e=this.videoIframeIntervalTs,t=this._allStatsData.demuxBuffer,i=this._allStatsData.maxFps;let r=!1;if(e&&t&&i){r=1e3/i*t>e}return r}addContentToCanvas(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.video&&this.video.addContentToCanvas(e)}addContentToContainer(){}sendWebsocketMessage(e){const t=this.getStreamType();t===m||t===C+" "+m?this.stream.sendMessage(e):this.debug.warn(this.TAG_NAME,`sendWebsocketMessage: stream type is not websocket, current stream type is ${this.getStreamType()}`)}checkIsInRender(){const e=this._stats;return e.vbps>0&&e.fps>0}setControlHtml(e){this.control&&this.control.$controlHtml&&(this.control.$controlHtml.innerHTML=e)}clearControlHtml(){this.control&&this.control.$controlHtml&&(this.control.$controlHtml.innerHTML="")}updateWatermark(e){this.singleWatermark&&this.singleWatermark.update(e)}removeWatermark(){this.singleWatermark&&this.singleWatermark.remove()}getVideoInfo(){let e=null;return this.video&&(e=this.video.getVideoInfo()),e}getAudioInfo(){let e=null;return this.audio&&(e=this.audio.getAudioInfo()),e}getVideoPlaybackQuality(){let e=null;return this.video&&(e=this.video.getPlaybackQuality()),e}emitError(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";this.emit(yt.error,e,t),this.emit(e,t)}updateHistoryFpsList(e,t){this.playbackPause||(this._historyFpsList.length>this._opt.heartTimeout&&(this._historyFpsList.shift(),this._historyVideoDiffList.shift()),this._historyFpsList.push(e),this._historyVideoDiffList.push(t),this.isHistoryFpsListAllZero()&&this.checkHeartTimeout$2())}isHistoryFpsListAllZero(){let e=!0;if(this._historyFpsList.length<this._opt.heartTimeout&&(e=!1),e)for(let t=0;t<this._historyFpsList.length;t++)if(this._historyFpsList[t]>0){e=!1;break}if(e)for(let t=0;t<this._historyVideoDiffList.length;t++)if(this._historyVideoDiffList[t]>0){e=!1;break}return e}isUseHls265(){return uo(this._opt.isHls)&&uo(this._opt.supportHls265)}isHls(){return uo(this._opt.isHls)}isOldHls(){return uo(this._opt.isHls)&&po(this._opt.supportHls265)}isMp4(){return uo(this._opt.isMp4)}isWsRtc(){return uo(this._opt.isWsRtc)}isWebrtcNotH265(){return uo(this._opt.isWebrtc)&&po(this._opt.isWebrtcH265)}isWebrtcH264(){return uo(this._opt.isWebrtc)&&po(this._opt.isWebrtcH265)}isWebrtcH265(){return uo(this._opt.isWebrtc)&&uo(this._opt.isWebrtcH265)}isAliyunRtc(){return uo(this._opt.isAliyunRtc)}isUseHls265UseMse(){return this.isUseHls265()&&this.isUseMSE()}isStreamWebTransport(){return this.getStreamType()===E}isPlaybackCacheBeforeDecodeForFpsRender(){return this.isPlayback()&&uo(this._opt.playbackConfig.isCacheBeforeDecodeForFpsRender)&&uo(this._opt.useWCS)}isPlaybackUseWCS(){return this.isPlayback()&&uo(this._opt.useWCS)}isPlaybackUseMSE(){return this.isPlayback()&&uo(this._opt.useMSE)}isPlayUseMSE(){return this.isPlayer()&&uo(this._opt.useMSE)}isInWebFullscreen(){return this._opt.useWebFullScreen&&pa()&&this.fullscreen}getPlaybackRate(){let e=1;return uo(this.isPlayback())&&this.playback&&(e=this.playback.rate),e}isPlaybackOnlyDecodeIFrame(){return uo(this.isPlayback())&&this.getPlaybackRate()>=this._opt.playbackForwardMaxRateDecodeIFrame}pushTempStream(e){const t=new Uint8Array(e);this._tempStreamList.push(t)}updateLoadingText(e){this.loading&&this.control&&this.control.updateLoadingText(e)}getVideoCurrentTime(){let e=0;return this.video&&(this._opt.useMSE?this.mseDecoder?e=this.mseDecoder.getVideoCurrentTime():this.isMseDecoderUseWorker()&&(e=this.video.getVideoCurrentTime()):this.isWebrtcH264()&&this.webrtc?e=this.webrtc.getVideoCurrentTime():this.isAliyunRtc()&&this.aliyunRtcDecoder&&(e=this.aliyunRtcDecoder.getVideoCurrentTime())),e}addMemoryLog(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];this.emit(yt.memoryLog,` [${e}] `,...i)}downloadMemoryLog(){this.emit(yt.downloadMemoryLog)}isInMulti(){return-1!==this._opt.multiIndex}isWebrtcForM7S(){return po(this._opt.isWebrtcForZLM)&&po(this._opt.isWebrtcForSRS)&&po(this._opt.isWebrtcForOthers)}updateMetaData(e){if(this.debug.log(this.TAG_NAME,"updateMetaData",JSON.stringify(e)),this._flvMetaData=e,this._flvMetaData){const e=this._flvMetaData;if(va(e.framerate)){const t=Math.floor(1e3*e.framerate);if(t>0){const e=t/1e3;this._flvMetaDataFps=e}}Ta(e.hasAudio)&&po(e.hasAudio)&&(this.debug.log("updateMetaData","hasAudio",e.hasAudio,"and update _opt.hasAudio"),this._opt.hasAudio=e.hasAudio),Ta(e.hasVideo)&&po(e.hasVideo)&&(this.debug.log("updateMetaData","hasVideo",e.hasVideo,"and update _opt.hasVideo"),this._opt.hasVideo=e.hasVideo)}this.emit(yt.flvMetaData,e)}getMetaData(){return this._flvMetaData}getExtendBtnList(){return this.control.getExtendBtnList().map((e=>({name:e.name,$container:e.$iconContainer,$btn:e.$iconWrap,$activeBtn:e.$activeIconWrap})))}getCpuLevel(){let e=null;return this.pressureObserverCpu&&(e=this.pressureObserverCpu.getCurrentCpuState()),e}isRecordTypeFlv(){return this.recorder&&this._opt.recordType===D}isRecordTypeMp4(){return this.recorder&&this._opt.recordType===k}isRecordTypeWebm(){return this.recorder&&this._opt.recordType===B}isDemuxInWorker(){return this._opt.useWasm||this._opt.demuxUseWorker}isUseMSE(){return uo(this._opt.useMSE)}isUseWCS(){return uo(this._opt.useWCS)}isUseWASM(){return uo(this._opt.useWasm)}isMseDecoderUseWorker(){return this.isUseMSE()&&uo(this._opt.mseDecoderUseWorker)}getAudioSyncVideoDiff(){return this.audioTimestamp-this.getRenderCurrentPts()}getMseVideoBufferDelayTime(){let e=0;return this._opt.useMSE&&this.mseDecoder&&(this.mseDecoder?e=this.mseDecoder.getVideoBufferDelayTime():this.isMseDecoderUseWorker()&&(e=this.video.getVideoBufferDelayTime()),e=parseInt(1e3*e,10)),e}updateCurrentPts(e){this.updateStats({currentPts:e}),this.emit(yt.currentPts,e)}getRenderCurrentPts(){let e=0;return e=this._stats.currentPts?this._stats.currentPts:this.videoTimestamp-this.getMseVideoBufferDelayTime(),e}openSyncAudioAndVideo(){return this._opt.syncAudioAndVideo&&this._opt.hasVideo}showTipsMessageByCode(e){if(this.control){const t=this._opt.showMessageConfig[e]||"未知异常";this.control.showTipsMessage(t,e)}}showTipsMessageByContent(e){this.control&&e&&this.control.showTipsMessage(e)}hideTipsMessage(){this.control&&this.control.hideTipsMessage()}decoderCheckFirstIFrame(){uo(this._opt.checkFirstIFrame)&&(this.mseDecoder?this.mseDecoder.isDecodeFirstIIframe=!1:this.webcodecsDecoder&&(this.webcodecsDecoder.isDecodeFirstIIframe=!1))}isHlsCanVideoPlay(){return this._canPlayAppleMpegurl&&this.isOldHls()}setPtzPosition(e){this.control&&this.control.updatePtzPosition(e)}setPlayFailedAndPaused(){this.isPlayFailedAndPaused=!0}}class Lc{constructor(e){const{fromSampleRate:t,toSampleRate:i,channels:r,inputBufferSize:s}=e;if(!t||!i||!r)throw new Error("Invalid settings specified for the resampler.");this.resampler=null,this.fromSampleRate=t,this.toSampleRate=i,this.channels=r||0,this.inputBufferSize=s,this.initialize()}initialize(){this.fromSampleRate==this.toSampleRate?(this.resampler=e=>e,this.ratioWeight=1):(this.fromSampleRate<this.toSampleRate?(this.linearInterpolation(),this.lastWeight=1):(this.multiTap(),this.tailExists=!1,this.lastWeight=0),this.initializeBuffers(),this.ratioWeight=this.fromSampleRate/this.toSampleRate)}bufferSlice(e){try{return this.outputBuffer.subarray(0,e)}catch(t){try{return this.outputBuffer.length=e,this.outputBuffer}catch(t){return this.outputBuffer.slice(0,e)}}}initializeBuffers(){this.outputBufferSize=Math.ceil(this.inputBufferSize*this.toSampleRate/this.fromSampleRate/this.channels*1.0000004768371582)+this.channels+this.channels;try{this.outputBuffer=new Float32Array(this.outputBufferSize),this.lastOutput=new Float32Array(this.channels)}catch(e){this.outputBuffer=[],this.lastOutput=[]}}linearInterpolation(){this.resampler=e=>{let t,i,r,s,a,o,n,l,h,A=e.length,d=this.channels;if(A%d!=0)throw new Error("Buffer was of incorrect sample length.");if(A<=0)return[];for(t=this.outputBufferSize,i=this.ratioWeight,r=this.lastWeight,s=0,a=0,o=0,n=0,l=this.outputBuffer;r<1;r+=i)for(a=r%1,s=1-a,this.lastWeight=r%1,h=0;h<this.channels;++h)l[n++]=this.lastOutput[h]*s+e[h]*a;for(r-=1,A-=d,o=Math.floor(r)*d;n<t&&o<A;){for(a=r%1,s=1-a,h=0;h<this.channels;++h)l[n++]=e[o+(h>0?h:0)]*s+e[o+(d+h)]*a;r+=i,o=Math.floor(r)*d}for(h=0;h<d;++h)this.lastOutput[h]=e[o++];return this.bufferSlice(n)}}multiTap(){this.resampler=e=>{let t,i,r,s,a,o,n,l,h,A,d,c=e.length,u=this.channels;if(c%u!=0)throw new Error("Buffer was of incorrect sample length.");if(c<=0)return[];for(t=this.outputBufferSize,i=[],r=this.ratioWeight,s=0,o=0,n=0,l=!this.tailExists,this.tailExists=!1,h=this.outputBuffer,A=0,d=0,a=0;a<u;++a)i[a]=0;do{if(l)for(s=r,a=0;a<u;++a)i[a]=0;else{for(s=this.lastWeight,a=0;a<u;++a)i[a]=this.lastOutput[a];l=!0}for(;s>0&&o<c;){if(n=1+o-d,!(s>=n)){for(a=0;a<u;++a)i[a]+=e[o+(a>0?a:0)]*s;d+=s,s=0;break}for(a=0;a<u;++a)i[a]+=e[o++]*n;d=o,s-=n}if(0!==s){for(this.lastWeight=s,a=0;a<u;++a)this.lastOutput[a]=i[a];this.tailExists=!0;break}for(a=0;a<u;++a)h[A++]=i[a]/r}while(o<c&&A<t);return this.bufferSlice(A)}}resample(e){return this.fromSampleRate==this.toSampleRate?this.ratioWeight=1:(this.fromSampleRate<this.toSampleRate?this.lastWeight=1:(this.tailExists=!1,this.lastWeight=0),this.initializeBuffers(),this.ratioWeight=this.fromSampleRate/this.toSampleRate),this.resampler(e)}}const Kc=15,qc=4,xc=132,Fc=[255,511,1023,2047,4095,8191,16383,32767];function Uc(e,t,i){for(let r=0;r<i;r++)if(e<=t[r])return r;return i}function Gc(e){const t=[];return Array.prototype.slice.call(e).forEach(((e,i)=>{t[i]=function(e){let t,i,r;return e>=0?t=213:(t=85,(e=-e-1)<0&&(e=32767)),i=Uc(e,Fc,8),i>=8?127^t:(r=i<<qc,r|=i<2?e>>4&Kc:e>>i+3&Kc,r^t)}(e)})),t}function Oc(e){const t=[];return Array.prototype.slice.call(e).forEach(((e,i)=>{t[i]=function(e){let t=0;e<0?(e=xc-e,t=127):(e+=xc,t=255);let i=Uc(e,Fc,8);return i>=8?127^t:(i<<4|e>>i+3&15)^t}(e)})),t}class Jc extends ko{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),this._opt={},e&&(this.player=e),this.tag="talk";const i=lo(Kr);this._opt=Object.assign({},i,t),this._opt.sampleRate=parseInt(this._opt.sampleRate,10),this._opt.sampleBitsWidth=parseInt(this._opt.sampleBitsWidth,10),this.audioContext=null,this.gainNode=null,this.recorder=null,this.workletRecorder=null,this.biquadFilter=null,this.userMediaStream=null,this.clearWorkletUrlTimeout=null,this.bufferSize=512,this._opt.audioBufferLength=this.calcAudioBufferLength(),this.audioBufferList=[],this.socket=null,this.socketStatus=wt,this.mediaStreamSource=null,this.heartInterval=null,this.checkGetUserMediaTimeout=null,this.wsUrl=null,this.startTimestamp=0,this.sequenceId=0,this.tempTimestamp=null,this.tempG711BufferList=[],this.tempRtpBufferList=[],this.events=new vo(this),this._initTalk(),this.player||(this.debug=new Ks(this)),this._opt.encType!==Ni&&this._opt.encType!==Pi||8e3===this._opt.sampleRate&&16===this._opt.sampleBitsWidth||this.warn(this.tag,`\n encType is ${this._opt.encType} and sampleBitsWidth is ${this._opt.sampleBitsWidth}, set sampleBitsWidth to ${this._opt.sampleBitsWidth}。\n ${this._opt.encType} only support sampleRate 8000 and sampleBitsWidth 16`),this.log(this.tag,"init",JSON.stringify(this._opt))}destroy(){this.clearWorkletUrlTimeout&&(clearTimeout(this.clearWorkletUrlTimeout),this.clearWorkletUrlTimeout=null),this.userMediaStream&&(this.userMediaStream.getTracks&&this.userMediaStream.getTracks().forEach((e=>{e.stop()})),this.userMediaStream=null),this.mediaStreamSource&&(this.mediaStreamSource.disconnect(),this.mediaStreamSource=null),this.recorder&&(this.recorder.disconnect(),this.recorder.onaudioprocess=null,this.recorder=null),this.biquadFilter&&(this.biquadFilter.disconnect(),this.biquadFilter=null),this.gainNode&&(this.gainNode.disconnect(),this.gainNode=null),this.workletRecorder&&(this.workletRecorder.disconnect(),this.workletRecorder=null),this.socket&&(this.socketStatus===St&&this._sendClose(),this.socket.close(),this.socket=null),this._stopHeartInterval(),this._stopCheckGetUserMediaTimeout(),this.audioContext=null,this.gainNode=null,this.recorder=null,this.audioBufferList=[],this.sequenceId=0,this.wsUrl=null,this.tempTimestamp=null,this.tempRtpBufferList=[],this.tempG711BufferList=[],this.startTimestamp=0,this.log("talk","destroy")}addRtpToBuffer(e){const t=e.length+this.tempRtpBufferList.length,i=new Uint8Array(t);i.set(this.tempRtpBufferList,0),i.set(e,this.tempRtpBufferList.length),this.tempRtpBufferList=i}addG711ToBuffer(e){const t=e.length+this.tempG711BufferList.length,i=new Uint8Array(t);i.set(this.tempG711BufferList,0),i.set(e,this.tempG711BufferList.length),this.tempG711BufferList=i}downloadRtpFile(){const e=new Blob([this.tempRtpBufferList]);try{const t=document.createElement("a");t.href=window.URL.createObjectURL(e),t.download=Date.now()+".rtp",t.click(),window.URL.revokeObjectURL(t.href)}catch(e){console.error("downloadRtpFile",e)}}downloadG711File(){const e=new Blob([this.tempG711BufferList]);try{const t=document.createElement("a");t.href=window.URL.createObjectURL(e),t.download=Date.now()+"."+this._opt.encType,t.click(),window.URL.revokeObjectURL(t.href)}catch(e){console.error("downloadRtpFile",e)}}calcAudioBufferLength(){const{sampleRate:e,sampleBitsWidth:t}=this._opt;return 8*e*.02/8}get socketStatusOpen(){return this.socketStatus===St}log(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this._log("log",...t)}warn(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this._log("warn",...t)}error(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];this._log("error",...t)}_log(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r<t;r++)i[r-1]=arguments[r];this.player?this.player.debug[e](...i):this.debug?this.debug[e](...i):console[e](...i)}_getSequenceId(){return++this.sequenceId}_createWebSocket(){return new Promise(((e,t)=>{const i=this.events.proxy;this.socket=new WebSocket(this.wsUrl),this.socket.binaryType="arraybuffer",this.emit(yt.talkStreamStart),i(this.socket,Dr,(()=>{this.socketStatus=St,this.log(this.tag,"websocket open -> do talk"),this.emit(yt.talkStreamOpen),e(),this._doTalk()})),i(this.socket,Rr,(e=>{this.log(this.tag,"websocket message",e.data)})),i(this.socket,br,(e=>{this.socketStatus=Mt,this.warn(this.tag,"websocket close -> reject",e),this.emit(yt.talkStreamClose),t(e)})),i(this.socket,Qr,(e=>{this.socketStatus=vt,this.error(this.tag,"websocket error -> reject",e),this.emit(yt.talkStreamError,e),t(e)}))}))}_sendClose(){}_initTalk(){this._initMethods(),this._opt.engine===Tr?this._initWorklet():this._opt.engine===Lr&&this._initScriptProcessor(),this.log(this.tag,"audioContext samplerate",this.audioContext.sampleRate)}_initMethods(){this.audioContext=new(window.AudioContext||window.webkitAudioContext)({sampleRate:48e3}),this.gainNode=this.audioContext.createGain(),this.gainNode.gain.value=1,this.biquadFilter=this.audioContext.createBiquadFilter(),this.biquadFilter.type="lowpass",this.biquadFilter.frequency.value=3e3,this.resampler=new Lc({fromSampleRate:this.audioContext.sampleRate,toSampleRate:this._opt.sampleRate,channels:this._opt.numberChannels,inputBufferSize:this.bufferSize})}_initScriptProcessor(){const e=this.audioContext.createScriptProcessor||this.audioContext.createJavaScriptNode;this.recorder=e.apply(this.audioContext,[this.bufferSize,this._opt.numberChannels,this._opt.numberChannels]),this.recorder.onaudioprocess=e=>this._onaudioprocess(e)}_initWorklet(){const e=to((function(){class e extends AudioWorkletProcessor{constructor(e){super(),this._cursor=0,this._bufferSize=e.processorOptions.bufferSize,this._buffer=new Float32Array(this._bufferSize)}process(e,t,i){if(!e.length||!e[0].length)return!0;for(let t=0;t<e[0][0].length;t++)this._cursor+=1,this._cursor===this._bufferSize&&(this._cursor=0,this.port.postMessage({eventType:"data",buffer:this._buffer})),this._buffer[this._cursor]=e[0][0][t];return!0}}registerProcessor("talk-processor",e)}));this.audioContext.audioWorklet&&this.audioContext.audioWorklet.addModule(e).then((()=>{const e=new AudioWorkletNode(this.audioContext,"talk-processor",{processorOptions:{bufferSize:this.bufferSize}});e.connect(this.gainNode),e.port.onmessage=e=>{"data"===e.data.eventType&&this._encodeAudioData(e.data.buffer)},this.workletRecorder=e})),this.clearWorkletUrlTimeout=setTimeout((()=>{URL.revokeObjectURL(e),this.clearWorkletUrlTimeout=null}),de)}_onaudioprocess(e){const t=e.inputBuffer.getChannelData(0);this._encodeAudioData(new Float32Array(t))}_encodeAudioData(e){if(0===e[0]&&0===e[1])return void this.log(this.tag,"empty audio data");const t=this.resampler.resample(e);let i=t;if(16===this._opt.sampleBitsWidth?i=function(e){let t=e.length,i=new Int16Array(t);for(;t--;){let r=Math.max(-1,Math.min(1,e[t]));i[t]=r<0?32768*r:32767*r}return i}(t):8===this._opt.sampleBitsWidth&&(i=function(e){let t=e.length,i=new Int8Array(t);for(;t--;){let r=Math.max(-1,Math.min(1,e[t]));const s=r<0?32768*r:32767*r;i[t]=parseInt(255/(65535/(32768+s)),10)}return i}(t)),null!==i.buffer){let e=null;this._opt.encType===Ni?e=Gc(i):this._opt.encType===Pi?e=Oc(i):this._opt.encType===ji&&(e=i);const t=new Uint8Array(e);for(let e=0;e<t.length;e++){let i=this.audioBufferList.length;this.audioBufferList[i++]=t[e],this.audioBufferList.length===this._opt.audioBufferLength&&(this._sendTalkMsg(new Uint8Array(this.audioBufferList)),this.audioBufferList=[])}}}_parseAudioMsg(e){let t=null;return this._opt.packetType!==kr||this._opt.encType!==Ni&&this._opt.encType!==Pi?this._opt.packetType===vr&&(t=e):t=this.rtpPacket(e),t}rtpPacket(e){const t=[];let i=0,r=0,s=0;const a=this._opt.rtpSsrc,o=e.length;this._opt.encType===Ni?i=wr:this._opt.encType===Pi?i=Sr:this._opt.encType===zi&&(i=Mr),this.startTimestamp||(this.startTimestamp=la()),s=la()-this.startTimestamp,r=this._getSequenceId();let n=0;if(this._opt.packetTcpSendType===Br){const e=o+12;t[n++]=255&e>>8,t[n++]=255&e>>0}t[n++]=128,t[n++]=128+i,t[n++]=r/256,t[n++]=r%256,t[n++]=s/65536/256,t[n++]=s/65536%256,t[n++]=s%65536/256,t[n++]=s%65536%256,t[n++]=a/65536/256,t[n++]=a/65536%256,t[n++]=a%65536/256,t[n++]=a%65536%256;let l=t.concat([...e]),h=new Uint8Array(l.length);for(let e=0;e<l.length;e++)h[e]=l[e];return h}opusPacket(e){return e}_sendTalkMsg(e){null===this.tempTimestamp&&(this.tempTimestamp=la());const t=la(),i=t-this.tempTimestamp,r=this._parseAudioMsg(e);this.log(this.tag,`send talk msg and diff is ${i} and byteLength is ${r.byteLength} and length is ${r.length}, and ${this._opt.encType} length is ${e.length}`),uo(this._opt.saveToTempFile)&&uo(this._opt.debug)&&(this._opt.packetType===kr?this.addRtpToBuffer(r):this.addG711ToBuffer(r)),r&&(this.socketStatusOpen?this.socket.send(r.buffer):this.emit(It.tallWebsocketClosedByError)),this.tempTimestamp=t}_doTalk(){this._getUserMedia()}_getUserMedia(){this.log(this.tag,"getUserMedia"),void 0===window.navigator.mediaDevices&&(window.navigator.mediaDevices={}),void 0===window.navigator.mediaDevices.getUserMedia&&(this.log(this.tag,"window.navigator.mediaDevices.getUserMedia is undefined and init function"),window.navigator.mediaDevices.getUserMedia=function(e){var t=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;return t?new Promise((function(i,r){t.call(navigator,e,i,r)})):Promise.reject(new Error("getUserMedia is not implemented in this browser"))}),this._opt.checkGetUserMediaTimeout&&this._startCheckGetUserMediaTimeout(),window.navigator.mediaDevices.getUserMedia({audio:this._opt.audioConstraints,video:!1}).then((e=>{this.log(this.tag,"getUserMedia success"),this.userMediaStream=e,this.mediaStreamSource=this.audioContext.createMediaStreamSource(e),this.mediaStreamSource.connect(this.biquadFilter),this.recorder?(this.biquadFilter.connect(this.recorder),this.recorder.connect(this.gainNode)):this.workletRecorder&&(this.biquadFilter.connect(this.workletRecorder),this.workletRecorder.connect(this.gainNode)),this.gainNode.connect(this.audioContext.destination),this.emit(yt.talkGetUserMediaSuccess),null===e.oninactive&&(e.oninactive=e=>{this._handleStreamInactive(e)})})).catch((e=>{this.error(this.tag,"getUserMedia error",e.toString()),this.emit(yt.talkGetUserMediaFail,e.toString())})).finally((()=>{this.log(this.tag,"getUserMedia finally"),this._stopCheckGetUserMediaTimeout()}))}_getUserMedia2(){this.log(this.tag,"getUserMedia"),navigator.mediaDevices?navigator.mediaDevices.getUserMedia({audio:!0}).then((e=>{this.log(this.tag,"getUserMedia2 success")})):navigator.getUserMedia({audio:!0},this.log(this.tag,"getUserMedia2 success"),this.log(this.tag,"getUserMedia2 fail"))}async _getUserMedia3(){this.log(this.tag,"getUserMedia3");try{const e=await navigator.mediaDevices.getUserMedia({audio:{latency:!0,noiseSuppression:!0,autoGainControl:!0,echoCancellation:!0,sampleRate:48e3,channelCount:1},video:!1});console.log("getUserMedia() got stream:",e),this.log(this.tag,"getUserMedia3 success")}catch(e){this.log(this.tag,"getUserMedia3 fail")}}_handleStreamInactive(e){this.userMediaStream&&(this.warn(this.tag,"stream oninactive",e),this.emit(yt.talkStreamInactive))}_startCheckGetUserMediaTimeout(){this._stopCheckGetUserMediaTimeout(),this.checkGetUserMediaTimeout=setTimeout((()=>{this.log(this.tag,"check getUserMedia timeout"),this.emit(yt.talkGetUserMediaTimeout)}),this._opt.getUserMediaTimeout)}_stopCheckGetUserMediaTimeout(){this.checkGetUserMediaTimeout&&(this.log(this.tag,"stop checkGetUserMediaTimeout"),clearTimeout(this.checkGetUserMediaTimeout),this.checkGetUserMediaTimeout=null)}_startHeartInterval(){this.heartInterval=setInterval((()=>{this.log(this.tag,"heart interval");let e=[35,36,0,0,0,0,0,0];e=new Uint8Array(e),this.socket.send(e.buffer)}),15e3)}_stopHeartInterval(){this.heartInterval&&(this.log(this.tag,"stop heart interval"),clearInterval(this.heartInterval),this.heartInterval=null)}startTalk(e){return new Promise(((t,i)=>{if(!function(){let e=!1;const t=window.navigator;return t&&(e=!(!t.mediaDevices||!t.mediaDevices.getUserMedia),e||(e=!!(t.getUserMedia||t.webkitGetUserMedia||t.mozGetUserMedia||t.msGetUserMedia))),e}())return i("not support getUserMedia");if(this.wsUrl=e,this._opt.testMicrophone)this._doTalk();else{if(!this.wsUrl)return i("wsUrl is null");this._createWebSocket().catch((e=>{i(e)}))}this.once(yt.talkGetUserMediaFail,(()=>{i("getUserMedia fail")})),this.once(yt.talkGetUserMediaSuccess,(()=>{t()}))}))}setVolume(e){e=parseFloat(e).toFixed(2),isNaN(e)||(e=ha(e,0,1),this.gainNode.gain.value=e)}getOption(){return this._opt}get volume(){return this.gainNode?parseFloat(100*this.gainNode.gain.value).toFixed(0):null}}class Yc{constructor(e){this.player=e,this.globalSetting=null;const t=Sa();this.defaultSettings={watermark_id:`EasyPro_${t}`,watermark_prefix:`EasyPro_mask_${t}`,watermark_txt:"EasyPro 测试水印",watermark_x:0,watermark_y:100,watermark_rows:0,watermark_cols:0,watermark_x_space:0,watermark_y_space:0,watermark_font:"微软雅黑",watermark_color:"black",watermark_fontsize:"18px",watermark_alpha:.15,watermark_width:250,watermark_height:150,watermark_angle:15,watermark_parent_width:0,watermark_parent_height:0,watermark_parent_node:null},this.player.debug.log("Watermark","int")}destroy(){this._removeMark(),this.globalSetting=null,this.defaultSettings={watermark_id:"",watermark_prefix:"",watermark_txt:"EasyPro 测试水印",watermark_x:0,watermark_y:100,watermark_rows:0,watermark_cols:0,watermark_x_space:0,watermark_y_space:0,watermark_font:"微软雅黑",watermark_color:"black",watermark_fontsize:"18px",watermark_alpha:.15,watermark_width:250,watermark_height:150,watermark_angle:-15,watermark_parent_width:0,watermark_parent_height:0,watermark_parent_node:null},this.player.debug.log("Watermark","destroy")}remove(){this._removeMark()}load(e){this.globalSetting=e,this._loadMark(e)}resize(){this.player.debug.log("Watermark","resize()"),this.globalSetting&&this._loadMark(this.globalSetting)}_loadMark(){let e=this.defaultSettings;if(1===arguments.length&&"object"==typeof arguments[0]){var t=arguments[0]||{};for(let i in t)t[i]&&e[i]&&t[i]===e[i]||(t[i]||0===t[i])&&(e[i]=t[i])}var i=document.getElementById(e.watermark_id);i&&i.parentNode&&i.parentNode.removeChild(i);var r="string"==typeof e.watermark_parent_node?document.getElementById(e.watermark_parent_node):e.watermark_parent_node,s=r||document.body;const a=s.getBoundingClientRect();var o=Math.max(s.scrollWidth,s.clientWidth,a.width),n=Math.max(s.scrollHeight,s.clientHeight,a.height),l=arguments[0]||{},h=s;(l.watermark_parent_width||l.watermark_parent_height)&&h&&(e.watermark_x=e.watermark_x+0,e.watermark_y=e.watermark_y+0);var A=document.getElementById(e.watermark_id),d=null;if(A)A.shadowRoot&&(d=A.shadowRoot);else{(A=document.createElement("div")).id=e.watermark_id,A.setAttribute("style","pointer-events: none !important; display: block !important"),d="function"==typeof A.attachShadow?A.attachShadow({mode:"open"}):A;var c=s.children,u=Math.floor(Math.random()*(c.length-1))+1;c[u]?s.insertBefore(A,c[u]):s.appendChild(A)}e.watermark_cols=parseInt((o-e.watermark_x)/(e.watermark_width+e.watermark_x_space));var p,g=parseInt((o-e.watermark_x-e.watermark_width*e.watermark_cols)/e.watermark_cols);e.watermark_x_space=g?e.watermark_x_space:g,e.watermark_rows=parseInt((n-e.watermark_y)/(e.watermark_height+e.watermark_y_space));var m,y,E,C=parseInt((n-e.watermark_y-e.watermark_height*e.watermark_rows)/e.watermark_rows);e.watermark_y_space=C?e.watermark_y_space:C,r?(p=e.watermark_x+e.watermark_width*e.watermark_cols+e.watermark_x_space*(e.watermark_cols-1),m=e.watermark_y+e.watermark_height*e.watermark_rows+e.watermark_y_space*(e.watermark_rows-1)):(p=0+e.watermark_x+e.watermark_width*e.watermark_cols+e.watermark_x_space*(e.watermark_cols-1),m=0+e.watermark_y+e.watermark_height*e.watermark_rows+e.watermark_y_space*(e.watermark_rows-1));for(var f=0;f<e.watermark_rows;f++){E=r?0+e.watermark_y+(n-m)/2+(e.watermark_y_space+e.watermark_height)*f:e.watermark_y+(n-m)/2+(e.watermark_y_space+e.watermark_height)*f;for(var I=0;I<e.watermark_cols;I++){y=r?0+e.watermark_x+(o-p)/2+(e.watermark_width+e.watermark_x_space)*I:e.watermark_x+(o-p)/2+(e.watermark_width+e.watermark_x_space)*I;var w=document.createElement("div"),S=document.createTextNode(e.watermark_txt);w.appendChild(S),w.id=e.watermark_prefix+f+I,w.style.webkitTransform="rotate("+e.watermark_angle+"deg)",w.style.MozTransform="rotate("+e.watermark_angle+"deg)",w.style.msTransform="rotate("+e.watermark_angle+"deg)",w.style.OTransform="rotate("+e.watermark_angle+"deg)",w.style.transform="rotate("+e.watermark_angle+"deg)",w.style.visibility="",w.style.position="absolute",w.style.left=y+"px",w.style.top=E+"px",w.style.overflow="hidden",w.style.zIndex="9999999",w.style.opacity=e.watermark_alpha,w.style.fontSize=e.watermark_fontsize,w.style.fontFamily=e.watermark_font,w.style.color=e.watermark_color,w.style.textAlign="center",w.style.width=e.watermark_width+"px",w.style.height=e.watermark_height+"px",w.style.display="block",w.style["-ms-user-select"]="none",d.appendChild(w)}}}_removeMark(){const e=this.defaultSettings;var t=document.getElementById(e.watermark_id);if(t){var i=t.parentNode;i&&i.removeChild(t)}}}class Nc{constructor(e){this.player=e,this.globalSetting=null;const t=Sa();this.defaultSettings={watermark_id:`EasyPro_${t}`,watermark_prefix:`EasyPro_mask_${t}`,watermark_txt:"EasyPro 测试水印",watermark_x:0,watermark_y:0,watermark_rows:0,watermark_cols:0,watermark_x_space:100,watermark_y_space:100,watermark_font:"微软雅黑",watermark_color:"black",watermark_fontsize:18,watermark_alpha:.15,watermark_width:150,watermark_height:100,watermark_angle:-15,watermark_parent_width:0,watermark_parent_height:0,watermark_parent_node:null},this.player.debug.log("Watermark","int")}destroy(){this._removeMark(),this.globalSetting=null,this.defaultSettings={watermark_id:"",watermark_prefix:"",watermark_txt:"EasyPro 测试水印",watermark_x:0,watermark_y:0,watermark_rows:0,watermark_cols:0,watermark_x_space:100,watermark_y_space:100,watermark_font:"微软雅黑",watermark_color:"black",watermark_fontsize:18,watermark_alpha:.15,watermark_width:150,watermark_height:100,watermark_angle:-15,watermark_parent_width:0,watermark_parent_height:0,watermark_parent_node:null},this.player.debug.log("Watermark","destroy")}remove(){this._removeMark()}load(e){this.globalSetting=e,this._loadMark(e)}resize(){this.player.debug.log("Watermark","resize()"),this.globalSetting&&this._loadMark(this.globalSetting)}_loadMark(){let e=this.defaultSettings;if(1===arguments.length&&"object"==typeof arguments[0]){var t=arguments[0]||{};for(let i in t)t[i]&&e[i]&&t[i]===e[i]||(t[i]||0===t[i])&&(e[i]=t[i])}var i=document.getElementById(e.watermark_id);i&&i.parentNode&&i.parentNode.removeChild(i);var r="string"==typeof e.watermark_parent_node?document.getElementById(e.watermark_parent_node):e.watermark_parent_node,s=r||document.body;const a=s.getBoundingClientRect();var o=Math.max(s.scrollWidth,s.clientWidth,a.width),n=Math.max(s.scrollHeight,s.clientHeight,a.height),l=arguments[0]||{},h=s;(l.watermark_parent_width||l.watermark_parent_height)&&h&&(e.watermark_x=e.watermark_x+0,e.watermark_y=e.watermark_y+0);var A=document.getElementById(e.watermark_id),d=null;if(A)A.shadowRoot&&(d=A.shadowRoot);else{(A=document.createElement("div")).id=e.watermark_id,A.setAttribute("style","pointer-events: none !important; display: block !important"),d="function"==typeof A.attachShadow?A.attachShadow({mode:"open"}):A;var c=s.children,u=Math.floor(Math.random()*(c.length-1))+1;c[u]?s.insertBefore(A,c[u]):s.appendChild(A)}const p=this._calcTextSize(),g=this.defaultSettings,m=g.watermark_x_space+p.width,y=g.watermark_y_space+p.height,E=2*y,C=m/2,f=`<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="none">\n <defs>\n <pattern id="pattern1" x="0" y="0" width="${m}" height="${E}" patternUnits="userSpaceOnUse" patternTransform="rotate(${g.watermark_angle})">\n <text x="0" y="${g.watermark_fontsize}" style="font-family:${g.watermark_font}; font-size:${g.watermark_fontsize}; fill:${g.watermark_color}; fill-opacity:${g.watermark_alpha}">${g.watermark_txt}</text>\n </pattern>\n <pattern id="pattern2" x="${C}" y="${y}" width="${m}" height="${E}" patternUnits="userSpaceOnUse" patternTransform="rotate(${g.watermark_angle})">\n <text x="0" y="${g.watermark_fontsize}" style="font-family:${g.watermark_font}; font-size:${g.watermark_fontsize}; fill:${g.watermark_color}; fill-opacity:${g.watermark_alpha}">${g.watermark_txt}</text>\n </pattern>\n </defs>\n <rect x="0" y="0" width="100%" height="100%" style="fill:url(#pattern1); fill-opacity:1;" />\n <rect x="0" y="0" width="100%" height="100%" style="fill:url(#pattern2); fill-opacity:1;" />\n </svg>`,I=window.btoa(unescape(encodeURIComponent(f)));var w=document.createElement("div");w.style.position="absolute",w.style.left="0px",w.style.top="0px",w.style.overflow="hidden",w.style.zIndex="9999999",w.style.width=o+"px",w.style.height=n+"px",w.style.display="block",w.style["-ms-user-select"]="none",w.style.backgroundImage=`url(data:image/svg+xml;base64,${I})`,d.appendChild(w)}_removeMark(){const e=this.defaultSettings;var t=document.getElementById(e.watermark_id);if(t){var i=t.parentNode;i&&i.removeChild(t)}}_calcTextSize(){const{watermark_txt:e,watermark_font:t,watermark_fontsize:i}=this.globalSetting,r=document.createElement("span");r.innerHTML=e,r.setAttribute("style",`font-family: ${t}; font-size: ${i}px; visibility: hidden; display: inline-block`),document.querySelector("body").appendChild(r);const s={width:r.offsetWidth,height:r.offsetHeight};return r.remove(),s}}const Pc="right",jc="left",zc="up",Wc="down",Zc="leftUp",Vc="leftDown",Hc="rightUp",Xc="rightDown",_c="zoomExpand",$c="zoomNarrow",eu="apertureFar",tu="apertureNear",iu="focusFar",ru="focusNear",su="setPos",au="calPos",ou="delPos",nu="wiperOpen",lu="wiperClose",hu="cruiseStart",Au={stop:0,fiStop:0,right:1,left:2,up:8,down:4,leftUp:10,leftDown:6,rightUp:9,rightDown:5,zoomExpand:16,zoomNarrow:32,apertureFar:72,apertureNear:68,focusFar:66,focusNear:65,setPos:129,calPos:130,delPos:131,wiperOpen:140,wiperClose:141,setCruise:132,decCruise:133,cruiseStart:136,cruiseStop:0},du=[25,50,75,100,125,150,175,200,225,250],cu=[1,2,3,4,5,6,7,8,9,16],uu=[16,48,80,112,144,160,176,192,208,224];function pu(e){const{type:t,speed:i=5,index:r=0}=e,s=function(e){e=e||5;const t=e-1,i=du[t]||du[4];return i}(i);let a,o,n,l;if(a=Au[t],!a)return"";switch(t){case zc:case Wc:case eu:case tu:n=s;break;case Pc:case jc:case iu:case ru:o=s;break;case Zc:case Vc:case Hc:case Xc:o=s,n=s;break;case _c:case $c:l=function(e){e=e||5;const t=e-1,i=uu[t]||uu[4];return i}(i);break;case au:case ou:case su:n=gu(r);break;case lu:case nu:o=1;break;case hu:o=gu(r)}return function(e,t,i,r){let s=[];s[0]=165,s[1]=15,s[2]=1,s[3]=0,s[4]=0,s[5]=0,s[6]=0,e&&(s[3]=e);t&&(s[4]=t);i&&(s[5]=i);r&&(s[6]=r);return s[7]=(s[0]+s[1]+s[2]+s[3]+s[4]+s[5]+s[6])%256,function(e){let t="";for(let i=0;i<e.length;i++){let r=e[i].toString(16);1===r.length&&(r="0"+r),t+=r.toUpperCase()}return t}(s)}(a,o,n,l)}function gu(e){return cu[e-1]}const mu=["Boolean","Number","String","Undefined","Null","Date","Object"];function yu(e){if("object"!=typeof e)return e;const t=Object.prototype.toString.call(e).slice(8,-1);switch(t){case"Array":case"Uint8Array":case"ArrayBuffer":return t+"["+e.length+"]";case"Object":return"{}";default:return t}}function Eu(e,t,i){i||(i=1),t||(t=2);const r={};if(!e||"object"!=typeof e)return e;const s=Object.prototype.toString.call(e).slice(8,-1);if(!mu.includes(s))return s;if(!(i>t)){for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&(i===t?r[s]=yu(e[s]):"object"==typeof e[s]?r[s]=Eu(e[s],t,i+1):r[s]=e[s]);return r}}function Cu(){return(new Date).toLocaleString()}class fu{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.player=e,this.logMaxSize=t?.logMaxSize||204800,this.logSize=0,this.logTextArray=[]}destroy(){this.clear()}clear(){this.logSize=0,this.logTextArray=[]}logCache(){let e="";try{for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];const s=i.map((e=>Eu(e)));e="[EasyPro] "+Cu()+JSON.stringify(s)}catch(e){return}if(this.logSize+=e.length,this.logTextArray.push(e),this.logSize>this.logMaxSize){const e=this.logTextArray.shift();this.logSize-=e.length}}getLog(){return this.logTextArray.join("\n")}getLogBlob(){const e=this.getLog();return new Blob([e],{type:"text/plain"})}download(){const e=this.getLog();this.clear();const t=new Blob([e],{type:"text/plain"});No(t,"EasyPro-"+Cu()+".log")}}var Iu,wu=void 0!==wu?wu:{};const Su={loadWasmModule:function(e){var t,i={};for(t in wu)wu.hasOwnProperty(t)&&(i[t]=wu[t]);var r,s,a,o="./this.program",n=function(e,t){throw t},l=!1,h=!1;if(l="object"==typeof window,h="function"==typeof importScripts,s="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,r=s&&!l&&!h,a=!l&&!r&&!h,wu.ENVIRONMENT)throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)");var A,d,c,u,p="";if(r)p=__dirname+"/",A=function(e,t){var i;return c||(c=require("fs")),u||(u=require("path")),e=u.normalize(e),i=c.readFileSync(e),t?i:i.toString()},d=function(e){var t=A(e,!0);return t.buffer||(t=new Uint8Array(t)),S(t.buffer),t},process.argv.length>1&&(o=process.argv[1].replace(/\\/g,"/")),process.argv.slice(2),"undefined"!=typeof module&&(module.exports=wu),process.on("uncaughtException",(function(e){if(!(e instanceof Xt))throw e})),process.on("unhandledRejection",le),n=function(e){process.exit(e)},wu.inspect=function(){return"[Emscripten Module object]"};else if(a)"undefined"!=typeof read&&(A=function(e){return read(e)}),d=function(e){var t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(S("object"==typeof(t=read(e,"binary"))),t)},"undefined"!=typeof scriptArgs&&scriptArgs,"function"==typeof quit&&(n=function(e){quit(e)}),"undefined"!=typeof print&&("undefined"==typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!=typeof printErr?printErr:print);else{if(!l&&!h)throw new Error("environment detection error");h?p=self.location.href:document.currentScript&&(p=document.currentScript.src),p=0!==p.indexOf("blob:")?p.substr(0,p.lastIndexOf("/")+1):"",A=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},h&&(d=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)})}var g,m,y=wu.print||console.log.bind(console),E=wu.printErr||console.warn.bind(console);for(t in i)i.hasOwnProperty(t)&&(wu[t]=i[t]);function C(e){C.shown||(C.shown={}),C.shown[e]||(C.shown[e]=1,E(e))}function f(e,t){var i=I,r=i.length;try{i.grow(1)}catch(e){if(!e instanceof RangeError)throw e;throw"Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH."}try{i.set(r,e)}catch(a){if(!a instanceof TypeError)throw a;S(void 0!==t,"Missing signature argument to addFunction");var s=function(e,t){var i=[1,0,1,96],r=t.slice(0,1),s=t.slice(1),a={i:127,j:126,f:125,d:124};i.push(s.length);for(var o=0;o<s.length;++o)i.push(a[s[o]]);"v"==r?i.push(0):i=i.concat([1,a[r]]),i[1]=i.length-2;var n=new Uint8Array([0,97,115,109,1,0,0,0].concat(i,[2,7,1,1,101,1,102,0,0,7,5,1,1,102,0,0])),l=new WebAssembly.Module(n);return new WebAssembly.Instance(l,{e:{f:e}}).exports.f}(e,t);i.set(r,s)}return r}i=null,wu.arguments&&wu.arguments,Object.getOwnPropertyDescriptor(wu,"arguments")||Object.defineProperty(wu,"arguments",{configurable:!0,get:function(){le("Module.arguments has been replaced with plain arguments_")}}),wu.thisProgram&&(o=wu.thisProgram),Object.getOwnPropertyDescriptor(wu,"thisProgram")||Object.defineProperty(wu,"thisProgram",{configurable:!0,get:function(){le("Module.thisProgram has been replaced with plain thisProgram")}}),wu.quit&&(n=wu.quit),Object.getOwnPropertyDescriptor(wu,"quit")||Object.defineProperty(wu,"quit",{configurable:!0,get:function(){le("Module.quit has been replaced with plain quit_")}}),S(void 0===wu.memoryInitializerPrefixURL,"Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead"),S(void 0===wu.pthreadMainPrefixURL,"Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead"),S(void 0===wu.cdInitializerPrefixURL,"Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead"),S(void 0===wu.filePackagePrefixURL,"Module.filePackagePrefixURL option was removed, use Module.locateFile instead"),S(void 0===wu.read,"Module.read option was removed (modify read_ in JS)"),S(void 0===wu.readAsync,"Module.readAsync option was removed (modify readAsync in JS)"),S(void 0===wu.readBinary,"Module.readBinary option was removed (modify readBinary in JS)"),S(void 0===wu.setWindowTitle,"Module.setWindowTitle option was removed (modify setWindowTitle in JS)"),Object.getOwnPropertyDescriptor(wu,"read")||Object.defineProperty(wu,"read",{configurable:!0,get:function(){le("Module.read has been replaced with plain read_")}}),Object.getOwnPropertyDescriptor(wu,"readAsync")||Object.defineProperty(wu,"readAsync",{configurable:!0,get:function(){le("Module.readAsync has been replaced with plain readAsync")}}),Object.getOwnPropertyDescriptor(wu,"readBinary")||Object.defineProperty(wu,"readBinary",{configurable:!0,get:function(){le("Module.readBinary has been replaced with plain readBinary")}}),Zt=Ht=Vt=function(){le("cannot use the stack before compiled code is ready to run, and has provided stack access")},wu.wasmBinary&&(g=wu.wasmBinary),Object.getOwnPropertyDescriptor(wu,"wasmBinary")||Object.defineProperty(wu,"wasmBinary",{configurable:!0,get:function(){le("Module.wasmBinary has been replaced with plain wasmBinary")}}),wu.noExitRuntime&&(Iu=wu.noExitRuntime),Object.getOwnPropertyDescriptor(wu,"noExitRuntime")||Object.defineProperty(wu,"noExitRuntime",{configurable:!0,get:function(){le("Module.noExitRuntime has been replaced with plain noExitRuntime")}}),"object"!=typeof WebAssembly&&le("No WebAssembly support found. Build with -s WASM=0 to target JavaScript instead.");var I=new WebAssembly.Table({initial:2542,maximum:2552,element:"anyfunc"}),w=!1;function S(e,t){e||le("Assertion failed: "+t)}function M(e,t,i,r,s){var a={string:function(e){var t=0;if(null!=e&&0!==e){var i=1+(e.length<<2);q(e,t=Vt(i),i)}return t},array:function(e){var t=Vt(e.length);return function(e,t){S(e.length>=0,"writeArrayToMemory array must have a length (should be an array or typed array)"),k.set(e,t)}(e,t),t}};var o=function(e){var t=wu["_"+e];return S(t,"Cannot call unknown function "+e+", make sure it is exported"),t}(e),n=[],l=0;if(S("array"!==t,'Return type should not be "array".'),r)for(var h=0;h<r.length;h++){var A=a[i[h]];A?(0===l&&(l=Zt()),n[h]=A(r[h])):n[h]=r[h]}var d=o.apply(null,n);return d=function(e){return"string"===t?L(e):"boolean"===t?Boolean(e):e}(d),0!==l&&Ht(l),d}var v,k,B,D,b,Q,R="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function T(e,t,i){for(var r=t+i,s=t;e[s]&&!(s>=r);)++s;if(s-t>16&&e.subarray&&R)return R.decode(e.subarray(t,s));for(var a="";t<s;){var o=e[t++];if(128&o){var n=63&e[t++];if(192!=(224&o)){var l=63&e[t++];if(224==(240&o)?o=(15&o)<<12|n<<6|l:(240!=(248&o)&&C("Invalid UTF-8 leading byte 0x"+o.toString(16)+" encountered when deserializing a UTF-8 string on the asm.js/wasm heap to a JS string!"),o=(7&o)<<18|n<<12|l<<6|63&e[t++]),o<65536)a+=String.fromCharCode(o);else{var h=o-65536;a+=String.fromCharCode(55296|h>>10,56320|1023&h)}}else a+=String.fromCharCode((31&o)<<6|n)}else a+=String.fromCharCode(o)}return a}function L(e,t){return e?T(B,e,t):""}function K(e,t,i,r){if(!(r>0))return 0;for(var s=i,a=i+r-1,o=0;o<e.length;++o){var n=e.charCodeAt(o);if(n>=55296&&n<=57343)n=65536+((1023&n)<<10)|1023&e.charCodeAt(++o);if(n<=127){if(i>=a)break;t[i++]=n}else if(n<=2047){if(i+1>=a)break;t[i++]=192|n>>6,t[i++]=128|63&n}else if(n<=65535){if(i+2>=a)break;t[i++]=224|n>>12,t[i++]=128|n>>6&63,t[i++]=128|63&n}else{if(i+3>=a)break;n>=2097152&&C("Invalid Unicode code point 0x"+n.toString(16)+" encountered when serializing a JS string to an UTF-8 string on the asm.js/wasm heap! (Valid unicode code points should be in range 0-0x1FFFFF)."),t[i++]=240|n>>18,t[i++]=128|n>>12&63,t[i++]=128|n>>6&63,t[i++]=128|63&n}}return t[i]=0,i-s}function q(e,t,i){return S("number"==typeof i,"stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!"),K(e,B,t,i)}function x(e){for(var t=0,i=0;i<e.length;++i){var r=e.charCodeAt(i);r>=55296&&r<=57343&&(r=65536+((1023&r)<<10)|1023&e.charCodeAt(++i)),r<=127?++t:t+=r<=2047?2:r<=65535?3:4}return t}function F(e,t){return e%t>0&&(e+=t-e%t),e}function U(e){v=e,wu.HEAP8=k=new Int8Array(e),wu.HEAP16=D=new Int16Array(e),wu.HEAP32=b=new Int32Array(e),wu.HEAPU8=B=new Uint8Array(e),wu.HEAPU16=new Uint16Array(e),wu.HEAPU32=Q=new Uint32Array(e),wu.HEAPF32=new Float32Array(e),wu.HEAPF64=new Float64Array(e)}"undefined"!=typeof TextDecoder&&new TextDecoder("utf-16le");var G=1341328,O=6584208;S(!0,"stack must start aligned"),S(!0,"heap must start aligned");var J=5242880;wu.TOTAL_STACK&&S(J===wu.TOTAL_STACK,"the stack size can no longer be determined at runtime");var Y=wu.TOTAL_MEMORY||67108864;function N(){S(0==(3&G)),Q[1+(G>>2)]=34821223,Q[2+(G>>2)]=2310721022,b[0]=1668509029}function P(){var e=Q[1+(G>>2)],t=Q[2+(G>>2)];34821223==e&&2310721022==t||le("Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x"+t.toString(16)+" "+e.toString(16)),1668509029!==b[0]&&le("Runtime error: The application has corrupted its heap memory area (address zero)!")}function j(e){for(;e.length>0;){var t=e.shift();if("function"!=typeof t){var i=t.func;"number"==typeof i?void 0===t.arg?wu.dynCall_v(i):wu.dynCall_vi(i,t.arg):i(void 0===t.arg?null:t.arg)}else t()}}Object.getOwnPropertyDescriptor(wu,"TOTAL_MEMORY")||Object.defineProperty(wu,"TOTAL_MEMORY",{configurable:!0,get:function(){le("Module.TOTAL_MEMORY has been replaced with plain INITIAL_TOTAL_MEMORY")}}),S(Y>=J,"TOTAL_MEMORY should be larger than TOTAL_STACK, was "+Y+"! (TOTAL_STACK="+J+")"),S("undefined"!=typeof Int32Array&&"undefined"!=typeof Float64Array&&void 0!==Int32Array.prototype.subarray&&void 0!==Int32Array.prototype.set,"JS engine does not provide full typed array support"),(m=wu.wasmMemory?wu.wasmMemory:new WebAssembly.Memory({initial:Y/65536}))&&(v=m.buffer),S((Y=v.byteLength)%65536==0),U(v),b[335292]=O,function(){var e=new Int16Array(1),t=new Int8Array(e.buffer);if(e[0]=25459,115!==t[0]||99!==t[1])throw"Runtime error: expected the system to be little-endian!"}();var z=[],W=[],Z=[],V=[],H=!1,X=!1;S(Math.imul,"This browser does not support Math.imul(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),S(Math.fround,"This browser does not support Math.fround(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),S(Math.clz32,"This browser does not support Math.clz32(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill"),S(Math.trunc,"This browser does not support Math.trunc(), build with LEGACY_VM_SUPPORT or POLYFILL_OLD_MATH_FUNCTIONS to add in a polyfill");var _=Math.abs,$=Math.ceil,ee=Math.floor,te=Math.min,ie=0,re=null,se=null,ae={};function oe(e){ie++,wu.monitorRunDependencies&&wu.monitorRunDependencies(ie),e?(S(!ae[e]),ae[e]=1,null===re&&"undefined"!=typeof setInterval&&(re=setInterval((function(){if(w)return clearInterval(re),void(re=null);var e=!1;for(var t in ae)e||(e=!0,E("still waiting on run dependencies:")),E("dependency: "+t);e&&E("(end of list)")}),1e4))):E("warning: run dependency added without ID")}function ne(e){if(ie--,wu.monitorRunDependencies&&wu.monitorRunDependencies(ie),e?(S(ae[e]),delete ae[e]):E("warning: run dependency removed without ID"),0==ie&&(null!==re&&(clearInterval(re),re=null),se)){var t=se;se=null,t()}}function le(e){throw wu.onAbort&&wu.onAbort(e),y(e+=""),E(e),w=!0,e="abort("+e+") at "+ge(),new WebAssembly.RuntimeError(e)}wu.preloadedImages={},wu.preloadedAudios={};var he,Ae,de="data:application/octet-stream;base64,",ce=function(){let t=`${e}decoder-snap.wasm`;return t.startsWith("app://./")?`${e}decoder-snap.wasm`:t.startsWith("http")?t:wu.locateFile?wu.locateFile(t,p):p+t}();function ue(){try{if(g)return new Uint8Array(g);if(d)return d(ce);throw"both async and sync fetching of the wasm failed"}catch(e){le(e)}}function pe(e){return e.replace(/\b_Z[\w\d_]+/g,(function(e){var t,i=(t=e,C("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t);return e===i?e:i+" ["+e+"]"}))}function ge(){var e=function(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}();return wu.extraStackTrace&&(e+="\n"+wu.extraStackTrace()),pe(e)}function me(e){return wu.___errno_location?b[wu.___errno_location()>>2]=e:E("failed to set errno from JS"),e}W.push({func:function(){Pt()}});var ye={splitPath:function(e){return/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1)},normalizeArray:function(e,t){for(var i=0,r=e.length-1;r>=0;r--){var s=e[r];"."===s?e.splice(r,1):".."===s?(e.splice(r,1),i++):i&&(e.splice(r,1),i--)}if(t)for(;i;i--)e.unshift("..");return e},normalize:function(e){var t="/"===e.charAt(0),i="/"===e.substr(-1);return(e=ye.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||t||(e="."),e&&i&&(e+="/"),(t?"/":"")+e},dirname:function(e){var t=ye.splitPath(e),i=t[0],r=t[1];return i||r?(r&&(r=r.substr(0,r.length-1)),i+r):"."},basename:function(e){if("/"===e)return"/";var t=e.lastIndexOf("/");return-1===t?e:e.substr(t+1)},extname:function(e){return ye.splitPath(e)[3]},join:function(){var e=Array.prototype.slice.call(arguments,0);return ye.normalize(e.join("/"))},join2:function(e,t){return ye.normalize(e+"/"+t)}},Ee={resolve:function(){for(var e="",t=!1,i=arguments.length-1;i>=-1&&!t;i--){var r=i>=0?arguments[i]:Se.cwd();if("string"!=typeof r)throw new TypeError("Arguments to path.resolve must be strings");if(!r)return"";e=r+"/"+e,t="/"===r.charAt(0)}return(t?"/":"")+(e=ye.normalizeArray(e.split("/").filter((function(e){return!!e})),!t).join("/"))||"."},relative:function(e,t){function i(e){for(var t=0;t<e.length&&""===e[t];t++);for(var i=e.length-1;i>=0&&""===e[i];i--);return t>i?[]:e.slice(t,i-t+1)}e=Ee.resolve(e).substr(1),t=Ee.resolve(t).substr(1);for(var r=i(e.split("/")),s=i(t.split("/")),a=Math.min(r.length,s.length),o=a,n=0;n<a;n++)if(r[n]!==s[n]){o=n;break}var l=[];for(n=o;n<r.length;n++)l.push("..");return(l=l.concat(s.slice(o))).join("/")}},Ce={ttys:[],init:function(){},shutdown:function(){},register:function(e,t){Ce.ttys[e]={input:[],output:[],ops:t},Se.registerDevice(e,Ce.stream_ops)},stream_ops:{open:function(e){var t=Ce.ttys[e.node.rdev];if(!t)throw new Se.ErrnoError(43);e.tty=t,e.seekable=!1},close:function(e){e.tty.ops.flush(e.tty)},flush:function(e){e.tty.ops.flush(e.tty)},read:function(e,t,i,r,s){if(!e.tty||!e.tty.ops.get_char)throw new Se.ErrnoError(60);for(var a=0,o=0;o<r;o++){var n;try{n=e.tty.ops.get_char(e.tty)}catch(e){throw new Se.ErrnoError(29)}if(void 0===n&&0===a)throw new Se.ErrnoError(6);if(null==n)break;a++,t[i+o]=n}return a&&(e.node.timestamp=Date.now()),a},write:function(e,t,i,r,s){if(!e.tty||!e.tty.ops.put_char)throw new Se.ErrnoError(60);try{for(var a=0;a<r;a++)e.tty.ops.put_char(e.tty,t[i+a])}catch(e){throw new Se.ErrnoError(29)}return r&&(e.node.timestamp=Date.now()),a}},default_tty_ops:{get_char:function(e){if(!e.input.length){var t=null;if(r){var i=Buffer.alloc?Buffer.alloc(256):new Buffer(256),s=0;try{s=c.readSync(process.stdin.fd,i,0,256,null)}catch(e){if(-1==e.toString().indexOf("EOF"))throw e;s=0}t=s>0?i.slice(0,s).toString("utf-8"):null}else"undefined"!=typeof window&&"function"==typeof window.prompt?null!==(t=window.prompt("Input: "))&&(t+="\n"):"function"==typeof readline&&null!==(t=readline())&&(t+="\n");if(!t)return null;e.input=Be(t,!0)}return e.input.shift()},put_char:function(e,t){null===t||10===t?e.output=[]:0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(e.output=[])}},default_tty1_ops:{put_char:function(e,t){null===t||10===t?(E(T(e.output,0)),e.output=[]):0!=t&&e.output.push(t)},flush:function(e){e.output&&e.output.length>0&&(E(T(e.output,0)),e.output=[])}}},fe={ops_table:null,mount:function(e){return fe.createNode(null,"/",16895,0)},createNode:function(e,t,i,r){if(Se.isBlkdev(i)||Se.isFIFO(i))throw new Se.ErrnoError(63);fe.ops_table||(fe.ops_table={dir:{node:{getattr:fe.node_ops.getattr,setattr:fe.node_ops.setattr,lookup:fe.node_ops.lookup,mknod:fe.node_ops.mknod,rename:fe.node_ops.rename,unlink:fe.node_ops.unlink,rmdir:fe.node_ops.rmdir,readdir:fe.node_ops.readdir,symlink:fe.node_ops.symlink},stream:{llseek:fe.stream_ops.llseek}},file:{node:{getattr:fe.node_ops.getattr,setattr:fe.node_ops.setattr},stream:{llseek:fe.stream_ops.llseek,read:fe.stream_ops.read,write:fe.stream_ops.write,allocate:fe.stream_ops.allocate,mmap:fe.stream_ops.mmap,msync:fe.stream_ops.msync}},link:{node:{getattr:fe.node_ops.getattr,setattr:fe.node_ops.setattr,readlink:fe.node_ops.readlink},stream:{}},chrdev:{node:{getattr:fe.node_ops.getattr,setattr:fe.node_ops.setattr},stream:Se.chrdev_stream_ops}});var s=Se.createNode(e,t,i,r);return Se.isDir(s.mode)?(s.node_ops=fe.ops_table.dir.node,s.stream_ops=fe.ops_table.dir.stream,s.contents={}):Se.isFile(s.mode)?(s.node_ops=fe.ops_table.file.node,s.stream_ops=fe.ops_table.file.stream,s.usedBytes=0,s.contents=null):Se.isLink(s.mode)?(s.node_ops=fe.ops_table.link.node,s.stream_ops=fe.ops_table.link.stream):Se.isChrdev(s.mode)&&(s.node_ops=fe.ops_table.chrdev.node,s.stream_ops=fe.ops_table.chrdev.stream),s.timestamp=Date.now(),e&&(e.contents[t]=s),s},getFileDataAsRegularArray:function(e){if(e.contents&&e.contents.subarray){for(var t=[],i=0;i<e.usedBytes;++i)t.push(e.contents[i]);return t}return e.contents},getFileDataAsTypedArray:function(e){return e.contents?e.contents.subarray?e.contents.subarray(0,e.usedBytes):new Uint8Array(e.contents):new Uint8Array},expandFileStorage:function(e,t){var i=e.contents?e.contents.length:0;if(!(i>=t)){t=Math.max(t,i*(i<1048576?2:1.125)|0),0!=i&&(t=Math.max(t,256));var r=e.contents;e.contents=new Uint8Array(t),e.usedBytes>0&&e.contents.set(r.subarray(0,e.usedBytes),0)}},resizeFileStorage:function(e,t){if(e.usedBytes!=t){if(0==t)return e.contents=null,void(e.usedBytes=0);if(!e.contents||e.contents.subarray){var i=e.contents;return e.contents=new Uint8Array(new ArrayBuffer(t)),i&&e.contents.set(i.subarray(0,Math.min(t,e.usedBytes))),void(e.usedBytes=t)}if(e.contents||(e.contents=[]),e.contents.length>t)e.contents.length=t;else for(;e.contents.length<t;)e.contents.push(0);e.usedBytes=t}},node_ops:{getattr:function(e){var t={};return t.dev=Se.isChrdev(e.mode)?e.id:1,t.ino=e.id,t.mode=e.mode,t.nlink=1,t.uid=0,t.gid=0,t.rdev=e.rdev,Se.isDir(e.mode)?t.size=4096:Se.isFile(e.mode)?t.size=e.usedBytes:Se.isLink(e.mode)?t.size=e.link.length:t.size=0,t.atime=new Date(e.timestamp),t.mtime=new Date(e.timestamp),t.ctime=new Date(e.timestamp),t.blksize=4096,t.blocks=Math.ceil(t.size/t.blksize),t},setattr:function(e,t){void 0!==t.mode&&(e.mode=t.mode),void 0!==t.timestamp&&(e.timestamp=t.timestamp),void 0!==t.size&&fe.resizeFileStorage(e,t.size)},lookup:function(e,t){throw Se.genericErrors[44]},mknod:function(e,t,i,r){return fe.createNode(e,t,i,r)},rename:function(e,t,i){if(Se.isDir(e.mode)){var r;try{r=Se.lookupNode(t,i)}catch(e){}if(r)for(var s in r.contents)throw new Se.ErrnoError(55)}delete e.parent.contents[e.name],e.name=i,t.contents[i]=e,e.parent=t},unlink:function(e,t){delete e.contents[t]},rmdir:function(e,t){var i=Se.lookupNode(e,t);for(var r in i.contents)throw new Se.ErrnoError(55);delete e.contents[t]},readdir:function(e){var t=[".",".."];for(var i in e.contents)e.contents.hasOwnProperty(i)&&t.push(i);return t},symlink:function(e,t,i){var r=fe.createNode(e,t,41471,0);return r.link=i,r},readlink:function(e){if(!Se.isLink(e.mode))throw new Se.ErrnoError(28);return e.link}},stream_ops:{read:function(e,t,i,r,s){var a=e.node.contents;if(s>=e.node.usedBytes)return 0;var o=Math.min(e.node.usedBytes-s,r);if(S(o>=0),o>8&&a.subarray)t.set(a.subarray(s,s+o),i);else for(var n=0;n<o;n++)t[i+n]=a[s+n];return o},write:function(e,t,i,r,s,a){if(a&&C("file packager has copied file data into memory, but in memory growth we are forced to copy it again (see --no-heap-copy)"),a=!1,!r)return 0;var o=e.node;if(o.timestamp=Date.now(),t.subarray&&(!o.contents||o.contents.subarray)){if(a)return S(0===s,"canOwn must imply no weird position inside the file"),o.contents=t.subarray(i,i+r),o.usedBytes=r,r;if(0===o.usedBytes&&0===s)return o.contents=new Uint8Array(t.subarray(i,i+r)),o.usedBytes=r,r;if(s+r<=o.usedBytes)return o.contents.set(t.subarray(i,i+r),s),r}if(fe.expandFileStorage(o,s+r),o.contents.subarray&&t.subarray)o.contents.set(t.subarray(i,i+r),s);else for(var n=0;n<r;n++)o.contents[s+n]=t[i+n];return o.usedBytes=Math.max(o.usedBytes,s+r),r},llseek:function(e,t,i){var r=t;if(1===i?r+=e.position:2===i&&Se.isFile(e.node.mode)&&(r+=e.node.usedBytes),r<0)throw new Se.ErrnoError(28);return r},allocate:function(e,t,i){fe.expandFileStorage(e.node,t+i),e.node.usedBytes=Math.max(e.node.usedBytes,t+i)},mmap:function(e,t,i,r,s,a,o){if(!Se.isFile(e.node.mode))throw new Se.ErrnoError(43);var n,l,h=e.node.contents;if(2&o||h.buffer!==t&&h.buffer!==t.buffer){(s>0||s+r<e.node.usedBytes)&&(h=h.subarray?h.subarray(s,s+r):Array.prototype.slice.call(h,s,s+r)),l=!0;var A=t.buffer==k.buffer;if(!(n=jt(r)))throw new Se.ErrnoError(48);(A?k:t).set(h,n)}else l=!1,n=h.byteOffset;return{ptr:n,allocated:l}},msync:function(e,t,i,r,s){if(!Se.isFile(e.node.mode))throw new Se.ErrnoError(43);return 2&s||fe.stream_ops.write(e,t,0,r,i,!1),0}}},Ie={0:"Success",1:"Arg list too long",2:"Permission denied",3:"Address already in use",4:"Address not available",5:"Address family not supported by protocol family",6:"No more processes",7:"Socket already connected",8:"Bad file number",9:"Trying to read unreadable message",10:"Mount device busy",11:"Operation canceled",12:"No children",13:"Connection aborted",14:"Connection refused",15:"Connection reset by peer",16:"File locking deadlock error",17:"Destination address required",18:"Math arg out of domain of func",19:"Quota exceeded",20:"File exists",21:"Bad address",22:"File too large",23:"Host is unreachable",24:"Identifier removed",25:"Illegal byte sequence",26:"Connection already in progress",27:"Interrupted system call",28:"Invalid argument",29:"I/O error",30:"Socket is already connected",31:"Is a directory",32:"Too many symbolic links",33:"Too many open files",34:"Too many links",35:"Message too long",36:"Multihop attempted",37:"File or path name too long",38:"Network interface is not configured",39:"Connection reset by network",40:"Network is unreachable",41:"Too many open files in system",42:"No buffer space available",43:"No such device",44:"No such file or directory",45:"Exec format error",46:"No record locks available",47:"The link has been severed",48:"Not enough core",49:"No message of desired type",50:"Protocol not available",51:"No space left on device",52:"Function not implemented",53:"Socket is not connected",54:"Not a directory",55:"Directory not empty",56:"State not recoverable",57:"Socket operation on non-socket",59:"Not a typewriter",60:"No such device or address",61:"Value too large for defined data type",62:"Previous owner died",63:"Not super-user",64:"Broken pipe",65:"Protocol error",66:"Unknown protocol",67:"Protocol wrong type for socket",68:"Math result not representable",69:"Read only file system",70:"Illegal seek",71:"No such process",72:"Stale file handle",73:"Connection timed out",74:"Text file busy",75:"Cross-device link",100:"Device not a stream",101:"Bad font file fmt",102:"Invalid slot",103:"Invalid request code",104:"No anode",105:"Block device required",106:"Channel number out of range",107:"Level 3 halted",108:"Level 3 reset",109:"Link number out of range",110:"Protocol driver not attached",111:"No CSI structure available",112:"Level 2 halted",113:"Invalid exchange",114:"Invalid request descriptor",115:"Exchange full",116:"No data (for no delay io)",117:"Timer expired",118:"Out of streams resources",119:"Machine is not on the network",120:"Package not installed",121:"The object is remote",122:"Advertise error",123:"Srmount error",124:"Communication error on send",125:"Cross mount point (not really error)",126:"Given log. name not unique",127:"f.d. invalid for this operation",128:"Remote address changed",129:"Can access a needed shared lib",130:"Accessing a corrupted shared lib",131:".lib section in a.out corrupted",132:"Attempting to link in too many libs",133:"Attempting to exec a shared library",135:"Streams pipe error",136:"Too many users",137:"Socket type not supported",138:"Not supported",139:"Protocol family not supported",140:"Can't send after socket shutdown",141:"Too many references",142:"Host is down",148:"No medium (in tape drive)",156:"Level 2 not synchronized"},we={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135},Se={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,handleFSError:function(e){if(!(e instanceof Se.ErrnoError))throw e+" : "+ge();return me(e.errno)},lookupPath:function(e,t){if(t=t||{},!(e=Ee.resolve(Se.cwd(),e)))return{path:"",node:null};var i={follow_mount:!0,recurse_count:0};for(var r in i)void 0===t[r]&&(t[r]=i[r]);if(t.recurse_count>8)throw new Se.ErrnoError(32);for(var s=ye.normalizeArray(e.split("/").filter((function(e){return!!e})),!1),a=Se.root,o="/",n=0;n<s.length;n++){var l=n===s.length-1;if(l&&t.parent)break;if(a=Se.lookupNode(a,s[n]),o=ye.join2(o,s[n]),Se.isMountpoint(a)&&(!l||l&&t.follow_mount)&&(a=a.mounted.root),!l||t.follow)for(var h=0;Se.isLink(a.mode);){var A=Se.readlink(o);if(o=Ee.resolve(ye.dirname(o),A),a=Se.lookupPath(o,{recurse_count:t.recurse_count}).node,h++>40)throw new Se.ErrnoError(32)}}return{path:o,node:a}},getPath:function(e){for(var t;;){if(Se.isRoot(e)){var i=e.mount.mountpoint;return t?"/"!==i[i.length-1]?i+"/"+t:i+t:i}t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:function(e,t){for(var i=0,r=0;r<t.length;r++)i=(i<<5)-i+t.charCodeAt(r)|0;return(e+i>>>0)%Se.nameTable.length},hashAddNode:function(e){var t=Se.hashName(e.parent.id,e.name);e.name_next=Se.nameTable[t],Se.nameTable[t]=e},hashRemoveNode:function(e){var t=Se.hashName(e.parent.id,e.name);if(Se.nameTable[t]===e)Se.nameTable[t]=e.name_next;else for(var i=Se.nameTable[t];i;){if(i.name_next===e){i.name_next=e.name_next;break}i=i.name_next}},lookupNode:function(e,t){var i=Se.mayLookup(e);if(i)throw new Se.ErrnoError(i,e);for(var r=Se.hashName(e.id,t),s=Se.nameTable[r];s;s=s.name_next){var a=s.name;if(s.parent.id===e.id&&a===t)return s}return Se.lookup(e,t)},createNode:function(e,t,i,r){if(!Se.FSNode){Se.FSNode=function(e,t,i,r){e||(e=this),this.parent=e,this.mount=e.mount,this.mounted=null,this.id=Se.nextInode++,this.name=t,this.mode=i,this.node_ops={},this.stream_ops={},this.rdev=r},Se.FSNode.prototype={};var s=365,a=146;Object.defineProperties(Se.FSNode.prototype,{read:{get:function(){return(this.mode&s)===s},set:function(e){e?this.mode|=s:this.mode&=-366}},write:{get:function(){return(this.mode&a)===a},set:function(e){e?this.mode|=a:this.mode&=-147}},isFolder:{get:function(){return Se.isDir(this.mode)}},isDevice:{get:function(){return Se.isChrdev(this.mode)}}})}var o=new Se.FSNode(e,t,i,r);return Se.hashAddNode(o),o},destroyNode:function(e){Se.hashRemoveNode(e)},isRoot:function(e){return e===e.parent},isMountpoint:function(e){return!!e.mounted},isFile:function(e){return 32768==(61440&e)},isDir:function(e){return 16384==(61440&e)},isLink:function(e){return 40960==(61440&e)},isChrdev:function(e){return 8192==(61440&e)},isBlkdev:function(e){return 24576==(61440&e)},isFIFO:function(e){return 4096==(61440&e)},isSocket:function(e){return 49152==(49152&e)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(e){var t=Se.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:function(e){var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:function(e,t){return Se.ignorePermissions||(-1===t.indexOf("r")||292&e.mode)&&(-1===t.indexOf("w")||146&e.mode)&&(-1===t.indexOf("x")||73&e.mode)?0:2},mayLookup:function(e){var t=Se.nodePermissions(e,"x");return t||(e.node_ops.lookup?0:2)},mayCreate:function(e,t){try{Se.lookupNode(e,t);return 20}catch(e){}return Se.nodePermissions(e,"wx")},mayDelete:function(e,t,i){var r;try{r=Se.lookupNode(e,t)}catch(e){return e.errno}var s=Se.nodePermissions(e,"wx");if(s)return s;if(i){if(!Se.isDir(r.mode))return 54;if(Se.isRoot(r)||Se.getPath(r)===Se.cwd())return 10}else if(Se.isDir(r.mode))return 31;return 0},mayOpen:function(e,t){return e?Se.isLink(e.mode)?32:Se.isDir(e.mode)&&("r"!==Se.flagsToPermissionString(t)||512&t)?31:Se.nodePermissions(e,Se.flagsToPermissionString(t)):44},MAX_OPEN_FDS:4096,nextfd:function(e,t){e=e||0,t=t||Se.MAX_OPEN_FDS;for(var i=e;i<=t;i++)if(!Se.streams[i])return i;throw new Se.ErrnoError(33)},getStream:function(e){return Se.streams[e]},createStream:function(e,t,i){Se.FSStream||(Se.FSStream=function(){},Se.FSStream.prototype={},Object.defineProperties(Se.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}}}));var r=new Se.FSStream;for(var s in e)r[s]=e[s];e=r;var a=Se.nextfd(t,i);return e.fd=a,Se.streams[a]=e,e},closeStream:function(e){Se.streams[e]=null},chrdev_stream_ops:{open:function(e){var t=Se.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:function(){throw new Se.ErrnoError(70)}},major:function(e){return e>>8},minor:function(e){return 255&e},makedev:function(e,t){return e<<8|t},registerDevice:function(e,t){Se.devices[e]={stream_ops:t}},getDevice:function(e){return Se.devices[e]},getMounts:function(e){for(var t=[],i=[e];i.length;){var r=i.pop();t.push(r),i.push.apply(i,r.mounts)}return t},syncfs:function(e,t){"function"==typeof e&&(t=e,e=!1),Se.syncFSRequests++,Se.syncFSRequests>1&&console.log("warning: "+Se.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var i=Se.getMounts(Se.root.mount),r=0;function s(e){return S(Se.syncFSRequests>0),Se.syncFSRequests--,t(e)}function a(e){if(e)return a.errored?void 0:(a.errored=!0,s(e));++r>=i.length&&s(null)}i.forEach((function(t){if(!t.type.syncfs)return a(null);t.type.syncfs(t,e,a)}))},mount:function(e,t,i){if("string"==typeof e)throw e;var r,s="/"===i,a=!i;if(s&&Se.root)throw new Se.ErrnoError(10);if(!s&&!a){var o=Se.lookupPath(i,{follow_mount:!1});if(i=o.path,r=o.node,Se.isMountpoint(r))throw new Se.ErrnoError(10);if(!Se.isDir(r.mode))throw new Se.ErrnoError(54)}var n={type:e,opts:t,mountpoint:i,mounts:[]},l=e.mount(n);return l.mount=n,n.root=l,s?Se.root=l:r&&(r.mounted=n,r.mount&&r.mount.mounts.push(n)),l},unmount:function(e){var t=Se.lookupPath(e,{follow_mount:!1});if(!Se.isMountpoint(t.node))throw new Se.ErrnoError(28);var i=t.node,r=i.mounted,s=Se.getMounts(r);Object.keys(Se.nameTable).forEach((function(e){for(var t=Se.nameTable[e];t;){var i=t.name_next;-1!==s.indexOf(t.mount)&&Se.destroyNode(t),t=i}})),i.mounted=null;var a=i.mount.mounts.indexOf(r);S(-1!==a),i.mount.mounts.splice(a,1)},lookup:function(e,t){return e.node_ops.lookup(e,t)},mknod:function(e,t,i){var r=Se.lookupPath(e,{parent:!0}).node,s=ye.basename(e);if(!s||"."===s||".."===s)throw new Se.ErrnoError(28);var a=Se.mayCreate(r,s);if(a)throw new Se.ErrnoError(a);if(!r.node_ops.mknod)throw new Se.ErrnoError(63);return r.node_ops.mknod(r,s,t,i)},create:function(e,t){return t=void 0!==t?t:438,t&=4095,t|=32768,Se.mknod(e,t,0)},mkdir:function(e,t){return t=void 0!==t?t:511,t&=1023,t|=16384,Se.mknod(e,t,0)},mkdirTree:function(e,t){for(var i=e.split("/"),r="",s=0;s<i.length;++s)if(i[s]){r+="/"+i[s];try{Se.mkdir(r,t)}catch(e){if(20!=e.errno)throw e}}},mkdev:function(e,t,i){return void 0===i&&(i=t,t=438),t|=8192,Se.mknod(e,t,i)},symlink:function(e,t){if(!Ee.resolve(e))throw new Se.ErrnoError(44);var i=Se.lookupPath(t,{parent:!0}).node;if(!i)throw new Se.ErrnoError(44);var r=ye.basename(t),s=Se.mayCreate(i,r);if(s)throw new Se.ErrnoError(s);if(!i.node_ops.symlink)throw new Se.ErrnoError(63);return i.node_ops.symlink(i,r,e)},rename:function(e,t){var i,r,s=ye.dirname(e),a=ye.dirname(t),o=ye.basename(e),n=ye.basename(t);try{i=Se.lookupPath(e,{parent:!0}).node,r=Se.lookupPath(t,{parent:!0}).node}catch(e){throw new Se.ErrnoError(10)}if(!i||!r)throw new Se.ErrnoError(44);if(i.mount!==r.mount)throw new Se.ErrnoError(75);var l,h=Se.lookupNode(i,o),A=Ee.relative(e,a);if("."!==A.charAt(0))throw new Se.ErrnoError(28);if("."!==(A=Ee.relative(t,s)).charAt(0))throw new Se.ErrnoError(55);try{l=Se.lookupNode(r,n)}catch(e){}if(h!==l){var d=Se.isDir(h.mode),c=Se.mayDelete(i,o,d);if(c)throw new Se.ErrnoError(c);if(c=l?Se.mayDelete(r,n,d):Se.mayCreate(r,n))throw new Se.ErrnoError(c);if(!i.node_ops.rename)throw new Se.ErrnoError(63);if(Se.isMountpoint(h)||l&&Se.isMountpoint(l))throw new Se.ErrnoError(10);if(r!==i&&(c=Se.nodePermissions(i,"w")))throw new Se.ErrnoError(c);try{Se.trackingDelegate.willMovePath&&Se.trackingDelegate.willMovePath(e,t)}catch(i){console.log("FS.trackingDelegate['willMovePath']('"+e+"', '"+t+"') threw an exception: "+i.message)}Se.hashRemoveNode(h);try{i.node_ops.rename(h,r,n)}catch(e){throw e}finally{Se.hashAddNode(h)}try{Se.trackingDelegate.onMovePath&&Se.trackingDelegate.onMovePath(e,t)}catch(i){console.log("FS.trackingDelegate['onMovePath']('"+e+"', '"+t+"') threw an exception: "+i.message)}}},rmdir:function(e){var t=Se.lookupPath(e,{parent:!0}).node,i=ye.basename(e),r=Se.lookupNode(t,i),s=Se.mayDelete(t,i,!0);if(s)throw new Se.ErrnoError(s);if(!t.node_ops.rmdir)throw new Se.ErrnoError(63);if(Se.isMountpoint(r))throw new Se.ErrnoError(10);try{Se.trackingDelegate.willDeletePath&&Se.trackingDelegate.willDeletePath(e)}catch(t){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.rmdir(t,i),Se.destroyNode(r);try{Se.trackingDelegate.onDeletePath&&Se.trackingDelegate.onDeletePath(e)}catch(t){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readdir:function(e){var t=Se.lookupPath(e,{follow:!0}).node;if(!t.node_ops.readdir)throw new Se.ErrnoError(54);return t.node_ops.readdir(t)},unlink:function(e){var t=Se.lookupPath(e,{parent:!0}).node,i=ye.basename(e),r=Se.lookupNode(t,i),s=Se.mayDelete(t,i,!1);if(s)throw new Se.ErrnoError(s);if(!t.node_ops.unlink)throw new Se.ErrnoError(63);if(Se.isMountpoint(r))throw new Se.ErrnoError(10);try{Se.trackingDelegate.willDeletePath&&Se.trackingDelegate.willDeletePath(e)}catch(t){console.log("FS.trackingDelegate['willDeletePath']('"+e+"') threw an exception: "+t.message)}t.node_ops.unlink(t,i),Se.destroyNode(r);try{Se.trackingDelegate.onDeletePath&&Se.trackingDelegate.onDeletePath(e)}catch(t){console.log("FS.trackingDelegate['onDeletePath']('"+e+"') threw an exception: "+t.message)}},readlink:function(e){var t=Se.lookupPath(e).node;if(!t)throw new Se.ErrnoError(44);if(!t.node_ops.readlink)throw new Se.ErrnoError(28);return Ee.resolve(Se.getPath(t.parent),t.node_ops.readlink(t))},stat:function(e,t){var i=Se.lookupPath(e,{follow:!t}).node;if(!i)throw new Se.ErrnoError(44);if(!i.node_ops.getattr)throw new Se.ErrnoError(63);return i.node_ops.getattr(i)},lstat:function(e){return Se.stat(e,!0)},chmod:function(e,t,i){var r;"string"==typeof e?r=Se.lookupPath(e,{follow:!i}).node:r=e;if(!r.node_ops.setattr)throw new Se.ErrnoError(63);r.node_ops.setattr(r,{mode:4095&t|-4096&r.mode,timestamp:Date.now()})},lchmod:function(e,t){Se.chmod(e,t,!0)},fchmod:function(e,t){var i=Se.getStream(e);if(!i)throw new Se.ErrnoError(8);Se.chmod(i.node,t)},chown:function(e,t,i,r){var s;"string"==typeof e?s=Se.lookupPath(e,{follow:!r}).node:s=e;if(!s.node_ops.setattr)throw new Se.ErrnoError(63);s.node_ops.setattr(s,{timestamp:Date.now()})},lchown:function(e,t,i){Se.chown(e,t,i,!0)},fchown:function(e,t,i){var r=Se.getStream(e);if(!r)throw new Se.ErrnoError(8);Se.chown(r.node,t,i)},truncate:function(e,t){if(t<0)throw new Se.ErrnoError(28);var i;"string"==typeof e?i=Se.lookupPath(e,{follow:!0}).node:i=e;if(!i.node_ops.setattr)throw new Se.ErrnoError(63);if(Se.isDir(i.mode))throw new Se.ErrnoError(31);if(!Se.isFile(i.mode))throw new Se.ErrnoError(28);var r=Se.nodePermissions(i,"w");if(r)throw new Se.ErrnoError(r);i.node_ops.setattr(i,{size:t,timestamp:Date.now()})},ftruncate:function(e,t){var i=Se.getStream(e);if(!i)throw new Se.ErrnoError(8);if(0==(2097155&i.flags))throw new Se.ErrnoError(28);Se.truncate(i.node,t)},utime:function(e,t,i){var r=Se.lookupPath(e,{follow:!0}).node;r.node_ops.setattr(r,{timestamp:Math.max(t,i)})},open:function(e,t,i,r,s){if(""===e)throw new Se.ErrnoError(44);var a;if(i=void 0===i?438:i,i=64&(t="string"==typeof t?Se.modeStringToFlags(t):t)?4095&i|32768:0,"object"==typeof e)a=e;else{e=ye.normalize(e);try{a=Se.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var o=!1;if(64&t)if(a){if(128&t)throw new Se.ErrnoError(20)}else a=Se.mknod(e,i,0),o=!0;if(!a)throw new Se.ErrnoError(44);if(Se.isChrdev(a.mode)&&(t&=-513),65536&t&&!Se.isDir(a.mode))throw new Se.ErrnoError(54);if(!o){var n=Se.mayOpen(a,t);if(n)throw new Se.ErrnoError(n)}512&t&&Se.truncate(a,0),t&=-641;var l=Se.createStream({node:a,path:Se.getPath(a),flags:t,seekable:!0,position:0,stream_ops:a.stream_ops,ungotten:[],error:!1},r,s);l.stream_ops.open&&l.stream_ops.open(l),!wu.logReadFiles||1&t||(Se.readFiles||(Se.readFiles={}),e in Se.readFiles||(Se.readFiles[e]=1,console.log("FS.trackingDelegate error on read file: "+e)));try{if(Se.trackingDelegate.onOpenFile){var h=0;1!=(2097155&t)&&(h|=Se.tracking.openFlags.READ),0!=(2097155&t)&&(h|=Se.tracking.openFlags.WRITE),Se.trackingDelegate.onOpenFile(e,h)}}catch(t){console.log("FS.trackingDelegate['onOpenFile']('"+e+"', flags) threw an exception: "+t.message)}return l},close:function(e){if(Se.isClosed(e))throw new Se.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{Se.closeStream(e.fd)}e.fd=null},isClosed:function(e){return null===e.fd},llseek:function(e,t,i){if(Se.isClosed(e))throw new Se.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new Se.ErrnoError(70);if(0!=i&&1!=i&&2!=i)throw new Se.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,i),e.ungotten=[],e.position},read:function(e,t,i,r,s){if(r<0||s<0)throw new Se.ErrnoError(28);if(Se.isClosed(e))throw new Se.ErrnoError(8);if(1==(2097155&e.flags))throw new Se.ErrnoError(8);if(Se.isDir(e.node.mode))throw new Se.ErrnoError(31);if(!e.stream_ops.read)throw new Se.ErrnoError(28);var a=void 0!==s;if(a){if(!e.seekable)throw new Se.ErrnoError(70)}else s=e.position;var o=e.stream_ops.read(e,t,i,r,s);return a||(e.position+=o),o},write:function(e,t,i,r,s,a){if(r<0||s<0)throw new Se.ErrnoError(28);if(Se.isClosed(e))throw new Se.ErrnoError(8);if(0==(2097155&e.flags))throw new Se.ErrnoError(8);if(Se.isDir(e.node.mode))throw new Se.ErrnoError(31);if(!e.stream_ops.write)throw new Se.ErrnoError(28);1024&e.flags&&Se.llseek(e,0,2);var o=void 0!==s;if(o){if(!e.seekable)throw new Se.ErrnoError(70)}else s=e.position;var n=e.stream_ops.write(e,t,i,r,s,a);o||(e.position+=n);try{e.path&&Se.trackingDelegate.onWriteToFile&&Se.trackingDelegate.onWriteToFile(e.path)}catch(t){console.log("FS.trackingDelegate['onWriteToFile']('"+e.path+"') threw an exception: "+t.message)}return n},allocate:function(e,t,i){if(Se.isClosed(e))throw new Se.ErrnoError(8);if(t<0||i<=0)throw new Se.ErrnoError(28);if(0==(2097155&e.flags))throw new Se.ErrnoError(8);if(!Se.isFile(e.node.mode)&&!Se.isDir(e.node.mode))throw new Se.ErrnoError(43);if(!e.stream_ops.allocate)throw new Se.ErrnoError(138);e.stream_ops.allocate(e,t,i)},mmap:function(e,t,i,r,s,a,o){if(0!=(2&a)&&0==(2&o)&&2!=(2097155&e.flags))throw new Se.ErrnoError(2);if(1==(2097155&e.flags))throw new Se.ErrnoError(2);if(!e.stream_ops.mmap)throw new Se.ErrnoError(43);return e.stream_ops.mmap(e,t,i,r,s,a,o)},msync:function(e,t,i,r,s){return e&&e.stream_ops.msync?e.stream_ops.msync(e,t,i,r,s):0},munmap:function(e){return 0},ioctl:function(e,t,i){if(!e.stream_ops.ioctl)throw new Se.ErrnoError(59);return e.stream_ops.ioctl(e,t,i)},readFile:function(e,t){if((t=t||{}).flags=t.flags||"r",t.encoding=t.encoding||"binary","utf8"!==t.encoding&&"binary"!==t.encoding)throw new Error('Invalid encoding type "'+t.encoding+'"');var i,r=Se.open(e,t.flags),s=Se.stat(e).size,a=new Uint8Array(s);return Se.read(r,a,0,s,0),"utf8"===t.encoding?i=T(a,0):"binary"===t.encoding&&(i=a),Se.close(r),i},writeFile:function(e,t,i){(i=i||{}).flags=i.flags||"w";var r=Se.open(e,i.flags,i.mode);if("string"==typeof t){var s=new Uint8Array(x(t)+1),a=K(t,s,0,s.length);Se.write(r,s,0,a,void 0,i.canOwn)}else{if(!ArrayBuffer.isView(t))throw new Error("Unsupported data type");Se.write(r,t,0,t.byteLength,void 0,i.canOwn)}Se.close(r)},cwd:function(){return Se.currentPath},chdir:function(e){var t=Se.lookupPath(e,{follow:!0});if(null===t.node)throw new Se.ErrnoError(44);if(!Se.isDir(t.node.mode))throw new Se.ErrnoError(54);var i=Se.nodePermissions(t.node,"x");if(i)throw new Se.ErrnoError(i);Se.currentPath=t.path},createDefaultDirectories:function(){Se.mkdir("/tmp"),Se.mkdir("/home"),Se.mkdir("/home/web_user")},createDefaultDevices:function(){var e;if(Se.mkdir("/dev"),Se.registerDevice(Se.makedev(1,3),{read:function(){return 0},write:function(e,t,i,r,s){return r}}),Se.mkdev("/dev/null",Se.makedev(1,3)),Ce.register(Se.makedev(5,0),Ce.default_tty_ops),Ce.register(Se.makedev(6,0),Ce.default_tty1_ops),Se.mkdev("/dev/tty",Se.makedev(5,0)),Se.mkdev("/dev/tty1",Se.makedev(6,0)),"object"==typeof crypto&&"function"==typeof crypto.getRandomValues){var t=new Uint8Array(1);e=function(){return crypto.getRandomValues(t),t[0]}}else if(r)try{var i=require("crypto");e=function(){return i.randomBytes(1)[0]}}catch(e){}e||(e=function(){le("no cryptographic support found for random_device. consider polyfilling it if you want to use something insecure like Math.random(), e.g. put this in a --pre-js: var crypto = { getRandomValues: function(array) { for (var i = 0; i < array.length; i++) array[i] = (Math.random()*256)|0 } };")}),Se.createDevice("/dev","random",e),Se.createDevice("/dev","urandom",e),Se.mkdir("/dev/shm"),Se.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){Se.mkdir("/proc"),Se.mkdir("/proc/self"),Se.mkdir("/proc/self/fd"),Se.mount({mount:function(){var e=Se.createNode("/proc/self","fd",16895,73);return e.node_ops={lookup:function(e,t){var i=+t,r=Se.getStream(i);if(!r)throw new Se.ErrnoError(8);var s={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return r.path}}};return s.parent=s,s}},e}},{},"/proc/self/fd")},createStandardStreams:function(){wu.stdin?Se.createDevice("/dev","stdin",wu.stdin):Se.symlink("/dev/tty","/dev/stdin"),wu.stdout?Se.createDevice("/dev","stdout",null,wu.stdout):Se.symlink("/dev/tty","/dev/stdout"),wu.stderr?Se.createDevice("/dev","stderr",null,wu.stderr):Se.symlink("/dev/tty1","/dev/stderr");var e=Se.open("/dev/stdin","r"),t=Se.open("/dev/stdout","w"),i=Se.open("/dev/stderr","w");S(0===e.fd,"invalid handle for stdin ("+e.fd+")"),S(1===t.fd,"invalid handle for stdout ("+t.fd+")"),S(2===i.fd,"invalid handle for stderr ("+i.fd+")")},ensureErrnoError:function(){Se.ErrnoError||(Se.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){for(var t in this.errno=e,we)if(we[t]===e){this.code=t;break}},this.setErrno(e),this.message=Ie[e],this.stack&&(Object.defineProperty(this,"stack",{value:(new Error).stack,writable:!0}),this.stack=pe(this.stack))},Se.ErrnoError.prototype=new Error,Se.ErrnoError.prototype.constructor=Se.ErrnoError,[44].forEach((function(e){Se.genericErrors[e]=new Se.ErrnoError(e),Se.genericErrors[e].stack="<generic error, no stack>"})))},staticInit:function(){Se.ensureErrnoError(),Se.nameTable=new Array(4096),Se.mount(fe,{},"/"),Se.createDefaultDirectories(),Se.createDefaultDevices(),Se.createSpecialDirectories(),Se.filesystems={MEMFS:fe}},init:function(e,t,i){S(!Se.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)"),Se.init.initialized=!0,Se.ensureErrnoError(),wu.stdin=e||wu.stdin,wu.stdout=t||wu.stdout,wu.stderr=i||wu.stderr,Se.createStandardStreams()},quit:function(){Se.init.initialized=!1;var e=wu._fflush;e&&e(0);for(var t=0;t<Se.streams.length;t++){var i=Se.streams[t];i&&Se.close(i)}},getMode:function(e,t){var i=0;return e&&(i|=365),t&&(i|=146),i},joinPath:function(e,t){var i=ye.join.apply(null,e);return t&&"/"==i[0]&&(i=i.substr(1)),i},absolutePath:function(e,t){return Ee.resolve(t,e)},standardizePath:function(e){return ye.normalize(e)},findObject:function(e,t){var i=Se.analyzePath(e,t);return i.exists?i.object:(me(i.error),null)},analyzePath:function(e,t){try{e=(r=Se.lookupPath(e,{follow:!t})).path}catch(e){}var i={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var r=Se.lookupPath(e,{parent:!0});i.parentExists=!0,i.parentPath=r.path,i.parentObject=r.node,i.name=ye.basename(e),r=Se.lookupPath(e,{follow:!t}),i.exists=!0,i.path=r.path,i.object=r.node,i.name=r.node.name,i.isRoot="/"===r.path}catch(e){i.error=e.errno}return i},createFolder:function(e,t,i,r){var s=ye.join2("string"==typeof e?e:Se.getPath(e),t),a=Se.getMode(i,r);return Se.mkdir(s,a)},createPath:function(e,t,i,r){e="string"==typeof e?e:Se.getPath(e);for(var s=t.split("/").reverse();s.length;){var a=s.pop();if(a){var o=ye.join2(e,a);try{Se.mkdir(o)}catch(e){}e=o}}return o},createFile:function(e,t,i,r,s){var a=ye.join2("string"==typeof e?e:Se.getPath(e),t),o=Se.getMode(r,s);return Se.create(a,o)},createDataFile:function(e,t,i,r,s,a){var o=t?ye.join2("string"==typeof e?e:Se.getPath(e),t):e,n=Se.getMode(r,s),l=Se.create(o,n);if(i){if("string"==typeof i){for(var h=new Array(i.length),A=0,d=i.length;A<d;++A)h[A]=i.charCodeAt(A);i=h}Se.chmod(l,146|n);var c=Se.open(l,"w");Se.write(c,i,0,i.length,0,a),Se.close(c),Se.chmod(l,n)}return l},createDevice:function(e,t,i,r){var s=ye.join2("string"==typeof e?e:Se.getPath(e),t),a=Se.getMode(!!i,!!r);Se.createDevice.major||(Se.createDevice.major=64);var o=Se.makedev(Se.createDevice.major++,0);return Se.registerDevice(o,{open:function(e){e.seekable=!1},close:function(e){r&&r.buffer&&r.buffer.length&&r(10)},read:function(e,t,r,s,a){for(var o=0,n=0;n<s;n++){var l;try{l=i()}catch(e){throw new Se.ErrnoError(29)}if(void 0===l&&0===o)throw new Se.ErrnoError(6);if(null==l)break;o++,t[r+n]=l}return o&&(e.node.timestamp=Date.now()),o},write:function(e,t,i,s,a){for(var o=0;o<s;o++)try{r(t[i+o])}catch(e){throw new Se.ErrnoError(29)}return s&&(e.node.timestamp=Date.now()),o}}),Se.mkdev(s,a,o)},createLink:function(e,t,i,r,s){var a=ye.join2("string"==typeof e?e:Se.getPath(e),t);return Se.symlink(i,a)},forceLoadFile:function(e){if(e.isDevice||e.isFolder||e.link||e.contents)return!0;var t=!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!A)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=Be(A(e.url),!0),e.usedBytes=e.contents.length}catch(e){t=!1}return t||me(29),t},createLazyFile:function(e,t,i,r,s){function a(){this.lengthKnown=!1,this.chunks=[]}if(a.prototype.get=function(e){if(!(e>this.length-1||e<0)){var t=e%this.chunkSize,i=e/this.chunkSize|0;return this.getter(i)[t]}},a.prototype.setDataGetter=function(e){this.getter=e},a.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",i,!1),e.send(null),!(e.status>=200&&e.status<300||304===e.status))throw new Error("Couldn't load "+i+". Status: "+e.status);var t,r=Number(e.getResponseHeader("Content-length")),s=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,a=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,o=1048576;s||(o=r);var n=this;n.setDataGetter((function(e){var t=e*o,s=(e+1)*o-1;if(s=Math.min(s,r-1),void 0===n.chunks[e]&&(n.chunks[e]=function(e,t){if(e>t)throw new Error("invalid range ("+e+", "+t+") or no bytes requested!");if(t>r-1)throw new Error("only "+r+" bytes available! programmer error!");var s=new XMLHttpRequest;if(s.open("GET",i,!1),r!==o&&s.setRequestHeader("Range","bytes="+e+"-"+t),"undefined"!=typeof Uint8Array&&(s.responseType="arraybuffer"),s.overrideMimeType&&s.overrideMimeType("text/plain; charset=x-user-defined"),s.send(null),!(s.status>=200&&s.status<300||304===s.status))throw new Error("Couldn't load "+i+". Status: "+s.status);return void 0!==s.response?new Uint8Array(s.response||[]):Be(s.responseText||"",!0)}(t,s)),void 0===n.chunks[e])throw new Error("doXHR failed!");return n.chunks[e]})),!a&&r||(o=r=1,r=this.getter(0).length,o=r,console.log("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=r,this._chunkSize=o,this.lengthKnown=!0},"undefined"!=typeof XMLHttpRequest){if(!h)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var o=new a;Object.defineProperties(o,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var n={isDevice:!1,contents:o}}else n={isDevice:!1,url:i};var l=Se.createFile(e,t,n,r,s);n.contents?l.contents=n.contents:n.url&&(l.contents=null,l.url=n.url),Object.defineProperties(l,{usedBytes:{get:function(){return this.contents.length}}});var A={};return Object.keys(l.stream_ops).forEach((function(e){var t=l.stream_ops[e];A[e]=function(){if(!Se.forceLoadFile(l))throw new Se.ErrnoError(29);return t.apply(null,arguments)}})),A.read=function(e,t,i,r,s){if(!Se.forceLoadFile(l))throw new Se.ErrnoError(29);var a=e.node.contents;if(s>=a.length)return 0;var o=Math.min(a.length-s,r);if(S(o>=0),a.slice)for(var n=0;n<o;n++)t[i+n]=a[s+n];else for(n=0;n<o;n++)t[i+n]=a.get(s+n);return o},l.stream_ops=A,l},createPreloadedFile:function(e,t,i,r,s,a,o,n,l,h){Browser.init();var A=t?Ee.resolve(ye.join2(e,t)):e,d=function(e){for(var t=e;;){if(!ae[e])return e;e=t+Math.random()}return e}("cp "+A);function c(i){function c(i){h&&h(),n||Se.createDataFile(e,t,i,r,s,l),a&&a(),ne(d)}var u=!1;wu.preloadPlugins.forEach((function(e){u||e.canHandle(A)&&(e.handle(i,A,c,(function(){o&&o(),ne(d)})),u=!0)})),u||c(i)}oe(d),"string"==typeof i?Browser.asyncLoad(i,(function(e){c(e)}),o):c(i)},indexedDB:function(){return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:function(){return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(e,t,i){t=t||function(){},i=i||function(){};var r=Se.indexedDB();try{var s=r.open(Se.DB_NAME(),Se.DB_VERSION)}catch(e){return i(e)}s.onupgradeneeded=function(){console.log("creating db"),s.result.createObjectStore(Se.DB_STORE_NAME)},s.onsuccess=function(){var r=s.result.transaction([Se.DB_STORE_NAME],"readwrite"),a=r.objectStore(Se.DB_STORE_NAME),o=0,n=0,l=e.length;function h(){0==n?t():i()}e.forEach((function(e){var t=a.put(Se.analyzePath(e).object.contents,e);t.onsuccess=function(){++o+n==l&&h()},t.onerror=function(){n++,o+n==l&&h()}})),r.onerror=i},s.onerror=i},loadFilesFromDB:function(e,t,i){t=t||function(){},i=i||function(){};var r=Se.indexedDB();try{var s=r.open(Se.DB_NAME(),Se.DB_VERSION)}catch(e){return i(e)}s.onupgradeneeded=i,s.onsuccess=function(){var r=s.result;try{var a=r.transaction([Se.DB_STORE_NAME],"readonly")}catch(e){return void i(e)}var o=a.objectStore(Se.DB_STORE_NAME),n=0,l=0,h=e.length;function A(){0==l?t():i()}e.forEach((function(e){var t=o.get(e);t.onsuccess=function(){Se.analyzePath(e).exists&&Se.unlink(e),Se.createDataFile(ye.dirname(e),ye.basename(e),t.result,!0,!0,!0),++n+l==h&&A()},t.onerror=function(){l++,n+l==h&&A()}})),a.onerror=i},s.onerror=i}},Me={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function(e,t){if("/"!==t[0]){var i;if(-100===e)i=Se.cwd();else{var r=Se.getStream(e);if(!r)throw new Se.ErrnoError(8);i=r.path}t=ye.join2(i,t)}return t},doStat:function(e,t,i){try{var r=e(t)}catch(e){if(e&&e.node&&ye.normalize(t)!==ye.normalize(Se.getPath(e.node)))return-54;throw e}return b[i>>2]=r.dev,b[i+4>>2]=0,b[i+8>>2]=r.ino,b[i+12>>2]=r.mode,b[i+16>>2]=r.nlink,b[i+20>>2]=r.uid,b[i+24>>2]=r.gid,b[i+28>>2]=r.rdev,b[i+32>>2]=0,Ae=[r.size>>>0,(he=r.size,+_(he)>=1?he>0?(0|te(+ee(he/4294967296),4294967295))>>>0:~~+$((he-+(~~he>>>0))/4294967296)>>>0:0)],b[i+40>>2]=Ae[0],b[i+44>>2]=Ae[1],b[i+48>>2]=4096,b[i+52>>2]=r.blocks,b[i+56>>2]=r.atime.getTime()/1e3|0,b[i+60>>2]=0,b[i+64>>2]=r.mtime.getTime()/1e3|0,b[i+68>>2]=0,b[i+72>>2]=r.ctime.getTime()/1e3|0,b[i+76>>2]=0,Ae=[r.ino>>>0,(he=r.ino,+_(he)>=1?he>0?(0|te(+ee(he/4294967296),4294967295))>>>0:~~+$((he-+(~~he>>>0))/4294967296)>>>0:0)],b[i+80>>2]=Ae[0],b[i+84>>2]=Ae[1],0},doMsync:function(e,t,i,r){var s=new Uint8Array(B.subarray(e,e+i));Se.msync(t,s,0,i,r)},doMkdir:function(e,t){return"/"===(e=ye.normalize(e))[e.length-1]&&(e=e.substr(0,e.length-1)),Se.mkdir(e,t,0),0},doMknod:function(e,t,i){switch(61440&t){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return Se.mknod(e,t,i),0},doReadlink:function(e,t,i){if(i<=0)return-28;var r=Se.readlink(e),s=Math.min(i,x(r)),a=k[t+s];return q(r,t,i+1),k[t+s]=a,s},doAccess:function(e,t){if(-8&t)return-28;var i;if(!(i=Se.lookupPath(e,{follow:!0}).node))return-44;var r="";return 4&t&&(r+="r"),2&t&&(r+="w"),1&t&&(r+="x"),r&&Se.nodePermissions(i,r)?-2:0},doDup:function(e,t,i){var r=Se.getStream(i);return r&&Se.close(r),Se.open(e,t,0,i,i).fd},doReadv:function(e,t,i,r){for(var s=0,a=0;a<i;a++){var o=b[t+8*a>>2],n=b[t+(8*a+4)>>2],l=Se.read(e,k,o,n,r);if(l<0)return-1;if(s+=l,l<n)break}return s},doWritev:function(e,t,i,r){for(var s=0,a=0;a<i;a++){var o=b[t+8*a>>2],n=b[t+(8*a+4)>>2],l=Se.write(e,k,o,n,r);if(l<0)return-1;s+=l}return s},varargs:0,get:function(e){return Me.varargs+=4,b[Me.varargs-4>>2]},getStr:function(){return L(Me.get())},getStreamFromFD:function(e){void 0===e&&(e=Me.get());var t=Se.getStream(e);if(!t)throw new Se.ErrnoError(8);return t},get64:function(){var e=Me.get(),t=Me.get();return S(e>=0?0===t:-1===t),e},getZero:function(){S(0===Me.get())}},ve={};function ke(){if(!ke.strings){var e={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:o};for(var t in ve)e[t]=ve[t];var i=[];for(var t in e)i.push(t+"="+e[t]);ke.strings=i}return ke.strings}function Be(e,t,i){var r=i>0?i:x(e)+1,s=new Array(r),a=K(e,s,0,s.length);return t&&(s.length=a),s}q("GMT",1341232,4),Se.staticInit();var De={__cxa_allocate_exception:function(e){return jt(e)},__cxa_throw:function(e,t,i){throw"uncaught_exception"in Wt?Wt.uncaught_exceptions++:Wt.uncaught_exceptions=1,e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."},__lock:function(){},__syscall221:function(e,t){Me.varargs=t;try{var i=Me.getStreamFromFD();switch(Me.get()){case 0:return(r=Me.get())<0?-28:Se.open(i.path,i.flags,0,r).fd;case 1:case 2:case 13:case 14:return 0;case 3:return i.flags;case 4:var r=Me.get();return i.flags|=r,0;case 12:r=Me.get();return D[r+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return me(28),-1}}catch(e){return void 0!==Se&&e instanceof Se.ErrnoError||le(e),-e.errno}},__syscall3:function(e,t){Me.varargs=t;try{var i=Me.getStreamFromFD(),r=Me.get(),s=Me.get();return Se.read(i,k,r,s)}catch(e){return void 0!==Se&&e instanceof Se.ErrnoError||le(e),-e.errno}},__syscall5:function(e,t){Me.varargs=t;try{var i=Me.getStr(),r=Me.get(),s=Me.get();return Se.open(i,r,s).fd}catch(e){return void 0!==Se&&e instanceof Se.ErrnoError||le(e),-e.errno}},__unlock:function(){},abort:function(){le()},clock:function e(){return void 0===e.start&&(e.start=Date.now()),1e3*(Date.now()-e.start)|0},emscripten_memcpy_big:function(e,t,i){B.set(B.subarray(t,t+i),e)},emscripten_resize_heap:function(e){var t=k.length;S(e>t);var i=65536,r=2147418112;if(e>r)return E("Cannot enlarge memory, asked to go up to "+e+" bytes, but the limit is "+r+" bytes!"),!1;for(var s=Math.max(t,16777216);s<e;)(s=s<=536870912?F(2*s,i):Math.min(F((3*s+2147483648)/4,i),r))===t&&C("Cannot ask for more memory since we reached the practical limit in browsers (which is just below 2GB), so the request would have failed. Requesting only "+k.length);return!!function(e){try{return m.grow(e-v.byteLength+65535>>16),U(m.buffer),1}catch(t){console.error("emscripten_realloc_buffer: Attempted to grow heap from "+v.byteLength+" bytes to "+e+" bytes, but got error: "+t)}}(s)||(E("Failed to grow the heap from "+t+" bytes to "+s+" bytes, not enough memory!"),!1)},environ_get:function(e,t){var i=ke(),r=0;return i.forEach((function(i,s){var a=t+r;b[e+4*s>>2]=a,function(e,t,i){for(var r=0;r<e.length;++r)S(e.charCodeAt(r)==e.charCodeAt(r)&255),k[t++>>0]=e.charCodeAt(r);i||(k[t>>0]=0)}(i,a),r+=i.length+1})),0},environ_sizes_get:function(e,t){var i=ke();b[e>>2]=i.length;var r=0;return i.forEach((function(e){r+=e.length+1})),b[t>>2]=r,0},fd_close:function(e){try{var t=Me.getStreamFromFD(e);return Se.close(t),0}catch(e){return void 0!==Se&&e instanceof Se.ErrnoError||le(e),e.errno}},fd_fdstat_get:function(e,t){try{var i=Me.getStreamFromFD(e),r=i.tty?2:Se.isDir(i.mode)?3:Se.isLink(i.mode)?7:4;return k[t>>0]=r,0}catch(e){return void 0!==Se&&e instanceof Se.ErrnoError||le(e),e.errno}},fd_seek:function(e,t,i,r,s){try{var a=Me.getStreamFromFD(e),o=4294967296*i+(t>>>0),n=9007199254740992;return o<=-n||o>=n?-61:(Se.llseek(a,o,r),Ae=[a.position>>>0,(he=a.position,+_(he)>=1?he>0?(0|te(+ee(he/4294967296),4294967295))>>>0:~~+$((he-+(~~he>>>0))/4294967296)>>>0:0)],b[s>>2]=Ae[0],b[s+4>>2]=Ae[1],a.getdents&&0===o&&0===r&&(a.getdents=null),0)}catch(e){return void 0!==Se&&e instanceof Se.ErrnoError||le(e),e.errno}},fd_write:function(e,t,i,r){try{var s=Me.getStreamFromFD(e),a=Me.doWritev(s,t,i);return b[r>>2]=a,0}catch(e){return void 0!==Se&&e instanceof Se.ErrnoError||le(e),e.errno}},gettimeofday:function(e){var t=Date.now();return b[e>>2]=t/1e3|0,b[e+4>>2]=t%1e3*1e3|0,0},memory:m,round:function(e){return(e=+e)>=0?+ee(e+.5):+$(e-.5)},setTempRet0:function(e){},table:I,time:function(e){var t=Date.now()/1e3|0;return e&&(b[e>>2]=t),t}},be=function(){var e={env:De,wasi_unstable:De};function t(e,t){var i=e.exports;wu.asm=i,ne("wasm-instantiate")}oe("wasm-instantiate");var i=wu;function r(e){S(wu===i,"the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?"),i=null,t(e.instance)}function s(t){return(g||!l&&!h||"function"!=typeof fetch?new Promise((function(e,t){e(ue())})):fetch(ce,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+ce+"'";return e.arrayBuffer()})).catch((function(){return ue()}))).then((function(t){return WebAssembly.instantiate(t,e)})).then(t,(function(e){E("failed to asynchronously prepare wasm: "+e),le(e)}))}if(wu.instantiateWasm)try{return wu.instantiateWasm(e,t)}catch(e){return E("Module.instantiateWasm callback failed with error: "+e),!1}return function(){if(g||"function"!=typeof WebAssembly.instantiateStreaming||(t=ce,String.prototype.startsWith?t.startsWith(de):0===t.indexOf(de))||"function"!=typeof fetch)return s(r);var t;fetch(ce,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(r,(function(e){E("wasm streaming compile failed: "+e),E("falling back to ArrayBuffer instantiation"),s(r)}))}))}(),{}}(),Qe=be.__wasm_call_ctors;be.__wasm_call_ctors=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Qe.apply(null,arguments)};var Re=be.WasmDecoder_Check;be.WasmDecoder_Check=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Re.apply(null,arguments)};var Te=be.WasmDecoder_Init;be.WasmDecoder_Init=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Te.apply(null,arguments)};var Le=be.WasmDecoder_Deinit;be.WasmDecoder_Deinit=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Le.apply(null,arguments)};var Ke=be.WasmDecoder_OpenChannel;be.WasmDecoder_OpenChannel=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ke.apply(null,arguments)};var qe=be.WasmDecoder_InputFlvStream;be.WasmDecoder_InputFlvStream=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),qe.apply(null,arguments)};var xe=be.WasmDecoder_GetFlvDecodeData;be.WasmDecoder_GetFlvDecodeData=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),xe.apply(null,arguments)};var Fe=be.WasmDecoder_InputFlvStreamAndDecode;be.WasmDecoder_InputFlvStreamAndDecode=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Fe.apply(null,arguments)};var Ue=be.WasmDecoder_OpenVideoDecoder;be.WasmDecoder_OpenVideoDecoder=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ue.apply(null,arguments)};var Ge=be.WasmDecoder_OpenAudioDecoder;be.WasmDecoder_OpenAudioDecoder=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ge.apply(null,arguments)};var Oe=be.WasmDecoder_DecodeVideoFrame;be.WasmDecoder_DecodeVideoFrame=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Oe.apply(null,arguments)};var Je=be.WasmDecoder_DecodeAudioFrame;be.WasmDecoder_DecodeAudioFrame=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Je.apply(null,arguments)};var Ye=be.WasmDecoder_CloseChannel;be.WasmDecoder_CloseChannel=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ye.apply(null,arguments)};var Ne=be.WasmDecoder_ConvertFrame2Image;be.WasmDecoder_ConvertFrame2Image=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ne.apply(null,arguments)};var Pe=be.WasmDecoder_ReleaseImageData;be.WasmDecoder_ReleaseImageData=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Pe.apply(null,arguments)};var je=be.WasmDecoder_CreateMP4File;be.WasmDecoder_CreateMP4File=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),je.apply(null,arguments)};var ze=be.WasmDecoder_WriteData;be.WasmDecoder_WriteData=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ze.apply(null,arguments)};var We=be.WasmDecoder_ReleaseMP4File;be.WasmDecoder_ReleaseMP4File=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),We.apply(null,arguments)};var Ze=be.main;be.main=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ze.apply(null,arguments)};var Ve=be.free;be.free=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ve.apply(null,arguments)};var He=be.malloc;be.malloc=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),He.apply(null,arguments)};var Xe=be.__errno_location;be.__errno_location=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Xe.apply(null,arguments)};var _e=be.fflush;be.fflush=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),_e.apply(null,arguments)};var $e=be._get_tzname;be._get_tzname=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),$e.apply(null,arguments)};var et=be._get_daylight;be._get_daylight=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),et.apply(null,arguments)};var tt=be._get_timezone;be._get_timezone=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),tt.apply(null,arguments)};var it=be.setThrew;be.setThrew=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),it.apply(null,arguments)};var rt=be._ZSt18uncaught_exceptionv;be._ZSt18uncaught_exceptionv=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),rt.apply(null,arguments)};var st=be.stackSave;be.stackSave=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),st.apply(null,arguments)};var at=be.stackAlloc;be.stackAlloc=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),at.apply(null,arguments)};var ot=be.stackRestore;be.stackRestore=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ot.apply(null,arguments)};var nt=be.__growWasmMemory;be.__growWasmMemory=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),nt.apply(null,arguments)};var lt=be.dynCall_ii;be.dynCall_ii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),lt.apply(null,arguments)};var ht=be.dynCall_viiiii;be.dynCall_viiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ht.apply(null,arguments)};var At=be.dynCall_viiiiiifi;be.dynCall_viiiiiifi=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),At.apply(null,arguments)};var dt=be.dynCall_viiii;be.dynCall_viiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),dt.apply(null,arguments)};var ct=be.dynCall_viii;be.dynCall_viii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ct.apply(null,arguments)};var ut=be.dynCall_iiiiiii;be.dynCall_iiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ut.apply(null,arguments)};var pt=be.dynCall_iiiiii;be.dynCall_iiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),pt.apply(null,arguments)};var gt=be.dynCall_vii;be.dynCall_vii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),gt.apply(null,arguments)};var mt=be.dynCall_iii;be.dynCall_iii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),mt.apply(null,arguments)};var yt=be.dynCall_iiii;be.dynCall_iiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),yt.apply(null,arguments)};var Et=be.dynCall_viiiiii;be.dynCall_viiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Et.apply(null,arguments)};var Ct=be.dynCall_viiiiiiiii;be.dynCall_viiiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ct.apply(null,arguments)};var ft=be.dynCall_viiiiiiii;be.dynCall_viiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),ft.apply(null,arguments)};var It=be.dynCall_iiiii;be.dynCall_iiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),It.apply(null,arguments)};var wt=be.dynCall_viiiiiiiiiiiiii;be.dynCall_viiiiiiiiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wt.apply(null,arguments)};var St=be.dynCall_viiiiiiiiiii;be.dynCall_viiiiiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),St.apply(null,arguments)};var Mt=be.dynCall_viiiiiii;be.dynCall_viiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Mt.apply(null,arguments)};var vt=be.dynCall_viiiiiiiiiiii;be.dynCall_viiiiiiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),vt.apply(null,arguments)};var kt=be.dynCall_vi;be.dynCall_vi=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),kt.apply(null,arguments)};var Bt=be.dynCall_iiiiiiiii;be.dynCall_iiiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Bt.apply(null,arguments)};var Dt=be.dynCall_viiiifii;be.dynCall_viiiifii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Dt.apply(null,arguments)};var bt=be.dynCall_fii;be.dynCall_fii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),bt.apply(null,arguments)};var Qt=be.dynCall_viiiiiiiiii;be.dynCall_viiiiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Qt.apply(null,arguments)};var Rt=be.dynCall_dd;be.dynCall_dd=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Rt.apply(null,arguments)};var Tt=be.dynCall_viifi;be.dynCall_viifi=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Tt.apply(null,arguments)};var Lt=be.dynCall_fiii;be.dynCall_fiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Lt.apply(null,arguments)};var Kt=be.dynCall_viidi;be.dynCall_viidi=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Kt.apply(null,arguments)};var qt=be.dynCall_iiiiiiii;be.dynCall_iiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),qt.apply(null,arguments)};var xt=be.dynCall_did;be.dynCall_did=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),xt.apply(null,arguments)};var Ft=be.dynCall_v;be.dynCall_v=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ft.apply(null,arguments)};var Ut=be.dynCall_viiijj;be.dynCall_viiijj=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ut.apply(null,arguments)};var Gt=be.dynCall_iiiiiiidiiddii;be.dynCall_iiiiiiidiiddii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Gt.apply(null,arguments)};var Ot=be.dynCall_jij;be.dynCall_jij=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Ot.apply(null,arguments)};var Jt=be.dynCall_jii;be.dynCall_jii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Jt.apply(null,arguments)};var Yt=be.dynCall_jiji;be.dynCall_jiji=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Yt.apply(null,arguments)};var Nt=be.dynCall_iidiiii;be.dynCall_iidiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),Nt.apply(null,arguments)},wu.asm=be;var Pt=wu.___wasm_call_ctors=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.__wasm_call_ctors.apply(null,arguments)};wu._WasmDecoder_Check=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_Check.apply(null,arguments)},wu._WasmDecoder_Init=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_Init.apply(null,arguments)},wu._WasmDecoder_Deinit=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_Deinit.apply(null,arguments)},wu._WasmDecoder_OpenChannel=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_OpenChannel.apply(null,arguments)},wu._WasmDecoder_InputFlvStream=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_InputFlvStream.apply(null,arguments)},wu._WasmDecoder_GetFlvDecodeData=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_GetFlvDecodeData.apply(null,arguments)},wu._WasmDecoder_InputFlvStreamAndDecode=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_InputFlvStreamAndDecode.apply(null,arguments)},wu._WasmDecoder_OpenVideoDecoder=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_OpenVideoDecoder.apply(null,arguments)},wu._WasmDecoder_OpenAudioDecoder=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_OpenAudioDecoder.apply(null,arguments)},wu._WasmDecoder_DecodeVideoFrame=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_DecodeVideoFrame.apply(null,arguments)},wu._WasmDecoder_DecodeAudioFrame=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_DecodeAudioFrame.apply(null,arguments)},wu._WasmDecoder_CloseChannel=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_CloseChannel.apply(null,arguments)},wu._WasmDecoder_ConvertFrame2Image=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_ConvertFrame2Image.apply(null,arguments)},wu._WasmDecoder_ReleaseImageData=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_ReleaseImageData.apply(null,arguments)},wu._WasmDecoder_CreateMP4File=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_CreateMP4File.apply(null,arguments)},wu._WasmDecoder_WriteData=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_WriteData.apply(null,arguments)},wu._WasmDecoder_ReleaseMP4File=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.WasmDecoder_ReleaseMP4File.apply(null,arguments)},wu._main=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.main.apply(null,arguments)},wu._free=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.free.apply(null,arguments)};var jt=wu._malloc=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.malloc.apply(null,arguments)};wu.___errno_location=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.__errno_location.apply(null,arguments)},wu._fflush=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.fflush.apply(null,arguments)},wu.__get_tzname=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm._get_tzname.apply(null,arguments)},wu.__get_daylight=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm._get_daylight.apply(null,arguments)},wu.__get_timezone=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm._get_timezone.apply(null,arguments)},wu._setThrew=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.setThrew.apply(null,arguments)};var zt,Wt=wu.__ZSt18uncaught_exceptionv=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm._ZSt18uncaught_exceptionv.apply(null,arguments)},Zt=wu.stackSave=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.stackSave.apply(null,arguments)},Vt=wu.stackAlloc=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.stackAlloc.apply(null,arguments)},Ht=wu.stackRestore=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.stackRestore.apply(null,arguments)};function Xt(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function _t(e){S(0==ie,'cannot call main when async dependencies remain! (listen on Module["onRuntimeInitialized"])'),S(0==z.length,"cannot call main when preRun functions remain to be called");var t=wu._main;try{!function(e,t){if(function(){var e=y,t=E,i=!1;y=E=function(e){i=!0};try{var r=wu._fflush;r&&r(0),["stdout","stderr"].forEach((function(e){var t=Se.analyzePath("/dev/"+e);if(t){var r=t.object.rdev,s=Ce.ttys[r];s&&s.output&&s.output.length&&(i=!0)}}))}catch(e){}y=e,E=t,i&&C("stdio streams had content in them that was not flushed. you should set EXIT_RUNTIME to 1 (see the FAQ), or make sure to emit a newline when you printf etc.")}(),t&&Iu&&0===e)return;Iu?t||E("program exited (with status: "+e+"), but EXIT_RUNTIME is not set, so halting execution but not exiting the runtime or preventing further async execution (build with EXIT_RUNTIME=1, if you want a true shutdown)"):(w=!0,P(),X=!0,wu.onExit&&wu.onExit(e));n(e,new Xt(e))}(t(0,0),!0)}catch(e){if(e instanceof Xt)return;if("SimulateInfiniteLoop"==e)return void(Iu=!0);var i=e;e&&"object"==typeof e&&e.stack&&(i=[e,e.stack]),E("exception thrown: "+i),n(1,e)}}function $t(e){function t(){zt||(zt=!0,w||(P(),S(!H),H=!0,wu.noFSInit||Se.init.initialized||Se.init(),j(W),P(),Se.ignorePermissions=!1,j(Z),wu.onRuntimeInitialized&&wu.onRuntimeInitialized(),ei&&_t(),function(){if(P(),wu.postRun)for("function"==typeof wu.postRun&&(wu.postRun=[wu.postRun]);wu.postRun.length;)e=wu.postRun.shift(),V.unshift(e);var e;j(V)}()))}ie>0||(N(),function(){if(wu.preRun)for("function"==typeof wu.preRun&&(wu.preRun=[wu.preRun]);wu.preRun.length;)e=wu.preRun.shift(),z.unshift(e);var e;j(z)}(),ie>0||(wu.setStatus?(wu.setStatus("Running..."),setTimeout((function(){setTimeout((function(){wu.setStatus("")}),1),t()}),1)):t(),P()))}if(wu.__growWasmMemory=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.__growWasmMemory.apply(null,arguments)},wu.dynCall_ii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_ii.apply(null,arguments)},wu.dynCall_viiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiiii.apply(null,arguments)},wu.dynCall_viiiiiifi=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiiiiifi.apply(null,arguments)},wu.dynCall_viiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiii.apply(null,arguments)},wu.dynCall_viii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viii.apply(null,arguments)},wu.dynCall_iiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_iiiiiii.apply(null,arguments)},wu.dynCall_iiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_iiiiii.apply(null,arguments)},wu.dynCall_vii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_vii.apply(null,arguments)},wu.dynCall_iii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_iii.apply(null,arguments)},wu.dynCall_iiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_iiii.apply(null,arguments)},wu.dynCall_viiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiiiii.apply(null,arguments)},wu.dynCall_viiiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiiiiiiii.apply(null,arguments)},wu.dynCall_viiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiiiiiii.apply(null,arguments)},wu.dynCall_iiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_iiiii.apply(null,arguments)},wu.dynCall_viiiiiiiiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiiiiiiiiiiiii.apply(null,arguments)},wu.dynCall_viiiiiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiiiiiiiiii.apply(null,arguments)},wu.dynCall_viiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiiiiii.apply(null,arguments)},wu.dynCall_viiiiiiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiiiiiiiiiii.apply(null,arguments)},wu.dynCall_vi=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_vi.apply(null,arguments)},wu.dynCall_iiiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_iiiiiiiii.apply(null,arguments)},wu.dynCall_viiiifii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiiifii.apply(null,arguments)},wu.dynCall_fii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_fii.apply(null,arguments)},wu.dynCall_viiiiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiiiiiiiii.apply(null,arguments)},wu.dynCall_dd=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_dd.apply(null,arguments)},wu.dynCall_viifi=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viifi.apply(null,arguments)},wu.dynCall_fiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_fiii.apply(null,arguments)},wu.dynCall_viidi=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viidi.apply(null,arguments)},wu.dynCall_iiiiiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_iiiiiiii.apply(null,arguments)},wu.dynCall_did=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_did.apply(null,arguments)},wu.dynCall_v=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_v.apply(null,arguments)},wu.dynCall_viiijj=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_viiijj.apply(null,arguments)},wu.dynCall_iiiiiiidiiddii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_iiiiiiidiiddii.apply(null,arguments)},wu.dynCall_jij=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_jij.apply(null,arguments)},wu.dynCall_jii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_jii.apply(null,arguments)},wu.dynCall_jiji=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_jiji.apply(null,arguments)},wu.dynCall_iidiiii=function(){return S(H,"you need to wait for the runtime to be ready (e.g. wait for main() to be called)"),S(!X,"the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)"),wu.asm.dynCall_iidiiii.apply(null,arguments)},wu.asm=be,Object.getOwnPropertyDescriptor(wu,"intArrayFromString")||(wu.intArrayFromString=function(){le("'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"intArrayToString")||(wu.intArrayToString=function(){le("'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),wu.ccall=M,wu.cwrap=function(e,t,i,r){return function(){return M(e,t,i,arguments)}},Object.getOwnPropertyDescriptor(wu,"setValue")||(wu.setValue=function(){le("'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"getValue")||(wu.getValue=function(){le("'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"allocate")||(wu.allocate=function(){le("'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"getMemory")||(wu.getMemory=function(){le("'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(wu,"AsciiToString")||(wu.AsciiToString=function(){le("'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"stringToAscii")||(wu.stringToAscii=function(){le("'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"UTF8ArrayToString")||(wu.UTF8ArrayToString=function(){le("'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"UTF8ToString")||(wu.UTF8ToString=function(){le("'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"stringToUTF8Array")||(wu.stringToUTF8Array=function(){le("'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"stringToUTF8")||(wu.stringToUTF8=function(){le("'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"lengthBytesUTF8")||(wu.lengthBytesUTF8=function(){le("'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"UTF16ToString")||(wu.UTF16ToString=function(){le("'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"stringToUTF16")||(wu.stringToUTF16=function(){le("'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"lengthBytesUTF16")||(wu.lengthBytesUTF16=function(){le("'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"UTF32ToString")||(wu.UTF32ToString=function(){le("'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"stringToUTF32")||(wu.stringToUTF32=function(){le("'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"lengthBytesUTF32")||(wu.lengthBytesUTF32=function(){le("'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"allocateUTF8")||(wu.allocateUTF8=function(){le("'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"stackTrace")||(wu.stackTrace=function(){le("'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"addOnPreRun")||(wu.addOnPreRun=function(){le("'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"addOnInit")||(wu.addOnInit=function(){le("'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"addOnPreMain")||(wu.addOnPreMain=function(){le("'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"addOnExit")||(wu.addOnExit=function(){le("'addOnExit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"addOnPostRun")||(wu.addOnPostRun=function(){le("'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"writeStringToMemory")||(wu.writeStringToMemory=function(){le("'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"writeArrayToMemory")||(wu.writeArrayToMemory=function(){le("'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"writeAsciiToMemory")||(wu.writeAsciiToMemory=function(){le("'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"addRunDependency")||(wu.addRunDependency=function(){le("'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(wu,"removeRunDependency")||(wu.removeRunDependency=function(){le("'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(wu,"ENV")||(wu.ENV=function(){le("'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"FS")||(wu.FS=function(){le("'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"FS_createFolder")||(wu.FS_createFolder=function(){le("'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(wu,"FS_createPath")||(wu.FS_createPath=function(){le("'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(wu,"FS_createDataFile")||(wu.FS_createDataFile=function(){le("'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(wu,"FS_createPreloadedFile")||(wu.FS_createPreloadedFile=function(){le("'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(wu,"FS_createLazyFile")||(wu.FS_createLazyFile=function(){le("'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(wu,"FS_createLink")||(wu.FS_createLink=function(){le("'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(wu,"FS_createDevice")||(wu.FS_createDevice=function(){le("'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(wu,"FS_unlink")||(wu.FS_unlink=function(){le("'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}),Object.getOwnPropertyDescriptor(wu,"GL")||(wu.GL=function(){le("'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"dynamicAlloc")||(wu.dynamicAlloc=function(){le("'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"loadDynamicLibrary")||(wu.loadDynamicLibrary=function(){le("'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"loadWebAssemblyModule")||(wu.loadWebAssemblyModule=function(){le("'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"getLEB")||(wu.getLEB=function(){le("'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"getFunctionTables")||(wu.getFunctionTables=function(){le("'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"alignFunctionTables")||(wu.alignFunctionTables=function(){le("'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"registerFunctions")||(wu.registerFunctions=function(){le("'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),wu.addFunction=function(e,t){return S(void 0!==e),f(e,t)},Object.getOwnPropertyDescriptor(wu,"removeFunction")||(wu.removeFunction=function(){le("'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"getFuncWrapper")||(wu.getFuncWrapper=function(){le("'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"prettyPrint")||(wu.prettyPrint=function(){le("'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"makeBigInt")||(wu.makeBigInt=function(){le("'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"dynCall")||(wu.dynCall=function(){le("'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"getCompilerSetting")||(wu.getCompilerSetting=function(){le("'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"stackSave")||(wu.stackSave=function(){le("'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"stackRestore")||(wu.stackRestore=function(){le("'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"stackAlloc")||(wu.stackAlloc=function(){le("'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"establishStackSpace")||(wu.establishStackSpace=function(){le("'establishStackSpace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"print")||(wu.print=function(){le("'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"printErr")||(wu.printErr=function(){le("'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"getTempRet0")||(wu.getTempRet0=function(){le("'getTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"setTempRet0")||(wu.setTempRet0=function(){le("'setTempRet0' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),wu.callMain=_t,Object.getOwnPropertyDescriptor(wu,"abort")||(wu.abort=function(){le("'abort' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"Pointer_stringify")||(wu.Pointer_stringify=function(){le("'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),Object.getOwnPropertyDescriptor(wu,"warnOnce")||(wu.warnOnce=function(){le("'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}),wu.writeStackCookie=N,wu.checkStackCookie=P,wu.abortStackOverflow=function(e){le("Stack overflow! Attempted to allocate "+e+" bytes on the stack, but stack has only "+(G-Zt()+e)+" bytes available!")},Object.getOwnPropertyDescriptor(wu,"ALLOC_NORMAL")||Object.defineProperty(wu,"ALLOC_NORMAL",{configurable:!0,get:function(){le("'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(wu,"ALLOC_STACK")||Object.defineProperty(wu,"ALLOC_STACK",{configurable:!0,get:function(){le("'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(wu,"ALLOC_DYNAMIC")||Object.defineProperty(wu,"ALLOC_DYNAMIC",{configurable:!0,get:function(){le("'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(wu,"ALLOC_NONE")||Object.defineProperty(wu,"ALLOC_NONE",{configurable:!0,get:function(){le("'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)")}}),Object.getOwnPropertyDescriptor(wu,"calledRun")||Object.defineProperty(wu,"calledRun",{configurable:!0,get:function(){le("'calledRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you")}}),se=function e(){zt||$t(),zt||(se=e)},wu.run=$t,wu.preInit)for("function"==typeof wu.preInit&&(wu.preInit=[wu.preInit]);wu.preInit.length>0;)wu.preInit.pop()();var ei=!0;wu.noInitialRun&&(ei=!1),Iu=!0,$t()},module:wu},{loadWasmModule:Mu,module:vu}=Su;class ku extends ko{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),this._opt={},this.TAG_NAME="EasyPro",this.$container=null,Object.keys(e).forEach((t=>{if(void 0===e[t])throw new Error(`EasyPro option "${t}" can not be undefined`)})),this._timestamp=0,this.originalOptions=e;const t=ho();let i=Object.assign({},t,e);i.url="",i.isMulti&&(i.debugUuid="xxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))),this.debug=new Ks(this),this.debug.log("EasyPro","init");let r=e.container;if("string"==typeof e.container&&(r=document.querySelector(e.container)),!r)throw this.debug.error("EasyPro","EasyPro need container option and now container is",e.container),new Error("EasyPro need container option");if(i.decoder&&po(-1!==i.decoder.indexOf("decoder-pro.js")||-1!==i.decoder.indexOf("decoder-pro-simd.js")))throw this.debug.error("EasyPro",`EasyPro decoder ${i.decoder} must be decoder-pro.js or decoder-pro-simd.js`),new Error(`EasyPro decoder ${i.decoder} must be decoder-pro.js or decoder-pro-simd.js`);if("CANVAS"===r.nodeName||"VIDEO"===r.nodeName)throw this.debug.error("EasyPro",`EasyPro container type can not be ${r.nodeName} type`),new Error(`EasyPro container type can not be ${r.nodeName} type`);if(i.videoBuffer>=i.heartTimeout)throw this.debug.error("EasyPro",`EasyPro videoBuffer ${i.videoBuffer}s must be less than heartTimeout ${i.heartTimeout}s`),new Error(`EasyPro videoBuffer ${i.videoBuffer}s must be less than heartTimeout ${i.heartTimeout}s`);if(this._checkHasCreated(r))throw this.debug.error("EasyPro","EasyPro container has been created and can not be created again",r),new Error("EasyPro container has been created and can not be created again",r);var s,a,o;if(r.classList.add("easyplayer-container"),s=r,a=Ae,o=Sa(),s&&(s.dataset?s.dataset[a]=o:s.setAttribute("data-"+a,o)),po(i.isLive)){const e=document.createElement("video");return e.muted=!0,e.setAttribute("controlsList","nodownload"),e.disablePictureInPicture="disablePictureInPicture",e.style.position="absolute",e.style.top=0,e.style.left=0,e.style.height="100%",e.style.width="100%",r.appendChild(e),this.$videoElement=e,this.$container=r,void(this._opt=i)}if(delete i.container,La(i.videoBuffer)&&(i.videoBuffer=1e3*Number(i.videoBuffer)),La(i.videoBufferDelay)&&(i.videoBufferDelay=1e3*Number(i.videoBufferDelay)),La(i.networkDelay)&&(i.networkDelay=1e3*Number(i.networkDelay)),La(i.aiFaceDetectInterval)&&(i.aiFaceDetectInterval=1e3*Number(i.aiFaceDetectInterval)),La(i.aiObjectDetectInterval)&&(i.aiObjectDetectInterval=1e3*Number(i.aiObjectDetectInterval)),La(i.timeout)&&(Ra(i.loadingTimeout)&&(i.loadingTimeout=i.timeout),Ra(i.heartTimeout)&&(i.heartTimeout=i.timeout)),La(i.autoWasm)&&(Ra(i.decoderErrorAutoWasm)&&(i.decoderErrorAutoWasm=i.autoWasm),Ra(i.hardDecodingNotSupportAutoWasm)&&(i.hardDecodingNotSupportAutoWasm=i.autoWasm)),La(i.aiFaceDetectLevel)&&Ra(i.aiFaceDetectWidth)){const e=os[i.aiFaceDetectLevel];e&&(i.aiFaceDetectWidth=e)}if(La(i.aiObjectDetectLevel)&&Ra(i.aiObjectDetectWidth)){const e=ns[i.aiObjectDetectLevel];e&&(i.aiObjectDetectWidth=e)}uo(i.isCrypto)&&(i.isM7sCrypto=!0),this._opt=i,this._destroyed=!1,this.$container=r,this._tempPlayBgObj={},this._tempVideoLastIframeInfo={},this._tempPlayerIsMute=!0,this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0,this.events=new vo(this),this._opt.isUseNewFullscreenWatermark?this.watermark=new Nc(this):this.watermark=new Yc(this),this.memoryLogger=new fu(this),this._websocket1006ErrorRetryLog=[],this._mseDecodeErrorRetryLog=[],this._wcsDecodeErrorRetryLog=[],this.$loadingBgImage=null,this.$loadingBg=null,this._initPlayer(r,i),this._initWatermark(),this.debug.log("EasyPro",'init success and version is "2024-9-14"'),console.log(`Version ${ne}`)}destroy(){return new Promise(((e,t)=>{this.debug.log("EasyPro","destroy()"),this._destroyed=!0,this.off(),this.$videoElement&&(this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.srcObject&&(this.$videoElement.srcObject=null,this.$videoElement.removeAttribute("srcObject")),this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$container&&this.$container.removeChild(this.$videoElement),this.$videoElement=null),this._removeLoadingBackgroundForIOS(),this.player?this.player.destroy().then((()=>{this.player=null,this._destroy(),setTimeout((()=>{e()}),0)})).catch((()=>{t()})):(this._destroy(),setTimeout((()=>{e()}),0))}))}_destroy(){var e,t;this.events&&(this.events.destroy(),this.events=null),this.talk&&(this.talk.destroy(),this.talk=null),this.watermark&&(this.watermark.destroy(),this.watermark=null),this.memoryLogger&&(this.memoryLogger.destroy(),this.memoryLogger=null),this.$container&&(this.$container.classList.remove("easyplayer-container"),this.$container.classList.remove("easyplayer-fullscreen-web"),e=this.$container,t=Ae,e&&(e.dataset?delete e.dataset[t]:e.removeAttribute("data-"+t)),this.$container=null),this._resetOpt(),this._tempPlayBgObj=null,this._tempVideoLastIframeInfo=null,this._tempPlayerIsMute=!0,this._resetReplayTimes(),this.debug&&this.debug.log("EasyPro","destroy end")}_resetOpt(){this._opt=ho()}_resetReplayTimes(){this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0,this._websocket1006ErrorRetryLog=[],this._mseDecodeErrorRetryLog=[],this._wcsDecodeErrorRetryLog=[]}_getOriginalOpt(){const e=ho();return Object.assign({},e,this.originalOptions)}_initPlayer(e,t){this.player=new Tc(e,t),this._bindEvents()}_initTalk(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.talk&&(this.talk.destroy(),this.talk=null),this.player&&(e.debug=this.player._opt.debug),this.talk=new Jc(this.player,e),this.debug.log("EasyPro","_initTalk",this.talk.getOption()),this._bindTalkEvents()}_resetPlayerEvents(e){if(this.player&&this.player._opt.hardDecodingNotSupportAutoWasm){this.debug.log("EasyPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play");const t=this._opt.url,i=this._opt.playOptions;this._resetPlayer(e).then((()=>{this.play(t,i).then((()=>{this.debug.log("EasyPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play success")})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mediaSourceH265NotSupport,error),this.debug.error("EasyPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play error",e)}))})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mediaSourceH265NotSupport,{},error),this.debug.error("EasyPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] _resetPlayer error",e)}))}else{const e=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(e).then((()=>{this.emit(yt.playFailedAndPaused,It.mediaSourceH265NotSupport,{},error),this.debug.log("EasyPro","mediaSourceH265NotSupport and autoWasm is false")})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mediaSourceH265NotSupport,{},error),this.debug.error("EasyPro","mediaSourceH265NotSupport and pause error",e)}))}}_resetPlayer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(((t,i)=>{this.debug.log(this.TAG_NAME,"_resetPlayer()",JSON.stringify(e));const r=()=>{this._opt.url="",this._opt.playOptions={},this._opt=Object.assign(this._opt,e),this._initPlayer(this.$container,this._opt)};this.player?this.player.destroy().then((()=>{this.player=null,r(),setTimeout((()=>{this.debug.log(this.TAG_NAME,"_resetPlayer() end"),t()}),0)})):(r(),setTimeout((()=>{this.debug.log(this.TAG_NAME,"_resetPlayer() end"),t()}),0))}))}_bindEvents(){var e=this;Object.keys(Et).forEach((t=>{this.player.on(Et[t],(function(){for(var i=arguments.length,r=new Array(i),s=0;s<i;s++)r[s]=arguments[s];e.emit(t,...r)}))})),this._opt.playFailedAndPausedShowMessage&&this.on(yt.playFailedAndPaused,(e=>{this.player&&this.player.showTipsMessageByCode(e)})),this.player.once(yt.supportHlsH265,(()=>{this._resetPlayerEvents({supportHls265:!0})})),this.player.once(yt.beforeDestroy,(()=>{this.emit(yt.close),this.destroy().then((()=>{})).catch((e=>{}))})),this.player.on(yt.resize,(()=>{this.watermark&&this.watermark.resize()})),this.player.on(yt.screenshots,(()=>{this.emit(yt.screenshots,!0)})),this.player.on(yt.contextmenuClose,(e=>{this.emit(yt.contextmenuClose,e)})),this.player.on(yt.reset,(e=>{this._resetPlayerEvents(e)})),this.player.on(yt.playbackResetPause,(e=>{this._resetPlayerEvents({supportHls265:!0}),setTimeout((()=>{this.player.hlsDecoder.hls.setPtsIndex(e)}),1e3)})),this.player.on(yt.fullscreen,(()=>{this.watermark&&this.watermark.resize()})),this.player.on(yt.videoInfo,(()=>{this.player&&(this.player.singleWatermark&&this.player.singleWatermark.resize(),this.player.ghostWatermark&&this.player.ghostWatermark.resize(),this.player.dynamicWatermark&&this.player.dynamicWatermark.resize())})),this.player.on(yt.memoryLog,(function(){e.memoryLogger.logCache(...arguments)})),this.player.on(yt.downloadMemoryLog,(()=>{this.downloadMemoryLog()}))}_bindTalkEvents(){Object.keys(Ct).forEach((e=>{this.player.on(Ct[e],(t=>{this.emit(e,t)}))}))}_initWatermark(){if(Pa(this._opt.fullscreenWatermarkConfig)){const e=qa(this.$container,this._opt.fullscreenWatermarkConfig);if(!e.watermark_txt)return void this.debug.warn("EasyPro","fullscreenWatermarkConfig text is empty");this.watermark.load(e)}}_checkHasCreated(e){if(!e)return!1;const t=function(e,t){return e?e.dataset?e.dataset[t]:e.getAttribute("data-"+t):""}(e,Ae);return!!t}isDestroyed(){return this._destroyed}getOption(){return this.player?this.player.getOption():{}}setDebug(e){this.debug.log("EasyPro",`setDebug() ${e}`),this._opt.debug=!!e,this.player?this.player.updateOption({debug:!!e},!0):this.debug.warn("EasyPro","player is not init")}getIsDebug(){let e=!1;return this.player&&(e=this.player._opt.debug),e}mute(){this.debug.log("EasyPro","mute()"),this.player&&this.player.mute(!0)}cancelMute(){this.debug.log("EasyPro","cancelMute()"),this.player&&this.player.mute(!1)}setVolume(e){this.debug.log("EasyPro",`setVolume() ${e}`),this.player&&(this.player.volume=e)}getVolume(){let e=null;return this.player&&(e=this.player.volume,e=parseFloat(e).toFixed(2)),e}audioResume(){this.debug.log("EasyPro","audioResume()"),this.player&&this.player.audio?this.player.audio.audioEnabled(!0):this.debug.warn("EasyPro","audioResume error")}setTimeout(e){this.debug.log("EasyPro",`setTimeout() ${e}`),e=Number(e),isNaN(e)?this.debug.warn("EasyPro",`setTimeout error: ${e} is not a number`):(this._opt.timeout=e,this._opt.loadingTimeout=e,this._opt.heartTimeout=e,this.player&&this.player.updateOption({timeout:e,loadingTimeout:e,heartTimeout:e}))}setScaleMode(e){this.debug.log("EasyPro",`setScaleMode() ${e}`),this.player?this.player.setScaleMode(e):this.debug.warn("EasyPro","setScaleMode() player is null")}pause(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return new Promise(((t,i)=>{this.debug.log("EasyPro",`pause() ${e}`),(this._opt.pauseAndNextPlayUseLastFrameShow||this._opt.replayUseLastFrameShow)&&(this._tempPlayBgObj=this._getVideoLastIframeInfo()),this._tempPlayerIsMute=this.isMute(),this._pause(e).then((e=>{t(e)})).catch((e=>{i(e)}))}))}_pause(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return new Promise(((t,i)=>{if(this.debug.log("EasyPro",`_pause() ${e}`),this.isDestroyed())return i("EasyPro is destroyed");this._resetReplayTimes(),this.player?this.player.pause(e).then((e=>{t(e)})).catch((e=>{i(e)})):i("player is null")}))}close(){return new Promise(((e,t)=>{this.debug.log("EasyPro","close()"),this._opt.url="",this._resetReplayTimes(),this.player?this.player.close().then((()=>{e()})).catch((e=>{t(e)})):t("player is null")}))}clearView(){this.debug.log("EasyPro","clearView()"),this.player&&this.player.video?this.getRenderType()===ee?this.player.video.clearView():this.debug.warn("EasyPro","clearView","render type is video, not support clearView, please use canvas render type"):this.debug.warn("EasyPro","clearView","player is null")}play(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((i,r)=>{if(this.debug.log("EasyPro",`play() ${e}`,JSON.stringify(t)),!e&&!this._opt.url)return this.emit(yt.error,It.playError),void r("url is null and this._opt.url is null");let s=e.replace("webrtcs:","webrtc:");if(s&&(s=(""+s).trim(),-1===s.indexOf("http:")&&-1===s.indexOf("https:")&&-1===s.indexOf("webrtc:")&&-1===s.indexOf("ws:")&&-1===s.indexOf("wss:")&&-1===s.indexOf("wt:")&&-1===s.indexOf("artc:")))return r(`url ${s} must be "http:" or "https:" or "webrtc:" or "ws:" or "wss" or "wt:" or "artc:" protocol`);if(po(this._opt.isLive))return this.$videoElement.controls="controls",this.$videoElement.muted=!1,this.$videoElement.src=s,this.$videoElement.play(),void i(this.$videoElement);if(this._opt.isM7sCrypto){let e=t.cryptoKey||this._opt.playOptions.cryptoKey,a=t.cryptoIV||this._opt.playOptions.cryptoIV;if(this._opt.m7sCryptoKey&&(!e||!a)){const t=this._opt.m7sCryptoKey.split(".");e=oo(t[0]),a=oo(t[1])}if(!e||!a){const e=s||this._opt.url;return void this._cryptoPlay(e).then((e=>{let{cryptoIV:a,cryptoKey:o}=e;this._opt.playOptions.cryptoKey=o,this._opt.playOptions.cryptoIV=a,t.cryptoIV=a,t.cryptoKey=o,this._playBefore(s,t).then((()=>{i()})).catch((e=>{r(e)}))})).catch((e=>{r(e)}))}this._opt.playOptions.cryptoKey=e,this._opt.playOptions.cryptoIV=a,t.cryptoIV=a,t.cryptoKey=e}else if(this._opt.isXorCrypto){let e=t.cryptoKey||this._opt.playOptions.cryptoKey,i=t.cryptoIV||this._opt.playOptions.cryptoIV;if(this._opt.xorCryptoKey&&(!e||!i)){const t=this._opt.xorCryptoKey.split(".");e=oo(t[0]),i=oo(t[1])}e&&i&&(this._opt.playOptions.cryptoKey=e,this._opt.playOptions.cryptoIV=i,t.cryptoIV=i,t.cryptoKey=e)}this._playBefore(s,t).then((()=>{i()})).catch((e=>{r(e)}))}))}_playBefore(e,t){return new Promise(((i,r)=>{if(this.player)if(e)if(this._opt.url)if(e===this._opt.url)if(this.player.playing)this.debug.log("EasyPro","_playBefore","playing and resolve()"),i();else{this.debug.log("EasyPro","_playBefore","this._opt.url === url and pause -> play and destroy play");let e=this._getOriginalOpt();(this._opt.pauseAndNextPlayUseLastFrameShow||this._opt.replayUseLastFrameShow)&&this._tempPlayBgObj&&this._tempPlayBgObj.loadingBackground&&(e=Object.assign(e,this._tempPlayBgObj)),po(this._tempPlayerIsMute)&&(e.isNotMute=!0,this._tempPlayerIsMute=!0);const t=this._opt.url,s=this._opt.playOptions;this._resetPlayer(e).then((()=>{this._play(t,s).then((()=>{i()})).catch((e=>{this.debug.error("EasyPro","_playBefore this.player.play error",e),this.emit(yt.crashLog,this.getCrashLog("this.player.play 1",e)),r(e)}))})).catch((e=>{this.debug.error("EasyPro","_resetPlayer error",e)}))}else{this.debug.log("EasyPro","_playBefore",`\n this._url.url is ${this._opt.url}\n and new url is ${e}\n and destroy and play new url`);const s=this._getOriginalOpt();this._resetPlayer(s).then((()=>{this._play(e,t).then((()=>{i()})).catch((e=>{this.debug.error("EasyPro","_playBefore _play error",e),this.emit(yt.crashLog,this.getCrashLog("this.player.play 2",e)),r(e)}))})).catch((e=>{this.debug.error("EasyPro","_resetPlayer error",e)}))}else this._play(e,t).then((()=>{i()})).catch((e=>{this.debug.error("EasyPro","_playBefore _play error",e),this.emit(yt.crashLog,this.getCrashLog("this.player.play 3",e)),r(e)}));else{let e=this._getOriginalOpt();(this._opt.pauseAndNextPlayUseLastFrameShow||this._opt.replayUseLastFrameShow)&&this._tempPlayBgObj&&this._tempPlayBgObj.loadingBackground&&(e=Object.assign(e,this._tempPlayBgObj)),po(this._tempPlayerIsMute)&&(e.isNotMute=!0,this._tempPlayerIsMute=!0);const t=this._opt.url,s=this._opt.playOptions;this._resetPlayer(e).then((()=>{this._play(t,s).then((()=>{i()})).catch((e=>{this.debug.error("EasyPro","_playBefore _play error",e),this.emit(yt.crashLog,this.getCrashLog("this.player.play 4",e)),r(e)}))})).catch((e=>{this.debug.error("EasyPro","_resetPlayer error",e)}))}else e?this._play(e,t).then((()=>{i()})).catch((e=>{this.debug.error("EasyPro","_playBefore _play error",e),this.emit(yt.crashLog,this.getCrashLog("this.player.play 5",e)),r(e)})):this._play(this._opt.url,this._opt.playOptions).then((()=>{i()})).catch((e=>{this.debug.error("EasyPro","_playBefore _play error",e),this.emit(yt.crashLog,this.getCrashLog("this.player.play 6",e)),r(e)}))}))}_cryptoPlay(e){return new Promise(((t,i)=>{const r=function(e){const t=(e||document.location.toString()).split("//"),i=t[1].indexOf("/");let r=t[1].substring(i);return-1!=r.indexOf("?")&&(r=r.split("?")[0]),r}(e);let s=this._opt.cryptoKeyUrl,a="";const o=no(e);if(s){if(a=s,this._opt.isM7sCrypto&&-1===a.indexOf(`${he}?stream=`)){const e=no(s);a=e.origin+he+`?stream=${r}`}}else s=o.origin+he,a=s+`?stream=${r}`;var n;this.player.debug.log("EasyPro",`_cryptoPlay() cryptoKeyUrl: ${a} and opt.cryptoKeyUrl: ${this._opt.cryptoKeyUrl}`),(n=a,new Promise(((e,t)=>{kl.get(n).then((t=>{e(t)})).catch((e=>{t(e)}))}))).then((e=>{if(e){const r=e.split("."),s=oo(r[0]),a=oo(r[1]);a&&s?t({cryptoIV:a,cryptoKey:s}):i("get cryptoIV or cryptoKey error")}else i(`cryptoKeyUrl: getM7SCryptoStreamKey ${a} res is null`)})).catch((e=>{i(e)}))}))}playback(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((i,r)=>{if(this.debug.log("EasyPro",`playback() ${e}, options: ${JSON.stringify(t)}`),po(this._opt.isLive))return r("this._opt.isLive is false, can not playback");e.endsWith(".mp4")?t.isUseLocalCalculateTime=!0:t.isUseLocalCalculateTime=!1;const s=Ao(),a=Object.assign({},s.playbackConfig,this._opt.playbackConfig,t);a.isUseFpsRender||a.isCacheBeforeDecodeForFpsRender&&(a.isCacheBeforeDecodeForFpsRender=!1,this.debug.warn("EasyPro","playbackConfig.isUseFpsRender is false, isCacheBeforeDecodeForFpsRender can not be ture, isCacheBeforeDecodeForFpsRender is set to false")),0===a.rateConfig.length&&a.showRateBtn&&(a.showRateBtn=!1,this.debug.warn("EasyPro","playbackConfig.rateConfig.length is 0, showRateBtn can not be ture, showRateBtn is set to false")),a.controlType,oe.simple,this._resetPlayer({videoBuffer:0,playbackConfig:a,playType:v,openWebglAlignment:!0,useMSE:a.useMSE,useWCS:a.useWCS,useSIMD:!0}).then((()=>{this.play(e,t).then((()=>{i()})).catch((e=>{r(e)}))})).catch((e=>{r(e)}))}))}playbackPause(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return this.debug.log("EasyPro",`playbackPause() ${e}`),this._opt.playType===S?Promise.reject("playType is player, can not call playbackPause method"):new Promise(((t,i)=>{if(!this.player)return i("player is null");uo(e)?this._pause().then((()=>{t()})).catch((e=>{i(e)})):(this.player.playbackPause=!0,t())}))}playbackResume(){return this.debug.log("EasyPro","playbackResume()"),this._opt.playType===S?Promise.reject("playType is player, can not call playbackResume method"):new Promise(((e,t)=>{if(!this.player)return t("player is null");this.player.playbackPause=!1,e()}))}forward(e){return this.debug.log("EasyPro",`forward() ${e}`),po(this._opt.isLive)||this._opt.playType===S?Promise.reject("forward() method only just for playback type"):va(Number(e))?new Promise(((t,i)=>{this.player?(e=ha(Number(e),.1,32),this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"playbackRate",value:e}),this.player.playback.setRate(e),this.player.video&&this.player.video.setRate(e),this.player.audio&&this.player.audio.setRate(e),(this.player.isPlaybackUseWCS()||this.player.isPlaybackUseMSE())&&(this.player.demux.dropBuffer$2(),this.player.isPlaybackCacheBeforeDecodeForFpsRender()&&this.player.demux.initPlaybackCacheLoop()),t()):i("player is not playing")})):Promise.reject(`forward() params "rate": ${e} must be number type`)}playbackForward(e){return this.forward(e)}normal(){return this.forward(1)}playbackNormal(){return this.normal()}updatePlaybackForwardMaxRateDecodeIFrame(e){this.debug.log("EasyPro",`updatePlaybackForwardMaxRateDecodeIFrame() ${e}`),e=Number(e),e=ha(e=parseInt(e,10),1,8),this._opt.playbackForwardMaxRateDecodeIFrame=e,this.player?this.player.updateOption({playbackForwardMaxRateDecodeIFrame:e},!0):this.debug.warn("EasyPro","updatePlaybackForwardMaxRateDecodeIFrame() player is null")}setPlaybackStartTime(e){this.debug.log("EasyPro",`setPlaybackStartTime() ${e}`);const t=Ya(e);if(this.player)if(this.player.isPlayback()){if(t<10&&0!==e&&this.player.playback.isControlTypeNormal())this.debug.warn("EasyPro",`setPlaybackStartTime() control type is normal and timestamp: ${e} is not valid`);else if(this.player.playback.isControlTypeSimple()&&e>this.player.playback.totalDuration)this.debug.warn("EasyPro",`setPlaybackStartTime() control type is simple and timestamp: ${e} is more than ${this.player.playback.totalDuration}`);else if(this.player.playing)if(this.player.playback.isControlTypeNormal()&&10===t&&(e*=1e3),this.player.video&&this.player.video.$videoElement&&"Video"==this.player.video.TAG_NAME){this.player.emit(yt.loading,!0);let t=e;if(this.player._opt.isMp4)if(0==this.player.playback.totalDuration);else{let i=Math.round(this.player.video.getDurationTime())-this.player.playback.totalDuration;t=e+i}this.player.video.$videoElement.currentTime=t}else{if(this._timestamp==e)return;this._timestamp!=e&&(this._timestamp=e),setTimeout((()=>{this._timestamp=0}),2e3),this.player.hlsDecoder.hls.getPtsIndex()<e?(this.player.emit(yt.loading,!0),this.playbackClearCacheBuffer(),this.player.hlsDecoder.hls._playlist.setNextSegmentByIndex(e),this.player.hlsDecoder.hls.setPtsIndex(1e3*e),this.player.hlsDecoder.hls.loadSegment()):(this._resetPlayerEvents({supportHls265:!0}),setTimeout((()=>{this.player.hlsDecoder.hls._playlist.setNextSegmentByIndex(e),this.player.hlsDecoder.hls.setPtsIndex(1e3*e),this.player.hlsDecoder.hls.loadSegment()}),1e3))}}else this.debug.warn("EasyPro","setPlaybackStartTime() playType is not playback");else this.debug.warn("EasyPro","setPlaybackStartTime() player is null")}setPlaybackShowPrecision(e){this.debug.log("EasyPro",`setPlaybackShowPrecision() ${e}`),this.player?this.player.isPlayback()?this.player.playback.isControlTypeNormal()?this.player.playback.setShowPrecision(e):this.debug.warn("EasyPro","control type is not normal , not support!"):this.debug.warn("EasyPro","playType is not playback"):this.debug.warn("EasyPro","player is null")}playbackCurrentTimeScroll(){this.debug.log("EasyPro","playbackCurrentTimeScroll()"),this.player?this.player.isPlayback()?this.player.playback.isControlTypeNormal()?this.player.playback.currentTimeScroll():this.debug.warn("EasyPro","control type is not normal , not support!"):this.debug.warn("EasyPro","playType is not playback"):this.debug.warn("EasyPro","player is null")}playbackClearCacheBuffer(){this.debug.log("EasyPro","playbackClearCacheBuffer()"),this.player?this.player.isPlayback()?(this.player.video&&this.player.video.clear(),this.player.audio&&this.player.audio.clear(),this.clearBufferDelay()):this.debug.warn("EasyPro","playType is not playback"):this.debug.warn("EasyPro","player is null")}getPlaybackCurrentRate(){if(this.player){if(this.player.isPlayback())return this.player.getPlaybackRate();this.debug.warn("EasyPro","playType is not playback")}else this.debug.warn("EasyPro","player is null")}updatePlaybackLocalOneFrameTimestamp(e){this.debug.log("EasyPro",`updatePlaybackLocalOneFrameTimestamp() ${e}`),this.player?this.player.isPlayback()?this.player.playback.updateLocalOneFrameTimestamp(e):this.debug.warn("EasyPro","playType is not playback"):this.debug.warn("EasyPro","player is null")}setStreamQuality(e){if(this.debug.log("EasyPro",`setStreamQuality() ${e}`),!this.player)return void this.debug.warn("EasyPro","player is null");if(!this.player._opt.operateBtns.quality)return void this.debug.warn("EasyPro","player._opt.operateBtns.quality is false");(this.player._opt.qualityConfig||[]).includes(e)?this.player.streamQuality=e:this.debug.warn("EasyPro",`quality: ${e} is not in qualityList`)}_play(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((r,s)=>{if(!this.player)return s("player is null");let p=!1;this._opt.url&&this._opt.url!==t&&(p=!0),this._opt.url=t,this._opt.playOptions=i;const g=t.split("?")[0];$a()&&(this._opt.useMSE=!1,this._opt.useWCS=!1,this._opt.useSIMD=!0);const m=g.startsWith("http://")||g.startsWith("https://"),y=g.startsWith("webrtc://"),E=g.startsWith("artc://"),C=g.startsWith("wt://"),f=g.startsWith("ws://")||g.startsWith("wss://"),I=m||f,w=f&&g.includes("/api/devices/"),S=m&&g.endsWith(".m3u8"),M=m&&g.endsWith(".mp4"),v=I&&g.endsWith(".flv"),k=I&&(g.endsWith(".fmp4")||g.endsWith(".mp4")),B=I&&g.endsWith(".mpeg4"),D=I&&(g.endsWith(".h264")||g.endsWith(".h265")),b=I&&g.endsWith(".ts");k?this._opt.isFlv=!1:this._opt.isFmp4=!1;let Y=this._opt.isWebrtcForZLM||!1,N=this._opt.isWebrtcForSRS||!1,P=this._opt.isWebrtcForOthers||!1;y&&(-1!==t.indexOf("/index/api/webrtc")?(Y=!0,N=!1,P=!1):-1!==t.indexOf("/rtc/v1/play/")&&(N=!0,Y=!1,P=!1));let j=null,W=null;if(v&&po(this._opt.isFlv)&&this._resetDemuxType("isFlv"),k&&po(this._opt.isFmp4)&&this._resetDemuxType("isFmp4"),B&&po(this._opt.isMpeg4)&&this._resetDemuxType("isMpeg4"),D&&po(this._opt.isNakedFlow)&&this._resetDemuxType("isNakedFlow"),b&&po(this._opt.isTs)&&this._resetDemuxType("isTs"),w&&this._resetDemuxType("isWsRtc"),M&&this._resetDemuxType("isMp4"),j=m?M?d:S?n:o:C?h:w?c:y?l:E?A:a,this._opt.isNakedFlow?W=x:this._opt.isFmp4?W=F:this._opt.isMpeg4?W=U:this._opt.isFlv?W=Q:this._opt.isTs?W=O:w?W=J:S?W=T:M?W=L:y?W=K:E?W=G:C?W=q:f&&(W=R),!j||!W)return this._opt.playFailedAndPausedShowMessage&&this.showErrorMessageTips("url is not support"),s(`play protocol is ${u[j]}, demuxType is ${W}`);this.debug.log("EasyPro",`play protocol is ${u[j]}, demuxType is ${W}`);const Z=()=>{this.player.once(It.webglAlignmentError,(e=>{if(this.isDestroyed())this.debug.log("EasyPro","webglAlignmentError but player is destroyed");else if(this.emit(yt.crashLog,this.getCrashLog(It.webglAlignmentError,e)),this.player&&this.player._opt.webglAlignmentErrorReplay){this.debug.log("EasyPro","webglAlignmentError");const t=this._opt.url,i=this._opt.playOptions;this._resetPlayer({openWebglAlignment:!0}).then((()=>{this.play(t,i).then((()=>{this.debug.log("EasyPro","webglAlignmentError and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.webglAlignmentError,{},e),this.debug.error("EasyPro","webglAlignmentError and play error",t)}))})).catch((e=>{this.debug.error("EasyPro","webglAlignmentError and _resetPlayer error",e)}))}else{const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.webglAlignmentError,{},e),this.debug.log("EasyPro","webglAlignmentError and webglAlignmentErrorReplay is false")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.webglAlignmentError,{},e),this.debug.error("EasyPro","webglAlignmentError and pause error",t)}))}})),this.player.once(It.webglContextLostError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","webglContextLostError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.webglContextLostError,e));const t=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.webglContextLostErrorReplay){this.debug.log("EasyPro","webglContextLostError");const i=this._opt.url,r=this._opt.playOptions;let s={};this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{this.debug.log("EasyPro","webglContextLostError and play success")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.webglContextLostError,t,e),this.debug.error("EasyPro","webglContextLostError and play error",i)}))})).catch((i=>{this.emit(yt.playFailedAndPaused,It.webglContextLostError,t,e),this.debug.error("EasyPro","webglContextLostError and _resetPlayer error",i)}))}else{const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.webglContextLostError,t,e),this.debug.log("EasyPro","webglContextLostError and webglContextLostErrorReplay is false")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.webglContextLostError,t,e),this.debug.error("EasyPro","webglAlignmentError and pause error",i)}))}})),this.player.once(It.mediaSourceH265NotSupport,(e=>{if(this.isDestroyed())this.debug.log("EasyPro","mediaSourceH265NotSupport but player is destroyed");else if(this.emit(yt.crashLog,this.getCrashLog(It.mediaSourceH265NotSupport,e)),this.player&&this.player._opt.hardDecodingNotSupportAutoWasm){this.debug.log("EasyPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play");const t=this._opt.url,i=this._opt.playOptions;this._resetPlayer({useMSE:!1,useWCS:!1}).then((()=>{this.play(t,i).then((()=>{this.debug.log("EasyPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.mediaSourceH265NotSupport,e),this.debug.error("EasyPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play error",t)}))})).catch((t=>{this.emit(yt.playFailedAndPaused,It.mediaSourceH265NotSupport,{},e),this.debug.error("EasyPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] _resetPlayer error",t)}))}else{const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.mediaSourceH265NotSupport,{},e),this.debug.log("EasyPro","mediaSourceH265NotSupport and autoWasm is false")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.mediaSourceH265NotSupport,{},e),this.debug.error("EasyPro","mediaSourceH265NotSupport and pause error",t)}))}})),this.player.once(It.mediaSourceFull,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","mediaSourceFull but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.mediaSourceFull,e));const t=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.mseDecodeErrorReplay){const i=this._opt.url,r=this._opt.playOptions;let s={},a=this.player._opt.decoderErrorAutoWasm,o=!0;a?s={useMSE:!1,useWCS:!1}:this._checkIsMeaningfulRetry(Ts)?this._mseDecodeErrorRetryLog.push(la()):(a=!0,o=!1,s={useMSE:!1,useWCS:!1}),this.debug.log("EasyPro",`mediaSourceFull and auto wasm ${po(o)?" and is not meaningful Retry":""} [mse-> ${a?"wasm":"mse"}] reset player and play`),this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{this.debug.log("EasyPro","mediaSourceFull and reset player and play success")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mediaSourceFull,t,e),this.debug.error("EasyPro","mediaSourceFull and reset player and play error",i)}))})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mediaSourceFull,t,e),this.debug.error("EasyPro","mediaSourceFull and _resetPlayer error",i)}))}else{const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.mediaSourceFull,t,e),this.debug.log("EasyPro","mediaSourceFull and autoWasm is false")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mediaSourceFull,t,e),this.debug.error("EasyPro","mediaSourceFull and pause error",i)}))}})),this.player.once(It.mediaSourceAppendBufferError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","mediaSourceAppendBufferError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.mediaSourceAppendBufferError,e));const t=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.mseDecodeErrorReplay){const i=this._opt.url,r=this._opt.playOptions;let s={},a=this.player._opt.decoderErrorAutoWasm,o=!0;a?s={useMSE:!1,useWCS:!1}:this._checkIsMeaningfulRetry(Ts)?this._mseDecodeErrorRetryLog.push(la()):(a=!0,o=!1,s={useMSE:!1,useWCS:!1}),this.player.isMSEAudioDecoderError&&(this.player.debug.log("EasyPro","mediaSourceAppendBufferError and isMSEAudioDecoderError is true so set mseDecodeAudio = false"),s.mseDecodeAudio=!1),this.debug.log("EasyPro",`mediaSourceAppendBufferError and auto wasm ${po(o)?" and is not meaningful Retry":""} [mse-> ${a?"wasm":"mse"}] reset player and play`),this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{this.debug.log("EasyPro","mediaSourceAppendBufferError and reset player and play success")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAppendBufferError,t,e),this.debug.error("EasyPro","mediaSourceAppendBufferError and reset player and play error",i)}))})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAppendBufferError,t,e),this.debug.error("EasyPro","mediaSourceAppendBufferError and _resetPlayer error",i)}))}else{const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAppendBufferError,t,e),this.debug.log("EasyPro","mediaSourceAppendBufferError and autoWasm is false")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAppendBufferError,t,e),this.debug.error("EasyPro","mediaSourceAppendBufferError and pause error",i)}))}})),this.player.once(It.mseSourceBufferError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","mseSourceBufferError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.mseSourceBufferError,e));const t=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.mseDecodeErrorReplay){const i=this._opt.url,r=this._opt.playOptions;let s={};if(this.player._opt.mseDecoderUseWorker)s={mseDecoderUseWorker:!1},this.debug.log("EasyPro","mseSourceBufferError auto wasm [mse worker -> mse] reset player and play");else{let e=this.player._opt.decoderErrorAutoWasm,t=!0;e?s={useMSE:!1,useWCS:!1}:this._checkIsMeaningfulRetry(Ts)?this._mseDecodeErrorRetryLog.push(la()):(e=!0,t=!1,s={useMSE:!1,useWCS:!1}),this.player.isMSEVideoDecoderInitializationFailedNotSupportHevc&&(this.debug.log("EasyPro","mseSourceBufferError and isMSEVideoDecoderInitializationFailedNotSupportHevc is true so auto wasm"),s={useMSE:!1,useWCS:!1}),this.debug.log("EasyPro",`mseSourceBufferError auto wasm ${po(t)?" and is not meaningful Retry":""} [mse-> ${e?"wasm":"mse"}] reset player and play`)}this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{this.debug.log("EasyPro","mseSourceBufferError reset player and play success")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mseSourceBufferError,t,e),this.debug.error("EasyPro","mseSourceBufferError reset player and play error",i)}))})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mseSourceBufferError,t,e),this.debug.error("EasyPro","mseSourceBufferError _resetPlayer and play error",i)}))}else{const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.mseSourceBufferError,t,e),this.debug.log("EasyPro","mseSourceBufferError and autoWasm is false")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mseSourceBufferError,t,e),this.debug.error("EasyPro","mseSourceBufferError and pause error:",i)}))}})),this.player.once(It.mediaSourceBufferedIsZeroError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","mediaSourceBufferedIsZeroError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.mediaSourceBufferedIsZeroError,e));const t=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.mseDecodeErrorReplay){const i=this._opt.url,r=this._opt.playOptions;let s={},a=this.player._opt.decoderErrorAutoWasm,o=!0;a?s={useMSE:!1,useWCS:!1}:this._checkIsMeaningfulRetry(Ts)?this._mseDecodeErrorRetryLog.push(la()):(a=!0,o=!1,s={useMSE:!1,useWCS:!1}),this.debug.log("EasyPro",`mediaSourceBufferedIsZeroError auto wasm ${po(o)?" and is not meaningful Retry":""} [mse-> ${a?"wasm":"mse"}] reset player and play`),this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{this.debug.log("EasyPro","mediaSourceBufferedIsZeroError reset player and play success")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mediaSourceBufferedIsZeroError,t,e),this.debug.error("EasyPro","mediaSourceBufferedIsZeroError reset player and play error",i)}))})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mediaSourceBufferedIsZeroError,t,e),this.debug.error("EasyPro","mediaSourceBufferedIsZeroError _resetPlayer and play error",i)}))}else{const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.mediaSourceBufferedIsZeroError,t,e),this.debug.log("EasyPro","mediaSourceBufferedIsZeroError and autoWasm is false")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mediaSourceBufferedIsZeroError,t,e),this.debug.error("EasyPro","mediaSourceBufferedIsZeroError and pause error:",i)}))}})),this.player.once(It.mseAddSourceBufferError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","mseAddSourceBufferError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.mseAddSourceBufferError,e));const t=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.hardDecodingNotSupportAutoWasm){this.debug.log("EasyPro","mseAddSourceBufferError auto wasm [mse-> wasm] reset player and play");const i=this._opt.url,r=this._opt.playOptions;let s={useMSE:!1,useWCS:!1};this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{this.debug.log("EasyPro","mseAddSourceBufferError auto wasm [mse-> wasm] reset player and play success")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mseAddSourceBufferError,t,e),this.debug.error("EasyPro","mseAddSourceBufferError auto wasm [mse-> wasm] reset player and play error",i)}))})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mseAddSourceBufferError,t,e),this.debug.error("EasyPro","mseAddSourceBufferError auto wasm [mse-> wasm] _resetPlayer and play error",i)}))}else{const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.mseAddSourceBufferError,t,e),this.debug.log("EasyPro","mseAddSourceBufferError and autoWasm is false")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mseAddSourceBufferError,t,e),this.debug.error("EasyPro","mseAddSourceBufferError and pause error",i)}))}})),this.player.once(It.mediaSourceDecoderConfigurationError,(e=>{if(this.isDestroyed())this.debug.log("EasyPro","mediaSourceDecoderConfigurationError but player is destroyed");else if(this.emit(yt.crashLog,this.getCrashLog(It.mediaSourceDecoderConfigurationError,e)),this.player&&this.player._opt.hardDecodingNotSupportAutoWasm){this.debug.log("EasyPro","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] reset player and play");const t=this._opt.url,i=this._opt.playOptions;let r={useMSE:!1,useWCS:!1};this._resetPlayer(r).then((()=>{this.play(t,i).then((()=>{this.debug.log("EasyPro","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.mediaSourceDecoderConfigurationError,e),this.debug.error("EasyPro","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] reset player and play error",t)}))})).catch((t=>{this.emit(yt.playFailedAndPaused,It.mediaSourceDecoderConfigurationError,e),this.debug.error("EasyPro","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] _resetPlayer and play error",t)}))}else{const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.mediaSourceDecoderConfigurationError,e),this.debug.log("EasyPro","mediaSourceDecoderConfigurationError and autoWasm is false")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.mediaSourceDecoderConfigurationError,e),this.debug.error("EasyPro","mediaSourceDecoderConfigurationError and pause error",t)}))}})),this.player.once(It.mediaSourceTsIsMaxDiff,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","mediaSourceTsIsMaxDiff but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.mediaSourceTsIsMaxDiff,e));const t=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.mediaSourceTsIsMaxDiffReplay){this.debug.log("EasyPro","mediaSourceTsIsMaxDiff reset player and play");const i=this._opt.url,r=this._opt.playOptions;let s={};this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{this.debug.log("EasyPro","mediaSourceTsIsMaxDiff replay success")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mediaSourceTsIsMaxDiff,t,e),this.debug.error("EasyPro","mediaSourceTsIsMaxDiff replay error",i)}))})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mediaSourceTsIsMaxDiff,t,e),this.debug.error("EasyPro","mediaSourceTsIsMaxDiff _resetPlayer error",i)}))}else{const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.mediaSourceTsIsMaxDiff,t,e),this.debug.log("EasyPro","mediaSourceTsIsMaxDiff and replay is false")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.mediaSourceTsIsMaxDiff,t,e),this.debug.error("EasyPro","mediaSourceTsIsMaxDiff and pause error",i)}))}})),this.player.once(It.mseWidthOrHeightChange,(t=>{if(this.isDestroyed())return void this.debug.log("EasyPro","mseWidthOrHeightChange but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.mseWidthOrHeightChange,t));const i=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.widthOrHeightChangeReplay){this.debug.log("EasyPro","mseWidthOrHeightChange and reset player and play");const e=this._opt.url,r=this._opt.playOptions;let s={};this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,i,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.player._opt.widthOrHeightChangeReplayDelayTime>0?setTimeout((()=>{this.isDestroyed()?this.debug.log("EasyPro","mseWidthOrHeightChange and widthOrHeightChangeReplayDelayTime but player is destroyed"):this.play(e,r).then((()=>{this.debug.log("EasyPro","mseWidthOrHeightChange and reset player and play success")})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mseWidthOrHeightChange,i,t),this.debug.error("EasyPro","mseWidthOrHeightChange and reset player and play error",e)}))}),1e3*this.player._opt.widthOrHeightChangeReplayDelayTime):this.play(e,r).then((()=>{this.debug.log("EasyPro","mseWidthOrHeightChange and reset player and play success")})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mseWidthOrHeightChange,i,t),this.debug.error("EasyPro","mseWidthOrHeightChange and reset player and play error",e)}))})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mseWidthOrHeightChange,i,t),this.debug.error("EasyPro","mseWidthOrHeightChange and _resetPlayer error",e)}))}else{const r=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(r).then((()=>{this.emit(yt.playFailedAndPaused,It.mseWidthOrHeightChange,i,t),this.debug.error("EasyPro","mseWidthOrHeightChange and _resetPlayer error",e)})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mseWidthOrHeightChange,i,t),this.debug.error("EasyPro","mseWidthOrHeightChange error and pause error",e)}))}})),this.player.once(It.mediaSourceAudioG711NotSupport,(t=>{if(this.isDestroyed())return void this.debug.log("EasyPro","mediaSourceAudioG711NotSupport but player is destroyed");const i=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.mediaSourceAudioG711NotSupportReplay){this.debug.log("EasyPro","mediaSourceAudioG711NotSupport and reset player and play");const e=this._opt.url,r=this._opt.playOptions;let s={mseDecodeAudio:!1};this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,i,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(e,r).then((()=>{this.debug.log("EasyPro","mediaSourceAudioG711NotSupport and reset player and play success")})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAudioG711NotSupport,i,t),this.debug.error("EasyPro","mediaSourceAudioG711NotSupport and reset player and play error",e)}))})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAudioG711NotSupport,i,t),this.debug.error("EasyPro","mediaSourceAudioG711NotSupport and _resetPlayer error",e)}))}else{const r=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(r).then((()=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAudioG711NotSupport,i,t),this.debug.error("EasyPro","mediaSourceAudioG711NotSupport and _resetPlayer error",e)})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAudioG711NotSupport,i,t),this.debug.error("EasyPro","mediaSourceAudioG711NotSupport error and pause error",e)}))}})),this.player.once(It.mediaSourceAudioInitTimeout,(t=>{if(this.isDestroyed())return void this.debug.log("EasyPro","mediaSourceAudioInitTimeout but player is destroyed");const i=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.mediaSourceAudioInitTimeoutReplay){this.debug.log("EasyPro","mediaSourceAudioInitTimeout and reset player and play");const e=this._opt.url,r=this._opt.playOptions;let s={mseDecodeAudio:!1};this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,i,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(e,r).then((()=>{this.debug.log("EasyPro","mediaSourceAudioInitTimeout and reset player and play success")})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAudioInitTimeout,i,t),this.debug.error("EasyPro","mediaSourceAudioInitTimeout and reset player and play error",e)}))})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAudioInitTimeout,i,t),this.debug.error("EasyPro","mediaSourceAudioInitTimeout and _resetPlayer error",e)}))}else{const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAudioInitTimeout,i),this.debug.error("EasyPro","mediaSourceAudioInitTimeout and _resetPlayer error",e)})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAudioInitTimeout,i),this.debug.error("EasyPro","mediaSourceAudioInitTimeout error and pause error",e)}))}})),this.player.once(It.mediaSourceAudioNoDataTimeout,(t=>{if(this.isDestroyed())return void this.debug.log("EasyPro","mediaSourceAudioNoDataTimeout but player is destroyed");const i=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.mediaSourceAudioInitTimeoutReplay){this.debug.log("EasyPro","mediaSourceAudioNoDataTimeout and reset player and play");const e=this._opt.url,r=this._opt.playOptions;let s={mseDecodeAudio:!1};this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,i,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(e,r).then((()=>{this.debug.log("EasyPro","mediaSourceAudioNoDataTimeout and reset player and play success")})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAudioNoDataTimeout,i,t),this.debug.error("EasyPro","mediaSourceAudioNoDataTimeout and reset player and play error",e)}))})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAudioNoDataTimeout,i,t),this.debug.error("EasyPro","mediaSourceAudioNoDataTimeout and _resetPlayer error",e)}))}else{const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAudioNoDataTimeout,i),this.debug.error("EasyPro","mediaSourceAudioNoDataTimeout and _resetPlayer error",e)})).catch((e=>{this.emit(yt.playFailedAndPaused,It.mediaSourceAudioNoDataTimeout,i),this.debug.error("EasyPro","mediaSourceAudioNoDataTimeout error and pause error",e)}))}})),this.player.once(It.mediaSourceUseCanvasRenderPlayFailed,(e=>{if(this.isDestroyed())this.debug.log("EasyPro","mediaSourceUseCanvasRenderPlayFailed but player is destroyed");else if(this.emit(yt.crashLog,this.getCrashLog(It.mediaSourceUseCanvasRenderPlayFailed,e)),this.player&&this.player._opt.mediaSourceUseCanvasRenderPlayFailedReplay&&this.player._opt.mediaSourceUseCanvasRenderPlayFailedReplayType){this.debug.log("EasyPro",`mediaSourceUseCanvasRenderPlayFailed relayType is ${this.player._opt.mediaSourceUseCanvasRenderPlayFailedReplayType} and reset player and play`);const t=this._opt.url,i=this._opt.playOptions;let r={};const s=this.player._opt.mediaSourceUseCanvasRenderPlayFailedReplayType;s===ee?r={useMSE:!1,useWCS:!1}:s===te&&(r={useVideoRender:!0,useCanvasRender:!1}),this._resetPlayer(r).then((()=>{this.play(t,i).then((()=>{this.debug.log("EasyPro","mediaSourceUseCanvasRenderPlayFailed and reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.mediaSourceUseCanvasRenderPlayFailed,e),this.debug.error("EasyPro","mediaSourceUseCanvasRenderPlayFailed and reset player and play error",t)}))})).catch((e=>{this.debug.error("EasyPro","mediaSourceUseCanvasRenderPlayFailed auto and _resetPlayer and play error",e)}))}else{const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.debug.log("EasyPro","mediaSourceUseCanvasRenderPlayFailed and pause player success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.mediaSourceUseCanvasRenderPlayFailed,e),this.debug.error("EasyPro","mediaSourceUseCanvasRenderPlayFailed and pause",t)}))}})),this.player.once(It.webcodecsH265NotSupport,(e=>{if(this.isDestroyed())this.debug.log("EasyPro","webcodecsH265NotSupport but player is destroyed");else if(this.emit(yt.crashLog,this.getCrashLog(It.webcodecsH265NotSupport,e)),this.player&&this.player._opt.hardDecodingNotSupportAutoWasm){this.debug.log("EasyPro","webcodecsH265NotSupport auto wasm [wcs-> wasm] reset player and play");const t=this._opt.url,i=this._opt.playOptions;this._resetPlayer({useMSE:!1,useWCS:!1}).then((()=>{this.play(t,i).then((()=>{this.debug.log("EasyPro","webcodecsH265NotSupport auto wasm [wcs-> wasm] reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.webcodecsH265NotSupport,e),this.debug.error("EasyPro","webcodecsH265NotSupport auto wasm [wcs-> wasm] reset player and play error",t)}))})).catch((e=>{this.debug.error("EasyPro","webcodecsH265NotSupport auto wasm [wcs-> wasm] _resetPlayer and play error",e)}))}else{const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.webcodecsH265NotSupport,e),this.debug.log("EasyPro","webcodecsH265NotSupport and autoWasm is false")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.webcodecsH265NotSupport,e),this.debug.error("EasyPro","webcodecsH265NotSupport and pause error",t)}))}})),this.player.once(It.webcodecsUnsupportedConfigurationError,(e=>{if(this.isDestroyed())this.debug.log("EasyPro","webcodecsUnsupportedConfigurationError but player is destroyed");else if(this.emit(yt.crashLog,this.getCrashLog(It.webcodecsUnsupportedConfigurationError,e)),this.player&&this.player._opt.hardDecodingNotSupportAutoWasm){this.debug.log("EasyPro","webcodecsUnsupportedConfigurationError auto wasm [wcs-> wasm] reset player and play");const t=this._opt.url,i=this._opt.playOptions;this._resetPlayer({useMSE:!1,useWCS:!1}).then((()=>{this.play(t,i).then((()=>{this.debug.log("EasyPro","webcodecsUnsupportedConfigurationError auto wasm [wcs-> wasm] reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.webcodecsUnsupportedConfigurationError,e),this.debug.error("EasyPro","webcodecsUnsupportedConfigurationError auto wasm [wcs-> wasm] reset player and play error",t)}))})).catch((t=>{this.emit(yt.playFailedAndPaused,It.webcodecsUnsupportedConfigurationError,e),this.debug.error("EasyPro","webcodecsUnsupportedConfigurationError auto wasm [wcs-> wasm] _resetPlayer and play error",t)}))}else{const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.webcodecsUnsupportedConfigurationError,e),this.debug.log("EasyPro","webcodecsUnsupportedConfigurationError and autoWasm is false")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.webcodecsUnsupportedConfigurationError,e),this.debug.error("EasyPro","webcodecsUnsupportedConfigurationError and pause error",t)}))}})),this.player.once(It.webcodecsDecodeConfigureError,(e=>{if(this.isDestroyed())this.debug.log("EasyPro","webcodecsDecodeConfigureError but player is destroyed");else if(this.emit(yt.crashLog,this.getCrashLog(It.webcodecsDecodeConfigureError,e)),this.player&&this.player._opt.hardDecodingNotSupportAutoWasm){this.debug.log("EasyPro","webcodecsDecodeConfigureError auto wasm [wcs-> wasm] reset player and play");const t=this._opt.url,i=this._opt.playOptions;this._resetPlayer({useMSE:!1,useWCS:!1}).then((()=>{this.play(t,i).then((()=>{this.debug.log("EasyPro","webcodecsDecodeConfigureError auto wasm [wcs-> wasm] reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.webcodecsDecodeConfigureError,e),this.debug.error("EasyPro","webcodecsDecodeConfigureError auto wasm [wcs-> wasm] reset player and play error",t)}))})).catch((t=>{this.emit(yt.playFailedAndPaused,It.webcodecsDecodeConfigureError,e),this.debug.error("EasyPro","webcodecsDecodeConfigureError auto wasm [wcs-> wasm] _resetPlayer and play error",t)}))}else{const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.webcodecsDecodeConfigureError,e),this.debug.log("EasyPro","webcodecsDecodeConfigureError and autoWasm is false")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.webcodecsDecodeConfigureError,e),this.debug.error("EasyPro","webcodecsDecodeConfigureError and pause error",t)}))}})),this.player.once(It.webcodecsDecodeError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","webcodecsDecodeError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.webcodecsDecodeError,e));const t=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.wcsDecodeErrorReplay){const i=this._opt.url,r=this._opt.playOptions;let s={},a=this.player._opt.decoderErrorAutoWasm,o=!0;a?s={useMSE:!1,useWCS:!1}:this._checkIsMeaningfulRetry(Ls)?this._wcsDecodeErrorRetryLog.push(la()):(a=!0,o=!1,s={useMSE:!1,useWCS:!1}),this.debug.log("EasyPro",`webcodecs decode error autoWasm ${po(o)?" and is not meaningful Retry":""} [wcs-> ${a?"wasm":"wcs"}] reset player and play`),this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{this.debug.log("EasyPro","webcodecs decode error reset player and play success")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.webcodecsDecodeError,t,e),this.debug.error("EasyPro","webcodecs decode error reset player and play error",i)}))})).catch((()=>{this.emit(yt.playFailedAndPaused,It.webcodecsDecodeError,t,e),this.debug.error("EasyPro","webcodecs decode error _resetPlayer error")}))}else{const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.webcodecsDecodeError,t,e),this.debug.log("EasyPro","webcodecs decode error and autoWasm is false")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.webcodecsDecodeError,t,e),this.debug.error("EasyPro","webcodecs decode error and pause error",i)}))}})),this.player.once(It.wcsWidthOrHeightChange,(t=>{if(this.isDestroyed())return void this.debug.log("EasyPro","wcsWidthOrHeightChange but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.wcsWidthOrHeightChange,t));const i=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.widthOrHeightChangeReplay){this.debug.log("EasyPro","wcsWidthOrHeightChange and reset player and play");const e=this._opt.url,r=this._opt.playOptions;let s={};this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,i,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this._opt.widthOrHeightChangeReplayDelayTime>0?setTimeout((()=>{this.isDestroyed()?this.debug.log("EasyPro","wcsWidthOrHeightChange and widthOrHeightChangeReplayDelayTime but player is destroyed"):this.play(e,r).then((()=>{this.debug.log("EasyPro","wcsWidthOrHeightChange and reset player and play success")})).catch((e=>{this.emit(yt.playFailedAndPaused,It.wcsWidthOrHeightChange,i,t),this.debug.error("EasyPro","wcsWidthOrHeightChange and reset player and play error",e)}))}),1e3*this._opt.widthOrHeightChangeReplayDelayTime):this.play(e,r).then((()=>{this.debug.log("EasyPro","wcsWidthOrHeightChange and reset player and play success")})).catch((e=>{this.emit(yt.playFailedAndPaused,It.wcsWidthOrHeightChange,i,t),this.debug.error("EasyPro","wcsWidthOrHeightChange and reset player and play error",e)}))})).catch((e=>{this.emit(yt.playFailedAndPaused,It.wcsWidthOrHeightChange,i,t),this.debug.error("EasyPro","wcsWidthOrHeightChange and _resetPlayer error",e)}))}else{const r=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(r).then((()=>{this.emit(yt.playFailedAndPaused,It.wcsWidthOrHeightChange,i,t),this.debug.error("EasyPro","wcsWidthOrHeightChange and _resetPlayer error",e)})).catch((e=>{this.emit(yt.playFailedAndPaused,It.wcsWidthOrHeightChange,i,t),this.debug.error("EasyPro","wcsWidthOrHeightChange error and pause error",e)}))}})),this.player.once(It.wasmDecodeError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","wasmDecodeError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.wasmDecodeError,e));const t=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.wasmDecodeErrorReplay){this.debug.log("EasyPro","wasm decode error and reset player and play");const i=this._opt.url,r=this._opt.playOptions;let s={};this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{this.debug.log("EasyPro","wasm decode error and reset player and play success")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.wasmDecodeError,t,e),this.debug.error("EasyPro","wasm decode error and reset player and play error",i)}))})).catch((()=>{this.emit(yt.playFailedAndPaused,It.wasmDecodeError,t,e),this.debug.error("EasyPro","wasm decode error and _resetPlayer error")}))}else{const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.wasmDecodeError,t,e),this.debug.log("EasyPro","wasm decode error and wasmDecodeErrorReplay is false")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.wasmDecodeError,t,e),this.debug.error("EasyPro","wasm decode error and pause error",i)}))}})),this.player.once(It.simdDecodeError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","simdDecodeError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.simdDecodeError,e));const t=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.simdDecodeErrorReplay){this.debug.log("EasyPro",`simdDecodeError error simdDecodeErrorReplayType is ${this.player._opt.simdDecodeErrorReplayType} and reset player and play`);const i=this._opt.url,r=this._opt.playOptions;let s={};this.player._opt.simdDecodeErrorReplayType===z&&(s={useSIMD:!1}),this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{this.debug.log("EasyPro","simdDecodeError and reset player and play success")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.simdDecodeError,t,e),this.debug.error("EasyPro","simdDecodeError and reset player and play error",i)}))})).catch((i=>{this.emit(yt.playFailedAndPaused,It.simdDecodeError,t,e),this.debug.error("EasyPro","simdDecodeError and _resetPlayer error",i)}))}else{const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.simdDecodeError,t,e),this.debug.error("EasyPro","simdDecodeError and simdDecodeErrorReplay is false")})).catch((i=>{this.emit(yt.playFailedAndPaused,It.simdDecodeError,t,e),this.debug.error("EasyPro","simdDecodeError error and pause error",i)}))}})),this.player.once(It.wasmWidthOrHeightChange,(t=>{if(this.isDestroyed())return void this.debug.log("EasyPro","wasmWidthOrHeightChange but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.wasmWidthOrHeightChange,t));const i=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.widthOrHeightChangeReplay){this.debug.log("EasyPro","wasmWidthOrHeightChange and reset player and play");const e=this._opt.url,r=this._opt.playOptions;let s={};this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,i,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this._opt.widthOrHeightChangeReplayDelayTime>0?setTimeout((()=>{this.isDestroyed()?this.debug.log("EasyPro","wasmWidthOrHeightChange and widthOrHeightChangeReplayDelayTime but player is destroyed"):this.play(e,r).then((()=>{this.debug.log("EasyPro","wasmWidthOrHeightChange and reset player and play success")})).catch((e=>{this.emit(yt.playFailedAndPaused,It.wasmWidthOrHeightChange,i,t),this.debug.error("EasyPro","wasmWidthOrHeightChange and reset player and play error",e)}))}),1e3*this._opt.widthOrHeightChangeReplayDelayTime):this.play(e,r).then((()=>{this.debug.log("EasyPro","wasmWidthOrHeightChange and reset player and play success")})).catch((e=>{this.emit(yt.playFailedAndPaused,It.wasmWidthOrHeightChange,i,t),this.debug.error("EasyPro","wasmWidthOrHeightChange and reset player and play error",e)}))})).catch((e=>{this.emit(yt.playFailedAndPaused,It.wasmWidthOrHeightChange,i,t),this.debug.error("EasyPro","wasmWidthOrHeightChange and _resetPlayer error",e)}))}else{const r=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(r).then((()=>{this.emit(yt.playFailedAndPaused,It.wasmWidthOrHeightChange,i,t),this.debug.error("EasyPro","wasmWidthOrHeightChange and _resetPlayer error",e)})).catch((e=>{this.emit(yt.playFailedAndPaused,It.wasmWidthOrHeightChange,i),this.debug.error("EasyPro","wasmWidthOrHeightChange error and pause error",e)}))}})),this.player.once(It.wasmUseVideoRenderError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","wasmUseVideoRenderError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.wasmUseVideoRenderError,e)),this.debug.log("EasyPro","wasmUseVideoRenderError and reset player and play");const t=this._opt.url,i=this._opt.playOptions;this._resetPlayer({useVideoRender:!1,useCanvasRender:!0}).then((()=>{this.play(t,i).then((()=>{this.debug.log("EasyPro","wasmUseVideoRenderError and reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.wasmUseVideoRenderError,{},e),this.debug.error("EasyPro","wasmUseVideoRenderError and reset player and play error",t)}))})).catch((t=>{this.emit(yt.playFailedAndPaused,It.wasmUseVideoRenderError,{},e),this.debug.error("EasyPro","wasmUseVideoRenderError and _resetPlayer error",t)}))})),this.player.once(It.videoElementPlayingFailed,(e=>{if(this.isDestroyed())this.debug.log("EasyPro","videoElementPlayingFailed but player is destroyed");else if(this.emit(yt.crashLog,this.getCrashLog(It.videoElementPlayingFailed,e)),this.player&&this.player._opt.videoElementPlayingFailedReplay){this.debug.log("EasyPro",`videoElementPlayingFailed and useMSE is ${this._opt.useMSE} and reset player and play`);const t=this._opt.url,i=this._opt.playOptions;this._resetPlayer({useMSE:!1,useVideoRender:!1,useCanvasRender:!0}).then((()=>{this.play(t,i).then((()=>{this.debug.log("EasyPro","videoElementPlayingFailed and reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.videoElementPlayingFailed,{},e),this.debug.error("EasyPro","videoElementPlayingFailed and reset player and play error",t)}))})).catch((t=>{this.emit(yt.playFailedAndPaused,It.videoElementPlayingFailed,{},e),this.debug.error("EasyPro","videoElementPlayingFailed and _resetPlayer error",t)}))}else{const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.videoElementPlayingFailed,{},e),this.debug.error("EasyPro","videoElementPlayingFailed and videoElementPlayingFailedReplay is false")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.videoElementPlayingFailed,{},e),this.debug.error("EasyPro","videoElementPlayingFailed and _pause error",t)}))}})),this.player.once(It.simdH264DecodeVideoWidthIsTooLarge,(e=>{if(this.isDestroyed())this.debug.log("EasyPro","simdH264DecodeVideoWidthIsTooLarge but player is destroyed");else if(this.emit(yt.crashLog,this.getCrashLog(It.simdH264DecodeVideoWidthIsTooLarge,e)),this.player&&this.player._opt.simdH264DecodeVideoWidthIsTooLargeReplay){this.debug.log("EasyPro","simdH264DecodeVideoWidthIsTooLarge and reset player and play");const t=this._opt.url,i=this._opt.playOptions;this._resetPlayer({useSIMD:!1}).then((()=>{this.play(t,i).then((()=>{this.debug.log("EasyPro","simdH264DecodeVideoWidthIsTooLarge and reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.simdH264DecodeVideoWidthIsTooLarge,{},e),this.debug.error("EasyPro","simdH264DecodeVideoWidthIsTooLarge and reset player and play error",t)}))})).catch((t=>{this.emit(yt.playFailedAndPaused,It.simdH264DecodeVideoWidthIsTooLarge,{},e),this.debug.error("EasyPro","simdH264DecodeVideoWidthIsTooLarge and _resetPlayer error",t)}))}else{const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.simdH264DecodeVideoWidthIsTooLarge,{},e),this.debug.error("EasyPro","simdH264DecodeVideoWidthIsTooLarge and simdDecodeErrorReplay is false")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.simdH264DecodeVideoWidthIsTooLarge,{},e),this.debug.error("EasyPro","simdH264DecodeVideoWidthIsTooLarge and pause error",t)}))}})),this.player.once(yt.networkDelayTimeout,(e=>{if(this.player._opt.networkDelayTimeoutReplay){if(this.isDestroyed())return void this.debug.log("EasyPro","networkDelayTimeout but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(yt.networkDelayTimeout,e));const t=this._getVideoLastIframeInfo();this.debug.log("EasyPro","network delay time out and reset player and play");const i=this._opt.url,r=this._opt.playOptions;let s={};this.player&&this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{this.debug.log("EasyPro","wasm decode error and reset player and play success")})).catch((i=>{this.emit(yt.playFailedAndPaused,yt.networkDelayTimeout,t,e),this.debug.error("EasyPro","wasm decode error and reset player and play error",i)}))})).catch((()=>{this.emit(yt.playFailedAndPaused,yt.networkDelayTimeout,t,e),this.debug.error("EasyPro","wasm decode error and _resetPlayer error")}))}})),this.player.once(yt.flvDemuxBufferSizeTooLarge,(e=>{if(this.player._opt.flvDemuxBufferSizeTooLargeReplay){if(this.isDestroyed())return void this.debug.log("EasyPro","flvDemuxBufferSizeTooLarge but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(yt.flvDemuxBufferSizeTooLarge,e));const t=this._getVideoLastIframeInfo();this.debug.log("EasyPro","flv Demux Buffer Size Too Large and reset player and play");const i=this._opt.url,r=this._opt.playOptions;let s={};this.player&&this.player._opt.replayUseLastFrameShow&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{this.debug.log("EasyPro","flv Demux Buffer Size Too Large and reset player and play success")})).catch((i=>{this.emit(yt.playFailedAndPaused,yt.flvDemuxBufferSizeTooLarge,t,e),this.debug.error("EasyPro","flv Demux Buffer Size Too Large and reset player and play error",i)}))})).catch((()=>{this.emit(yt.playFailedAndPaused,yt.flvDemuxBufferSizeTooLarge,t,e),this.debug.error("EasyPro","flv Demux Buffer Size Too Large and _resetPlayer error")}))}})),this.player.once(It.fetchError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","fetchError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.fetchError,e));const t=this._getVideoLastIframeInfo();let i={};if(this.player._opt.replayUseLastFrameShow&&(i=Object.assign({},i,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(i.isNotMute=!0),this.player._opt.streamErrorReplay){this.debug.log("EasyPro","fetch error and streamErrorReplay is true next replay");const t=this._opt.playOptions,r=this._opt.url;this._resetPlayer(i).then((()=>{setTimeout((()=>{this.isDestroyed()?this.debug.log("EasyPro","fetch error but player is destroyed and return"):this.play(r,t).then((()=>{this.debug.log("EasyPro","fetch error and reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.fetchError,{},e),this.debug.error("EasyPro","fetch error and reset player and play error",t)}))}),1e3*this._opt.streamErrorReplayDelayTime)})).catch((t=>{this.emit(yt.playFailedAndPaused,It.fetchError,{},e),this.debug.error("EasyPro","fetch error and _resetPlayer error",t)}))}else{this.debug.log("EasyPro","fetch error and pause player");const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.fetchError,t,e)})).catch((i=>{this.emit(yt.playFailedAndPaused,It.fetchError,t,e),this.debug.error("EasyPro","fetch error and pause",i)}))}})),this.player.once(yt.streamEnd,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","streamEnd but player is destroyed and return");this.emit(yt.crashLog,this.getCrashLog(yt.streamEnd,e));const t=this._getVideoLastIframeInfo(),i=this._checkIsMeaningfulRetry(Rs),r=""+e=="1006"&&this.player._opt.websocket1006ErrorReplay,s=r&&i,a=this.player._opt.streamEndReplay;if(this.player&&(s||a)){s?this.debug.log("EasyPro",`streamEnd and websocket1006ErrorReplay is true and error is 1006 and delay ${this._opt.websocket1006ErrorReplayDelayTime}s reset player and play`):this.debug.log("EasyPro",`streamEnd and isStreamEndReplay is true and delay ${this._opt.streamEndReplayDelayTime}s reset player and play`);const i=this._opt.playOptions,r=this._opt.url;this._websocket1006ErrorRetryLog.push(la());let a={};this.player._opt.replayUseLastFrameShow&&(a=Object.assign({},a,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(a.isNotMute=!0);const o=s?this._opt.websocket1006ErrorReplayDelayTime:this._opt.streamEndReplayDelayTime;this._initLoadingBackgroundForIOS(t),this._resetPlayer(a).then((()=>{setTimeout((()=>{this._removeLoadingBackgroundForIOS(),this.isDestroyed()?s?this.debug.log("EasyPro","streamEnd and 1006 error but player is destroyed and return"):this.debug.log("EasyPro","streamEnd but player is destroyed and return"):this.play(r,i).then((()=>{s?this.debug.log("EasyPro","streamEnd and 1006 error and reset player and play success"):this.debug.log("EasyPro","streamEnd and reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.streamEnd,{},e),s?this.debug.error("EasyPro","streamEnd and 1006 error and reset player and play error",t):this.debug.error("EasyPro","streamEnd and reset player and play error",t)}))}),1e3*o)})).catch((t=>{this.emit(yt.playFailedAndPaused,It.streamEnd,{},e),s?this.debug.error("EasyPro","streamEnd and 1006 and _resetPlayer error",t):this.debug.error("EasyPro","streamEnd and _resetPlayer error",t)}))}else{r?this.debug.log("EasyPro","streamEnd pause player "+(po(i)?"and is not meaningful retry":"")):this.debug.log("EasyPro","streamEnd pause player");const s=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(s).then((()=>{this.emit(yt.playFailedAndPaused,yt.streamEnd,t,e)})).catch((i=>{this.emit(yt.playFailedAndPaused,yt.streamEnd,t,e),this.debug.error("EasyPro","streamEnd pause",i)}))}})),this.player.once(It.websocketError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","websocketError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.websocketError,e));const t=this._getVideoLastIframeInfo();let i={};if(this.player._opt.replayUseLastFrameShow&&(i=Object.assign({},i,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(i.isNotMute=!0),this.player._opt.streamErrorReplay){this.debug.log("EasyPro","websocketError error and streamErrorReplay is true next replay");const t=this._opt.playOptions,r=this._opt.url;this._resetPlayer(i).then((()=>{setTimeout((()=>{this.isDestroyed()?this.debug.log("EasyPro","websocketError error but player is destroyed and return"):this.play(r,t).then((()=>{this.debug.log("EasyPro","websocketError error and reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,It.fetchError,{},e),this.debug.error("EasyPro","websocketError error and reset player and play error",t)}))}),1e3*this._opt.streamErrorReplayDelayTime)})).catch((t=>{this.emit(yt.playFailedAndPaused,It.fetchError,{},e),this.debug.error("EasyPro","websocketError error and _resetPlayer error",t)}))}else{this.debug.log("EasyPro","websocketError and pause player");const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.websocketError,t,e)})).catch((i=>{this.emit(yt.playFailedAndPaused,It.websocketError,t,e),this.debug.error("EasyPro","websocketError and pause",i)}))}})),this.player.once(It.webrtcError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","webrtcError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.webrtcError,e));const t=this._getVideoLastIframeInfo();this.debug.log("EasyPro","webrtcError and pause player");const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.webrtcError,t,e)})).catch((i=>{this.emit(yt.playFailedAndPaused,It.webrtcError,t,e),this.debug.error("EasyPro","webrtcError and pause",i)}))})),this.player.once(It.hlsError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","hlsError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.hlsError,e));const t=this._getVideoLastIframeInfo();this.debug.log("EasyPro","hlsError and pause player");const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.hlsError,t,e)})).catch((i=>{this.emit(yt.playFailedAndPaused,It.hlsError,t,e),this.debug.error("EasyPro","hlsError and pause",i)}))})),this.player.once(It.aliyunRtcError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","aliyunRtcError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.aliyunRtcError,e));const t=this._getVideoLastIframeInfo();this.debug.log("EasyPro","aliyunRtcError and pause player");const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,It.aliyunRtcError,t,e)})).catch((i=>{this.emit(yt.playFailedAndPaused,It.aliyunRtcError,t,e),this.debug.error("EasyPro","aliyunRtcError and pause",i)}))})),this.player.once(It.decoderWorkerInitError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","decoderWorkerInitError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.decoderWorkerInitError,e)),this.debug.log("EasyPro","decoderWorkerInitError and pause player");const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.decoderWorkerInitError,{},e)})).catch((t=>{this.emit(yt.playFailedAndPaused,It.decoderWorkerInitError,{},e),this.debug.error("EasyPro","decoderWorkerInitError and pause",t)}))})),this.player.once(It.videoElementPlayingFailedForWebrtc,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","videoElementPlayingFailedForWebrtc but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.videoElementPlayingFailedForWebrtc,e)),this.debug.log("EasyPro","videoElementPlayingFailedForWebrtc and pause player");const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.videoElementPlayingFailedForWebrtc,{},e)})).catch((t=>{this.emit(yt.playFailedAndPaused,It.videoElementPlayingFailedForWebrtc,{},e),this.debug.error("EasyPro","videoElementPlayingFailedForWebrtc and pause",t)}))})),this.player.once(It.videoInfoError,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","videoInfoError but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(It.videoInfoError,e)),this.debug.log("EasyPro","videoInfoError and pause player");const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,It.videoInfoError,{},e)})).catch((t=>{this.emit(yt.playFailedAndPaused,It.videoInfoError,{},e),this.debug.error("EasyPro","videoInfoError and pause",t)}))})),this.player.once(yt.webrtcStreamH265,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","webrtcStreamH265 but player is destroyed");this.debug.log("EasyPro","webrtcStreamH265 and reset player and play");const t=this._opt.url,i=this._opt.playOptions;this._resetPlayer({isWebrtcH265:!0}).then((()=>{this.play(t,i).then((()=>{this.debug.log("EasyPro","webrtcStreamH265 and reset player and play success")})).catch((t=>{this.emit(yt.playFailedAndPaused,yt.webrtcStreamH265,{},e),this.debug.error("EasyPro","webrtcStreamH265 and reset player and play error",t)}))})).catch((()=>{this.emit(yt.playFailedAndPaused,yt.webrtcStreamH265,{},e),this.debug.error("EasyPro","webrtcStreamH265 and _resetPlayer error")}))})),this.player.on(yt.delayTimeout,(e=>{if(this.isDestroyed())return void this.debug.log("EasyPro","delay timeout but player is destroyed");this.emit(yt.crashLog,this.getCrashLog(yt.delayTimeout,e));const t=this._getVideoLastIframeInfo();if(this.player&&this.player._opt.heartTimeoutReplay&&(this._heartTimeoutReplayTimes<this.player._opt.heartTimeoutReplayTimes||-1===this.player._opt.heartTimeoutReplayTimes)){if(this.debug.log("EasyPro",`delay timeout replay time is ${this._heartTimeoutReplayTimes} and heartTimeoutReplayTimes is ${this.player._opt.heartTimeoutReplayTimes}`),this.isDestroyed())return void(this.debug&&this.debug.warn("EasyPro","delay timeout replay but player is destroyed"));this._heartTimeoutReplayTimes+=1;const i=this._opt.url,r=this._opt.playOptions;let s={};(this.player._opt.heartTimeoutReplayUseLastFrameShow||this.player._opt.replayUseLastFrameShow)&&(s=Object.assign({},s,t,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(s.isNotMute=!0),this._resetPlayer(s).then((()=>{this.play(i,r).then((()=>{})).catch((i=>{this.emit(yt.playFailedAndPaused,yt.delayTimeout,t,e),this.debug.error("EasyPro","delay timeout replay error",i)}))})).catch((i=>{this.emit(yt.playFailedAndPaused,yt.delayTimeout,t,e),this.debug.error("EasyPro","delay timeout _resetPlayer error",i)}))}else{const i=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(i).then((()=>{this.emit(yt.playFailedAndPaused,yt.delayTimeout,t,e),this.player&&(this.emit(yt.delayTimeoutRetryEnd),this.emit(yt.playFailedAndPaused,yt.delayTimeoutRetryEnd)),this.debug.warn("EasyPro",`delayTimeoutRetryEnd and\n opt.heartTimeout is ${this.player&&this.player._opt.heartTimeout} and\n opt.heartTimeoutReplay is ${this.player&&this.player._opt.heartTimeoutReplay} and\n opt.heartTimeoutReplayTimes is ${this.player&&this.player._opt.heartTimeoutReplayTimes},and\n local._heartTimeoutReplayTimes is ${this._heartTimeoutReplayTimes}`)})).catch((i=>{this.emit(yt.playFailedAndPaused,yt.delayTimeout,t,e),this.debug.error("EasyPro","delay timeout and pause error",i)}))}})),this.player.on(yt.loadingTimeout,(e=>{if("webrtc"!=this.player._opt.demuxType)if(this.emit(yt.crashLog,this.getCrashLog(yt.loadingTimeout,e)),this.isDestroyed())this.debug.log("EasyPro","loading timeout but player is destroyed");else if(this.player&&this.player._opt.loadingTimeoutReplay&&(this._loadingTimeoutReplayTimes<this.player._opt.loadingTimeoutReplayTimes||-1===this.player._opt.loadingTimeoutReplayTimes)){if(this.debug.log("EasyPro",`loading timeout and\n replay time is ${this._loadingTimeoutReplayTimes} and\n loadingTimeoutReplayTimes is ${this.player._opt.loadingTimeoutReplayTimes}`),this.isDestroyed())return void(this.debug&&this.debug.warn("EasyPro","delay timeout replay but player is destroyed"));this._loadingTimeoutReplayTimes+=1;const t=this._opt.url,i=this._opt.playOptions;this._resetPlayer().then((()=>{this.play(t,i).then((()=>{})).catch((t=>{this.emit(yt.playFailedAndPaused,yt.loadingTimeout,{},e),this.debug.error("EasyPro","loading timeout replay error",t)}))})).catch((t=>{this.emit(yt.playFailedAndPaused,yt.loadingTimeout,{},e),this.debug.error("EasyPro","loading timeout _resetPlayer error",t)}))}else{const t=!1===this._opt.playFailedUseLastFrameShow;this.player.setPlayFailedAndPaused(),this._pause(t).then((()=>{this.emit(yt.playFailedAndPaused,yt.loadingTimeout,{},e),this.player&&(this.emit(yt.loadingTimeoutRetryEnd),this.emit(yt.playFailedAndPaused,yt.loadingTimeoutRetryEnd,{},e)),this.debug.log("EasyPro",`loadingTimeoutRetryEnd and\n opt.loadingTimeout is ${this.player&&this.player._opt.loadingTimeout} and\n opt.loadingTimeoutReplay is ${this.player&&this.player._opt.loadingTimeoutReplay} and\n local._loadingTimeoutReplayTimes time is ${this._loadingTimeoutReplayTimes} and\n opt.loadingTimeoutReplayTimes is ${this.player&&this.player._opt.loadingTimeoutReplayTimes}`)})).catch((t=>{this.emit(yt.playFailedAndPaused,yt.loadingTimeout,{},e),this.debug.error("EasyPro","loading timeout and pause error",t)}))}})),this._hasLoaded()?this.player.play(t,i).then((()=>{r()})).catch((e=>{this.debug.error("EasyPro","_hasLoaded() and play error",e),this.emit(yt.crashLog,this.getCrashLog("_hasLoaded() and play error",e)),this.player&&this.player.pause().then((()=>{s(e)})).catch((e=>{s(e),this.debug.error("EasyPro","_hasLoaded() and play error and next pause error",e)}))})):this.player.once(yt.decoderWorkerInit,(()=>{this.player.play(t,i).then((()=>{r()})).catch((e=>{this.debug.error("EasyPro","decoderWorkerInit and play error",e),this.emit(yt.crashLog,this.getCrashLog("decoderWorkerInit and play error",e)),this.player&&this.player.pause().then((()=>{s(e)})).catch((e=>{s(e),this.debug.error("EasyPro","decoderWorkerInit and play error and next pause error",e)}))}))}))},V=this.player.getOption(),H=S&&po(this._opt.supportHls265),X=y&&po(this._opt.isWebrtcH265),_=S&&!!_a(),$=S&&V.demuxUseWorker;if(H||X||E||p||B||_||$)this.debug.log("EasyPro",`need reset player and\n isOldHls is ${H} and isOldWebrtc is ${X} and\n isAliyunRtc is ${E} and\n needResetPlayer(url change) is ${p} and\n isMpeg4 is ${B} and\n isHlsCanVideoPlay is ${_} and\n isHlsButDemuxUseWorker is ${$}`),this._resetPlayer({protocol:j,demuxType:W,isHls:S,isWebrtc:y,isMp4:M,isWsRtc:w,isWebrtcForZLM:Y,isWebrtcForSRS:N,isWebrtcForOthers:P,isAliyunRtc:E,cryptoKey:i.cryptoKey||"",cryptoIV:i.cryptoIV||"",url:t,playOptions:i}).then((()=>{Z()})).catch((e=>{s("reset player error")}));else{const e={protocol:j,demuxType:W,isHls:S,isMp4:M,isWsRtc:w,isWebrtc:y,isAliyunRtc:E,isFlv:this._opt.isFlv,isFmp4:this._opt.isFmp4,isMpeg4:this._opt.isMpeg4,isNakedFlow:this._opt.isNakedFlow,isTs:this._opt.isTs,cryptoKey:i.cryptoKey||"",cryptoIV:i.cryptoIV||""};this._opt.isNakedFlow&&(e.mseDecodeAudio=!1),this.player.updateOption(e),i.cryptoKey&&i.cryptoIV&&this.player.decoderWorker&&(this.player.decoderWorker.updateWorkConfig({key:"cryptoKey",value:i.cryptoKey}),this.player.decoderWorker.updateWorkConfig({key:"cryptoIV",value:i.cryptoIV})),Z()}}))}_resetDemuxType(e){this._opt.isFlv=!1,this._opt.isFmp4=!1,this._opt.isMpeg4=!1,this._opt.isNakedFlow=!1,this._opt.isHls=!1,this._opt.isWebrtc=!1,this._opt.isMp4=!1,this._opt.isWsRtc=!1,this._opt.isWebrtcForZLM=!1,this._opt.isWebrtcForSRS=!1,this._opt.isWebrtcForOthers=!1,this._opt.isAliyunRtc=!1,this._opt.isTs=!1,e&&(this._opt[e]=!0),"isFmp4"!==e&&(this._opt.isFmp4Private=!1)}startVoice(){this.player.startVoice()}pauseVoice(){this.player.pauseVoice()}removeVoice(){this.player.removeVoice()}setMessage(e){this.player.setMessage(e)}clearMessage(){this.player.clearMessage()}resize(){this.debug.log("EasyPro","resize()"),this.player&&this.player.resize()}setBufferTime(e){this.debug.log("EasyPro",`setBufferTime() ${e}`),(e=Number(e))>10&&this.debug.warn("EasyPro",`setBufferTime() buffer time is ${e} second, is too large, video will show blank screen until cache ${e} second buffer data`);const t=1e3*e;this._opt.videoBuffer=t,this.player?this.player.updateOption({videoBuffer:t},!0):this.debug.warn("EasyPro","setBufferTime() player is null")}setBufferDelayTime(e){this.debug.log("EasyPro",`setBufferDelayTime() ${e}`),(e=Number(e))<.2&&this.debug.warn("EasyPro",`setBufferDelayTime() buffer time delay is ${e} second, is too small`);const t=1e3*(e=ha(e,.2,100));this._opt.videoBufferDelay=t,this.player?this.player.updateOption({videoBufferDelay:t},!0):this.debug.warn("EasyPro","setBufferDelayTime() player is null")}setRotate(e){this.debug.log("EasyPro",`setRotate() ${e}`),e=parseInt(e,10);this._opt.rotate!==e&&-1!==[0,90,180,270].indexOf(e)?(this._opt.rotate=e,this.player?(this.player.updateOption({rotate:e}),this.resize()):this.debug.warn("EasyPro","setRotate() player is null")):this.debug.warn("EasyPro",`setRotate() rotate is ${e} and this._opt.rotate is ${this._opt.rotate}`)}setMirrorRotate(e){this.debug.log("EasyPro",`setMirrorRotate() ${e}`);e||(e="none"),this._opt.mirrorRotate!==e&&-1!==["none","level","vertical"].indexOf(e)?(this._opt.mirrorRotate=e,this.player?(this.player.updateOption({mirrorRotate:e}),this.resize()):this.debug.warn("EasyPro","setMirrorRotate() player is null")):this.debug.warn("EasyPro",`setMirrorRotate() mirrorRotate is ${e} and this._opt.mirrorRotate is ${this._opt.mirrorRotate}`)}setAspectRatio(e){this.debug.log("EasyPro",`setAspectRatio() ${e}`);e||(e="default"),this._opt.aspectRatio!==e&&-1!==["default","4:3","16:9"].indexOf(e)?(this._opt.aspectRatio=e,this.player?(this.player.updateOption({aspectRatio:e}),this.resize()):this.debug.warn("EasyPro","setAspectRatio() player is null")):this.debug.warn("EasyPro",`setAspectRatio() aspectRatio is ${e} and this._opt.aspectRatio is ${this._opt.mirrorRotate}`)}hasLoaded(){return!0}_hasLoaded(){return this.player&&this.player.loaded||!1}replay(){this.debug.log("EasyPro","replay()");const e=this._opt.url,t=this._opt.playOptions,i=this._getVideoLastIframeInfo();let r={};(this.player._opt.heartTimeoutReplayUseLastFrameShow||this.player._opt.replayUseLastFrameShow)&&(r=Object.assign({},r,i,{loadingIcon:this.player._opt.replayShowLoadingIcon})),po(this.isMute())&&(r.isNotMute=!0),this._resetPlayer(r).then((()=>{this.play(e,t).then((()=>{this.debug.log("EasyPro","webglContextLostError and play success")})).catch((e=>{this.emit(yt.playFailedAndPaused,It.webglContextLostError,i,error),this.debug.error("EasyPro","webglContextLostError and play error",e)}))})).catch((e=>{this.emit(yt.playFailedAndPaused,It.webglContextLostError,i,error),this.debug.error("EasyPro","webglContextLostError and _resetPlayer error",e)}))}setKeepScreenOn(){this.debug.log("EasyPro","setKeepScreenOn()"),this._opt.keepScreenOn=!0,this.player?this.player.updateOption({keepScreenOn:!0}):this.debug.warn("EasyPro","setKeepScreenOn() player is not ready")}setFullscreen(e){this.debug.log("EasyPro",`setFullscreen() ${e}`);const t=!!e;this.player?this.player.fullscreen!==t?this.player.fullscreen=t:this.debug.warn("EasyPro",`setFullscreen() fullscreen is ${t} and this.player.fullscreen is ${this.player.fullscreen}`):this.debug.warn("EasyPro","setFullscreen() player is not ready")}setWebFullscreen(e){this.debug.log("EasyPro",`setWebFullscreen() ${e}`);const t=!!e;this.player?this.player.webFullscreen=t:this.debug.warn("EasyPro","setWebFullscreen() player is not ready")}screenshot(e,t,i,r){return this.debug.log("EasyPro",`screenshot() ${e} ${t} ${i} ${r}`),this.player&&this.player.video?this.player.video.screenshot(e,t,i,r):(this.debug.warn("EasyPro","screenshot() player is not ready"),null)}screenshotWatermark(e){return new Promise(((t,i)=>{this.debug.log("EasyPro","screenshotWatermark()",e),this.player&&this.player.video?this.player.video.screenshotWatermark(e).then((e=>{t(e)})).catch((e=>{i(e)})):(this.debug.warn("EasyPro","screenshotWatermark() player is not ready"),i("player is not ready"))}))}startRecord(e,t){return new Promise(((i,r)=>{if(this.debug.log("EasyPro",`startRecord() ${e} ${t}`),!this.player)return this.debug.warn("EasyPro","startRecord() player is not ready"),r("player is not ready");this.player.playing?(this.player.startRecord(e,t),i()):(this.debug.warn("EasyPro","startRecord() player is not playing"),r("not playing"))}))}stopRecordAndSave(e,t){return new Promise(((i,r)=>{this.debug.log("EasyPro",`stopRecordAndSave() ${e} ${t}`),this.player&&this.player.recording?this.player.stopRecordAndSave(e,t).then((e=>{i(e)})).catch((e=>{r(e)})):r("not recording")}))}isPlaying(){let e=!1;return this.player&&(e=this.player.isPlaying()),e}isLoading(){return!!this.player&&this.player.loading}isPause(){let e=!1;return this._opt.playType===S?e=!this.isPlaying()&&!this.isLoading():this._opt.playType===v&&this.player&&(e=this.player.playbackPause),e}isPaused(){return this.isPause()}isPlaybackPause(){let e=!1;return this._opt.playType===v&&this.player&&(e=this.player.playbackPause),e}isMute(){let e=!0;return this.player&&(e=this.player.isAudioMute()),e}isRecording(){return this.player&&this.player.recorder&&this.player.recorder.recording||!1}isFullscreen(){let e=!1;return this.player&&(e=this.player.fullscreen),e}isWebFullscreen(){let e=!1;return this.player&&(e=this.player.webFullscreen),e}clearBufferDelay(){this.debug.log("EasyPro","clearBufferDelay()"),this.player?this.player.clearBufferDelay():this.debug.warn("EasyPro","clearBufferDelay() player is not init")}setNetworkDelayTime(e){this.debug.log("EasyPro",`setNetworkDelayTime() ${e}`),(e=Number(e))<1&&this.debug.warn("EasyPro",`setNetworkDelayTime() network delay is ${e} second, is too small`);const t=1e3*(e=ha(e,1,100));this._opt.networkDelay=t,this.player?this.player.updateOption({networkDelay:t},!0):this.debug.warn("EasyPro","setNetworkDelayTime() player is null")}getDecodeType(){let e="";return this.player&&(e=this.player.getDecodeType()),e}getRenderType(){let e="";return this.player&&(e=this.player.getRenderType()),e}getAudioEngineType(){let e="";return this.player&&(e=this.player.getAudioEngineType()),e}getPlayingTimestamp(){let e=0;return this.player&&(e=this.player.getPlayingTimestamp()),e}getStatus(){let e=Cr;return this.player&&(e=this.player.loading?mr:this.player.playing?yr:Er),e}getPlayType(){return this.player?this.player._opt.playType:S}togglePerformancePanel(e){this.debug.log("EasyPro",`togglePerformancePanel() ${e}`);const t=this.player._opt.showPerformance;let i=!t;Ta(e)&&(i=e),i!==t?this.player?this.player.togglePerformancePanel(i):this.debug.warn("EasyPro","togglePerformancePanel() failed, this.player is not init"):this.debug.warn("EasyPro",`togglePerformancePanel() failed, showPerformance is prev: ${t} === now: ${i}`)}openZoom(){this.debug.log("EasyPro","openZoom()"),this.player?this.player.zooming=!0:this.debug.warn("EasyPro","openZoom() failed, this.player is not init")}closeZoom(){this.debug.log("EasyPro","closeZoom()"),this.player?this.player.zooming=!1:this.debug.warn("EasyPro","closeZoom() failed, this.player is not init")}isZoomOpen(){let e=!1;return this.player&&(e=this.player.zooming),e}toggleZoom(e){this.debug.log("EasyPro",`toggleZoom() ${e}`),Ta(e)||(e=!this.isZoomOpen()),uo(e)?this.openZoom():po(!1)&&this.closeZoom()}expandZoom(){this.debug.log("EasyPro","expandZoom()"),this.player&&this.player.zoom&&this.player.zooming?this.player.zoom.expandPrecision():this.debug.warn("EasyPro","expandZoom() failed, zoom is not open or not init")}narrowZoom(){this.debug.log("EasyPro","narrowZoom()"),this.player&&this.player.zoom&&this.player.zooming?this.player.zoom.narrowPrecision():this.debug.warn("EasyPro","narrowZoom failed, zoom is not open or not init")}getCurrentZoomIndex(){let e=1;return this.player&&this.player.zoom&&(e=this.player.zoom.currentZoom),e}startTalk(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(((i,r)=>{this.debug.log("EasyPro","startTalk()",e,t),this._initTalk(t),this.talk.startTalk(e).then((()=>{i(),this.talk.once(yt.talkStreamClose,(()=>{this.debug.warn("EasyPro","talk stream close"),this.stopTalk().catch((e=>{}))})),this.talk.once(yt.talkStreamError,(e=>{this.debug.warn("EasyPro","talk stream error",e),this.stopTalk().catch((e=>{}))})),this.talk.once(yt.talkStreamInactive,(()=>{this.debug.warn("EasyPro","talk stream inactive"),this.stopTalk().catch((e=>{}))}))})).catch((e=>{r(e)}))}))}stopTalk(){return new Promise(((e,t)=>{if(this.debug.log("EasyPro","stopTalk()"),!this.talk)return t("stopTalk() talk is not init");this.talk.destroy(),e()}))}getTalkVolume(){return new Promise(((e,t)=>{if(!this.talk)return t("getTalkVolume() talk is not init");e(this.talk.volume)}))}setTalkVolume(e){return new Promise(((t,i)=>{if(this.debug.log("EasyPro","setTalkVolume()",e),!this.talk)return i("setTalkVolume() talk is not init");this.talk.setVolume(e/100),t()}))}setNakedFlowFps(e){return new Promise(((t,i)=>{if(this.debug.log("EasyPro","setNakedFlowFps()",e),Ra(e))return i("setNakedFlowFps() fps is empty");let r=Number(e);r=ha(r,1,100),this._opt.nakedFlowFps=r,this.player?this.player.updateOption({nakedFlowFps:r}):this.debug.warn("EasyPro","setNakedFlowFps() player is null"),t()}))}getCrashLog(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(!this.player)return;const i=this.player.getAllStatsData(),r=this.player;let s={url:this._opt.url,playType:r.isPlayback()?"playback":"live",demuxType:r.getDemuxType(),decoderType:r.getDecodeType(),renderType:r.getRenderType(),videoInfo:{encType:"",width:"",height:""},audioInfo:{encType:"",sampleRate:"",channels:""},audioEngine:r.getAudioEngineType(),allTimes:i.pTs,timestamp:la(),type:e,error:so(t)||e};if(r.video){const e=r.video.videoInfo||{};s.videoInfo={encType:e.encType||"",width:e.width||"",height:e.height||""}}if(r.audio){const e=r.audio.audioInfo||{};s.audioInfo={encType:e.encType||"",sampleRate:e.sampleRate||"",channels:e.channels||""}}return s}updateDebugLevel(e){this.debug.log("EasyPro","updateDebugLevel()",e),e===ie||e===re?e!==this.player._opt.debugLevel?(this._opt.debugLevel=e,this.player?this.player.updateOption({debugLevel:e},!0):this.debug.warn("EasyPro","updateDebugLevel() player is null")):this.debug.warn("EasyPro",`updateDebugLevel() level is same, level: ${e}`):this.debug.warn("EasyPro",`updateDebugLevel() level is not valid, level: ${e}`)}updateWatermark(e){this.debug.log("EasyPro","updateWatermark()",e),this.player?this.player.updateWatermark(e):this.debug.warn("EasyPro","updateWatermark() player is not init")}removeWatermark(){this.debug.log("EasyPro","removeWatermark()"),this.player?this.player.removeWatermark():this.debug.warn("EasyPro","removeWatermark() player is not init")}updateFullscreenWatermark(e){if(this.debug.log("EasyPro","updateFullscreenWatermark()",e),Pa(e)){this._opt.fullscreenWatermarkConfig=e;const t=qa(this.$container,e);if(!t.watermark_txt)return void this.debug.warn("EasyPro","fullscreenWatermarkConfig text is empty");this.watermark.load(t)}else this.debug.warn("EasyPro",`updateFullscreenWatermark() config is not valid, config: ${e}`)}removeFullscreenWatermark(){this.debug.log("EasyPro","removeFullscreenWatermark()"),this.watermark?this.watermark.remove():this.debug.warn("EasyPro","removeFullscreenWatermark() watermark is not init")}faceDetectOpen(){this.debug.log("EasyPro","faceDetectOpen()"),this.player?this.player.faceDetect(!0):this.debug.warn("EasyPro","faceDetectOpen() player is not init")}faceDetectClose(){this.debug.log("EasyPro","faceDetectClose()"),this.player?this.player.faceDetect(!1):this.debug.warn("EasyPro","faceDetectClose() player is not init")}objectDetectOpen(){this.debug.log("EasyPro","objectDetectOpen()"),this.player?this.player.objectDetect(!0):this.debug.warn("EasyPro","objectDetectOpen() player is not init")}objectDetectClose(){this.debug.log("EasyPro","objectDetectClose()"),this.player?this.player.objectDetect(!1):this.debug.warn("EasyPro","objectDetectClose() player is not init")}sendWebsocketMessage(e){this.debug.log("EasyPro","sendWebsocketMessage()",e),this.player?this.player.sendWebsocketMessage(e):this.debug.warn("EasyPro","sendWebsocketMessage() player is not init")}addContentToCanvas(e){this.debug.log("EasyPro","addContentToCanvas()"),this.player?this.player.addContentToCanvas(e):this.debug.warn("EasyPro","addContentToCanvas() player is not init")}clearContentToCanvas(){this.debug.log("EasyPro","clearContentToCanvas()"),this.player?this.player.addContentToCanvas([]):this.debug.warn("EasyPro","clearContentToCanvas() player is not init")}addContentToContainer(e){this.debug.log("EasyPro","addContentToContainer()"),this.player?this.player.addContentToContainer(e):this.debug.warn("EasyPro","addContentToContainer() player is not init")}clearContentToContainer(){this.debug.log("EasyPro","clearContentToContainer()"),this.player?this.player.addContentToContainer([]):this.debug.warn("EasyPro","clearContentToContainer() player is not init")}setControlHtml(e){this.debug.log("EasyPro","setControlHtml()",e),this.player?this.player.setControlHtml(e):this.debug.warn("EasyPro","setControlHtml() player is not init")}clearControlHtml(){this.debug.log("EasyPro","clearControlHtml()"),this.player?this.player.clearControlHtml():this.debug.warn("EasyPro","clearControlHtml() player is not init")}getVideoInfo(){let e=null;return this.player&&(e=this.player.getVideoInfo()),e}getAudioInfo(){let e=null;return this.player&&(e=this.player.getAudioInfo()),e}setSm4CryptoKey(e){this.debug.log("EasyPro","setSm4CryptoKey()",e),32===(e=""+e).length?(this._opt.sm4CryptoKey=e,this.player?this.player.updateOption({sm4CryptoKey:e},!0):this.debug.warn("EasyPro","setSm4CryptoKey() player is null")):this.debug.warn("EasyPro",`setSm4CryptoKey() key is invalid and length is ${e.length} !== 32`)}setM7sCryptoKey(e){this.debug.log("EasyPro","setM7sCryptoKey()",e),e=""+e,this._opt.m7sCryptoKey=e,this.player?this.player.updateOption({m7sCryptoKey:e},!0):this.debug.warn("EasyPro","setM7sCryptoKey() player is null")}setXorCryptoKey(e){this.debug.log("EasyPro","setXorCryptoKey()",e),e=""+e,this._opt.xorCryptoKey=e,this.player?this.player.updateOption({xorCryptoKey:e},!0):this.debug.warn("EasyPro","setXorCryptoKey() player is null")}updateLoadingText(e){this.debug.log("EasyPro","updateLoadingText()",e),this.player?this.player.updateLoadingText(e):this.debug.warn("EasyPro","updateLoadingText() player is null")}updateIsEmitSEI(e){this.debug.log("EasyPro","updateIsEmitSEI()",e),this._opt.isEmitSEI=e,this.player?this.player.updateOption({isEmitSEI:e},!0):this.debug.warn("EasyPro","updateIsEmitSEI() player is null")}getPTZCmd(e,t){if(this.debug.log("EasyPro","getPTZCmd()",e),e)return this.player?pu({type:e,index:0,speed:t}):void this.debug.warn("EasyPro","getPTZCmd() player is null");this.debug.warn("EasyPro","getPTZCmd() ptz is null")}downloadTempNakedFlowFile(){return new Promise(((e,t)=>{this.player?(this.player.downloadNakedFlowFile(),e()):t("player is not init")}))}downloadTempFmp4File(){return new Promise(((e,t)=>{this.player?(this.player.downloadFmp4File(),e()):t("player is not init")}))}downloadTempMpeg4File(){return new Promise(((e,t)=>{this.player?(this.player.downloadMpeg4File(),e()):t("player is not init")}))}downloadTempRtpFile(){return new Promise(((e,t)=>{this.talk?(this.talk.downloadRtpFile(),e()):t("talk is not init")}))}downloadMemoryLog(){this.memoryLogger&&this.memoryLogger.download()}_getVideoLastIframeInfo(){const e=this.getVideoInfo()||{},t={loadingBackground:this.screenshot("","png",.92,"base64"),loadingBackgroundWidth:e.width||0,loadingBackgroundHeight:e.height||0};return t.loadingBackground&&t.loadingBackgroundWidth&&t.loadingBackgroundHeight&&(this._tempVideoLastIframeInfo=t),this._tempVideoLastIframeInfo||{}}getExtendBtnList(){this.debug.log("EasyPro","getExtendBtnList()");let e=[];return this.player?e=this.player.getExtendBtnList():this.debug.warn("EasyPro","getExtendBtnList() player is null"),e}getFlvMetaData(){this.debug.log("EasyPro","getFlvMetaData()");let e=null;return this.player?e=this.player.getMetaData():this.debug.warn("EasyPro","getFlvMetaData() player is null"),e}updateAiFaceDetectInterval(e){this.debug.log("EasyPro","updateAiFaceDetectInterval()",e);const t=1e3*(e=Number(e));this._opt.aiFaceDetectInterval=t,this.player?this.player.updateOption({aiFaceDetectInterval:t}):this.debug.warn("EasyPro","updateAiFaceDetectInterval() player is null")}updateAiFaceDetectLevel(e){if(this.debug.log("EasyPro","updateAiFaceDetectLevel()",e),!os[e])return void this.debug.warn("EasyPro",`'updateAiFaceDetectLevel() level ${e} is invalid'`);const t=os[e];this._opt.aiFaceDetectWidth=t,this.player?(this.player.updateOption({aiFaceDetectWidth:t}),this.player.ai&&this.player.ai.updateFaceDetectorConfig({detectWidth:t})):this.debug.warn("EasyPro","updateAiFaceDetectLevel() player is null")}updateAiObjectDetectInterval(e){this.debug.log("EasyPro","updateAiObjectDetectInterval()",e);const t=1e3*(e=Number(e));this._opt.aiObjectDetectInterval=t,this.player?this.player.updateOption({aiObjectDetectInterval:t}):this.debug.warn("EasyPro","updateAiObjectDetectInterval() player is null")}updateAiObjectDetectLevel(e){if(this.debug.log("EasyPro","updateAiObjectDetectLevel()",e),!ns[e])return void this.debug.warn("EasyPro",`'updateAiObjectDetectLevel() level ${e} is invalid'`);const t=ns[e];this._opt.aiObjectDetectWidth=t,this.player?(this.player.updateOption({aiObjectDetectWidth:t}),this.player.ai&&this.player.ai.updateObjectDetectorConfig({detectWidth:t})):this.debug.warn("EasyPro","updateAiObjectDetectLevel() player is null")}setCryptoKeyUrl(e){this.debug.log("EasyPro","setCryptoKeyUrl()",e),e&&(this._opt.cryptoKeyUrl=e)}showErrorMessageTips(e){this.debug.log("EasyPro","showErrorMessageTips()",e),e&&(this.player?this.player.showTipsMessageByContent(e):this.debug.warn("EasyPro","showErrorMessageTips() player is null"))}setPtzPosition(e){this.debug.log("EasyPro","setPtzPosition()",e),e&&!Na(e)&&(this.player?this.player.setPtzPosition(e):this.debug.warn("EasyPro","showErrorMessageTips() player is null"))}hideErrorMessageTips(){this.debug.log("EasyPro","hideErrorMessageTips()"),this.player?this.player.hideTipsMessage():this.debug.warn("EasyPro","hideErrorMessageTips() player is null")}getContainerRect(){return this._getContainerRect()}proxy(e,t,i,r){return this.events.proxy(e,t,i,r)}_checkIsMeaningfulRetry(e){let t=!0,i=[];if(e===Rs?i=this._websocket1006ErrorRetryLog:e===Ts?i=this._mseDecodeErrorRetryLog:e===Ls&&(i=this._wcsDecodeErrorRetryLog),i.length>=5){const r=i[0],s=i[i.length-1],a=s-r;a<=1e4&&(this.debug.warn(this.TAG_NAME,`retry type is ${e}, and retry length is ${i.length}, and start is ${r} and end is ${s} and diff is ${a}`),t=!1)}return t}_initLoadingBackgroundForIOS(e){($a()||Ca())&&e.loadingBackground&&e.loadingBackgroundWidth&&e.loadingBackgroundHeight&&(this.debug.log(this.TAG_NAME,"_initLoadingBackgroundForIOS"),this._initLoadingBg(),"default"===this.player._opt.aspectRatio||pa()?this._doInitLoadingBackground(e):this._doInitLoadingBackgroundForRatio(e))}_doInitLoadingBackground(e){const t=this._getContainerRect();let i=t.height;const r=this.player._opt;if(r.hasControl&&!r.controlAutoHide){i-=(r.playType,0)}let s=t.width,a=i;const o=r.rotate;270!==o&&90!==o||(s=i,a=t.width),this.$loadingBgImage.width=s,this.$loadingBgImage.height=a,this.$loadingBgImage.src=e.loadingBackground;let n=(t.width-s)/2,l=(i-a)/2,h="contain";r.isResize||(h="fill"),r.isFullResize&&(h="none");let A="";"none"===r.mirrorRotate&&o&&(A+=" rotate("+o+"deg)"),"level"===r.mirrorRotate?A+=" rotateY(180deg)":"vertical"===r.mirrorRotate&&(A+=" rotateX(180deg)"),this._opt.videoRenderSupportScale&&(this.$loadingBgImage.style.objectFit=h),this.$loadingBgImage.style.transform=A,this.$loadingBgImage.style.padding="0",this.$loadingBgImage.style.left=n+"px",this.$loadingBgImage.style.top=l+"px",this.$loadingBgImage.complete?TA(this.$loadingBg,"show"):this.$loadingBgImage.onload=()=>{TA(this.$loadingBg,"show"),this.$loadingBgImage.onload=null}}_doInitLoadingBackgroundForRatio(e){const t=this.player._opt.aspectRatio.split(":").map(Number),i=this._getContainerRect();let r=i.width,s=i.height;const a=this.player._opt;let o=0;a.hasControl&&!a.controlAutoHide&&(a.playType,o=0,s-=o);const n=e.loadingBackgroundWidth,l=e.loadingBackgroundHeight,h=n/l,A=t[0]/t[1];if(this.$loadingBgImage.src=e.loadingBackground,h>A){const e=A*l/n;this.$loadingBgImage.style.width=100*e+"%",this.$loadingBgImage.style.height=`calc(100% - ${o}px)`,this.$loadingBgImage.style.padding=`0 ${(r-r*e)/2}px`}else{const e=n/A/l;this.$loadingBgImage.style.width="100%",this.$loadingBgImage.style.height=`calc(${100*e}% - ${o}px)`,this.$loadingBgImage.style.padding=(s-s*e)/2+"px 0"}this.$loadingBgImage.complete?TA(this.$loadingBg,"show"):this.$loadingBgImage.onload=()=>{TA(this.$loadingBg,"show"),this.$loadingBgImage.onload=null}}_initLoadingBg(){if(!this.$loadingBg){const e=document.createElement("div"),t=document.createElement("img");e.className="easyplayer-loading-bg-for-ios",this.$loadingBg=e,this.$loadingBgImage=t,e.appendChild(t),this.$container.appendChild(e)}}_removeLoadingBackgroundForIOS(){if(this.$loadingBg){this.debug.log(this.TAG_NAME,"_removeLoadingBackgroundForIOS()");if(!FA(this.$loadingBg)){const e=this.$container.querySelector(".easyplayer-loading-bg-for-ios");e&&this.$container&&this.$container.removeChild(e)}this.$loadingBg=null,this.$loadingBgImage=null}}_getContainerRect(){let e={};return this.$container&&(e=this.$container.getBoundingClientRect(),e.width=Math.max(e.width,this.$container.clientWidth),e.height=Math.max(e.height,this.$container.clientHeight)),e}}return ku.ERROR=It,ku.EVENTS=Et,window.EasyPlayerProSnap=class{constructor(){if(this.remoteHost=this.getPath("easyplayer-pro.js"),this.initType=!1,this.initTypeNum=1,this.remoteHost){Mu(this.remoteHost),window.easyPlayerWasmModule=vu;class e{constructor(e){this.initModule=null,this.deinitModule=null,this.yuvData=null,this.convertFrame2Image=null,this._self=e}loadWebAssembly(){window.easyPlayerWasmModule.onRuntimeInitialized=()=>{this.initModule=window.easyPlayerWasmModule.cwrap("WasmDecoder_Init","number"),this.deinitModule=window.easyPlayerWasmModule.cwrap("WasmDecoder_Deinit","number"),this.convertFrame2Image=window.easyPlayerWasmModule.cwrap("WasmDecoder_ConvertFrame2Image","number",["number","number","number","number","number"]),this.applyMemory(),this.initModule(),this._self.initType=!0}}applyMemory(){this.yuvData=window.easyPlayerWasmModule._malloc(32e6)}freeMemory(){window.easyPlayerWasmModule._free(this.yuvData)}}const t=new e(this);t.loadWebAssembly(),window.easyPlayerWasmKits=t}}getPath(e){let t=document.scripts,i="";for(var r=0;r<t.length;r++)t[r].src.indexOf(e)>-1&&(i=t[r].src.substring(0,t[r].src.lastIndexOf("/")+1));return i}wasmFrame2Image(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"./channel_1.raw";return new Promise((async(t,i)=>{if(await this.waitWasmFor(),!this.initType)return t("");let r;if(""===e)return t("");e.startsWith("app://./")&&(e=e.replace("app://.",this.remoteHost)),e.startsWith("http")||(e=`${this.remoteHost}${e}`),fetch(e,{method:"get",responseType:"arraybuffer",keepalive:!1,headers:{timeout:10}}).then((e=>e.arrayBuffer())).then((e=>{r=parseInt(e.byteLength||"0"),e=new Uint8Array(e);let i=window.easyPlayerWasmModule,s=window.easyPlayerWasmKits;const a=i._malloc(r);t(this.binaryToImageBase64(e,r,i,s,a))})).catch((e=>{console.log("i 帧 加载失败",e),t("")}))}))}async waitWasmFor(){await new Promise((e=>setTimeout(e,100))),!this.initType&&this.initTypeNum<10&&(this.initTypeNum++,await this.waitWasmFor())}binaryToImageBase64(e,t,i,r,s){let a,o,n;r.applyMemory(),i.HEAP8.set(e,s);try{a=r.convertFrame2Image(0,s,t,r.yuvData,0),i._free(s),r.freeMemory(),o=i.HEAPU8.subarray(r.yuvData,r.yuvData+a);let e,l=8192,h="";for(e=0;e<o.length/l;e++)h+=String.fromCharCode.apply(null,o.slice(e*l,(e+1)*l));h+=String.fromCharCode.apply(null,o.slice(e*l)),n=btoa(h)}catch(e){return""}return`data:image/jpeg;base64,${n}`}},window.EasyPlayerPro=ku,window.EasyPro=ku,window.WebPlayerPro=ku,ku}));