function anonymous(module,exports,require ) { var e,t,r,n,i,s,o,a,l,u,c,d,h,f=require("react"),_=require("react/jsx-runtime");function p(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var g="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function v(e){return e&&e.__esModule?e.default:e}var m={},y={},b=g.parcelRequirec887_kd6oi;null==b&&((b=function(e){if(e in m)return m[e].exports;if(e in y){var t=y[e];delete y[e];var r={id:e,exports:{}};return m[e]=r,t.call(r.exports,r,r.exports),r.exports}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}).register=function(e,t){y[e]=t},g.parcelRequirec887_kd6oi=b),b.register("kvwdt",function(e,t){e.exports=Promise.resolve(require("./Doppio.c259b94d.346a58fd.js")).then(()=>b("6JNQd"))}),b.register("2GDeW",function(e,t){e.exports=Promise.resolve(require("./RistrettoPlaying.b65db6a5.1de050ba.js")).then(()=>b("hszax"))}),b.register("6GDAz",function(e,t){e.exports=Promise.resolve(require("./RistrettoBroadcasting.56bca7d6.8a6426f6.js")).then(()=>b("3yuck"))}),b.register("hHwiL",function(e,t){e.exports=Promise.resolve(require("./Native.c949dde1.744a6792.js")).then(()=>b("iLJxE"))}),p(module.exports,"EPlayerErrorType",()=>rQ),p(module.exports,"MMP",()=>rD),p(module.exports,"EPlaybackState",()=>rU),p(module.exports,"EPlayerType",()=>rk),p(module.exports,"EPlaybackStartType",()=>rV),p(module.exports,"useMouflonPlayer",()=>iT),p(module.exports,"useMouflonPlayerV2",()=>iR),p(module.exports,"MouflonPlayer",()=>iw),p(module.exports,"useUserMedia",()=>iM),p(module.exports,"getVideoElement",()=>iL),p(module.exports,"MMP_VERSION",()=>iC);var E,S,C,T,A,P,R,w,O,M,I,L="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==g?g:{};function N(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var D={},B={},k=L.parcelRequire94c2_uo2xw;null==k&&((k=function(e){if(e in D)return D[e].exports;if(e in B){var t=B[e];delete B[e];var r={id:e,exports:{}};return D[e]=r,t.call(r.exports,r,r.exports),r.exports}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n}).register=function(e,t){B[e]=t},L.parcelRequire94c2_uo2xw=k);var U=k.register;U("hJ7nZ",function(e,t){N(e.exports,"EVideoControllerCustomEvent",function(){return p}),N(e.exports,"EPlayerType",function(){return g}),N(e.exports,"EPlaybackState",function(){return v}),N(e.exports,"EPlaybackStartType",function(){return m}),N(e.exports,"EventBus",function(){return U}),N(e.exports,"ObjectDeepDiff",function(){return q}),N(e.exports,"createConfig",function(){return $}),N(e.exports,"bind",function(){return K}),N(e.exports,"CustomEventTarget",function(){return ec}),N(e.exports,"VideoElementController",function(){return e9}),N(e.exports,"WebRTCCommonHelpers",function(){return tl}),N(e.exports,"HLSCommon",function(){return ty});var r,n,i,s,o,a,l,u,c,d,h,f,_,p,g,v,m,y,b,E,S,C,T,A,P,R="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==L?L:{};function w(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==R?R:void 0}"undefined"==typeof globalThis&&(globalThis=w());let O="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==R&&R;function M(e){try{new e("")}catch(e){return!1}return!0}"function"==typeof O.Event&&M(O.Event)||(O.Event=function(e,t){this.bubbles=!!t&&!!t.bubbles,this.cancelable=!!t&&!!t.cancelable,this.composed=!!t&&!!t.composed,this.type=e}),void 0!==O.EventTarget&&M(O.EventTarget)||(O.EventTarget=function(){function e(){this.__listeners=new Map}return e.prototype=Object.create(Object.prototype),e.prototype.addEventListener=function(e,t,r){if(arguments.length<2)throw TypeError(`TypeError: Failed to execute 'addEventListener' on 'EventTarget': 2 arguments required, but only ${arguments.length} present.`);let n=this.__listeners,i=e.toString();n.has(i)||n.set(i,new Map);let s=n.get(i);s.has(t)||s.set(t,r)},e.prototype.removeEventListener=function(e,t,r){if(arguments.length<2)throw TypeError(`TypeError: Failed to execute 'addEventListener' on 'EventTarget': 2 arguments required, but only ${arguments.length} present.`);let n=this.__listeners,i=e.toString();if(n.has(i)){let e=n.get(i);e.has(t)&&e.delete(t)}},e.prototype.dispatchEvent=function(e){if(!(e instanceof Event))throw TypeError("Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1 is not of type 'Event'.");let t=e.type,r=this.__listeners.get(t);if(r)for(let[t,n]of r.entries()){try{"function"==typeof t?t.call(this,e):t&&"function"==typeof t.handleEvent&&t.handleEvent(e)}catch(e){setTimeout(()=>{throw e})}n&&n.once&&r.delete(t)}return!0},e}());let I=class{constructor(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}addEventListener(e,t,r){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push({callback:t,options:r})}removeEventListener(e,t){if(!(e in this.listeners))return;let r=this.listeners[e];for(let e=0,n=r.length;e{throw e})}n.options&&n.options.once&&this.removeEventListener(e.type,n.callback)}return!e.defaultPrevented}},D=class extends I{constructor(){super(),this.listeners||I.call(this),Object.defineProperty(this,"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(this,"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(this,"reason",{value:void 0,writable:!0,configurable:!0})}toString(){return"[object AbortSignal]"}dispatchEvent(e){"abort"===e.type&&(this.aborted=!0,"function"==typeof this.onabort&&this.onabort.call(this,e)),super.dispatchEvent(e)}},B=class{constructor(){Object.defineProperty(this,"signal",{value:new D,writable:!0,configurable:!0})}abort(e){let t;t=new Event("abort");let r=e;void 0===r&&((r=Error("This operation was aborted")).name="AbortError"),this.signal.reason=r,this.signal.dispatchEvent(t)}toString(){return"[object AbortController]"}};("function"!=typeof(r="undefined"!=typeof self?self:R).Request||r.Request.prototype.hasOwnProperty("signal"))&&r.AbortController||("undefined"!=typeof Symbol&&Symbol.toStringTag&&(B.prototype[Symbol.toStringTag]="AbortController",D.prototype[Symbol.toStringTag]="AbortSignal"),r.AbortController=B,r.AbortSignal=D);let k=w();"function"!=typeof k.queueMicrotask&&(k.queueMicrotask=function(e){Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e}))}),Array.prototype.flat||Object.defineProperty(Array.prototype,"flat",{configurable:!0,value:function e(){var t=isNaN(arguments[0])?1:Number(arguments[0]);return t?Array.prototype.reduce.call(this,function(r,n){return Array.isArray(n)?r.push.apply(r,e.call(n,t-1)):r.push(n),r},[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,"flatMap",{configurable:!0,value:function(e){return Array.prototype.map.apply(this,arguments).flat()},writable:!0}),(n=p||(p={})).CLICK="videoElement.click",n.PLAYING="videoElement.playing",n.LOADING="videoElement.loading",n.PAUSE="videoElement.pause",n.VIDEO_PLAYBACK_STATE_CHANGE="videoElement.videoPlaybackStateChange",n.NATIVE_EVENT="videoElement.nativeEvent",n.UPDATE_PLAYER_RESOLUTION="videoElement.updatePlayerResolution",n.TIME_UPDATE="videoElement.timeUpdate";let U=class{constructor(e=!0){this.appId=null,this._lastUid=-1,this._messages={},this._immediateExceptions=!1,this._allSubscribingMsg="*",this._immediateExceptions=e}setAppId(e){this.appId=e}getAppId(){return this.appId}publish(e,t){return this._publish(e,t,!1,this._immediateExceptions)}publishSync(e,t){return this._publish(e,t,!0,this._immediateExceptions)}subscribe(e,t){if("function"!=typeof t)return"";let r="uid_"+String(++this._lastUid);return this._messages[e]||(this._messages[e]={}),(this._messages[e]||{})[r]=t,r}toggleSubscriptionBulk(e){"subscribe"===e.action?Object.entries(e.callbacks).forEach(([e,t])=>{this.subscribe.call(this,e,t)}):Object.entries(e.callbacks).forEach(([e,t])=>{this.unsubscribe.call(this,t)})}subscribeAll(e){return this.subscribe(this._allSubscribingMsg,e)}subscribeOnce(e,t){let r=this.subscribe(e,(...e)=>{this.unsubscribe(r),t.apply(this,e)});return this}clearAllSubscriptions(){this._messages={}}clearSubscriptions(e){for(let t in this._messages)Object.prototype.hasOwnProperty.call(this._messages,t)&&0===t.indexOf(e)&&delete this._messages[t]}unsubscribe(e){let t="string"==typeof e&&(Object.prototype.hasOwnProperty.call(this._messages,e)||this._descendantTopicExists(e)),r=!t&&"string"==typeof e,n="function"==typeof e,i=!1;if(t){this.clearSubscriptions(e);return}for(let t in this._messages)if(Object.prototype.hasOwnProperty.call(this._messages,t)){let s=this._messages[t]||{};if(r&&s[e]){delete s[e],i=e;break}if(n)for(let t in s)Object.prototype.hasOwnProperty.call(s,t)&&s[t]===e&&(delete s[t],i=!0)}return i}_hasKeys(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!0;return!1}_throwException(e){return()=>{throw e}}_callSubscriberWithDelayedExceptions(e,t){try{e(t)}catch(e){setTimeout(this._throwException(e),0)}}_callSubscriberWithImmediateExceptions(e,t){e(t)}_deliverMessage(e,t,r,n){let i=this._messages[t]||{},s=n?this._callSubscriberWithImmediateExceptions:this._callSubscriberWithDelayedExceptions;if(Object.prototype.hasOwnProperty.call(this._messages,t))for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&s(i[e],r)}_createDeliveryFunction(e,t,r){return()=>{let n=String(e),i=n.lastIndexOf(".");for(this._deliverMessage(e,e,t,r);i>-1;)i=(n=n.substr(0,i)).lastIndexOf("."),this._deliverMessage(e,n,t,r);this._deliverMessage(e,this._allSubscribingMsg,t,r)}}_hasDirectSubscribersFor(e){let t=String(e);return!!(Object.prototype.hasOwnProperty.call(this._messages,t)&&this._hasKeys(this._messages[t]||{}))}_messageHasSubscribers(e){let t=String(e),r=this._hasDirectSubscribersFor(t)||this._hasDirectSubscribersFor(this._allSubscribingMsg),n=t.lastIndexOf(".");for(;!r&&-1!==n;)n=(t=t.substr(0,n)).lastIndexOf("."),r=this._hasDirectSubscribersFor(t);return r}_publish(e,t,r,n){let i="symbol"==typeof e?e.toString():e,s=this._createDeliveryFunction(i,t,n);return!!this._messageHasSubscribers(i)&&(r?s():setTimeout(s,0),!0)}_descendantTopicExists(e){for(let t in this._messages)if(Object.prototype.hasOwnProperty.call(this._messages,t)&&0===t.indexOf(e))return!0;return!1}};new U,new U;let V=e=>`configProvider.configUpdated.${e}`,x=e=>{let t={};return{configConsumerConstructor:class{constructor(r,n){this._onConfigUpdatedWithContext=this._onConfigUpdated.bind(this),this._configKey=r,this._eventBus=n||e;let i=V(r);this._onConfigUpdatedListener=this._eventBus.subscribe(i,this._onConfigUpdatedWithContext),this.config=t[r]}destroy(){this._eventBus.unsubscribe(this._onConfigUpdatedListener)}_handleConfigUpdated(e,t){}_onConfigUpdated(e){t=e.newConfig;let r=e.newConfig[this._configKey];this.config=r,this._handleConfigUpdated(e.updatedValues,r)}},setConsumerConfig:e=>{t=e}}},F=e=>e instanceof Date,j=e=>e instanceof Element||e instanceof Document,W=e=>0===Object.keys(e).length,G=e=>null!=e&&"object"==typeof e,H=(e,...t)=>Object.prototype.hasOwnProperty.call(e,...t),Y=e=>G(e)&&W(e),z=e=>t=>new Promise((r,n)=>{e(t,e=>{r(e)},e=>{n(e)})}),q=(e,t)=>{if(e===t)return{};if(!G(e)||!G(t)||j(e)||j(t))return t;let r=Object.keys(e).reduce((e,r)=>(H(t,r)||(e[r]=void 0),e),{});return F(e)||F(t)?e.valueOf()==t.valueOf()?{}:t:Object.keys(t).reduce((r,n)=>{if(!H(e,n))return r[n]=t[n],r;let i=q(e[n],t[n]);return Y(i)&&!F(i)&&(Y(e[n])||!Y(t[n]))||(r[n]=i),r},r)},$=e=>{let t={...e},{configConsumerConstructor:r,setConsumerConfig:n}=x(new U);return n(e),{getConfigField:e=>t[e],setConfig:(e,r)=>{let i=Object.entries(e).reduce((e,[t,r])=>(e[t]={...e[t],...r},e),{...t}),s=q(t,i);t=i,Object.entries(s).forEach(([e,t])=>{let n=V(e);r.publish(n,{updatedValues:t,newConfig:i})}),n(t)},getConfig:()=>t,resetConfig:()=>{t={...e}},ConfigConsumer:r}};function K(e,t,r){if(!r||"function"!=typeof r.value)throw TypeError(`Only methods can be decorated with @bind. <${t}> is not a method!`);return{configurable:!0,get(){let e=r.value?.bind(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e}}}function Q(e,t,r,n){var i,s=arguments.length,o=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(s<3?i(o):s>3?i(t,r,o):i(t,r))||o);return s>3&&o&&Object.defineProperty(t,r,o),o}(i=g||(g={})).HLS="hls",i.WEBRTC="webrtc",i.NATIVE="native",i.BROADCAST="broadcast",(s=v||(v={})).IDLE="idle",s.LOADING="loading",s.PAUSED="paused",s.PLAYING="playing",s.ERROR="error",(o=m||(m={})).WAITING="waiting",o.AUTO="auto",o.MANUAL="manual",(a=y||(y={})).BROADCAST_STATE_CHANGED="commonEvents.broadcastStateChanged",a.BROADCAST_REMOTE_STATS_AVAILABLE="commonEvents.broadcastRemoteStatsAvailable",a.PLAYING_STATE_CHANGED="commonEvents.playingStateChanged",a.COMMON_ERROR="commonEvents.commonError";let J=new U;(b||(b={})).LOG="logger.log";let Z=(e,t)=>(r,n)=>{J.publish(b.LOG,{domain:e,timestamp:performance.now(),level:t,message:r,payload:n})},X=e=>{let t=`${e}{${(Math.random()+1).toString(36).substring(2,6)}}`;return{debug:Z(t,"debug"),verbose:Z(t,"verbose"),info:Z(t,"info"),warn:Z(t,"warn"),error:Z(t,"error"),fatal:Z(t,"fatal")}},ee=(...e)=>console.log(...e.filter(e=>void 0!==e)),et={debug:(e,t)=>ee(`%c${e}`,"color: rgb(102, 102, 102)",t),verbose:(e,t)=>ee(`%c${e}`,"color: rgb(36, 114, 200)",t),info:(e,t)=>ee(`%c${e}`,"color: rgb(13, 188, 121)",t),warn:(e,t)=>ee(`%c${e}`,"color: rgb(229, 229, 16)",t),error:(e,t)=>ee(`%c${e}`,"color: rgb(241, 76, 76)",t),fatal:(e,t)=>ee(`%c${e}`,"background: rgb(241, 76, 76); color: #fff",t)},er=[],en=class{constructor(e=er,t=[],r=[],n=!0){this._levels=e,this._enableErrorAutoLog=n,this._onLogMessageReceivedToken=J.subscribe(b.LOG,this._onMessageReceived),this._onErrorReceivedToken=J.subscribe(y.COMMON_ERROR,this._onErrorReceived),this._ignoreDomains=r,this._additionalScopeSubscriptions=t.map(e=>J.subscribe(e,t=>{this._onAdditionalScopeMessageReceived(e,t)}))}destroy(){J.unsubscribe(this._onLogMessageReceivedToken),J.unsubscribe(this._onErrorReceivedToken),this._additionalScopeSubscriptions.forEach(J.unsubscribe)}_onMessageReceived(e){let{domain:t,timestamp:r,level:n,message:i,payload:s}=e;!this._levels.includes(n)||this._ignoreDomains.includes(t)||(et[n]||et.info)(`[${t}] ${n.toUpperCase()}:${i}@${r}`,s)}_onAdditionalScopeMessageReceived(e,t){(0,et.verbose)(`[${e}] Event receiver with payload ${t} @ ${performance.now()}`)}_onErrorReceived({error:e}){this._enableErrorAutoLog&&X("COMMON ERROR").error(`Error in ${e.domain}: ${e.message} ${e.info&&" ("+e.info+")"}`)}};Q([K],en.prototype,"_onMessageReceived",null),Q([K],en.prototype,"_onAdditionalScopeMessageReceived",null),Q([K],en.prototype,"_onErrorReceived",null);let ei={videoElementControllerConfig:{limitCheckingAutoplay:5,minimalPossibleVideoDimension:50,timeoutUpdateStatusPlaying:2e3,timeoutUpdateVideoDuration:500}},{ConfigConsumer:es,setConfig:eo,resetConfig:ea}=$(ei);(l=E||(E={})).NATIVE_EVENT="videoElementController.nativeEvent",l.CLICK="videoElementController.click",l.FORCE_PLAY_AFTER_PAUSE="videoElementController.forcePlayAfterPause",l.VIDEO_START="videoElementController.videoStart",l.VIDEO_PAUSE="videoElementController.videoPause",l.VIDEO_RESET="videoElementController.videoReset",l.PAUSED="videoElementController.paused",l.PLAYING="videoElementController.playing",l.LOADING="videoElementController.loading",l.LOADED="videoElementController.loaded",l.UPDATED="videoElementController.updated",l.DESTROY="videoElementController.destroy",l.STREAM_RESET="videoElementController.streamReset",l.CAN_PLAY="videoElementController.canPlay",l.REMOVE_MEDIA_STREAM="videoElementController.removeMediaStream",l.ERROR="videoElementController.error",l.ABORT="videoElementController.abort",l.STALLED="videoElementController.stalled",l.WAITING="videoElementController.waiting",l.UPDATE_PLAYER_RESOLUTION="videoElementController.updatePlayerResolution",l.RESET_CHECKING_AUTOPLAY_COUNT="videoElementController.resetCheckingAutoplayCount",l.CANCEL_RESET_STREAM="videoElementController.cancelResetStream",l.RESTART="videoElementController.restart",l.TIME_UPDATE_NATIVE="videoElementController.native",l.UPDATE_MEDIA_STREAM="videoElementController.updateMediaStream",l.VIDEO_ELEMENT_RECREATED="videoElementController.videoElementRecreated",l.VIDEO_PLAYBACK_STATE_CHANGED="videoElementController.videoPlaybackStateChanged",l.SET_VOLUME="videoElementController.setVolume";let el=0,eu=class{constructor(e){this._config={},this._logger=X("VideoElementController - AutoplayController"),this._eventsMap={[E.CAN_PLAY]:this._checkAutoplayEnabled,[E.DESTROY]:this.destroy,[E.FORCE_PLAY_AFTER_PAUSE]:this._forcePlayAfterPause,[E.RESET_CHECKING_AUTOPLAY_COUNT]:this._resetCheckingAutoplayCount},this._logger.info("Created"),this._logger.debug("Initial config",this._config),this._logger.debug("Initial state",this._state),this._state=e.state,this._eventBus=e.eventBus,this.init()}setConfig(e){this._logger.debug("Config update received, the new one:",e),this._config=e}destroy(){this._logger.info("Destroying"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap})}init(){this._logger.info("Initialization requested, attaching eventBus listeners"),this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}_handleConfigUpdated(){}_forcePlayAfterPause(e){if(void 0!==this._config.autoplay&&!this._config.autoplay){this._logger.verbose("Autoplay is disabled.");return}this._logger.verbose(`Trying to force video to play. Reason: ${e.reason}`);let t=this._state.getState();if(!t.startedPlaying||t.isPlaying||this._config.canBePaused){this._logger.verbose("Currently unable to autoplay the video");return}this._checkAutoplayEnabled()}_checkAutoplayEnabled(){if(this._logger.debug("Checking if autoplay is possible"),!this._state.getState().canPlay){this._logger.verbose("No canPlay event caught, skipping check");return}if(void 0!==this._config.autoplay&&!this._config.autoplay){this._logger.verbose("Autoplay is disabled.");return}if(el>this._config.limitCheckingAutoplay){this._logger.verbose(`Unable to autoplay the video. The limit of autoplay checking (${this._config.limitCheckingAutoplay}) is exceeded`),this._eventBus.publish(E.PAUSED,{});return}el+=1,this._logger.verbose("Autoplay is used to play the video"),this._eventBus.publish(E.VIDEO_START,{})}_resetCheckingAutoplayCount(){el=0}};Q([K],eu.prototype,"destroy",null),Q([K],eu.prototype,"init",null),Q([K],eu.prototype,"_forcePlayAfterPause",null),Q([K],eu.prototype,"_checkAutoplayEnabled",null),Q([K],eu.prototype,"_resetCheckingAutoplayCount",null);let ec=class extends EventTarget{constructor(){super()}emitEvent(e,t){this.dispatchEvent(new CustomEvent(e,{detail:t}))}},ed=class extends ec{constructor(e){super(),this._eventsMap={[E.PLAYING]:this._handlePlaying,[E.LOADING]:this._handleLoading,[E.VIDEO_PAUSE]:this._handlePause,[E.CLICK]:this._handleClick,[E.DESTROY]:this.destroy,[E.NATIVE_EVENT]:this._handleNativeEvent,[E.UPDATE_PLAYER_RESOLUTION]:this._handleUpdatePlayerResolution,[E.VIDEO_PLAYBACK_STATE_CHANGED]:this._handleVideoPlaybackStateChange,[E.TIME_UPDATE_NATIVE]:this._handleTimeUpdate},this._eventBus=e.eventBus,this.init()}destroy(){this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap})}init(){this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}_handlePlaying(e){this.emitEvent(p.PLAYING,e)}_handleLoading(){this.emitEvent(p.LOADING,{})}_handlePause(){this.emitEvent(p.PAUSE,{})}_handleClick(e){this.emitEvent(p.CLICK,{originalEvent:e.originalEvent})}_handleNativeEvent(e){this.emitEvent(p.NATIVE_EVENT,e)}_handleUpdatePlayerResolution(e){this.emitEvent(p.UPDATE_PLAYER_RESOLUTION,e)}_handleTimeUpdate(e){this.emitEvent(p.TIME_UPDATE,e)}_handleVideoPlaybackStateChange(e){this.emitEvent(p.VIDEO_PLAYBACK_STATE_CHANGE,{prevState:e.prevState,nextState:e.nextState})}};Q([K],ed.prototype,"destroy",null),Q([K],ed.prototype,"init",null),Q([K],ed.prototype,"_handlePlaying",null),Q([K],ed.prototype,"_handleLoading",null),Q([K],ed.prototype,"_handlePause",null),Q([K],ed.prototype,"_handleClick",null),Q([K],ed.prototype,"_handleNativeEvent",null),Q([K],ed.prototype,"_handleUpdatePlayerResolution",null),Q([K],ed.prototype,"_handleTimeUpdate",null),Q([K],ed.prototype,"_handleVideoPlaybackStateChange",null);var eh={};eh=function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t||4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,(function(t){return e[t]}).bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=90)}({17:function(e,t,r){t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||""},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||""},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},e.getMacOSVersionName=function(e){var t=e.split(".").splice(0,2).map(function(e){return parseInt(e,10)||0});if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},e.getAndroidVersionName=function(e){var t=e.split(".").splice(0,2).map(function(e){return parseInt(e,10)||0});if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0},e.getVersionPrecision=function(e){return e.split(".").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),o=Math.max(i,s),a=0,l=e.map([t,r],function(t){var r=o-e.getVersionPrecision(t),n=t+Array(r+1).join(".0");return e.map(n.split("."),function(e){return Array(20-e.length).join("0")+e}).reverse()});for(n&&(a=o-Math.min(i,s)),o-=1;o>=a;){if(l[0][o]>l[1][o])return 1;if(l[0][o]===l[1][o]){if(o===a)return 0;o-=1}else if(l[0][o]1?n-1:0),s=1;s0){var o=Object.keys(r),l=a.default.find(o,function(e){return t.isOS(e)});if(l){var u=this.satisfies(r[l]);if(void 0!==u)return u}var c=a.default.find(o,function(e){return t.isPlatform(e)});if(c){var d=this.satisfies(r[c]);if(void 0!==d)return d}}if(s>0){var h=Object.keys(i),f=a.default.find(h,function(e){return t.isBrowser(e,!0)});if(void 0!==f)return this.compareVersion(i[f])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=a.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if("string"==typeof i)return">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(n=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(a.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some(function(e){return t.is(e)})},e}();t.default=u,e.exports=t.default},92:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=/version\/(\d+(\.?_?\d+)+)/i,o=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=i.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\/|opios/i],describe:function(e){var t={name:"Opera"},r=i.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:"NAVER Whale Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},r=i.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=i.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=i.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(e){var t={name:"Opera Touch"},r=i.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=i.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:"Maxthon"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:"Epiphany"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:"K-Meleon"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:"WeChat"},r=i.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=i.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\sedg\//i],describe:function(e){var t={name:"Microsoft Edge"},r=i.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:"Microsoft Edge"},r=i.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:"Vivaldi"},r=i.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=i.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=i.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:"Amazon Silk"},r=i.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=i.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=i.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t={name:"BlackBerry"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:"WebOS Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:"Bada"},r=i.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=i.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=i.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:"Electron"},r=i.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},r=i.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:"Google Search"},r=i.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:"Android Browser"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=o,e.exports=t.default},93:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18),o=[{test:[/Roku\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||i.default.getFirstMatch(/\bbb(\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=o,e.exports=t.default},94:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18),o=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:s.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=o,e.exports=t.default},95:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18),o=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=o,e.exports=t.default}});let ef=globalThis?.navigator?.userAgent?((u=eh)&&u.__esModule?u.default:u).getParser(globalThis.navigator.userAgent):null,e_=e=>!!ef&&(ef.satisfies(e)||!1),ep={safari15OrHigher:e_({safari:">=15"}),firefox:e_({firefox:">0"}),safari:e_({safari:">0"}),chrome:e_({chrome:">0"}),edge:e_({edge:">0"})},eg=new WeakMap,ev={IDLE:1,LOADING:2},em=(e,t)=>{let r=0===e.readyState,n=e.networkState!==ev.LOADING&&e.networkState!==ev.IDLE;if(ep.firefox&&"play"===t&&r&&n)throw Error("Can not play audio")},ey=(e,t)=>e instanceof HTMLMediaElement?(em(e,t),"function"==typeof t)?t(e):e[t]():null,eb=(e,t)=>{let r=(eg.get(e)||Promise.resolve()).then(()=>{let r=ey(e,t);return r?.then?Promise.resolve(r):new Promise(e=>{setTimeout(()=>{e(r)},150)})}).then(()=>{eg.delete(e)}).catch(t=>{throw eg.delete(e),t});return eg.set(e,r),r},eE=class{constructor(e){this._logger=X("VideoElementController - PlaybackController"),this._eventsMap={[E.VIDEO_START]:this._startVideo,[E.VIDEO_PAUSE]:this._pauseVideo,[E.VIDEO_RESET]:this._resetVideo,[E.RESTART]:this._restart,[E.DESTROY]:this._destroy},this._logger.info("Created"),this._logger.debug("Initial state",this._state),this._state=e.state,this._eventBus=e.eventBus,this.init()}init(){this._logger.info("Initialization requested, attaching eventBus listeners"),this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}_startVideo(){let e=this._state.getState().videoElement;if(this._logger.verbose("Starting the video"),e)return e.playbackRate||(e.playbackRate=1),this._logger.debug("Play call is added to the promises queue"),eb(e,"play").then(()=>{this._logger.debug("Play call resolved"),this._state.getState().canPlay&&this._eventBus.publish(E.PLAYING,{})}).catch(e=>{this._state.setState({isAutoplayError:!0}),this._logger.error("An error occured when trying to play the video.",{error:e}),this._state.getState().canPlay&&this._eventBus.publish(E.PAUSED,{})})}_pauseVideo(){this._logger.debug("Pausing the video");let e=this._state.getState().videoElement;if(e)return this._logger.debug("Pause call is added to the promises queue"),eb(e,"pause").then(()=>{this._logger.debug("Pause call resolved")}).catch(e=>{this._logger.warn("Could not pause video",e)})}_loadVideo(){this._logger.verbose("Loading the video");let e=this._state.getState().videoElement;if(e?.src&&e.src.startsWith("blob")){this._logger.debug("Stream seems to be blob. Skipping load");return}if(e)return this._logger.debug("Load call is added to the promises queue"),eb(e,"load").then(()=>{this._logger.debug("Load call resolved")}).catch(e=>{this._logger.warn("Could not load video",e)})}_resetVideo(){this._logger.verbose("Resetting the video"),this._state.getState().videoElement&&(this._eventBus.publish(E.LOADING,{}),this._loadVideo())}async _restart(){this._logger.verbose("Restarting the video"),await this._pauseVideo(),this._startVideo()}_destroy(){this._logger.info("Destroying"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap})}};Q([K],eE.prototype,"init",null),Q([K],eE.prototype,"_startVideo",null),Q([K],eE.prototype,"_pauseVideo",null),Q([K],eE.prototype,"_loadVideo",null),Q([K],eE.prototype,"_resetVideo",null),Q([K],eE.prototype,"_restart",null),Q([K],eE.prototype,"_destroy",null);let eS=(e,t)=>{if(!t||t<0)e.muted=!0,e.volume=0;else{let r=Math.min(t,1);isNaN(r)||(e.muted=!1,e.volume=r)}},eC=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)},eT=` width: 100%;`,eA=class{constructor({className:e,state:t,eventBus:r}){this._logger=X("VideoElementController - CanvasVideoRenderer"),this._knownVideoElementStyles="",this._eventsMap={[E.PLAYING]:this.startAnimationFrame,[E.LOADING]:this.cancelAnimationFrame,[E.REMOVE_MEDIA_STREAM]:this.cancelAnimationFrame},this._applyStyles=()=>{let{canvasElement:e,videoElement:t}=this._getElements();e&&t&&(this._knownVideoElementStyles=t.style.cssText,e.style.cssText=eT,t.style.cssText=` ${eT} opacity: 0; position: absolute; left: 0; top: 0; `)},this._state=t,this._eventBus=r;let n=document.createElement("canvas");this._canvasContext=n.getContext("2d"),e&&(n.className=e),this.init(),this._state.setState({canvasElement:n}),this._applyStyles(),this._logger.verbose("Canvas renderer has been created")}startAnimationFrame(){let{canvasElement:e,videoElement:t}=this._getElements();if(this.cancelAnimationFrame(),!e||!t)return;let{width:r,height:n}=e.getBoundingClientRect(),{videoWidth:i,videoHeight:s}=t;if(r/n<1&&i/s>1){let o=Math.max(r,i),a=r/i*s;if(this._canvasContext){let t=devicePixelRatio;e.width=o*t,e.height=n*t,this._canvasContext.scale(t,t)}this._canvasContext?.drawImage(t,r>o?(r-o)/2:0,(n-a)/2,o,a)}else{let o=Math.max(n,s),a=n/s*i;if(this._canvasContext){let t=devicePixelRatio;e.width=r*t,e.height=o*t,this._canvasContext.scale(t,t)}this._canvasContext?.drawImage(t,(r-a)/2,n>o?(n-o)/2:0,a,o)}this._state.getState().isLoading||(this._canvasAnimationFrameId=requestAnimationFrame(this.startAnimationFrame))}getCanvasElement(){return this._getElements().canvasElement}destroy(){this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap});let{canvasElement:e,videoElement:t}=this._getElements();e&&e.parentNode&&e.parentNode.removeChild(e),t&&(t.style.cssText=this._knownVideoElementStyles,this._knownVideoElementStyles=""),this._state.setState({canvasElement:null}),this._logger.verbose("Canvas renderer was destroyed")}init(){this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}cancelAnimationFrame(){this._canvasAnimationFrameId&&(cancelAnimationFrame(this._canvasAnimationFrameId),this._canvasAnimationFrameId=null)}_getElements(){let{videoElement:e,canvasElement:t}=this._state.getState();return{videoElement:e,canvasElement:t}}};Q([K],eA.prototype,"startAnimationFrame",null),Q([K],eA.prototype,"destroy",null),Q([K],eA.prototype,"init",null),Q([K],eA.prototype,"cancelAnimationFrame",null),Q([K],eA.prototype,"_getElements",null);let eP=class{constructor(e){this._canvasVideoRenderer=null,this._logger=X("VideoElementController - RenderController"),this._config={},this._isLocalVideo=!1,this._eventsMap={[E.SET_VOLUME]:this._setVolume,[E.DESTROY]:this._destroy},this._state=e.state,this._eventBus=e.eventBus,this._logger.info("Created"),this._logger.debug("Initial config",this._config),this._logger.debug("Initial state",this._state),this.init()}setConfig(e){this._logger.debug("Config update received, the new one:",e),this._config=e,this.applyConfigToVideoElement()}init(){this._logger.info("Initialization requested, attaching eventBus listeners"),this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}getElements(){let{videoElement:e,canvasElement:t,ownContainer:r}=this._state.getState();return{videoElement:e,canvasElement:t,ownContainer:r}}getVideoElement(){return this.getElements().videoElement}getCanvasElement(){return this.getElements().canvasElement}renderVideoInto(e){let{ownContainer:t,videoElement:r}=this.getElements();this._logger.debug("renderVideoInto method was called");let n=!1;if(e&&r){let i=t||e;r.parentElement!==i&&(n=!0,i.appendChild(r));let s=this._canvasVideoRenderer?.getCanvasElement();this._canvasVideoRenderer&&s?.parentElement!==i&&(n=!0,i.appendChild(s),this._logger.info("Canvas element has been rendered to DOM")),i===t&&t.parentElement!==e&&(n=!0,e.appendChild(t)),n?this._logger.info("Video element has been rendered to DOM"):this._logger.verbose("Skipping video element render: video element is already mounted to the DOM.")}}setVideoElement(e,t){if(this._logger.debug("Video element updated",e),e===this.getVideoElement()){this._logger.verbose("Received video element is equal to the previous one. Skipping");return}this._isLocalVideo&&(this._logger.verbose("Removing video element and container from document"),eC(this.getElements().videoElement),eC(this.getElements().ownContainer)),this._state.setState({videoElement:e,ownContainer:t}),this.applyConfigToVideoElement()}applyConfigToVideoElement(){if(this._logger.debug("Applying config to the video element"),!this.getVideoElement()){this._logger.verbose("No video element known, could not apply config");return}let e=this.getVideoElement();if(!e)return;let{isNonAnonymous:t,isMuted:r,nativeControls:n,videoElementClassName:i,canvasElementClassName:s,shouldUseCanvas:o,rootElement:a,autoplay:l}=this._config;this._logger.verbose("Applied config",this._config),l&&(e.autoplay=!0),e.playsInline=!0,void 0!==n&&(e.controls=!!n),void 0!==r&&(e.muted=!!r),void 0!==t&&(t?e.removeAttribute("crossOrigin"):e.crossOrigin="anonymous"),i&&(e.className=i);let u=[this._state.getState().volume,this._config.volume].find(e=>void 0!==e);if(void 0!==u&&this._setVolume({volume:u}),o&&!this._canvasVideoRenderer&&(this._logger.verbose("Adding canvas as requested"),this._addCanvasVideoRenderer(),this._state.getState().isPlaying&&this._canvasVideoRenderer.startAnimationFrame()),!o&&this._canvasVideoRenderer){let e=this._state.getState().stream;this._logger.verbose("Removing canvas renderer"),e&&this._eventBus.publish(E.UPDATE_MEDIA_STREAM,e),this._destroyCanvasRenderer()}let c=this.getCanvasElement();c&&(e.className="",s&&(c.className=s)),a&&this.renderVideoInto(a)}destroy(){if(this._logger.info("Destroying"),this._destroyCanvasRenderer(),this._isLocalVideo){this._logger.debug("Removing video element and container from document in destroy");let{videoElement:e,ownContainer:t}=this.getElements();eC(e),eC(t)}}createVideoElement(){let e,t;this._logger.info("Creating video element"),this._config.videoElement?(this._logger.debug("External video element passed from config - using existing one",this._config.videoElement),this._isLocalVideo=!1,e=this._config.videoElement):(this._isLocalVideo=!0,e=document.createElement("video"),t=document.createElement("div"),this._logger.debug("No external video element provided in config - created the new one",{videoElement:e,ownContainer:t}),t.style.position="relative"),this.setVideoElement(e,t),this._eventBus.publish(E.VIDEO_ELEMENT_RECREATED,{videoElement:this.getVideoElement()})}_addCanvasVideoRenderer(){this._logger.debug("Adding canvas renderer"),this._canvasVideoRenderer||(this._canvasVideoRenderer=new eA({videoElement:this.getVideoElement(),className:this._config.videoElementClassName,state:this._state,eventBus:this._eventBus}))}_destroyCanvasRenderer(){this._logger.debug("Destroying canvas renderer"),this._canvasVideoRenderer&&(this._canvasVideoRenderer.destroy(),this._canvasVideoRenderer=null)}_setVolume({volume:e}){let t=this.getVideoElement();t&&(eS(t,e),this._logger.verbose(`Video volume level has been set to ${e}`))}_destroy(){this._logger.info("Destroying"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap})}};Q([K],eP.prototype,"getElements",null),Q([K],eP.prototype,"getVideoElement",null),Q([K],eP.prototype,"getCanvasElement",null),Q([K],eP.prototype,"renderVideoInto",null),Q([K],eP.prototype,"setVideoElement",null),Q([K],eP.prototype,"applyConfigToVideoElement",null),Q([K],eP.prototype,"createVideoElement",null),Q([K],eP.prototype,"_addCanvasVideoRenderer",null),Q([K],eP.prototype,"_destroyCanvasRenderer",null),Q([K],eP.prototype,"_setVolume",null),Q([K],eP.prototype,"_destroy",null);let eR=class{constructor(e){this._config={},this._logger=X("VideoElementController - StateController"),this._eventsMap={[E.PLAYING]:this._handlePlaying,[E.LOADING]:this._handleLoading,[E.VIDEO_PAUSE]:this._handlePause,[E.CAN_PLAY]:this._handleCanPlay,[E.PAUSED]:this._handlePaused,[E.RESTART]:this._handleRestart,[E.UPDATED]:this._handleUpdate,[E.STALLED]:this._handleStalled,[E.WAITING]:this._handleWaiting,[E.UPDATE_PLAYER_RESOLUTION]:this._handleUpdatePlayerResolution,[E.ERROR]:this._handleError,[E.SET_VOLUME]:this._handleSetVolume,[E.DESTROY]:this.destroy},this._logger.info("Created"),this._logger.verbose("Initial state",e.state),this._state=e.state,this._eventBus=e.eventBus,this.init()}setConfig(e){this._logger.debug("Config update received, the new one:",e),this._config=e}destroy(){this._logger.info("Destroy"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap}),this._state.resetState(),this._state.setState({isDestroyed:!0})}init(){this._logger.info("Initialization requested, attaching eventBus listeners"),this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}_updateState(e){let t=this._state.getState().videoPlaybackState,r=t;e.isPlaying?r=v.PLAYING:e.isLoading?r=v.LOADING:e.isPaused?r=v.PAUSED:e.isError&&(r=v.ERROR),this._logger.debug(`State updated: ${t} -> ${r}`),this._state.setState({...e,videoPlaybackState:r}),t!==r&&this._eventBus.publish(E.VIDEO_PLAYBACK_STATE_CHANGED,{prevState:t,nextState:r})}_handlePlaying(){this._logger.debug("Playing event received"),this._updateState({isPlaying:!0,startedPlaying:!0,isLoading:!1,isStalled:!1,isWaiting:!1,isPaused:!1,isError:!1})}_handleLoading(){this._logger.debug("Loading event received"),this._updateState({isLoading:!0,isPlaying:!1})}_handlePause(){this._logger.debug("Pause event received"),this._updateState({isPlaying:!1,isPaused:!0})}_handlePaused(){this._logger.debug("Paused event received"),this._updateState({isPlaying:!1,isLoading:!1,isPaused:!0})}_handleCanPlay(){this._logger.debug("CanPlay event received"),this._updateState({canPlay:!0,isDestroyed:!1})}_handleRestart(){this._logger.debug("Restart event received"),this._updateState({isRestarted:!0})}_handleStalled(){this._logger.debug("Stalled event received"),this._updateState({isStalled:!0})}_handleWaiting(){this._logger.debug("Waiting event received"),this._updateState({isWaiting:!0})}_handleError(){this._logger.debug("Error event received"),this._updateState({isError:!0})}_handleSetVolume({volume:e}){this._logger.debug("Volume event received",{volume:e}),this._updateState({volume:e})}_handleUpdatePlayerResolution(e){this._logger.debug("Player resolution event received",{height:e.height,width:e.width}),this._updateState({videoElementResolution:{height:e.height,width:e.width}})}_handleUpdate(){this._logger.debug("Update event received"),this._updateState({canPlay:!1,isLoading:!0,isPlaying:!1,isRestarted:!1,isPaused:!1,isError:!1})}};Q([K],eR.prototype,"destroy",null),Q([K],eR.prototype,"init",null),Q([K],eR.prototype,"_updateState",null),Q([K],eR.prototype,"_handlePlaying",null),Q([K],eR.prototype,"_handleLoading",null),Q([K],eR.prototype,"_handlePause",null),Q([K],eR.prototype,"_handlePaused",null),Q([K],eR.prototype,"_handleCanPlay",null),Q([K],eR.prototype,"_handleRestart",null),Q([K],eR.prototype,"_handleStalled",null),Q([K],eR.prototype,"_handleWaiting",null),Q([K],eR.prototype,"_handleError",null),Q([K],eR.prototype,"_handleSetVolume",null),Q([K],eR.prototype,"_handleUpdatePlayerResolution",null),Q([K],eR.prototype,"_handleUpdate",null);let ew=class{constructor(e){this._config={},this._logger=X("VideoElementController - StreamController"),this._eventsMap={[E.PLAYING]:this._cancelResetStream,[E.LOADING]:this._cancelResetStream,[E.LOADED]:this._cancelResetStream,[E.PAUSED]:this._cancelResetStream,[E.UPDATED]:this._cancelResetStream,[E.CANCEL_RESET_STREAM]:this._cancelResetStream,[E.STREAM_RESET]:this._resetStream,[E.UPDATE_MEDIA_STREAM]:this.updateMediaStream,[E.DESTROY]:this.destroy},this._getIsSrcObjectAvailable=()=>this._props.getVideoElement()?.srcObject!==void 0,this._state=e.state,this._props=e,this._eventBus=e.eventBus,this._logger.info("Created"),this._logger.verbose("Initial state",e.state),this.init()}setConfig(e){this._logger.debug("Config update received, the new one:",e),this._config=e}updateMediaStream(e){if(this._logger.info("Updating media stream",{stream:e}),!this._props.getVideoElement()){this._logger.debug("No video element known. Skipping media stream update");return}this._attachStream(e),this._eventBus.publish(E.VIDEO_START,{})}removeMediaStream(){this._logger.info("Removing media stream");let e=this._props.getVideoElement();if(!e){this._logger.debug("No video element known. Skipping media stream remove");return}this._eventBus.publish(E.VIDEO_PAUSE,{}),this._eventBus.publish(E.REMOVE_MEDIA_STREAM,{}),this._getIsSrcObjectAvailable()?(this._logger.debug("Setting srcObject to null"),e.srcObject=null):(this._logger.debug("Revoking object url",{url:e.src}),window.URL.revokeObjectURL(e.src)),e.src&&(this._logger.debug("Removing src attribute from video"),e.removeAttribute("src"))}destroy(){this._logger.info("Destroying"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap})}init(){this._logger.info("Initialization requested, attaching eventBus listeners"),this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}_attachStream(e){this._logger.info("Attaching media stream",{stream:e});let t=this._props.getVideoElement();if(!t||!e){this._logger.debug("No video element or stream defined. Skipping stream set");return}if(t.src===e){this._logger.debug("Current video element src attribute value is equal to the new stream. Skipping stream set");return}"string"==typeof e?(this._logger.debug("Setting video element src attribute"),t.src=e):this._getIsSrcObjectAvailable()?(this._logger.debug("Setting video element srcObject attribute"),t.srcObject=e):(t.src=window.URL.createObjectURL(e),this._logger.debug(`Got MediaStream as stream, but srcObject is not available. Created new object URL: ${t.src}`))}_cancelResetStream(){this._logger.debug("Stream reset action cancel required"),this._streamResetDelayId&&(clearTimeout(this._streamResetDelayId),this._logger.debug("Stream reset action cancelled"))}_resetStream({timeout:e}){if(this._logger.debug("Reset stream required"),!e){this._logger.verbose("No timeout set, skipping stream reset",{timeout:e});return}this._cancelResetStream(),this._streamResetDelayId=setTimeout(()=>{this._logger.debug("Resetting stream timeout fired");let e=!1;this._config.onResetStream&&(e=this._config.onResetStream());let t=this._state.getState().stream;if(t&&!e){if("string"==typeof t&&t.startsWith("blob")){this._logger.debug("Streams seems to be object url. Skipping reset");return}this._logger.debug("Resetting stream"),this.removeMediaStream(),this.updateMediaStream(t)}},e)}};Q([K],ew.prototype,"updateMediaStream",null),Q([K],ew.prototype,"removeMediaStream",null),Q([K],ew.prototype,"destroy",null),Q([K],ew.prototype,"init",null),Q([K],ew.prototype,"_attachStream",null),Q([K],ew.prototype,"_cancelResetStream",null),Q([K],ew.prototype,"_resetStream",null);var eO=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},eM="object"==typeof R&&R&&R.Object===Object&&R,eI="object"==typeof self&&self&&self.Object===Object&&self,eL=eM||eI||Function("return this")(),eN=function(){return eL.Date.now()},eD=/\s/,eB=function(e){for(var t=e.length;t--&&eD.test(e.charAt(t)););return t},ek=/^\s+/,eU=eL.Symbol,eV=Object.prototype,ex=eV.hasOwnProperty,eF=eV.toString,ej=eU?eU.toStringTag:void 0,eW=function(e){var t=ex.call(e,ej),r=e[ej];try{e[ej]=void 0;var n=!0}catch(e){}var i=eF.call(e);return n&&(t?e[ej]=r:delete e[ej]),i},eG=Object.prototype.toString,eH=eU?eU.toStringTag:void 0,eY=0/0,ez=/^[-+]0x[0-9a-f]+$/i,eq=/^0b[01]+$/i,e$=/^0o[0-7]+$/i,eK=parseInt,eQ=function(e){if("number"==typeof e)return e;if("symbol"==typeof(t=e)||null!=t&&"object"==typeof t&&"[object Symbol]"==(null==t?void 0===t?"[object Undefined]":"[object Null]":eH&&eH in Object(t)?eW(t):eG.call(t)))return eY;if(eO(e)){var t,r,n="function"==typeof e.valueOf?e.valueOf():e;e=eO(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=(r=e)?r.slice(0,eB(r)+1).replace(ek,""):r;var i=eq.test(e);return i||e$.test(e)?eK(e.slice(2),i?2:8):ez.test(e)?eY:+e},eJ=Math.max,eZ=Math.min,eX=function(e,t,r){var n,i,s,o,a,l,u=0,c=!1,d=!1,h=!0;if("function"!=typeof e)throw TypeError("Expected a function");function f(t){var r=n,s=i;return n=i=void 0,u=t,o=e.apply(s,r)}function _(e){var r=e-l,n=e-u;return void 0===l||r>=t||r<0||d&&n>=s}function p(){var e,r,n,i=eN();if(_(i))return g(i);a=setTimeout(p,(e=i-l,r=i-u,n=t-e,d?eZ(n,s-r):n))}function g(e){return(a=void 0,h&&n)?f(e):(n=i=void 0,o)}function v(){var e,r=eN(),s=_(r);if(n=arguments,i=this,l=r,s){if(void 0===a)return u=e=l,a=setTimeout(p,t),c?f(e):o;if(d)return clearTimeout(a),a=setTimeout(p,t),f(l)}return void 0===a&&(a=setTimeout(p,t)),o}return t=eQ(t)||0,eO(r)&&(c=!!r.leading,s=(d="maxWait"in r)?eJ(eQ(r.maxWait)||0,t):s,h="trailing"in r?!!r.trailing:h),v.cancel=function(){void 0!==a&&clearTimeout(a),u=0,n=l=i=a=void 0},v.flush=function(){return void 0===a?o:g(eN())},v},e0=function(e,t,r){var n=!0,i=!0;if("function"!=typeof e)throw TypeError("Expected a function");return eO(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),eX(e,t,{leading:n,maxWait:t,trailing:i})};let e1="ristrettoWasRestarted",e2=0,e3=0,e4=class{constructor(e){this._shouldSetNextUpdateVideoDurationId=!0,this._config={},this._logger=X("VideoElementController - TimeUpdateController"),this._onNativeTimeUpdateHandlerThrottled=e0(this._onNativeTimeUpdateHandler,2e3,{trailing:!1}),this._eventsMap={[E.TIME_UPDATE_NATIVE]:this._onNativeTimeUpdateHandlerThrottled,[E.DESTROY]:this._destroy},this._logger.info("Created"),this._logger.debug("Initial state",e.state),this._logger.debug("Initial props",e),this._state=e.state,this._props=e,this._eventBus=e.eventBus}setConfig(e){this._logger.debug("Config update received, the new one:",e);let t=e.timeoutUpdateStatusPlaying!==this._config.timeoutUpdateStatusPlaying;this._config=e,t&&(this._eventsMap[E.TIME_UPDATE_NATIVE]=e0(this._onNativeTimeUpdateHandler,e.timeoutUpdateStatusPlaying,{trailing:!1}),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap}),this.init())}init(){this._logger.info("Initialization requested, attaching eventBus listeners"),this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}startTimeUpdate(){if(this._logger.debug("Starting time update"),this._stopTimeUpdate(),!this._shouldSetNextUpdateVideoDurationId||!this._config){this._shouldSetNextUpdateVideoDurationId=!0;return}this._updateVideoDurationId=setTimeout(this._onTimeUpdate,this._config.timeoutUpdateVideoDuration),this._publishUpdatePlayerResolutionIfNeeded()}_onNativeTimeUpdateHandler(e){if(this._logger.debug("Native video timeUpdate caught"),e?.originalEvent?.defaultPrevented)return;let t=this._props.getVideoElement(),{canPlay:r,isPlaying:n,isLoading:i,isRestarted:s}=this._state.getState();if(this._publishUpdatePlayerResolutionIfNeeded(),!r){this._logger.verbose("CanPlay shared state is false. Skipping");return}this._eventBus.publish(E.RESET_CHECKING_AUTOPLAY_COUNT,{});let o=e2!==t?.currentTime;this._logger.verbose(`Video current time is ${o?"":"not"} changed`),o?(this._eventBus.publish(E.CANCEL_RESET_STREAM,{}),!ep.safari15OrHigher||s||localStorage?.getItem(e1)||(localStorage.setItem(e1,"1"),this._eventBus.publish(E.RESTART,{})),t&&(e2=t.currentTime),(!n||i)&&this._eventBus.publish(E.PLAYING,{})):i?this._eventBus.publish(E.VIDEO_RESET,{}):this._eventBus.publish(E.LOADING,{})}_stopTimeUpdate(){this._logger.debug("Stopping time update"),clearTimeout(this._updateVideoDurationId)}_onTimeUpdate(){if(this._logger.debug("Time updated"),!this._state.getState().canPlay){this.startTimeUpdate();return}let e=this._props.getVideoElement();e&&e3!==e.currentTime&&(e3=e.currentTime),this.startTimeUpdate()}_publishUpdatePlayerResolutionIfNeeded(){this._logger.debug("Setting new resolution if changed");let e=this._props.getVideoElement();if(e){let{videoWidth:t,videoHeight:r}=e,{videoElementResolution:n}=this._state.getState();this._logger.verbose(`Stored resolution is ${n?.width}x${n?.height}, current is ${t}x${r}`),(!n||n.height!==r||n.width!==t)&&this._config.minimalPossibleVideoDimension&&Math.min(r,t)>this._config.minimalPossibleVideoDimension&&this._eventBus.publish(E.UPDATE_PLAYER_RESOLUTION,{width:t,height:r})}}_destroy(){this._logger.info("Destroying"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap}),this._shouldSetNextUpdateVideoDurationId=!1,this._stopTimeUpdate()}};Q([K],e4.prototype,"init",null),Q([K],e4.prototype,"startTimeUpdate",null),Q([K],e4.prototype,"_onNativeTimeUpdateHandler",null),Q([K],e4.prototype,"_stopTimeUpdate",null),Q([K],e4.prototype,"_onTimeUpdate",null),Q([K],e4.prototype,"_publishUpdatePlayerResolutionIfNeeded",null),Q([K],e4.prototype,"_destroy",null);let e6=class{constructor(e){this._config={},this._logger=X("VideoElementController - VideoEventsHandler"),this._timeUpdateEventWasLogged=!1,this._eventsMap={[E.VIDEO_ELEMENT_RECREATED]:this._handleVideoElementRecreated,[E.DESTROY]:this._handleDestroy},this._onVideoClick=e=>{this._logger.verbose('"click" video native event fired'),this._handleNativeEvent(e),this._eventBus.publish(E.CLICK,{originalEvent:e})},this._onSeeked=e=>{this._logger.verbose('"seeked" video native event fired'),this._handleNativeEvent(e),this._eventBus.publish(E.FORCE_PLAY_AFTER_PAUSE,{reason:"seeked video native event"})},this._onRateChange=e=>{this._logger.verbose('"ratechange" video native event fired'),this._handleNativeEvent(e),e.target&&!e.target.playbackRate&&this._eventBus.publish(E.FORCE_PLAY_AFTER_PAUSE,{reason:"video playbackRate is 0"})},this._onCanPlayThrough=e=>{this._logger.verbose('"canplaythrough" video native event fired');let t=this._state.getState();this._handleNativeEvent(e),(t.isStalled||t.isWaiting)&&this._eventBus.publish(E.FORCE_PLAY_AFTER_PAUSE,{reason:"canplaythrough video native event fired, and video is in the state of either stalled or waiting"})},this._onPlayingHandler=e=>{this._logger.verbose('"playing" video native event fired'),this._logger.info("Video has started playing"),this._handleNativeEvent(e),this._eventBus.publish(E.PLAYING,{isAutoplay:!this._state.getState().isAutoplayError})},this._onAbortHandler=e=>{this._logger.verbose('"abort" video native event fired'),this._handleNativeEvent(e),e.defaultPrevented||this._eventBus.publish(E.LOADING,{})},this._onPauseHandler=e=>{this._logger.verbose('"pause" video native event fired'),this._handleNativeEvent(e),this._eventBus.publish(E.VIDEO_PAUSE,{}),this._eventBus.publish(E.FORCE_PLAY_AFTER_PAUSE,{reason:"pause video event fired (most likely user paused the video manually)"})},this._onCanPlayHandler=e=>{this._logger.verbose('"canplay" video native event fired'),this._handleNativeEvent(e),e.defaultPrevented||(this._state.setState({canPlay:!0}),this._eventBus.publish(E.CAN_PLAY,{}))},this._onErrorHandler=e=>{if(this._logger.error('"error" video native event fired',{error:e}),this._handleNativeEvent(e),this._eventBus.publish(E.ERROR,{originalEvent:e}),!e.defaultPrevented){let{MEDIA_ERR_SRC_NOT_SUPPORTED:e}=MediaError,t=this._props.getVideoElement()?.error;t?.code!==e&&(this._logger.verbose("Video element error is not of MEDIA_ERR_SRC_NOT_SUPPORTED kind. Requesting reset"),this._eventBus.publish(E.VIDEO_RESET,{}))}},this._onTimeUpdateHandler=e=>{this._handleNativeEvent(e),this._timeUpdateEventWasLogged||(this._logger.verbose('"timeupdate" video native event fired for the first time'),this._timeUpdateEventWasLogged=!0),this._eventBus.publishSync(E.TIME_UPDATE_NATIVE,{originalEvent:e})},this._onLoadStartHandler=e=>{this._handleNativeEvent(e),this._logger.verbose('"loadstart" video native event fired');let{timeoutUpdateStream:t}=this._config;this._eventBus.publish(E.LOADING,{}),this._eventBus.publish(E.STREAM_RESET,{reason:"onLoadStartHandler",timeout:t})},this._onLoadedDataHandler=e=>{this._logger.verbose('"loadeddata" video native event fired'),this._handleNativeEvent(e),this._eventBus.publish(E.LOADED,{})},this._onWaiting=e=>{this._logger.verbose('"waiting" video native event fired');let{timeoutWaitingStream:t}=this._config;this._handleNativeEvent(e),this._eventBus.publish(E.WAITING,{}),this._eventBus.publish(E.LOADING,{}),this._eventBus.publish(E.STREAM_RESET,{reason:"onWaiting",timeout:t})},this._onStalled=e=>{this._logger.verbose('"stalled" video native event fired');let{timeoutWaitingStream:t}=this._config;this._handleNativeEvent(e),this._eventBus.publish(E.STALLED,{}),this._eventBus.publish(E.STREAM_RESET,{reason:"onStalled",timeout:t})},this._onEndFullscreenHandler=e=>{this._handleNativeEvent(e)},this._props=e,this._state=e.state,this._eventBus=e.eventBus,this.init()}setConfig(e){this._config=e}init(){this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}toggleEvents(e){let t=this._props.getVideoElement();if(!t)return;let r="attach"===e?"addEventListener":"removeEventListener";t[r]("click",this._onVideoClick),t[r]("playing",this._onPlayingHandler),t[r]("abort",this._onAbortHandler),t[r]("pause",this._onPauseHandler),t[r]("canplay",this._onCanPlayHandler),t[r]("error",this._onErrorHandler),t[r]("timeupdate",this._onTimeUpdateHandler),t[r]("loadstart",this._onLoadStartHandler),t[r]("loadeddata",this._onLoadedDataHandler),t[r]("waiting",this._onWaiting),t[r]("stalled",this._onStalled),t[r]("canplaythrough",this._onCanPlayThrough),t[r]("seeked",this._onSeeked),t[r]("ratechange",this._onRateChange),t[r]("webkitendfullscreen",this._onEndFullscreenHandler),"addEventListener"===r?this._logger.verbose("event listeners are ATTACHED to the video element"):this._logger.verbose("event listeners are DETACHED from the video element")}_handleVideoElementRecreated(){this.toggleEvents("attach")}_handleDestroy(){this.toggleEvents("detach"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap})}_handleNativeEvent(e){this._eventBus.publishSync(E.NATIVE_EVENT,{eventName:e.type,event:e})}};Q([K],e6.prototype,"init",null),Q([K],e6.prototype,"_handleVideoElementRecreated",null),Q([K],e6.prototype,"_handleDestroy",null);let e5={canPlay:!1,isLoading:!0,isError:!1,isAutoplayError:!1,isPaused:!1,isPlaying:!1,isRestarted:!1,isStalled:!1,isWaiting:!1,isDestroyed:!1,videoPlaybackState:v.IDLE,startedPlaying:!1},e8=class{constructor(e){this._initState={...e},this._state={...e}}setState(e,t){Object.assign(this._state,e),t&&t(this._state)}getState(){return this._state}resetState(){this.setState(this._initState)}},e9=class{constructor(){this._loggerTransport=new en,this._logger=X("VideoElementController"),this._config={...ei.videoElementControllerConfig},this.attachVideoElementEvents=()=>{this._logger.debug("Attach event listeners"),this._eventsHandler.toggleEvents("attach"),this._timeUpdateController.startTimeUpdate()},this.detachVideoElementEvents=()=>{this._logger.debug("Detach event listeners"),this._eventsHandler.toggleEvents("detach")},this._updated=()=>{this._eventBus.publish(E.UPDATED,{})},this._logger.info("Created"),this._logger.debug("Initial config",this._config),this._eventBus=new U,this._createControllers()}addEventListener(e,t){this._logger.verbose(`Attaching ${e} event listener`),this._customEventsEmitter.addEventListener(e,t)}removeEventListener(e,t){this._logger.verbose(`Detaching ${e} event listener`),this._customEventsEmitter.removeEventListener(e,t)}getIsPlaying(){return this._state.getState().isPlaying}getVideoElement(){return this._state.getState().videoElement}getCanvasElement(){return this._state.getState().canvasElement}updateConfig(e){this._config={...this._config,...e},this._logger.debug("Config update received, the new one: ",this._config),e.isRemote&&this.attachVideoElementEvents(),this._syncConfig()}setVideoElement(e){this._logger.info("Video element set",e),this._renderController.setVideoElement(e),this.attachVideoElementEvents()}createVideoElement(){return this._logger.info("Creating video element"),this._renderController.createVideoElement(),this.getVideoElement()}setStream(e){if(this._logger.info("Setting media stream"),this._state.getState().stream===e){this._logger.verbose("Previous stream is equal to the new one. Skipping.");return}return e?this._streamController.updateMediaStream(e):this._streamController.removeMediaStream(),this._updated(),this._state.setState({stream:e}),this}renderVideoInto(e){this._logger.info("Rendering video element into conatiner",e),this._renderController.renderVideoInto(e)}setVolume(e){this._logger.info("Setting volume of the video element",{volume:e}),this._eventBus.publish(E.SET_VOLUME,{volume:e})}getState(){return this._state.getState()}destroy(){this._logger.info("Destroying"),this._config={...ei.videoElementControllerConfig},this.detachVideoElementEvents(),this._streamController.removeMediaStream(),this._renderController.destroy(),this._eventBus.publishSync(E.DESTROY,{}),this._logger.info("VideoElementController was destroyed"),this._loggerTransport?.destroy()}reinit(){this._logger.info("Reinit requested"),[this._autoplayController,this._customEventsEmitter,this._playbackController,this._streamController,this._stateController,this._timeUpdateController,this._renderController,this._eventsHandler].forEach(e=>{e&&e.init()}),this.attachVideoElementEvents(),this._logger.info("VideoElementController was reinited")}setLoggerLevels(e,t=[],r=[]){this._logger.info("Setting new log level",{levels:e}),this._loggerTransport&&(this._loggerTransport.destroy(),this._loggerTransport=null),e.length&&(this._loggerTransport=new en(e,t,r))}_syncConfig(){this._logger.verbose("Sycronizing configs across all controllers"),this._autoplayController?.setConfig(this._config),this._eventsHandler.setConfig(this._config),this._streamController.setConfig(this._config),this._timeUpdateController.setConfig(this._config),this._renderController.setConfig(this._config),this._stateController.setConfig(this._config)}_createControllers(){this._logger.verbose("Creating all controllers"),this._state=new e8(e5);let e={getVideoElement:this.getVideoElement,state:this._state,eventBus:this._eventBus};this._autoplayController=new eu(e),this._customEventsEmitter=new ed(e),this._eventsHandler=new e6(e),this._playbackController=new eE(e),this._streamController=new ew(e),this._stateController=new eR(e),this._timeUpdateController=new e4(e),this._renderController=new eP(e),this._logger.verbose("Controllers created")}};Q([K],e9.prototype,"addEventListener",null),Q([K],e9.prototype,"removeEventListener",null),Q([K],e9.prototype,"getIsPlaying",null),Q([K],e9.prototype,"getVideoElement",null),Q([K],e9.prototype,"getCanvasElement",null),(c=S||(S={}))[c.FATAL=0]="FATAL",c[c.ERROR=1]="ERROR",c[c.WARN=2]="WARN",c[c.INFO=3]="INFO",c[c.DEBUG=4]="DEBUG",c[c.VERBOSE=5]="VERBOSE",S.FATAL,S.ERROR,S.WARN,S.INFO,S.DEBUG,S.VERBOSE,S.FATAL,S.WARN,S.ERROR,S.INFO,S.DEBUG,S.VERBOSE,(d=C||(C={}))[d.MEDIA_DEVICES_UPDATED=0]="MEDIA_DEVICES_UPDATED";let e7="H264/90000",te="VP8/90000",tt=/a=rtpmap:\d+\s/,tr=({sdp:e})=>e?[...new Set(e.split(/\r?\n/).filter(e=>e.match(tt)).map(e=>e.replace(tt,"")))]:[],tn=async(e,t)=>{try{let r="play"===e?"recvonly":"sendonly",n=new(ti())({iceServers:[]});n.addTransceiver&&(n.addTransceiver("audio",{direction:r}),n.addTransceiver("video",{direction:r}));let i=await n.createOffer({}),s=tr(i);return n.close(),t.filter(e=>s.includes(e))}catch(e){return[]}},ti=()=>window.RTCPeerConnection||window.mozRTCPeerConnection||window.webkitRTCPeerConnection,ts=()=>window.RTCIceCandidate||window.mozRTCIceCandidate||window.webkitRTCIceCandidate,to=()=>window.RTCSessionDescription||window.mozRTCSessionDescription||window.webkitRTCSessionDescription,ta=()=>{let e=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices)||navigator.getUserMedia&&z(navigator.getUserMedia.bind(navigator))||navigator.webkitGetUserMedia&&z(navigator.webkitGetUserMedia.bind(navigator))||navigator.mozGetUserMedia&&z(navigator.mozGetUserMedia.bind(navigator));return t=>e.call(navigator,t)},tl={getIsWebRTCApiSupported:()=>!!(ti()&&ts()&&to()),resolveGetUserMedia:ta,resolveRTCPeerConnection:ti,resolveRTCIceCandidate:ts,resolveRTCSessionDescription:to,isH264BroadcastSupported:async()=>(await tn("broadcast",[e7,te])).some(e=>[e7,te].includes(e)),isH264PlayingSupported:async()=>(await tn("play",[e7,te])).some(e=>[e7,te].includes(e))},tu=e=>!!e&&("boolean"==typeof e?e:!!e.deviceId&&{deviceId:ep.safari?e.deviceId:{exact:e.deviceId},channelCount:2}),tc=(e,t)=>{if(!e)return!1;if("boolean"==typeof e)return!0;let r=e.width&&e.height?Number(e.width)/Number(e.height):t.baseAspectRatio,n={};return e.frameRate&&(n.frameRate={ideal:e.frameRate,min:15}),e.facingMode&&navigator.mediaDevices.getSupportedConstraints().facingMode&&(n.facingMode={exact:e.facingMode}),e.width&&(n.width={ideal:e.width}),e.height&&(n.height={ideal:e.height}),e.width&&e.height&&r&&(n.aspectRatio=r),e.deviceId&&(n.deviceId=ep.safari?e.deviceId:{exact:e.deviceId}),e.width&&e.height&&!n.facingMode&&(n.advanced=[{width:{min:e.width-t.sizeThreshold,max:e.width+t.sizeThreshold},height:{min:e.height-t.sizeThreshold,max:e.height+t.sizeThreshold}},{aspectRatio:r}]),0!==Object.keys(n).length&&n};(h=T||(T={})).VIDEO_INPUT="videoinput",h.AUDIO_INPUT="audioinput",h.AUDIO_OUTPUT="audiooutput";let td=(e,t)=>e.filter(e=>e.kind===t),th=async()=>{let e=await navigator.mediaDevices.enumerateDevices();return{audioInputs:td(e,T.AUDIO_INPUT),audioOutputs:td(e,T.AUDIO_OUTPUT),videoInputs:td(e,T.VIDEO_INPUT)}};(f=A||(A={})).SYSTEM_PERMISSION_DENIED="SystemPermissionDenied",f.USER_PERMISSION_DENIED="UserPermissionDenied",f.COULD_NOT_START_VIDEO_SOURCE="CouldNotStartVideoSource",f.GENERIC="Generic";let tf=async e=>new Promise((t,r)=>{navigator.mediaDevices.getUserMedia(e??{audio:!0,video:!0}).then(e=>{e.getTracks().forEach(e=>{e.stop()}),t(!0)}).catch(e=>{let t=e.name,n=e.message,i=A.GENERIC;ep.chrome?"NotAllowedError"===t?"Permission denied by system"===n?i=A.SYSTEM_PERMISSION_DENIED:"Permission denied"===n&&(i=A.USER_PERMISSION_DENIED):"NotReadableError"===t&&(i=A.COULD_NOT_START_VIDEO_SOURCE):ep.safari?"NotAllowedError"===t&&(i=A.USER_PERMISSION_DENIED):ep.edge?"NotAllowedError"===t?i=A.USER_PERMISSION_DENIED:"NotReadableError"===t&&(i=A.COULD_NOT_START_VIDEO_SOURCE):ep.firefox&&("NotFoundError"===t?i=A.SYSTEM_PERMISSION_DENIED:"NotReadableError"===t?i=A.SYSTEM_PERMISSION_DENIED:"NotAllowedError"===t?i=A.USER_PERMISSION_DENIED:"AbortError"===t&&(i=A.COULD_NOT_START_VIDEO_SOURCE)),r({type:i,name:e.name,message:e.message})})});(_=P||(P={})).LIVE="live",_.ENDED="ended";let t_=e=>{if(!e)return!0;let{muted:t,enabled:r,readyState:n}=e;return t||!r||n===P.ENDED},tp=e=>!e.active||e.getTracks().every(t_),tg=e=>{e&&(e.getTracks().forEach(t=>{t.stop(),e.removeTrack(t)}),e.stop&&e.stop())};Q([K],(class extends ec{constructor(){super(),this._currentMediaStream=null,this._mediaCheckCache=null,this._mediaDevices=null,navigator.mediaDevices.addEventListener("devicechange",this._onDevicesChanged)}destroy(){navigator.mediaDevices.removeEventListener("devicechange",this._onDevicesChanged),this._stopCurrentStream()}async requestPermissions(){if(this._mediaCheckCache)return this._mediaCheckCache;try{return await tf({video:!0,audio:!0}),this._mediaCheckCache={video:{isAvailable:!0,error:null},audio:{isAvailable:!0,error:null}},this._mediaCheckCache}catch(t){let e={video:{isAvailable:!1,error:null},audio:{isAvailable:!1,error:null}};return e.video=await this._checkKindPermissions({video:!0,audio:!1}),e.audio=await this._checkKindPermissions({video:!1,audio:!0}),this._mediaCheckCache=e,this._mediaCheckCache}}async getVideoDevices(){return(await this._getMediaDevices()).videoInputs}async getAudioInputDevices(){return(await this._getMediaDevices()).audioInputs}async getAudioOutputDevices(){return(await this._getMediaDevices()).audioOutputs}async getMediaStream(e,t){let r={};return(e.audio&&(r.audio=tu(e.audio)),e.video&&(r.video=tc(e.video,t)),this._currentMediaStream)?!tp(this._currentMediaStream.stream)&&await this._isCurrentStreamSatisfiesConstraints(r)?this._currentMediaStream.stream:(await this._stopCurrentStream(),this._createNewStream(r)):this._createNewStream(r)}async _stopCurrentStream(){this._currentMediaStream&&(await tg(this._currentMediaStream.stream),this._currentMediaStream=null)}async _checkKindPermissions(e){let t={isAvailable:!1,error:null};try{t.isAvailable=await tf(e)}catch(e){t.isAvailable=!1,t.error=e}return t}async _getMediaStream(e){let t=ta(),r=await t(e);return this._currentMediaStream={constraints:e,stream:r},this._currentMediaStream.stream}async _createNewStream(e){try{return await this._getMediaStream(e)}catch(t){if("OverconstrainedError"===t.name&&"deviceId"===t.constraint){let t={...e,audio:!0};return await this._getMediaStream(t)}throw t}}async _getMediaDevices(){return this._mediaDevices||(this._mediaDevices=await th()),this._mediaDevices}async _isCurrentStreamSatisfiesConstraints(e){if(!this._currentMediaStream)return!1;try{if(e.video){let t=this._currentMediaStream.stream.getVideoTracks()[0];if(!t&&e.video||t&&!e.video||"object"==typeof e.video&&e.video.deviceId&&t.getCapabilities().deviceId!==e.video.deviceId)return!1;t&&"boolean"!=typeof e.video&&await t.applyConstraints(e.video)}}catch(e){return!1}try{if(e.audio){let t=this._currentMediaStream.stream.getAudioTracks()[0];if(!t&&e.audio||t&&!e.audio||"object"==typeof e.audio&&e.audio.deviceId&&t.getCapabilities().deviceId!==e.audio.deviceId)return!1;t&&"boolean"!=typeof e.audio&&await t.applyConstraints(e.audio)}}catch(e){return!1}return!0}async _onDevicesChanged(){this._mediaDevices=null;let e=await this._getMediaDevices();this.emitEvent(C.MEDIA_DEVICES_UPDATED,e)}}).prototype,"_onDevicesChanged",null);let tv=()=>window.MediaSource||window.WebKitMediaSource||window.ManagedMediaSource,tm=()=>window.SourceBuffer||window.WebKitSourceBuffer||window.ManagedSourceBuffer,ty={isHLSSupported:()=>{let e=tv();if(!e)return!1;let t=tm(),r="function"==typeof e.isTypeSupported&&e.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),n=!t||t.prototype&&"function"==typeof t.prototype.appendBuffer&&"function"==typeof t.prototype.remove;return r&&n}}}),U("bsvQL",function(e,t){function r(e,t,r,n){var i,s=arguments.length,o=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(s<3?i(o):s>3?i(t,r,o):i(t,r))||o);return s>3&&o&&Object.defineProperty(t,r,o),o}N(e.exports,"__decorate",function(){return r}),"function"==typeof SuppressedError&&SuppressedError}),U("1QtI2",function(e,t){N(e.exports,"EPlayerType",function(){return i}),N(e.exports,"AVAILABLE_PLAYER_TYPES",function(){return s}),N(e.exports,"EPlayerErrorType",function(){return o});var r,n,i=((r={}).HLS="hls",r.WEBRTC="webrtc",r.BROADCAST="broadcast",r.NATIVE="native",r.UNKNOWN="unknown",r);let s=["hls","broadcast","webrtc","native"];var o=((n={}).BROADCAST_NOT_SUPPORTED_BY_BROWSER="broadcastNotSupportedByBrowser",n)}),U("iuHwr",function(e,t){N(e.exports,"default",function(){return a});var r=k("iCUkT"),n=k("eEfty"),i=t&&!t.nodeType&&t,s=i&&e&&!e.nodeType&&e,o=s&&s.exports===i?r.default.Buffer:void 0,a=(o?o.isBuffer:void 0)||n.default}),U("iCUkT",function(e,t){N(e.exports,"default",function(){return i});var r=k("39qEx"),n="object"==typeof self&&self&&self.Object===Object&&self,i=r.default||n||Function("return this")()}),U("39qEx",function(e,t){N(e.exports,"default",function(){return r});var r="object"==typeof L&&L&&L.Object===Object&&L}),U("eEfty",function(e,t){N(e.exports,"default",function(){return r});var r=function(){return!1}}),U("8tO4H",function(e,t){N(e.exports,"default",function(){return o});var r=k("39qEx"),n=t&&!t.nodeType&&t,i=n&&e&&!e.nodeType&&e,s=i&&i.exports===n&&r.default.process,o=function(){try{var e=i&&i.require&&i.require("util").types;if(e)return e;return s&&s.binding&&s.binding("util")}catch(e){}}()}),U("h3fWd",function(e,t){N(e.exports,"default",function(){return a});var r=k("iCUkT"),n=t&&!t.nodeType&&t,i=n&&e&&!e.nodeType&&e,s=i&&i.exports===n?r.default.Buffer:void 0,o=s?s.allocUnsafe:void 0,a=function(e,t){if(t)return e.slice();var r=e.length,n=o?o(r):new e.constructor(r);return e.copy(n),n}}),U("giOKx",function(e,t){N(e.exports,"EPlayersEvents",function(){return n});var r,n=((r={}).MODULE_LOADED="playerEvents.moduleLoaded",r.PLAYBACK_STATE_CHANGED="playerEvents.playbackStateChanged",r.DEBUGGER_CONNECTED="playerEvents.debuggerConnected",r.ERROR="playerEvents.error",r.AUTO_RESOLUTION_SWITCHED="playerEvents.autoResolutionSwitched",r.RESOLUTION_SWITCHED="playerEvents.resolutionSwitched",r.VIDEO_PLAYBACK_STATE_CHANGED="playerEvents.videoPlaybackStateChanged",r.RESOLUTIONS_AVAILABLE="playerEvents.resolutionsAvailable",r.RESOLUTION_NOT_FOUND="playerEvents.resolutionNotFound",r.VIDEO_ELEMENT_UPDATED="playerEvents.videoElementUpdated",r.PLAYER_TYPES_AVAILABLE="playerEvents.playerTypesAvailable",r.TOGGLE_TURN_SERVERS="playerEvents.toggleTURNServers",r.FORCE_PLAYER_TYPE="playerEvents.forcePlayerType",r.PLAYER_TYPE_CHANGED="playerEvents.playerTypeChanged",r.STREAM_CONFIG_UPDATED="playerEvents.streamConfigUpdated",r.STREAM_CONFIG_UPDATED_INTERNAL="playerEvents.streamConfigUpdatedInternal",r.BROADCAST_SUPPORTED_CHANGE="playerEvents.broadcastSupportedChange",r)}),U("apP9s",function(e,t){(function(){var r,n="Expected a function",i="__lodash_hash_undefined__",s="__lodash_placeholder__",o=1/0,a=0/0,l=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],u="[object Arguments]",c="[object Array]",d="[object Boolean]",h="[object Date]",f="[object Error]",_="[object Function]",p="[object GeneratorFunction]",g="[object Map]",v="[object Number]",m="[object Object]",y="[object Promise]",b="[object RegExp]",E="[object Set]",S="[object String]",C="[object Symbol]",T="[object WeakMap]",A="[object ArrayBuffer]",P="[object DataView]",R="[object Float32Array]",w="[object Float64Array]",O="[object Int8Array]",M="[object Int16Array]",I="[object Int32Array]",N="[object Uint8Array]",D="[object Uint8ClampedArray]",B="[object Uint16Array]",k="[object Uint32Array]",U=/\b__p \+= '';/g,V=/\b(__p \+=) '' \+/g,x=/(__e\(.*?\)|\b__t\)) \+\n'';/g,F=/&(?:amp|lt|gt|quot|#39);/g,j=/[&<>"']/g,W=RegExp(F.source),G=RegExp(j.source),H=/<%-([\s\S]+?)%>/g,Y=/<%([\s\S]+?)%>/g,z=/<%=([\s\S]+?)%>/g,q=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$=/^\w*$/,K=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Q=/[\\^$.*+?()[\]{}|]/g,J=RegExp(Q.source),Z=/^\s+/,X=/\s/,ee=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,et=/\{\n\/\* \[wrapped with (.+)\] \*/,er=/,? & /,en=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ei=/[()=,{}\[\]\/\s]/,es=/\\(\\)?/g,eo=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ea=/\w*$/,el=/^[-+]0x[0-9a-f]+$/i,eu=/^0b[01]+$/i,ec=/^\[object .+?Constructor\]$/,ed=/^0o[0-7]+$/i,eh=/^(?:0|[1-9]\d*)$/,ef=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,e_=/($^)/,ep=/['\n\r\u2028\u2029\\]/g,eg="\ud800-\udfff",ev="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",em="\\u2700-\\u27bf",ey="a-z\\xdf-\\xf6\\xf8-\\xff",eb="A-Z\\xc0-\\xd6\\xd8-\\xde",eE="\\ufe0e\\ufe0f",eS="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",eC="['’]",eT="["+eS+"]",eA="["+ev+"]",eP="["+ey+"]",eR="[^"+eg+eS+"\\d+"+em+ey+eb+"]",ew="\ud83c[\udffb-\udfff]",eO="[^"+eg+"]",eM="(?:\ud83c[\udde6-\uddff]){2}",eI="[\ud800-\udbff][\udc00-\udfff]",eL="["+eb+"]",eN="\\u200d",eD="(?:"+eP+"|"+eR+")",eB="(?:"+eL+"|"+eR+")",ek="(?:"+eC+"(?:d|ll|m|re|s|t|ve))?",eU="(?:"+eC+"(?:D|LL|M|RE|S|T|VE))?",eV="(?:"+eA+"|"+ew+")?",ex="["+eE+"]?",eF="(?:"+eN+"(?:"+[eO,eM,eI].join("|")+")"+ex+eV+")*",ej=ex+eV+eF,eW="(?:"+["["+em+"]",eM,eI].join("|")+")"+ej,eG="(?:"+[eO+eA+"?",eA,eM,eI,"["+eg+"]"].join("|")+")",eH=RegExp(eC,"g"),eY=RegExp(eA,"g"),ez=RegExp(ew+"(?="+ew+")|"+eG+ej,"g"),eq=RegExp([eL+"?"+eP+"+"+ek+"(?="+[eT,eL,"$"].join("|")+")",eB+"+"+eU+"(?="+[eT,eL+eD,"$"].join("|")+")",eL+"?"+eD+"+"+ek,eL+"+"+eU,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])","\\d+",eW].join("|"),"g"),e$=RegExp("["+eN+eg+ev+eE+"]"),eK=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,eQ=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],eJ=-1,eZ={};eZ[R]=eZ[w]=eZ[O]=eZ[M]=eZ[I]=eZ[N]=eZ[D]=eZ[B]=eZ[k]=!0,eZ[u]=eZ[c]=eZ[A]=eZ[d]=eZ[P]=eZ[h]=eZ[f]=eZ[_]=eZ[g]=eZ[v]=eZ[m]=eZ[b]=eZ[E]=eZ[S]=eZ[T]=!1;var eX={};eX[u]=eX[c]=eX[A]=eX[P]=eX[d]=eX[h]=eX[R]=eX[w]=eX[O]=eX[M]=eX[I]=eX[g]=eX[v]=eX[m]=eX[b]=eX[E]=eX[S]=eX[C]=eX[N]=eX[D]=eX[B]=eX[k]=!0,eX[f]=eX[_]=eX[T]=!1;var e0={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},e1=parseFloat,e2=parseInt,e3="object"==typeof L&&L&&L.Object===Object&&L,e4="object"==typeof self&&self&&self.Object===Object&&self,e6=e3||e4||Function("return this")(),e5=t&&!t.nodeType&&t,e8=e5&&e&&!e.nodeType&&e,e9=e8&&e8.exports===e5,e7=e9&&e3.process,te=function(){try{var e=e8&&e8.require&&e8.require("util").types;if(e)return e;return e7&&e7.binding&&e7.binding("util")}catch(e){}}(),tt=te&&te.isArrayBuffer,tr=te&&te.isDate,tn=te&&te.isMap,ti=te&&te.isRegExp,ts=te&&te.isSet,to=te&&te.isTypedArray;function ta(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}function tl(e,t,r,n){for(var i=-1,s=null==e?0:e.length;++i-1}function tf(e,t,r){for(var n=-1,i=null==e?0:e.length;++n-1;);return r}function tk(e,t){for(var r=e.length;r--&&tS(t,e[r],0)>-1;);return r}var tU=tR({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"}),tV=tR({"&":"&","<":"<",">":">",'"':""","'":"'"});function tx(e){return"\\"+e0[e]}function tF(e){return e$.test(e)}function tj(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}function tW(e,t){return function(r){return e(t(r))}}function tG(e,t){for(var r=-1,n=e.length,i=0,o=[];++r",""":'"',"'":"'"}),tK=function e(t){var L,X,eg,ev,em=(t=null==t?e6:tK.defaults(e6.Object(),t,tK.pick(e6,eQ))).Array,ey=t.Date,eb=t.Error,eE=t.Function,eS=t.Math,eC=t.Object,eT=t.RegExp,eA=t.String,eP=t.TypeError,eR=em.prototype,ew=eE.prototype,eO=eC.prototype,eM=t["__core-js_shared__"],eI=ew.toString,eL=eO.hasOwnProperty,eN=0,eD=(L=/[^.]+$/.exec(eM&&eM.keys&&eM.keys.IE_PROTO||""))?"Symbol(src)_1."+L:"",eB=eO.toString,ek=eI.call(eC),eU=e6._,eV=eT("^"+eI.call(eL).replace(Q,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ex=e9?t.Buffer:r,eF=t.Symbol,ej=t.Uint8Array,eW=ex?ex.allocUnsafe:r,eG=tW(eC.getPrototypeOf,eC),ez=eC.create,e$=eO.propertyIsEnumerable,e0=eR.splice,e3=eF?eF.isConcatSpreadable:r,e4=eF?eF.iterator:r,e5=eF?eF.toStringTag:r,e8=function(){try{var e=i_(eC,"defineProperty");return e({},"",{}),e}catch(e){}}(),e7=t.clearTimeout!==e6.clearTimeout&&t.clearTimeout,te=ey&&ey.now!==e6.Date.now&&ey.now,ty=t.setTimeout!==e6.setTimeout&&t.setTimeout,tR=eS.ceil,tQ=eS.floor,tJ=eC.getOwnPropertySymbols,tZ=ex?ex.isBuffer:r,tX=t.isFinite,t0=eR.join,t1=tW(eC.keys,eC),t2=eS.max,t3=eS.min,t4=ey.now,t6=t.parseInt,t5=eS.random,t8=eR.reverse,t9=i_(t,"DataView"),t7=i_(t,"Map"),re=i_(t,"Promise"),rt=i_(t,"Set"),rr=i_(t,"WeakMap"),rn=i_(eC,"create"),ri=rr&&new rr,rs={},ro=ix(t9),ra=ix(t7),rl=ix(re),ru=ix(rt),rc=ix(rr),rd=eF?eF.prototype:r,rh=rd?rd.valueOf:r,rf=rd?rd.toString:r;function r_(e){if(sz(e)&&!sB(e)&&!(e instanceof rm)){if(e instanceof rv)return e;if(eL.call(e,"__wrapped__"))return iF(e)}return new rv(e)}var rp=function(){function e(){}return function(t){if(!sY(t))return{};if(ez)return ez(t);e.prototype=t;var n=new e;return e.prototype=r,n}}();function rg(){}function rv(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=r}function rm(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=0xffffffff,this.__views__=[]}function ry(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function rD(e,t,n,i,s,o){var a,l=1&t,c=2&t,f=4&t;if(n&&(a=s?n(e,i,s,o):n(e)),a!==r)return a;if(!sY(e))return e;var y=sB(e);if(y){if(T=e.length,L=new e.constructor(T),T&&"string"==typeof e[0]&&eL.call(e,"index")&&(L.index=e.index,L.input=e.input),a=L,!l)return nF(e,a)}else{var T,L,U,V,x,F=iv(e),j=F==_||F==p;if(sx(e))return nD(e,l);if(F==m||F==u||j&&!s){if(a=c||j?{}:iy(e),!l)return c?(U=(x=a)&&nj(e,of(e),x),nj(e,ig(e),U)):(V=rM(a,e),nj(e,ip(e),V))}else{if(!eX[F])return s?e:{};a=function(e,t,r){var n,i,s=e.constructor;switch(t){case A:return nB(e);case d:case h:return new s(+e);case P:return n=r?nB(e.buffer):e.buffer,new e.constructor(n,e.byteOffset,e.byteLength);case R:case w:case O:case M:case I:case N:case D:case B:case k:return nk(e,r);case g:return new s;case v:case S:return new s(e);case b:return(i=new e.constructor(e.source,ea.exec(e))).lastIndex=e.lastIndex,i;case E:return new s;case C:return rh?eC(rh.call(e)):{}}}(e,F,l)}}o||(o=new rC);var W=o.get(e);if(W)return W;o.set(e,a),sJ(e)?e.forEach(function(r){a.add(rD(r,t,n,r,e,o))}):sq(e)&&e.forEach(function(r,i){a.set(i,rD(r,t,n,i,e,o))});var G=f?c?io:is:c?of:oh,H=y?r:G(e);return tu(H||e,function(r,i){H&&(r=e[i=r]),rR(a,i,rD(r,t,n,i,e,o))}),a}function rB(e,t,n){var i=n.length;if(null==e)return!i;for(e=eC(e);i--;){var s=n[i],o=t[s],a=e[s];if(a===r&&!(s in e)||!o(a))return!1}return!0}function rk(e,t,i){if("function"!=typeof e)throw new eP(n);return iL(function(){e.apply(r,i)},t)}function rU(e,t,r,n){var i=-1,s=th,o=!0,a=e.length,l=[],u=t.length;if(!a)return l;r&&(t=t_(t,tL(r))),n?(s=tf,o=!1):t.length>=200&&(s=tD,o=!1,t=new rS(t));e:for(;++i-1},rb.prototype.set=function(e,t){var r=this.__data__,n=rw(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this},rE.prototype.clear=function(){this.size=0,this.__data__={hash:new ry,map:new(t7||rb),string:new ry}},rE.prototype.delete=function(e){var t=id(this,e).delete(e);return this.size-=+!!t,t},rE.prototype.get=function(e){return id(this,e).get(e)},rE.prototype.has=function(e){return id(this,e).has(e)},rE.prototype.set=function(e,t){var r=id(this,e),n=r.size;return r.set(e,t),this.size+=+(r.size!=n),this},rS.prototype.add=rS.prototype.push=function(e){return this.__data__.set(e,i),this},rS.prototype.has=function(e){return this.__data__.has(e)},rC.prototype.clear=function(){this.__data__=new rb,this.size=0},rC.prototype.delete=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r},rC.prototype.get=function(e){return this.__data__.get(e)},rC.prototype.has=function(e){return this.__data__.has(e)},rC.prototype.set=function(e,t){var r=this.__data__;if(r instanceof rb){var n=r.__data__;if(!t7||n.length<199)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new rE(n)}return r.set(e,t),this.size=r.size,this};var rV=nH(rz),rx=nH(rq,!0);function rF(e,t){var r=!0;return rV(e,function(e,n,i){return r=!!t(e,n,i)}),r}function rj(e,t,n){for(var i=-1,s=e.length;++i0&&r(a)?t>1?rG(a,t-1,r,n,i):tp(i,a):n||(i[i.length]=a)}return i}var rH=nY(),rY=nY(!0);function rz(e,t){return e&&rH(e,t,oh)}function rq(e,t){return e&&rY(e,t,oh)}function r$(e,t){return td(t,function(t){return sW(e[t])})}function rK(e,t){t=nI(t,e);for(var n=0,i=t.length;null!=e&&nt}function rX(e,t){return null!=e&&eL.call(e,t)}function r0(e,t){return null!=e&&t in eC(e)}function r1(e,t,n){for(var i=n?tf:th,s=e[0].length,o=e.length,a=o,l=em(o),u=1/0,c=[];a--;){var d=e[a];a&&t&&(d=t_(d,tL(t))),u=t3(d.length,u),l[a]=!n&&(t||s>=120&&d.length>=120)?new rS(a&&d):r}d=e[0];var h=-1,f=l[0];e:for(;++h=a)return l;return l*("desc"==r[n]?-1:1)}}return e.index-t.index}(e,t,r)})}function no(e,t,r){for(var n=-1,i=t.length,s={};++n-1;)a!==e&&e0.call(a,l,1),e0.call(e,l,1);return e}function nl(e,t){for(var r=e?t.length:0,n=r-1;r--;){var i=t[r];if(r==n||i!==s){var s=i;iE(i)?e0.call(e,i,1):nC(e,i)}}return e}function nu(e,t){return e+tQ(t5()*(t-e+1))}function nc(e,t){var r="";if(!e||t<1||t>0x1fffffffffffff)return r;do t%2&&(r+=e),(t=tQ(t/2))&&(e+=e);while(t)return r}function nd(e,t){return iN(iw(e,t,oV),e+"")}function nh(e,t,n,i){if(!sY(e))return e;t=nI(t,e);for(var s=-1,o=t.length,a=o-1,l=e;null!=l&&++si?0:i+t),(r=r>i?i:r)<0&&(r+=i),i=t>r?0:r-t>>>0,t>>>=0;for(var s=em(i);++n>>1,o=e[s];null!==o&&!sX(o)&&(r?o<=t:o=200){var u=t?null:n5(e);if(u)return tH(u);o=!1,i=tD,l=new rS}else l=t?[]:a;e:for(;++n=i?e:np(e,t,n)}var nN=e7||function(e){return e6.clearTimeout(e)};function nD(e,t){if(t)return e.slice();var r=e.length,n=eW?eW(r):new e.constructor(r);return e.copy(n),n}function nB(e){var t=new e.constructor(e.byteLength);return new ej(t).set(new ej(e)),t}function nk(e,t){var r=t?nB(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}function nU(e,t){if(e!==t){var n=e!==r,i=null===e,s=e==e,o=sX(e),a=t!==r,l=null===t,u=t==t,c=sX(t);if(!l&&!c&&!o&&e>t||o&&a&&u&&!l&&!c||i&&a&&u||!n&&u||!s)return 1;if(!i&&!o&&!c&&e1?n[s-1]:r,a=s>2?n[2]:r;for(o=e.length>3&&"function"==typeof o?(s--,o):r,a&&iS(n[0],n[1],a)&&(o=s<3?r:o,s=1),t=eC(t);++i-1?s[o?t[a]:a]:r}}function nQ(e){return ii(function(t){var i=t.length,s=i,o=rv.prototype.thru;for(e&&t.reverse();s--;){var a=t[s];if("function"!=typeof a)throw new eP(n);if(o&&!l&&"wrapper"==il(a))var l=new rv([],!0)}for(s=l?s:i;++s1&&y.reverse(),d&&ul))return!1;var c=o.get(e),d=o.get(t);if(c&&d)return c==t&&d==e;var h=-1,f=!0,_=2&n?new rS:r;for(o.set(e,t),o.set(t,e);++h-1&&e%1==0&&e1?"& ":"")+t[n],t=t.join(r>2?", ":" "),e.replace(ee,"{\n/* [wrapped with "+t+"] */\n")}(s,(n=(i=s.match(et))?i[1].split(er):[],tu(l,function(e){var t="_."+e[0];r&e[1]&&!th(n,t)&&n.push(t)}),n.sort())))}function iB(e){var t=0,n=0;return function(){var i=t4(),s=16-(i-n);if(n=i,s>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(r,arguments)}}function ik(e,t){var n=-1,i=e.length,s=i-1;for(t=t===r?i:t;++n1?e[t-1]:r;return n="function"==typeof n?(e.pop(),n):r,i5(e,n)});function sn(e){var t=r_(e);return t.__chain__=!0,t}function si(e,t){return t(e)}var ss=ii(function(e){var t=e.length,n=t?e[0]:0,i=this.__wrapped__,s=function(t){return rL(t,e)};return!(t>1)&&!this.__actions__.length&&i instanceof rm&&iE(n)?((i=i.slice(n,+n+ +!!t)).__actions__.push({func:si,args:[s],thisArg:r}),new rv(i,this.__chain__).thru(function(e){return t&&!e.length&&e.push(r),e})):this.thru(s)}),so=nW(function(e,t,r){eL.call(e,r)?++e[r]:rI(e,r,1)}),sa=nK(iH),sl=nK(iY);function su(e,t){return(sB(e)?tu:rV)(e,ic(t,3))}function sc(e,t){return(sB(e)?function(e,t){for(var r=null==e?0:e.length;r--&&!1!==t(e[r],r,e););return e}:rx)(e,ic(t,3))}var sd=nW(function(e,t,r){eL.call(e,r)?e[r].push(t):rI(e,r,[t])}),sh=nd(function(e,t,r){var n=-1,i="function"==typeof t,s=sU(e)?em(e.length):[];return rV(e,function(e){s[++n]=i?ta(t,e,r):r2(e,t,r)}),s}),sf=nW(function(e,t,r){rI(e,r,t)});function s_(e,t){return(sB(e)?t_:ne)(e,ic(t,3))}var sp=nW(function(e,t,r){e[+!r].push(t)},function(){return[[],[]]}),sg=nd(function(e,t){if(null==e)return[];var r=t.length;return r>1&&iS(e,t[0],t[1])?t=[]:r>2&&iS(t[0],t[1],t[2])&&(t=[t[0]]),ns(e,rG(t,1),[])}),sv=te||function(){return e6.Date.now()};function sm(e,t,n){return t=n?r:t,t=e&&null==t?e.length:t,n9(e,128,r,r,r,r,t)}function sy(e,t){var i;if("function"!=typeof t)throw new eP(n);return e=s6(e),function(){return--e>0&&(i=t.apply(this,arguments)),e<=1&&(t=r),i}}var sb=nd(function(e,t,r){var n=1;if(r.length){var i=tG(r,iu(sb));n|=32}return n9(e,n,t,r,i)}),sE=nd(function(e,t,r){var n=3;if(r.length){var i=tG(r,iu(sE));n|=32}return n9(t,n,e,r,i)});function sS(e,t,i){var s,o,a,l,u,c,d=0,h=!1,f=!1,_=!0;if("function"!=typeof e)throw new eP(n);function p(t){var n=s,i=o;return s=o=r,d=t,l=e.apply(i,n)}function g(e){var n=e-c,i=e-d;return c===r||n>=t||n<0||f&&i>=a}function v(){var e,r,n,i=sv();if(g(i))return m(i);u=iL(v,(e=i-c,r=i-d,n=t-e,f?t3(n,a-r):n))}function m(e){return(u=r,_&&s)?p(e):(s=o=r,l)}function y(){var e,n=sv(),i=g(n);if(s=arguments,o=this,c=n,i){if(u===r)return d=e=c,u=iL(v,t),h?p(e):l;if(f)return nN(u),u=iL(v,t),p(c)}return u===r&&(u=iL(v,t)),l}return t=s8(t)||0,sY(i)&&(h=!!i.leading,a=(f="maxWait"in i)?t2(s8(i.maxWait)||0,t):a,_="trailing"in i?!!i.trailing:_),y.cancel=function(){u!==r&&nN(u),d=0,s=c=o=u=r},y.flush=function(){return u===r?l:m(sv())},y}var sC=nd(function(e,t){return rk(e,1,t)}),sT=nd(function(e,t,r){return rk(e,s8(t)||0,r)});function sA(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new eP(n);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var o=e.apply(this,n);return r.cache=s.set(i,o)||s,o};return r.cache=new(sA.Cache||rE),r}function sP(e){if("function"!=typeof e)throw new eP(n);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}sA.Cache=rE;var sR=nd(function(e,t){var r=(t=1==t.length&&sB(t[0])?t_(t[0],tL(ic())):t_(rG(t,1),tL(ic()))).length;return nd(function(n){for(var i=-1,s=t3(n.length,r);++i=t}),sD=r3(function(){return arguments}())?r3:function(e){return sz(e)&&eL.call(e,"callee")&&!e$.call(e,"callee")},sB=em.isArray,sk=tt?tL(tt):function(e){return sz(e)&&rJ(e)==A};function sU(e){return null!=e&&sH(e.length)&&!sW(e)}function sV(e){return sz(e)&&sU(e)}var sx=tZ||oJ,sF=tr?tL(tr):function(e){return sz(e)&&rJ(e)==h};function sj(e){if(!sz(e))return!1;var t=rJ(e);return t==f||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!sK(e)}function sW(e){if(!sY(e))return!1;var t=rJ(e);return t==_||t==p||"[object AsyncFunction]"==t||"[object Proxy]"==t}function sG(e){return"number"==typeof e&&e==s6(e)}function sH(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=0x1fffffffffffff}function sY(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function sz(e){return null!=e&&"object"==typeof e}var sq=tn?tL(tn):function(e){return sz(e)&&iv(e)==g};function s$(e){return"number"==typeof e||sz(e)&&rJ(e)==v}function sK(e){if(!sz(e)||rJ(e)!=m)return!1;var t=eG(e);if(null===t)return!0;var r=eL.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&eI.call(r)==ek}var sQ=ti?tL(ti):function(e){return sz(e)&&rJ(e)==b},sJ=ts?tL(ts):function(e){return sz(e)&&iv(e)==E};function sZ(e){return"string"==typeof e||!sB(e)&&sz(e)&&rJ(e)==S}function sX(e){return"symbol"==typeof e||sz(e)&&rJ(e)==C}var s0=to?tL(to):function(e){return sz(e)&&sH(e.length)&&!!eZ[rJ(e)]},s1=n3(r7),s2=n3(function(e,t){return e<=t});function s3(e){if(!e)return[];if(sU(e))return sZ(e)?tz(e):nF(e);if(e4&&e[e4])return function(e){for(var t,r=[];!(t=e.next()).done;)r.push(t.value);return r}(e[e4]());var t=iv(e);return(t==g?tj:t==E?tH:oE)(e)}function s4(e){return e?(e=s8(e))===o||e===-o?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}function s6(e){var t=s4(e),r=t%1;return t==t?r?t-r:t:0}function s5(e){return e?rN(s6(e),0,0xffffffff):0}function s8(e){if("number"==typeof e)return e;if(sX(e))return a;if(sY(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=sY(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=tI(e);var r=eu.test(e);return r||ed.test(e)?e2(e.slice(2),r?2:8):el.test(e)?a:+e}function s9(e){return nj(e,of(e))}function s7(e){return null==e?"":nE(e)}var oe=nG(function(e,t){if(iP(t)||sU(t)){nj(t,oh(t),e);return}for(var r in t)eL.call(t,r)&&rR(e,r,t[r])}),ot=nG(function(e,t){nj(t,of(t),e)}),or=nG(function(e,t,r,n){nj(t,of(t),e,n)}),on=nG(function(e,t,r,n){nj(t,oh(t),e,n)}),oi=ii(rL),os=nd(function(e,t){e=eC(e);var n=-1,i=t.length,s=i>2?t[2]:r;for(s&&iS(t[0],t[1],s)&&(i=1);++n1),t}),nj(e,io(e),r),n&&(r=rD(r,7,it));for(var i=t.length;i--;)nC(r,t[i]);return r}),ov=ii(function(e,t){return null==e?{}:no(e,t,function(t,r){return ol(e,r)})});function om(e,t){if(null==e)return{};var r=t_(io(e),function(e){return[e]});return t=ic(t),no(e,r,function(e,r){return t(e,r[0])})}var oy=n8(oh),ob=n8(of);function oE(e){return null==e?[]:tN(e,oh(e))}var oS=nq(function(e,t,r){return t=t.toLowerCase(),e+(r?oC(t):t)});function oC(e){return oI(s7(e).toLowerCase())}function oT(e){return(e=s7(e))&&e.replace(ef,tU).replace(eY,"")}var oA=nq(function(e,t,r){return e+(r?"-":"")+t.toLowerCase()}),oP=nq(function(e,t,r){return e+(r?" ":"")+t.toLowerCase()}),oR=nz("toLowerCase"),ow=nq(function(e,t,r){return e+(r?"_":"")+t.toLowerCase()}),oO=nq(function(e,t,r){return e+(r?" ":"")+oI(t)}),oM=nq(function(e,t,r){return e+(r?" ":"")+t.toUpperCase()}),oI=nz("toUpperCase");function oL(e,t,n){if(e=s7(e),(t=n?r:t)===r){var i;return(i=e,eK.test(i))?e.match(eq)||[]:e.match(en)||[]}return e.match(t)||[]}var oN=nd(function(e,t){try{return ta(e,r,t)}catch(e){return sj(e)?e:new eb(e)}}),oD=ii(function(e,t){return tu(t,function(t){rI(e,t=iV(t),sb(e[t],e))}),e});function oB(e){return function(){return e}}var ok=nQ(),oU=nQ(!0);function oV(e){return e}function ox(e){return r8("function"==typeof e?e:rD(e,1))}var oF=nd(function(e,t){return function(r){return r2(r,e,t)}}),oj=nd(function(e,t){return function(r){return r2(e,r,t)}});function oW(e,t,r){var n=oh(t),i=r$(t,n);null!=r||sY(t)&&(i.length||!n.length)||(r=t,t=e,e=this,i=r$(t,oh(t)));var s=!(sY(r)&&"chain"in r)||!!r.chain,o=sW(e);return tu(i,function(r){var n=t[r];e[r]=n,o&&(e.prototype[r]=function(){var t=this.__chain__;if(s||t){var r=e(this.__wrapped__);return(r.__actions__=nF(this.__actions__)).push({func:n,args:arguments,thisArg:e}),r.__chain__=t,r}return n.apply(e,tp([this.value()],arguments))})}),e}function oG(){}var oH=n0(t_),oY=n0(tc),oz=n0(tm);function oq(e){return iC(e)?tP(iV(e)):function(t){return rK(t,e)}}var o$=n2(),oK=n2(!0);function oQ(){return[]}function oJ(){return!1}var oZ=nX(function(e,t){return e+t},0),oX=n6("ceil"),o0=nX(function(e,t){return e/t},1),o1=n6("floor"),o2=nX(function(e,t){return e*t},1),o3=n6("round"),o4=nX(function(e,t){return e-t},0);return r_.after=function(e,t){if("function"!=typeof t)throw new eP(n);return e=s6(e),function(){if(--e<1)return t.apply(this,arguments)}},r_.ary=sm,r_.assign=oe,r_.assignIn=ot,r_.assignInWith=or,r_.assignWith=on,r_.at=oi,r_.before=sy,r_.bind=sb,r_.bindAll=oD,r_.bindKey=sE,r_.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return sB(e)?e:[e]},r_.chain=sn,r_.chunk=function(e,t,n){t=(n?iS(e,t,n):t===r)?1:t2(s6(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var s=0,o=0,a=em(tR(i/t));ss?0:s+n),(i=i===r||i>s?s:s6(i))<0&&(i+=s),i=n>i?0:s5(i);n>>0)?(e=s7(e))&&("string"==typeof t||null!=t&&!sQ(t))&&!(t=nE(t))&&tF(e)?nL(tz(e),0,n):e.split(t,n):[]},r_.spread=function(e,t){if("function"!=typeof e)throw new eP(n);return t=null==t?0:t2(s6(t),0),nd(function(r){var n=r[t],i=nL(r,0,t);return n&&tp(i,n),ta(e,this,i)})},r_.tail=function(e){var t=null==e?0:e.length;return t?np(e,1,t):[]},r_.take=function(e,t,n){return e&&e.length?np(e,0,(t=n||t===r?1:s6(t))<0?0:t):[]},r_.takeRight=function(e,t,n){var i=null==e?0:e.length;return i?np(e,(t=i-(t=n||t===r?1:s6(t)))<0?0:t,i):[]},r_.takeRightWhile=function(e,t){return e&&e.length?nA(e,ic(t,3),!1,!0):[]},r_.takeWhile=function(e,t){return e&&e.length?nA(e,ic(t,3)):[]},r_.tap=function(e,t){return t(e),e},r_.throttle=function(e,t,r){var i=!0,s=!0;if("function"!=typeof e)throw new eP(n);return sY(r)&&(i="leading"in r?!!r.leading:i,s="trailing"in r?!!r.trailing:s),sS(e,t,{leading:i,maxWait:t,trailing:s})},r_.thru=si,r_.toArray=s3,r_.toPairs=oy,r_.toPairsIn=ob,r_.toPath=function(e){return sB(e)?t_(e,iV):sX(e)?[e]:nF(iU(s7(e)))},r_.toPlainObject=s9,r_.transform=function(e,t,r){var n=sB(e),i=n||sx(e)||s0(e);if(t=ic(t,4),null==r){var s=e&&e.constructor;r=i?n?new s:[]:sY(e)&&sW(s)?rp(eG(e)):{}}return(i?tu:rz)(e,function(e,n,i){return t(r,e,n,i)}),r},r_.unary=function(e){return sm(e,1)},r_.union=i2,r_.unionBy=i3,r_.unionWith=i4,r_.uniq=function(e){return e&&e.length?nS(e):[]},r_.uniqBy=function(e,t){return e&&e.length?nS(e,ic(t,2)):[]},r_.uniqWith=function(e,t){return t="function"==typeof t?t:r,e&&e.length?nS(e,r,t):[]},r_.unset=function(e,t){return null==e||nC(e,t)},r_.unzip=i6,r_.unzipWith=i5,r_.update=function(e,t,r){return null==e?e:nT(e,t,nM(r))},r_.updateWith=function(e,t,n,i){return i="function"==typeof i?i:r,null==e?e:nT(e,t,nM(n),i)},r_.values=oE,r_.valuesIn=function(e){return null==e?[]:tN(e,of(e))},r_.without=i8,r_.words=oL,r_.wrap=function(e,t){return sw(nM(t),e)},r_.xor=i9,r_.xorBy=i7,r_.xorWith=se,r_.zip=st,r_.zipObject=function(e,t){return nw(e||[],t||[],rR)},r_.zipObjectDeep=function(e,t){return nw(e||[],t||[],nh)},r_.zipWith=sr,r_.entries=oy,r_.entriesIn=ob,r_.extend=ot,r_.extendWith=or,oW(r_,r_),r_.add=oZ,r_.attempt=oN,r_.camelCase=oS,r_.capitalize=oC,r_.ceil=oX,r_.clamp=function(e,t,n){return n===r&&(n=t,t=r),n!==r&&(n=(n=s8(n))==n?n:0),t!==r&&(t=(t=s8(t))==t?t:0),rN(s8(e),t,n)},r_.clone=function(e){return rD(e,4)},r_.cloneDeep=function(e){return rD(e,5)},r_.cloneDeepWith=function(e,t){return rD(e,5,t="function"==typeof t?t:r)},r_.cloneWith=function(e,t){return rD(e,4,t="function"==typeof t?t:r)},r_.conformsTo=function(e,t){return null==t||rB(e,t,oh(t))},r_.deburr=oT,r_.defaultTo=function(e,t){return null==e||e!=e?t:e},r_.divide=o0,r_.endsWith=function(e,t,n){e=s7(e),t=nE(t);var i=e.length,s=n=n===r?i:rN(s6(n),0,i);return(n-=t.length)>=0&&e.slice(n,s)==t},r_.eq=sI,r_.escape=function(e){return(e=s7(e))&&G.test(e)?e.replace(j,tV):e},r_.escapeRegExp=function(e){return(e=s7(e))&&J.test(e)?e.replace(Q,"\\$&"):e},r_.every=function(e,t,n){var i=sB(e)?tc:rF;return n&&iS(e,t,n)&&(t=r),i(e,ic(t,3))},r_.find=sa,r_.findIndex=iH,r_.findKey=function(e,t){return tb(e,ic(t,3),rz)},r_.findLast=sl,r_.findLastIndex=iY,r_.findLastKey=function(e,t){return tb(e,ic(t,3),rq)},r_.floor=o1,r_.forEach=su,r_.forEachRight=sc,r_.forIn=function(e,t){return null==e?e:rH(e,ic(t,3),of)},r_.forInRight=function(e,t){return null==e?e:rY(e,ic(t,3),of)},r_.forOwn=function(e,t){return e&&rz(e,ic(t,3))},r_.forOwnRight=function(e,t){return e&&rq(e,ic(t,3))},r_.get=oa,r_.gt=sL,r_.gte=sN,r_.has=function(e,t){return null!=e&&im(e,t,rX)},r_.hasIn=ol,r_.head=iq,r_.identity=oV,r_.includes=function(e,t,r,n){e=sU(e)?e:oE(e),r=r&&!n?s6(r):0;var i=e.length;return r<0&&(r=t2(i+r,0)),sZ(e)?r<=i&&e.indexOf(t,r)>-1:!!i&&tS(e,t,r)>-1},r_.indexOf=function(e,t,r){var n=null==e?0:e.length;if(!n)return -1;var i=null==r?0:s6(r);return i<0&&(i=t2(n+i,0)),tS(e,t,i)},r_.inRange=function(e,t,n){var i,s,o;return t=s4(t),n===r?(n=t,t=0):n=s4(n),(i=e=s8(e))>=t3(s=t,o=n)&&i=-0x1fffffffffffff&&e<=0x1fffffffffffff},r_.isSet=sJ,r_.isString=sZ,r_.isSymbol=sX,r_.isTypedArray=s0,r_.isUndefined=function(e){return e===r},r_.isWeakMap=function(e){return sz(e)&&iv(e)==T},r_.isWeakSet=function(e){return sz(e)&&"[object WeakSet]"==rJ(e)},r_.join=function(e,t){return null==e?"":t0.call(e,t)},r_.kebabCase=oA,r_.last=iJ,r_.lastIndexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return -1;var s=i;return n!==r&&(s=(s=s6(n))<0?t2(i+s,0):t3(s,i-1)),t==t?function(e,t,r){for(var n=r+1;n--&&e[n]!==t;);return n}(e,t,s):tE(e,tT,s,!0)},r_.lowerCase=oP,r_.lowerFirst=oR,r_.lt=s1,r_.lte=s2,r_.max=function(e){return e&&e.length?rj(e,oV,rZ):r},r_.maxBy=function(e,t){return e&&e.length?rj(e,ic(t,2),rZ):r},r_.mean=function(e){return tA(e,oV)},r_.meanBy=function(e,t){return tA(e,ic(t,2))},r_.min=function(e){return e&&e.length?rj(e,oV,r7):r},r_.minBy=function(e,t){return e&&e.length?rj(e,ic(t,2),r7):r},r_.stubArray=oQ,r_.stubFalse=oJ,r_.stubObject=function(){return{}},r_.stubString=function(){return""},r_.stubTrue=function(){return!0},r_.multiply=o2,r_.nth=function(e,t){return e&&e.length?ni(e,s6(t)):r},r_.noConflict=function(){return e6._===this&&(e6._=eU),this},r_.noop=oG,r_.now=sv,r_.pad=function(e,t,r){e=s7(e);var n=(t=s6(t))?tY(e):0;if(!t||n>=t)return e;var i=(t-n)/2;return n1(tQ(i),r)+e+n1(tR(i),r)},r_.padEnd=function(e,t,r){e=s7(e);var n=(t=s6(t))?tY(e):0;return t&&nt){var i=e;e=t,t=i}if(n||e%1||t%1){var s=t5();return t3(e+s*(t-e+e1("1e-"+((s+"").length-1))),t)}return nu(e,t)},r_.reduce=function(e,t,r){var n=sB(e)?tg:tw,i=arguments.length<3;return n(e,ic(t,4),r,i,rV)},r_.reduceRight=function(e,t,r){var n=sB(e)?tv:tw,i=arguments.length<3;return n(e,ic(t,4),r,i,rx)},r_.repeat=function(e,t,n){return t=(n?iS(e,t,n):t===r)?1:s6(t),nc(s7(e),t)},r_.replace=function(){var e=arguments,t=s7(e[0]);return e.length<3?t:t.replace(e[1],e[2])},r_.result=function(e,t,n){t=nI(t,e);var i=-1,s=t.length;for(s||(s=1,e=r);++i0x1fffffffffffff)return[];var r=0xffffffff,n=t3(e,0xffffffff);t=ic(t),e-=0xffffffff;for(var i=tM(n,t);++r=o)return e;var l=n-tY(i);if(l<1)return i;var u=a?nL(a,0,l).join(""):e.slice(0,l);if(s===r)return u+i;if(a&&(l+=u.length-l),sQ(s)){if(e.slice(l).search(s)){var c,d=u;for(s.global||(s=eT(s.source,s7(ea.exec(s))+"g")),s.lastIndex=0;c=s.exec(d);)var h=c.index;u=u.slice(0,h===r?l:h)}}else if(e.indexOf(nE(s),l)!=l){var f=u.lastIndexOf(s);f>-1&&(u=u.slice(0,f))}return u+i},r_.unescape=function(e){return(e=s7(e))&&W.test(e)?e.replace(F,t$):e},r_.uniqueId=function(e){var t=++eN;return s7(e)+t},r_.upperCase=oM,r_.upperFirst=oI,r_.each=su,r_.eachRight=sc,r_.first=iq,oW(r_,(ev={},rz(r_,function(e,t){eL.call(r_.prototype,t)||(ev[t]=e)}),ev),{chain:!1}),r_.VERSION="4.17.21",tu(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){r_[e].placeholder=r_}),tu(["drop","take"],function(e,t){rm.prototype[e]=function(n){n=n===r?1:t2(s6(n),0);var i=this.__filtered__&&!t?new rm(this):this.clone();return i.__filtered__?i.__takeCount__=t3(n,i.__takeCount__):i.__views__.push({size:t3(n,0xffffffff),type:e+(i.__dir__<0?"Right":"")}),i},rm.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}}),tu(["filter","map","takeWhile"],function(e,t){var r=t+1,n=1==r||3==r;rm.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:ic(e,3),type:r}),t.__filtered__=t.__filtered__||n,t}}),tu(["head","last"],function(e,t){var r="take"+(t?"Right":"");rm.prototype[e]=function(){return this[r](1).value()[0]}}),tu(["initial","tail"],function(e,t){var r="drop"+(t?"":"Right");rm.prototype[e]=function(){return this.__filtered__?new rm(this):this[r](1)}}),rm.prototype.compact=function(){return this.filter(oV)},rm.prototype.find=function(e){return this.filter(e).head()},rm.prototype.findLast=function(e){return this.reverse().find(e)},rm.prototype.invokeMap=nd(function(e,t){return"function"==typeof e?new rm(this):this.map(function(r){return r2(r,e,t)})}),rm.prototype.reject=function(e){return this.filter(sP(ic(e)))},rm.prototype.slice=function(e,t){e=s6(e);var n=this;return n.__filtered__&&(e>0||t<0)?new rm(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==r&&(n=(t=s6(t))<0?n.dropRight(-t):n.take(t-e)),n)},rm.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},rm.prototype.toArray=function(){return this.take(0xffffffff)},rz(rm.prototype,function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),s=r_[i?"take"+("last"==t?"Right":""):t],o=i||/^find/.test(t);s&&(r_.prototype[t]=function(){var t=this.__wrapped__,a=i?[1]:arguments,l=t instanceof rm,u=a[0],c=l||sB(t),d=function(e){var t=s.apply(r_,tp([e],a));return i&&h?t[0]:t};c&&n&&"function"==typeof u&&1!=u.length&&(l=c=!1);var h=this.__chain__,f=!!this.__actions__.length,_=o&&!h,p=l&&!f;if(!o&&c){t=p?t:new rm(this);var g=e.apply(t,a);return g.__actions__.push({func:si,args:[d],thisArg:r}),new rv(g,h)}return _&&p?e.apply(this,a):(g=this.thru(d),_?i?g.value()[0]:g.value():g)})}),tu(["pop","push","shift","sort","splice","unshift"],function(e){var t=eR[e],r=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",n=/^(?:pop|shift)$/.test(e);r_.prototype[e]=function(){var e=arguments;if(n&&!this.__chain__){var i=this.value();return t.apply(sB(i)?i:[],e)}return this[r](function(r){return t.apply(sB(r)?r:[],e)})}}),rz(rm.prototype,function(e,t){var r=r_[t];if(r){var n=r.name+"";eL.call(rs,n)||(rs[n]=[]),rs[n].push({name:t,func:r})}}),rs[nJ(r,2).name]=[{name:"wrapper",func:r}],rm.prototype.clone=function(){var e=new rm(this.__wrapped__);return e.__actions__=nF(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=nF(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=nF(this.__views__),e},rm.prototype.reverse=function(){if(this.__filtered__){var e=new rm(this);e.__dir__=-1,e.__filtered__=!0}else e=this.clone(),e.__dir__*=-1;return e},rm.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,r=sB(e),n=t<0,i=r?e.length:0,s=function(e,t,r){for(var n=-1,i=r.length;++n=this.__values__.length,t=e?r:this.__values__[this.__index__++];return{done:e,value:t}},r_.prototype.plant=function(e){for(var t,n=this;n instanceof rg;){var i=iF(n);i.__index__=0,i.__values__=r,t?s.__wrapped__=i:t=i;var s=i;n=n.__wrapped__}return s.__wrapped__=e,t},r_.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof rm){var t=e;return this.__actions__.length&&(t=new rm(this)),(t=t.reverse()).__actions__.push({func:si,args:[i1],thisArg:r}),new rv(t,this.__chain__)}return this.thru(i1)},r_.prototype.toJSON=r_.prototype.valueOf=r_.prototype.value=function(){return nP(this.__wrapped__,this.__actions__)},r_.prototype.first=r_.prototype.head,e4&&(r_.prototype[e4]=function(){return this}),r_}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(e6._=tK,define(function(){return tK})):e8?((e8.exports=tK)._=tK,e5._=tK):e6._=tK}).call(this)}),U("cQezm",function(e,t){e.exports=b("kvwdt").then(()=>k("jTOzh"))}),U("iI3uv",function(e,t){e.exports=b("2GDeW").then(()=>k("8mF5Z"))}),U("gxrTY",function(e,t){e.exports=b("6GDAz").then(()=>k("8UG7J"))}),U("djm2V",function(e,t){e.exports=b("hHwiL").then(()=>k("dqcZH"))});var V=k("hJ7nZ"),x=k("bsvQL"),V=(k("hJ7nZ"),k("hJ7nZ")),F=k("1QtI2");let j={[F.EPlayerType.NATIVE]:()=>Promise.resolve(!0),[F.EPlayerType.WEBRTC]:async()=>(0,V.WebRTCCommonHelpers).getIsWebRTCApiSupported()&&await (0,V.WebRTCCommonHelpers).isH264PlayingSupported(),[F.EPlayerType.BROADCAST]:async()=>(0,V.WebRTCCommonHelpers).getIsWebRTCApiSupported()&&await (0,V.WebRTCCommonHelpers).isH264BroadcastSupported(),[F.EPlayerType.HLS]:async()=>(0,V.HLSCommon).isHLSSupported()};var F=k("1QtI2");let W=e=>{let t=[];return e.HLSStreamUrl&&t.push(F.EPlayerType.HLS),e.WebRTCStreamId&&e.WebRTCSignallingUrl&&(t.push(F.EPlayerType.WEBRTC),e.MediaStream&&t.push(F.EPlayerType.BROADCAST)),e.NativeStreamURL&&t.push(F.EPlayerType.NATIVE),t};var G=function(e,t){return e===t||e!=e&&t!=t},H=function(e,t){for(var r=e.length;r--;)if(G(e[r][0],t))return r;return -1},Y=Array.prototype.splice;function z(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t-1},z.prototype.set=function(e,t){var r=this.__data__,n=H(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this};var q=k("iCUkT"),$=q.default.Symbol,K=Object.prototype,Q=K.hasOwnProperty,J=K.toString,Z=$?$.toStringTag:void 0,X=function(e){var t=Q.call(e,Z),r=e[Z];try{e[Z]=void 0;var n=!0}catch(e){}var i=J.call(e);return n&&(t?e[Z]=r:delete e[Z]),i},ee=Object.prototype.toString,et=$?$.toStringTag:void 0,er=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":et&&et in Object(e)?X(e):ee.call(e)},en=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},ei=function(e){if(!en(e))return!1;var t=er(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},q=k("iCUkT"),es=q.default["__core-js_shared__"],eo=(T=/[^.]+$/.exec(es&&es.keys&&es.keys.IE_PROTO||""))?"Symbol(src)_1."+T:"",ea=Function.prototype.toString,el=function(e){if(null!=e){try{return ea.call(e)}catch(e){}try{return e+""}catch(e){}}return""},eu=/^\[object .+?Constructor\]$/,ec=Object.prototype,ed=Function.prototype.toString,eh=ec.hasOwnProperty,ef=RegExp("^"+ed.call(eh).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),e_=function(e,t){var r=null==e?void 0:e[t];return en(r)&&(!eo||!(eo in r))&&(ei(r)?ef:eu).test(el(r))?r:void 0},q=k("iCUkT"),ep=e_(q.default,"Map"),eg=e_(Object,"create"),ev=Object.prototype.hasOwnProperty,em=Object.prototype.hasOwnProperty;function ey(e){var t=-1,r=null==e?0:e.length;for(this.clear();++ta))return!1;var u=s.get(e),c=s.get(t);if(u&&c)return u==t&&c==e;var d=-1,h=!0,f=2&r?new eT:void 0;for(s.set(e,t),s.set(t,e);++d-1&&e%1==0&&e-1&&e%1==0&&e<=0x1fffffffffffff},eJ={};eJ["[object Float32Array]"]=eJ["[object Float64Array]"]=eJ["[object Int8Array]"]=eJ["[object Int16Array]"]=eJ["[object Int32Array]"]=eJ["[object Uint8Array]"]=eJ["[object Uint8ClampedArray]"]=eJ["[object Uint16Array]"]=eJ["[object Uint32Array]"]=!0,eJ["[object Arguments]"]=eJ["[object Array]"]=eJ["[object ArrayBuffer]"]=eJ["[object Boolean]"]=eJ["[object DataView]"]=eJ["[object Date]"]=eJ["[object Error]"]=eJ["[object Function]"]=eJ["[object Map]"]=eJ["[object Number]"]=eJ["[object Object]"]=eJ["[object RegExp]"]=eJ["[object Set]"]=eJ["[object String]"]=eJ["[object WeakMap]"]=!1;var eZ=k("8tO4H"),eX=eZ.default&&eZ.default.isTypedArray,e0=eX?function(e){return eX(e)}:function(e){return ej(e)&&eQ(e.length)&&!!eJ[er(e)]},e1=Object.prototype.hasOwnProperty,e2=function(e,t){var r=eD(e),n=!r&&ez(e),i=!r&&!n&&(0,eq.default)(e),s=!r&&!n&&!i&&e0(e),o=r||n||i||s,a=o?eF(e.length,String):[],l=a.length;for(var u in e)(t||e1.call(e,u))&&!(o&&("length"==u||i&&("offset"==u||"parent"==u)||s&&("buffer"==u||"byteLength"==u||"byteOffset"==u)||eK(u,l)))&&a.push(u);return a},e3=Object.prototype,e4=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||e3)},e6=function(e,t){return function(r){return e(t(r))}},e5=e6(Object.keys,Object),e8=Object.prototype.hasOwnProperty,e9=function(e){if(!e4(e))return e5(e);var t=[];for(var r in Object(e))e8.call(e,r)&&"constructor"!=r&&t.push(r);return t},e7=function(e){return null!=e&&eQ(e.length)&&!ei(e)},te=function(e){return e7(e)?e2(e):e9(e)},tt=function(e){return eB(e,te,ex)},tr=Object.prototype.hasOwnProperty,tn=function(e,t,r,n,i,s){var o=1&r,a=tt(e),l=a.length;if(l!=tt(t).length&&!o)return!1;for(var u=l;u--;){var c=a[u];if(!(o?c in t:tr.call(t,c)))return!1}var d=s.get(e),h=s.get(t);if(d&&h)return d==t&&h==e;var f=!0;s.set(e,t),s.set(t,e);for(var _=o;++u0){if(++P>=800)return arguments[0]}else P=0;return A.apply(void 0,arguments)}),t2=function(e,t,r){if(!en(r))return!1;var n=typeof t;return("number"==n?!!(e7(r)&&eK(t,r.length)):"string"==n&&t in r)&&G(r[t],e)},t3=(w=function(e,t,r){tQ(e,t,r)},E=function(e,t){var r=-1,n=t.length,i=n>1?t[n-1]:void 0,s=n>2?t[2]:void 0;for(i=w.length>3&&"function"==typeof i?(n--,i):void 0,s&&t2(t[0],t[1],s)&&(i=n<3?void 0:i,n=1),e=Object(e);++r0;e+=1);return e},u=function(e,t){var r=new Uint8Array(e.buffer),n=t%4,i=t-n;switch(n){case 0:r[i+3]=0;case 1:r[i+2]=0;case 2:r[i+1]=0;case 3:r[i+0]=0}for(var s=(t>>2)+1;s>2]|=128<<24-(t%4<<3),e[((t>>2)+2&-16)+14]=r/0x20000000|0,e[((t>>2)+2&-16)+15]=r<<3},d=function(e,t){var r=new Int32Array(e,t+320,5),n=new Int32Array(5),i=new DataView(n.buffer);return i.setInt32(0,r[0],!1),i.setInt32(4,r[1],!1),i.setInt32(8,r[2],!1),i.setInt32(12,r[3],!1),i.setInt32(16,r[4],!1),n},h=function(){function e(t){if(function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,e),(t=t||65536)%64>0)throw Error("Chunk size must be a multiple of 128 bit");this._offset=0,this._maxChunkLen=t,this._padMaxChunkLen=l(t),this._heap=new ArrayBuffer(o(this._padMaxChunkLen+320+20)),this._h32=new Int32Array(this._heap),this._h8=new Int8Array(this._heap),this._core=new n({Int32Array:Int32Array},{},this._heap)}return e.prototype._initState=function(e,t){this._offset=0;var r=new Int32Array(e,t+320,5);r[0]=0x67452301,r[1]=-0x10325477,r[2]=-0x67452302,r[3]=0x10325476,r[4]=-0x3c2d1e10},e.prototype._padChunk=function(e,t){var r=l(e),n=new Int32Array(this._heap,0,r>>2);return u(n,e),c(n,e,t),r},e.prototype._write=function(e,t,r,n){a(e,this._h8,this._h32,t,r,n||0)},e.prototype._coreCall=function(e,t,r,n,i){var s=r;this._write(e,t,r),i&&(s=this._padChunk(r,n)),this._core.hash(s,this._padMaxChunkLen)},e.prototype.rawDigest=function(e){var t=e.byteLength||e.length||e.size||0;this._initState(this._heap,this._padMaxChunkLen);var r=0,n=this._maxChunkLen;for(r=0;t>r+n;r+=n)this._coreCall(e,r,n,t,!1);return this._coreCall(e,r,t-r,t,!0),d(this._heap,this._padMaxChunkLen)},e.prototype.digest=function(e){return s(this.rawDigest(e).buffer)},e.prototype.digestFromString=function(e){return this.digest(e)},e.prototype.digestFromBuffer=function(e){return this.digest(e)},e.prototype.digestFromArrayBuffer=function(e){return this.digest(e)},e.prototype.resetState=function(){return this._initState(this._heap,this._padMaxChunkLen),this},e.prototype.append=function(e){var t=0,r=e.byteLength||e.length||e.size||0,n=this._offset%this._maxChunkLen,i=void 0;for(this._offset+=r;t0},!1);)for(var u=Object.keys(n),c=0;c>2]|0;a=n[t+324>>2]|0;u=n[t+328>>2]|0;d=n[t+332>>2]|0;f=n[t+336>>2]|0;for(r=0;(r|0)<(e|0);r=r+64|0){o=s;l=a;c=u;h=d;_=f;for(i=0;(i|0)<64;i=i+4|0){g=n[r+i>>2]|0;p=((s<<5|s>>>27)+(a&u|~a&d)|0)+((g+f|0)+0x5a827999|0)|0;f=d;d=u;u=a<<30|a>>>2;a=s;s=p;n[e+i>>2]=g}for(i=e+64|0;(i|0)<(e+80|0);i=i+4|0){g=(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])<<1|(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])>>>31;p=((s<<5|s>>>27)+(a&u|~a&d)|0)+((g+f|0)+0x5a827999|0)|0;f=d;d=u;u=a<<30|a>>>2;a=s;s=p;n[i>>2]=g}for(i=e+80|0;(i|0)<(e+160|0);i=i+4|0){g=(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])<<1|(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])>>>31;p=((s<<5|s>>>27)+(a^u^d)|0)+((g+f|0)+0x6ed9eba1|0)|0;f=d;d=u;u=a<<30|a>>>2;a=s;s=p;n[i>>2]=g}for(i=e+160|0;(i|0)<(e+240|0);i=i+4|0){g=(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])<<1|(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])>>>31;p=((s<<5|s>>>27)+(a&u|a&d|u&d)|0)+((g+f|0)-0x70e44324|0)|0;f=d;d=u;u=a<<30|a>>>2;a=s;s=p;n[i>>2]=g}for(i=e+240|0;(i|0)<(e+320|0);i=i+4|0){g=(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])<<1|(n[i-12>>2]^n[i-32>>2]^n[i-56>>2]^n[i-64>>2])>>>31;p=((s<<5|s>>>27)+(a^u^d)|0)+((g+f|0)-0x359d3e2a|0)|0;f=d;d=u;u=a<<30|a>>>2;a=s;s=p;n[i>>2]=g}s=s+o|0;a=a+l|0;u=u+c|0;d=d+h|0;f=f+_|0}n[t+320>>2]=s;n[t+324>>2]=a;n[t+328>>2]=u;n[t+332>>2]=d;n[t+336>>2]=f}return{hash:i}}},function(e,t){var r=this,n=void 0;"undefined"!=typeof self&&void 0!==self.FileReaderSync&&(n=new self.FileReaderSync);var i=function(e,t,r,n,i,s){var o=void 0,a=s%4,l=(i+a)%4,u=i-l;switch(a){case 0:t[s]=e.charCodeAt(n+3);case 1:t[s+1-(a<<1)|0]=e.charCodeAt(n+2);case 2:t[s+2-(a<<1)|0]=e.charCodeAt(n+1);case 3:t[s+3-(a<<1)|0]=e.charCodeAt(n)}if(!(i>2]=e.charCodeAt(n+o)<<24|e.charCodeAt(n+o+1)<<16|e.charCodeAt(n+o+2)<<8|e.charCodeAt(n+o+3);switch(l){case 3:t[s+u+1|0]=e.charCodeAt(n+u+2);case 2:t[s+u+2|0]=e.charCodeAt(n+u+1);case 1:t[s+u+3|0]=e.charCodeAt(n+u)}}},s=function(e,t,r,n,i,s){var o=void 0,a=s%4,l=(i+a)%4,u=i-l;switch(a){case 0:t[s]=e[n+3];case 1:t[s+1-(a<<1)|0]=e[n+2];case 2:t[s+2-(a<<1)|0]=e[n+1];case 3:t[s+3-(a<<1)|0]=e[n]}if(!(i>2|0]=e[n+o]<<24|e[n+o+1]<<16|e[n+o+2]<<8|e[n+o+3];switch(l){case 3:t[s+u+1|0]=e[n+u+2];case 2:t[s+u+2|0]=e[n+u+1];case 1:t[s+u+3|0]=e[n+u]}}},o=function(e,t,r,i,s,o){var a=void 0,l=o%4,u=(s+l)%4,c=s-u,d=new Uint8Array(n.readAsArrayBuffer(e.slice(i,i+s)));switch(l){case 0:t[o]=d[3];case 1:t[o+1-(l<<1)|0]=d[2];case 2:t[o+2-(l<<1)|0]=d[1];case 3:t[o+3-(l<<1)|0]=d[0]}if(!(s>2|0]=d[a]<<24|d[a+1]<<16|d[a+2]<<8|d[a+3];switch(u){case 3:t[o+c+1|0]=d[c+2];case 2:t[o+c+2|0]=d[c+1];case 1:t[o+c+3|0]=d[c]}}};e.exports=function(e,t,n,a,l,u){if("string"==typeof e)return i(e,t,n,a,l,u);if(e instanceof Array||r&&r.Buffer&&r.Buffer.isBuffer(e))return s(e,t,n,a,l,u);if(e instanceof ArrayBuffer)return s(new Uint8Array(e),t,n,a,l,u);if(e.buffer instanceof ArrayBuffer)return s(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),t,n,a,l,u);if(e instanceof Blob)return o(e,t,n,a,l,u);throw Error("Unsupported data type.")}},function(e,t,r){var n=function(){function e(e,t){for(var r=0;r{var t;return((t=t5)&&t.__esModule?t.default:t).createHash().update(e.substring(0,100)+"saltsaltsalt").digest("hex")},t9="__mmp_metrics_session_start_time__",t7="__mmp_metrics_user_id__",re="__mmp_metrics_stream_id__",rt="__mmp_metrics_page_url__",rr=sessionStorage.getItem(re)||"",rn=Number(sessionStorage.getItem(t9)||"0"),ri=sessionStorage.getItem(t7),rs=Number(ri).toString()===ri?Number(ri):ri||"",ro=sessionStorage.getItem(rt),ra=e=>{sessionStorage.setItem(rt,e)},rl=e=>{sessionStorage.setItem(re,e),ra(window.location.toString())},ru=e=>{sessionStorage.setItem(t7,e.toString())},rc=e=>{sessionStorage.setItem(t9,e.toString())},rd=()=>!!rr&&!!rn&&!!rs&&window?.location.toString()===ro,rh=()=>rn,rf=()=>rs,r_=()=>rr;class rp{addValue(e){this._values.push(e)}addValues(e){this._values.push(...e)}clear(){this._values=[]}getMax(){return this._values.length?Math.max(...this._values):null}getMedian(){if(!this._values.length)return null;let e=[...this._values].sort((e,t)=>e-t),t=Math.floor(e.length/2);return e.length%2==0?(e[t-1]+e[t])/2:e[t]}constructor(){this._values=[]}}class rg{addValue(e,t){this._aggregatedFields[e].addValue(t)}addValues(e,t){this._aggregatedFields[e].addValues(t)}clearValues(e){this._aggregatedFields[e].clear()}clearAllValues(){Object.values(this._aggregatedFields).forEach(e=>e.clear())}getMax(e){this._aggregatedFields[e].getMax()}getMedian(e){this._aggregatedFields[e].getMedian()}getAllValues(){let e={};return Object.keys(this._aggregatedFields).forEach(t=>{let r=this._aggregatedFields[t].getMax();null!==r&&(e[`max${t}`]=r);let n=this._aggregatedFields[t].getMedian();null!==n&&(e[`median${t}`]=n)}),e}constructor(){this._aggregatedFields={RTT:new rp,AudioJitter:new rp,VideoJitter:new rp,Buffer:new rp,TargetBuffer:new rp,FramesEncoded:new rp,FramesSent:new rp,ChunkLoadDuration:new rp,ChunkLoadTTFB:new rp,PlaylistLoadDuration:new rp,PlaylistLoadTTFB:new rp}}}var rv=((O={})[O.PLANNED=1]="PLANNED",O[O.PRECLOSE=2]="PRECLOSE",O[O.PRECLEAR=3]="PRECLEAR",O);let rm="v1.13.25",ry={audioJitter:"AudioJitter",videoJitter:"VideoJitter",buffer:"Buffer",framesEncoded:"FramesEncoded",framesSent:"FramesSent",targetBuffer:"TargetBuffer",chunkLoadDuration:"ChunkLoadDuration",chunkLoadTTFB:"ChunkLoadTTFB",playlistLoadDuration:"PlaylistLoadDuration",playlistLoadTTFB:"PlaylistLoadTTFB"},rb={framesDecoded:"framesDecoded",nackCount:"nackCount",totalFreezesDuration:"totalFreezesDuration",totalPausesDuration:"totalPausesDuration",fecPacketsReceived:"fecPacketsReceived",fecPacketsDiscarded:"fecPacketsDiscarded",framesReceived:"framesReceived",packetsLost:"packetsLost",packetsDiscarded:"packetsDiscarded",packetsReceived:"packetsReceived",totalFramesDecoded:"totalFramesDecoded",totalFramesDropped:"totalFramesDropped"};class rE{constructor(e,t){this._userId=null,this._sessionStartTime=null,this._playerType=null,this._streamId=null,this._currentMetricsState={},this._currentDomain="",this._sendMetricsInterval=null,this._eventsCache=[],this._currentManualResolution=null,this._currentRenditionSwitchMode=null,this._abTestsMap={},this._abTestsSupport={},this._additionalFields={},this._urlPostfix="",this._timeOrigin=performance.timeOrigin,this._eventSequenceNumber=0,this._userType="unknown",this._aggregatedMetrics=new rg,this._baseUrl=e,this._projectId=t,rd()&&this._registerReloadEvent()}destroy(){this.stop()}stop(){this._disarmMetricsSend(),this.immediatelySendMetrics(!0),this._sessionStartTime=null,this._streamId=null,rl(""),this._eventSequenceNumber=0}registerMetrics(e){let t=Object.keys(ry).concat(["totalRoundTripTime","responsesReceived"]);void 0!==e.totalRoundTripTime&&void 0!==e.responsesReceived&&(this._aggregatedMetrics.addValue("RTT",e.totalRoundTripTime/e.responsesReceived),delete e.totalRoundTripTime,delete e.responsesReceived),Object.entries(e).forEach(([e,r])=>{if(t.includes(e))this._aggregatedMetrics.addValue(ry[e],r);else{let t=rb[e];this._currentMetricsState[t]=r}})}setAbTests(e){this._abTestsMap=e}setAbTestsSupport(e){this._abTestsSupport=e}setAdditionalFields(e){this._additionalFields=e}updateCDNUrl(e){let{host:t}=new URL(e);this._currentDomain!==t&&(this._currentDomain=t)}setTimeOrigin(e){this._timeOrigin=e}setUserId(e){this._userId!==e&&(this._playerType&&this._playerType===F.EPlayerType.BROADCAST?this._urlPostfix="_broadcast":this._urlPostfix=Number(e)%2==0?"_user":"_guest",this._userId=e,ru(e),this._recreateSessionId())}setUserType(e){this._userType=e}setPlayerType(e){e!==this._playerType&&(this._playerType&&this.registerEvent("PlayerTypeSwitched",{prevPlayerType:this._playerType,nextPlayerType:e}),e===F.EPlayerType.BROADCAST?this._urlPostfix="_broadcast":this._userId&&(this._urlPostfix=Number(this._userId)%2==0?"_user":"_guest"),this._playerType=e,this._recreateSessionId())}setStreamId(e){e!==this._streamId&&(rl(e),this._streamId=e,this._recreateSessionId())}setManualResolution(e){this._currentManualResolution!==e&&(this._currentManualResolution&&this.registerEvent("RenditionSwitchedManual",{prevResolution:this._currentManualResolution,nextResolution:e}),this._currentManualResolution=e)}setRenditionSwitchMode(e){this._currentRenditionSwitchMode!==e&&(this._currentRenditionSwitchMode&&this.registerEvent("RenditionSelectModeSwitched",{prevMode:this._currentRenditionSwitchMode,nextMode:e}),this._currentRenditionSwitchMode=e)}prepareMetrics(){return{...this._currentMetricsState,...this._aggregatedMetrics.getAllValues()}}registerEvent(e,t={}){if(!this.hasEnoughInfoForMetricsAndEvents)return;let r=this._buildEventsSingleMessage(e,t);this._registerRawEvent(r)}clear(){this._aggregatedMetrics.clearAllValues(),this._currentMetricsState={}}immediatelySendMetrics(e=!1){this.hasEnoughInfoForMetricsAndEvents&&(this.registerEvent(e?"SessionTerminated":"TabBlurred"),e||this._armMetricsSendInterval(),this._sendCurrentState("all",!0))}_possiblyCreateSessionId(){this._playerType&&this._streamId&&!this._sessionStartTime&&(this._sessionStartTime=performance.now()+this._timeOrigin,this._armMetricsSendInterval(),this.registerEvent("SessionStarted"),rc(this._sessionStartTime))}_registerRawEvent(e){this._eventsCache.push(e),this._eventSequenceNumber++}_registerReloadEvent(){this._registerRawEvent(this._buildEventsSingleMessage("PageReloaded",{},{streamId:r_().toString(),userId:rf(),sessionStartTime:rh()}))}_recreateSessionId(){if(!this._sessionStartTime){this._possiblyCreateSessionId();return}rc(this._sessionStartTime),this._sendCurrentState("metrics"),this.registerEvent("SessionTerminated"),this._eventSequenceNumber=0,this._sessionStartTime=performance.now()+this._timeOrigin,this.registerEvent("SessionStarted")}_armMetricsSendInterval(){this._disarmMetricsSend(),this._sendMetricsInterval=setInterval(this._sendCurrentState,3e4)}_disarmMetricsSend(){this._sendMetricsInterval&&(clearInterval(this._sendMetricsInterval),this._sendMetricsInterval=null)}async _sendCurrentState(e="all",t=!1){if(["events","all"].includes(e)){let e=[...this._eventsCache];e.length&&(this._eventsCache=[],await this._performFetchRequest({url:`${this._baseUrl}/events${this._urlPostfix}`,data:{events:e},onError:()=>{this._eventsCache.push(...e)},isTerminating:t}))}if(["metrics","all"].includes(e)){if(!this.hasEnoughInfoForMetricsAndEvents){this.clear();return}let e=this._buildSingleMetricsMessage(this.prepareMetrics());await this._performFetchRequest({url:`${this._baseUrl}/metrics${this._urlPostfix}`,data:e,onSuccess:()=>{this.clear()},isTerminating:t})}}get currentRenditionSelectMode(){return this._currentRenditionSwitchMode}get hasEnoughInfoForMetricsAndEvents(){return!!this._playerType&&!!this._streamId&&!!this._sessionStartTime&&!!this._userId}get missingFieldsForMetricsAndEvents(){return Object.entries({playerType:this._playerType,streamId:this._streamId,sessionStartTime:this._sessionStartTime,userId:this._userId}).filter(([e,t])=>!!t).map(([e])=>e)}_buildEventsSingleMessage(e,t={},r={}){return{eventType:e,payload:t,sessionStartTime:this._sessionStartTime,userId:this._userId,streamId:this._streamId,playerImpl:"MMP",playerType:this._playerType,timestamp:Date.now(),projectId:this._projectId,cdnDomain:this._currentDomain,abTests:this._abTestsMap,abTestsSupport:this._abTestsSupport,mmpVersion:rm,sequenceNumber:this._eventSequenceNumber,userType:"unknown"!==this._userType?this._userType:void 0,...this._additionalFields||{},...r}}_buildSingleMetricsMessage(e,t={}){return{...e,sessionStartTime:this._sessionStartTime,userId:this._userId,streamId:this._streamId,playerImpl:"MMP",playerType:this._playerType,timestamp:Date.now(),projectId:this._projectId,cdnDomain:this._currentDomain,reportType:rv.PRECLEAR,abTests:this._abTestsMap,abTestsSupport:this._abTestsSupport,mmpVersion:rm,userType:"unknown"!==this._userType?this._userType:void 0,...this._additionalFields||{},...t}}async _performFetchRequest({url:e,data:t,onError:r=()=>{},onSuccess:n=()=>{},isTerminating:i=!1}){let s=JSON.stringify(t),o=new AbortController,a=setTimeout(()=>{o.abort("Timeout")},5e3),l=`${t8(s)}${s}`;if(i)navigator.sendBeacon(e,l);else try{let t=await fetch(e,{body:l,signal:o.signal,method:"POST",cache:"no-cache"});t.ok||this._onFetchError({payloadSize:l.length,responseCode:t.status,responseBody:await t.text(),requestUrl:e,nativeError:""}),clearTimeout(a),n()}catch(t){this._onFetchError({payloadSize:l.length,responseCode:0,responseBody:"N/A",requestUrl:e,nativeError:t.toString()}),r(t)}}async _onFetchError(e){try{await fetch(`${this._baseUrl}/logs`,{body:JSON.stringify({...e,userId:this._userId??-1,sessionStartTime:this._sessionStartTime??-1}),method:"POST",cache:"no-cache"})}catch(e){console.warn("Could not report fetch error:",e)}}get baseUrl(){return this._baseUrl}get projectId(){return this._projectId}}(0,x.__decorate)([V.bind],rE.prototype,"_sendCurrentState",null);var x=k("bsvQL"),V=k("hJ7nZ");class rS{constructor(e){this._collectMetricsInterval=null,this._videoElement=null,this._isPageVisible=!1,this._isStalledByCurrentTime=!0,this._prevPlaybackPosition=null,this._checkCurrentTimeInterval=null,this._isPaused=!1,this._metricsCollector=e}destroy(){this._detachEventListeners(),this._disarmMetricsCollectionInterval(),this._disarmCurrentTimeCheck()}setVideoElement(e){this._detachEventListeners(),this._videoElement=e,this._attachEventListeners(),this._armMetricsCollectionInterval(),this._armCurrentTimeCheck()}setIsPaused(e){this._isPaused=e}_armMetricsCollectionInterval(){this._disarmMetricsCollectionInterval(),this._collectMetricsInterval=setInterval(this._collectVideoElementMetrics,500)}_disarmMetricsCollectionInterval(){this._collectMetricsInterval&&clearInterval(this._collectMetricsInterval)}_armCurrentTimeCheck(){this._disarmCurrentTimeCheck(),this._checkCurrentTimeInterval=setInterval(this._checkCurrentTime,50)}_disarmCurrentTimeCheck(){this._checkCurrentTimeInterval&&clearInterval(this._checkCurrentTimeInterval)}_attachEventListeners(){this._videoElement&&(this._videoElement.addEventListener("canplay",this._onCanPlay),this._videoElement.addEventListener("play",this._onPlay),this._videoElement.addEventListener("pause",this._onPause),this._videoElement.addEventListener("stalled",this._onStalledNative),this._videoElement.addEventListener("waiting",this._onStalledNative),this._videoElement.addEventListener("error",this._onErrorReported),document.addEventListener("visibilitychange",this._onVisibilityChanged),this._isPageVisible="visible"===document.visibilityState)}_detachEventListeners(){this._videoElement&&(this._videoElement.removeEventListener("canplay",this._onCanPlay),this._videoElement.removeEventListener("play",this._onPlay),this._videoElement.removeEventListener("pause",this._onPause),this._videoElement.removeEventListener("stalled",this._onStalledNative),this._videoElement.removeEventListener("waiting",this._onStalledNative),this._videoElement.removeEventListener("error",this._onErrorReported),document.removeEventListener("visibilitychange",this._onVisibilityChanged))}_collectVideoElementMetrics(){if(!this._videoElement)return;let{totalVideoFrames:e,droppedVideoFrames:t}=this._videoElement.getVideoPlaybackQuality(),r=0;try{Array(this._videoElement.buffered.length).fill(null).forEach((e,t)=>{let[n=0,i=0]=[this._videoElement?.buffered.start(t),this._videoElement?.buffered.end(t)];i<=(this._videoElement?.currentTime||0)||(r+=i-Math.max(this._videoElement?.currentTime||0,n))})}catch(e){}this._registerMetrics({totalFramesDecoded:e,totalFramesDropped:t,buffer:r})}_onCanPlay(){this._registerEvent("ReadyToPlay")}_onPlay(){this._videoElement&&this._videoElement.readyState>1&&this._registerEvent("Played")}_onPause(){this._registerEvent("Paused")}_onStalledNative(){this._registerEvent("StalledNative")}_onVisibilityChanged(){let e="visible"===document.visibilityState;e!==this._isPageVisible&&(e?this._registerEvent("TabFocused"):this._isPaused||this._metricsCollector.immediatelySendMetrics(),this._isPageVisible=e)}_onErrorReported(){this._videoElement?.error?.code&&![1,2].includes(this._videoElement.error.code)&&this._registerEvent("MediaDecodingError",{errorMessage:this._videoElement.error.message})}_checkCurrentTime(){if(!this._videoElement){this._prevPlaybackPosition=null,this._isStalledByCurrentTime||(this._isStalledByCurrentTime=!0,this._registerEvent("Stalled"));return}if(!this._prevPlaybackPosition||!this._videoElement.currentTime||this._videoElement.currentTime{e.removeEventListener("click",this._onPlayerTypeButtonClicked)}),this._playerTypesButtonsContainer.innerHTML="",this._availablePlayerTypes.forEach(e=>{let t=document.createElement("div");t.style.border="1px solid",t.style.borderRadius="5px",t.style.padding="5px 10px",t.style.marginRight="10px",t.innerText=e,t.dataset.playerType=e,t.addEventListener("click",this._onPlayerTypeButtonClicked),this._playerTypesButtonsContainer.appendChild(t)})}_refreshDebugData(){let e=this._hydrateVideoElementMetrics();this._resolutionRowValueContainer.innerHTML=`Video: ${e.videoResolution}; Container: ${e.elementResolution}`,this._aspectRatioRowValueContainer.innerHTML=`Video: ${e.videoAspectRatio}; Container: ${e.elementAspectRatio}`,this._fpsValueContainer.innerHTML=e.fps,this._droppedFramesValueContainer.innerHTML=e.framesCount,this._renderCurrentPlayerType()}_hydrateVideoElementMetrics(){if(!this._videoElement)return{videoResolution:"N/A",elementResolution:"N/A",videoAspectRatio:"N/A",elementAspectRatio:"N/A",fps:"N/A",framesCount:"N/A"};let e=this._videoElement.getVideoPlaybackQuality?this._videoElement.getVideoPlaybackQuality():null,{offsetWidth:t,offsetHeight:r,videoWidth:n,videoHeight:i}=this._videoElement,s="N/A";return e&&(this._prevFramesCount>-1&&(s=`${Math.round((e.totalVideoFrames-this._prevFramesCount)/((Date.now()-this._prevFramesCountTs)/1e3))}`),this._prevFramesCount=e.totalVideoFrames,this._prevFramesCountTs=Date.now()),{videoResolution:`${n}x${i}`,elementResolution:`${t}x${r}`,videoAspectRatio:n&&i?`${Math.round(n/i*100)/100}`:"N/A",elementAspectRatio:t&&r?`${Math.round(t/r*100)/100}`:"N/A",fps:s,framesCount:e?`${e.totalVideoFrames}/${e.droppedVideoFrames}`:"N/A"}}_renderCurrentPlayerType(){[...this._playerTypesButtonsContainer.childNodes].forEach(e=>{e.dataset.playerType===this._currentPlayerType?e.style.background="#1491ff":e.style.background="inherit"})}_toggleTURNServers(){this._shouldUseTURNServersState=!this._shouldUseTURNServersState,this._eventBusInstance.publish(rC.EPlayersEvents.TOGGLE_TURN_SERVERS,{shouldUseTURNServers:this._shouldUseTURNServersState}),this._turnServersToggleButton.innerHTML=this._shouldUseTURNServersState?"Disable TURN Servers":"Enable TURN servers"}_onPlayerTypeButtonClicked(e){let t=e.target;this._eventBusInstance.publish(rC.EPlayersEvents.FORCE_PLAYER_TYPE,{playerType:t.dataset.playerType})}_onPlayerTypeChanged({playerType:e}){this._currentPlayerType=e,this._resetOverridenValues()}get rootContainer(){return this._panelContainer}}(0,x.__decorate)([V.bind],rI.prototype,"_onDomainOverrideChanged",null),(0,x.__decorate)([V.bind],rI.prototype,"_onlastPartOverrideChanged",null),(0,x.__decorate)([V.bind],rI.prototype,"_onStreamConfigUpdated",null),(0,x.__decorate)([V.bind],rI.prototype,"_onVideoElementUpdated",null),(0,x.__decorate)([V.bind],rI.prototype,"_onPlayerTypesAvailable",null),(0,x.__decorate)([V.bind],rI.prototype,"_refreshDebugData",null),(0,x.__decorate)([V.bind],rI.prototype,"_toggleTURNServers",null),(0,x.__decorate)([V.bind],rI.prototype,"_onPlayerTypeButtonClicked",null),(0,x.__decorate)([V.bind],rI.prototype,"_onPlayerTypeChanged",null);let rL=e=>new Promise(t=>{setTimeout(()=>{t()},e)}),rN=e=>{if(!e)return{};try{let t=new URL(e).pathname.split("/"),r=t[2],n=t[t.length-1],i=n.match(/\d+_(\w+)/)?.[1]||"source";return{streamId:r,resolution:i}}catch(e){return{}}};class rD{constructor(){this._doppioWrapperConstructor=null,this._videoElement=null,this._ristrettoPlayerWrapperConstructor=null,this._ristrettoBroadcasterWrapperConstructor=null,this._nativeWrapperConstructor=null,this._supportedPlayerTypeCache=null,this._currentPlayerType=null,this._currentPlayerWrapperInstance=null,this._currentStreamConfig={},this._isAbrEnabled=!1,this._isStartDelayed=!1,this._currentResolution=null,this._currentResolutionBitrate=null,this._metricsUserIdCache=null,this._metricsTimeOriginCache=null,this._abrResolutions=[],this._config={...rP},this._appKey="",this._metricsCollector=null,this._videoElementMetrics=null,this._logLevels=[],this._isDestroyed=!1,this._hasStarted=!1,this._abTestsCache={},this._abTestsSupportCache={},this._additionalFieldsCache={},this._playerInstancesMap={},this._userTypeCache="unknown",this._eventBusInstance=new V.EventBus,this._playerWrapperResolversMap={[V.EPlayerType.HLS]:this._resolveDoppioWrapper,[V.EPlayerType.WEBRTC]:this._resolveRistrettoWrapper,[V.EPlayerType.NATIVE]:this._resolveNativeWrapper,[V.EPlayerType.BROADCAST]:this._resolveRistrettoBroadcasterWrapper},this._debugPanel=new rI(this._eventBusInstance),this._eventEmitter=new rO(this._eventBusInstance),this._videoElementController=new V.VideoElementController,localStorage&&localStorage.getItem("__mmpLoggerLevel__")&&(this._logLevels=(localStorage.getItem("__mmpLoggerLevel__")||"").split(","),this._videoElementController.setLoggerLevels(this._logLevels)),this._config.videoControllerConfig&&this._videoElementController.updateConfig(this._config.videoControllerConfig),this._videoElementController.addEventListener(V.EVideoControllerCustomEvent.VIDEO_PLAYBACK_STATE_CHANGE,this._handleVideoPlaybackStateChange),this._videoElementController.addEventListener(V.EVideoControllerCustomEvent.UPDATE_PLAYER_RESOLUTION,this._handleUpdatePlayerResolution),this._videoElementController.addEventListener(V.EVideoControllerCustomEvent.NATIVE_EVENT,this._handleNativeEvent),this._videoElementController.addEventListener(V.EVideoControllerCustomEvent.TIME_UPDATE,this._handleTimeUpdate),this._videoElementController.addEventListener(V.EVideoControllerCustomEvent.PLAYING,this._handlePlaying),this._playerTypeForcedListener=this._eventBusInstance.subscribe(rC.EPlayersEvents.FORCE_PLAYER_TYPE,this._onPlayerTypeForced),this._streamConfigUpdatedInternalListener=this._eventBusInstance.subscribe(rC.EPlayersEvents.STREAM_CONFIG_UPDATED_INTERNAL,this._updateStreamConfigInternal)}get instanceVersion(){return`${this._currentPlayerType} ${this._currentPlayerWrapperInstance?.version}`}get version(){return rm}on(e,t,r){this._eventEmitter.addEventListener(e,t,r)}off(e,t,r){this._eventEmitter.removeEventListener(e,t,r)}once(e,t,r){let n="object"==typeof r?{...r,once:!0}:{once:!0,capture:"boolean"==typeof r&&r};this._eventEmitter.addEventListener(e,t,n)}sendCustomEvent(e){this._metricsCollector?.registerEvent("CustomEvent",{customEventName:e})}destroy(){this._isDestroyed=!0,this._hasStarted=!1,this._isStartDelayed=!1,this._currentPlayerWrapperInstance?.destroy(),this._eventEmitter.destroy(),this._debugPanel.destroy(),this._metricsCollector?.destroy(),this._videoElementMetrics?.destroy(),this._videoElementController.removeEventListener(V.EVideoControllerCustomEvent.VIDEO_PLAYBACK_STATE_CHANGE,this._handleVideoPlaybackStateChange),this._videoElementController.removeEventListener(V.EVideoControllerCustomEvent.UPDATE_PLAYER_RESOLUTION,this._handleUpdatePlayerResolution),this._videoElementController.removeEventListener(V.EVideoControllerCustomEvent.NATIVE_EVENT,this._handleNativeEvent),this._videoElementController.removeEventListener(V.EVideoControllerCustomEvent.TIME_UPDATE,this._handleTimeUpdate),this._videoElementController.destroy(),this._eventBusInstance.unsubscribe(this._playerTypeForcedListener),this._eventBusInstance.unsubscribe(this._streamConfigUpdatedInternalListener)}enableAbr(){this._isAbrEnabled=!0,this._currentPlayerWrapperInstance?.enableAbr(),this._currentPlayerType===V.EPlayerType.WEBRTC&&this._metricsCollector?.setRenditionSwitchMode("auto")}disableAbr(){this._isAbrEnabled=!1,this._currentPlayerWrapperInstance?.disableAbr(),this._currentPlayerType===V.EPlayerType.WEBRTC&&this._metricsCollector?.setRenditionSwitchMode("manual")}setMetricsUserId(e){this._metricsCollector?.setUserId(e),this._metricsUserIdCache=e}setMetricsTimeOrigin(e){this._metricsTimeOriginCache=e,this._metricsCollector?.setTimeOrigin(e)}configureMetrics(e,t){if(this._metricsCollector){if(this._metricsCollector.baseUrl===e&&this._metricsCollector.projectId===t)return;this._videoElementMetrics?.destroy(),this._videoElementMetrics=null,this._metricsCollector.destroy(),this._metricsCollector=null}this._metricsCollector=new rE(e,t),this._metricsCollector.setAbTests(this._abTestsCache),this._currentPlayerType&&this._metricsCollector.setPlayerType(this._currentPlayerType),this._metricsCollector.setAdditionalFields(this._additionalFieldsCache),this._videoElementMetrics=new rS(this._metricsCollector),this._videoElementMetrics.setIsPaused(this._currentPlayerType===V.EPlayerType.BROADCAST),this._currentPlayerWrapperInstance?.setMetricsCollector(this._metricsCollector),this._videoElement&&this._videoElementMetrics.setVideoElement(this._videoElement),this._metricsTimeOriginCache&&this._metricsCollector.setTimeOrigin(this._metricsTimeOriginCache),this._metricsUserIdCache&&this._metricsCollector.setUserId(this._metricsUserIdCache),"unknown"!==this._userTypeCache&&this._metricsCollector.setUserType(this._userTypeCache),this._reemitCDNDomain()}setConfig(e){let t=t3({},this._config,e);if(function e(t,r,n,i,s){return t===r||(null!=t&&null!=r&&(ej(t)||ej(r))?tT(t,r,n,i,e,s):t!=t&&r!=r)}(t,this._config))return;let r=(0,V.ObjectDeepDiff)(this._config,t);this._config={...t},(r.hlsConfig||r.webRTCConfig)&&this._reapplyPlayerConfig(),r.videoControllerConfig&&this._config.videoControllerConfig&&this._videoElementController.updateConfig(this._config.videoControllerConfig),r.persistent?this._prepareDependencies():!1===r.persistent&&this._clearDependencies()}setVideoElement(e){this._videoElement=e,this._eventBusInstance.publish(rC.EPlayersEvents.VIDEO_ELEMENT_UPDATED,{videoElement:e}),this._videoElementController&&this._videoElementController.setVideoElement(e),this._videoElementMetrics?.setVideoElement(e),this._currentPlayerWrapperInstance?.setVideoElement(this._videoElement),this._currentPlayerType===V.EPlayerType.BROADCAST&&this.setVolume(0)}setStreamConfig(e){let t={...this._currentStreamConfig,...e};this._updateStreamConfigInternal({streamConfig:t})}setAbTests(e){this._abTestsCache=e||{},this._metricsCollector?.setAbTests(e||{})}setAbTestsSupport(e){this._abTestsSupportCache=e||{},this._metricsCollector?.setAbTestsSupport(this._abTestsSupportCache)}setAdditionalMetricsFields(e){this._additionalFieldsCache=e||{},this._metricsCollector?.setAdditionalFields(e)}setUserType(e){this._userTypeCache=e,this._metricsCollector?.setUserType(e)}setResolutionByName(e){this._currentResolutionBitrate=null,this._currentResolution=e,this._currentPlayerWrapperInstance?.setResolutionByName(e),this._currentPlayerType===V.EPlayerType.WEBRTC&&this._metricsCollector?.currentRenditionSelectMode==="manual"&&this._metricsCollector.setManualResolution(e)}setResolutionByBitrate(e){this._currentResolution=null,this._currentResolutionBitrate=e,this._currentPlayerWrapperInstance?.setResolutionByBitrate(e)}setAbrResolutions(e){this._abrResolutions=e,this._currentPlayerWrapperInstance?.setAbrResolutions(e)}setAppKey(e){this._appKey=e,this._currentPlayerWrapperInstance&&this._currentPlayerWrapperInstance.setAppKey(e)}async getSupportedPlayerTypes(){return this._supportedPlayerTypeCache?this._supportedPlayerTypeCache:(this._supportedPlayerTypeCache=(await Promise.all((0,F.AVAILABLE_PLAYER_TYPES).map(async e=>({playerType:e,isSupported:await j[e]()})))).filter(e=>e.isSupported).map(({playerType:e})=>e),this._supportedPlayerTypeCache||[])}async setPlayerType(e){if(e===this._currentPlayerType)return;this._videoElementMetrics?.setIsPaused(e===V.EPlayerType.BROADCAST),this._videoElement&&this._currentPlayerType&&this._videoElement.load();let t=this._currentPlayerType;if(this._currentPlayerType=e,!(await this.getSupportedPlayerTypes()).includes(e))throw this._currentPlayerType=t,Error(`Player type ${e} is unsupported`);this._metricsCollector?.setPlayerType(e),this._videoElement&&e===V.EPlayerType.BROADCAST&&this.setVolume(0),this._reemitStreamId(),this._reemitCDNDomain(),this.recreatePlayer(),this._eventBusInstance.publish(rC.EPlayersEvents.PLAYER_TYPE_CHANGED,{playerType:e})}async recreatePlayer(){if(!this._currentPlayerType)return;this._currentPlayerWrapperInstance&&(this._config.persistent?this._currentPlayerWrapperInstance.stop():(this._currentPlayerWrapperInstance.destroy(),this._currentPlayerWrapperInstance=null)),this._eventEmitter.reemitEvent(rT.MODULE_LOADING_STATE_CHANGED,{newState:rA.LOADING});let[e]=await Promise.all([this._playerWrapperResolversMap[this._currentPlayerType](),rL(50)]);this._isDestroyed||(this._eventEmitter.reemitEvent(rT.MODULE_LOADING_STATE_CHANGED,{newState:rA.LOADED}),this._playerInstancesMap[this._currentPlayerType]?this._currentPlayerWrapperInstance=this._playerInstancesMap[this._currentPlayerType]:(this._currentPlayerWrapperInstance=new e(this._eventBusInstance,{persistent:this._config.persistent}),this._config.persistent&&(this._playerInstancesMap[this._currentPlayerType]=this._currentPlayerWrapperInstance)),this._retuneNewPlayerInstance())}renderDebugPanelIntoContainer(e){e.appendChild(this._debugPanel.rootContainer)}start(e=!1){!e&&(this._hasStarted||this._isStartDelayed)||(this._isCurrentConfigValid()&&this._currentPlayerWrapperInstance?(this._isStartDelayed=!1,this._hasStarted=!0,this._config.persistent||this._currentPlayerWrapperInstance.stop(),this._currentPlayerWrapperInstance.start(),this._reemitStreamId()):this._isStartDelayed=!0)}stop(){this._hasStarted=!1,this._isStartDelayed=!1,this._currentPlayerWrapperInstance?.stop(),this.recreatePlayer(),this._metricsCollector?.stop()}setVolume(e){this._videoElementController?.setVolume(e)}setLoggerLevel(e){this._currentPlayerWrapperInstance?.setLoggerLevel?.(e),this._videoElementController?.setLoggerLevels(this._logLevels),this._logLevels=e}_retuneNewPlayerInstance(){if(this._currentPlayerType){switch(this._currentPlayerType){case V.EPlayerType.HLS:this._currentPlayerWrapperInstance.setVideoElement(this._videoElement).setPlayerConfig(this._config.hlsConfig||{}).setStreamConfig(this._currentStreamConfig).recreatePlayerInstance();break;case V.EPlayerType.WEBRTC:case V.EPlayerType.BROADCAST:this._currentPlayerWrapperInstance.setVideoElement(this._videoElement).setAbrResolutions(this._abrResolutions).setPlayerConfig(this._config.webRTCConfig||{}).setStreamConfig(this._currentStreamConfig).setAppKey(this._appKey).recreatePlayerInstance();break;case V.EPlayerType.NATIVE:this._currentPlayerWrapperInstance.setVideoElement(this._videoElement).setStreamConfig(this._currentStreamConfig).recreatePlayerInstance()}this._isAbrEnabled?this._currentPlayerWrapperInstance?.enableAbr():this._currentPlayerWrapperInstance?.disableAbr(),this._logLevels&&(this._currentPlayerWrapperInstance?.setLoggerLevel(this._logLevels),this._videoElementController?.setLoggerLevels(this._logLevels)),this._currentResolution&&![(0,V.EPlayerType).BROADCAST,(0,V.EPlayerType).NATIVE].includes(this._currentPlayerType)&&this._currentPlayerWrapperInstance?.setResolutionByName(this._currentResolution),this._currentResolutionBitrate&&![(0,V.EPlayerType).BROADCAST,(0,V.EPlayerType).NATIVE].includes(this._currentPlayerType)&&this._currentPlayerWrapperInstance?.setResolutionByBitrate(this._currentResolutionBitrate),this._metricsCollector&&this._currentPlayerWrapperInstance?.setMetricsCollector(this._metricsCollector),(this._isStartDelayed||this._hasStarted)&&this.start(!0)}}async _prepareDependencies(){for(let e of[V.EPlayerType.HLS,V.EPlayerType.WEBRTC]){if(this._playerInstancesMap[e])continue;if(e===this._currentPlayerType&&this._currentPlayerWrapperInstance){this._playerInstancesMap[e]=this._currentPlayerWrapperInstance;continue}let t=await this._playerWrapperResolversMap[e]();this._playerInstancesMap[e]=new t(this._eventBusInstance,{persistent:!0})}this._config.establishWSOnStart&&(this._playerInstancesMap[V.EPlayerType.WEBRTC]?.setStreamConfig({WebRTCSignallingUrl:this._currentStreamConfig.WebRTCSignallingUrl,...this._currentPlayerType===V.EPlayerType.WEBRTC?this._currentStreamConfig:{}}),this._playerInstancesMap[V.EPlayerType.WEBRTC]?.start())}_clearDependencies(){Object.values(this._playerInstancesMap).forEach(e=>{e!==this._currentPlayerWrapperInstance&&e.destroy()}),this._playerInstancesMap={}}_reapplyPlayerConfig(){if(this._currentPlayerWrapperInstance)switch(this._currentPlayerType){case V.EPlayerType.HLS:this._config.hlsConfig&&this._currentPlayerWrapperInstance.setPlayerConfig(this._config.hlsConfig);break;case V.EPlayerType.BROADCAST:case V.EPlayerType.WEBRTC:this._config.webRTCConfig&&this._currentPlayerWrapperInstance.setPlayerConfig(this._config.webRTCConfig)}}async _resolveDoppioWrapper(){return this._doppioWrapperConstructor||(this._doppioWrapperConstructor=(await k("cQezm")).DoppioWrapper),this._doppioWrapperConstructor}async _resolveRistrettoWrapper(){return this._ristrettoPlayerWrapperConstructor||(this._ristrettoPlayerWrapperConstructor=(await k("iI3uv")).RistrettoPlayerWrapper),this._ristrettoPlayerWrapperConstructor}async _resolveRistrettoBroadcasterWrapper(){return this._ristrettoBroadcasterWrapperConstructor||(this._ristrettoBroadcasterWrapperConstructor=(await k("gxrTY")).RistrettoBroadcastWrapper),this._ristrettoBroadcasterWrapperConstructor}async _resolveNativeWrapper(){return this._nativeWrapperConstructor||(this._nativeWrapperConstructor=(await k("djm2V")).NativeWrapper),this._nativeWrapperConstructor}async _emitAvailablePlayerTypes(){let e=await this.getSupportedPlayerTypes(),t=W(this._currentStreamConfig),r=e.filter(e=>t.includes(e));this._eventEmitter.reemitEvent(rT.AVAILABLE_PLAYER_TYPES_UPDATED,{availablePlayerTypes:r}),this._eventBusInstance.publish(rC.EPlayersEvents.PLAYER_TYPES_AVAILABLE,{availablePlayerTypes:r})}_handleVideoPlaybackStateChange(e){this._eventEmitter.reemitEvent(rT.VIDEO_PLAYBACK_STATE_CHANGED,e.detail)}_handleUpdatePlayerResolution(e){this._eventEmitter.reemitEvent(rT.UPDATE_PLAYER_RESOLUTION,e.detail)}_handleNativeEvent({detail:{event:e,eventName:t}}){this._eventEmitter.reemitEvent(rT.NATIVE_EVENT,{event:e,eventName:t})}_handleTimeUpdate(){this._eventEmitter.reemitEvent(rT.TIME_UPDATE,{})}_handlePlaying(e){this._eventEmitter.reemitEvent(rT.PLAYING,e.detail)}_isCurrentConfigValid(){return!!(this._currentPlayerType===V.EPlayerType.HLS&&this._currentStreamConfig.HLSStreamUrl)||!!(this._currentPlayerType===V.EPlayerType.WEBRTC&&this._currentStreamConfig.WebRTCSignallingUrl)||!!(this._currentPlayerType===V.EPlayerType.BROADCAST&&this._currentStreamConfig.WebRTCStreamId&&this._currentStreamConfig.WebRTCSignallingUrl)}_reemitStreamId(){if(this._hasStarted){if(this._currentPlayerType===V.EPlayerType.HLS&&this._currentStreamConfig.HLSStreamUrl){let{streamId:e}=rN(this._currentStreamConfig.HLSStreamUrl);this._metricsCollector?.setStreamId(e||"")}(this._currentPlayerType===V.EPlayerType.BROADCAST||this._currentPlayerType===V.EPlayerType.WEBRTC)&&this._currentStreamConfig.WebRTCStreamId&&this._metricsCollector?.setStreamId(this._currentStreamConfig.WebRTCStreamId),this._reeemitRenditionSwitchMode()}}_reeemitRenditionSwitchMode(){if(this._currentPlayerType===V.EPlayerType.HLS&&this._currentStreamConfig.HLSStreamUrl){let{resolution:e}=rN(this._currentStreamConfig.HLSStreamUrl);this._metricsCollector?.setRenditionSwitchMode("auto"===e?"auto":"manual")}this._metricsCollector?.currentRenditionSelectMode==="manual"&&this._reemitManualRendition()}_reemitManualRendition(){if(this._currentPlayerType===V.EPlayerType.HLS&&this._currentStreamConfig.HLSStreamUrl){let{resolution:e}=rN(this._currentStreamConfig.HLSStreamUrl);e&&this._metricsCollector?.setManualResolution(e)}}_reemitCDNDomain(){this._currentPlayerType===V.EPlayerType.HLS&&this._currentStreamConfig.HLSStreamUrl&&this._metricsCollector?.updateCDNUrl(this._currentStreamConfig.HLSStreamUrl),this._currentPlayerType===V.EPlayerType.NATIVE&&this._currentStreamConfig.NativeStreamURL&&this._metricsCollector?.updateCDNUrl(this._currentStreamConfig.NativeStreamURL),this._currentPlayerType===V.EPlayerType.WEBRTC&&this._currentStreamConfig.WebRTCSignallingUrl&&this._metricsCollector?.updateCDNUrl(this._currentStreamConfig.WebRTCSignallingUrl)}_onPlayerTypeForced({playerType:e}){this.setPlayerType(e)}_updateStreamConfigInternal({streamConfig:e}){let t=(0,V.ObjectDeepDiff)(this._currentStreamConfig,e),r=!!e.MediaStream!=!!this._currentStreamConfig.MediaStream||e.MediaStream?.id!==this._currentStreamConfig.MediaStream?.id;(Object.keys(t).length||r)&&(this._currentStreamConfig=e,this._eventBusInstance.publish(rC.EPlayersEvents.STREAM_CONFIG_UPDATED,{streamConfig:this._currentStreamConfig}),this._config.establishWSOnStart&&this._currentPlayerType!==V.EPlayerType.WEBRTC&&this._playerInstancesMap[V.EPlayerType.WEBRTC]?.setStreamConfig({WebRTCSignallingUrl:this._currentStreamConfig.WebRTCSignallingUrl}),this._currentPlayerWrapperInstance?.setStreamConfig(this._currentStreamConfig),this._emitAvailablePlayerTypes(),this._isStartDelayed&&this.start(!0),this._reemitStreamId(),this._reemitCDNDomain())}get debugPanelRootContainer(){return this._debugPanel.rootContainer}}(0,x.__decorate)([V.bind],rD.prototype,"_handleVideoPlaybackStateChange",null),(0,x.__decorate)([V.bind],rD.prototype,"_handleUpdatePlayerResolution",null),(0,x.__decorate)([V.bind],rD.prototype,"_handleNativeEvent",null),(0,x.__decorate)([V.bind],rD.prototype,"_handleTimeUpdate",null),(0,x.__decorate)([V.bind],rD.prototype,"_handlePlaying",null),(0,x.__decorate)([V.bind],rD.prototype,"_onPlayerTypeForced",null),(0,x.__decorate)([V.bind],rD.prototype,"_updateStreamConfigInternal",null);var rB,rk,rU,rV,rx,rF,rj,rW,rG,rH,rY,rz,F=k("1QtI2"),rq=k("hJ7nZ").EPlayerType,r$=k("hJ7nZ").EPlaybackState,rK=k("hJ7nZ").EPlaybackStartType,rQ=k("1QtI2").EPlayerErrorType,rJ="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==g?g:{};function rZ(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==rJ?rJ:void 0}"undefined"==typeof globalThis&&(globalThis=rZ());let rX="undefined"!=typeof globalThis&&globalThis||"undefined"!=typeof self&&self||void 0!==rJ&&rJ;function r0(e){try{new e("")}catch(e){return!1}return!0}"function"==typeof rX.Event&&r0(rX.Event)||(rX.Event=function(e,t){this.bubbles=!!t&&!!t.bubbles,this.cancelable=!!t&&!!t.cancelable,this.composed=!!t&&!!t.composed,this.type=e}),void 0!==rX.EventTarget&&r0(rX.EventTarget)||(rX.EventTarget=function(){function e(){this.__listeners=new Map}return e.prototype=Object.create(Object.prototype),e.prototype.addEventListener=function(e,t,r){if(arguments.length<2)throw TypeError(`TypeError: Failed to execute 'addEventListener' on 'EventTarget': 2 arguments required, but only ${arguments.length} present.`);let n=this.__listeners,i=e.toString();n.has(i)||n.set(i,new Map);let s=n.get(i);s.has(t)||s.set(t,r)},e.prototype.removeEventListener=function(e,t,r){if(arguments.length<2)throw TypeError(`TypeError: Failed to execute 'addEventListener' on 'EventTarget': 2 arguments required, but only ${arguments.length} present.`);let n=this.__listeners,i=e.toString();if(n.has(i)){let e=n.get(i);e.has(t)&&e.delete(t)}},e.prototype.dispatchEvent=function(e){if(!(e instanceof Event))throw TypeError("Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1 is not of type 'Event'.");let t=e.type,r=this.__listeners.get(t);if(r)for(let[t,n]of r.entries()){try{"function"==typeof t?t.call(this,e):t&&"function"==typeof t.handleEvent&&t.handleEvent(e)}catch(e){setTimeout(()=>{throw e})}n&&n.once&&r.delete(t)}return!0},e}());let r1=class{constructor(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}addEventListener(e,t,r){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push({callback:t,options:r})}removeEventListener(e,t){if(!(e in this.listeners))return;let r=this.listeners[e];for(let e=0,n=r.length;e{throw e})}n.options&&n.options.once&&this.removeEventListener(e.type,n.callback)}return!e.defaultPrevented}},r2=class extends r1{constructor(){super(),this.listeners||r1.call(this),Object.defineProperty(this,"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(this,"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(this,"reason",{value:void 0,writable:!0,configurable:!0})}toString(){return"[object AbortSignal]"}dispatchEvent(e){"abort"===e.type&&(this.aborted=!0,"function"==typeof this.onabort&&this.onabort.call(this,e)),super.dispatchEvent(e)}},r3=class{constructor(){Object.defineProperty(this,"signal",{value:new r2,writable:!0,configurable:!0})}abort(e){let t;t=new Event("abort");let r=e;void 0===r&&((r=Error("This operation was aborted")).name="AbortError"),this.signal.reason=r,this.signal.dispatchEvent(t)}toString(){return"[object AbortController]"}};("function"!=typeof(e="undefined"!=typeof self?self:rJ).Request||e.Request.prototype.hasOwnProperty("signal"))&&e.AbortController||("undefined"!=typeof Symbol&&Symbol.toStringTag&&(r3.prototype[Symbol.toStringTag]="AbortController",r2.prototype[Symbol.toStringTag]="AbortSignal"),e.AbortController=r3,e.AbortSignal=r2);let r4=rZ();"function"!=typeof r4.queueMicrotask&&(r4.queueMicrotask=function(e){Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e}))}),Array.prototype.flat||Object.defineProperty(Array.prototype,"flat",{configurable:!0,value:function e(){var t=isNaN(arguments[0])?1:Number(arguments[0]);return t?Array.prototype.reduce.call(this,function(r,n){return Array.isArray(n)?r.push.apply(r,e.call(n,t-1)):r.push(n),r},[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,"flatMap",{configurable:!0,value:function(e){return Array.prototype.map.apply(this,arguments).flat()},writable:!0}),(t=rB||(rB={})).CLICK="videoElement.click",t.PLAYING="videoElement.playing",t.LOADING="videoElement.loading",t.PAUSE="videoElement.pause",t.VIDEO_PLAYBACK_STATE_CHANGE="videoElement.videoPlaybackStateChange",t.NATIVE_EVENT="videoElement.nativeEvent",t.UPDATE_PLAYER_RESOLUTION="videoElement.updatePlayerResolution",t.TIME_UPDATE="videoElement.timeUpdate";let r6=class{constructor(e=!0){this.appId=null,this._lastUid=-1,this._messages={},this._immediateExceptions=!1,this._allSubscribingMsg="*",this._immediateExceptions=e}setAppId(e){this.appId=e}getAppId(){return this.appId}publish(e,t){return this._publish(e,t,!1,this._immediateExceptions)}publishSync(e,t){return this._publish(e,t,!0,this._immediateExceptions)}subscribe(e,t){if("function"!=typeof t)return"";let r="uid_"+String(++this._lastUid);return this._messages[e]||(this._messages[e]={}),(this._messages[e]||{})[r]=t,r}toggleSubscriptionBulk(e){"subscribe"===e.action?Object.entries(e.callbacks).forEach(([e,t])=>{this.subscribe.call(this,e,t)}):Object.entries(e.callbacks).forEach(([e,t])=>{this.unsubscribe.call(this,t)})}subscribeAll(e){return this.subscribe(this._allSubscribingMsg,e)}subscribeOnce(e,t){let r=this.subscribe(e,(...e)=>{this.unsubscribe(r),t.apply(this,e)});return this}clearAllSubscriptions(){this._messages={}}clearSubscriptions(e){for(let t in this._messages)Object.prototype.hasOwnProperty.call(this._messages,t)&&0===t.indexOf(e)&&delete this._messages[t]}unsubscribe(e){let t="string"==typeof e&&(Object.prototype.hasOwnProperty.call(this._messages,e)||this._descendantTopicExists(e)),r=!t&&"string"==typeof e,n="function"==typeof e,i=!1;if(t){this.clearSubscriptions(e);return}for(let t in this._messages)if(Object.prototype.hasOwnProperty.call(this._messages,t)){let s=this._messages[t]||{};if(r&&s[e]){delete s[e],i=e;break}if(n)for(let t in s)Object.prototype.hasOwnProperty.call(s,t)&&s[t]===e&&(delete s[t],i=!0)}return i}_hasKeys(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!0;return!1}_throwException(e){return()=>{throw e}}_callSubscriberWithDelayedExceptions(e,t){try{e(t)}catch(e){setTimeout(this._throwException(e),0)}}_callSubscriberWithImmediateExceptions(e,t){e(t)}_deliverMessage(e,t,r,n){let i=this._messages[t]||{},s=n?this._callSubscriberWithImmediateExceptions:this._callSubscriberWithDelayedExceptions;if(Object.prototype.hasOwnProperty.call(this._messages,t))for(let e in i)Object.prototype.hasOwnProperty.call(i,e)&&s(i[e],r)}_createDeliveryFunction(e,t,r){return()=>{let n=String(e),i=n.lastIndexOf(".");for(this._deliverMessage(e,e,t,r);i>-1;)i=(n=n.substr(0,i)).lastIndexOf("."),this._deliverMessage(e,n,t,r);this._deliverMessage(e,this._allSubscribingMsg,t,r)}}_hasDirectSubscribersFor(e){let t=String(e);return!!(Object.prototype.hasOwnProperty.call(this._messages,t)&&this._hasKeys(this._messages[t]||{}))}_messageHasSubscribers(e){let t=String(e),r=this._hasDirectSubscribersFor(t)||this._hasDirectSubscribersFor(this._allSubscribingMsg),n=t.lastIndexOf(".");for(;!r&&-1!==n;)n=(t=t.substr(0,n)).lastIndexOf("."),r=this._hasDirectSubscribersFor(t);return r}_publish(e,t,r,n){let i="symbol"==typeof e?e.toString():e,s=this._createDeliveryFunction(i,t,n);return!!this._messageHasSubscribers(i)&&(r?s():setTimeout(s,0),!0)}_descendantTopicExists(e){for(let t in this._messages)if(Object.prototype.hasOwnProperty.call(this._messages,t)&&0===t.indexOf(e))return!0;return!1}};new r6,new r6;let r5=e=>`configProvider.configUpdated.${e}`,r8=e=>{let t={};return{configConsumerConstructor:class{constructor(r,n){this._onConfigUpdatedWithContext=this._onConfigUpdated.bind(this),this._configKey=r,this._eventBus=n||e;let i=r5(r);this._onConfigUpdatedListener=this._eventBus.subscribe(i,this._onConfigUpdatedWithContext),this.config=t[r]}destroy(){this._eventBus.unsubscribe(this._onConfigUpdatedListener)}_handleConfigUpdated(e,t){}_onConfigUpdated(e){t=e.newConfig;let r=e.newConfig[this._configKey];this.config=r,this._handleConfigUpdated(e.updatedValues,r)}},setConsumerConfig:e=>{t=e}}},r9=e=>e instanceof Date,r7=e=>e instanceof Element||e instanceof Document,ne=e=>0===Object.keys(e).length,nt=e=>null!=e&&"object"==typeof e,nr=(e,...t)=>Object.prototype.hasOwnProperty.call(e,...t),nn=e=>nt(e)&&ne(e),ni=e=>t=>new Promise((r,n)=>{e(t,e=>{r(e)},e=>{n(e)})}),ns=(e,t)=>{if(e===t)return{};if(!nt(e)||!nt(t)||r7(e)||r7(t))return t;let r=Object.keys(e).reduce((e,r)=>(nr(t,r)||(e[r]=void 0),e),{});return r9(e)||r9(t)?e.valueOf()==t.valueOf()?{}:t:Object.keys(t).reduce((r,n)=>{if(!nr(e,n))return r[n]=t[n],r;let i=ns(e[n],t[n]);return nn(i)&&!r9(i)&&(nn(e[n])||!nn(t[n]))||(r[n]=i),r},r)};function no(e,t,r){if(!r||"function"!=typeof r.value)throw TypeError(`Only methods can be decorated with @bind. <${t}> is not a method!`);return{configurable:!0,get(){let e=r.value?.bind(this);return Object.defineProperty(this,t,{value:e,configurable:!0,writable:!0}),e}}}function na(e,t,r,n){var i,s=arguments.length,o=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(i=e[a])&&(o=(s<3?i(o):s>3?i(t,r,o):i(t,r))||o);return s>3&&o&&Object.defineProperty(t,r,o),o}(r=rk||(rk={})).HLS="hls",r.WEBRTC="webrtc",r.NATIVE="native",r.BROADCAST="broadcast",(n=rU||(rU={})).IDLE="idle",n.LOADING="loading",n.PAUSED="paused",n.PLAYING="playing",n.ERROR="error",(i=rV||(rV={})).WAITING="waiting",i.AUTO="auto",i.MANUAL="manual",(s=rx||(rx={})).BROADCAST_STATE_CHANGED="commonEvents.broadcastStateChanged",s.BROADCAST_REMOTE_STATS_AVAILABLE="commonEvents.broadcastRemoteStatsAvailable",s.PLAYING_STATE_CHANGED="commonEvents.playingStateChanged",s.COMMON_ERROR="commonEvents.commonError";let nl=new r6;(rF||(rF={})).LOG="logger.log";let nu=(e,t)=>(r,n)=>{nl.publish(rF.LOG,{domain:e,timestamp:performance.now(),level:t,message:r,payload:n})},nc=e=>{let t=`${e}{${(Math.random()+1).toString(36).substring(2,6)}}`;return{debug:nu(t,"debug"),verbose:nu(t,"verbose"),info:nu(t,"info"),warn:nu(t,"warn"),error:nu(t,"error"),fatal:nu(t,"fatal")}},nd=(...e)=>console.log(...e.filter(e=>void 0!==e)),nh={debug:(e,t)=>nd(`%c${e}`,"color: rgb(102, 102, 102)",t),verbose:(e,t)=>nd(`%c${e}`,"color: rgb(36, 114, 200)",t),info:(e,t)=>nd(`%c${e}`,"color: rgb(13, 188, 121)",t),warn:(e,t)=>nd(`%c${e}`,"color: rgb(229, 229, 16)",t),error:(e,t)=>nd(`%c${e}`,"color: rgb(241, 76, 76)",t),fatal:(e,t)=>nd(`%c${e}`,"background: rgb(241, 76, 76); color: #fff",t)},nf=[],n_=class{constructor(e=nf,t=[],r=[],n=!0){this._levels=e,this._enableErrorAutoLog=n,this._onLogMessageReceivedToken=nl.subscribe(rF.LOG,this._onMessageReceived),this._onErrorReceivedToken=nl.subscribe(rx.COMMON_ERROR,this._onErrorReceived),this._ignoreDomains=r,this._additionalScopeSubscriptions=t.map(e=>nl.subscribe(e,t=>{this._onAdditionalScopeMessageReceived(e,t)}))}destroy(){nl.unsubscribe(this._onLogMessageReceivedToken),nl.unsubscribe(this._onErrorReceivedToken),this._additionalScopeSubscriptions.forEach(nl.unsubscribe)}_onMessageReceived(e){let{domain:t,timestamp:r,level:n,message:i,payload:s}=e;!(!this._levels.includes(n)||this._ignoreDomains.includes(t))&&(nh[n]||nh.info)(`[${t}] ${n.toUpperCase()}:${i}@${r}`,s)}_onAdditionalScopeMessageReceived(e,t){(0,nh.verbose)(`[${e}] Event receiver with payload ${t} @ ${performance.now()}`)}_onErrorReceived({error:e}){this._enableErrorAutoLog&&nc("COMMON ERROR").error(`Error in ${e.domain}: ${e.message} ${e.info&&" ("+e.info+")"}`)}};na([no],n_.prototype,"_onMessageReceived",null),na([no],n_.prototype,"_onAdditionalScopeMessageReceived",null),na([no],n_.prototype,"_onErrorReceived",null);let np={videoElementControllerConfig:{limitCheckingAutoplay:5,minimalPossibleVideoDimension:50,timeoutUpdateStatusPlaying:2e3,timeoutUpdateVideoDuration:500}},{ConfigConsumer:ng,setConfig:nv,resetConfig:nm}=(e=>{let t={...e},{configConsumerConstructor:r,setConsumerConfig:n}=r8(new r6);return n(e),{getConfigField:e=>t[e],setConfig:(e,r)=>{let i=Object.entries(e).reduce((e,[t,r])=>(e[t]={...e[t],...r},e),{...t}),s=ns(t,i);t=i,Object.entries(s).forEach(([e,t])=>{let n=r5(e);r.publish(n,{updatedValues:t,newConfig:i})}),n(t)},getConfig:()=>t,resetConfig:()=>{t={...e}},ConfigConsumer:r}})(np);(o=rj||(rj={})).NATIVE_EVENT="videoElementController.nativeEvent",o.CLICK="videoElementController.click",o.FORCE_PLAY_AFTER_PAUSE="videoElementController.forcePlayAfterPause",o.VIDEO_START="videoElementController.videoStart",o.VIDEO_PAUSE="videoElementController.videoPause",o.VIDEO_RESET="videoElementController.videoReset",o.PAUSED="videoElementController.paused",o.PLAYING="videoElementController.playing",o.LOADING="videoElementController.loading",o.LOADED="videoElementController.loaded",o.UPDATED="videoElementController.updated",o.DESTROY="videoElementController.destroy",o.STREAM_RESET="videoElementController.streamReset",o.CAN_PLAY="videoElementController.canPlay",o.REMOVE_MEDIA_STREAM="videoElementController.removeMediaStream",o.ERROR="videoElementController.error",o.ABORT="videoElementController.abort",o.STALLED="videoElementController.stalled",o.WAITING="videoElementController.waiting",o.UPDATE_PLAYER_RESOLUTION="videoElementController.updatePlayerResolution",o.RESET_CHECKING_AUTOPLAY_COUNT="videoElementController.resetCheckingAutoplayCount",o.CANCEL_RESET_STREAM="videoElementController.cancelResetStream",o.RESTART="videoElementController.restart",o.TIME_UPDATE_NATIVE="videoElementController.native",o.UPDATE_MEDIA_STREAM="videoElementController.updateMediaStream",o.VIDEO_ELEMENT_RECREATED="videoElementController.videoElementRecreated",o.VIDEO_PLAYBACK_STATE_CHANGED="videoElementController.videoPlaybackStateChanged",o.SET_VOLUME="videoElementController.setVolume";let ny=0,nb=class{constructor(e){this._config={},this._logger=nc("VideoElementController - AutoplayController"),this._eventsMap={[rj.CAN_PLAY]:this._checkAutoplayEnabled,[rj.DESTROY]:this.destroy,[rj.FORCE_PLAY_AFTER_PAUSE]:this._forcePlayAfterPause,[rj.RESET_CHECKING_AUTOPLAY_COUNT]:this._resetCheckingAutoplayCount},this._logger.info("Created"),this._logger.debug("Initial config",this._config),this._logger.debug("Initial state",this._state),this._state=e.state,this._eventBus=e.eventBus,this.init()}setConfig(e){this._logger.debug("Config update received, the new one:",e),this._config=e}destroy(){this._logger.info("Destroying"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap})}init(){this._logger.info("Initialization requested, attaching eventBus listeners"),this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}_handleConfigUpdated(){}_forcePlayAfterPause(e){if(void 0!==this._config.autoplay&&!this._config.autoplay){this._logger.verbose("Autoplay is disabled.");return}this._logger.verbose(`Trying to force video to play. Reason: ${e.reason}`);let t=this._state.getState();if(!t.startedPlaying||t.isPlaying||this._config.canBePaused){this._logger.verbose("Currently unable to autoplay the video");return}this._checkAutoplayEnabled()}_checkAutoplayEnabled(){if(this._logger.debug("Checking if autoplay is possible"),!this._state.getState().canPlay){this._logger.verbose("No canPlay event caught, skipping check");return}if(void 0!==this._config.autoplay&&!this._config.autoplay){this._logger.verbose("Autoplay is disabled.");return}if(ny>this._config.limitCheckingAutoplay){this._logger.verbose(`Unable to autoplay the video. The limit of autoplay checking (${this._config.limitCheckingAutoplay}) is exceeded`),this._eventBus.publish(rj.PAUSED,{});return}ny+=1,this._logger.verbose("Autoplay is used to play the video"),this._eventBus.publish(rj.VIDEO_START,{})}_resetCheckingAutoplayCount(){ny=0}};na([no],nb.prototype,"destroy",null),na([no],nb.prototype,"init",null),na([no],nb.prototype,"_forcePlayAfterPause",null),na([no],nb.prototype,"_checkAutoplayEnabled",null),na([no],nb.prototype,"_resetCheckingAutoplayCount",null);let nE=class extends EventTarget{constructor(){super()}emitEvent(e,t){this.dispatchEvent(new CustomEvent(e,{detail:t}))}},nS=class extends nE{constructor(e){super(),this._eventsMap={[rj.PLAYING]:this._handlePlaying,[rj.LOADING]:this._handleLoading,[rj.VIDEO_PAUSE]:this._handlePause,[rj.CLICK]:this._handleClick,[rj.DESTROY]:this.destroy,[rj.NATIVE_EVENT]:this._handleNativeEvent,[rj.UPDATE_PLAYER_RESOLUTION]:this._handleUpdatePlayerResolution,[rj.VIDEO_PLAYBACK_STATE_CHANGED]:this._handleVideoPlaybackStateChange,[rj.TIME_UPDATE_NATIVE]:this._handleTimeUpdate},this._eventBus=e.eventBus,this.init()}destroy(){this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap})}init(){this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}_handlePlaying(e){this.emitEvent(rB.PLAYING,e)}_handleLoading(){this.emitEvent(rB.LOADING,{})}_handlePause(){this.emitEvent(rB.PAUSE,{})}_handleClick(e){this.emitEvent(rB.CLICK,{originalEvent:e.originalEvent})}_handleNativeEvent(e){this.emitEvent(rB.NATIVE_EVENT,e)}_handleUpdatePlayerResolution(e){this.emitEvent(rB.UPDATE_PLAYER_RESOLUTION,e)}_handleTimeUpdate(e){this.emitEvent(rB.TIME_UPDATE,e)}_handleVideoPlaybackStateChange(e){this.emitEvent(rB.VIDEO_PLAYBACK_STATE_CHANGE,{prevState:e.prevState,nextState:e.nextState})}};na([no],nS.prototype,"destroy",null),na([no],nS.prototype,"init",null),na([no],nS.prototype,"_handlePlaying",null),na([no],nS.prototype,"_handleLoading",null),na([no],nS.prototype,"_handlePause",null),na([no],nS.prototype,"_handleClick",null),na([no],nS.prototype,"_handleNativeEvent",null),na([no],nS.prototype,"_handleUpdatePlayerResolution",null),na([no],nS.prototype,"_handleTimeUpdate",null),na([no],nS.prototype,"_handleVideoPlaybackStateChange",null);var nC={};nC=function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t||4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,(function(t){return e[t]}).bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=90)}({17:function(e,t,r){t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||""},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||""},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},e.getMacOSVersionName=function(e){var t=e.split(".").splice(0,2).map(function(e){return parseInt(e,10)||0});if(t.push(0),10===t[0])switch(t[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},e.getAndroidVersionName=function(e){var t=e.split(".").splice(0,2).map(function(e){return parseInt(e,10)||0});if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?"Cupcake":1===t[0]&&t[1]>=6?"Donut":2===t[0]&&t[1]<2?"Eclair":2===t[0]&&2===t[1]?"Froyo":2===t[0]&&t[1]>2?"Gingerbread":3===t[0]?"Honeycomb":4===t[0]&&t[1]<1?"Ice Cream Sandwich":4===t[0]&&t[1]<4?"Jelly Bean":4===t[0]&&t[1]>=4?"KitKat":5===t[0]?"Lollipop":6===t[0]?"Marshmallow":7===t[0]?"Nougat":8===t[0]?"Oreo":9===t[0]?"Pie":void 0},e.getVersionPrecision=function(e){return e.split(".").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),o=Math.max(i,s),a=0,l=e.map([t,r],function(t){var r=o-e.getVersionPrecision(t),n=t+Array(r+1).join(".0");return e.map(n.split("."),function(e){return Array(20-e.length).join("0")+e}).reverse()});for(n&&(a=o-Math.min(i,s)),o-=1;o>=a;){if(l[0][o]>l[1][o])return 1;if(l[0][o]===l[1][o]){if(o===a)return 0;o-=1}else if(l[0][o]1?n-1:0),s=1;s0){var o=Object.keys(r),l=a.default.find(o,function(e){return t.isOS(e)});if(l){var u=this.satisfies(r[l]);if(void 0!==u)return u}var c=a.default.find(o,function(e){return t.isPlatform(e)});if(c){var d=this.satisfies(r[c]);if(void 0!==d)return d}}if(s>0){var h=Object.keys(i),f=a.default.find(h,function(e){return t.isBrowser(e,!0)});if(void 0!==f)return this.compareVersion(i[f])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=a.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if("string"==typeof i)return">"===e[0]||"<"===e[0]?(r=e.substr(1),"="===e[1]?(n=!0,r=e.substr(2)):t=[],">"===e[0]?t.push(1):t.push(-1)):"="===e[0]?r=e.substr(1):"~"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(a.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some(function(e){return t.is(e)})},e}();t.default=u,e.exports=t.default},92:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=/version\/(\d+(\.?_?\d+)+)/i,o=[{test:[/googlebot/i],describe:function(e){var t={name:"Googlebot"},r=i.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:"Opera"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\/|opios/i],describe:function(e){var t={name:"Opera"},r=i.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:"Samsung Internet for Android"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:"NAVER Whale Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:"MZ Browser"},r=i.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:"Focus"},r=i.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:"Swing"},r=i.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:"Opera Coast"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(e){var t={name:"Opera Touch"},r=i.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:"Yandex Browser"},r=i.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:"UC Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:"Maxthon"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:"Epiphany"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:"Puffin"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:"Sleipnir"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:"K-Meleon"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:"WeChat"},r=i.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?"QQ Browser Lite":"QQ Browser"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:"Internet Explorer"},r=i.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\sedg\//i],describe:function(e){var t={name:"Microsoft Edge"},r=i.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:"Microsoft Edge"},r=i.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:"Vivaldi"},r=i.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:"SeaMonkey"},r=i.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:"Sailfish"},r=i.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:"Amazon Silk"},r=i.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:"PhantomJS"},r=i.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:"SlimerJS"},r=i.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t={name:"BlackBerry"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:"WebOS Browser"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:"Bada"},r=i.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:"Tizen"},r=i.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:"QupZilla"},r=i.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:"Firefox"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:"Electron"},r=i.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:"Miui"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:"Chromium"},r=i.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:"Chrome"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:"Google Search"},r=i.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:"Android Browser"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:"PlayStation 4"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:"Safari"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=o,e.exports=t.default},93:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18),o=[{test:[/Roku\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,e).replace(/[_\s]/g,"."),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,e).replace(/[_\s]/g,".");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,e)||i.default.getFirstMatch(/\bbb(\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=o,e.exports=t.default},94:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18),o=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&"Nova",r={type:s.PLATFORMS_MAP.mobile,vendor:"Huawei"};return t&&(r.model=t),r}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:"Apple",model:t}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"blackberry"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(e){return"bada"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"windows phone"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(".")[0]);return"android"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=o,e.exports=t.default},95:function(e,t,r){t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18),o=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=o,e.exports=t.default}});let nT=globalThis?.navigator?.userAgent?((a=nC)&&a.__esModule?a.default:a).getParser(globalThis.navigator.userAgent):null,nA=e=>!!nT&&(nT.satisfies(e)||!1),nP={safari15OrHigher:nA({safari:">=15"}),firefox:nA({firefox:">0"}),safari:nA({safari:">0"}),chrome:nA({chrome:">0"}),edge:nA({edge:">0"})},nR=new WeakMap,nw={IDLE:1,LOADING:2},nO=(e,t)=>{let r=0===e.readyState,n=e.networkState!==nw.LOADING&&e.networkState!==nw.IDLE;if(nP.firefox&&"play"===t&&r&&n)throw Error("Can not play audio")},nM=(e,t)=>e instanceof HTMLMediaElement?(nO(e,t),"function"==typeof t)?t(e):e[t]():null,nI=(e,t)=>{let r=(nR.get(e)||Promise.resolve()).then(()=>{let r=nM(e,t);return r?.then?Promise.resolve(r):new Promise(e=>{setTimeout(()=>{e(r)},150)})}).then(()=>{nR.delete(e)}).catch(t=>{throw nR.delete(e),t});return nR.set(e,r),r},nL=class{constructor(e){this._logger=nc("VideoElementController - PlaybackController"),this._eventsMap={[rj.VIDEO_START]:this._startVideo,[rj.VIDEO_PAUSE]:this._pauseVideo,[rj.VIDEO_RESET]:this._resetVideo,[rj.RESTART]:this._restart,[rj.DESTROY]:this._destroy},this._logger.info("Created"),this._logger.debug("Initial state",this._state),this._state=e.state,this._eventBus=e.eventBus,this.init()}init(){this._logger.info("Initialization requested, attaching eventBus listeners"),this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}_startVideo(){let e=this._state.getState().videoElement;if(this._logger.verbose("Starting the video"),e)return e.playbackRate||(e.playbackRate=1),this._logger.debug("Play call is added to the promises queue"),nI(e,"play").then(()=>{this._logger.debug("Play call resolved"),this._state.getState().canPlay&&this._eventBus.publish(rj.PLAYING,{})}).catch(e=>{this._state.setState({isAutoplayError:!0}),this._logger.error("An error occured when trying to play the video.",{error:e}),this._state.getState().canPlay&&this._eventBus.publish(rj.PAUSED,{})})}_pauseVideo(){this._logger.debug("Pausing the video");let e=this._state.getState().videoElement;if(e)return this._logger.debug("Pause call is added to the promises queue"),nI(e,"pause").then(()=>{this._logger.debug("Pause call resolved")}).catch(e=>{this._logger.warn("Could not pause video",e)})}_loadVideo(){this._logger.verbose("Loading the video");let e=this._state.getState().videoElement;if(e?.src&&e.src.startsWith("blob")){this._logger.debug("Stream seems to be blob. Skipping load");return}if(e)return this._logger.debug("Load call is added to the promises queue"),nI(e,"load").then(()=>{this._logger.debug("Load call resolved")}).catch(e=>{this._logger.warn("Could not load video",e)})}_resetVideo(){this._logger.verbose("Resetting the video"),this._state.getState().videoElement&&(this._eventBus.publish(rj.LOADING,{}),this._loadVideo())}async _restart(){this._logger.verbose("Restarting the video"),await this._pauseVideo(),this._startVideo()}_destroy(){this._logger.info("Destroying"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap})}};na([no],nL.prototype,"init",null),na([no],nL.prototype,"_startVideo",null),na([no],nL.prototype,"_pauseVideo",null),na([no],nL.prototype,"_loadVideo",null),na([no],nL.prototype,"_resetVideo",null),na([no],nL.prototype,"_restart",null),na([no],nL.prototype,"_destroy",null);let nN=(e,t)=>{if(!t||t<0)e.muted=!0,e.volume=0;else{let r=Math.min(t,1);isNaN(r)||(e.muted=!1,e.volume=r)}},nD=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)},nB=` width: 100%;`,nk=class{constructor({className:e,state:t,eventBus:r}){this._logger=nc("VideoElementController - CanvasVideoRenderer"),this._knownVideoElementStyles="",this._eventsMap={[rj.PLAYING]:this.startAnimationFrame,[rj.LOADING]:this.cancelAnimationFrame,[rj.REMOVE_MEDIA_STREAM]:this.cancelAnimationFrame},this._applyStyles=()=>{let{canvasElement:e,videoElement:t}=this._getElements();e&&t&&(this._knownVideoElementStyles=t.style.cssText,e.style.cssText=nB,t.style.cssText=` ${nB} opacity: 0; position: absolute; left: 0; top: 0; `)},this._state=t,this._eventBus=r;let n=document.createElement("canvas");this._canvasContext=n.getContext("2d"),e&&(n.className=e),this.init(),this._state.setState({canvasElement:n}),this._applyStyles(),this._logger.verbose("Canvas renderer has been created")}startAnimationFrame(){let{canvasElement:e,videoElement:t}=this._getElements();if(this.cancelAnimationFrame(),!e||!t)return;let{width:r,height:n}=e.getBoundingClientRect(),{videoWidth:i,videoHeight:s}=t;if(r/n<1&&i/s>1){let o=Math.max(r,i),a=r/i*s;if(this._canvasContext){let t=devicePixelRatio;e.width=o*t,e.height=n*t,this._canvasContext.scale(t,t)}this._canvasContext?.drawImage(t,r>o?(r-o)/2:0,(n-a)/2,o,a)}else{let o=Math.max(n,s),a=n/s*i;if(this._canvasContext){let t=devicePixelRatio;e.width=r*t,e.height=o*t,this._canvasContext.scale(t,t)}this._canvasContext?.drawImage(t,(r-a)/2,n>o?(n-o)/2:0,a,o)}this._state.getState().isLoading||(this._canvasAnimationFrameId=requestAnimationFrame(this.startAnimationFrame))}getCanvasElement(){return this._getElements().canvasElement}destroy(){this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap});let{canvasElement:e,videoElement:t}=this._getElements();e&&e.parentNode&&e.parentNode.removeChild(e),t&&(t.style.cssText=this._knownVideoElementStyles,this._knownVideoElementStyles=""),this._state.setState({canvasElement:null}),this._logger.verbose("Canvas renderer was destroyed")}init(){this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}cancelAnimationFrame(){this._canvasAnimationFrameId&&(cancelAnimationFrame(this._canvasAnimationFrameId),this._canvasAnimationFrameId=null)}_getElements(){let{videoElement:e,canvasElement:t}=this._state.getState();return{videoElement:e,canvasElement:t}}};na([no],nk.prototype,"startAnimationFrame",null),na([no],nk.prototype,"destroy",null),na([no],nk.prototype,"init",null),na([no],nk.prototype,"cancelAnimationFrame",null),na([no],nk.prototype,"_getElements",null);let nU=class{constructor(e){this._canvasVideoRenderer=null,this._logger=nc("VideoElementController - RenderController"),this._config={},this._isLocalVideo=!1,this._eventsMap={[rj.SET_VOLUME]:this._setVolume,[rj.DESTROY]:this._destroy},this._state=e.state,this._eventBus=e.eventBus,this._logger.info("Created"),this._logger.debug("Initial config",this._config),this._logger.debug("Initial state",this._state),this.init()}setConfig(e){this._logger.debug("Config update received, the new one:",e),this._config=e,this.applyConfigToVideoElement()}init(){this._logger.info("Initialization requested, attaching eventBus listeners"),this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}getElements(){let{videoElement:e,canvasElement:t,ownContainer:r}=this._state.getState();return{videoElement:e,canvasElement:t,ownContainer:r}}getVideoElement(){return this.getElements().videoElement}getCanvasElement(){return this.getElements().canvasElement}renderVideoInto(e){let{ownContainer:t,videoElement:r}=this.getElements();this._logger.debug("renderVideoInto method was called");let n=!1;if(e&&r){let i=t||e;r.parentElement!==i&&(n=!0,i.appendChild(r));let s=this._canvasVideoRenderer?.getCanvasElement();this._canvasVideoRenderer&&s?.parentElement!==i&&(n=!0,i.appendChild(s),this._logger.info("Canvas element has been rendered to DOM")),i===t&&t.parentElement!==e&&(n=!0,e.appendChild(t)),n?this._logger.info("Video element has been rendered to DOM"):this._logger.verbose("Skipping video element render: video element is already mounted to the DOM.")}}setVideoElement(e,t){if(this._logger.debug("Video element updated",e),e===this.getVideoElement()){this._logger.verbose("Received video element is equal to the previous one. Skipping");return}this._isLocalVideo&&(this._logger.verbose("Removing video element and container from document"),nD(this.getElements().videoElement),nD(this.getElements().ownContainer)),this._state.setState({videoElement:e,ownContainer:t}),this.applyConfigToVideoElement()}applyConfigToVideoElement(){if(this._logger.debug("Applying config to the video element"),!this.getVideoElement()){this._logger.verbose("No video element known, could not apply config");return}let e=this.getVideoElement();if(!e)return;let{isNonAnonymous:t,isMuted:r,nativeControls:n,videoElementClassName:i,canvasElementClassName:s,shouldUseCanvas:o,rootElement:a,autoplay:l}=this._config;this._logger.verbose("Applied config",this._config),l&&(e.autoplay=!0),e.playsInline=!0,void 0!==n&&(e.controls=!!n),void 0!==r&&(e.muted=!!r),void 0!==t&&(t?e.removeAttribute("crossOrigin"):e.crossOrigin="anonymous"),i&&(e.className=i);let u=[this._state.getState().volume,this._config.volume].find(e=>void 0!==e);if(void 0!==u&&this._setVolume({volume:u}),o&&!this._canvasVideoRenderer&&(this._logger.verbose("Adding canvas as requested"),this._addCanvasVideoRenderer(),this._state.getState().isPlaying&&this._canvasVideoRenderer.startAnimationFrame()),!o&&this._canvasVideoRenderer){let e=this._state.getState().stream;this._logger.verbose("Removing canvas renderer"),e&&this._eventBus.publish(rj.UPDATE_MEDIA_STREAM,e),this._destroyCanvasRenderer()}let c=this.getCanvasElement();c&&(e.className="",s&&(c.className=s)),a&&this.renderVideoInto(a)}destroy(){if(this._logger.info("Destroying"),this._destroyCanvasRenderer(),this._isLocalVideo){this._logger.debug("Removing video element and container from document in destroy");let{videoElement:e,ownContainer:t}=this.getElements();nD(e),nD(t)}}createVideoElement(){let e,t;this._logger.info("Creating video element"),this._config.videoElement?(this._logger.debug("External video element passed from config - using existing one",this._config.videoElement),this._isLocalVideo=!1,e=this._config.videoElement):(this._isLocalVideo=!0,e=document.createElement("video"),t=document.createElement("div"),this._logger.debug("No external video element provided in config - created the new one",{videoElement:e,ownContainer:t}),t.style.position="relative"),this.setVideoElement(e,t),this._eventBus.publish(rj.VIDEO_ELEMENT_RECREATED,{videoElement:this.getVideoElement()})}_addCanvasVideoRenderer(){this._logger.debug("Adding canvas renderer"),this._canvasVideoRenderer||(this._canvasVideoRenderer=new nk({videoElement:this.getVideoElement(),className:this._config.videoElementClassName,state:this._state,eventBus:this._eventBus}))}_destroyCanvasRenderer(){this._logger.debug("Destroying canvas renderer"),this._canvasVideoRenderer&&(this._canvasVideoRenderer.destroy(),this._canvasVideoRenderer=null)}_setVolume({volume:e}){let t=this.getVideoElement();t&&(nN(t,e),this._logger.verbose(`Video volume level has been set to ${e}`))}_destroy(){this._logger.info("Destroying"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap})}};na([no],nU.prototype,"getElements",null),na([no],nU.prototype,"getVideoElement",null),na([no],nU.prototype,"getCanvasElement",null),na([no],nU.prototype,"renderVideoInto",null),na([no],nU.prototype,"setVideoElement",null),na([no],nU.prototype,"applyConfigToVideoElement",null),na([no],nU.prototype,"createVideoElement",null),na([no],nU.prototype,"_addCanvasVideoRenderer",null),na([no],nU.prototype,"_destroyCanvasRenderer",null),na([no],nU.prototype,"_setVolume",null),na([no],nU.prototype,"_destroy",null);let nV=class{constructor(e){this._config={},this._logger=nc("VideoElementController - StateController"),this._eventsMap={[rj.PLAYING]:this._handlePlaying,[rj.LOADING]:this._handleLoading,[rj.VIDEO_PAUSE]:this._handlePause,[rj.CAN_PLAY]:this._handleCanPlay,[rj.PAUSED]:this._handlePaused,[rj.RESTART]:this._handleRestart,[rj.UPDATED]:this._handleUpdate,[rj.STALLED]:this._handleStalled,[rj.WAITING]:this._handleWaiting,[rj.UPDATE_PLAYER_RESOLUTION]:this._handleUpdatePlayerResolution,[rj.ERROR]:this._handleError,[rj.SET_VOLUME]:this._handleSetVolume,[rj.DESTROY]:this.destroy},this._logger.info("Created"),this._logger.verbose("Initial state",e.state),this._state=e.state,this._eventBus=e.eventBus,this.init()}setConfig(e){this._logger.debug("Config update received, the new one:",e),this._config=e}destroy(){this._logger.info("Destroy"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap}),this._state.resetState(),this._state.setState({isDestroyed:!0})}init(){this._logger.info("Initialization requested, attaching eventBus listeners"),this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}_updateState(e){let t=this._state.getState().videoPlaybackState,r=t;e.isPlaying?r=rU.PLAYING:e.isLoading?r=rU.LOADING:e.isPaused?r=rU.PAUSED:e.isError&&(r=rU.ERROR),this._logger.debug(`State updated: ${t} -> ${r}`),this._state.setState({...e,videoPlaybackState:r}),t!==r&&this._eventBus.publish(rj.VIDEO_PLAYBACK_STATE_CHANGED,{prevState:t,nextState:r})}_handlePlaying(){this._logger.debug("Playing event received"),this._updateState({isPlaying:!0,startedPlaying:!0,isLoading:!1,isStalled:!1,isWaiting:!1,isPaused:!1,isError:!1})}_handleLoading(){this._logger.debug("Loading event received"),this._updateState({isLoading:!0,isPlaying:!1})}_handlePause(){this._logger.debug("Pause event received"),this._updateState({isPlaying:!1,isPaused:!0})}_handlePaused(){this._logger.debug("Paused event received"),this._updateState({isPlaying:!1,isLoading:!1,isPaused:!0})}_handleCanPlay(){this._logger.debug("CanPlay event received"),this._updateState({canPlay:!0,isDestroyed:!1})}_handleRestart(){this._logger.debug("Restart event received"),this._updateState({isRestarted:!0})}_handleStalled(){this._logger.debug("Stalled event received"),this._updateState({isStalled:!0})}_handleWaiting(){this._logger.debug("Waiting event received"),this._updateState({isWaiting:!0})}_handleError(){this._logger.debug("Error event received"),this._updateState({isError:!0})}_handleSetVolume({volume:e}){this._logger.debug("Volume event received",{volume:e}),this._updateState({volume:e})}_handleUpdatePlayerResolution(e){this._logger.debug("Player resolution event received",{height:e.height,width:e.width}),this._updateState({videoElementResolution:{height:e.height,width:e.width}})}_handleUpdate(){this._logger.debug("Update event received"),this._updateState({canPlay:!1,isLoading:!0,isPlaying:!1,isRestarted:!1,isPaused:!1,isError:!1})}};na([no],nV.prototype,"destroy",null),na([no],nV.prototype,"init",null),na([no],nV.prototype,"_updateState",null),na([no],nV.prototype,"_handlePlaying",null),na([no],nV.prototype,"_handleLoading",null),na([no],nV.prototype,"_handlePause",null),na([no],nV.prototype,"_handlePaused",null),na([no],nV.prototype,"_handleCanPlay",null),na([no],nV.prototype,"_handleRestart",null),na([no],nV.prototype,"_handleStalled",null),na([no],nV.prototype,"_handleWaiting",null),na([no],nV.prototype,"_handleError",null),na([no],nV.prototype,"_handleSetVolume",null),na([no],nV.prototype,"_handleUpdatePlayerResolution",null),na([no],nV.prototype,"_handleUpdate",null);let nx=class{constructor(e){this._config={},this._logger=nc("VideoElementController - StreamController"),this._eventsMap={[rj.PLAYING]:this._cancelResetStream,[rj.LOADING]:this._cancelResetStream,[rj.LOADED]:this._cancelResetStream,[rj.PAUSED]:this._cancelResetStream,[rj.UPDATED]:this._cancelResetStream,[rj.CANCEL_RESET_STREAM]:this._cancelResetStream,[rj.STREAM_RESET]:this._resetStream,[rj.UPDATE_MEDIA_STREAM]:this.updateMediaStream,[rj.DESTROY]:this.destroy},this._getIsSrcObjectAvailable=()=>this._props.getVideoElement()?.srcObject!==void 0,this._state=e.state,this._props=e,this._eventBus=e.eventBus,this._logger.info("Created"),this._logger.verbose("Initial state",e.state),this.init()}setConfig(e){this._logger.debug("Config update received, the new one:",e),this._config=e}updateMediaStream(e){if(this._logger.info("Updating media stream",{stream:e}),!this._props.getVideoElement()){this._logger.debug("No video element known. Skipping media stream update");return}this._attachStream(e),this._eventBus.publish(rj.VIDEO_START,{})}removeMediaStream(){this._logger.info("Removing media stream");let e=this._props.getVideoElement();if(!e){this._logger.debug("No video element known. Skipping media stream remove");return}this._eventBus.publish(rj.VIDEO_PAUSE,{}),this._eventBus.publish(rj.REMOVE_MEDIA_STREAM,{}),this._getIsSrcObjectAvailable()?(this._logger.debug("Setting srcObject to null"),e.srcObject=null):(this._logger.debug("Revoking object url",{url:e.src}),window.URL.revokeObjectURL(e.src)),e.src&&(this._logger.debug("Removing src attribute from video"),e.removeAttribute("src"))}destroy(){this._logger.info("Destroying"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap})}init(){this._logger.info("Initialization requested, attaching eventBus listeners"),this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}_attachStream(e){this._logger.info("Attaching media stream",{stream:e});let t=this._props.getVideoElement();if(!t||!e){this._logger.debug("No video element or stream defined. Skipping stream set");return}if(t.src===e){this._logger.debug("Current video element src attribute value is equal to the new stream. Skipping stream set");return}"string"==typeof e?(this._logger.debug("Setting video element src attribute"),t.src=e):this._getIsSrcObjectAvailable()?(this._logger.debug("Setting video element srcObject attribute"),t.srcObject=e):(t.src=window.URL.createObjectURL(e),this._logger.debug(`Got MediaStream as stream, but srcObject is not available. Created new object URL: ${t.src}`))}_cancelResetStream(){this._logger.debug("Stream reset action cancel required"),this._streamResetDelayId&&(clearTimeout(this._streamResetDelayId),this._logger.debug("Stream reset action cancelled"))}_resetStream({timeout:e}){if(this._logger.debug("Reset stream required"),!e){this._logger.verbose("No timeout set, skipping stream reset",{timeout:e});return}this._cancelResetStream(),this._streamResetDelayId=setTimeout(()=>{this._logger.debug("Resetting stream timeout fired");let e=!1;this._config.onResetStream&&(e=this._config.onResetStream());let t=this._state.getState().stream;if(t&&!e){if("string"==typeof t&&t.startsWith("blob")){this._logger.debug("Streams seems to be object url. Skipping reset");return}this._logger.debug("Resetting stream"),this.removeMediaStream(),this.updateMediaStream(t)}},e)}};na([no],nx.prototype,"updateMediaStream",null),na([no],nx.prototype,"removeMediaStream",null),na([no],nx.prototype,"destroy",null),na([no],nx.prototype,"init",null),na([no],nx.prototype,"_attachStream",null),na([no],nx.prototype,"_cancelResetStream",null),na([no],nx.prototype,"_resetStream",null);var nF=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},nj="object"==typeof rJ&&rJ&&rJ.Object===Object&&rJ,nW="object"==typeof self&&self&&self.Object===Object&&self,nG=nj||nW||Function("return this")(),nH=function(){return nG.Date.now()},nY=/\s/,nz=function(e){for(var t=e.length;t--&&nY.test(e.charAt(t)););return t},nq=/^\s+/,n$=nG.Symbol,nK=Object.prototype,nQ=nK.hasOwnProperty,nJ=nK.toString,nZ=n$?n$.toStringTag:void 0,nX=function(e){var t=nQ.call(e,nZ),r=e[nZ];try{e[nZ]=void 0;var n=!0}catch(e){}var i=nJ.call(e);return n&&(t?e[nZ]=r:delete e[nZ]),i},n0=Object.prototype.toString,n1=n$?n$.toStringTag:void 0,n2=function(e){return"symbol"==typeof e||null!=e&&"object"==typeof e&&"[object Symbol]"==(null==e?void 0===e?"[object Undefined]":"[object Null]":n1&&n1 in Object(e)?nX(e):n0.call(e))},n3=0/0,n4=/^[-+]0x[0-9a-f]+$/i,n6=/^0b[01]+$/i,n5=/^0o[0-7]+$/i,n8=parseInt,n9=function(e){if("number"==typeof e)return e;if(n2(e))return n3;if(nF(e)){var t,r="function"==typeof e.valueOf?e.valueOf():e;e=nF(r)?r+"":r}if("string"!=typeof e)return 0===e?e:+e;e=(t=e)?t.slice(0,nz(t)+1).replace(nq,""):t;var n=n6.test(e);return n||n5.test(e)?n8(e.slice(2),n?2:8):n4.test(e)?n3:+e},n7=Math.max,ie=Math.min,it=function(e,t,r){var n,i,s,o,a,l,u=0,c=!1,d=!1,h=!0;if("function"!=typeof e)throw TypeError("Expected a function");function f(t){var r=n,s=i;return n=i=void 0,u=t,o=e.apply(s,r)}function _(e){var r=e-l,n=e-u;return void 0===l||r>=t||r<0||d&&n>=s}function p(){var e,r,n,i=nH();if(_(i))return g(i);a=setTimeout(p,(e=i-l,r=i-u,n=t-e,d?ie(n,s-r):n))}function g(e){return(a=void 0,h&&n)?f(e):(n=i=void 0,o)}function v(){var e,r=nH(),s=_(r);if(n=arguments,i=this,l=r,s){if(void 0===a)return u=e=l,a=setTimeout(p,t),c?f(e):o;if(d)return clearTimeout(a),a=setTimeout(p,t),f(l)}return void 0===a&&(a=setTimeout(p,t)),o}return t=n9(t)||0,nF(r)&&(c=!!r.leading,s=(d="maxWait"in r)?n7(n9(r.maxWait)||0,t):s,h="trailing"in r?!!r.trailing:h),v.cancel=function(){void 0!==a&&clearTimeout(a),u=0,n=l=i=a=void 0},v.flush=function(){return void 0===a?o:g(nH())},v},ir=function(e,t,r){var n=!0,i=!0;if("function"!=typeof e)throw TypeError("Expected a function");return nF(r)&&(n="leading"in r?!!r.leading:n,i="trailing"in r?!!r.trailing:i),it(e,t,{leading:n,maxWait:t,trailing:i})};let ii="ristrettoWasRestarted",is=0,io=0,ia=class{constructor(e){this._shouldSetNextUpdateVideoDurationId=!0,this._config={},this._logger=nc("VideoElementController - TimeUpdateController"),this._onNativeTimeUpdateHandlerThrottled=ir(this._onNativeTimeUpdateHandler,2e3,{trailing:!1}),this._eventsMap={[rj.TIME_UPDATE_NATIVE]:this._onNativeTimeUpdateHandlerThrottled,[rj.DESTROY]:this._destroy},this._logger.info("Created"),this._logger.debug("Initial state",e.state),this._logger.debug("Initial props",e),this._state=e.state,this._props=e,this._eventBus=e.eventBus}setConfig(e){this._logger.debug("Config update received, the new one:",e);let t=e.timeoutUpdateStatusPlaying!==this._config.timeoutUpdateStatusPlaying;this._config=e,t&&(this._eventsMap[rj.TIME_UPDATE_NATIVE]=ir(this._onNativeTimeUpdateHandler,e.timeoutUpdateStatusPlaying,{trailing:!1}),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap}),this.init())}init(){this._logger.info("Initialization requested, attaching eventBus listeners"),this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}startTimeUpdate(){if(this._logger.debug("Starting time update"),this._stopTimeUpdate(),!this._shouldSetNextUpdateVideoDurationId||!this._config){this._shouldSetNextUpdateVideoDurationId=!0;return}this._updateVideoDurationId=setTimeout(this._onTimeUpdate,this._config.timeoutUpdateVideoDuration),this._publishUpdatePlayerResolutionIfNeeded()}_onNativeTimeUpdateHandler(e){if(this._logger.debug("Native video timeUpdate caught"),e?.originalEvent?.defaultPrevented)return;let t=this._props.getVideoElement(),{canPlay:r,isPlaying:n,isLoading:i,isRestarted:s}=this._state.getState();if(this._publishUpdatePlayerResolutionIfNeeded(),!r){this._logger.verbose("CanPlay shared state is false. Skipping");return}this._eventBus.publish(rj.RESET_CHECKING_AUTOPLAY_COUNT,{});let o=is!==t?.currentTime;this._logger.verbose(`Video current time is ${o?"":"not"} changed`),o?(this._eventBus.publish(rj.CANCEL_RESET_STREAM,{}),!nP.safari15OrHigher||s||localStorage?.getItem(ii)||(localStorage.setItem(ii,"1"),this._eventBus.publish(rj.RESTART,{})),t&&(is=t.currentTime),(!n||i)&&this._eventBus.publish(rj.PLAYING,{})):i?this._eventBus.publish(rj.VIDEO_RESET,{}):this._eventBus.publish(rj.LOADING,{})}_stopTimeUpdate(){this._logger.debug("Stopping time update"),clearTimeout(this._updateVideoDurationId)}_onTimeUpdate(){if(this._logger.debug("Time updated"),!this._state.getState().canPlay){this.startTimeUpdate();return}let e=this._props.getVideoElement();e&&io!==e.currentTime&&(io=e.currentTime),this.startTimeUpdate()}_publishUpdatePlayerResolutionIfNeeded(){this._logger.debug("Setting new resolution if changed");let e=this._props.getVideoElement();if(e){let{videoWidth:t,videoHeight:r}=e,{videoElementResolution:n}=this._state.getState();this._logger.verbose(`Stored resolution is ${n?.width}x${n?.height}, current is ${t}x${r}`),(!n||n.height!==r||n.width!==t)&&this._config.minimalPossibleVideoDimension&&Math.min(r,t)>this._config.minimalPossibleVideoDimension&&this._eventBus.publish(rj.UPDATE_PLAYER_RESOLUTION,{width:t,height:r})}}_destroy(){this._logger.info("Destroying"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap}),this._shouldSetNextUpdateVideoDurationId=!1,this._stopTimeUpdate()}};na([no],ia.prototype,"init",null),na([no],ia.prototype,"startTimeUpdate",null),na([no],ia.prototype,"_onNativeTimeUpdateHandler",null),na([no],ia.prototype,"_stopTimeUpdate",null),na([no],ia.prototype,"_onTimeUpdate",null),na([no],ia.prototype,"_publishUpdatePlayerResolutionIfNeeded",null),na([no],ia.prototype,"_destroy",null);let il=class{constructor(e){this._config={},this._logger=nc("VideoElementController - VideoEventsHandler"),this._timeUpdateEventWasLogged=!1,this._eventsMap={[rj.VIDEO_ELEMENT_RECREATED]:this._handleVideoElementRecreated,[rj.DESTROY]:this._handleDestroy},this._onVideoClick=e=>{this._logger.verbose('"click" video native event fired'),this._handleNativeEvent(e),this._eventBus.publish(rj.CLICK,{originalEvent:e})},this._onSeeked=e=>{this._logger.verbose('"seeked" video native event fired'),this._handleNativeEvent(e),this._eventBus.publish(rj.FORCE_PLAY_AFTER_PAUSE,{reason:"seeked video native event"})},this._onRateChange=e=>{this._logger.verbose('"ratechange" video native event fired'),this._handleNativeEvent(e),e.target&&!e.target.playbackRate&&this._eventBus.publish(rj.FORCE_PLAY_AFTER_PAUSE,{reason:"video playbackRate is 0"})},this._onCanPlayThrough=e=>{this._logger.verbose('"canplaythrough" video native event fired');let t=this._state.getState();this._handleNativeEvent(e),(t.isStalled||t.isWaiting)&&this._eventBus.publish(rj.FORCE_PLAY_AFTER_PAUSE,{reason:"canplaythrough video native event fired, and video is in the state of either stalled or waiting"})},this._onPlayingHandler=e=>{this._logger.verbose('"playing" video native event fired'),this._logger.info("Video has started playing"),this._handleNativeEvent(e),this._eventBus.publish(rj.PLAYING,{isAutoplay:!this._state.getState().isAutoplayError})},this._onAbortHandler=e=>{this._logger.verbose('"abort" video native event fired'),this._handleNativeEvent(e),e.defaultPrevented||this._eventBus.publish(rj.LOADING,{})},this._onPauseHandler=e=>{this._logger.verbose('"pause" video native event fired'),this._handleNativeEvent(e),this._eventBus.publish(rj.VIDEO_PAUSE,{}),this._eventBus.publish(rj.FORCE_PLAY_AFTER_PAUSE,{reason:"pause video event fired (most likely user paused the video manually)"})},this._onCanPlayHandler=e=>{this._logger.verbose('"canplay" video native event fired'),this._handleNativeEvent(e),e.defaultPrevented||(this._state.setState({canPlay:!0}),this._eventBus.publish(rj.CAN_PLAY,{}))},this._onErrorHandler=e=>{if(this._logger.error('"error" video native event fired',{error:e}),this._handleNativeEvent(e),this._eventBus.publish(rj.ERROR,{originalEvent:e}),!e.defaultPrevented){let{MEDIA_ERR_SRC_NOT_SUPPORTED:e}=MediaError,t=this._props.getVideoElement()?.error;t?.code!==e&&(this._logger.verbose("Video element error is not of MEDIA_ERR_SRC_NOT_SUPPORTED kind. Requesting reset"),this._eventBus.publish(rj.VIDEO_RESET,{}))}},this._onTimeUpdateHandler=e=>{this._handleNativeEvent(e),this._timeUpdateEventWasLogged||(this._logger.verbose('"timeupdate" video native event fired for the first time'),this._timeUpdateEventWasLogged=!0),this._eventBus.publishSync(rj.TIME_UPDATE_NATIVE,{originalEvent:e})},this._onLoadStartHandler=e=>{this._handleNativeEvent(e),this._logger.verbose('"loadstart" video native event fired');let{timeoutUpdateStream:t}=this._config;this._eventBus.publish(rj.LOADING,{}),this._eventBus.publish(rj.STREAM_RESET,{reason:"onLoadStartHandler",timeout:t})},this._onLoadedDataHandler=e=>{this._logger.verbose('"loadeddata" video native event fired'),this._handleNativeEvent(e),this._eventBus.publish(rj.LOADED,{})},this._onWaiting=e=>{this._logger.verbose('"waiting" video native event fired');let{timeoutWaitingStream:t}=this._config;this._handleNativeEvent(e),this._eventBus.publish(rj.WAITING,{}),this._eventBus.publish(rj.LOADING,{}),this._eventBus.publish(rj.STREAM_RESET,{reason:"onWaiting",timeout:t})},this._onStalled=e=>{this._logger.verbose('"stalled" video native event fired');let{timeoutWaitingStream:t}=this._config;this._handleNativeEvent(e),this._eventBus.publish(rj.STALLED,{}),this._eventBus.publish(rj.STREAM_RESET,{reason:"onStalled",timeout:t})},this._onEndFullscreenHandler=e=>{this._handleNativeEvent(e)},this._props=e,this._state=e.state,this._eventBus=e.eventBus,this.init()}setConfig(e){this._config=e}init(){this._eventBus.toggleSubscriptionBulk({action:"subscribe",callbacks:this._eventsMap})}toggleEvents(e){let t=this._props.getVideoElement();if(!t)return;let r="attach"===e?"addEventListener":"removeEventListener";t[r]("click",this._onVideoClick),t[r]("playing",this._onPlayingHandler),t[r]("abort",this._onAbortHandler),t[r]("pause",this._onPauseHandler),t[r]("canplay",this._onCanPlayHandler),t[r]("error",this._onErrorHandler),t[r]("timeupdate",this._onTimeUpdateHandler),t[r]("loadstart",this._onLoadStartHandler),t[r]("loadeddata",this._onLoadedDataHandler),t[r]("waiting",this._onWaiting),t[r]("stalled",this._onStalled),t[r]("canplaythrough",this._onCanPlayThrough),t[r]("seeked",this._onSeeked),t[r]("ratechange",this._onRateChange),t[r]("webkitendfullscreen",this._onEndFullscreenHandler),"addEventListener"===r?this._logger.verbose("event listeners are ATTACHED to the video element"):this._logger.verbose("event listeners are DETACHED from the video element")}_handleVideoElementRecreated(){this.toggleEvents("attach")}_handleDestroy(){this.toggleEvents("detach"),this._eventBus.toggleSubscriptionBulk({action:"unsubscribe",callbacks:this._eventsMap})}_handleNativeEvent(e){this._eventBus.publishSync(rj.NATIVE_EVENT,{eventName:e.type,event:e})}};na([no],il.prototype,"init",null),na([no],il.prototype,"_handleVideoElementRecreated",null),na([no],il.prototype,"_handleDestroy",null);let iu={canPlay:!1,isLoading:!0,isError:!1,isAutoplayError:!1,isPaused:!1,isPlaying:!1,isRestarted:!1,isStalled:!1,isWaiting:!1,isDestroyed:!1,videoPlaybackState:rU.IDLE,startedPlaying:!1},ic=class{constructor(e){this._initState={...e},this._state={...e}}setState(e,t){Object.assign(this._state,e),t&&t(this._state)}getState(){return this._state}resetState(){this.setState(this._initState)}},id=class{constructor(){this._loggerTransport=new n_,this._logger=nc("VideoElementController"),this._config={...np.videoElementControllerConfig},this.attachVideoElementEvents=()=>{this._logger.debug("Attach event listeners"),this._eventsHandler.toggleEvents("attach"),this._timeUpdateController.startTimeUpdate()},this.detachVideoElementEvents=()=>{this._logger.debug("Detach event listeners"),this._eventsHandler.toggleEvents("detach")},this._updated=()=>{this._eventBus.publish(rj.UPDATED,{})},this._logger.info("Created"),this._logger.debug("Initial config",this._config),this._eventBus=new r6,this._createControllers()}addEventListener(e,t){this._logger.verbose(`Attaching ${e} event listener`),this._customEventsEmitter.addEventListener(e,t)}removeEventListener(e,t){this._logger.verbose(`Detaching ${e} event listener`),this._customEventsEmitter.removeEventListener(e,t)}getIsPlaying(){return this._state.getState().isPlaying}getVideoElement(){return this._state.getState().videoElement}getCanvasElement(){return this._state.getState().canvasElement}updateConfig(e){this._config={...this._config,...e},this._logger.debug("Config update received, the new one: ",this._config),e.isRemote&&this.attachVideoElementEvents(),this._syncConfig()}setVideoElement(e){this._logger.info("Video element set",e),this._renderController.setVideoElement(e),this.attachVideoElementEvents()}createVideoElement(){return this._logger.info("Creating video element"),this._renderController.createVideoElement(),this.getVideoElement()}setStream(e){if(this._logger.info("Setting media stream"),this._state.getState().stream===e){this._logger.verbose("Previous stream is equal to the new one. Skipping.");return}return e?this._streamController.updateMediaStream(e):this._streamController.removeMediaStream(),this._updated(),this._state.setState({stream:e}),this}renderVideoInto(e){this._logger.info("Rendering video element into conatiner",e),this._renderController.renderVideoInto(e)}setVolume(e){this._logger.info("Setting volume of the video element",{volume:e}),this._eventBus.publish(rj.SET_VOLUME,{volume:e})}getState(){return this._state.getState()}destroy(){this._logger.info("Destroying"),this._config={...np.videoElementControllerConfig},this.detachVideoElementEvents(),this._streamController.removeMediaStream(),this._renderController.destroy(),this._eventBus.publishSync(rj.DESTROY,{}),this._logger.info("VideoElementController was destroyed"),this._loggerTransport?.destroy()}reinit(){this._logger.info("Reinit requested"),[this._autoplayController,this._customEventsEmitter,this._playbackController,this._streamController,this._stateController,this._timeUpdateController,this._renderController,this._eventsHandler].forEach(e=>{e&&e.init()}),this.attachVideoElementEvents(),this._logger.info("VideoElementController was reinited")}setLoggerLevels(e,t=[],r=[]){this._logger.info("Setting new log level",{levels:e}),this._loggerTransport&&(this._loggerTransport.destroy(),this._loggerTransport=null),e.length&&(this._loggerTransport=new n_(e,t,r))}_syncConfig(){this._logger.verbose("Sycronizing configs across all controllers"),this._autoplayController?.setConfig(this._config),this._eventsHandler.setConfig(this._config),this._streamController.setConfig(this._config),this._timeUpdateController.setConfig(this._config),this._renderController.setConfig(this._config),this._stateController.setConfig(this._config)}_createControllers(){this._logger.verbose("Creating all controllers"),this._state=new ic(iu);let e={getVideoElement:this.getVideoElement,state:this._state,eventBus:this._eventBus};this._autoplayController=new nb(e),this._customEventsEmitter=new nS(e),this._eventsHandler=new il(e),this._playbackController=new nL(e),this._streamController=new nx(e),this._stateController=new nV(e),this._timeUpdateController=new ia(e),this._renderController=new nU(e),this._logger.verbose("Controllers created")}};na([no],id.prototype,"addEventListener",null),na([no],id.prototype,"removeEventListener",null),na([no],id.prototype,"getIsPlaying",null),na([no],id.prototype,"getVideoElement",null),na([no],id.prototype,"getCanvasElement",null),(l=rW||(rW={}))[l.FATAL=0]="FATAL",l[l.ERROR=1]="ERROR",l[l.WARN=2]="WARN",l[l.INFO=3]="INFO",l[l.DEBUG=4]="DEBUG",l[l.VERBOSE=5]="VERBOSE",rW.FATAL,rW.ERROR,rW.WARN,rW.INFO,rW.DEBUG,rW.VERBOSE,rW.FATAL,rW.WARN,rW.ERROR,rW.INFO,rW.DEBUG,rW.VERBOSE,(u=rG||(rG={}))[u.MEDIA_DEVICES_UPDATED=0]="MEDIA_DEVICES_UPDATED";let ih=()=>{let e=navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices)||navigator.getUserMedia&&ni(navigator.getUserMedia.bind(navigator))||navigator.webkitGetUserMedia&&ni(navigator.webkitGetUserMedia.bind(navigator))||navigator.mozGetUserMedia&&ni(navigator.mozGetUserMedia.bind(navigator));return t=>e.call(navigator,t)},i_=e=>!!e&&("boolean"==typeof e?e:!!e.deviceId&&{deviceId:nP.safari?e.deviceId:{exact:e.deviceId},channelCount:2}),ip=(e,t)=>{if(!e)return!1;if("boolean"==typeof e)return!0;let r=e.width&&e.height?Number(e.width)/Number(e.height):t.baseAspectRatio,n={};return e.frameRate&&(n.frameRate={ideal:e.frameRate,min:15}),e.facingMode&&navigator.mediaDevices.getSupportedConstraints().facingMode&&(n.facingMode={exact:e.facingMode}),e.width&&(n.width={ideal:e.width}),e.height&&(n.height={ideal:e.height}),e.width&&e.height&&r&&(n.aspectRatio=r),e.deviceId&&(n.deviceId=nP.safari?e.deviceId:{exact:e.deviceId}),e.width&&e.height&&!n.facingMode&&(n.advanced=[{width:{min:e.width-t.sizeThreshold,max:e.width+t.sizeThreshold},height:{min:e.height-t.sizeThreshold,max:e.height+t.sizeThreshold}},{aspectRatio:r}]),0!==Object.keys(n).length&&n};(c=rH||(rH={})).VIDEO_INPUT="videoinput",c.AUDIO_INPUT="audioinput",c.AUDIO_OUTPUT="audiooutput";let ig=(e,t)=>e.filter(e=>e.kind===t),iv=async()=>{let e=await navigator.mediaDevices.enumerateDevices();return{audioInputs:ig(e,rH.AUDIO_INPUT),audioOutputs:ig(e,rH.AUDIO_OUTPUT),videoInputs:ig(e,rH.VIDEO_INPUT)}};(d=rY||(rY={})).SYSTEM_PERMISSION_DENIED="SystemPermissionDenied",d.USER_PERMISSION_DENIED="UserPermissionDenied",d.COULD_NOT_START_VIDEO_SOURCE="CouldNotStartVideoSource",d.GENERIC="Generic";let im=async e=>new Promise((t,r)=>{navigator.mediaDevices.getUserMedia(e??{audio:!0,video:!0}).then(e=>{e.getTracks().forEach(e=>{e.stop()}),t(!0)}).catch(e=>{let t=e.name,n=e.message,i=rY.GENERIC;nP.chrome?"NotAllowedError"===t?"Permission denied by system"===n?i=rY.SYSTEM_PERMISSION_DENIED:"Permission denied"===n&&(i=rY.USER_PERMISSION_DENIED):"NotReadableError"===t&&(i=rY.COULD_NOT_START_VIDEO_SOURCE):nP.safari?"NotAllowedError"===t&&(i=rY.USER_PERMISSION_DENIED):nP.edge?"NotAllowedError"===t?i=rY.USER_PERMISSION_DENIED:"NotReadableError"===t&&(i=rY.COULD_NOT_START_VIDEO_SOURCE):nP.firefox&&("NotFoundError"===t?i=rY.SYSTEM_PERMISSION_DENIED:"NotReadableError"===t?i=rY.SYSTEM_PERMISSION_DENIED:"NotAllowedError"===t?i=rY.USER_PERMISSION_DENIED:"AbortError"===t&&(i=rY.COULD_NOT_START_VIDEO_SOURCE)),r({type:i,name:e.name,message:e.message})})});(h=rz||(rz={})).LIVE="live",h.ENDED="ended";let iy=e=>{if(!e)return!0;let{muted:t,enabled:r,readyState:n}=e;return t||!r||n===rz.ENDED},ib=e=>!e.active||e.getTracks().every(iy),iE=e=>{e&&(e.getTracks().forEach(t=>{t.stop(),e.removeTrack(t)}),e.stop&&e.stop())},iS=class extends nE{constructor(){super(),this._currentMediaStream=null,this._mediaCheckCache=null,this._mediaDevices=null,navigator.mediaDevices.addEventListener("devicechange",this._onDevicesChanged)}destroy(){navigator.mediaDevices.removeEventListener("devicechange",this._onDevicesChanged),this._stopCurrentStream()}async requestPermissions(){if(this._mediaCheckCache)return this._mediaCheckCache;try{return await im({video:!0,audio:!0}),this._mediaCheckCache={video:{isAvailable:!0,error:null},audio:{isAvailable:!0,error:null}},this._mediaCheckCache}catch(t){let e={video:{isAvailable:!1,error:null},audio:{isAvailable:!1,error:null}};return e.video=await this._checkKindPermissions({video:!0,audio:!1}),e.audio=await this._checkKindPermissions({video:!1,audio:!0}),this._mediaCheckCache=e,this._mediaCheckCache}}async getVideoDevices(){return(await this._getMediaDevices()).videoInputs}async getAudioInputDevices(){return(await this._getMediaDevices()).audioInputs}async getAudioOutputDevices(){return(await this._getMediaDevices()).audioOutputs}async getMediaStream(e,t){let r={};return(e.audio&&(r.audio=i_(e.audio)),e.video&&(r.video=ip(e.video,t)),this._currentMediaStream)?!ib(this._currentMediaStream.stream)&&await this._isCurrentStreamSatisfiesConstraints(r)?this._currentMediaStream.stream:(await this._stopCurrentStream(),this._createNewStream(r)):this._createNewStream(r)}async _stopCurrentStream(){this._currentMediaStream&&(await iE(this._currentMediaStream.stream),this._currentMediaStream=null)}async _checkKindPermissions(e){let t={isAvailable:!1,error:null};try{t.isAvailable=await im(e)}catch(e){t.isAvailable=!1,t.error=e}return t}async _getMediaStream(e){let t=ih(),r=await t(e);return this._currentMediaStream={constraints:e,stream:r},this._currentMediaStream.stream}async _createNewStream(e){try{return await this._getMediaStream(e)}catch(t){if("OverconstrainedError"===t.name&&"deviceId"===t.constraint){let t={...e,audio:!0};return await this._getMediaStream(t)}throw t}}async _getMediaDevices(){return this._mediaDevices||(this._mediaDevices=await iv()),this._mediaDevices}async _isCurrentStreamSatisfiesConstraints(e){if(!this._currentMediaStream)return!1;try{if(e.video){let t=this._currentMediaStream.stream.getVideoTracks()[0];if(!t&&e.video||t&&!e.video||"object"==typeof e.video&&e.video.deviceId&&t.getCapabilities().deviceId!==e.video.deviceId)return!1;t&&"boolean"!=typeof e.video&&await t.applyConstraints(e.video)}}catch(e){return!1}try{if(e.audio){let t=this._currentMediaStream.stream.getAudioTracks()[0];if(!t&&e.audio||t&&!e.audio||"object"==typeof e.audio&&e.audio.deviceId&&t.getCapabilities().deviceId!==e.audio.deviceId)return!1;t&&"boolean"!=typeof e.audio&&await t.applyConstraints(e.audio)}}catch(e){return!1}return!0}async _onDevicesChanged(){this._mediaDevices=null;let e=await this._getMediaDevices();this.emitEvent(rG.MEDIA_DEVICES_UPDATED,e)}};na([no],iS.prototype,"_onDevicesChanged",null);const iC="v1.6.40",iT=(e={})=>{let t=v(f).useRef(null),[r]=v(f).useState("client"),[n]=v(f).useState(!0),[i,s]=v(f).useState([]),[o,a]=v(f).useState(null),[l,u]=v(f).useState([]),[c,d]=v(f).useState(),[h,_]=v(f).useState(rK.WAITING),[p,g]=v(f).useState(!1),[m,y]=v(f).useState({isPlaying:!1,isLoading:!1,isErrored:!1}),b=e=>{u(e.detail.availablePlayerTypes)},E=e=>{d(e.detail.nextState)},S=t=>{e.onUpdatePlayerResolution&&e.onUpdatePlayerResolution(t.detail)},C=e=>{g(e.detail.newState===rA.LOADING)},T=e=>{let t=e.detail.nextState,r=t===r$.PLAYING,n=t===r$.LOADING,i=t===r$.ERROR;y({state:t,isPlaying:r,isLoading:n,isErrored:i})},A=e=>{s(e.detail.resolutions)},P=e=>{!1===e.detail.isAutoplay?_(rK.MANUAL):_(rK.AUTO)},R=()=>{e.onTimeUpdate&&e.onTimeUpdate()},w=({detail:t})=>{e.onError&&e.onError({error:t.error,playerType:t.playerType})},O=()=>{e.onResolutionNotFound&&e.onResolutionNotFound()},M=({detail:e})=>{a({name:e.resolutionName})},I=e=>{t.current&&(t.current[e](rT.AVAILABLE_PLAYER_TYPES_UPDATED,b),t.current[e](rT.PLAYBACK_STATE_CHANGED,E),t.current[e](rT.VIDEO_PLAYBACK_STATE_CHANGED,T),t.current[e](rT.RESOLUTIONS_AVAILABLE,A),t.current[e](rT.UPDATE_PLAYER_RESOLUTION,S),t.current[e](rT.MODULE_LOADING_STATE_CHANGED,C),t.current[e](rT.RESOLUTION_SWITCHED,M),t.current[e](rT.PLAYING,P),t.current[e](rT.ERROR,w),t.current[e](rT.TIME_UPDATE,R),t.current[e](rT.RESOLUTION_NOT_FOUND,O))};return v(f).useEffect(()=>{if(t.current)return I("on"),()=>{I("off")}},[t.current,O]),(0,f.useEffect)(()=>{let{isPlaying:t}=m;t&&e.onPlaying&&e.onPlaying()},[m]),{playerRef:t,availablePlayerTypes:l,playbackState:c,playbackStartType:h,videoPlaybackState:m.state,abrPolicy:r,smoothQualityChangeSupported:n,resolutions:i,isPlaying:m.isPlaying,isLoading:m.isLoading,isErrored:m.isErrored,isModuleLoading:p,currentResolution:o,version:iC}},iA=(e,t)=>{let r=(0,f.useRef)(null);(0,f.useEffect)(()=>{r.current=e},[e]),(0,f.useEffect)(()=>{if(null!==t){let e=setInterval(()=>{r.current&&r.current()},t);return()=>clearInterval(e)}},[t])},iP=({HLSStreamUrl:e,WebRTCSignallingUrl:t,WebRTCPublishCustomData:r,WebRTCStreamId:n,WebRTCACLToken:i,NativeStreamURL:s,MediaStream:o,playerType:a,playerConfig:l,abTests:u,abrPresets:c,isABREnabled:d,volume:h,additionalMetricFields:_,appKey:p,metricsProjectId:g,quality:m,videoElement:y,metricsCollectionEndpoint:b,WebRTCQuality:E,playerRef:S,autoplay:C})=>{let T=v(f).useRef(null),[A,P]=v(f).useState({});v(f).useEffect(()=>{P({HLSStreamUrl:e,WebRTCSignallingUrl:t,WebRTCPublishCustomData:r,WebRTCStreamId:n,WebRTCACLToken:i,NativeStreamURL:s,MediaStream:o})},[e,t,r,n,i,s,o]),v(f).useEffect(()=>{T.current?.setStreamConfig(A)},[A]);let R=a===rq.NATIVE,w=v(f).useCallback(()=>{T.current&&a&&(R&&(d?T.current.enableAbr():T.current.disableAbr()),u&&T.current.setAbTests(u),l&&T.current.setConfig(l),p&&T.current.setAppKey(p),y&&T.current.setVideoElement(y),T.current.setStreamConfig(A),T.current.setPlayerType(a),T.current.setAbrResolutions(c?.filter(e=>!e.name.includes("blurred"))||[]),E&&!R&&T.current?.setResolutionByName(E),void 0!==h&&T.current?.setVolume(h))},[T.current,y,a,d,c,p]);v(f).useEffect(()=>{let e=!1;!(!a||[rq.BROADCAST,rq.WEBRTC].includes(a)&&!p)&&!T.current&&(!T.current&&(e=!0,T.current=new rD,S&&(S.current=T.current)),w(),e&&C&&T.current?.start())},[T.current,y,a,c,d,p]),v(f).useEffect(()=>{T.current?.setVolume(h)},[h]);let O=v(f).useCallback(()=>{let e=navigator.connection;e&&T.current?.setAdditionalMetricsFields({..._,reportedDownlink:e.downlink,reportedRTT:e.rtt,reportedNetworkType:e.type})},[_,T.current]);v(f).useEffect(()=>{O()},[_]),v(f).useEffect(()=>()=>{T.current?.destroy()},[]),v(f).useEffect(()=>{l&&T?.current?.setConfig(l)},[l]),v(f).useEffect(()=>{a&&T.current?.setPlayerType(a)},[a]),v(f).useEffect(()=>{b&&g&&S?.current&&S.current?.configureMetrics(b,g)},[S?.current,g,b]),v(f).useEffect(()=>{y&&T.current?.setVideoElement(y)},[y]),v(f).useEffect(()=>{T.current?.setAbrResolutions(c?.filter(e=>!e.name.includes("blurred"))||[])},[c]),v(f).useEffect(()=>{p&&T.current?.setAppKey(p)},[p]),v(f).useEffect(()=>{u&&T.current?.setAbTests(u)},[u]),v(f).useEffect(()=>{T.current&&(m?T.current.setResolutionByName(m):E&&a===rq.WEBRTC&&T.current.setResolutionByName(E),d?T.current.enableAbr():T.current.disableAbr())},[d,E,m]),iA(O,2e3)},iR=e=>{let t=v(f).useRef(null);iP({...e,playerRef:t});let[r]=v(f).useState("client"),[n]=v(f).useState(!0),[i,s]=v(f).useState([]),[o,a]=v(f).useState(null),[l,u]=v(f).useState([]),[c,d]=v(f).useState(),[h,_]=v(f).useState(rK.WAITING),[p,g]=v(f).useState(!1),[m,y]=v(f).useState({isPlaying:!1,isLoading:!1,isErrored:!1}),b=e=>{u(e.detail.availablePlayerTypes)},E=e=>{d(e.detail.nextState)},S=t=>{e.onUpdatePlayerResolution&&e.onUpdatePlayerResolution(t.detail)},C=e=>{g(e.detail.newState===rA.LOADING)},T=e=>{let t=e.detail.nextState,r=t===r$.PLAYING,n=t===r$.LOADING,i=t===r$.ERROR;y({state:t,isPlaying:r,isLoading:n,isErrored:i})},A=e=>{s(e.detail.resolutions)},P=({detail:e})=>{a({name:e.resolutionName})},R=e=>{!1===e.detail.isAutoplay?_(rK.MANUAL):_(rK.AUTO)},w=t=>{e.onBroadcastSupportedChange&&e.onBroadcastSupportedChange(t.detail)},O=()=>{e.onTimeUpdate&&e.onTimeUpdate()},M=({detail:t})=>{e.onError&&e.onError({error:t.error,playerType:t.playerType,isFatal:t.isFatal,errorType:t.errorType})},I=()=>{e.onResolutionNotFound&&e.onResolutionNotFound()},L=e=>{t.current&&(t.current[e](rT.AVAILABLE_PLAYER_TYPES_UPDATED,b),t.current[e](rT.PLAYBACK_STATE_CHANGED,E),t.current[e](rT.VIDEO_PLAYBACK_STATE_CHANGED,T),t.current[e](rT.RESOLUTIONS_AVAILABLE,A),t.current[e](rT.RESOLUTION_SWITCHED,P),t.current[e](rT.UPDATE_PLAYER_RESOLUTION,S),t.current[e](rT.MODULE_LOADING_STATE_CHANGED,C),t.current[e](rT.PLAYING,R),t.current[e](rT.ERROR,M),t.current[e](rT.TIME_UPDATE,O),t.current[e](rT.RESOLUTION_NOT_FOUND,I),t.current[e](rT.BROADCAST_SUPPORTED_CHANGE,w))};return v(f).useEffect(()=>{if(t.current)return L("on"),()=>{L("off")}},[t.current,I]),(0,f.useEffect)(()=>{let{isPlaying:t}=m;t&&e.onPlaying&&e.onPlaying()},[m]),{playerRef:t,availablePlayerTypes:l,playbackState:c,playbackStartType:h,videoPlaybackState:m.state,abrPolicy:r,smoothQualityChangeSupported:n,resolutions:i,isPlaying:m.isPlaying,isLoading:m.isLoading,isErrored:m.isErrored,isModuleLoading:p,version:iC,currentResolution:o}},iw=({videoElement:e,playerType:t,HLSStreamUrl:r,WebRTCSignallingUrl:n,WebRTCStreamId:i,WebRTCPublishCustomData:s,WebRTCACLToken:o="token",NativeStreamURL:a,MediaStream:l,isABREnabled:u,playerRef:c,volume:d,playerConfig:h,children:p,WebRTCQuality:g,abrPresets:m,appKey:y,metricsCollectionEndpoint:b,metricsProjectId:E,abTests:S,abTestsSupport:C,quality:T,qualityBitrate:A,additionalMetricFields:P={}})=>{let R=v(f).useRef(null),[w,O]=v(f).useState({});v(f).useEffect(()=>{O({HLSStreamUrl:r,WebRTCSignallingUrl:n,WebRTCPublishCustomData:s,WebRTCStreamId:i,WebRTCACLToken:o,NativeStreamURL:a,MediaStream:l})},[r,n,s,i,o,a,l]),v(f).useEffect(()=>{R.current?.setStreamConfig(w)},[w]);let M=t===rq.NATIVE,I=v(f).useCallback(()=>{R.current&&e&&t&&(M&&(u?R.current.enableAbr():R.current.disableAbr()),S&&R.current.setAbTests(S),C&&R.current?.setAbTestsSupport(C),h&&R.current.setConfig(h),y&&R.current.setAppKey(y),R.current.setVideoElement(e),R.current.setStreamConfig(w),R.current.setPlayerType(t),m&&R.current?.setAbrResolutions(m.filter(e=>!e.name.includes("blurred"))),g&&!M&&R.current?.setResolutionByName(g))},[R.current,e,t,u,m,y]);v(f).useEffect(()=>{let r=!1;!(!e||!t||[rq.BROADCAST,rq.WEBRTC].includes(t)&&!y)&&!R.current&&(!R.current&&(r=!0,R.current=new rD,c&&(c.current=R.current)),I(),r&&R.current?.start())},[R.current,e,t,m,u,y]),v(f).useEffect(()=>{R.current?.setVolume(d)},[d]);let L=v(f).useCallback(()=>{let e=navigator.connection;e&&(P.reportedDownlink=e.downlink,P.reportedRTT=e.rtt,P.reportedNetworkType=e.type),R.current?.setAdditionalMetricsFields(P)},[P,R.current]);return v(f).useEffect(()=>{L()},[P]),v(f).useEffect(()=>()=>{R.current?.destroy()},[]),v(f).useEffect(()=>{h&&R?.current?.setConfig(h)},[h]),v(f).useEffect(()=>{t&&R.current?.setPlayerType(t)},[t]),v(f).useEffect(()=>{b&&E&&c?.current&&c.current?.configureMetrics(b,E)},[c?.current,E,b]),v(f).useEffect(()=>{e&&R.current?.setVideoElement(e)},[e]),v(f).useEffect(()=>{m&&R.current?.setAbrResolutions(m.filter(e=>!e.name.includes("blurred")))},[m]),v(f).useEffect(()=>{y&&R.current?.setAppKey(y)},[y]),v(f).useEffect(()=>{S&&R.current?.setAbTests(S)},[S]),v(f).useEffect(()=>{C&&R.current?.setAbTestsSupport(C)},[C]),v(f).useEffect(()=>{R.current&&(T?R.current.setResolutionByName(T):A?R.current.setResolutionByBitrate(A):g&&t===rq.WEBRTC&&R.current.setResolutionByName(g),u?R.current.enableAbr():R.current.disableAbr())},[u,g,T,A]),iA(L,2e3),(0,_.jsx)(_.Fragment,{children:p})},iO=e=>e?.srcObject!==void 0,iM=({videoElement:e}={})=>{let t=v(f).useRef(null),[r,n]=v(f).useState({audio:[],video:[]}),[i,s]=v(f).useState({}),[o,a]=v(f).useState(null),[l,u]=v(f).useState(!1),[c,d]=v(f).useState(null),h=async()=>{t.current&&n({audio:await t.current.getAudioInputDevices(),video:await t.current.getVideoDevices()})},_=v(f).useCallback(()=>t.current?.requestPermissions().then(()=>{u(!0),h()}),[t.current]),p=v(f).useCallback(()=>{t.current?.addEventListener(rG.MEDIA_DEVICES_UPDATED,h)},[t.current]),g=v(f).useCallback(()=>{t.current?.removeEventListener(rG.MEDIA_DEVICES_UPDATED,h)},[t.current]),m=v(f).useCallback(()=>{t.current?.destroy()},[]);return v(f).useEffect(()=>{i&&Object.keys(i).length>0&&t.current&&Object.values(i).some(e=>"object"==typeof e?!!e.deviceId||e.facingMode:!!e)&&t.current?.getMediaStream(i,{sizeThreshold:50,baseAspectRatio:1.333}).then(e=>{a(e),h()}).catch(e=>{d(e)})},[t.current,i]),v(f).useEffect(()=>{e&&(o?(iO(e)?e.srcObject=o:e.src=globalThis.URL?.createObjectURL(o),e.play()):iO(e)?e.srcObject=null:globalThis.URL?.revokeObjectURL(e.src))},[e,o]),v(f).useEffect(()=>(t.current=new iS,p(),()=>{m(),g()}),[]),{requestPermissions:_,setConstraints:s,mediaStream:o,isPermissionsRequested:l,availableVideoDevices:r.video,availableAudioDevices:r.audio,destroy:m,error:c}};let iI=null;const iL=()=>iI||(iI=document.createElement("video"));//# sourceMappingURL=main.js.map }