@agora-js/media 4.19.1 → 4.19.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AgoraRTC_N-media.esm.mjs +2 -2
- package/AgoraRTC_N-media.js +2 -2
- package/media.d.ts +53 -10
- package/package.json +3 -3
- package/rtc-sdk-media_en.d.ts +27 -3
package/AgoraRTC_N-media.esm.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AgoraWebSDK_N-v4.19.
|
|
2
|
+
* AgoraWebSDK_N-v4.19.3-0-gb2ca8ca7 Copyright AgoraInc.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import{checkValidConstrainLong as e,checkValidNumber as t,checkValidBoolean as i,checkValidEnum as r,AgoraRTCError as n,AgoraRTCErrorCode as o,isEmpty as s,EventEmitter as a,getRandomString as c,AgoraAPIName as d,AgoraAPITag as u,PromiseMutex as h,emitAsPromiseNoResponse as l,removeItemFromList as p,getParameter as f,getBrowserInfo as m,isIOS as g,isIpadOS as v,BrowserName as y,isChromeKernel as _,nextTick as T,isAboveChrome as E,isAboveFirefox as b,isAboveSafari as S,BrowserOS as k,isSafari as I,isWkWebview as w,isFirefox as A,wait as O,showElectronSelectSourceWindow as D,getElectronInstance as N,isElectron as C,isChrome as R,recursiveMerge as M,isAndroid as P,isHarmonyOS as L,detectSecureContext as x,isAndroidChromium as U,isIOS15 as V,domLoadedPromise as j,emitAsPromise as F,atom as B,runOnce as H,emitAsInvokerNoResponse as G,isIOS16 as W,isLegacyChrome as K,isEdge as z,isAboveEdge as q,isAboveOpera as Y,retryable as J,getOSWithVersion as Q,isAboveIOS15_1 as X,isInPage as Z,noop as $,hexToBytes as ee,md5 as te,isBetweenBrowser as ie,isWindows as re,elementVisibleChecker as ne,safeCloneJson as oe,isAboveIOS15_2 as se,isWechatBrowser as ae,jsonClone as ce}from"@agora-js/shared";export{isElectron}from"@agora-js/shared";import{report as de,logger as ue,AgoraRTCEventUploadType as he,apiInvoke as le}from"@agora-js/report";import pe from"axios";import"webrtc-adapter";import{inflate as fe,deflate as me}from"pako";var ge;!function(e){e.IOS_15_16_INTERRUPTION_START="ios15_16-interruption-start",e.IOS_15_16_INTERRUPTION_END="ios15_16-interruption-end",e.IOS_INTERRUPTION_START="ios-interruption-start",e.IOS_INTERRUPTION_END="ios-interruption-end",e.STATE_CHANGE="state-change"}(ge||(ge={}));var ve="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function ye(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var _e=function(e){try{return!!e()}catch(e){return!0}},Te=!_e((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})),Ee=Te,be=Function.prototype,Se=be.call,ke=Ee&&be.bind.bind(Se,Se),Ie=Ee?ke:function(e){return function(){return Se.apply(e,arguments)}},we=Ie({}.isPrototypeOf),Ae=function(e){return e&&e.Math==Math&&e},Oe=Ae("object"==typeof globalThis&&globalThis)||Ae("object"==typeof window&&window)||Ae("object"==typeof self&&self)||Ae("object"==typeof ve&&ve)||function(){return this}()||ve||Function("return this")(),De=Te,Ne=Function.prototype,Ce=Ne.apply,Re=Ne.call,Me="object"==typeof Reflect&&Reflect.apply||(De?Re.bind(Ce):function(){return Re.apply(Ce,arguments)}),Pe=Ie,Le=Pe({}.toString),xe=Pe("".slice),Ue=function(e){return xe(Le(e),8,-1)},Ve=Ue,je=Ie,Fe=function(e){if("Function"===Ve(e))return je(e)},Be="object"==typeof document&&document.all,He={all:Be,IS_HTMLDDA:void 0===Be&&void 0!==Be},Ge=He.all,We=He.IS_HTMLDDA?function(e){return"function"==typeof e||e===Ge}:function(e){return"function"==typeof e},Ke={},ze=!_e((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),qe=Te,Ye=Function.prototype.call,Je=qe?Ye.bind(Ye):function(){return Ye.apply(Ye,arguments)},Qe={},Xe={}.propertyIsEnumerable,Ze=Object.getOwnPropertyDescriptor,$e=Ze&&!Xe.call({1:2},1);Qe.f=$e?function(e){var t=Ze(this,e);return!!t&&t.enumerable}:Xe;var et,tt,it=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},rt=_e,nt=Ue,ot=Object,st=Ie("".split),at=rt((function(){return!ot("z").propertyIsEnumerable(0)}))?function(e){return"String"==nt(e)?st(e,""):ot(e)}:ot,ct=function(e){return null==e},dt=ct,ut=TypeError,ht=function(e){if(dt(e))throw ut("Can't call method on "+e);return e},lt=at,pt=ht,ft=function(e){return lt(pt(e))},mt=We,gt=He.all,vt=He.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:mt(e)||e===gt}:function(e){return"object"==typeof e?null!==e:mt(e)},yt={},_t=yt,Tt=Oe,Et=We,bt=function(e){return Et(e)?e:void 0},St=function(e,t){return arguments.length<2?bt(_t[e])||bt(Tt[e]):_t[e]&&_t[e][t]||Tt[e]&&Tt[e][t]},kt="undefined"!=typeof navigator&&String(navigator.userAgent)||"",It=Oe,wt=kt,At=It.process,Ot=It.Deno,Dt=At&&At.versions||Ot&&Ot.version,Nt=Dt&&Dt.v8;Nt&&(tt=(et=Nt.split("."))[0]>0&&et[0]<4?1:+(et[0]+et[1])),!tt&&wt&&(!(et=wt.match(/Edge\/(\d+)/))||et[1]>=74)&&(et=wt.match(/Chrome\/(\d+)/))&&(tt=+et[1]);var Ct=tt,Rt=Ct,Mt=_e,Pt=Oe.String,Lt=!!Object.getOwnPropertySymbols&&!Mt((function(){var e=Symbol();return!Pt(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&Rt&&Rt<41})),xt=Lt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ut=St,Vt=We,jt=we,Ft=Object,Bt=xt?function(e){return"symbol"==typeof e}:function(e){var t=Ut("Symbol");return Vt(t)&&jt(t.prototype,Ft(e))},Ht=String,Gt=function(e){try{return Ht(e)}catch(e){return"Object"}},Wt=We,Kt=Gt,zt=TypeError,qt=function(e){if(Wt(e))return e;throw zt(Kt(e)+" is not a function")},Yt=qt,Jt=ct,Qt=function(e,t){var i=e[t];return Jt(i)?void 0:Yt(i)},Xt=Je,Zt=We,$t=vt,ei=TypeError,ti={exports:{}},ii=Oe,ri=Object.defineProperty,ni=function(e,t){try{ri(ii,e,{value:t,configurable:!0,writable:!0})}catch(i){ii[e]=t}return t},oi="__core-js_shared__",si=Oe[oi]||ni(oi,{}),ai=si;(ti.exports=function(e,t){return ai[e]||(ai[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.31.1",mode:"pure",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.31.1/LICENSE",source:"https://github.com/zloirock/core-js"});var ci=ti.exports,di=ht,ui=Object,hi=function(e){return ui(di(e))},li=hi,pi=Ie({}.hasOwnProperty),fi=Object.hasOwn||function(e,t){return pi(li(e),t)},mi=Ie,gi=0,vi=Math.random(),yi=mi(1..toString),_i=function(e){return"Symbol("+(void 0===e?"":e)+")_"+yi(++gi+vi,36)},Ti=ci,Ei=fi,bi=_i,Si=Lt,ki=xt,Ii=Oe.Symbol,wi=Ti("wks"),Ai=ki?Ii.for||Ii:Ii&&Ii.withoutSetter||bi,Oi=function(e){return Ei(wi,e)||(wi[e]=Si&&Ei(Ii,e)?Ii[e]:Ai("Symbol."+e)),wi[e]},Di=Je,Ni=vt,Ci=Bt,Ri=Qt,Mi=function(e,t){var i,r;if("string"===t&&Zt(i=e.toString)&&!$t(r=Xt(i,e)))return r;if(Zt(i=e.valueOf)&&!$t(r=Xt(i,e)))return r;if("string"!==t&&Zt(i=e.toString)&&!$t(r=Xt(i,e)))return r;throw ei("Can't convert object to primitive value")},Pi=TypeError,Li=Oi("toPrimitive"),xi=function(e,t){if(!Ni(e)||Ci(e))return e;var i,r=Ri(e,Li);if(r){if(void 0===t&&(t="default"),i=Di(r,e,t),!Ni(i)||Ci(i))return i;throw Pi("Can't convert object to primitive value")}return void 0===t&&(t="number"),Mi(e,t)},Ui=Bt,Vi=function(e){var t=xi(e,"string");return Ui(t)?t:t+""},ji=vt,Fi=Oe.document,Bi=ji(Fi)&&ji(Fi.createElement),Hi=function(e){return Bi?Fi.createElement(e):{}},Gi=Hi,Wi=!ze&&!_e((function(){return 7!=Object.defineProperty(Gi("div"),"a",{get:function(){return 7}}).a})),Ki=ze,zi=Je,qi=Qe,Yi=it,Ji=ft,Qi=Vi,Xi=fi,Zi=Wi,$i=Object.getOwnPropertyDescriptor;Ke.f=Ki?$i:function(e,t){if(e=Ji(e),t=Qi(t),Zi)try{return $i(e,t)}catch(e){}if(Xi(e,t))return Yi(!zi(qi.f,e,t),e[t])};var er=_e,tr=We,ir=/#|\.prototype\./,rr=function(e,t){var i=or[nr(e)];return i==ar||i!=sr&&(tr(t)?er(t):!!t)},nr=rr.normalize=function(e){return String(e).replace(ir,".").toLowerCase()},or=rr.data={},sr=rr.NATIVE="N",ar=rr.POLYFILL="P",cr=rr,dr=qt,ur=Te,hr=Fe(Fe.bind),lr=function(e,t){return dr(e),void 0===t?e:ur?hr(e,t):function(){return e.apply(t,arguments)}},pr={},fr=ze&&_e((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),mr=vt,gr=String,vr=TypeError,yr=function(e){if(mr(e))return e;throw vr(gr(e)+" is not an object")},_r=ze,Tr=Wi,Er=fr,br=yr,Sr=Vi,kr=TypeError,Ir=Object.defineProperty,wr=Object.getOwnPropertyDescriptor,Ar="enumerable",Or="configurable",Dr="writable";pr.f=_r?Er?function(e,t,i){if(br(e),t=Sr(t),br(i),"function"==typeof e&&"prototype"===t&&"value"in i&&Dr in i&&!i[Dr]){var r=wr(e,t);r&&r[Dr]&&(e[t]=i.value,i={configurable:Or in i?i[Or]:r[Or],enumerable:Ar in i?i[Ar]:r[Ar],writable:!1})}return Ir(e,t,i)}:Ir:function(e,t,i){if(br(e),t=Sr(t),br(i),Tr)try{return Ir(e,t,i)}catch(e){}if("get"in i||"set"in i)throw kr("Accessors not supported");return"value"in i&&(e[t]=i.value),e};var Nr=pr,Cr=it,Rr=ze?function(e,t,i){return Nr.f(e,t,Cr(1,i))}:function(e,t,i){return e[t]=i,e},Mr=Oe,Pr=Me,Lr=Fe,xr=We,Ur=Ke.f,Vr=cr,jr=yt,Fr=lr,Br=Rr,Hr=fi,Gr=function(e){var t=function(i,r,n){if(this instanceof t){switch(arguments.length){case 0:return new e;case 1:return new e(i);case 2:return new e(i,r)}return new e(i,r,n)}return Pr(e,this,arguments)};return t.prototype=e.prototype,t},Wr=function(e,t){var i,r,n,o,s,a,c,d,u,h=e.target,l=e.global,p=e.stat,f=e.proto,m=l?Mr:p?Mr[h]:(Mr[h]||{}).prototype,g=l?jr:jr[h]||Br(jr,h,{})[h],v=g.prototype;for(o in t)r=!(i=Vr(l?o:h+(p?".":"#")+o,e.forced))&&m&&Hr(m,o),a=g[o],r&&(c=e.dontCallGetSet?(u=Ur(m,o))&&u.value:m[o]),s=r&&c?c:t[o],r&&typeof a==typeof s||(d=e.bind&&r?Fr(s,Mr):e.wrap&&r?Gr(s):f&&xr(s)?Lr(s):s,(e.sham||s&&s.sham||a&&a.sham)&&Br(d,"sham",!0),Br(g,o,d),f&&(Hr(jr,n=h+"Prototype")||Br(jr,n,{}),Br(jr[n],o,s),e.real&&v&&(i||!v[o])&&Br(v,o,s)))},Kr=Math.ceil,zr=Math.floor,qr=Math.trunc||function(e){var t=+e;return(t>0?zr:Kr)(t)},Yr=function(e){var t=+e;return t!=t||0===t?0:qr(t)},Jr=Yr,Qr=Math.max,Xr=Math.min,Zr=function(e,t){var i=Jr(e);return i<0?Qr(i+t,0):Xr(i,t)},$r=Yr,en=Math.min,tn=function(e){return e>0?en($r(e),9007199254740991):0},rn=function(e){return tn(e.length)},nn=ft,on=Zr,sn=rn,an=function(e){return function(t,i,r){var n,o=nn(t),s=sn(o),a=on(r,s);if(e&&i!=i){for(;s>a;)if((n=o[a++])!=n)return!0}else for(;s>a;a++)if((e||a in o)&&o[a]===i)return e||a||0;return!e&&-1}},cn={includes:an(!0),indexOf:an(!1)},dn=cn.includes;Wr({target:"Array",proto:!0,forced:_e((function(){return!Array(1).includes()}))},{includes:function(e){return dn(this,e,arguments.length>1?arguments[1]:void 0)}});var un=yt,hn=function(e){return un[e+"Prototype"]},ln=hn("Array").includes,pn=vt,fn=Ue,mn=Oi("match"),gn=function(e){var t;return pn(e)&&(void 0!==(t=e[mn])?!!t:"RegExp"==fn(e))},vn=TypeError,yn={};yn[Oi("toStringTag")]="z";var _n="[object z]"===String(yn),Tn=_n,En=We,bn=Ue,Sn=Oi("toStringTag"),kn=Object,In="Arguments"==bn(function(){return arguments}()),wn=Tn?bn:function(e){var t,i,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=function(e,t){try{return e[t]}catch(e){}}(t=kn(e),Sn))?i:In?bn(t):"Object"==(r=bn(t))&&En(t.callee)?"Arguments":r},An=wn,On=String,Dn=function(e){if("Symbol"===An(e))throw TypeError("Cannot convert a Symbol value to a string");return On(e)},Nn=Oi("match"),Cn=Wr,Rn=function(e){if(gn(e))throw vn("The method doesn't accept regular expressions");return e},Mn=ht,Pn=Dn,Ln=function(e){var t=/./;try{"/./"[e](t)}catch(i){try{return t[Nn]=!1,"/./"[e](t)}catch(e){}}return!1},xn=Ie("".indexOf);Cn({target:"String",proto:!0,forced:!Ln("includes")},{includes:function(e){return!!~xn(Pn(Mn(this)),Pn(Rn(e)),arguments.length>1?arguments[1]:void 0)}});var Un=hn("String").includes,Vn=we,jn=ln,Fn=Un,Bn=Array.prototype,Hn=String.prototype,Gn=ye((function(e){var t=e.includes;return e===Bn||Vn(Bn,e)&&t===Bn.includes?jn:"string"==typeof e||e===Hn||Vn(Hn,e)&&t===Hn.includes?Fn:t}));function Wn(e,t,i){return{sampleRate:e,stereo:t,bitrate:i}}function Kn(e,t,i,r,n){return{width:e,height:t,frameRate:i,bitrateMin:r,bitrateMax:n}}function zn(e,t,i,r,n){return{width:{max:e},height:{max:t},frameRate:i,bitrateMin:r,bitrateMax:n}}function qn(e,t){return{numSpatialLayers:e,numTemporalLayers:t}}const Yn={"90p":Kn(160,90),"90p_1":Kn(160,90),"120p":Kn(160,120,15,30,65),"120p_1":Kn(160,120,15,30,65),"120p_3":Kn(120,120,15,30,50),"120p_4":Kn(212,120),"180p":Kn(320,180,15,30,140),"180p_1":Kn(320,180,15,30,140),"180p_3":Kn(180,180,15,30,100),"180p_4":Kn(240,180,15,30,120),"240p":Kn(320,240,15,40,200),"240p_1":Kn(320,240,15,40,200),"240p_3":Kn(240,240,15,40,140),"240p_4":Kn(424,240,15,40,220),"360p":Kn(640,360,15,80,400),"360p_1":Kn(640,360,15,80,400),"360p_3":Kn(360,360,15,80,260),"360p_4":Kn(640,360,30,80,600),"360p_6":Kn(360,360,30,80,400),"360p_7":Kn(480,360,15,80,320),"360p_8":Kn(480,360,30,80,490),"360p_9":Kn(640,360,15,80,800),"360p_10":Kn(640,360,24,80,800),"360p_11":Kn(640,360,24,80,1e3),"480p":Kn(640,480,15,100,500),"480p_1":Kn(640,480,15,100,500),"480p_2":Kn(640,480,30,100,1e3),"480p_3":Kn(480,480,15,100,400),"480p_4":Kn(640,480,30,100,750),"480p_6":Kn(480,480,30,100,600),"480p_8":Kn(848,480,15,100,610),"480p_9":Kn(848,480,30,100,930),"480p_10":Kn(640,480,10,100,400),"720p":Kn(1280,720,15,120,1130),"720p_1":Kn(1280,720,15,120,1130),"720p_2":Kn(1280,720,30,120,2e3),"720p_3":Kn(1280,720,30,120,1710),"720p_5":Kn(960,720,15,120,910),"720p_6":Kn(960,720,30,120,1380),"1080p":Kn(1920,1080,15,120,2080),"1080p_1":Kn(1920,1080,15,120,2080),"1080p_2":Kn(1920,1080,30,120,3e3),"1080p_3":Kn(1920,1080,30,120,3150),"1080p_5":Kn(1920,1080,60,120,4780),"1440p":Kn(2560,1440,30,120,4850),"1440p_1":Kn(2560,1440,30,120,4850),"1440p_2":Kn(2560,1440,60,120,7350),"4k":Kn(3840,2160,30,120,8910),"4k_1":Kn(3840,2160,30,120,8910),"4k_3":Kn(3840,2160,60,120,13500)},Jn={"480p":zn(640,480,5),"480p_1":zn(640,480,5),"480p_2":zn(640,480,30),"480p_3":zn(640,480,15),"720p":zn(1280,720,5),"720p_1":zn(1280,720,5),"720p_2":zn(1280,720,30),"720p_3":zn(1280,720,15),"1080p":zn(1920,1080,5),"1080p_1":zn(1920,1080,5),"1080p_2":zn(1920,1080,30),"1080p_3":zn(1920,1080,15)},Qn={"1SL1TL":qn(1,1),"3SL3TL":qn(3,3),"2SL3TL":qn(2,3)};function Xn(e){return e||(e="480p_1"),"string"==typeof e?Object.assign({},Yn[e]):e}function Zn(e){return"string"==typeof e?Object.assign({},Jn[e]):e}function $n(e){return"string"==typeof e?Object.assign({},Qn[e]):e}const eo={speech_low_quality:Wn(16e3,!1),speech_standard:Wn(32e3,!1,18),music_standard:Wn(48e3,!1),standard_stereo:Wn(48e3,!0,56),high_quality:Wn(48e3,!1,128),high_quality_stereo:Wn(48e3,!0,192)};function to(e){return"string"==typeof e?Object.assign({},eo[e]):e}const io=[];function ro(e){Gn(io).call(io,e)||io.push(e)}function no(e){const t=io.indexOf(e);-1!==t&&io.splice(t,1)}function oo(i){return e(i.width,"config.width"),e(i.height,"config.height"),void 0!==i.frameRate&&e(i.frameRate,"config.frameRate"),void 0!==i.bitrateMax&&t(i.bitrateMax,"config.bitrateMax"),void 0!==i.bitrateMin&&t(i.bitrateMin,"config.bitrateMin"),!0}function so(e){return void 0!==e.sampleRate&&t(e.sampleRate,"config.sampleRate",0,96e3,!0),void 0!==e.sampleSize&&t(e.sampleRate,"config.sampleSize",0,128,!0),void 0!==e.stereo&&i(e.stereo,"config.stereo"),void 0!==e.bitrate&&t(e.bitrate,"config.bitrate",0,1e4,!1),!0}function ao(e){return"string"==typeof e?r(e,"profile",Object.keys(Yn)):oo(e),!0}function co(e){return"string"==typeof e?r(e,"profile",Object.keys(eo)):so(e),!0}function uo(e){return r(e,"mediaSource",["screen","window","application"]),!0}var ho,lo,po,fo,mo,go,vo,yo,_o,To;function Eo(i){if(!i)throw new n(o.INVALID_PARAMS);return s(i.width)||e(i.width,"streamParameter.width"),s(i.height)||e(i.height,"streamParameter.height"),s(i.framerate)||e(i.framerate,"streamParameter.framerate"),s(i.bitrate)||t(i.bitrate,"streamParameter.bitrate"),!0}!function(e){e.NEED_RENEGOTIATE="@need_renegotiate",e.NEED_REPLACE_TRACK="@need_replace_track",e.NEED_CLOSE="@need_close",e.NEED_ENABLE_TRACK="@need_enable_track",e.NEED_DISABLE_TRACK="@need_disable_track",e.NEED_SESSION_ID="@need_sid",e.SET_OPTIMIZATION_MODE="@set_optimization_mode",e.GET_STATS="@get_stats",e.GET_LOW_VIDEO_TRACK="@get_low_video_track",e.NEED_RESET_REMOTE_SDP="@need_reset_remote_sdp",e.NEED_UPDATE_VIDEO_ENCODER="@need_update_video_encoder",e.NEED_MUTE_TRACK="@need_mute_track",e.NEED_UNMUTE_TRACK="@need_unmute_track"}(ho||(ho={})),function(e){e.SCREEN_TRACK="screen_track",e.CUSTOM_TRACK="custome_track",e.LOW_STREAM="low_stream"}(lo||(lo={})),function(e){e[e.HIGH_STREAM=0]="HIGH_STREAM",e[e.LOW_STREAM=1]="LOW_STREAM"}(po||(po={})),function(e){e[e.HIGH_STREAM=0]="HIGH_STREAM",e[e.LOW_STREAM=1]="LOW_STREAM"}(fo||(fo={})),function(e){e[e.DISABLE=0]="DISABLE",e[e.LOW_STREAM=1]="LOW_STREAM",e[e.AUDIO_ONLY=2]="AUDIO_ONLY"}(mo||(mo={})),function(e){e.TRANSCEIVER_UPDATED="transceiver-updated"}(go||(go={})),function(e){e.SOURCE_STATE_CHANGE="source-state-change",e.TRACK_ENDED="track-ended",e.BEAUTY_EFFECT_OVERLOAD="beauty-effect-overload",e.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status",e.CLOSED="closed"}(vo||(vo={})),function(e){e.FIRST_FRAME_DECODED="first-frame-decoded",e.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status"}(yo||(yo={})),function(e){e.AUDIO_SOURCE_STATE_CHANGE="audio_source_state_change",e.RECEIVE_TRACK_BUFFER="receive_track_buffer",e.ON_AUDIO_BUFFER="on_audio_buffer",e.UPDATE_SOURCE="update_source"}(_o||(_o={})),function(e){e.UPDATE_TRACK_SOURCE="update-track-source"}(To||(To={}));const bo={sendVolumeLevel:0,sendBitrate:0,sendBytes:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,currentPacketLossRate:0},So={sendBytes:0,sendBitrate:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,sendResolutionHeight:0,sendResolutionWidth:0,captureResolutionHeight:0,captureResolutionWidth:0,targetSendBitrate:0,totalDuration:0,totalFreezeTime:0,currentPacketLossRate:0},ko={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveLevel:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1},Io={uplinkNetworkQuality:0,downlinkNetworkQuality:0},wo={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,receiveResolutionHeight:0,receiveResolutionWidth:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1};var Ao,Oo,Do,No,Co;function Ro(e){return void 0!==e.smoothnessLevel&&t(e.smoothnessLevel,"options.smoothnessLevel",0,1,!1),void 0!==e.lighteningLevel&&t(e.lighteningLevel,"options.lighteningLevel",0,1,!1),void 0!==e.rednessLevel&&t(e.rednessLevel,"options.rednessLevel",0,1,!1),void 0!==e.lighteningContrastLevel&&r(e.lighteningContrastLevel,"options.lighteningContrastLevel",[0,1,2]),!0}!function(e){e.ON_TRACK="on_track",e.ON_NODE="on_node"}(Ao||(Ao={})),function(e){e.REQUEST_UPDATE_CONSTRAINTS="request_update_constraints",e.REQUEST_CONSTRAINTS="request_constraints"}(Oo||(Oo={})),function(e){e.IDLE="IDLE",e.INITING="INITING",e.INITEND="INITEND"}(Do||(Do={})),function(e){e.STATE_CHANGE="state_change",e.RECORDING_DEVICE_CHANGED="recordingDeviceChanged",e.PLAYOUT_DEVICE_CHANGED="playoutDeviceChanged",e.CAMERA_DEVICE_CHANGED="cameraDeviceChanged"}(No||(No={})),function(e){e.NONE="none",e.INIT="init",e.CANPLAY="canplay",e.PLAYING="playing",e.PAUSED="paused",e.SUSPEND="suspend",e.STALLED="stalled",e.WAITING="waiting",e.ERROR="error",e.DESTROYED="destroyed",e.ABORT="abort",e.ENDED="ended",e.EMPTIED="emptied",e.LOADEDDATA="loadeddata"}(Co||(Co={}));const Mo={uninit:100,none:110,init:120,loadeddata:130,canplay:200,playing:210,paused:220,suspend:300,stalled:310,waiting:320,error:330,destroyed:340,abort:350,ended:360,emptied:370};var Po;!function(e){e.OPEN="open",e.MESSAGE="message",e.CLOSE="close",e.CLOSING="closing",e.ERROR="error"}(Po||(Po={}));var Lo={exports:{}},xo=Wr,Uo=ze,Vo=pr.f;xo({target:"Object",stat:!0,forced:Object.defineProperty!==Vo,sham:!Uo},{defineProperty:Vo});var jo=yt.Object,Fo=Lo.exports=function(e,t,i){return jo.defineProperty(e,t,i)};jo.defineProperty.sham&&(Fo.sham=!0);var Bo=ye(Lo.exports),Ho=Ue,Go=Array.isArray||function(e){return"Array"==Ho(e)},Wo=TypeError,Ko=Vi,zo=pr,qo=it,Yo=function(e,t,i){var r=Ko(t);r in e?zo.f(e,r,qo(0,i)):e[r]=i},Jo=We,Qo=si,Xo=Ie(Function.toString);Jo(Qo.inspectSource)||(Qo.inspectSource=function(e){return Xo(e)});var Zo=Qo.inspectSource,$o=Ie,es=_e,ts=We,is=wn,rs=Zo,ns=function(){},os=[],ss=St("Reflect","construct"),as=/^\s*(?:class|function)\b/,cs=$o(as.exec),ds=!as.exec(ns),us=function(e){if(!ts(e))return!1;try{return ss(ns,os,e),!0}catch(e){return!1}},hs=function(e){if(!ts(e))return!1;switch(is(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return ds||!!cs(as,rs(e))}catch(e){return!0}};hs.sham=!0;var ls=!ss||es((function(){var e;return us(us.call)||!us(Object)||!us((function(){e=!0}))||e}))?hs:us,ps=Go,fs=ls,ms=vt,gs=Oi("species"),vs=Array,ys=function(e){var t;return ps(e)&&(t=e.constructor,(fs(t)&&(t===vs||ps(t.prototype))||ms(t)&&null===(t=t[gs]))&&(t=void 0)),void 0===t?vs:t},_s=function(e,t){return new(ys(e))(0===t?0:t)},Ts=_e,Es=Ct,bs=Oi("species"),Ss=Wr,ks=_e,Is=Go,ws=vt,As=hi,Os=rn,Ds=function(e){if(e>9007199254740991)throw Wo("Maximum allowed index exceeded");return e},Ns=Yo,Cs=_s,Rs=function(e){return Es>=51||!Ts((function(){var t=[];return(t.constructor={})[bs]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},Ms=Ct,Ps=Oi("isConcatSpreadable"),Ls=Ms>=51||!ks((function(){var e=[];return e[Ps]=!1,e.concat()[0]!==e})),xs=function(e){if(!ws(e))return!1;var t=e[Ps];return void 0!==t?!!t:Is(e)};Ss({target:"Array",proto:!0,arity:1,forced:!Ls||!Rs("concat")},{concat:function(e){var t,i,r,n,o,s=As(this),a=Cs(s,0),c=0;for(t=-1,r=arguments.length;t<r;t++)if(xs(o=-1===t?s:arguments[t]))for(n=Os(o),Ds(c+n),i=0;i<n;i++,c++)i in o&&Ns(a,c,o[i]);else Ds(c+1),Ns(a,c++,o);return a.length=c,a}});var Us={},Vs={},js=fi,Fs=ft,Bs=cn.indexOf,Hs=Vs,Gs=Ie([].push),Ws=function(e,t){var i,r=Fs(e),n=0,o=[];for(i in r)!js(Hs,i)&&js(r,i)&&Gs(o,i);for(;t.length>n;)js(r,i=t[n++])&&(~Bs(o,i)||Gs(o,i));return o},Ks=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],zs=Ws,qs=Ks,Ys=Object.keys||function(e){return zs(e,qs)},Js=ze,Qs=fr,Xs=pr,Zs=yr,$s=ft,ea=Ys;Us.f=Js&&!Qs?Object.defineProperties:function(e,t){Zs(e);for(var i,r=$s(t),n=ea(t),o=n.length,s=0;o>s;)Xs.f(e,i=n[s++],r[i]);return e};var ta,ia=St("document","documentElement"),ra=_i,na=ci("keys"),oa=function(e){return na[e]||(na[e]=ra(e))},sa=yr,aa=Us,ca=Ks,da=Vs,ua=ia,ha=Hi,la="prototype",pa="script",fa=oa("IE_PROTO"),ma=function(){},ga=function(e){return"<"+pa+">"+e+"</"+pa+">"},va=function(e){e.write(ga("")),e.close();var t=e.parentWindow.Object;return e=null,t},ya=function(){try{ta=new ActiveXObject("htmlfile")}catch(e){}var e,t,i;ya="undefined"!=typeof document?document.domain&&ta?va(ta):(t=ha("iframe"),i="java"+pa+":",t.style.display="none",ua.appendChild(t),t.src=String(i),(e=t.contentWindow.document).open(),e.write(ga("document.F=Object")),e.close(),e.F):va(ta);for(var r=ca.length;r--;)delete ya[la][ca[r]];return ya()};da[fa]=!0;var _a=Object.create||function(e,t){var i;return null!==e?(ma[la]=sa(e),i=new ma,ma[la]=null,i[fa]=e):i=ya(),void 0===t?i:aa.f(i,t)},Ta={},Ea=Ws,ba=Ks.concat("length","prototype");Ta.f=Object.getOwnPropertyNames||function(e){return Ea(e,ba)};var Sa={},ka=Zr,Ia=rn,wa=Yo,Aa=Array,Oa=Math.max,Da=Ue,Na=ft,Ca=Ta.f,Ra=function(e,t,i){for(var r=Ia(e),n=ka(t,r),o=ka(void 0===i?r:i,r),s=Aa(Oa(o-n,0)),a=0;n<o;n++,a++)wa(s,a,e[n]);return s.length=a,s},Ma="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];Sa.f=function(e){return Ma&&"Window"==Da(e)?function(e){try{return Ca(e)}catch(e){return Ra(Ma)}}(e):Ca(Na(e))};var Pa={};Pa.f=Object.getOwnPropertySymbols;var La=Rr,xa=function(e,t,i,r){return r&&r.enumerable?e[t]=i:La(e,t,i),e},Ua=pr,Va=function(e,t,i){return Ua.f(e,t,i)},ja={},Fa=Oi;ja.f=Fa;var Ba,Ha,Ga,Wa=yt,Ka=fi,za=ja,qa=pr.f,Ya=function(e){var t=Wa.Symbol||(Wa.Symbol={});Ka(t,e)||qa(t,e,{value:za.f(e)})},Ja=Je,Qa=St,Xa=Oi,Za=xa,$a=function(){var e=Qa("Symbol"),t=e&&e.prototype,i=t&&t.valueOf,r=Xa("toPrimitive");t&&!t[r]&&Za(t,r,(function(e){return Ja(i,this)}),{arity:1})},ec=wn,tc=_n?{}.toString:function(){return"[object "+ec(this)+"]"},ic=_n,rc=pr.f,nc=Rr,oc=fi,sc=tc,ac=Oi("toStringTag"),cc=function(e,t,i,r){if(e){var n=i?e:e.prototype;oc(n,ac)||rc(n,ac,{configurable:!0,value:t}),r&&!ic&&nc(n,"toString",sc)}},dc=We,uc=Oe.WeakMap,hc=dc(uc)&&/native code/.test(String(uc)),lc=Oe,pc=vt,fc=Rr,mc=fi,gc=si,vc=oa,yc=Vs,_c="Object already initialized",Tc=lc.TypeError,Ec=lc.WeakMap;if(hc||gc.state){var bc=gc.state||(gc.state=new Ec);bc.get=bc.get,bc.has=bc.has,bc.set=bc.set,Ba=function(e,t){if(bc.has(e))throw Tc(_c);return t.facade=e,bc.set(e,t),t},Ha=function(e){return bc.get(e)||{}},Ga=function(e){return bc.has(e)}}else{var Sc=vc("state");yc[Sc]=!0,Ba=function(e,t){if(mc(e,Sc))throw Tc(_c);return t.facade=e,fc(e,Sc,t),t},Ha=function(e){return mc(e,Sc)?e[Sc]:{}},Ga=function(e){return mc(e,Sc)}}var kc={set:Ba,get:Ha,has:Ga,enforce:function(e){return Ga(e)?Ha(e):Ba(e,{})},getterFor:function(e){return function(t){var i;if(!pc(t)||(i=Ha(t)).type!==e)throw Tc("Incompatible receiver, "+e+" required");return i}}},Ic=lr,wc=at,Ac=hi,Oc=rn,Dc=_s,Nc=Ie([].push),Cc=function(e){var t=1==e,i=2==e,r=3==e,n=4==e,o=6==e,s=7==e,a=5==e||o;return function(c,d,u,h){for(var l,p,f=Ac(c),m=wc(f),g=Ic(d,u),v=Oc(m),y=0,_=h||Dc,T=t?_(c,v):i||s?_(c,0):void 0;v>y;y++)if((a||y in m)&&(p=g(l=m[y],y,f),e))if(t)T[y]=p;else if(p)switch(e){case 3:return!0;case 5:return l;case 6:return y;case 2:Nc(T,l)}else switch(e){case 4:return!1;case 7:Nc(T,l)}return o?-1:r||n?n:T}},Rc={forEach:Cc(0),map:Cc(1),filter:Cc(2),some:Cc(3),every:Cc(4),find:Cc(5),findIndex:Cc(6),filterReject:Cc(7)},Mc=Wr,Pc=Oe,Lc=Je,xc=Ie,Uc=ze,Vc=Lt,jc=_e,Fc=fi,Bc=we,Hc=yr,Gc=ft,Wc=Vi,Kc=Dn,zc=it,qc=_a,Yc=Ys,Jc=Ta,Qc=Sa,Xc=Pa,Zc=Ke,$c=pr,ed=Us,td=Qe,id=xa,rd=Va,nd=ci,od=Vs,sd=_i,ad=Oi,cd=ja,dd=Ya,ud=$a,hd=cc,ld=kc,pd=Rc.forEach,fd=oa("hidden"),md="Symbol",gd="prototype",vd=ld.set,yd=ld.getterFor(md),_d=Object[gd],Td=Pc.Symbol,Ed=Td&&Td[gd],bd=Pc.TypeError,Sd=Pc.QObject,kd=Zc.f,Id=$c.f,wd=Qc.f,Ad=td.f,Od=xc([].push),Dd=nd("symbols"),Nd=nd("op-symbols"),Cd=nd("wks"),Rd=!Sd||!Sd[gd]||!Sd[gd].findChild,Md=Uc&&jc((function(){return 7!=qc(Id({},"a",{get:function(){return Id(this,"a",{value:7}).a}})).a}))?function(e,t,i){var r=kd(_d,t);r&&delete _d[t],Id(e,t,i),r&&e!==_d&&Id(_d,t,r)}:Id,Pd=function(e,t){var i=Dd[e]=qc(Ed);return vd(i,{type:md,tag:e,description:t}),Uc||(i.description=t),i},Ld=function(e,t,i){e===_d&&Ld(Nd,t,i),Hc(e);var r=Wc(t);return Hc(i),Fc(Dd,r)?(i.enumerable?(Fc(e,fd)&&e[fd][r]&&(e[fd][r]=!1),i=qc(i,{enumerable:zc(0,!1)})):(Fc(e,fd)||Id(e,fd,zc(1,{})),e[fd][r]=!0),Md(e,r,i)):Id(e,r,i)},xd=function(e,t){Hc(e);var i=Gc(t),r=Yc(i).concat(Fd(i));return pd(r,(function(t){Uc&&!Lc(Ud,i,t)||Ld(e,t,i[t])})),e},Ud=function(e){var t=Wc(e),i=Lc(Ad,this,t);return!(this===_d&&Fc(Dd,t)&&!Fc(Nd,t))&&(!(i||!Fc(this,t)||!Fc(Dd,t)||Fc(this,fd)&&this[fd][t])||i)},Vd=function(e,t){var i=Gc(e),r=Wc(t);if(i!==_d||!Fc(Dd,r)||Fc(Nd,r)){var n=kd(i,r);return!n||!Fc(Dd,r)||Fc(i,fd)&&i[fd][r]||(n.enumerable=!0),n}},jd=function(e){var t=wd(Gc(e)),i=[];return pd(t,(function(e){Fc(Dd,e)||Fc(od,e)||Od(i,e)})),i},Fd=function(e){var t=e===_d,i=wd(t?Nd:Gc(e)),r=[];return pd(i,(function(e){!Fc(Dd,e)||t&&!Fc(_d,e)||Od(r,Dd[e])})),r};Vc||(id(Ed=(Td=function(){if(Bc(Ed,this))throw bd("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?Kc(arguments[0]):void 0,t=sd(e),i=function(e){this===_d&&Lc(i,Nd,e),Fc(this,fd)&&Fc(this[fd],t)&&(this[fd][t]=!1),Md(this,t,zc(1,e))};return Uc&&Rd&&Md(_d,t,{configurable:!0,set:i}),Pd(t,e)})[gd],"toString",(function(){return yd(this).tag})),id(Td,"withoutSetter",(function(e){return Pd(sd(e),e)})),td.f=Ud,$c.f=Ld,ed.f=xd,Zc.f=Vd,Jc.f=Qc.f=jd,Xc.f=Fd,cd.f=function(e){return Pd(ad(e),e)},Uc&&rd(Ed,"description",{configurable:!0,get:function(){return yd(this).description}})),Mc({global:!0,constructor:!0,wrap:!0,forced:!Vc,sham:!Vc},{Symbol:Td}),pd(Yc(Cd),(function(e){dd(e)})),Mc({target:md,stat:!0,forced:!Vc},{useSetter:function(){Rd=!0},useSimple:function(){Rd=!1}}),Mc({target:"Object",stat:!0,forced:!Vc,sham:!Uc},{create:function(e,t){return void 0===t?qc(e):xd(qc(e),t)},defineProperty:Ld,defineProperties:xd,getOwnPropertyDescriptor:Vd}),Mc({target:"Object",stat:!0,forced:!Vc},{getOwnPropertyNames:jd}),ud(),hd(Td,md),od[fd]=!0;var Bd=Lt&&!!Symbol.for&&!!Symbol.keyFor,Hd=Wr,Gd=St,Wd=fi,Kd=Dn,zd=ci,qd=Bd,Yd=zd("string-to-symbol-registry"),Jd=zd("symbol-to-string-registry");Hd({target:"Symbol",stat:!0,forced:!qd},{for:function(e){var t=Kd(e);if(Wd(Yd,t))return Yd[t];var i=Gd("Symbol")(t);return Yd[t]=i,Jd[i]=t,i}});var Qd=Wr,Xd=fi,Zd=Bt,$d=Gt,eu=Bd,tu=ci("symbol-to-string-registry");Qd({target:"Symbol",stat:!0,forced:!eu},{keyFor:function(e){if(!Zd(e))throw TypeError($d(e)+" is not a symbol");if(Xd(tu,e))return tu[e]}});var iu=Ie([].slice),ru=Go,nu=We,ou=Ue,su=Dn,au=Ie([].push),cu=Wr,du=St,uu=Me,hu=Je,lu=Ie,pu=_e,fu=We,mu=Bt,gu=iu,vu=function(e){if(nu(e))return e;if(ru(e)){for(var t=e.length,i=[],r=0;r<t;r++){var n=e[r];"string"==typeof n?au(i,n):"number"!=typeof n&&"Number"!=ou(n)&&"String"!=ou(n)||au(i,su(n))}var o=i.length,s=!0;return function(e,t){if(s)return s=!1,t;if(ru(this))return t;for(var r=0;r<o;r++)if(i[r]===e)return t}}},yu=Lt,_u=String,Tu=du("JSON","stringify"),Eu=lu(/./.exec),bu=lu("".charAt),Su=lu("".charCodeAt),ku=lu("".replace),Iu=lu(1..toString),wu=/[\uD800-\uDFFF]/g,Au=/^[\uD800-\uDBFF]$/,Ou=/^[\uDC00-\uDFFF]$/,Du=!yu||pu((function(){var e=du("Symbol")();return"[null]"!=Tu([e])||"{}"!=Tu({a:e})||"{}"!=Tu(Object(e))})),Nu=pu((function(){return'"\\udf06\\ud834"'!==Tu("\udf06\ud834")||'"\\udead"'!==Tu("\udead")})),Cu=function(e,t){var i=gu(arguments),r=vu(t);if(fu(r)||void 0!==e&&!mu(e))return i[1]=function(e,t){if(fu(r)&&(t=hu(r,this,_u(e),t)),!mu(t))return t},uu(Tu,null,i)},Ru=function(e,t,i){var r=bu(i,t-1),n=bu(i,t+1);return Eu(Au,e)&&!Eu(Ou,n)||Eu(Ou,e)&&!Eu(Au,r)?"\\u"+Iu(Su(e,0),16):e};Tu&&cu({target:"JSON",stat:!0,arity:3,forced:Du||Nu},{stringify:function(e,t,i){var r=gu(arguments),n=uu(Du?Cu:Tu,null,r);return Nu&&"string"==typeof n?ku(n,wu,Ru):n}});var Mu=Pa,Pu=hi;Wr({target:"Object",stat:!0,forced:!Lt||_e((function(){Mu.f(1)}))},{getOwnPropertySymbols:function(e){var t=Mu.f;return t?t(Pu(e)):[]}}),Ya("asyncIterator"),Ya("hasInstance"),Ya("isConcatSpreadable"),Ya("iterator"),Ya("match"),Ya("matchAll"),Ya("replace"),Ya("search"),Ya("species"),Ya("split");var Lu=$a;Ya("toPrimitive"),Lu();var xu=St,Uu=cc;Ya("toStringTag"),Uu(xu("Symbol"),"Symbol"),Ya("unscopables"),cc(Oe.JSON,"JSON",!0);var Vu,ju,Fu,Bu=yt.Symbol,Hu={},Gu=ze,Wu=fi,Ku=Function.prototype,zu=Gu&&Object.getOwnPropertyDescriptor,qu=Wu(Ku,"name"),Yu={EXISTS:qu,PROPER:qu&&"something"===function(){}.name,CONFIGURABLE:qu&&(!Gu||Gu&&zu(Ku,"name").configurable)},Ju=!_e((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),Qu=fi,Xu=We,Zu=hi,$u=Ju,eh=oa("IE_PROTO"),th=Object,ih=th.prototype,rh=$u?th.getPrototypeOf:function(e){var t=Zu(e);if(Qu(t,eh))return t[eh];var i=t.constructor;return Xu(i)&&t instanceof i?i.prototype:t instanceof th?ih:null},nh=_e,oh=We,sh=vt,ah=_a,ch=rh,dh=xa,uh=Oi("iterator"),hh=!1;[].keys&&("next"in(Fu=[].keys())?(ju=ch(ch(Fu)))!==Object.prototype&&(Vu=ju):hh=!0);var lh=!sh(Vu)||nh((function(){var e={};return Vu[uh].call(e)!==e}));oh((Vu=lh?{}:ah(Vu))[uh])||dh(Vu,uh,(function(){return this}));var ph={IteratorPrototype:Vu,BUGGY_SAFARI_ITERATORS:hh},fh=ph.IteratorPrototype,mh=_a,gh=it,vh=cc,yh=Hu,_h=function(){return this},Th=Ie,Eh=qt,bh=We,Sh=String,kh=TypeError,Ih=function(e,t,i){try{return Th(Eh(Object.getOwnPropertyDescriptor(e,t)[i]))}catch(e){}},wh=yr,Ah=function(e){if("object"==typeof e||bh(e))return e;throw kh("Can't set "+Sh(e)+" as a prototype")},Oh=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,i={};try{(e=Ih(Object.prototype,"__proto__","set"))(i,[]),t=i instanceof Array}catch(e){}return function(i,r){return wh(i),Ah(r),t?e(i,r):i.__proto__=r,i}}():void 0),Dh=Wr,Nh=Je,Ch=Yu,Rh=function(e,t,i,r){var n=t+" Iterator";return e.prototype=mh(fh,{next:gh(+!r,i)}),vh(e,n,!1,!0),yh[n]=_h,e},Mh=rh,Ph=cc,Lh=xa,xh=Hu,Uh=ph,Vh=Ch.PROPER,jh=Uh.BUGGY_SAFARI_ITERATORS,Fh=Oi("iterator"),Bh="keys",Hh="values",Gh="entries",Wh=function(){return this},Kh=function(e,t,i,r,n,o,s){Rh(i,t,r);var a,c,d,u=function(e){if(e===n&&m)return m;if(!jh&&e in p)return p[e];switch(e){case Bh:case Hh:case Gh:return function(){return new i(this,e)}}return function(){return new i(this)}},h=t+" Iterator",l=!1,p=e.prototype,f=p[Fh]||p["@@iterator"]||n&&p[n],m=!jh&&f||u(n),g="Array"==t&&p.entries||f;if(g&&(a=Mh(g.call(new e)))!==Object.prototype&&a.next&&(Ph(a,h,!0,!0),xh[h]=Wh),Vh&&n==Hh&&f&&f.name!==Hh&&(l=!0,m=function(){return Nh(f,this)}),n)if(c={values:u(Hh),keys:o?m:u(Bh),entries:u(Gh)},s)for(d in c)(jh||l||!(d in p))&&Lh(p,d,c[d]);else Dh({target:t,proto:!0,forced:jh||l},c);return s&&p[Fh]!==m&&Lh(p,Fh,m,{name:n}),xh[t]=m,c},zh=function(e,t){return{value:e,done:t}},qh=ft,Yh=Hu,Jh=kc;pr.f;var Qh=Kh,Xh=zh,Zh="Array Iterator",$h=Jh.set,el=Jh.getterFor(Zh);Qh(Array,"Array",(function(e,t){$h(this,{type:Zh,target:qh(e),index:0,kind:t})}),(function(){var e=el(this),t=e.target,i=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,Xh(void 0,!0)):Xh("keys"==i?r:"values"==i?t[r]:[r,t[r]],!1)}),"values"),Yh.Arguments=Yh.Array;var tl={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},il=Oe,rl=wn,nl=Rr,ol=Hu,sl=Oi("toStringTag");for(var al in tl){var cl=il[al],dl=cl&&cl.prototype;dl&&rl(dl)!==sl&&nl(dl,sl,al),ol[al]=ol.Array}var ul=Bu,hl=Oi,ll=pr.f,pl=hl("metadata"),fl=Function.prototype;void 0===fl[pl]&&ll(fl,pl,{value:null}),Ya("dispose"),Ya("metadata");var ml=ul;Ya("asyncDispose");var gl=Ie,vl=St("Symbol"),yl=vl.keyFor,_l=gl(vl.prototype.valueOf),Tl=vl.isRegisteredSymbol||function(e){try{return void 0!==yl(_l(e))}catch(e){return!1}};Wr({target:"Symbol",stat:!0},{isRegisteredSymbol:Tl});for(var El=ci,bl=St,Sl=Ie,kl=Bt,Il=Oi,wl=bl("Symbol"),Al=wl.isWellKnownSymbol,Ol=bl("Object","getOwnPropertyNames"),Dl=Sl(wl.prototype.valueOf),Nl=El("wks"),Cl=0,Rl=Ol(wl),Ml=Rl.length;Cl<Ml;Cl++)try{var Pl=Rl[Cl];kl(wl[Pl])&&Il(Pl)}catch(e){}var Ll=function(e){if(Al&&Al(e))return!0;try{for(var t=Dl(e),i=0,r=Ol(Nl),n=r.length;i<n;i++)if(Nl[r[i]]==t)return!0}catch(e){}return!1};Wr({target:"Symbol",stat:!0,forced:!0},{isWellKnownSymbol:Ll}),Ya("matcher"),Ya("observable"),Wr({target:"Symbol",stat:!0,name:"isRegisteredSymbol"},{isRegistered:Tl}),Wr({target:"Symbol",stat:!0,name:"isWellKnownSymbol",forced:!0},{isWellKnown:Ll}),Ya("metadataKey"),Ya("patternMatch"),Ya("replaceAll");var xl=ye(ml),Ul=Ie,Vl=Yr,jl=Dn,Fl=ht,Bl=Ul("".charAt),Hl=Ul("".charCodeAt),Gl=Ul("".slice),Wl=function(e){return function(t,i){var r,n,o=jl(Fl(t)),s=Vl(i),a=o.length;return s<0||s>=a?e?"":void 0:(r=Hl(o,s))<55296||r>56319||s+1===a||(n=Hl(o,s+1))<56320||n>57343?e?Bl(o,s):r:e?Gl(o,s,s+2):n-56320+(r-55296<<10)+65536}},Kl={codeAt:Wl(!1),charAt:Wl(!0)}.charAt,zl=Dn,ql=kc,Yl=Kh,Jl=zh,Ql="String Iterator",Xl=ql.set,Zl=ql.getterFor(Ql);Yl(String,"String",(function(e){Xl(this,{type:Ql,string:zl(e),index:0})}),(function(){var e,t=Zl(this),i=t.string,r=t.index;return r>=i.length?Jl(void 0,!0):(e=Kl(i,r),t.index+=e.length,Jl(e,!1))}));var $l=ye(ja.f("iterator"));function ep(e){return ep="function"==typeof xl&&"symbol"==typeof $l?function(e){return typeof e}:function(e){return e&&"function"==typeof xl&&e.constructor===xl&&e!==xl.prototype?"symbol":typeof e},ep(e)}var tp=ye(ja.f("toPrimitive"));function ip(e){var t=function(e,t){if("object"!==ep(e)||null===e)return e;var i=e[tp];if(void 0!==i){var r=i.call(e,t||"default");if("object"!==ep(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===ep(t)?t:String(t)}function rp(e,t,i){return(t=ip(t))in e?Bo(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var np=St,op=Ta,sp=Pa,ap=yr,cp=Ie([].concat),dp=np("Reflect","ownKeys")||function(e){var t=op.f(ap(e)),i=sp.f;return i?cp(t,i(e)):t},up=fi,hp=dp,lp=Ke,pp=pr,fp=vt,mp=Rr,gp=Error,vp=Ie("".replace),yp=String(gp("zxcasd").stack),_p=/\n\s*at [^:]*:[^\n]*/,Tp=_p.test(yp),Ep=it,bp=!_e((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",Ep(1,7)),7!==e.stack)})),Sp=Rr,kp=function(e,t){if(Tp&&"string"==typeof e&&!gp.prepareStackTrace)for(;t--;)e=vp(e,_p,"");return e},Ip=bp,wp=Error.captureStackTrace,Ap=Hu,Op=Oi("iterator"),Dp=Array.prototype,Np=wn,Cp=Qt,Rp=ct,Mp=Hu,Pp=Oi("iterator"),Lp=function(e){if(!Rp(e))return Cp(e,Pp)||Cp(e,"@@iterator")||Mp[Np(e)]},xp=Je,Up=qt,Vp=yr,jp=Gt,Fp=Lp,Bp=TypeError,Hp=Je,Gp=yr,Wp=Qt,Kp=lr,zp=Je,qp=yr,Yp=Gt,Jp=function(e){return void 0!==e&&(Ap.Array===e||Dp[Op]===e)},Qp=rn,Xp=we,Zp=function(e,t){var i=arguments.length<2?Fp(e):t;if(Up(i))return Vp(xp(i,e));throw Bp(jp(e)+" is not iterable")},$p=Lp,ef=function(e,t,i){var r,n;Gp(e);try{if(!(r=Wp(e,"return"))){if("throw"===t)throw i;return i}r=Hp(r,e)}catch(e){n=!0,r=e}if("throw"===t)throw i;if(n)throw r;return Gp(r),i},tf=TypeError,rf=function(e,t){this.stopped=e,this.result=t},nf=rf.prototype,of=function(e,t,i){var r,n,o,s,a,c,d,u=i&&i.that,h=!(!i||!i.AS_ENTRIES),l=!(!i||!i.IS_RECORD),p=!(!i||!i.IS_ITERATOR),f=!(!i||!i.INTERRUPTED),m=Kp(t,u),g=function(e){return r&&ef(r,"normal",e),new rf(!0,e)},v=function(e){return h?(qp(e),f?m(e[0],e[1],g):m(e[0],e[1])):f?m(e,g):m(e)};if(l)r=e.iterator;else if(p)r=e;else{if(!(n=$p(e)))throw tf(Yp(e)+" is not iterable");if(Jp(n)){for(o=0,s=Qp(e);s>o;o++)if((a=v(e[o]))&&Xp(nf,a))return a;return new rf(!1)}r=Zp(e,n)}for(c=l?e.next:r.next;!(d=zp(c,r)).done;){try{a=v(d.value)}catch(e){ef(r,"throw",e)}if("object"==typeof a&&a&&Xp(nf,a))return a}return new rf(!1)},sf=Dn,af=Wr,cf=we,df=rh,uf=Oh,hf=function(e,t,i){for(var r=hp(t),n=pp.f,o=lp.f,s=0;s<r.length;s++){var a=r[s];up(e,a)||i&&up(i,a)||n(e,a,o(t,a))}},lf=_a,pf=Rr,ff=it,mf=function(e,t){fp(t)&&"cause"in t&&mp(e,"cause",t.cause)},gf=function(e,t,i,r){Ip&&(wp?wp(e,t):Sp(e,"stack",kp(i,r)))},vf=of,yf=function(e,t){return void 0===e?arguments.length<2?"":t:sf(e)},_f=Oi("toStringTag"),Tf=Error,Ef=[].push,bf=function(e,t){var i,r=cf(Sf,this);uf?i=uf(Tf(),r?df(this):Sf):(i=r?this:lf(Sf),pf(i,_f,"Error")),void 0!==t&&pf(i,"message",yf(t)),gf(i,bf,i.stack,1),arguments.length>2&&mf(i,arguments[2]);var n=[];return vf(e,Ef,{that:n}),pf(i,"errors",n),i};uf?uf(bf,Tf):hf(bf,Tf,{name:!0});var Sf=bf.prototype=lf(Tf.prototype,{constructor:ff(1,bf),message:ff(1,""),name:ff(1,"AggregateError")});af({global:!0,constructor:!0,arity:2},{AggregateError:bf});var kf,If,wf,Af,Of="undefined"!=typeof process&&"process"==Ue(process),Df=St,Nf=Va,Cf=ze,Rf=Oi("species"),Mf=we,Pf=TypeError,Lf=ls,xf=Gt,Uf=TypeError,Vf=yr,jf=function(e){if(Lf(e))return e;throw Uf(xf(e)+" is not a constructor")},Ff=ct,Bf=Oi("species"),Hf=function(e,t){var i,r=Vf(e).constructor;return void 0===r||Ff(i=Vf(r)[Bf])?t:jf(i)},Gf=TypeError,Wf=/(?:ipad|iphone|ipod).*applewebkit/i.test(kt),Kf=Oe,zf=Me,qf=lr,Yf=We,Jf=fi,Qf=_e,Xf=ia,Zf=iu,$f=Hi,em=function(e,t){if(e<t)throw Gf("Not enough arguments");return e},tm=Wf,im=Of,rm=Kf.setImmediate,nm=Kf.clearImmediate,om=Kf.process,sm=Kf.Dispatch,am=Kf.Function,cm=Kf.MessageChannel,dm=Kf.String,um=0,hm={},lm="onreadystatechange";Qf((function(){kf=Kf.location}));var pm=function(e){if(Jf(hm,e)){var t=hm[e];delete hm[e],t()}},fm=function(e){return function(){pm(e)}},mm=function(e){pm(e.data)},gm=function(e){Kf.postMessage(dm(e),kf.protocol+"//"+kf.host)};rm&&nm||(rm=function(e){em(arguments.length,1);var t=Yf(e)?e:am(e),i=Zf(arguments,1);return hm[++um]=function(){zf(t,void 0,i)},If(um),um},nm=function(e){delete hm[e]},im?If=function(e){om.nextTick(fm(e))}:sm&&sm.now?If=function(e){sm.now(fm(e))}:cm&&!tm?(Af=(wf=new cm).port2,wf.port1.onmessage=mm,If=qf(Af.postMessage,Af)):Kf.addEventListener&&Yf(Kf.postMessage)&&!Kf.importScripts&&kf&&"file:"!==kf.protocol&&!Qf(gm)?(If=gm,Kf.addEventListener("message",mm,!1)):If=lm in $f("script")?function(e){Xf.appendChild($f("script"))[lm]=function(){Xf.removeChild(this),pm(e)}}:function(e){setTimeout(fm(e),0)});var vm={set:rm,clear:nm},ym=function(){this.head=null,this.tail=null};ym.prototype={add:function(e){var t={item:e,next:null},i=this.tail;i?i.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return null===(this.head=e.next)&&(this.tail=null),e.item}};var _m,Tm,Em,bm,Sm,km=ym,Im=/ipad|iphone|ipod/i.test(kt)&&"undefined"!=typeof Pebble,wm=/web0s(?!.*chrome)/i.test(kt),Am=Oe,Om=lr,Dm=Ke.f,Nm=vm.set,Cm=km,Rm=Wf,Mm=Im,Pm=wm,Lm=Of,xm=Am.MutationObserver||Am.WebKitMutationObserver,Um=Am.document,Vm=Am.process,jm=Am.Promise,Fm=Dm(Am,"queueMicrotask"),Bm=Fm&&Fm.value;if(!Bm){var Hm=new Cm,Gm=function(){var e,t;for(Lm&&(e=Vm.domain)&&e.exit();t=Hm.get();)try{t()}catch(e){throw Hm.head&&_m(),e}e&&e.enter()};Rm||Lm||Pm||!xm||!Um?!Mm&&jm&&jm.resolve?((bm=jm.resolve(void 0)).constructor=jm,Sm=Om(bm.then,bm),_m=function(){Sm(Gm)}):Lm?_m=function(){Vm.nextTick(Gm)}:(Nm=Om(Nm,Am),_m=function(){Nm(Gm)}):(Tm=!0,Em=Um.createTextNode(""),new xm(Gm).observe(Em,{characterData:!0}),_m=function(){Em.data=Tm=!Tm}),Bm=function(e){Hm.head||_m(),Hm.add(e)}}var Wm=Bm,Km=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}},zm=Oe.Promise,qm="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,Ym=!qm&&!Of&&"object"==typeof window&&"object"==typeof document,Jm=Oe,Qm=zm,Xm=We,Zm=cr,$m=Zo,eg=Oi,tg=Ym,ig=qm,rg=Ct,ng=Qm&&Qm.prototype,og=eg("species"),sg=!1,ag=Xm(Jm.PromiseRejectionEvent),cg=Zm("Promise",(function(){var e=$m(Qm),t=e!==String(Qm);if(!t&&66===rg)return!0;if(!ng.catch||!ng.finally)return!0;if(!rg||rg<51||!/native code/.test(e)){var i=new Qm((function(e){e(1)})),r=function(e){e((function(){}),(function(){}))};if((i.constructor={})[og]=r,!(sg=i.then((function(){}))instanceof r))return!0}return!t&&(tg||ig)&&!ag})),dg={CONSTRUCTOR:cg,REJECTION_EVENT:ag,SUBCLASSING:sg},ug={},hg=qt,lg=TypeError,pg=function(e){var t,i;this.promise=new e((function(e,r){if(void 0!==t||void 0!==i)throw lg("Bad Promise constructor");t=e,i=r})),this.resolve=hg(t),this.reject=hg(i)};ug.f=function(e){return new pg(e)};var fg,mg,gg=Wr,vg=Of,yg=Oe,_g=Je,Tg=xa,Eg=cc,bg=function(e){var t=Df(e);Cf&&t&&!t[Rf]&&Nf(t,Rf,{configurable:!0,get:function(){return this}})},Sg=qt,kg=We,Ig=vt,wg=function(e,t){if(Mf(t,e))return e;throw Pf("Incorrect invocation")},Ag=Hf,Og=vm.set,Dg=Wm,Ng=function(e,t){try{1==arguments.length?console.error(e):console.error(e,t)}catch(e){}},Cg=Km,Rg=km,Mg=kc,Pg=zm,Lg=dg,xg=ug,Ug="Promise",Vg=Lg.CONSTRUCTOR,jg=Lg.REJECTION_EVENT,Fg=Mg.getterFor(Ug),Bg=Mg.set,Hg=Pg&&Pg.prototype,Gg=Pg,Wg=Hg,Kg=yg.TypeError,zg=yg.document,qg=yg.process,Yg=xg.f,Jg=Yg,Qg=!!(zg&&zg.createEvent&&yg.dispatchEvent),Xg="unhandledrejection",Zg=function(e){var t;return!(!Ig(e)||!kg(t=e.then))&&t},$g=function(e,t){var i,r,n,o=t.value,s=1==t.state,a=s?e.ok:e.fail,c=e.resolve,d=e.reject,u=e.domain;try{a?(s||(2===t.rejection&&nv(t),t.rejection=1),!0===a?i=o:(u&&u.enter(),i=a(o),u&&(u.exit(),n=!0)),i===e.promise?d(Kg("Promise-chain cycle")):(r=Zg(i))?_g(r,i,c,d):c(i)):d(o)}catch(e){u&&!n&&u.exit(),d(e)}},ev=function(e,t){e.notified||(e.notified=!0,Dg((function(){for(var i,r=e.reactions;i=r.get();)$g(i,e);e.notified=!1,t&&!e.rejection&&iv(e)})))},tv=function(e,t,i){var r,n;Qg?((r=zg.createEvent("Event")).promise=t,r.reason=i,r.initEvent(e,!1,!0),yg.dispatchEvent(r)):r={promise:t,reason:i},!jg&&(n=yg["on"+e])?n(r):e===Xg&&Ng("Unhandled promise rejection",i)},iv=function(e){_g(Og,yg,(function(){var t,i=e.facade,r=e.value;if(rv(e)&&(t=Cg((function(){vg?qg.emit("unhandledRejection",r,i):tv(Xg,i,r)})),e.rejection=vg||rv(e)?2:1,t.error))throw t.value}))},rv=function(e){return 1!==e.rejection&&!e.parent},nv=function(e){_g(Og,yg,(function(){var t=e.facade;vg?qg.emit("rejectionHandled",t):tv("rejectionhandled",t,e.value)}))},ov=function(e,t,i){return function(r){e(t,r,i)}},sv=function(e,t,i){e.done||(e.done=!0,i&&(e=i),e.value=t,e.state=2,ev(e,!0))},av=function(e,t,i){if(!e.done){e.done=!0,i&&(e=i);try{if(e.facade===t)throw Kg("Promise can't be resolved itself");var r=Zg(t);r?Dg((function(){var i={done:!1};try{_g(r,t,ov(av,i,e),ov(sv,i,e))}catch(t){sv(i,t,e)}})):(e.value=t,e.state=1,ev(e,!1))}catch(t){sv({done:!1},t,e)}}};Vg&&(Wg=(Gg=function(e){wg(this,Wg),Sg(e),_g(fg,this);var t=Fg(this);try{e(ov(av,t),ov(sv,t))}catch(e){sv(t,e)}}).prototype,(fg=function(e){Bg(this,{type:Ug,done:!1,notified:!1,parent:!1,reactions:new Rg,rejection:!1,state:0,value:void 0})}).prototype=Tg(Wg,"then",(function(e,t){var i=Fg(this),r=Yg(Ag(this,Gg));return i.parent=!0,r.ok=!kg(e)||e,r.fail=kg(t)&&t,r.domain=vg?qg.domain:void 0,0==i.state?i.reactions.add(r):Dg((function(){$g(r,i)})),r.promise})),mg=function(){var e=new fg,t=Fg(e);this.promise=e,this.resolve=ov(av,t),this.reject=ov(sv,t)},xg.f=Yg=function(e){return e===Gg||undefined===e?new mg(e):Jg(e)}),gg({global:!0,constructor:!0,wrap:!0,forced:Vg},{Promise:Gg}),Eg(Gg,Ug,!1,!0),bg(Ug);var cv=Oi("iterator"),dv=!1;try{var uv=0,hv={next:function(){return{done:!!uv++}},return:function(){dv=!0}};hv[cv]=function(){return this},Array.from(hv,(function(){throw 2}))}catch(e){}var lv=zm,pv=function(e,t){if(!t&&!dv)return!1;var i=!1;try{var r={};r[cv]=function(){return{next:function(){return{done:i=!0}}}},e(r)}catch(e){}return i},fv=dg.CONSTRUCTOR||!pv((function(e){lv.all(e).then(void 0,(function(){}))})),mv=Je,gv=qt,vv=ug,yv=Km,_v=of;Wr({target:"Promise",stat:!0,forced:fv},{all:function(e){var t=this,i=vv.f(t),r=i.resolve,n=i.reject,o=yv((function(){var i=gv(t.resolve),o=[],s=0,a=1;_v(e,(function(e){var c=s++,d=!1;a++,mv(i,t,e).then((function(e){d||(d=!0,o[c]=e,--a||r(o))}),n)})),--a||r(o)}));return o.error&&n(o.value),i.promise}});var Tv=Wr,Ev=dg.CONSTRUCTOR;zm&&zm.prototype,Tv({target:"Promise",proto:!0,forced:Ev,real:!0},{catch:function(e){return this.then(void 0,e)}});var bv=Je,Sv=qt,kv=ug,Iv=Km,wv=of;Wr({target:"Promise",stat:!0,forced:fv},{race:function(e){var t=this,i=kv.f(t),r=i.reject,n=Iv((function(){var n=Sv(t.resolve);wv(e,(function(e){bv(n,t,e).then(i.resolve,r)}))}));return n.error&&r(n.value),i.promise}});var Av=Je,Ov=ug;Wr({target:"Promise",stat:!0,forced:dg.CONSTRUCTOR},{reject:function(e){var t=Ov.f(this);return Av(t.reject,void 0,e),t.promise}});var Dv=yr,Nv=vt,Cv=ug,Rv=function(e,t){if(Dv(e),Nv(t)&&t.constructor===e)return t;var i=Cv.f(e);return(0,i.resolve)(t),i.promise},Mv=Wr,Pv=zm,Lv=dg.CONSTRUCTOR,xv=Rv,Uv=St("Promise"),Vv=!Lv;Mv({target:"Promise",stat:!0,forced:true},{resolve:function(e){return xv(Vv&&this===Uv?Pv:this,e)}});var jv=Je,Fv=qt,Bv=ug,Hv=Km,Gv=of;Wr({target:"Promise",stat:!0,forced:fv},{allSettled:function(e){var t=this,i=Bv.f(t),r=i.resolve,n=i.reject,o=Hv((function(){var i=Fv(t.resolve),n=[],o=0,s=1;Gv(e,(function(e){var a=o++,c=!1;s++,jv(i,t,e).then((function(e){c||(c=!0,n[a]={status:"fulfilled",value:e},--s||r(n))}),(function(e){c||(c=!0,n[a]={status:"rejected",reason:e},--s||r(n))}))})),--s||r(n)}));return o.error&&n(o.value),i.promise}});var Wv=Je,Kv=qt,zv=St,qv=ug,Yv=Km,Jv=of,Qv="No one promise resolved";Wr({target:"Promise",stat:!0,forced:fv},{any:function(e){var t=this,i=zv("AggregateError"),r=qv.f(t),n=r.resolve,o=r.reject,s=Yv((function(){var r=Kv(t.resolve),s=[],a=0,c=1,d=!1;Jv(e,(function(e){var u=a++,h=!1;c++,Wv(r,t,e).then((function(e){h||d||(d=!0,n(e))}),(function(e){h||d||(h=!0,s[u]=e,--c||o(new i(s,Qv)))}))})),--c||o(new i(s,Qv))}));return s.error&&o(s.value),r.promise}});var Xv=Wr,Zv=zm,$v=_e,ey=St,ty=We,iy=Hf,ry=Rv,ny=Zv&&Zv.prototype;Xv({target:"Promise",proto:!0,real:!0,forced:!!Zv&&$v((function(){ny.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=iy(this,ey("Promise")),i=ty(e);return this.then(i?function(i){return ry(t,e()).then((function(){return i}))}:e,i?function(i){return ry(t,e()).then((function(){throw i}))}:e)}});var oy=ye(yt.Promise);function sy(e,t,i,r){var n,o=arguments.length,s=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,i,s):n(t,i))||s);return o>3&&s&&Object.defineProperty(t,i,s),s}function ay(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}class cy extends a{constructor(e,t){super(),this._ID=void 0,this._rtpTransceiver=void 0,this._lowRtpTransceiver=void 0,this._hints=[],this._isClosed=!1,this._originMediaStreamTrack=void 0,this._mediaStreamTrack=void 0,this._external={},this._ID=t||c(8,"track-"),this._originMediaStreamTrack=e,this._mediaStreamTrack=e,ro(this)}toString(){return this._ID}getTrackId(){return this._ID}getMediaStreamTrack(e){if(!e){const e=de.reportApiInvoke(null,{name:d.GET_MEDIA_STREAM_TRACK,options:[],tag:u.TRACER});this._mediaStreamTrack&&"string"==typeof this._mediaStreamTrack.label?e.onSuccess(this._mediaStreamTrack.label):e.onSuccess("")}return this._mediaStreamTrack}getRTCRtpTransceiver(e){return e===po.LOW_STREAM?this._lowRtpTransceiver:this._rtpTransceiver}getMediaStreamTrackSettings(){return this.getMediaStreamTrack(!0).getSettings()}close(){this._isClosed=!0,this._lowRtpTransceiver=void 0,this._rtpTransceiver=void 0,no(this),this.emit(vo.CLOSED)}_updateRtpTransceiver(e,t){if(t===po.LOW_STREAM){if(this._lowRtpTransceiver===e)return;this._lowRtpTransceiver=e}else{if(this._rtpTransceiver===e)return;this._rtpTransceiver=e}this.emit(go.TRANSCEIVER_UPDATED,e,t)}}class dy extends cy{get isExternalTrack(){return this._isExternalTrack}get muted(){return this._muted}get enabled(){return this._enabled}get processorContext(){return this._processorContext}set processorContext(e){this._processorContext=e}constructor(e,t){super(e,t),this._enabled=!0,this._muted=!1,this._isExternalTrack=!1,this._isClosed=!1,this._enabledMutex=void 0,this.processor=void 0,this._handleTrackEnded=()=>{this.onTrackEnded()},this._enabledMutex=new h("".concat(this.getTrackId())),e.addEventListener("ended",this._handleTrackEnded)}getTrackLabel(){var e,t;return null!==(e=null===(t=this._originMediaStreamTrack)||void 0===t?void 0:t.label)&&void 0!==e?e:""}close(){this._isClosed||(this.stop(),this._originMediaStreamTrack.stop(),this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack.stop(),this._mediaStreamTrack=null),this._originMediaStreamTrack=null,this._enabledMutex=null,ue.debug("[".concat(this.getTrackId(),"] close")),this.emit(ho.NEED_CLOSE),super.close())}async _updateOriginMediaStreamTrack(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this._isExternalTrack=i,e!==this._originMediaStreamTrack&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),t&&this._originMediaStreamTrack.stop()),e.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=e,this._muted&&(this._originMediaStreamTrack.enabled=!1),this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await l(this,ho.NEED_REPLACE_TRACK,this),this.processor&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}))}_getDefaultPlayerConfig(){return{}}onTrackEnded(){ue.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(vo.TRACK_ENDED)}stateCheck(e,t){if(ue.debug("check track state, [muted: ".concat(this._muted,", enabled: ").concat(this._enabled,"] to [").concat(e,": ").concat(t,"]")),i(t,e),this._enabled&&this._muted&&"enabled"===e&&!1===t)throw new n(o.TRACK_STATE_UNREACHABLE,"cannot set enabled while the track is muted").print("error",ue);if(!this._enabled&&!this._muted&&"muted"===e&&!0===t)throw new n(o.TRACK_STATE_UNREACHABLE,"cannot set muted while the track is disabled").print("error",ue)}getProcessorStats(){return this.processorContext.gatherStats()}getProcessorUsage(){return this.processorContext.gatherUsage()}}function uy(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}const hy=window.AudioContext||window.webkitAudioContext;let ly=null;const py=new class extends a{constructor(){super(...arguments),this.prevState=void 0,this.curState=void 0,this.currentTime=void 0,this.currentTimeStuckAt=void 0,this.interruptDetectorTrack=void 0,this.onLocalAudioTrackMute=()=>{ue.info("ios15-interruption-start"),this.emit(ge.IOS_15_16_INTERRUPTION_START)},this.onLocalAudioTrackUnmute=async()=>{ue.info("ios15-interruption-end"),"running"!==this.curState||this.duringInterruption?ue.info("ios15-interruption-end-canceled"):(ly&&await ly.suspend(),this.emit(ge.IOS_15_16_INTERRUPTION_END))}}get duringInterruption(){return"running"===this.prevState&&"interrupted"===this.curState}bindInterruptDetectorTrack(e){ue.debug("webaudio bindInterruptDetectorTrack ".concat(e.getTrackId())),this.interruptDetectorTrack||(this.interruptDetectorTrack=e,this.interruptDetectorTrack._mediaStreamTrack.onmute=this.onLocalAudioTrackMute,this.interruptDetectorTrack._mediaStreamTrack.onunmute=this.onLocalAudioTrackUnmute)}unbindInterruptDetectorTrack(e){ue.debug("webaudio unbindInterruptDetectorTrack ".concat(e.getTrackId())),this.interruptDetectorTrack&&this.interruptDetectorTrack===e&&(this.interruptDetectorTrack._mediaStreamTrack&&(this.interruptDetectorTrack._mediaStreamTrack.onmute=null,this.interruptDetectorTrack._mediaStreamTrack.onunmute=null),this.interruptDetectorTrack=void 0)}};function fy(){if(!hy)return void ue.error("your browser is not support web audio");ue.info("create audio context");const e=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?uy(Object(i),!0).forEach((function(t){rp(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):uy(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}({},f("WEBAUDIO_INIT_OPTIONS"));ue.debug("audio context init option:",JSON.stringify(e)),ly=new hy(e),py.curState=ly.state,ly.onstatechange=()=>{py.prevState=py.curState,py.curState=ly?ly.state:void 0;const{prevState:e,curState:t}=py,i="running"===t,r="interrupted"===t,n="running"===e,o="suspended"===e,s="interrupted"===e,a=m().osVersion;(g()||v())&&n&&r&&(ue.info("ios".concat(a,"-interruption-start")),py.emit(ge.IOS_INTERRUPTION_START)),(g()||v())&&(o||s)&&i&&(ue.info("ios".concat(a,"-interruption-end")),py.emit(ge.IOS_INTERRUPTION_END)),e!==t&&(ue.debug("AudioContext State Change","".concat(e,"=>").concat(t)),py.emit(ge.STATE_CHANGE))},setInterval((()=>{var e;const t=null===(e=ly)||void 0===e?void 0:e.currentTime;if(py.currentTime!==t)py.currentTimeStuckAt&&(ue.debug("AudioContext current time resume at ".concat(t)),py.currentTimeStuckAt=void 0),py.currentTime=t;else{if(t!==py.currentTimeStuckAt){de.reportApiInvoke(null,{name:"WEB_AUDIO_CURRENT_TIME_STUCK",options:{currentTime:t},tag:u.TRACER}).onSuccess(),ue.warning("AudioContext current time stuck at ".concat(t))}py.currentTimeStuckAt=t}}),5e3),async function(e){const t=["click","contextmenu","auxclick","dblclick","mousedown","mouseup","touchend","keydown","keyup"];let i,r=!1,n=!1,o=!1;function s(t){"running"===e.state?a(!1):g()||v()?"suspended"===e.state&&(a(!0),t&&e.resume().then(d,d)):"closed"!==e.state&&(a(!0),t&&e.resume().then(d,d))}function a(e){if(r!==e){r=e;for(let i=0,r=t;i<r.length;i+=1){const t=r[i];e?window.addEventListener(t,u,{capture:!0,passive:!0}):window.removeEventListener(t,u,{capture:!0,passive:!0})}}}function c(){s(!0)}function d(){s(!1)}function u(){s(!0)}function h(e){if(!o)if(i.paused)if(e){let e;l(!1),o=!0;try{e=i.play(),e?e.then(p,p):(i.addEventListener("playing",p),i.addEventListener("abort",p),i.addEventListener("error",p))}catch(e){p()}}else l(!0);else l(!1)}function l(e){if(n!==e){n=e;for(let i=0,r=t;i<r.length;i++){const t=r[i];e?window.addEventListener(t,f,{capture:!0,passive:!0}):window.removeEventListener(t,f,{capture:!0,passive:!0})}}}function p(){i.removeEventListener("playing",p),i.removeEventListener("abort",p),i.removeEventListener("error",p),o=!1,h(!1)}function f(){h(!0)}if(g()){const t=e.createMediaStreamDestination(),r=document.createElement("div");r.innerHTML="<audio x-webkit-airplay='deny'></audio>",i=r.children.item(0),i.controls=!1,i.disableRemotePlayback=!0,i.preload="auto",i.srcObject=t.stream,h(!0)}py.on(ge.STATE_CHANGE,c),s(!1)}(ly)}function my(){if(!ly){if(fy(),!ly)throw new n(o.NOT_SUPPORTED,"can not create audio context");return ly}return ly}function gy(){return!!ly}function vy(e){if(function(){if(null!==_y)return _y;const e=my(),t=e.createBufferSource(),i=e.createGain(),r=e.createGain();t.connect(i),t.connect(r),t.disconnect(i);let n=!1;try{t.disconnect(i)}catch(e){n=!0}return t.disconnect(),_y=n,n}())return;const t=e.connect,i=e.disconnect;e.connect=(i,r,n)=>{var o;return e._inputNodes||(e._inputNodes=[]),Gn(o=e._inputNodes).call(o,i)||(i instanceof AudioNode?(e._inputNodes.push(i),t.call(e,i,r,n)):t.call(e,i,r)),e},e.disconnect=(r,n,o)=>{i.call(e),r?p(e._inputNodes,r):e._inputNodes=[];for(const i of e._inputNodes)t.call(e,i)}}function yy(e){const t=my();return new oy(((i,r)=>{t.decodeAudioData(e,(e=>{i(e)}),(e=>{r(new n(o.DECODE_AUDIO_FILE_FAILED,e.toString()))}))}))}let _y=null;function Ty(e,t){let i=!1;const r=1/t;if(f("DISABLE_WEBAUDIO")){const t=window.setInterval((()=>{i?window.clearInterval(t):e(performance.now()/1e3)}),1e3*r)}else{const t=my();let n=t.createGain();n.gain.value=0,n.connect(t.destination);const o=()=>{if(i)return void(n=null);const s=t.createOscillator();s.onended=o,s.connect(n),s.start(0),s.stop(t.currentTime+r),e(t.currentTime)};o()}return()=>{i=!0}}let Ey=null;function by(){if(Ey)return Ey;const e=my();if(!e.createMediaStreamDestination)throw new n(o.NOT_SUPPORTED,"can not create silence audio track");const t=e.createBufferSource(),i=e.createBuffer(1,44100,44100);t.loop=!0,t.buffer=i;const r=e.createMediaStreamDestination();return t.connect(r),Ey=r.stream.getAudioTracks()[0],Ey}function Sy(e){for(let t=0;t<e.outputBuffer.numberOfChannels;t+=1){const i=e.outputBuffer.getChannelData(t);for(let e=0;e<i.length;e+=1)i[e]=0}return e.inputBuffer}function ky(e){const t=e.getChannelData(0);let i=0,r=0;for(let e=0;e<t.length;e+=1)0===t[e]?(i+=1,i>r&&(r=i)):i=0;return r/t.length*e.duration}const Iy={getDisplayMedia:!1,getStreamFromExtension:!1,supportUnifiedPlan:!1,supportMinBitrate:!1,supportSetRtpSenderParameters:!1,supportDualStream:!0,webAudioMediaStreamDest:!1,supportReplaceTrack:!1,supportWebGL:!1,webAudioWithAEC:!1,supportRequestFrame:!1,supportShareAudio:!1,supportDualStreamEncoding:!1,supportDataChannel:!1,supportPCSetConfiguration:!1,supportWebRTCEncodedTransform:!1,supportWebRTCInsertableStream:!1};function wy(){const e=m();Iy.getDisplayMedia=function(e){if(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)return!0;return!1}(),Iy.getStreamFromExtension=e.name===y.CHROME&&Number(e.version)>34,Iy.supportUnifiedPlan=function(){if(!window.RTCRtpTransceiver)return!1;if(!("currentDirection"in RTCRtpTransceiver.prototype))return!1;const e=new RTCPeerConnection;let t=!1;try{e.addTransceiver("audio"),t=!0}catch(e){}return e.close(),t}(),Iy.supportMinBitrate=e.name===y.CHROME||e.name===y.EDGE,Iy.supportSetRtpSenderParameters=function(){const e=m();if(!window.RTCRtpSender||!window.RTCRtpSender.prototype.setParameters||!window.RTCRtpSender.prototype.getParameters)return!1;return!!_()||(!(!I()&&!w())||e.name===y.FIREFOX&&Number(e.version)>=64)}(),e.name===y.SAFARI&&(Number(e.version)>=14?Iy.supportDualStream=!0:Iy.supportDualStream=!1),Iy.webAudioMediaStreamDest=function(){const e=m();if(e.name===y.SAFARI&&Number(e.version)<12)return!1;return!0}(),Iy.supportReplaceTrack=function(){if(!window.RTCRtpSender)return!1;if("function"==typeof RTCRtpSender.prototype.replaceTrack)return!0;return!1}(),Iy.supportWebGL="undefined"!=typeof WebGLRenderingContext,Iy.supportRequestFrame=!!window.CanvasCaptureMediaStreamTrack,_()||(Iy.webAudioWithAEC=!0),Iy.supportShareAudio=function(){const e=m();if((e.os===k.WIN_10||e.os===k.WIN_81||e.os===k.WIN_7||e.os===k.LINUX||e.os===k.MAC_OS)&&e.name===y.CHROME&&Number(e.version)>=74)return!0;return!1}(),Iy.supportDataChannel=function(){if(E(76)||b(68)||S(14))return!0;return!1}(),Iy.supportPCSetConfiguration=function(){const e=window.RTCPeerConnection;return!A()&&!!e&&e.prototype.setConfiguration instanceof Function}(),Iy.supportWebRTCEncodedTransform=function(){const e=m();return"Chrome"===e.name&&Number(e.version)>=86}(),Iy.supportWebRTCInsertableStream=function(){const e=m();return(e.name===y.CHROME||e.name===y.EDGE)&&Number(e.version)>=94&&"MediaStreamTrackGenerator"in window&&"MediaStreamTrackProcessor"in window}(),T((()=>{Iy.supportDualStreamEncoding=function(){const e=m();if(f("DISABLE_WEBAUDIO"))return!0;return"Safari"===e.name&&Number(e.version)>=14||!!("Chrome"===e.name&&/Windows/i.test(e.os||"")&&Number(e.version)>=100&&f("CHROME_DUAL_STREAM_USE_ENCODING"))}(),ue.info("browser compatibility",JSON.stringify(Iy),JSON.stringify(e))}))}function Ay(){return Iy}var Oy=qt,Dy=hi,Ny=at,Cy=rn,Ry=TypeError,My=function(e){return function(t,i,r,n){Oy(i);var o=Dy(t),s=Ny(o),a=Cy(o),c=e?a-1:0,d=e?-1:1;if(r<2)for(;;){if(c in s){n=s[c],c+=d;break}if(c+=d,e?c<0:a<=c)throw Ry("Reduce of empty array with no initial value")}for(;e?c>=0:a>c;c+=d)c in s&&(n=i(n,s[c],c,o));return n}},Py={left:My(!1),right:My(!0)},Ly=_e,xy=Py.left,Uy=function(e,t){var i=[][e];return!!i&&Ly((function(){i.call(null,t||function(){return 1},1)}))};Wr({target:"Array",proto:!0,forced:!Of&&Ct>79&&Ct<83||!Uy("reduce")},{reduce:function(e){var t=arguments.length;return xy(this,e,t,t>1?arguments[1]:void 0)}});var Vy=hn("Array").reduce,jy=we,Fy=Vy,By=Array.prototype,Hy=ye((function(e){var t=e.reduce;return e===By||jy(By,e)&&t===By.reduce?Fy:t}));class Gy{constructor(){this.context=void 0,this.analyserNode=void 0,this.sourceNode=void 0,this.context=my(),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4}updateSource(e){if(e!==this.sourceNode){if(this.sourceNode)try{this.sourceNode.disconnect(this.analyserNode)}catch(e){}this.sourceNode=e,null==e||e.connect(this.analyserNode)}}getVolumeLevel(){if(!this.sourceNode)return 0;if(!this.context||g()||v()||"running"!==this.context.state&&this.context.resume(),!this.analyserNode)return 0;const e=new Float32Array(this.analyserNode.fftSize);if(this.analyserNode.getFloatTimeDomainData)this.analyserNode.getFloatTimeDomainData(e);else{const t=new Uint8Array(this.analyserNode.fftSize);this.analyserNode.getByteTimeDomainData(t);for(let i=0;i<e.length;++i)e[i]=t[i]/128-1}const t=Hy(e).call(e,((e,t)=>e+t*t),0)/e.length;return Math.max(10*Math.log10(t)+100,0)/100}getAnalyserNode(){return this.analyserNode}rebuildAnalyser(){try{var e,t;null===(e=this.sourceNode)||void 0===e||e.disconnect(this.analyserNode),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4,null===(t=this.sourceNode)||void 0===t||t.connect(this.analyserNode)}catch(e){ue.warning("rebuild analyser node failed.")}}destroy(){this.updateSource(void 0)}}class Wy extends a{get processSourceNode(){return this.sourceNode}set processedNode(e){var t;if(!this.isDestroyed&&this._processedNode!==e){try{var i;null===(i=this.sourceNode)||void 0===i||i.disconnect(this.outputNode)}catch(e){}null===(t=this._processedNode)||void 0===t||t.disconnect(),this._processedNode=e,this.connect()}}get processedNode(){return this._processedNode}constructor(){super(),this.outputNode=void 0,this.outputTrack=void 0,this.isPlayed=!1,this.context=void 0,this.audioBufferNode=void 0,this.destNode=void 0,this.audioOutputLevel=0,this.volumeLevelAnalyser=void 0,this._processedNode=void 0,this.playNode=void 0,this.isDestroyed=!1,this.onNoAudioInput=void 0,this.isNoAudioInput=!1,this._noAudioInputCount=0,this.context=my(),this.playNode=this.context.destination,this.outputNode=this.context.createGain(),vy(this.outputNode),this.volumeLevelAnalyser=new Gy}startGetAudioBuffer(e){this.audioBufferNode||(this.audioBufferNode=this.context.createScriptProcessor(e),this.outputNode.connect(this.audioBufferNode),this.audioBufferNode.connect(this.context.destination),this.audioBufferNode.onaudioprocess=e=>{this.emit(_o.ON_AUDIO_BUFFER,Sy(e))})}stopGetAudioBuffer(){this.audioBufferNode&&(this.audioBufferNode.onaudioprocess=null,this.outputNode.disconnect(this.audioBufferNode),this.audioBufferNode=void 0)}createOutputTrack(){if(!Ay().webAudioMediaStreamDest)throw new n(o.NOT_SUPPORTED,"your browser is not support audio processor");return this.destNode&&this.outputTrack||(this.destNode=this.context.createMediaStreamDestination(),this.outputNode.connect(this.destNode),this.outputTrack=this.destNode.stream.getAudioTracks()[0]),this.outputTrack}play(e){"running"!==this.context.state&&T((()=>{py.emit("autoplay-failed")})),this.isPlayed=!0,this.playNode=e||this.context.destination,this.outputNode.connect(this.playNode)}stop(){if(this.isPlayed)try{this.outputNode.disconnect(this.playNode)}catch(e){}this.isPlayed=!1}getAccurateVolumeLevel(){return this.volumeLevelAnalyser.getVolumeLevel()}async checkHasAudioInput(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(e>5)return this.isNoAudioInput=!0,this.onNoAudioInput&&this.onNoAudioInput(),!1;g()||v()?"suspended"===this.context.state&&this.context.resume():"running"!==this.context.state&&this.context.resume();const t=this.volumeLevelAnalyser.getAnalyserNode();let i;t.getFloatTimeDomainData?(i=new Float32Array(t.fftSize),t.getFloatTimeDomainData(i)):(i=new Uint8Array(t.fftSize),t.getByteTimeDomainData(i));let r=!1;for(let e=0;e<i.length;e++)0!==i[e]&&(r=!0);return r?(this.isNoAudioInput=!1,!0):(await O(200),await this.checkHasAudioInput(e?e+1:1)&&r)}getAudioVolume(){return this.outputNode.gain.value}setVolume(e){this.outputNode.gain.setValueAtTime(e,this.context.currentTime)}destroy(){this.disconnect(),this.stop(),this.isDestroyed=!0,this.onNoAudioInput=void 0}disconnect(){var e,t;null===(e=this.processedNode)||void 0===e||e.disconnect(),null===(t=this.sourceNode)||void 0===t||t.disconnect(),this.outputNode&&this.outputNode.disconnect()}connect(){var e;this.processedNode?null===(e=this.processedNode)||void 0===e||e.connect(this.outputNode):this.sourceNode&&this.sourceNode.connect(this.outputNode);this.volumeLevelAnalyser.updateSource(this.outputNode)}}class Ky extends Wy{get isFreeze(){return!1}constructor(e,t,i){var r;if(super(),this.sourceNode=void 0,this.track=void 0,this.clonedTrack=void 0,this.audioElement=void 0,this.isCurrentTrackCloned=!1,this.isRemoteTrack=!1,this.originVolumeLevelAnalyser=void 0,this.rebuildWebAudio=async()=>{if(ue.debug("ready to rebuild web audio, state:",this.context.state),this.isNoAudioInput&&await this.checkHasAudioInput(),!this.isNoAudioInput||this.isDestroyed)return document.body.removeEventListener("click",this.rebuildWebAudio,!0),void ue.debug("rebuild web audio success, current volume status",this.getAccurateVolumeLevel());this.context.resume().then((()=>ue.info("resume success"))),ue.debug("rebuild web audio because of ios 12 bugs"),this.disconnect();const e=this.track;this.track=this.track.clone(),this.isCurrentTrackCloned?e.stop():this.isCurrentTrackCloned=!0;const t=new MediaStream([this.track]);this.sourceNode=this.context.createMediaStreamSource(t),vy(this.sourceNode),this.volumeLevelAnalyser.rebuildAnalyser();const i=this.outputNode.gain.value;this.outputNode=this.context.createGain(),this.outputNode.gain.setValueAtTime(i,this.context.currentTime),vy(this.outputNode),this.emit(_o.UPDATE_SOURCE),this.connect(),this.audioElement.srcObject=t,this.isPlayed&&this.play(this.playNode),this.checkHasAudioInput()},"audio"!==e.kind)throw new n(o.UNEXPECTED_ERROR);this.track=e;const s=new MediaStream([this.track]);if(this.isRemoteTrack=!!t,this.sourceNode=this.context.createMediaStreamSource(s),vy(this.sourceNode),i){const e=i.clone();e.enabled=!0,this.clonedTrack=e,ue.debug("create an unmuted track ".concat(e.id," from the original track ").concat(i.id," to get the volume"));const t=this.context.createMediaStreamSource(new MediaStream([e]));vy(t),this.originVolumeLevelAnalyser=new Gy,this.originVolumeLevelAnalyser.updateSource(t)}this.connect(),this.audioElement=document.createElement("audio"),this.audioElement.srcObject=s;const a=m();t&&a.os===k.IOS&&Number(null===(r=a.osVersion)||void 0===r?void 0:r.split(".")[0])<15&&(py.on(ge.STATE_CHANGE,(()=>{"suspended"===this.context.state?document.body.addEventListener("click",this.rebuildWebAudio,!0):"running"===this.context.state&&this.rebuildWebAudio()})),this.checkHasAudioInput().then((e=>{e||document.body.addEventListener("click",this.rebuildWebAudio,!0)})))}updateTrack(e){this.sourceNode.disconnect(),this.track=e,this.isCurrentTrackCloned=!1;const t=new MediaStream([e]);this.sourceNode=this.context.createMediaStreamSource(t),vy(this.sourceNode),this.processedNode||this.sourceNode.connect(this.outputNode),this.emit(_o.UPDATE_SOURCE),this.audioElement.srcObject=t}destroy(){var e;this.audioElement.srcObject=null,this.audioElement.remove(),py.off("state-change",this.rebuildWebAudio),null===(e=this.originVolumeLevelAnalyser)||void 0===e||e.destroy(),this.clonedTrack=void 0,super.destroy()}createMediaStreamSourceNode(e){return this.context.createMediaStreamSource(new MediaStream([e]))}updateOriginTrack(e){const t=e.clone();t.enabled=!0,this.clonedTrack&&(this.clonedTrack.stop(),this.clonedTrack=t),ue.debug("create an unmuted track ".concat(t.id," from the original track ").concat(e.id," to get the volume"));const i=this.context.createMediaStreamSource(new MediaStream([t]));vy(i),this.originVolumeLevelAnalyser&&this.originVolumeLevelAnalyser.updateSource(i)}getOriginVolumeLevel(){return this.originVolumeLevelAnalyser?this.originVolumeLevelAnalyser.getVolumeLevel():this.getAccurateVolumeLevel()}}async function zy(e,t,i){const r=(e,t)=>e?"number"!=typeof e?e.max||e.exact||e.ideal||e.min||t:e:t,n={audio:!!i&&{mandatory:{chromeMediaSource:"desktop"}},video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:e,maxHeight:r(t.height,1080),maxWidth:r(t.width,1920)}}};return t.frameRate&&"number"!=typeof t.frameRate?(n.video.mandatory.maxFrameRate=t.frameRate.max,n.video.mandatory.minFrameRate=t.frameRate.min):"number"==typeof t.frameRate&&(n.video.mandatory.maxFrameRate=t.frameRate),await navigator.mediaDevices.getUserMedia(n)}async function qy(e,t){const i=await Yy(e.mediaSource),{sourceId:r,audio:n}=await D(i,t);return await zy(r,e,n)}async function Yy(e){let t=["window","screen"];"application"!==e&&"window"!==e||(t=["window"]),"screen"===e&&(t=["screen"]);const i=N();if(!i)throw console.error("failed to fetch electron, please mount it to window"),new n(o.ELECTRON_IS_NULL);let r=null;try{var s;r=(null===(s=i.desktopCapturer)||void 0===s?void 0:s.getSources({types:t}))||i.ipcRenderer.invoke("DESKTOP_CAPTURER_GET_SOURCES",{types:t})}catch(e){r=null}r&&r.then||(r=new oy(((e,r)=>{i.desktopCapturer.getSources({types:t},((t,i)=>{t?r(t):e(i)}))})));try{return await r}catch(e){throw new n(o.ELECTRON_DESKTOP_CAPTURER_GET_SOURCES_ERROR,e.toString())}}function Jy(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}const Qy=new h("safari");let Xy=!1,Zy=!1;async function $y(e,t){let i=0,r=null;for(;i<2;)try{r=await e_(e,t,i>0);break}catch(e){if(e instanceof n)throw ue.error("[".concat(t,"] ").concat(e.toString())),e;const r=t_(e.name||e.code||e,e.message);if(r.code===o.MEDIA_OPTION_INVALID){ue.debug("[".concat(t,"] detect media option invalid, retry")),i+=1,await O(500);continue}throw ue.error("[".concat(t,"] ").concat(r.toString())),r}if(!r)throw new n(o.UNEXPECTED_ERROR,"can not find stream after getUserMedia");return r}async function e_(e,t,i){if(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)throw new n(o.NOT_SUPPORTED,"can not find getUserMedia");i&&(e.video&&(delete e.video.width,delete e.video.height),e.screen&&(delete e.screen.width,delete e.screen.height));const r=Ay(),s=new MediaStream;if(e.audioSource&&s.addTrack(e.audioSource),e.videoSource&&s.addTrack(e.videoSource),!e.audio&&!e.video&&!e.screen)return ue.debug("Using Video Source/ Audio Source"),s;if(e.screen)if(C())if(e.screen.sourceId){i_(s,await zy(e.screen.sourceId,e.screen,e.screenAudio))}else{i_(s,await qy(e.screen,e.screenAudio))}else if(R()&&e.screen.extensionId&&e.screen.mandatory){if(!r.getStreamFromExtension)throw new n(o.NOT_SUPPORTED,"This browser does not support screen sharing");ue.debug("[".concat(t,'] Screen access on chrome stable, looking for extension"'));const i=await(c=e.screen.extensionId,d=t,new oy(((e,t)=>{try{chrome.runtime.sendMessage(c,{getStream:!0},(i=>{if(!i||!i.streamId)return ue.error("[".concat(d,"] No response from Chrome Plugin. Plugin not installed properly"),i),void t(new n(o.CHROME_PLUGIN_NO_RESPONSE,"No response from Chrome Plugin. Plugin not installed properly"));e(i.streamId)}))}catch(e){ue.error("[".concat(d,"] AgoraRTC screensharing plugin is not accessible(").concat(c,")"),e.toString()),t(new n(o.CHROME_PLUGIN_NOT_INSTALL))}})));e.screen.mandatory.chromeMediaSourceId=i;i_(s,await navigator.mediaDevices.getUserMedia({video:{mandatory:e.screen.mandatory}}))}else if(r.getDisplayMedia){var a;e.screen.mediaSource&&uo(e.screen.mediaSource);const i={width:e.screen.width,height:e.screen.height,frameRate:e.screen.frameRate,displaySurface:null!==(a=e.screen.displaySurface)&&void 0!==a?a:"screen"===e.screen.mediaSource?"monitor":e.screen.mediaSource},{selfBrowserSurface:r,surfaceSwitching:n,systemAudio:o}=e.screen,c={selfBrowserSurface:r,surfaceSwitching:n,systemAudio:o};!r&&delete c.selfBrowserSurface,!n&&delete c.surfaceSwitching,!o&&delete c.systemAudio,ue.debug("[".concat(t,"] getDisplayMedia:"),JSON.stringify({video:i,audio:!!e.screenAudio,controls:c}));const d=await navigator.mediaDevices.getDisplayMedia(function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?Jy(Object(i),!0).forEach((function(t){rp(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Jy(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}({video:i,audio:!!e.screenAudio},c));i_(s,d)}else{if(!A())throw ue.error("[".concat(t,"] This browser does not support screenSharing")),new n(o.NOT_SUPPORTED,"This browser does not support screen sharing");{e.screen.mediaSource&&uo(e.screen.mediaSource);const i={video:{mediaSource:e.screen.mediaSource,width:e.screen.width,height:e.screen.height,frameRate:e.screen.frameRate}};ue.debug("[".concat(t,"] getUserMedia: ").concat(JSON.stringify(i)));i_(s,await navigator.mediaDevices.getUserMedia(i))}}var c,d;if(!e.video&&!e.audio)return s;let u={video:e.video,audio:e.audio},h=f("MEDIA_DEVICE_CONSTRAINTS");if(h)try{"string"==typeof h&&(h=JSON.parse(h)),u=M(u,h)}catch(e){}ue.debug("[".concat(t,"] GetUserMedia"),JSON.stringify(u)),m();let l,p=null;(I()||g()||w())&&(p=await Qy.lock());try{l=await navigator.mediaDevices.getUserMedia(u)}catch(e){throw p&&p(),e}return u.audio&&(Xy=!0),u.video&&(Zy=!0),i_(s,l),p&&p(),s}function t_(e,t){switch(e){case"Starting video failed":case"OverconstrainedError":case"TrackStartError":return new n(o.MEDIA_OPTION_INVALID,"".concat(e,": ").concat(t));case"NotFoundError":case"DevicesNotFoundError":return new n(o.DEVICE_NOT_FOUND,"".concat(e,": ").concat(t));case"NotSupportedError":return new n(o.NOT_SUPPORTED,"".concat(e,": ").concat(t));case"NotReadableError":return new n(o.NOT_READABLE,"".concat(e,": ").concat(t));case"InvalidStateError":case"NotAllowedError":case"PERMISSION_DENIED":case"PermissionDeniedError":return new n(o.PERMISSION_DENIED,"".concat(e,": ").concat(t));case"ConstraintNotSatisfiedError":return new n(o.CONSTRAINT_NOT_SATISFIED,"".concat(e,": ").concat(t));default:return ue.error("getUserMedia unexpected error",e),new n(o.UNEXPECTED_ERROR,"".concat(e,": ").concat(t))}}function i_(e,t){const i=e.getVideoTracks()[0],r=e.getAudioTracks()[0],n=t.getVideoTracks()[0],o=t.getAudioTracks()[0];o&&(r&&e.removeTrack(r),e.addTrack(o)),n&&(i&&e.removeTrack(i),e.addTrack(n))}class r_ extends a{get state(){return this._state}set state(e){e!==this._state&&(this.emit(No.STATE_CHANGE,e),this._state=e)}constructor(){super(),this._state=Do.IDLE,this.isAccessMicrophonePermission=!1,this.isAccessCameraPermission=!1,this.lastAccessMicrophonePermission=!1,this.lastAccessCameraPermission=!1,this.checkdeviceMatched=!1,this.deviceInfoMap=new Map,this.init().then((()=>{navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",this.updateDevicesInfo.bind(this)),window.setInterval((()=>{(f("ENUMERATE_DEVICES_INTERVAL")||(P()||L())&&_())&&this.updateDevicesInfo()}),f("ENUMERATE_DEVICES_INTERVAL_TIME"))})).catch((e=>ue.error(e.toString())))}async enumerateDevices(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices){return new n(o.NOT_SUPPORTED,"enumerateDevices() not supported.").throw()}const r=await navigator.mediaDevices.enumerateDevices(),s=this.checkMediaDeviceInfoIsOk(r);let a=!this.isAccessMicrophonePermission&&e,c=!this.isAccessCameraPermission&&t;s.audio&&(a=!1),s.video&&(c=!1);let d=null,u=null,h=null;if(!i&&(a||c)){if(Qy.isLocked){ue.debug("[device manager] wait GUM lock");(await Qy.lock())(),ue.debug("[device manager] GUM unlock")}if(Xy&&(a=!1,this.isAccessMicrophonePermission=!0),Zy&&(c=!1,this.isAccessCameraPermission=!0),ue.debug("[device manager] check media device permissions",e,t,a,c),a&&c){try{h=await navigator.mediaDevices.getUserMedia({audio:!0,video:!0})}catch(e){const t=t_(e.name||e.code||e,e.message);if(t.code===o.PERMISSION_DENIED)throw t;ue.warning("getUserMedia failed in getDevices",t)}this.isAccessCameraPermission=!0,this.isAccessMicrophonePermission=!0}else if(a){try{d=await navigator.mediaDevices.getUserMedia({audio:e})}catch(e){const t=t_(e.name||e.code||e,e.message);if(t.code===o.PERMISSION_DENIED)throw t;ue.warning("getUserMedia failed in getDevices",t)}this.isAccessMicrophonePermission=!0}else if(c){try{u=await navigator.mediaDevices.getUserMedia({video:t})}catch(e){const t=t_(e.name||e.code||e,e.message);if(t.code===o.PERMISSION_DENIED)throw t;ue.warning("getUserMedia failed in getDevices",t)}this.isAccessCameraPermission=!0}ue.debug("[device manager] mic permission",e,"cam permission",t)}try{const e=await navigator.mediaDevices.enumerateDevices();return d&&d.getTracks().forEach((e=>e.stop())),u&&u.getTracks().forEach((e=>e.stop())),h&&h.getTracks().forEach((e=>e.stop())),d=null,u=null,h=null,e}catch(e){d&&d.getTracks().forEach((e=>e.stop())),u&&u.getTracks().forEach((e=>e.stop())),h&&h.getTracks().forEach((e=>e.stop())),d=null,u=null,h=null;return new n(o.ENUMERATE_DEVICES_FAILED,e.toString()).throw()}}async getRecordingDevices(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return(await this.enumerateDevices(!0,!1,e)).filter((e=>"audioinput"===e.kind))}async getCamerasDevices(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return(await this.enumerateDevices(!1,!0,e)).filter((e=>"videoinput"===e.kind))}async getSpeakers(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return(await this.enumerateDevices(!0,!1,e)).filter((e=>"audiooutput"===e.kind))}searchDeviceIdByName(e){let t=null;return this.deviceInfoMap.forEach((i=>{i.device.label===e&&(t=i.device.deviceId)})),t}async getDeviceById(e){const t=(await this.enumerateDevices(!0,!0,!0)).find((t=>t.deviceId===e));if(!t)throw new n(o.DEVICE_NOT_FOUND,"deviceId: ".concat(e));return t}async init(){this.state=Do.INITING;try{await this.updateDevicesInfo(),this.state=Do.INITEND}catch(e){if(ue.warning("Device Detection functionality cannot start properly.",e.toString()),this.state=Do.IDLE,!x()){new n(o.WEB_SECURITY_RESTRICT,"Your context is limited by web security, please try using https protocol or localhost.").throw()}throw e}}async updateDevicesInfo(){const e=await this.enumerateDevices(!0,!0,!0),t=Date.now(),i=[];if(e[0]&&e[0].label&&!1===this.checkdeviceMatched){this.checkdeviceMatched=!0;const t=e.find((e=>"audioinput"===e.kind&&"default"===e.deviceId)),i=e.find((e=>"audiooutput"===e.kind&&"default"===e.deviceId));t&&i?i.groupId===t.groupId?ue.debug("[device-check] default input ".concat(t.label," and output ").concat(i.label," is the same group")):ue.warning("[device-check] default input ".concat(t.label," and output ").concat(i.label," is not the same group")):ue.debug("[device-check] default input or output not found")}const r=this.checkMediaDeviceInfoIsOk(e);if(e.forEach((e=>{if(!e.deviceId)return;const r=this.deviceInfoMap.get("".concat(e.kind,"_").concat(e.deviceId));if("ACTIVE"!==(r?r.state:"INACTIVE")){const r={initAt:t,updateAt:t,device:e,state:"ACTIVE"};this.deviceInfoMap.set("".concat(e.kind,"_").concat(e.deviceId),r),i.push(r)}r&&(r.updateAt=t)})),this.deviceInfoMap.forEach(((e,r)=>{"ACTIVE"===e.state&&e.updateAt!==t&&(e.state="INACTIVE",i.push(e))})),this.state!==Do.INITEND)return r.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),void(r.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0));i.forEach((e=>{switch(e.device.kind){case"audioinput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(No.RECORDING_DEVICE_CHANGED,e);break;case"videoinput":this.lastAccessCameraPermission&&this.isAccessCameraPermission&&this.emit(No.CAMERA_DEVICE_CHANGED,e);break;case"audiooutput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(No.PLAYOUT_DEVICE_CHANGED,e)}})),r.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),r.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0)}checkMediaDeviceInfoIsOk(e){const t=e.filter((e=>"audioinput"===e.kind)),i=e.filter((e=>"videoinput"===e.kind)),r={audio:!1,video:!1};for(const e of t)if(e.label&&e.deviceId){r.audio=!0;break}for(const e of i)if(e.label&&e.deviceId){r.video=!0;break}return r}}const n_=new r_;let o_=!1;const s_=new class extends a{constructor(){super(...arguments),this.onAutoplayFailed=void 0,this.onAudioAutoplayFailed=void 0}};function a_(){if(m(),!o_){const e=t=>{t.preventDefault(),o_=!1,U()?document.body.removeEventListener("click",e,!0):(document.body.removeEventListener("touchstart",e,!0),document.body.removeEventListener("mousedown",e,!0))};o_=!0,U()?document.body.addEventListener("click",e,!0):(document.body.addEventListener("touchstart",e,!0),document.body.addEventListener("mousedown",e,!0)),ue.info("detect media autoplay failed, document: https://docs.agora.io/cn/Voice/autoplay_policy_web_ng?platform=Web"),s_.onAutoplayFailed?s_.onAutoplayFailed():s_.onAudioAutoplayFailed?ue.warning("AgoraRTC.onAudioAutoplayFailed has been deprecated in favor of AgoraRTC.onAutoplayFailed.\n\n Please refer to the Agora document to migrate the newer API, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web ."):ue.warning("We have detected a media autoplay failed event, and found out that you haven't implemented AgoraRTC.onAutoplayFailed callback yet.\n\n It will cause audio/video element not playing automatically on some browsers without user interaction, possibly hurting user experiences.\n\n Please refer to the Agora document to properly handle autoplay failed event, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web ."),s_.emit("autoplay-failed")}}function c_(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function d_(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?c_(Object(i),!0).forEach((function(t){rp(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):c_(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function u_(e,t,i,r){if(!e)return;const n=de.getBaseInfoBySessionId(e);if(!n)return;const o=n.info,s=Date.now(),a=d_(d_({},o),{},{vid:void 0===o.vid?0:Number(o.vid),lts:s,elapse:s-n.startTime,cbRegistered:s_.onAutoplayFailed||s_.onAudioAutoplayFailed?1:-1,errorMsg:i,mediaType:t,trackId:r,extend:void 0});de.send({type:he.AUTOPLAY_FAILED,data:a},!0)}const h_=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","error"],l_=new class{constructor(){this.onAutoplayFailed=void 0,this.elementMap=new Map,this.elementStateMap=new Map,this.elementsNeedToResume=[],this.sinkIdMap=new Map,this.autoResumeAfterInterruption=()=>{Array.from(this.elementMap.entries()).forEach((e=>{let[t,i]=e;const r=this.elementStateMap.get(t),n=i.srcObject.getAudioTracks()[0];V()?n&&"live"===n.readyState&&"running"===py.curState&&(ue.debug("auto resume after interruption for iOS 15"),i.pause(),i.play()):r&&"paused"===r&&n&&"live"===n.readyState&&"running"===py.curState&&(ue.debug("auto resume after interruption for iOS"),i.play())}))},this.autoResumeAfterInterruptionOnIOS15_16=()=>{Array.from(this.elementMap.entries()).forEach((e=>{let[t,i]=e;const r=i.srcObject.getAudioTracks()[0];r&&"live"===r.readyState&&(ue.debug("auto resume after interruption inside autoResumeAfterInterruptionOnIOS15"),i.pause(),i.play())}))},this.autoResumeAudioElement(),py.on(ge.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),py.on(ge.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),py.on(ge.STATE_CHANGE,(()=>{g()&&"suspended"===py.prevState&&"running"===py.curState&&this.autoResumeAfterInterruption()}))}async setSinkID(e,t){const i=this.elementMap.get(e);if(this.sinkIdMap.set(e,t),i)try{await i.setSinkId(t)}catch(e){throw new n(o.PERMISSION_DENIED,"can not set sink id: "+e.toString())}}play(e,t,i,r){if(this.elementMap.has(t))return;const n=document.createElement("audio");n.autoplay=!0,n.srcObject=new MediaStream([e]),this.bindAudioElementEvents(t,n),this.elementMap.set(t,n),this.elementStateMap.set(t,Co.INIT),this.setVolume(t,i);const o=this.sinkIdMap.get(t);if(o)try{n.setSinkId(o).catch((e=>{ue.warning("[".concat(t,"] set sink id failed"),e.toString())}))}catch(e){ue.warning("[".concat(t,"] set sink id failed"),e.toString())}const s=n.play();s&&s.then&&s.catch((e=>{r&&u_(r,"audio",e.message,t),ue.warning("audio element play warning",e.toString()),this.elementMap.has(t)&&"NotAllowedError"===e.name&&(ue.warning("detected audio element autoplay failed"),this.elementsNeedToResume.push(n),T((()=>{this.onAutoplayFailed&&this.onAutoplayFailed(),a_()})))}))}updateTrack(e,t){const i=this.elementMap.get(e);i&&(i.srcObject=new MediaStream([t]))}isPlaying(e){return this.elementMap.has(e)&&"playing"===this.elementStateMap.get(e)}setVolume(e,t){const i=this.elementMap.get(e);i&&(t=Math.max(0,Math.min(100,t)),i.volume=t/100)}stop(e){const t=this.elementMap.get(e);if(this.sinkIdMap.delete(e),!t)return;const i=this.elementsNeedToResume.indexOf(t);this.elementsNeedToResume.splice(i,1),t.srcObject=null,t.remove(),this.elementMap.delete(e),this.elementStateMap.delete(e)}bindAudioElementEvents(e,t){h_.forEach((i=>{t.addEventListener(i,(i=>{const r=this.elementStateMap.get(e),n="pause"===i.type?"paused":i.type;if(ue.debug("[".concat(e,"] audio-element-status change ").concat(r," => ").concat(n)),"error"===i.type){const i=null==t?void 0:t.error;i&&ue.error("[".concat(e,"] media error, code: ").concat(i.code,", message: ").concat(i.message))}this.elementStateMap.set(e,n)}))}))}getPlayerState(e){return this.elementStateMap.get(e)||"uninit"}autoResumeAudioElement(){const e=()=>{this.elementsNeedToResume.forEach((e=>{e.play().then((e=>{ue.debug("Auto resume audio element success")})).catch((e=>{ue.warning("Auto resume audio element failed!",e)}))})),this.elementsNeedToResume=[]};j().then((()=>{U()?document.body.addEventListener("click",e,!0):(document.body.addEventListener("touchstart",e,!0),document.body.addEventListener("mousedown",e,!0))}))}};function p_(){return function(e,t,i){const r=i.value;return"function"==typeof r&&(i.value=function(){this._isClosed&&new n(o.INVALID_OPERATION,"[".concat(this.getTrackId(),"] cannot operate a closed track")).print("warning",ue);for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];const s=r.apply(this,t);return s instanceof oy?new oy(((e,t)=>{s.then(e).catch(t)})):s}),i}}var f_=hn("Array").values,m_=wn,g_=fi,v_=we,y_=f_,__=Array.prototype,T_={DOMTokenList:!0,NodeList:!0},E_=ye((function(e){var t=e.values;return e===__||v_(__,e)&&t===__.values||g_(T_,m_(e))?y_:t}));function b_(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function S_(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?b_(Object(i),!0).forEach((function(t){rp(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):b_(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}class k_ extends a{constructor(e){super(),this.name="VideoProcessorDestination",this.ID="0",this._source=void 0,this.videoContext=void 0,this.inputTrack=void 0,this.videoContext=e}get kind(){return"video"}get enabled(){return!0}pipe(){throw new n(o.NOT_SUPPORTED,"VideoProcessor cannot pipe to any other Processor")}unpipe(){throw new n(o.NOT_SUPPORTED,"VideoProcessor cannot unpipe to any other Processor")}enable(){}disable(){}updateInput(e){if(e.context!==this.videoContext)throw new Error("ProcessorContext passed to VideoTrack.processorDestination doesn't match it's belonging VideoTrack's context.\nProbably you are making pipeline like this:\nvideoTrack1.pipe(processor).pipe(videoTrack2.processorDestination).");e.track&&e.track!==this.inputTrack&&(this.videoContext.chained=!0,this.inputTrack=e.track,this.emit(Ao.ON_TRACK,e.track))}reset(){this.inputTrack=void 0,this.videoContext.chained=!1,this.emit(Ao.ON_TRACK,void 0)}}class I_ extends a{set chained(e){this._chained=e}get chained(){return this._chained}constructor(e,t){super(),this.constraintsMap=new Map,this.statsRegistry=[],this.usageRegistry=[],this.trackId=void 0,this.direction=void 0,this._chained=!1,this.trackId=e,this.direction=t}async getConstraints(){return await F(this,Oo.REQUEST_CONSTRAINTS)}async requestApplyConstraints(e,t){var i;return ue.info("processor ".concat(t.name," requestApplyConstraints for ").concat(this.trackId)),e&&this.constraintsMap.set(t,e),l(this,Oo.REQUEST_UPDATE_CONSTRAINTS,Array.from(E_(i=this.constraintsMap).call(i)))}async requestRevertConstraints(e){var t;if(this.constraintsMap.has(e))return ue.info("processor ".concat(e.name," requestRevertConstraints for ").concat(this.trackId)),this.constraintsMap.delete(e),l(this,Oo.REQUEST_UPDATE_CONSTRAINTS,Array.from(E_(t=this.constraintsMap).call(t)))}registerStats(e,t,i){this.statsRegistry.find((i=>i.processorID===e.ID&&i.processorName===e.name&&i.type===t))||this.statsRegistry.push({processorName:e.name,processorID:e.ID,type:t,cb:i})}unregisterStats(e,t){const i=this.statsRegistry.findIndex((i=>i.processorID===e.ID&&i.processorName===e.name&&i.type===t));-1!==i&&this.statsRegistry.splice(i,1)}gatherStats(){const e=[];for(const{processorID:t,processorName:i,type:r,cb:s}of this.statsRegistry)try{const n=s();e.push({processorID:t,processorName:i,type:r,stats:n})}catch(e){ue.error(new n(o.UNEXPECTED_ERROR,e.message))}return e}registerUsage(e,t){this.usageRegistry.find((t=>t.processorID===e.ID&&t.processorName===e.name))||this.usageRegistry.push({processorID:e.ID,processorName:e.name,cb:t})}unregisterUsage(e){const t=this.usageRegistry.findIndex((t=>t.processorID===e.ID&&t.processorName===e.name));-1!==t&&this.usageRegistry.splice(t,1)}async gatherUsage(){const e=[];if(!this.chained)return[];for(const{cb:t}of this.usageRegistry)try{let i=t();i instanceof oy&&(i=await i),e.push(S_(S_({},i),{},{direction:this.direction}))}catch(e){ue.error("gather extension usage error",e)}return e}getDirection(){return this.direction}}class w_ extends a{constructor(e){super(),this.name="AudioProcessorDestination",this.ID="0",this.inputTrack=void 0,this.inputNode=void 0,this.audioProcessorContext=void 0,this._source=void 0,this.audioProcessorContext=e}get kind(){return"audio"}get enabled(){return!0}pipe(){throw new n(o.NOT_SUPPORTED,"AudioProcessorDestination cannot pipe to any other Processor")}unpipe(){throw new n(o.NOT_SUPPORTED,"AudioProcessor cannot unpipe to any other Processor")}enable(){}disable(){}reset(){this.inputTrack=void 0,this.inputNode=void 0,this.audioProcessorContext.chained=!1,this.emit(Ao.ON_TRACK,void 0),this.emit(Ao.ON_NODE,void 0)}updateInput(e){if(e.context!==this.audioProcessorContext)throw new Error("ProcessorContext passed to AudioTrack.processorDestination doesn't match it's belonging AudioTrack's context.\n Probably you are making pipeline like this: audioTrack1.pipe(processor).pipe(audioTrack2.processorDestination).");e.track&&this.inputTrack!==e.track&&(this.audioProcessorContext.chained=!0,this.inputTrack=e.track,this.emit(Ao.ON_TRACK,this.inputTrack)),e.node&&this.inputNode!==e.node&&(this.audioProcessorContext.chained=!0,this.inputNode=e.node,this.emit(Ao.ON_NODE,this.inputNode))}}class A_ extends a{set chained(e){this._chained=e}get chained(){return this._chained}constructor(e,t,i){super(),this.constraintsMap=new Map,this.statsRegistry=[],this.audioContext=void 0,this.trackId=void 0,this.direction=void 0,this.usageRegistry=[],this._chained=!1,this.audioContext=e,this.trackId=t,this.direction=i}async getConstraints(){return F(this,Oo.REQUEST_CONSTRAINTS)}getAudioContext(){return this.audioContext}async requestApplyConstraints(e,t){var i;return ue.info("processor ".concat(t.name," requestApplyConstraints for ").concat(this.trackId)),e&&this.constraintsMap.set(t,e),l(this,Oo.REQUEST_UPDATE_CONSTRAINTS,Array.from(E_(i=this.constraintsMap).call(i)))}async requestRevertConstraints(e){var t;if(this.constraintsMap.has(e))return this.constraintsMap.delete(e),l(this,Oo.REQUEST_UPDATE_CONSTRAINTS,Array.from(E_(t=this.constraintsMap).call(t)))}registerStats(e,t,i){this.statsRegistry.find((i=>i.processorID===e.ID&&i.processorName===e.name&&i.type===t))||this.statsRegistry.push({processorName:e.name,processorID:e.ID,type:t,cb:i})}unregisterStats(e,t){const i=this.statsRegistry.findIndex((i=>i.processorID===e.ID&&i.processorName===e.name&&i.type===t));-1!==i&&this.statsRegistry.splice(i,1)}gatherStats(){const e=[];for(const{processorID:t,processorName:i,type:r,cb:s}of this.statsRegistry)try{const n=s();e.push({processorID:t,processorName:i,type:r,stats:n})}catch(e){ue.error(new n(o.UNEXPECTED_ERROR,e.message))}return e}registerUsage(e,t){this.usageRegistry.find((t=>t.processorID===e.ID&&t.processorName===e.name))||this.usageRegistry.push({processorID:e.ID,processorName:e.name,cb:t})}unregisterUsage(e){const t=this.usageRegistry.findIndex((t=>t.processorID===e.ID&&t.processorName===e.name));-1!==t&&this.usageRegistry.splice(t,1)}async gatherUsage(){const e=[];if(!this.chained)return[];for(const{cb:t}of this.usageRegistry)try{let i=t();i instanceof oy&&(i=await i),e.push(S_(S_({},i),{},{direction:this.direction}))}catch(e){ue.error("gather extension usage error",e)}return e}getDirection(){return this.direction}}class O_ extends a{get isPlayed(){return!0}get isFreeze(){return!1}constructor(){super(),this.context=void 0,this.processSourceNode=void 0,this.outputTrack=void 0,this.processedNode=void 0,this.clonedTrack=void 0,this.outputNode=void 0,this.outputNode=new D_}setVolume(){}createOutputTrack(){throw new n(o.NOT_SUPPORTED,"can not create output MediaStreamTrack when WebAudio disabled")}getOriginVolumeLevel(){return 0}getAccurateVolumeLevel(){return 0}stopGetAudioBuffer(){}startGetAudioBuffer(){}play(){}stop(){}destroy(){}updateTrack(){}updateOriginTrack(){}createMediaStreamSourceNode(){}}class D_{disconnect(){}connect(){}}let N_=null;class C_{constructor(){this.state="open",this.trigger=void 0,this.tasks=[],ue.debug("[macro-task-queue] is created."),this.trigger=window.setTimeout((()=>{this.state="closed",ue.debug("[macro-task-queue] will be closed, all remaining tasks will execute. [".concat(this.tasks.map((e=>e.key)),"]")),this.trigger=void 0,this.tasks.forEach((e=>{let{func:t}=e;return t()})),this.tasks.length=0,ue.debug("[macro-task-queue] is closed.")}))}enqueue(e,t){"closed"!==this.state&&(this.tasks.push({key:e,func:t}),ue.debug("[macro-task-queue] is queued, current queue ".concat(this.tasks.length,". ").concat("string"==typeof e?e:"")))}runTask(e){if("closed"===this.state)return;const t=this.tasks.findIndex((t=>t.key===e));if(-1!==t){const i=this.tasks.splice(t,1);ue.debug("[macro-task-queue] is unqueued, current queue ".concat(this.tasks.length,". ").concat("string"==typeof e?e:"")),i[0].func()}}release(){this.trigger&&(this.state="closed",clearTimeout(this.trigger),this.trigger=void 0,this.tasks.length=0,ue.debug("[macro-task-queue] is closed."))}}function R_(e){return function(t,i,r){var n;const o=null!==(n=r.value)&&void 0!==n?n:r.get,s=function(){N_&&"open"===N_.state&&N_.runTask(e);for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return null==o?void 0:o.apply(this,...i)};return r.value?r.value=s:r.get=s,r}}function M_(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function P_(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?M_(Object(i),!0).forEach((function(t){rp(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):M_(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}class L_ extends dy{get _source(){return this._trackSource}set _source(e){this._trackSource=e}get processorContext(){return this._processorContext}set processorContext(e){this._processorContext=e}get processorDestination(){return this._processorDestination}set processorDestination(e){this._processorDestination=e}get isPlaying(){return this._useAudioElement?l_.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"LocalAudioTrack"}constructor(e,t,i,r,n){super(e,i),this.trackMediaType="audio",this._encoderConfig=void 0,this._trackSource=void 0,this._enabled=!0,this._volume=100,this._useAudioElement=!1,this._bypassWebAudio=!1,this.processor=void 0,this._processorContext=void 0,this._processorDestination=void 0,this._getOriginVolumeLevel=void 0,this._encoderConfig=t,this._getOriginVolumeLevel=!!r;const o=()=>{this.processorContext=new A_(this._source.context,this.getTrackId(),"local"),this.processorDestination=new w_(this.processorContext),this.bindProcessorDestinationEvents(),this._source.on(_o.UPDATE_SOURCE,(()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:this.processorContext})}))},s=n&&I()&&!gy();if(f("DISABLE_WEBAUDIO")?(this._source=new O_,this._useAudioElement=!0,this._bypassWebAudio=!0):s?this._source=new O_:(this._source=new Ky(e,!1,this._getOriginVolumeLevel?e:void 0),f("LOCAL_AUDIO_TRACK_USES_WEB_AUDIO")||(this._useAudioElement=!0)),o(),!f("DISABLE_WEBAUDIO")&&s){(N_||(N_=new C_),N_).enqueue("INIT_WEBAUDIO",(()=>{this._source=new Ky(e,!1,this._getOriginVolumeLevel?e:void 0),f("LOCAL_AUDIO_TRACK_USES_WEB_AUDIO")||(this._useAudioElement=!0),o(),this.emit(To.UPDATE_TRACK_SOURCE)}))}}setVolume(e){t(e,"volume",0,1e3),this._volume=e,this._source.setVolume(e/100),this._useAudioElement&&l_.setVolume(this.getTrackId(),e);try{if(this._bypassWebAudio)return void ue.debug("[".concat(this.getTrackId(),"] setVolume returned because no pass through WebAudio."));const e=this._source.createOutputTrack();this._mediaStreamTrack!==e&&(this._mediaStreamTrack=e,l(this,ho.NEED_REPLACE_TRACK,this).then((()=>{ue.debug("[".concat(this.getTrackId(),"] replace web audio track success"))})).catch((e=>{ue.warning("[".concat(this.getTrackId(),"] replace web audio track failed"),e)})))}catch(e){}}getVolumeLevel(){return this._muted&&this.enabled&&this._getOriginVolumeLevel?this._source.getOriginVolumeLevel():this._source.getAccurateVolumeLevel()}async setPlaybackDevice(e){if(!this._useAudioElement)throw new n(o.NOT_SUPPORTED,"your browser does not support setting the audio output device");await l_.setSinkID(this.getTrackId(),e)}async setEnabled(e,t,i){return this._setEnabled(e,t,i)}async _setEnabled(e,t,i){if(!i){if(e===this._enabled)return;this.stateCheck("enabled",e)}if(ue.info("[".concat(this.getTrackId(),"] start setEnabled"),e),e){this._originMediaStreamTrack.enabled=!0;try{i||(this._enabled=!0),await l(this,ho.NEED_ENABLE_TRACK,this),ue.info("[".concat(this.getTrackId(),"] setEnabled to ").concat(e," success"))}catch(e){throw i||(this._enabled=!1),ue.error("[".concat(this.getTrackId(),"] setEnabled to true error"),e.toString()),e}}else{this._originMediaStreamTrack.enabled=!1,i||(this._enabled=!1);try{await l(this,ho.NEED_DISABLE_TRACK,this)}catch(e){throw i||(this._enabled=!0),ue.error("[".concat(this.getTrackId(),"] setEnabled to false error"),e.toString()),e}}}async setMuted(e){e!==this._muted&&(this.stateCheck("muted",e),this._muted=e,this._originMediaStreamTrack.enabled=!e,ue.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(e)),e?await l(this,ho.NEED_MUTE_TRACK,this):await l(this,ho.NEED_UNMUTE_TRACK,this))}getStats(){H((()=>{ue.warning("[deprecated] LocalAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalAudioStats instead")}),"localAudioTrackGetStatsWarning");const e=G(this,ho.GET_STATS);return e||P_({},bo)}setAudioFrameCallback(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4096;if(!e)return this._source.removeAllListeners(_o.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(t),this._source.removeAllListeners(_o.ON_AUDIO_BUFFER),this._source.on(_o.ON_AUDIO_BUFFER,(t=>e(t)))}play(){ue.debug("[".concat(this.getTrackId(),"] start audio playback")),this._useAudioElement?(ue.debug("[".concat(this.getTrackId(),"] start audio playback in element")),l_.play(this._mediaStreamTrack,this.getTrackId(),this._volume)):this._source.play()}stop(){ue.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._useAudioElement?l_.stop(this.getTrackId()):this._source.stop()}close(){super.close(),this.unbindProcessorDestinationEvents(),this.unbindProcessorContextEvents(),this.unpipe(),this.processorDestination._source&&this.processorDestination._source.unpipe(),this._source.destroy()}_updatePlayerSource(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];ue.debug("[".concat(this.getTrackId(),"] update player source track")),e&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&l_.updateTrack(this.getTrackId(),this._mediaStreamTrack)}async _updateOriginMediaStreamTrack(e,t){this._originMediaStreamTrack!==e&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),t&&this._originMediaStreamTrack.stop()),e.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=e,this._muted&&(this._originMediaStreamTrack.enabled=!1),this.processor&&this.processor.updateInput({track:e,context:this.processorContext}),this._mediaStreamTrack!==this._source.outputTrack?(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await l(this,ho.NEED_REPLACE_TRACK,this)):this._source.updateTrack(this._originMediaStreamTrack),this._getOriginVolumeLevel&&this._source.updateOriginTrack(e))}renewMediaStreamTrack(e){return oy.resolve(void 0)}pipe(e){if(this._bypassWebAudio)throw new n(o.INVALID_OPERATION,"Can not process AudioTrack when bypassWebAudio set to true.");if(this.processor===e)return e;if(e._source)throw new n(o.INVALID_OPERATION,"Processor ".concat(e.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=e,this.processor._source=this,e.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),e}unpipe(){var e;if(!this.processor)return;const t=this.processor;null===(e=this._source.processSourceNode)||void 0===e||e.disconnect(),this.processor._source=!1,this.processor=void 0,t.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(Ao.ON_TRACK,(async e=>{e?e!==this._mediaStreamTrack&&(this._mediaStreamTrack=e,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(e),await l(this,ho.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await l(this,ho.NEED_REPLACE_TRACK,this))})),this.processorDestination.on(Ao.ON_NODE,(e=>{this._source.processedNode=e}))}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Ao.ON_TRACK),this.processorDestination.removeAllListeners(Ao.ON_NODE)}unbindProcessorContextEvents(){this.processorContext.removeAllListeners(Oo.REQUEST_UPDATE_CONSTRAINTS),this.processorContext.removeAllListeners(Oo.REQUEST_CONSTRAINTS)}}sy([R_("INIT_WEBAUDIO"),ay("design:type",Object),ay("design:paramtypes",[Object])],L_.prototype,"_source",null),sy([R_("INIT_WEBAUDIO"),ay("design:type",A_),ay("design:paramtypes",[A_])],L_.prototype,"processorContext",null),sy([R_("INIT_WEBAUDIO"),ay("design:type",w_),ay("design:paramtypes",[w_])],L_.prototype,"processorDestination",null),sy([le({argsMap:(e,t)=>[e.getTrackId(),t],throttleTime:300}),ay("design:type",Function),ay("design:paramtypes",[Number]),ay("design:returntype",void 0)],L_.prototype,"setVolume",null),sy([le({argsMap:(e,t)=>[e.getTrackId(),t]}),p_(),ay("design:type",Function),ay("design:paramtypes",[String]),ay("design:returntype",oy)],L_.prototype,"setPlaybackDevice",null),sy([B("LocalAudioTrack","_enabledMutex"),le({argsMap:(e,t)=>[e.getTrackId(),t]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Boolean,Object,Boolean]),ay("design:returntype",oy)],L_.prototype,"setEnabled",null),sy([B("LocalAudioTrack","_enabledMutex"),le({argsMap:(e,t)=>[e.getTrackId(),t]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Boolean]),ay("design:returntype",oy)],L_.prototype,"setMuted",null),sy([p_(),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",Object)],L_.prototype,"getStats",null),sy([p_(),ay("design:type",Function),ay("design:paramtypes",[Object,Number]),ay("design:returntype",void 0)],L_.prototype,"setAudioFrameCallback",null),sy([le({argsMap:e=>[e.getTrackId()]}),p_(),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],L_.prototype,"play",null),sy([le({argsMap:e=>[e.getTrackId()]}),p_(),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],L_.prototype,"stop",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],L_.prototype,"close",null),sy([le({argsMap:(e,t)=>[e.getTrackId(),t.name]}),ay("design:type",Function),ay("design:paramtypes",[Object]),ay("design:returntype",Object)],L_.prototype,"pipe",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],L_.prototype,"unpipe",null);class x_ extends L_{get __className__(){return"MicrophoneAudioTrack"}constructor(e,t,i,r){super(e,t.encoderConfig?to(t.encoderConfig):{},r,f("GET_VOLUME_OF_MUTED_AUDIO_TRACK"),!0),this._config=void 0,this._deviceName="default",this._constraints=void 0,this._originalConstraints=void 0,this._enabled=!0,this._config=t,this._constraints=i,this._originalConstraints=i,this._deviceName=e.label,"boolean"==typeof t.bypassWebAudio&&(this._bypassWebAudio=t.bypassWebAudio),(V()||W())&&py.bindInterruptDetectorTrack(this),this.on(To.UPDATE_TRACK_SOURCE,(()=>{this.bindProcessorContextEvents()})),gy()&&this.bindProcessorContextEvents()}async setDevice(e){if(ue.info("[".concat(this.getTrackId(),"] start set device to ").concat(e)),this._enabled)try{const t=await n_.getDeviceById(e),i={};i.audio=P_({},this._constraints),i.audio.deviceId={exact:e},this._originMediaStreamTrack.stop();let r=null;try{r=await $y(i,this.getTrackId())}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setDevice failed"),e.toString()),r=await $y({audio:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(r.getAudioTracks()[0],!1),e}await this._updateOriginMediaStreamTrack(r.getAudioTracks()[0],!1),this._deviceName=t.label,this._config.microphoneId=e,this._constraints.deviceId={exact:e}}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setDevice error"),e.toString()),e}else try{const t=await n_.getDeviceById(e);this._deviceName=t.label,this._config.microphoneId=e,this._constraints.deviceId={exact:e}}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setDevice error"),e.toString()),e}ue.info("[".concat(this.getTrackId(),"] set device to ").concat(e," success"))}async setEnabled(e,t,i){if(t)return ue.debug("[".concat(this.getTrackId(),"] setEnabled false (do not close microphone)")),await super._setEnabled(e);if(!i){if(e===this._enabled)return;this.stateCheck("enabled",e)}if(ue.info("[".concat(this.getTrackId(),"] start setEnabled"),e),!e){var r;this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop(),null===(r=this._source.clonedTrack)||void 0===r||r.stop(),i||(this._enabled=!1);try{await l(this,ho.NEED_DISABLE_TRACK,this)}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setEnabled false failed"),e.toString()),e}return}const n=P_({},this._constraints),o=n_.searchDeviceIdByName(this._deviceName);o&&!n.deviceId&&(n.deviceId=o);try{i||(this._enabled=!0);const e=await $y({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(e.getAudioTracks()[0],!1),await l(this,ho.NEED_ENABLE_TRACK,this)}catch(e){throw i||(this._enabled=!1),ue.error("[".concat(this.getTrackId(),"] setEnabled true failed"),e.toString()),e}ue.info("[".concat(this.getTrackId(),"] setEnabled success"))}close(){super.close(),(V()||W())&&py.unbindInterruptDetectorTrack(this)}onTrackEnded(){if((g()||v())&&this._enabled&&!this._isClosed&&py.duringInterruption){const e=async()=>{py.off(ge.IOS_INTERRUPTION_END,e),this._enabled&&!this._isClosed&&(ue.debug("[".concat(this.getTrackId(),"] try capture microphone media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};py.on(ge.IOS_INTERRUPTION_END,e)}else ue.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(vo.TRACK_ENDED)}async renewMediaStreamTrack(e){const t=e||this._constraints,i=n_.searchDeviceIdByName(this._deviceName);if(i&&!t.deviceId&&(t.deviceId=i),this._constraints=t,this._enabled){this._originMediaStreamTrack.stop();const e=await $y({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(e.getAudioTracks()[0],!0)}}bindProcessorContextEvents(){this.processorContext.on(Oo.REQUEST_UPDATE_CONSTRAINTS,(async(e,t,i)=>{try{const i=Object.assign({},this._originalConstraints,...e);await this.renewMediaStreamTrack(i),t()}catch(e){i(e)}})),this.processorContext.on(Oo.REQUEST_CONSTRAINTS,(async e=>{e(this._originMediaStreamTrack.getSettings())}))}}sy([le({argsMap:(e,t)=>[e.getTrackId(),t]}),p_(),ay("design:type",Function),ay("design:paramtypes",[String]),ay("design:returntype",oy)],x_.prototype,"setDevice",null),sy([B("MicrophoneAudioTrack","_enabledMutex"),le({argsMap:(e,t,i)=>[e.getTrackId(),t,i]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Boolean,Boolean,Boolean]),ay("design:returntype",oy)],x_.prototype,"setEnabled",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],x_.prototype,"close",null);class U_ extends L_{get __className__(){return"BufferSourceAudioTrack"}constructor(e,t,i,r){super(t.createOutputTrack(),i,r),this.source=void 0,this._bufferSource=void 0,this.source=e,this._bufferSource=t,this._bufferSource.on(_o.AUDIO_SOURCE_STATE_CHANGE,(e=>{this.safeEmit(vo.SOURCE_STATE_CHANGE,e)}));try{this._mediaStreamTrack=this._source.createOutputTrack()}catch(e){}}get currentState(){return this._bufferSource.currentState}get duration(){return this._bufferSource.duration}get playbackSpeed(){return this._bufferSource.playbackSpeed}getCurrentTime(){return this._bufferSource.currentTime}startProcessAudioBuffer(e){e&&this._bufferSource.updateOptions(e),this._bufferSource.startProcessAudioBuffer()}pauseProcessAudioBuffer(){this._bufferSource.pauseProcessAudioBuffer()}seekAudioBuffer(e){this._bufferSource.seekAudioBuffer(e)}resumeProcessAudioBuffer(){this._bufferSource.resumeProcessAudioBuffer()}stopProcessAudioBuffer(){this._bufferSource.stopProcessAudioBuffer()}close(){this.source=null,this._bufferSource.destroy(),super.close()}setAudioBufferPlaybackSpeed(e){t(e,"speed",0),this._bufferSource.setAudioBufferPlaybackSpeed(e)}}sy([le({argsMap:(e,t)=>[e.getTrackId(),t,e.duration]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Object]),ay("design:returntype",void 0)],U_.prototype,"startProcessAudioBuffer",null),sy([le({argsMap:e=>[e.getTrackId()]}),p_(),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],U_.prototype,"pauseProcessAudioBuffer",null),sy([le({argsMap:e=>[e.getTrackId()]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Number]),ay("design:returntype",void 0)],U_.prototype,"seekAudioBuffer",null),sy([le({argsMap:e=>[e.getTrackId()]}),p_(),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],U_.prototype,"resumeProcessAudioBuffer",null),sy([le({argsMap:e=>[e.getTrackId()]}),p_(),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],U_.prototype,"stopProcessAudioBuffer",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],U_.prototype,"close",null),sy([le({argsMap:e=>[e.getTrackId()]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Number]),ay("design:returntype",void 0)],U_.prototype,"setAudioBufferPlaybackSpeed",null);class V_ extends L_{get __className__(){return"MixingAudioTrack"}get isActive(){for(const e of this.trackList)if(e._enabled&&!e._isClosed&&!e.muted)return!0;return!1}constructor(){const e=my().createMediaStreamDestination();super(e.stream.getAudioTracks()[0],void 0,c(8,"track-mix-")),this.trackList=void 0,this.destNode=void 0;try{this._mediaStreamTrack=this._source.createOutputTrack()}catch(e){}this.destNode=e,this.trackList=[]}hasAudioTrack(e){return-1!==this.trackList.indexOf(e)}addAudioTrack(e){-1===this.trackList.indexOf(e)?(ue.debug("add ".concat(e.getTrackId()," to mixing track")),e._source.outputNode.connect(this.destNode),this.trackList.push(e),this.updateEncoderConfig()):ue.debug("track ".concat(e.getTrackId()," is already added"))}removeAudioTrack(e){if(-1!==this.trackList.indexOf(e)){ue.debug("remove ".concat(e.getTrackId()," from mixing track"));try{e._source.outputNode.disconnect(this.destNode)}catch(e){}p(this.trackList,e),this.updateEncoderConfig()}}updateEncoderConfig(){const e={};this.trackList.forEach((t=>{t._encoderConfig&&((t._encoderConfig.bitrate||0)>(e.bitrate||0)&&(e.bitrate=t._encoderConfig.bitrate),(t._encoderConfig.sampleRate||0)>(e.sampleRate||0)&&(e.sampleRate=t._encoderConfig.sampleRate),(t._encoderConfig.sampleSize||0)>(e.sampleSize||0)&&(e.sampleSize=t._encoderConfig.sampleSize),t._encoderConfig.stereo&&(e.stereo=!0))})),this._encoderConfig=e}_updateRtpTransceiver(e){this._rtpTransceiver!==e&&(this._rtpTransceiver=e,this.trackList.forEach((t=>{t instanceof V_?t.emit(go.TRANSCEIVER_UPDATED,e):t._updateRtpTransceiver(e)})))}}function j_(e){const t={};e.facingMode&&(t.facingMode=e.facingMode),e.cameraId&&(t.deviceId={exact:e.cameraId});const i=Xn(e.encoderConfig);return null!=i.width&&(t.width=i.width),null!=i.height&&(t.height=i.height),!K()&&i.frameRate&&(t.frameRate=i.frameRate),z()&&"object"==typeof t.frameRate&&(t.frameRate.max=60),A()&&(t.frameRate={ideal:30,max:30}),t}function F_(e){const t={};e.screenSourceType&&(t.mediaSource=e.screenSourceType),e.extensionId&&R()&&(t.extensionId=e.extensionId);const{displaySurface:i,selfBrowserSurface:n,surfaceSwitching:o,systemAudio:s}=e;(E(107)||q(107)||Y(93))&&(i&&(r(i,"displaySurface",["browser","window","monitor"]),t.displaySurface=i),n?(r(n,"selfBrowserSurface",["exclude","include"]),t.selfBrowserSurface=n):t.selfBrowserSurface="include",o&&(r(o,"surfaceSwitching",["exclude","include"]),t.surfaceSwitching=o)),(E(105)||q(105)||Y(91))&&s&&(r(s,"systemAudio",["exclude","include"]),t.systemAudio=s),e.electronScreenSourceId&&(t.sourceId=e.electronScreenSourceId);const a=e.encoderConfig?Zn(e.encoderConfig):null;return t.mandatory={chromeMediaSource:"desktop",maxWidth:a?a.width:void 0,maxHeight:a?a.height:void 0},a&&(a.frameRate&&("number"==typeof a.frameRate?(t.mandatory.maxFrameRate=a.frameRate,t.mandatory.minFrameRate=a.frameRate):(t.mandatory.maxFrameRate=a.frameRate.max||a.frameRate.ideal||a.frameRate.exact||void 0,t.mandatory.minFrameRate=a.frameRate.min||a.frameRate.ideal||a.frameRate.exact||void 0),t.frameRate=a.frameRate),a.width&&(t.width=a.width),a.height&&(t.height=a.height)),t}function B_(e){const t={};if(K()||(void 0!==e.AGC&&(t.autoGainControl=e.AGC),void 0!==e.AEC&&(t.echoCancellation=e.AEC),void 0!==e.ANS&&(t.noiseSuppression=e.ANS,R()&&e.ANS&&(t.googHighpassFilter=e.ANS))),e.encoderConfig){const i=to(e.encoderConfig);t.channelCount=i.stereo?2:1,t.sampleRate=i.sampleRate,t.sampleSize=i.sampleSize}return e.microphoneId&&(t.deviceId={exact:e.microphoneId}),P()&&(t.sampleRate=void 0),t}class H_ extends Wy{set currentState(e){e!==this._currentState&&(this._currentState=e,this.safeEmit(_o.AUDIO_SOURCE_STATE_CHANGE,this._currentState))}get currentState(){return this._currentState}constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),this.audioBuffer=void 0,this.sourceNode=void 0,this.startPlayTime=0,this.startPlayOffset=0,this.pausePlayTime=0,this.options=void 0,this.currentLoopCount=0,this.currentPlaybackSpeed=100,this._currentState="stopped",this.audioBuffer=e,this.options=t,this.startPlayOffset=this.options.startPlayTime||0}createWebAudioDiagram(){return this.context.createGain()}get duration(){return this.audioBuffer?this.audioBuffer.duration:0}get playbackSpeed(){return this.currentPlaybackSpeed}get currentTime(){return this.audioBuffer?"stopped"===this.currentState?0:"paused"===this.currentState?this.pausePlayTime:((this.context.currentTime-this.startPlayTime)*(this.playbackSpeed/100)+this.startPlayOffset)%this.audioBuffer.duration:0}updateOptions(e){"stopped"===this.currentState?(this.options=e,this.startPlayOffset=this.options.startPlayTime||0):ue.warning("can not set audio source options")}startProcessAudioBuffer(){this.sourceNode&&this.stopProcessAudioBuffer(),this.sourceNode=this.createSourceNode(),this.startSourceNode(),this.currentState="playing"}pauseProcessAudioBuffer(){this.sourceNode&&"playing"===this.currentState&&(this.pausePlayTime=this.currentTime,this.sourceNode.onended=null,this.sourceNode.stop(),this.sourceNode.buffer=null,this.sourceNode=this.createSourceNode(),this.currentState="paused")}seekAudioBuffer(e){this.sourceNode&&(this.sourceNode.onended=null,"playing"===this.currentState&&this.sourceNode.stop(),this.sourceNode=this.createSourceNode(),"playing"===this.currentState?(this.startPlayOffset=e,this.startSourceNode()):"paused"===this.currentState&&(this.pausePlayTime=e))}resumeProcessAudioBuffer(){"paused"===this.currentState&&this.sourceNode&&(this.startPlayOffset=this.pausePlayTime,this.pausePlayTime=0,this.startSourceNode(),this.currentState="playing")}stopProcessAudioBuffer(){if(this.sourceNode){this.sourceNode.onended=null;try{this.sourceNode.stop()}catch(e){}this.reset()}}destroy(){this.audioBuffer=null,super.destroy()}setAudioBufferPlaybackSpeed(e){this.sourceNode&&("playing"===this.currentState&&(this.startPlayOffset=this.currentTime,this.startPlayTime=this.context.currentTime),this.sourceNode.playbackRate.value=e/100),this.currentPlaybackSpeed=e}startSourceNode(){this.sourceNode&&this.sourceNode.buffer&&(this.sourceNode.start(0,this.startPlayOffset),this.startPlayTime=this.context.currentTime,this.sourceNode.onended=this.handleSourceNodeEnded.bind(this))}createSourceNode(){const e=this.context.createBufferSource();return e.buffer=this.audioBuffer,e.loop=!!this.options.loop,e.connect(this.outputNode),e.playbackRate.value=this.currentPlaybackSpeed/100,e}handleSourceNodeEnded(){if(this.currentLoopCount+=1,this.options.cycle&&this.options.cycle>this.currentLoopCount)return this.startPlayOffset=0,this.sourceNode=void 0,void this.startProcessAudioBuffer();this.reset()}reset(){this.startPlayOffset=this.options.startPlayTime||0,this.currentState="stopped",this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=void 0),this.currentLoopCount=0}}const G_=new Map;const W_=e=>{const t=document.createElement("canvas");return t.width=2,t.height=2,new oy(((i,r)=>{t.toBlob((async e=>{if(t.remove(),e){const r=await K_(e);i({buffer:r,width:t.width,height:t.height})}else r(new n(o.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))}),e,1)}))},K_=async e=>{const t=await e.arrayBuffer();return new Uint8Array(t)};const z_=new class extends a{get visibility(){return document.visibilityState}get lastHiddenTime(){return this._lastHiddenTime}get lastVisibleTime(){return this._lastVisibleTime}constructor(){super(),this._lastHiddenTime=0,this._lastVisibleTime=0,document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState?this._lastHiddenTime=performance.now():this._lastVisibleTime=performance.now(),ue.debug("document visibility went ".concat(document.visibilityState)),this.emit("VISIBILITY_CHANGE",document.visibilityState)}))}};function q_(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function Y_(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?q_(Object(i),!0).forEach((function(t){rp(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):q_(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}class J_{get videoElementStatus(){return this._videoElementStatus}set videoElementStatus(e){e!==this._videoElementStatus&&(ue.debug("[".concat(this.trackId,"] video-element-status change ").concat(this._videoElementStatus," => ").concat(e)),this._videoElementStatus=e)}constructor(e){this.trackId=void 0,this.config=void 0,this.onFirstVideoFrameDecoded=void 0,this.freezeTimeCounterList=[],this.renderFreezeAccTime=0,this.isKeepLastFrame=!1,this.timeUpdatedCount=0,this.freezeTime=0,this.playbackTime=0,this.lastTimeUpdatedTime=0,this.autoplayFailed=!1,this.videoTrack=void 0,this.videoElement=void 0,this.cacheVideoElement=void 0,this.videoElementCheckInterval=void 0,this._videoElementStatus=Co.NONE,this.isGettingVideoDimensions=!1,this.startGetVideoDimensions=()=>{const e=()=>{if(this.isGettingVideoDimensions=!0,this.videoElement.videoWidth*this.videoElement.videoHeight>4)return ue.debug("[".concat(this.trackId,"] current video dimensions:"),this.videoElement.videoWidth,this.videoElement.videoHeight),void(this.isGettingVideoDimensions=!1);setTimeout(e,500)};!this.isGettingVideoDimensions&&e()},this.autoResumeAfterInterruption=()=>{this.videoTrack&&"live"===this.videoTrack.readyState&&"running"===py.curState&&(ue.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat(Q())),X()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))},this.handleVideoEvents=e=>{switch(e.type){case"play":case"playing":this.startGetVideoDimensions(),this.videoElementStatus=Co.PLAYING;break;case"loadeddata":if(this.onFirstVideoFrameDecoded&&this.onFirstVideoFrameDecoded(),this.cacheVideoElement){try{this.cacheVideoElement.srcObject=null,this.cacheVideoElement.remove()}catch(e){}this.cacheVideoElement=void 0}break;case"canplay":this.videoElementStatus=Co.CANPLAY;break;case"stalled":this.videoElementStatus=Co.STALLED;break;case"suspend":this.videoElementStatus=Co.SUSPEND;break;case"pause":this.videoElementStatus=Co.PAUSED,g()||v()||I()&&this.autoplayFailed||!this.videoTrack||"live"!==this.videoTrack.readyState||(ue.debug("[track-".concat(this.trackId,"] video element paused, auto resume")),this.videoElement.play());break;case"waiting":this.videoElementStatus=Co.WAITING;break;case"abort":this.videoElementStatus=Co.ABORT;break;case"ended":this.videoElementStatus=Co.ENDED;break;case"emptied":this.videoElementStatus=Co.EMPTIED;break;case"error":{this.videoElementStatus=Co.ERROR;const e=this.videoElement.error;e&&ue.error("[".concat(this.trackId,"] media error, code: ").concat(e.code,", message: ").concat(e.message));break}case"timeupdate":{const e=performance.now();if(this.timeUpdatedCount+=1,this.timeUpdatedCount<10)return void(this.lastTimeUpdatedTime=e);const t=e-this.lastTimeUpdatedTime,i=this.lastTimeUpdatedTime;if(this.lastTimeUpdatedTime=e,z_.lastVisibleTime<z_.lastHiddenTime||i<z_.lastHiddenTime||i<z_.lastVisibleTime)return;for(t>f("VIDEO_FREEZE_DURATION")&&(this.freezeTime+=t),this.playbackTime+=t;this.playbackTime>=6e3;){this.playbackTime-=6e3;const e=Math.min(6e3,this.freezeTime);this.freezeTimeCounterList.push(e),this.freezeTime=Math.max(0,this.freezeTime-6e3)}break}}},this.autoResumeAfterInterruptionOnIOS15_16=()=>{this.videoTrack&&"live"===this.videoTrack.readyState&&(ue.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat(Q())),X()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))},this.trackId=e.trackId,this.config=e,e.element instanceof HTMLVideoElement?this.videoElement=e.element:this.videoElement=document.createElement("video"),py.on(ge.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),py.on(ge.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16)}getVideoElement(){return this.videoElement}getContainerElement(){var e;return null!==(e=this.videoElement.parentElement)&&void 0!==e?e:void 0}updateConfig(e){this.config=e,this.trackId=e.trackId,e.element!==this.videoElement&&(this.destroy(),this.videoElement=e.element),this.videoTrack&&this.initVideoElement()}updateVideoTrack(e){this.videoTrack!==e&&(this.videoTrack=e,this.initVideoElement())}play(e){const t=this.videoElement.play();t&&t.catch&&t.catch((t=>{e&&u_(e,"video",t.message,this.trackId),"NotAllowedError"===t.name?(ue.warning("detected video element autoplay failed",t),this.autoplayFailed=!0,this.handleAutoPlayFailed()):ue.warning("[".concat(this.trackId,"] play warning: "),t)}));const i=m();if(("Safari"===i.name&&15===Number(i.version)||V())&&t&&t.then){const e=()=>{this.config.mirror&&(this.videoElement.style.transform="rotateY(180deg)")};t.then(e).catch(e)}}getCurrentFrame(){const e=document.createElement("canvas");e.width=this.videoElement.videoWidth,e.height=this.videoElement.videoHeight;const t=e.getContext("2d");if(!t)return ue.error("create canvas context failed!"),new ImageData(2,2);t.drawImage(this.videoElement,0,0,e.width,e.height);const i=t.getImageData(0,0,e.width,e.height);return e.remove(),i}async getCurrentFrameToUint8Array(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const i=document.createElement("canvas");i.width=this.videoElement.videoWidth,i.height=this.videoElement.videoHeight;const r=i.getContext("2d");return r?(r.drawImage(this.videoElement,0,0,i.width,i.height),new oy(((r,s)=>{i.toBlob((async e=>{if(i.remove(),e){const t=await K_(e);r({buffer:t,width:i.width,height:i.height})}else s(new n(o.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))}),e,t<0?.1:t>1?1:t)}))):await W_(e)}destroy(){py.off(ge.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),py.off(ge.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),this.videoElement.srcObject=null,this.resetVideoElement(),this.freezeTimeCounterList=[]}initVideoElement(){if(this.videoElementStatus=Co.INIT,!this.videoElementCheckInterval&&(Q_.forEach((e=>{this.videoElement.addEventListener(e,this.handleVideoEvents)})),this.videoElementCheckInterval=window.setInterval((()=>{Z(this.videoElement)||(this.videoElementStatus=Co.DESTROYED)}),1e3),f("ENABLE_VIDEO_FRAME_CALLBACK"))){var e,t;let i;const r=(e,t)=>{if(this.videoElementStatus===Co.PLAYING){if(i){const e=t.presentationTime-i.presentationTime;e>f("VIDEO_FREEZE_DURATION")&&z_.lastVisibleTime>=z_.lastHiddenTime&&i.timestamp>z_.lastVisibleTime&&i.timestamp>z_.lastHiddenTime&&(this.renderFreezeAccTime+=e)}i=Y_(Y_({},t),{},{timestamp:e})}var n,o;f("ENABLE_VIDEO_FRAME_CALLBACK")&&(null===(n=(o=this.videoElement).requestVideoFrameCallback)||void 0===n||n.call(o,r))};null===(e=(t=this.videoElement).requestVideoFrameCallback)||void 0===e||e.call(t,r)}this.videoElement.controls=!1,this.videoElement.setAttribute("playsinline",""),P()&&(this.videoElement.poster="noposter");const i=m();if("Safari"===i.name&&15===Number(i.version)||V()||!this.config.mirror||(this.videoElement.style.transform="rotateY(180deg)"),this.config.fit?this.videoElement.style.objectFit=this.config.fit:this.videoElement.style.objectFit="cover",this.videoElement.setAttribute("muted",""),this.videoElement.muted=!0,this.videoElement.srcObject&&this.videoElement.srcObject instanceof MediaStream){this.videoElement.srcObject.getVideoTracks()[0]!==this.videoTrack&&(this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,A()&&this.videoElement.load())}else this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,A()&&this.videoElement.load();const r=this.videoElement.play();void 0!==r&&r.catch((e=>{ue.debug("[".concat(this.trackId,"] playback interrupted"),e.toString())}))}resetVideoElement(){Q_.forEach((e=>{this.videoElement&&this.videoElement.removeEventListener(e,this.handleVideoEvents)})),this.videoElementCheckInterval&&(window.clearInterval(this.videoElementCheckInterval),this.videoElementCheckInterval=void 0),this.videoElementStatus=Co.NONE}handleAutoPlayFailed(){const e=t=>{t.preventDefault(),this.videoElement.play().then((()=>{ue.debug("[".concat(this.trackId,"] Video element for trackId:").concat(this.trackId," autoplay resumed."))})).catch((e=>{ue.error(e)})),this.autoplayFailed=!1,U()?document.body.removeEventListener("click",e,!0):(document.body.removeEventListener("touchstart",e,!0),document.body.removeEventListener("mousedown",e,!0))};U()?document.body.addEventListener("click",e,!0):(document.body.addEventListener("touchstart",e,!0),document.body.addEventListener("mousedown",e,!0)),a_()}}const Q_=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","timeupdate","error"];class X_ extends J_{constructor(e){super(e),this.container=void 0,this.slot=void 0,this.slot=e.element,this.updateConfig(e)}updateConfig(e){this.config=e,this.trackId=e.trackId;const t=e.element;t!==this.slot&&(this.destroy(),this.slot=t),this.createElements()}updateVideoTrack(e){this.videoTrack!==e&&(this.videoTrack=e,this.createElements())}play(e){var t;null!==(t=this.container)&&void 0!==t&&t.contains(this.videoElement)&&super.play(e)}getCurrentFrame(){var e;return null!==(e=this.container)&&void 0!==e&&e.contains(this.videoElement)?super.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameToUint8Array(e){var t;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return null!==(t=this.container)&&void 0!==t&&t.contains(this.videoElement)?await super.getCurrentFrameToUint8Array(e,i):await W_(e)}destroy(){if(super.destroy(),this.videoElement.remove(),this.videoElement=document.createElement("video"),this.container){try{this.container.remove(),this.slot.removeChild(this.container)}catch(e){}this.container=void 0}}createElements(){this.container||(this.container=document.createElement("div")),this.container.id="agora-video-player-".concat(this.trackId),this.container.style.width="100%",this.container.style.height="100%",this.container.style.position="relative",this.container.style.overflow="hidden",this.videoTrack?(this.container.style.backgroundColor="black",f("KEEP_LAST_FRAME")&&this.isKeepLastFrame&&this.videoElement.paused&&this.resetVideoElement(),this.mountedVideoElement()):this.unmountedVideoElement(),this.slot.appendChild(this.container)}mountedVideoElement(){var e;!this.container||null!==(e=this.container)&&void 0!==e&&e.contains(this.videoElement)||this.container.appendChild(this.videoElement),super.initVideoElement(),this.videoElement.id="video_".concat(this.trackId),this.videoElement.className="agora_video_player",this.videoElement.style.width="100%",this.videoElement.style.height="100%",this.videoElement.style.position="absolute",this.videoElement.style.left="0",this.videoElement.style.top="0"}unmountedVideoElement(){var e;if(null!==(e=this.container)&&void 0!==e&&e.contains(this.videoElement)){super.resetVideoElement();try{this.container&&this.container.removeChild(this.videoElement)}catch(e){}this.videoElement=document.createElement("video")}}resetVideoElement(){var e;null!==(e=this.container)&&void 0!==e&&e.contains(this.videoElement)&&(super.resetVideoElement(),this.cacheVideoElement=this.videoElement,this.videoElement=document.createElement("video"))}getContainerElement(){return this.container}}function Z_(e){return new oy(((t,i)=>{let r=!1;const n=document.createElement("video");n.setAttribute("autoplay",""),n.setAttribute("muted",""),n.muted=!0,n.autoplay=!0,n.setAttribute("playsinline",""),n.setAttribute("style","position: fixed; top: 0; left: 0; width: 1px; height: 1px"),document.body.appendChild(n);const o=g()?"canplay":"playing";n.addEventListener(o,(()=>{const e=n.videoWidth,i=n.videoHeight;!e&&A()||(r=!0,n.srcObject=null,n.remove(),t([e,i]))})),n.srcObject=new MediaStream([e]),n.play().catch($),setTimeout((()=>{r||(n.srcObject=null,n.remove(),t([n.videoWidth,n.videoHeight]))}),4e3)}))}function $_(e,t,i,r){let n;const o=200*Math.pow(i/15,.6)*Math.pow(e*t/640/360,.75),s=o;if("STANDARD_BITRATE"===r)n=4*o;else{if("COMPATIABLE_BITRATE"!==r)return;n=2*o}return[Math.floor(n),Math.floor(s)]}const eT=async(e,t,i)=>await(async(e,t,i)=>{const r=ee(te(""+t+i)).slice(0,16),n=r.slice(0,12),o=await window.crypto.subtle.importKey("raw",r,"AES-GCM",!0,["encrypt"]);return new Uint8Array(await window.crypto.subtle.encrypt({name:"AES-GCM",iv:n},o,e))})(e.buffer,t,i);function tT(e,t){if("VideoFrame"in window&&"TransformStream"in window&&Ay().supportWebRTCInsertableStream){const i=new MediaStreamTrackProcessor(e),r=new MediaStreamTrackGenerator({kind:"video"});let n,o,s=Date.now();const a=()=>{c&&(clearInterval(c),c=void 0),n&&(n.close(),n=void 0),e.stop(),o=void 0,r.removeEventListener("ended",a)};let c=window.setInterval((()=>{if(o&&n&&Date.now()-s>(null!=t?t:1e3))try{"live"===r.readyState?o.enqueue(n.clone()):a()}catch(e){a()}}),null!=t?t:1e3);const d=new TransformStream({transform:(e,t)=>{"live"===r.readyState?(o=t,s=Date.now(),void 0===n?(n=e,t.enqueue(e.clone())):(t.enqueue(n),n=e)):e.close()}});return r.addEventListener("ended",a),i.readable.pipeThrough(d).pipeTo(r.writable),r}}function iT(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function rT(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?iT(Object(i),!0).forEach((function(t){rp(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):iT(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}class nT extends dy{get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Co.PLAYING)}get processorContext(){return this._processorContext}set processorContext(e){this._processorContext=e}get __className__(){return"LocalVideoTrack"}constructor(e,t,i,r,n,o){if(super(e,n),this.trackMediaType="video",this._player=void 0,this._videoVisibleTimer=null,this._previousVideoVisibleStatus=void 0,this._clearPreviousVideoVisibleStatus=()=>this._previousVideoVisibleStatus=void 0,this._encoderConfig=void 0,this._scalabilityMode={numSpatialLayers:1,numTemporalLayers:1},this._optimizationMode=void 0,this._videoHeight=void 0,this._videoWidth=void 0,this._forceBitrateLimit=void 0,this._enabled=!0,this.processorDestination=void 0,this._processorContext=void 0,I()){const{width:t,height:i}=e.getSettings();this._videoWidth=t,this._videoHeight=i}else this.updateMediaStreamTrackResolution();if(this._encoderConfig=t,this._scalabilityMode=i,this._optimizationMode=r,this._hints=o||[],-1===this._hints.indexOf(lo.SCREEN_TRACK))this.updateBitrateFromProfile();else if(ie(y.CHROME,115)&&re()){const t=tT(e);t&&(ue.info("local screen video track begin to inject frame"),this._mediaStreamTrack=t)}t&&-1!==this._hints.indexOf(lo.CUSTOM_TRACK)&&this.setEncoderConfiguration(t),this.processorContext=new I_(this.getTrackId(),"local"),this.processorDestination=new k_(this.processorContext),this.bindProcessorDestinationEvents()}play(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e){const t=document.getElementById(e);t?e=t:(ue.warning("[".concat(this.getTrackId(),'] can not find "#').concat(e,'" element, use document.body')),e=document.body)}ue.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(e instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(t));const i=rT(rT(rT({},this._getDefaultPlayerConfig()),t),{},{trackId:this.getTrackId(),element:e});this._player?this._player.updateConfig(i):(e instanceof HTMLVideoElement?this._player=new J_(i):this._player=new X_(i),this._player.updateVideoTrack(this._mediaStreamTrack)),this._player.play(),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval((()=>{try{const e=this.getVideoElementVisibleStatus();this.safeEmit(vo.VIDEO_ELEMENT_VISIBLE_STATUS,e)}catch(e){}}),f("CHECK_VIDEO_VISIBLE_INTERVAL"))}stop(){this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(),this._player=void 0,ue.debug("[".concat(this.getTrackId(),"] stop video playback")))}async setEnabled(e,t){if(!t){if(e===this._enabled)return;this.stateCheck("enabled",e)}if(ue.info("[".concat(this.getTrackId(),"] start setEnabled"),e),!e){this._originMediaStreamTrack.enabled=!1;try{await l(this,ho.NEED_DISABLE_TRACK,this)}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setEnabled to false error"),e.toString()),e}return t||(this._enabled=!1),void ue.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}this._originMediaStreamTrack.enabled=!0;try{await l(this,ho.NEED_ENABLE_TRACK,this)}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setEnabled to true error"),e.toString()),e}ue.info("[".concat(this.getTrackId(),"] setEnabled to true success")),t||(this._enabled=!0)}async setMuted(e){e!==this._muted&&(this.stateCheck("muted",e),this._muted=e,this._originMediaStreamTrack.enabled=!e,ue.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(e)),e?await l(this,ho.NEED_MUTE_TRACK,this):await l(this,ho.NEED_UNMUTE_TRACK,this))}async setEncoderConfiguration(e,t){if(!this._enabled)throw new n(o.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");if(e=Xn(e),this._forceBitrateLimit&&(e.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:e.bitrateMax,e.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:e.bitrateMin),e.width||e.height||e.frameRate){const t=j_({encoderConfig:e});(I()||g()||v())&&(t.deviceId=void 0),ue.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(e),JSON.stringify(t));try{await this._originMediaStreamTrack.applyConstraints(t),this.updateMediaStreamTrackResolution()}catch(e){const t=new n(o.UNEXPECTED_ERROR,e.toString());throw ue.error("[".concat(this.getTrackId(),"] applyConstraints error"),t.toString()),t}}this._encoderConfig=e,-1===this._hints.indexOf(lo.SCREEN_TRACK)&&this.updateBitrateFromProfile();try{await l(this,ho.NEED_UPDATE_VIDEO_ENCODER,this)}catch(e){return e.throw(ue)}}getStats(){H((()=>{ue.warning("[deprecated] LocalVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalVideoStats instead")}),"localVideoTrackGetStatsWarning");const e=G(this,ho.GET_STATS);return e||rT({},So)}async setBeautyEffect(e){ue.error("LocalVideoTrack.setBeautyEffect was deprecated, please migrate to agora-extension-beauty-effect")}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameImage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this._player?this._player.getCurrentFrameToUint8Array(e,t):await W_(e)}async setBitrateLimit(e){if(ue.debug("[".concat(this.getTrackId(),"] set bitrate limit, ").concat(JSON.stringify(e))),e){this._forceBitrateLimit=e,this._encoderConfig&&(this._encoderConfig.bitrateMax?this._encoderConfig.bitrateMax=this._encoderConfig.bitrateMax<e.max_bitrate?this._encoderConfig.bitrateMax:e.max_bitrate:this._encoderConfig.bitrateMax=e.max_bitrate,this._encoderConfig.bitrateMin,this._encoderConfig.bitrateMin=e.min_bitrate);try{await l(this,ho.NEED_UPDATE_VIDEO_ENCODER,this)}catch(e){return e.throw(ue)}}}async setOptimizationMode(e){if("motion"!==e&&"detail"!==e&&"balanced"!==e)return void ue.error(o.INVALID_PARAMS,"optimization mode must be motion, detail or balanced");const t=this._optimizationMode;try{this._optimizationMode=e,await l(this,ho.SET_OPTIMIZATION_MODE,this)}catch(e){throw this._optimizationMode=t,ue.error("[".concat(this.getTrackId(),"] set optimization mode failed"),e.toString()),e}ue.info("[".concat(this.getTrackId(),"] set optimization mode success (").concat(e,")"))}setScalabiltyMode(e){if(1===e.numSpatialLayers&&1!==e.numTemporalLayers)return ue.error(o.INVALID_PARAMS,"scalability mode currently not supported, no SVC."),void(this._scalabilityMode={numSpatialLayers:1,numTemporalLayers:1});this._scalabilityMode=e,ue.info("[".concat(this.getTrackId(),"] set scalability mode success (").concat(e,")"))}updateMediaStreamTrackResolution(){Z_(this._originMediaStreamTrack).then((e=>{let[t,i]=e;this._videoHeight=i,this._videoWidth=t})).catch($)}_updatePlayerSource(){this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}_getDefaultPlayerConfig(){return{fit:"contain"}}updateBitrateFromProfile(){if(!this._encoderConfig)return;const{width:e,height:t,frameRate:i}=this.getMediaStreamTrackSettings();if(!e||!t||!i)return;const[r,n]=$_(e,t,i,f("BITRATE_ADAPTER_TYPE"))||[void 0,void 0];this._encoderConfig.bitrateMin||this._encoderConfig.bitrateMax||(this._encoderConfig.bitrateMin=n,this._encoderConfig.bitrateMax=r,ue.debug("[".concat(this.getTrackId(),"] update bitrate from profile, [w: ").concat(e,", h: ").concat(t,", fps: ").concat(i,"] => [brMax: ").concat(r,", brMin: ").concat(n,"]")))}getVideoElementVisibleStatus(){try{var e,t;const i=null==this||null===(e=this._player)||void 0===e?void 0:e.getContainerElement(),r={track:this,element:null==this||null===(t=this._player)||void 0===t?void 0:t.getVideoElement(),slot:null==i?void 0:i.parentElement},{element:n,slot:o}=r;if(this.isPlaying&&n instanceof HTMLVideoElement&&o instanceof HTMLElement){const e=ne.checkOneElementVisible(n),t=Object.assign({},e);if(t.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=t.visible;const e=de.reportApiInvoke(null,{tag:u.TRACER,name:d.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});t.visible?e.onSuccess("Video is visible"):e.onSuccess("Invisible because of ".concat(t.reason))}return t}return}catch(e){throw new n(o.GET_VIDEO_ELEMENT_VISIBLE_ERROR,e.message)}}async renewMediaStreamTrack(e){}pipe(e){if(this.processor===e)return e;if(e._source)throw new n(o.INVALID_OPERATION,"Processor ".concat(e.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=e,this.processor._source=this,e.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),e}unpipe(){if(!this.processor)return;const e=this.processor;this.processor._source=void 0,this.processor=void 0,e.reset()}close(){super.close(),this.unbindProcessorDestinationEvents(),this.unbindProcessorContextEvents(),this.unpipe(),this.processorDestination._source&&this.processorDestination._source.unpipe()}clone(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this._encoderConfig;e&&(i=rT(rT({},i),Xn(e))),i=oe(i);const r=c(8,"track-video-cloned-"),n=new nT(t?this._mediaStreamTrack.clone():this._mediaStreamTrack,i,oe(this._scalabilityMode),this._optimizationMode,r,oe(this._hints));return e&&i&&n.setEncoderConfiguration(i),ue.debug("clone video track from ".concat(this.getTrackId()," to ").concat(r,", clone ").concat(t)),n}async replaceTrack(e,t){if(!(e instanceof MediaStreamTrack))throw new n(o.INVALID_PARAMS,"track should be an instance of MediaStreamTrack");if("video"!==e.kind)throw new n(o.INVALID_PARAMS,"track should be a video MediaStreamTrack");await this._updateOriginMediaStreamTrack(e,t,!0),this.updateMediaStreamTrackResolution()}bindProcessorDestinationEvents(){this.processorDestination.on(Ao.ON_TRACK,(async e=>{e?e!==this._mediaStreamTrack&&(this._mediaStreamTrack=e,this._updatePlayerSource(),await l(this,ho.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await l(this,ho.NEED_REPLACE_TRACK,this))}))}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Ao.ON_TRACK)}unbindProcessorContextEvents(){this.processorContext.removeAllListeners(Oo.REQUEST_UPDATE_CONSTRAINTS),this.processorContext.removeAllListeners(Oo.REQUEST_CONSTRAINTS)}}sy([le({argsMap:(e,t,i)=>[e.getTrackId(),"string"==typeof t?t:t instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",i]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Object,Object]),ay("design:returntype",void 0)],nT.prototype,"play",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],nT.prototype,"stop",null),sy([B("LocalVideoTrack","_enabledMutex"),le({argsMap:(e,t)=>[e.getTrackId(),t]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Boolean,Boolean]),ay("design:returntype",oy)],nT.prototype,"setEnabled",null),sy([B("LocalVideoTrack","_enabledMutex"),le({argsMap:(e,t)=>[e.getTrackId(),t]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Boolean]),ay("design:returntype",oy)],nT.prototype,"setMuted",null),sy([le({argsMap:(e,t)=>[e.getTrackId(),t]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Object,Boolean]),ay("design:returntype",oy)],nT.prototype,"setEncoderConfiguration",null),sy([p_(),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",Object)],nT.prototype,"getStats",null),sy([le({argsMap:(e,t,i)=>[e.getTrackId(),t,i]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Boolean,Object]),ay("design:returntype",oy)],nT.prototype,"setBeautyEffect",null),sy([p_(),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",ImageData)],nT.prototype,"getCurrentFrameData",null),sy([p_(),ay("design:type",Function),ay("design:paramtypes",[String,Number]),ay("design:returntype",oy)],nT.prototype,"getCurrentFrameImage",null),sy([p_(),ay("design:type",Function),ay("design:paramtypes",[Object]),ay("design:returntype",oy)],nT.prototype,"setBitrateLimit",null),sy([p_(),ay("design:type",Function),ay("design:paramtypes",[String]),ay("design:returntype",oy)],nT.prototype,"setOptimizationMode",null),sy([p_(),ay("design:type",Function),ay("design:paramtypes",[Object]),ay("design:returntype",void 0)],nT.prototype,"setScalabiltyMode",null),sy([p_(),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],nT.prototype,"updateMediaStreamTrackResolution",null),sy([le({argsMap:(e,t)=>[e.getTrackId(),t.name]}),ay("design:type",Function),ay("design:paramtypes",[Object]),ay("design:returntype",Object)],nT.prototype,"pipe",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],nT.prototype,"unpipe",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],nT.prototype,"close",null),sy([le({argsMap:(e,t,i)=>[e.getTrackId(),t.label,i]}),ay("design:type",Function),ay("design:paramtypes",[MediaStreamTrack,Boolean]),ay("design:returntype",oy)],nT.prototype,"replaceTrack",null);class oT extends nT{get __className__(){return"CameraVideoTrack"}constructor(e,t,i,r,n,o){super(e,Xn(t.encoderConfig),r,n,o),this._config=void 0,this._originalConstraints=void 0,this._constraints=void 0,this._enabled=!0,this._deviceName="default",this.tryResumeVideoForIOS15_16WeChat=async()=>{(V()||W())&&!se()&&ae()&&this._enabled&&!this._isClosed&&(ue.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS 15 device on WeChat.")),await this.renewMediaStreamTrack())},this._config=t,this._originalConstraints=i,this._constraints=i,this._deviceName=e.label,this._encoderConfig=Xn(this._config.encoderConfig),py.on(ge.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),py.on(ge.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),this.bindProcessorContextEvents()}async setDevice(e){return"string"==typeof e?this._setDeviceById(e):e.deviceId?this._setDeviceById(e.deviceId):e.facingMode?this._setDeviceByFacingModel(e.facingMode):void 0}async _setDeviceById(e){if(ue.info("[".concat(this.getTrackId(),"] set device to ").concat(e)),this._enabled)try{const t=await n_.getDeviceById(e),i={};i.video=rT({},this._constraints),i.video.deviceId={exact:e},i.video.facingMode=void 0,this._originMediaStreamTrack.stop();let r=null;try{r=await $y(i,this.getTrackId())}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setDevice failed"),e.toString()),r=await $y({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(r.getVideoTracks()[0],!1),e}await this._updateOriginMediaStreamTrack(r.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution(),this._deviceName=t.label,this._config.cameraId=e,this._constraints.deviceId={exact:e}}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setDevice error"),e.toString()),e}else try{const t=await n_.getDeviceById(e);this._deviceName=t.label,this._config.cameraId=e,this._constraints.deviceId={exact:e}}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setDevice error"),e.toString()),e}ue.info("[".concat(this.getTrackId(),"] setDevice success"))}async _setDeviceByFacingModel(e){ue.info("[".concat(this.getTrackId(),"] set facingMode ").concat(e));const t={video:rT(rT({},this._constraints),{},{deviceId:void 0,facingMode:{exact:e}})};if(this._enabled){this._originMediaStreamTrack.stop();let e=null;try{e=await $y(t,this.getTrackId())}catch(t){throw ue.error("[".concat(this.getTrackId(),"] setDeviceByFacingModel failed"),t.toString()),e=await $y({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(e.getVideoTracks()[0],!1),t}await this._updateOriginMediaStreamTrack(e.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution()}this._deviceName="",this._config.facingMode=e,this._config.cameraId=void 0,this._constraints=rT({},t.video),ue.info("[".concat(this.getTrackId(),"] setDeviceByFacingModel success"))}async setEnabled(e,t){if(!t){if(e===this._enabled)return;this.stateCheck("enabled",e)}if(ue.info("[".concat(this.getTrackId(),"] start setEnabled"),e),e){try{if(this.isExternalTrack)this._originMediaStreamTrack.enabled=!0;else{const e=await $y({video:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(e.getVideoTracks()[0],!1)}await l(this,ho.NEED_ENABLE_TRACK,this)}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setEnabled true error"),e.toString()),e}this.updateMediaStreamTrackResolution(),ue.info("[".concat(this.getTrackId(),"] setEnabled to true success")),t||(this._enabled=!0)}else{this.isExternalTrack?this._originMediaStreamTrack.enabled=!1:(this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop()),t||(this._enabled=!1);try{await l(this,ho.NEED_DISABLE_TRACK,this)}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setEnabled to false error"),e.toString()),e}ue.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}}async setEncoderConfiguration(e,t){if(!this._enabled)throw new n(o.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");e=Xn(e),this._forceBitrateLimit&&(e.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:e.bitrateMax,e.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:e.bitrateMin);const i=ce(this._config);i.encoderConfig=e;const r=j_(i);(I()||g()||v())&&(r.deviceId=void 0),ue.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(e),JSON.stringify(r));try{await this._originMediaStreamTrack.applyConstraints(r),this.updateMediaStreamTrackResolution()}catch(e){const t=new n(o.UNEXPECTED_ERROR,e.toString());throw ue.error("[".concat(this.getTrackId(),"] applyConstraints error"),t.toString()),t}this._config=i,this._constraints=r,this._originalConstraints=r,this._encoderConfig=e,-1===this._hints.indexOf(lo.SCREEN_TRACK)&&this.updateBitrateFromProfile();try{await l(this,ho.NEED_UPDATE_VIDEO_ENCODER,this)}catch(e){return e.throw(ue)}}_getDefaultPlayerConfig(){return{mirror:!0,fit:"cover"}}onTrackEnded(){if((g()||v())&&this._enabled&&!this._isClosed&&py.duringInterruption){const e=async()=>{py.off(ge.IOS_INTERRUPTION_END,e),this._enabled&&!this._isClosed&&(ue.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};py.on(ge.IOS_INTERRUPTION_END,e)}else ue.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(vo.TRACK_ENDED)}async renewMediaStreamTrack(e){const t=e||this._constraints,i=n_.searchDeviceIdByName(this._deviceName);if(i&&!t.deviceId&&(t.deviceId={exact:i}),this._enabled){const e=await $y({video:t},this.getTrackId());this._constraints=t,await this._updateOriginMediaStreamTrack(e.getVideoTracks()[0],!0),this.updateMediaStreamTrackResolution()}}close(){super.close(),py.off(ge.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),py.off(ge.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat)}clone(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this._encoderConfig;e&&(i=rT(rT({},i),Xn(e))),i=oe(i);const r=c(8,"track-cam-cloned-"),n=new oT(t?this._mediaStreamTrack.clone():this._mediaStreamTrack,oe(rT(rT({},this._config),{},{encoderConfig:i})),oe(this._constraints),oe(this._scalabilityMode),this._optimizationMode,r);return e&&i&&n.setEncoderConfiguration(i),ue.debug("clone track from ".concat(this.getTrackId()," to ").concat(r,", clone ").concat(t)),n}bindProcessorContextEvents(){this.processorContext.on(Oo.REQUEST_UPDATE_CONSTRAINTS,(async(e,t,i)=>{try{const i=Object.assign({},this._originalConstraints,...e);await this.renewMediaStreamTrack(i),t()}catch(e){i(e)}})),this.processorContext.on(Oo.REQUEST_CONSTRAINTS,(async e=>{e(this._originMediaStreamTrack.getSettings())}))}}function sT(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function aT(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?sT(Object(i),!0).forEach((function(t){rp(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):sT(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function cT(e){const t=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_CUSTOM_AUDIO_TRACK,options:[e]}),i=new L_(e.mediaStreamTrack,e.encoderConfig?to(e.encoderConfig):{},c(8,"track-cus-"),!1,!0);return ue.info("create custom audio track success with config",e,"trackId",i.getTrackId()),t.onSuccess(i.getTrackId()),i}async function dT(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_MIC_AUDIO_TRACK,options:[e]}),i=B_(e),r=c(8,"track-mic-");let s=null;ue.info("start create microphone audio track with config",JSON.stringify(e),"trackId",r);try{s=(await $y({audio:i},r)).getAudioTracks()[0]||null}catch(e){throw t.onError(e),e}if(!s){const e=new n(o.UNEXPECTED_ERROR,"can not find track in media stream");return t.onError(e),e.throw(ue)}const a=new x_(s,e,i,r);return t.onSuccess(a.getTrackId()),ue.info("create microphone audio track success, trackId:",r),a}async function uT(e){var t;const{cacheOnlineFile:i,encoderConfig:r}=e;let{source:s}=e;const a={source:s instanceof AudioBuffer?"AudioBuffer":s instanceof File?null!==(t=File.name)&&void 0!==t?t:"File":s,cacheOnlineFile:i,encoderConfig:r},h=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_BUFFER_AUDIO_TRACK,options:[a]});if(f("DISABLE_WEBAUDIO"))throw new n(o.NOT_SUPPORTED,"can not create BufferSourceAudioTrack when WebAudio disabled");const l=c(8,"track-buf-");ue.info("start create buffer source audio track with config",JSON.stringify(a),"trackId",l);const p=s;if(!(s instanceof AudioBuffer))try{s=await async function(e,t){let i=null;if("string"==typeof e){const t=G_.get(e);if(t)return ue.debug("use cached audio resource: ",e),t;try{i=(await J((()=>pe.get(e,{responseType:"arraybuffer"})),void 0,void 0,{maxRetryCount:3})).data}catch(e){throw new n(o.FETCH_AUDIO_FILE_FAILED,e.toString())}}else{const t=new oy(((t,i)=>{const r=new FileReader;r.onload=e=>{e.target?t(e.target.result):i(new n(o.READ_LOCAL_AUDIO_FILE_ERROR))},r.onerror=()=>{i(new n(o.READ_LOCAL_AUDIO_FILE_ERROR))},r.readAsArrayBuffer(e)}));i=await t}const r=await yy(i);return"string"==typeof e&&t&&G_.set(e,r),r}(s,i)}catch(e){return h.onError(e),e.throw(ue)}const m=new H_(s),g=new U_(p,m,r?to(r):{},l);return ue.info("create buffer source audio track success, trackId:",l),h.onSuccess(g.getTrackId()),g}function hT(e){const t=new V_;return e.forEach((e=>t.addAudioTrack(e))),t}function lT(e){const t=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_CUSTOM_VIDEO_TRACK,options:[e]}),i=new nT(e.mediaStreamTrack,{width:e.width,height:e.height,frameRate:e.frameRate,bitrateMax:e.bitrateMax,bitrateMin:e.bitrateMin},e.scalabiltyMode?$n(e.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},e.optimizationMode,c(8,"track-cus-"),[lo.CUSTOM_TRACK]);return t.onSuccess(i.getTrackId()),ue.info("create custom video track success with config",e,"trackId",i.getTrackId()),i}async function pT(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_CAM_VIDEO_TRACK,options:[aT({},e)]}),i=j_(e),r=c(8,"track-cam-");let s=null;ue.info("start create camera video track with config",JSON.stringify(e),"trackId",r);try{s=(await $y({video:i},r)).getVideoTracks()[0]||null}catch(e){throw t.onError(e),e}if(!s){const e=new n(o.UNEXPECTED_ERROR,"can not find track in media stream");return t.onError(e),e.throw(ue)}e.optimizationMode&&gT(r,s,e,Xn(e.encoderConfig));const a=new oT(s,e,i,e.scalabiltyMode?$n(e.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},e.optimizationMode,r);return t.onSuccess(a.getTrackId()),ue.info("create camera video success, trackId:",r),a}async function fT(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_MIC_AND_CAM_TRACKS,options:[e,t]}),r=j_(t),s=B_(e),a=c(8,"track-mic-"),h=c(8,"track-cam-");let l=null,p=null;ue.info("start create camera video track(".concat(h,") and microphone audio track(").concat(a,") with config, audio: ").concat(JSON.stringify(e),", video: ").concat(JSON.stringify(t)));try{const e=await $y({audio:s,video:r},"".concat(a,"-").concat(h));l=e.getAudioTracks()[0],p=e.getVideoTracks()[0]}catch(e){throw i.onError(e),e}if(!l||!p){const e=new n(o.UNEXPECTED_ERROR,"can not find tracks in media stream");return i.onError(e),e.throw(ue)}t.optimizationMode&&gT(h,p,t,Xn(t.encoderConfig));const f=new x_(l,e,s,a),m=new oT(p,t,r,t.scalabiltyMode?$n(t.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},t.optimizationMode,h);return i.onSuccess([f.getTrackId(),m.getTrackId()]),ue.info("create camera video track(".concat(h,") and microphone audio track(").concat(a,") success")),[f,m]}async function mT(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"disable";const i=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_SCREEN_VIDEO_TRACK,options:[aT({},e),t]});e.encoderConfig?"string"==typeof e.encoderConfig||e.encoderConfig.width&&e.encoderConfig.height||(e.encoderConfig.width={max:1920},e.encoderConfig.height={max:1080}):e.encoderConfig="1080p_2";const r=F_(e),s=c(8,"track-scr-v-");let a=null,h=null;const l=Ay();if(!l.supportShareAudio&&"enable"===t){const e=new n(o.NOT_SUPPORTED,"your browser or platform is not support share-screen with audio");return i.onError(e),e.throw(ue)}ue.info("start create screen video track with config",e,"withAudio",t,"trackId",s);try{const e=await $y({screen:r,screenAudio:"auto"===t?l.supportShareAudio:"enable"===t},s);a=e.getVideoTracks()[0]||null,h=e.getAudioTracks()[0]||null}catch(e){throw i.onError(e),e}if(!a){const e=new n(o.UNEXPECTED_ERROR,"can not find track in media stream");return i.onError(e),e.throw(ue)}if(!h&&"enable"===t){a&&a.stop();const e=new n(o.SHARE_AUDIO_NOT_ALLOWED);return i.onError(e),e.throw(ue)}if(e.optimizationMode||(e.optimizationMode="detail"),e.optimizationMode){gT(s,a,e,e.encoderConfig&&Zn(e.encoderConfig)||void 0),e.encoderConfig&&"string"!=typeof e.encoderConfig&&(e.encoderConfig.bitrateMin=e.encoderConfig.bitrateMax)}const p=new nT(a,e.encoderConfig?Zn(e.encoderConfig):{},e.scalabiltyMode?$n(e.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},e.optimizationMode,s,[lo.SCREEN_TRACK]);if(!h)return i.onSuccess(p.getTrackId()),ue.info("create screen video track success","video:",p.getTrackId()),p;const f=new L_(h,void 0,c(8,"track-scr-a-"),!1,!0);return i.onSuccess([p.getTrackId(),f.getTrackId()]),ue.info("create screen video track success","video:",p.getTrackId(),"audio:",f.getTrackId()),[p,f]}function gT(e,t,i,r){i.optimizationMode&&(r&&r.width&&r.height?(i.encoderConfig=aT(aT({},r),{},{bitrateMin:r.bitrateMin,bitrateMax:r.bitrateMax}),"motion"!==i.optimizationMode&&"detail"!==i.optimizationMode||(t.contentHint=i.optimizationMode,t.contentHint===i.optimizationMode?ue.debug("[".concat(e,"] set content hint to"),i.optimizationMode):ue.debug("[".concat(e,"] set content hint failed")))):ue.warning("[".concat(e,"] can not apply optimization mode bitrate config, no encoderConfig")))}function vT(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function yT(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?vT(Object(i),!0).forEach((function(t){rp(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):vT(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}sy([le({argsMap:(e,t)=>[e.getTrackId(),t]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Object]),ay("design:returntype",oy)],oT.prototype,"setDevice",null),sy([B("CameraVideoTrack","_enabledMutex"),le({argsMap:(e,t)=>[e.getTrackId(),t]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Boolean,Boolean]),ay("design:returntype",oy)],oT.prototype,"setEnabled",null),sy([le({argsMap:(e,t)=>[e.getTrackId(),t]}),p_(),ay("design:type",Function),ay("design:paramtypes",[Object,Boolean]),ay("design:returntype",oy)],oT.prototype,"setEncoderConfiguration",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],oT.prototype,"close",null);class _T extends cy{getUserId(){return this._userId}constructor(e,t,i,r){super(e,"track-".concat(e.kind,"-").concat(t,"-").concat(r.clientId,"_").concat(c(5,""))),this._userId=void 0,this._uintId=void 0,this._isDestroyed=!1,this.store=void 0,this.processor=void 0,this._userId=t,this._uintId=i,this.store=r}_updateOriginMediaStreamTrack(e){this._originMediaStreamTrack=e,this._mediaStreamTrack=e,this._updatePlayerSource(),this.processor&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this.processorContext})}_destroy(){this._isDestroyed=!0,ue.info("[".concat(this.getTrackId(),"] is destroyed")),this.stop(),super.close()}getProcessorStats(){return this.processorContext.gatherStats()}getProcessorUsage(){return this.processorContext.gatherUsage()}}class TT extends _T{get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Co.PLAYING)}get __className__(){return"RemoteVideoTrack"}constructor(e,t,i,r){super(e,t,i,r),this._videoVisibleTimer=null,this._previousVideoVisibleStatus=void 0,this._clearPreviousVideoVisibleStatus=()=>this._previousVideoVisibleStatus=void 0,this.trackMediaType="video",this._videoWidth=void 0,this._videoHeight=void 0,this._player=void 0,this.processorDestination=void 0,this.processorContext=void 0,this.updateMediaStreamTrackResolution(),this.processorContext=new I_(this.getTrackId(),"remote"),this.processorDestination=new k_(this.processorContext),this.bindProcessorDestinationEvents()}getStats(){H((()=>{ue.warning("[deprecated] RemoteVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteVideoStats instead")}),"remoteVideoTrackGetStatsWarning");return G(this,ho.GET_STATS)||yT({},wo)}play(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e){const t=document.getElementById(e);t?e=t:(ue.warning("[".concat(this.getTrackId(),'] can not find "#').concat(e,'" element, use document.body')),e=document.body)}ue.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(e instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(t));const i=yT(yT({fit:"cover"},t),{},{trackId:this.getTrackId(),element:e});this._player?this._player.updateConfig(i):(e instanceof HTMLVideoElement?this._player=new J_(i):this._player=new X_(i),this._player.updateVideoTrack(this._mediaStreamTrack),this._player.onFirstVideoFrameDecoded=()=>{this.store.subscribe(this.getUserId(),"video",void 0,void 0,Date.now()),this.safeEmit(yo.FIRST_FRAME_DECODED)}),this._player.play(this.store.sessionId||void 0),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval((()=>{try{const e=this.getVideoElementVisibleStatus();this.safeEmit(yo.VIDEO_ELEMENT_VISIBLE_STATUS,e)}catch(e){}}),f("CHECK_VIDEO_VISIBLE_INTERVAL"))}stop(){this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(),this._player=void 0,ue.debug("[".concat(this.getTrackId(),"] stop video playback")))}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}updateMediaStreamTrackResolution(){Z_(this._originMediaStreamTrack).then((e=>{let[t,i]=e;this._videoHeight=i,this._videoWidth=t})).catch($)}_updatePlayerSource(){ue.debug("[".concat(this.getTrackId(),"] update player source track")),this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}getVideoElementVisibleStatus(){try{var e,t;const i=null==this||null===(e=this._player)||void 0===e?void 0:e.getContainerElement(),r={track:this,element:null==this||null===(t=this._player)||void 0===t?void 0:t.getVideoElement(),slot:null==i?void 0:i.parentElement},{element:n,slot:o}=r;if(this.isPlaying&&n instanceof HTMLVideoElement&&o instanceof HTMLElement){const e=ne.checkOneElementVisible(n),t=Object.assign({},e);if(t.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=t.visible;const e=de.reportApiInvoke(null,{tag:u.TRACER,name:d.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});t.visible?e.onSuccess("Video is visible"):e.onSuccess("Invisible because of ".concat(t.reason))}return t}return}catch(e){throw new n(o.GET_VIDEO_ELEMENT_VISIBLE_ERROR,e.message)}}pipe(e){if(this.processor===e)return e;if(e._source)throw new n(o.INVALID_OPERATION,"Processor ".concat(e.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=e,this.processor._source=this,e.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),e}unpipe(){if(!this.processor)return;const e=this.processor;this.processor._source=void 0,this.processor=void 0,e.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(Ao.ON_TRACK,(async e=>{e?e!==this._mediaStreamTrack&&(this._mediaStreamTrack=e,this._updatePlayerSource()):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())}))}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Ao.ON_TRACK)}_destroy(){super._destroy(),this.unbindProcessorDestinationEvents()}}sy([le({argsMap:(e,t,i)=>[e.getTrackId(),"string"==typeof t?t:t instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",i]}),ay("design:type",Function),ay("design:paramtypes",[Object,Object]),ay("design:returntype",void 0)],TT.prototype,"play",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],TT.prototype,"stop",null),sy([le({argsMap:(e,t)=>[e.getTrackId(),t.name]}),ay("design:type",Function),ay("design:paramtypes",[Object]),ay("design:returntype",Object)],TT.prototype,"pipe",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],TT.prototype,"unpipe",null);class ET extends _T{get isPlaying(){return this._useAudioElement?l_.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"RemoteAudioTrack"}constructor(e,t,i,r){super(e,t,i,r),this.trackMediaType="audio",this._source=void 0,this._useAudioElement=!0,this._volume=100,this.processorContext=void 0,this.processorDestination=void 0,this._played=!1,this._bypassWebAudio=!1,f("DISABLE_WEBAUDIO")?(this._source=new O_,this._bypassWebAudio=!0,this._useAudioElement=!0):(this._source=new Ky(e,!0),f("REMOTE_AUDIO_TRACK_USES_WEB_AUDIO")&&(this._useAudioElement=!1)),this._source.once(_o.RECEIVE_TRACK_BUFFER,(()=>{this.safeEmit(yo.FIRST_FRAME_DECODED)})),this.processorContext=new A_(this._source.context,this.getTrackId(),"remote"),this.processorDestination=new w_(this.processorContext),this.bindProcessorDestinationEvents(),this._source.on(_o.UPDATE_SOURCE,(()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:this.processorContext})}))}setAudioFrameCallback(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4096;if(!e)return this._source.removeAllListeners(_o.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(t),this._source.removeAllListeners(_o.ON_AUDIO_BUFFER),this._source.on(_o.ON_AUDIO_BUFFER,(t=>e(t)))}setVolume(e){this._volume=e,this._useAudioElement?l_.setVolume(this.getTrackId(),e):this._source.setVolume(e/100)}async setPlaybackDevice(e){if(!this._useAudioElement)throw new n(o.NOT_SUPPORTED,"your browser does not support setting the audio output device");await l_.setSinkID(this.getTrackId(),e)}getVolumeLevel(){return this._source.getAccurateVolumeLevel()}getStats(){H((()=>{ue.warning("[deprecated] RemoteAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteAudioStats instead")}),"remoteAudioTrackGetStatsWarning");return G(this,ho.GET_STATS)||yT({},ko)}play(){ue.debug("[".concat(this.getTrackId(),"] start audio playback")),this._played=!0,this._useAudioElement?(ue.debug("[".concat(this.getTrackId(),"] use audio element to play")),l_.play(this._mediaStreamTrack,this.getTrackId(),this._volume,this.store.sessionId||void 0)):this._source.play()}stop(){ue.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._played=!1,this._useAudioElement?l_.stop(this.getTrackId()):this._source.stop()}_destroy(){super._destroy(),this._played=!1,this.unbindProcessorDestinationEvents(),this._source.destroy()}_isFreeze(){return this._source.isFreeze}_updatePlayerSource(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];ue.debug("[".concat(this.getTrackId(),"] update player source track")),e&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&l_.updateTrack(this.getTrackId(),this._mediaStreamTrack)}pipe(e){if(this._bypassWebAudio)throw new n(o.NOT_SUPPORTED,"can not pipe extension when WebAudio disabled");if(this.processor===e)return e;if(e._source)throw new n(o.INVALID_OPERATION,"Processor ".concat(e.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=e,this.processor._source=this,e.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),e}unpipe(){var e;if(this._bypassWebAudio)throw new n(o.NOT_SUPPORTED,"can not unpipe extension when WebAudio disabled");if(!this.processor)return;const t=this.processor;null===(e=this._source.processSourceNode)||void 0===e||e.disconnect(),this.processor._source=!1,this.processor=void 0,t.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(Ao.ON_TRACK,(async e=>{e?e!==this._mediaStreamTrack&&(this._mediaStreamTrack=e,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(e)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())})),this.processorDestination.on(Ao.ON_NODE,(e=>{this._source.processedNode=e;const t=!e;this._useAudioElement!==t&&(this._played?(this.stop(),this._useAudioElement=t,this.play()):this._useAudioElement=t)}))}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Ao.ON_TRACK),this.processorDestination.removeAllListeners(Ao.ON_NODE)}}var bT;sy([le({argsMap:(e,t)=>[e.getTrackId(),t],throttleTime:300}),ay("design:type",Function),ay("design:paramtypes",[Number]),ay("design:returntype",void 0)],ET.prototype,"setVolume",null),sy([le({argsMap:(e,t)=>[e.getTrackId(),t]}),ay("design:type",Function),ay("design:paramtypes",[String]),ay("design:returntype",oy)],ET.prototype,"setPlaybackDevice",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],ET.prototype,"play",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],ET.prototype,"stop",null),sy([le({argsMap:(e,t)=>[e.getTrackId(),t.name]}),ay("design:type",Function),ay("design:paramtypes",[Object]),ay("design:returntype",Object)],ET.prototype,"pipe",null),sy([le({argsMap:e=>[e.getTrackId()]}),ay("design:type",Function),ay("design:paramtypes",[]),ay("design:returntype",void 0)],ET.prototype,"unpipe",null),function(e){e[e.ONE_BYTE=0]="ONE_BYTE",e[e.TWO_BYTE=1]="TWO_BYTE"}(bT||(bT={}));class ST{constructor(){this._sequence=0,this._startTime=Date.now(),this.isUseOneByte=!0}get startTime(){const e=Date.now()-this._startTime;return e<Math.pow(2,16)?e:(this._startTime+=Math.pow(2,16),this.startTime)}get sequence(){return this._sequence<Math.pow(2,32)?this._sequence++:(this._sequence-=Math.pow(2,32),this.sequence)}serialize(e){const t={commonPacketHeader:{length:0,reserved:0,extension:0,sequence:this.sequence},commonStreamHeader:this.startTime,extension:void 0,payload:e};if(e.byteLength>128){const i=new Uint8Array(4);i.set([1,0,0,0]);const r={id:0,length:4,data:i.buffer},n={profile:this.isUseOneByte?0:1,length:this.isUseOneByte?5:6,datas:[r]};t.commonPacketHeader.extension=1,t.extension=n,t.payload=this.compress(e),t.commonPacketHeader.length=8+(t.extension.length+2)+t.payload.byteLength}else t.commonPacketHeader.length=8+t.payload.byteLength;const i=new ArrayBuffer(t.commonPacketHeader.length),r=new Uint8Array(i),n=new DataView(i);let o=0;if(n.setUint16(o,t.commonPacketHeader.extension<<15|t.commonPacketHeader.reserved<<14|t.commonPacketHeader.length,!0),o+=2,n.setUint32(o,t.commonPacketHeader.sequence,!0),o+=4,n.setUint16(o,t.commonStreamHeader,!0),o+=2,t.extension){const e=this.serializeExtension(t.extension);r.set(new Uint8Array(e),o),o+=e.byteLength}if(r.set(new Uint8Array(t.payload),o),o+=t.payload.byteLength,o!==t.commonPacketHeader.length)throw Error("serialize error!");return i}deserialize(e){if(e.byteLength<4)return new ArrayBuffer(0);const t=new DataView(e);let i=0;const r=t.getUint16(i,!0);i+=2;const n=(32768&r)>>15;t.getUint16(i+2,!0),t.getUint16(i,!0);let o,s;if(i+=4,t.getUint16(i,!0),i+=2,n){s=this.deserializeExtension(e.slice(i)),i+=2+s.length,o=e.slice(i);let t=!1;if(s.datas.length>0){const e=s.datas.find((e=>0===e.id));if(e){t=1==(1&new DataView(e.data).getUint32(0,!0))}}o=t?this.decompress(o):o}else o=e.slice(8);return o}serializeExtension(e){const{profile:t,length:i,datas:r}=e,n=new ArrayBuffer(i+2),o=new Uint8Array(n),s=new DataView(n);let a=0;if(s.setUint8(a++,t),s.setUint8(a++,i),r.forEach((e=>{t?(s.setUint8(a++,e.id),s.setUint8(a++,e.length),o.set(new Uint8Array(e.data),a),a+=e.data.byteLength):(s.setUint8(a++,e.id|e.length<<4),o.set(new Uint8Array(e.data),a),a+=e.data.byteLength)})),a!==i+2)throw Error("serialize extension error, is ".concat(a,"!==").concat(i+2));return n}deserializeExtension(e){const t=new DataView(e);let i=0;const r=t.getUint8(i);i++;const n=t.getUint8(i);i++;const o=r===bT.TWO_BYTE,s=[],a=new DataView(e,2);let c=0;for(;c<n;){let e=0,t=0,i=new ArrayBuffer(0);o?(e=a.getUint8(c),c++,t=a.getUint8(c),c++):(e=15&a.getUint8(c),t=a.getUint8(c)>>4,c++),t>0&&(i=a.buffer.slice(c+2,c+2+t),c+=i.byteLength),s.push({id:e,length:t,data:i})}if(c!==n)throw Error("parse error");return{profile:r,length:n,datas:s}}decompress(e){return fe(new Uint8Array(e))}compress(e){return me(new Uint8Array(e))}}class kT extends a{constructor(e,t){super(),this._version=1,this._type=3,this._config=void 0,this._originDataChannel=void 0,this._dataStreamPacketHeader=new ArrayBuffer(4),this._dataStreamPacketHandler=void 0,this._datachannelEventMap=new Map,this._config=e,t&&(this._originDataChannel=t,this._bandDataChannelEvents(t)),this._initPacketHeader(),this._dataStreamPacketHandler=new ST}get id(){return this._config.id}get ordered(){return this._config.ordered}get maxRetransmits(){return f("DATASTREAM_MAX_RETRANSMITS")}get metadata(){return this._config.metadata}get readyState(){var e,t;return null!==(e=null===(t=this._originDataChannel)||void 0===t?void 0:t.readyState)&&void 0!==e?e:"connecting"}get _originDataChannelId(){var e,t;return null!==(e=null===(t=this._originDataChannel)||void 0===t?void 0:t.id)&&void 0!==e?e:null}getChannelId(){return this.id}getConfig(){return this._config}_close(){this._originDataChannel&&(this._unbindDataChannelEvents(this._originDataChannel),this._originDataChannel=void 0)}async _waitTillOpen(){return new oy(((e,t)=>{if(this._originDataChannel){"open"===this._originDataChannel.readyState&&e();const i=setTimeout((()=>{var e;t(new n(o.DATACHANNEL_CONNECTION_TIMEOUT,"Cannot create datachannel, id: ".concat(null===(e=this._originDataChannel)||void 0===e?void 0:e.id)))}),1e4);this._originDataChannel.onopen=()=>{clearTimeout(i),this._originDataChannel&&this._bandDataChannelEvents(this._originDataChannel),e()},this._originDataChannel.onerror=()=>{throw clearTimeout(i),new n(o.DATACHANNEL_CONNECTION_TIMEOUT)}}else t(new n(o.DATACHANNEL_CONNECTION_TIMEOUT,"cannot find dataChannel"))}))}_updateOriginDataChannel(e){this._originDataChannel=e,this._bandDataChannelEvents(e)}_initPacketHeader(){const e=new DataView(this._dataStreamPacketHeader);e.setUint16(0,this._version),e.setUint8(2,this._type),e.setUint8(3,this._config.id)}_bandDataChannelEvents(e){this._unbindDataChannelEvents(e),[Po.OPEN,Po.CLOSE,Po.ERROR].forEach((t=>{const i=()=>{this.emit(t)};this._datachannelEventMap.set(t,i),e.addEventListener(t,i)}))}_unbindDataChannelEvents(e){Array.from(this._datachannelEventMap.entries()).forEach((t=>{let[i,r]=t;e.removeEventListener(i,r)})),this._datachannelEventMap.clear()}}class IT extends kT{constructor(e){super(e),this._messageListener=void 0,this._messageListener=e=>{if(e.data.byteLength<this._dataStreamPacketHeader.byteLength)throw Error("invalid byteLength: the byte length must exceed "+this._dataStreamPacketHeader.byteLength);const t=e.data.slice(0,this._dataStreamPacketHeader.byteLength);if(new DataView(t).getUint8(3)!==this.id)return;let i=e.data.slice(this._dataStreamPacketHeader.byteLength);i=this._dataStreamPacketHandler.deserialize(i),this.emit(Po.MESSAGE,i)}}_updateOriginDataChannel(e){super._updateOriginDataChannel(e),this._bandRemoteDataChannelEvents()}_close(){this._originDataChannel&&(this._originDataChannel.removeEventListener("message",this._messageListener),super._close())}_bandRemoteDataChannelEvents(){this._originDataChannel&&this._originDataChannel.addEventListener("message",this._messageListener)}}class wT extends kT{send(e){if(this._originDataChannel){let t=e;t=this._dataStreamPacketHandler.serialize(e);const i=new Uint8Array(this._dataStreamPacketHeader.byteLength+t.byteLength);i.set(new Uint8Array(this._dataStreamPacketHeader),0),i.set(new Uint8Array(t),this._dataStreamPacketHeader.byteLength),this._originDataChannel.send(i.buffer)}}}export{ge as AUDIO_CONTEXT_EVENT,eo as AUDIO_ENCODER_CONFIG_SETTINGS,To as AUDIO_TRACK_EVENT,A_ as AudioProcessorContext,w_ as AudioProcessorDestination,_o as AudioSourceEvents,U_ as BufferSourceAudioTrack,oT as CameraVideoTrack,bo as DEFAULT_LOCAL_AUDIO_TRACK_STATS,So as DEFAULT_LOCAL_VIDEO_TRACK_STATS,Io as DEFAULT_NETWORK_QUALITY_STATS,ko as DEFAULT_REMOTE_AUDIO_TRACK_STATS,wo as DEFAULT_REMOTE_VIDEO_TRACK_STATS,kT as DataChannel,Po as DataChannelEvents,r_ as DeviceManager,No as DeviceManagerEvent,Do as DeviceManagerState,Xy as HAS_GUM_AUDIO,Zy as HAS_GUM_VIDEO,L_ as LocalAudioTrack,wT as LocalDataChannel,dy as LocalTrack,vo as LocalTrackEvents,nT as LocalVideoTrack,Mo as MediaElementNumStatus,Co as MediaElementStatus,x_ as MicrophoneAudioTrack,V_ as MixingAudioTrack,Oo as PROCESSOR_CONTEXT_EVENTS,Ao as PROCESSOR_DESTINATION_EVENTS,ET as RemoteAudioTrack,IT as RemoteDataChannel,mo as RemoteStreamFallbackType,fo as RemoteStreamType,_T as RemoteTrack,yo as RemoteTrackEvents,TT as RemoteVideoTrack,Qy as SAFARI_GLOBAL_GUM_LOCK,Jn as SUPPORT_SCREEN_ENCODER_CONFIG_LIST,Qn as SUPPORT_SVC_CONFIG_LIST,Yn as SUPPORT_VIDEO_ENCODER_CONFIG_LIST,po as StreamType,cy as Track,go as TrackEvents,lo as TrackHint,ho as TrackInternalEvent,I_ as VideoProcessorContext,k_ as VideoProcessorDestination,io as __TRACK_LIST__,ro as addTrack,py as audioContextState,l_ as audioElementPlayCenter,Ty as audioTimerLoop,s_ as autoPlayGestureEventEmitter,K_ as blob2Uint8Array,Z_ as checkMediaStreamTrackResolution,p_ as checkTrackState,uT as createBufferSourceAudioTrack,pT as createCameraVideoTrack,cT as createCustomAudioTrack,lT as createCustomVideoTrack,fT as createMicrophoneAndCameraTracks,dT as createMicrophoneAudioTrack,hT as createMixingAudioTrack,mT as createScreenVideoTrack,yy as decodeAudioData,n_ as deviceManager,W_ as emptyImage2TypedArray,eT as frameData2CryptoBuffer,my as getAudioContext,to as getAudioEncoderConfiguration,$_ as getBitrateFromResAndFps,Ay as getCompatibility,j_ as getConstraintsFromCameraConfig,B_ as getConstraintsFromMicrophoneConfig,F_ as getConstraintsFromScreenConfig,Yy as getElectronScreenSources,zy as getElectronScreenStream,qy as getElectronScreenStreamByUserSelect,$y as getLocalStream,$n as getScalabilityConfiguration,Zn as getScreenEncoderConfiguration,by as getSilenceAudioTrack,ky as getSilenceSamplesDuration,tT as getStaticTrackStream,Xn as getVideoEncoderConfiguration,t_ as handleGetUserMediaError,gy as hasAudioContext,so as isAudioEncoderConfiguration,co as isAudioEncoderConfigurationOrPreset,Ro as isBeautyEffectOptions,Eo as isLowStreamParameter,uo as isScreenSourceType,oo as isVideoEncoderConfiguration,ao as isVideoEncoderConfigurationOrPreset,vy as polyfillAudioNode,no as removeTrack,a_ as requestAutoplayGesture,Sy as silenceScriptProcessHandler,wy as updateAgoraRTCCompatibility,z_ as visibilityWatcher};
|
|
5
|
+
import{checkValidConstrainLong as e,checkValidNumber as t,checkValidBoolean as i,checkValidEnum as r,AgoraRTCError as n,AgoraRTCErrorCode as o,isEmpty as s,EventEmitter as a,getRandomString as c,AgoraAPIName as d,AgoraAPITag as u,PromiseMutex as h,emitAsPromiseNoResponse as l,removeItemFromList as p,getParameter as f,getBrowserInfo as m,isIOS as g,isIpadOS as v,BrowserName as _,isChromeKernel as y,nextTick as T,isAboveChrome as E,isAboveFirefox as b,isAboveSafari as S,BrowserOS as k,isSafari as I,isWkWebview as w,isFirefox as A,wait as O,showElectronSelectSourceWindow as D,getElectronInstance as C,isElectron as N,isChrome as R,recursiveMerge as M,isAndroid as P,isHarmonyOS as L,detectSecureContext as x,isAndroidChromium as U,isIOS15 as V,domLoadedPromise as j,emitAsPromise as B,atom as F,runOnce as H,emitAsInvokerNoResponse as G,isIOS16 as W,isLegacyChrome as K,isEdge as z,isAboveEdge as q,isAboveOpera as Y,retryable as J,getOSWithVersion as Q,isAboveIOS15_1 as X,isInPage as Z,noop as $,hexToBytes as ee,md5 as te,isBetweenBrowser as ie,isWindows as re,elementVisibleChecker as ne,safeCloneJson as oe,isAboveIOS15_2 as se,isWechatBrowser as ae,jsonClone as ce}from"@agora-js/shared";export{isElectron}from"@agora-js/shared";import{report as de,logger as ue,AgoraRTCEventUploadType as he,apiInvoke as le}from"@agora-js/report";import pe from"axios";import"webrtc-adapter";import{inflate as fe,deflate as me}from"pako";var ge;!function(e){e.IOS_15_16_INTERRUPTION_START="ios15_16-interruption-start",e.IOS_15_16_INTERRUPTION_END="ios15_16-interruption-end",e.IOS_INTERRUPTION_START="ios-interruption-start",e.IOS_INTERRUPTION_END="ios-interruption-end",e.STATE_CHANGE="state-change"}(ge||(ge={}));var ve="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function _e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ye=function(e){try{return!!e()}catch(e){return!0}},Te=!ye((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})),Ee=Te,be=Function.prototype,Se=be.call,ke=Ee&&be.bind.bind(Se,Se),Ie=Ee?ke:function(e){return function(){return Se.apply(e,arguments)}},we=Ie({}.isPrototypeOf),Ae=function(e){return e&&e.Math==Math&&e},Oe=Ae("object"==typeof globalThis&&globalThis)||Ae("object"==typeof window&&window)||Ae("object"==typeof self&&self)||Ae("object"==typeof ve&&ve)||function(){return this}()||ve||Function("return this")(),De=Te,Ce=Function.prototype,Ne=Ce.apply,Re=Ce.call,Me="object"==typeof Reflect&&Reflect.apply||(De?Re.bind(Ne):function(){return Re.apply(Ne,arguments)}),Pe=Ie,Le=Pe({}.toString),xe=Pe("".slice),Ue=function(e){return xe(Le(e),8,-1)},Ve=Ue,je=Ie,Be=function(e){if("Function"===Ve(e))return je(e)},Fe="object"==typeof document&&document.all,He={all:Fe,IS_HTMLDDA:void 0===Fe&&void 0!==Fe},Ge=He.all,We=He.IS_HTMLDDA?function(e){return"function"==typeof e||e===Ge}:function(e){return"function"==typeof e},Ke={},ze=!ye((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),qe=Te,Ye=Function.prototype.call,Je=qe?Ye.bind(Ye):function(){return Ye.apply(Ye,arguments)},Qe={},Xe={}.propertyIsEnumerable,Ze=Object.getOwnPropertyDescriptor,$e=Ze&&!Xe.call({1:2},1);Qe.f=$e?function(e){var t=Ze(this,e);return!!t&&t.enumerable}:Xe;var et,tt,it=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}},rt=ye,nt=Ue,ot=Object,st=Ie("".split),at=rt((function(){return!ot("z").propertyIsEnumerable(0)}))?function(e){return"String"==nt(e)?st(e,""):ot(e)}:ot,ct=function(e){return null==e},dt=ct,ut=TypeError,ht=function(e){if(dt(e))throw ut("Can't call method on "+e);return e},lt=at,pt=ht,ft=function(e){return lt(pt(e))},mt=We,gt=He.all,vt=He.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:mt(e)||e===gt}:function(e){return"object"==typeof e?null!==e:mt(e)},_t={},yt=_t,Tt=Oe,Et=We,bt=function(e){return Et(e)?e:void 0},St=function(e,t){return arguments.length<2?bt(yt[e])||bt(Tt[e]):yt[e]&&yt[e][t]||Tt[e]&&Tt[e][t]},kt="undefined"!=typeof navigator&&String(navigator.userAgent)||"",It=Oe,wt=kt,At=It.process,Ot=It.Deno,Dt=At&&At.versions||Ot&&Ot.version,Ct=Dt&&Dt.v8;Ct&&(tt=(et=Ct.split("."))[0]>0&&et[0]<4?1:+(et[0]+et[1])),!tt&&wt&&(!(et=wt.match(/Edge\/(\d+)/))||et[1]>=74)&&(et=wt.match(/Chrome\/(\d+)/))&&(tt=+et[1]);var Nt=tt,Rt=Nt,Mt=ye,Pt=Oe.String,Lt=!!Object.getOwnPropertySymbols&&!Mt((function(){var e=Symbol();return!Pt(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&Rt&&Rt<41})),xt=Lt&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,Ut=St,Vt=We,jt=we,Bt=Object,Ft=xt?function(e){return"symbol"==typeof e}:function(e){var t=Ut("Symbol");return Vt(t)&&jt(t.prototype,Bt(e))},Ht=String,Gt=function(e){try{return Ht(e)}catch(e){return"Object"}},Wt=We,Kt=Gt,zt=TypeError,qt=function(e){if(Wt(e))return e;throw zt(Kt(e)+" is not a function")},Yt=qt,Jt=ct,Qt=function(e,t){var i=e[t];return Jt(i)?void 0:Yt(i)},Xt=Je,Zt=We,$t=vt,ei=TypeError,ti={exports:{}},ii=Oe,ri=Object.defineProperty,ni=function(e,t){try{ri(ii,e,{value:t,configurable:!0,writable:!0})}catch(i){ii[e]=t}return t},oi="__core-js_shared__",si=Oe[oi]||ni(oi,{}),ai=si;(ti.exports=function(e,t){return ai[e]||(ai[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.31.1",mode:"pure",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.31.1/LICENSE",source:"https://github.com/zloirock/core-js"});var ci=ti.exports,di=ht,ui=Object,hi=function(e){return ui(di(e))},li=hi,pi=Ie({}.hasOwnProperty),fi=Object.hasOwn||function(e,t){return pi(li(e),t)},mi=Ie,gi=0,vi=Math.random(),_i=mi(1..toString),yi=function(e){return"Symbol("+(void 0===e?"":e)+")_"+_i(++gi+vi,36)},Ti=ci,Ei=fi,bi=yi,Si=Lt,ki=xt,Ii=Oe.Symbol,wi=Ti("wks"),Ai=ki?Ii.for||Ii:Ii&&Ii.withoutSetter||bi,Oi=function(e){return Ei(wi,e)||(wi[e]=Si&&Ei(Ii,e)?Ii[e]:Ai("Symbol."+e)),wi[e]},Di=Je,Ci=vt,Ni=Ft,Ri=Qt,Mi=function(e,t){var i,r;if("string"===t&&Zt(i=e.toString)&&!$t(r=Xt(i,e)))return r;if(Zt(i=e.valueOf)&&!$t(r=Xt(i,e)))return r;if("string"!==t&&Zt(i=e.toString)&&!$t(r=Xt(i,e)))return r;throw ei("Can't convert object to primitive value")},Pi=TypeError,Li=Oi("toPrimitive"),xi=function(e,t){if(!Ci(e)||Ni(e))return e;var i,r=Ri(e,Li);if(r){if(void 0===t&&(t="default"),i=Di(r,e,t),!Ci(i)||Ni(i))return i;throw Pi("Can't convert object to primitive value")}return void 0===t&&(t="number"),Mi(e,t)},Ui=Ft,Vi=function(e){var t=xi(e,"string");return Ui(t)?t:t+""},ji=vt,Bi=Oe.document,Fi=ji(Bi)&&ji(Bi.createElement),Hi=function(e){return Fi?Bi.createElement(e):{}},Gi=Hi,Wi=!ze&&!ye((function(){return 7!=Object.defineProperty(Gi("div"),"a",{get:function(){return 7}}).a})),Ki=ze,zi=Je,qi=Qe,Yi=it,Ji=ft,Qi=Vi,Xi=fi,Zi=Wi,$i=Object.getOwnPropertyDescriptor;Ke.f=Ki?$i:function(e,t){if(e=Ji(e),t=Qi(t),Zi)try{return $i(e,t)}catch(e){}if(Xi(e,t))return Yi(!zi(qi.f,e,t),e[t])};var er=ye,tr=We,ir=/#|\.prototype\./,rr=function(e,t){var i=or[nr(e)];return i==ar||i!=sr&&(tr(t)?er(t):!!t)},nr=rr.normalize=function(e){return String(e).replace(ir,".").toLowerCase()},or=rr.data={},sr=rr.NATIVE="N",ar=rr.POLYFILL="P",cr=rr,dr=qt,ur=Te,hr=Be(Be.bind),lr=function(e,t){return dr(e),void 0===t?e:ur?hr(e,t):function(){return e.apply(t,arguments)}},pr={},fr=ze&&ye((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),mr=vt,gr=String,vr=TypeError,_r=function(e){if(mr(e))return e;throw vr(gr(e)+" is not an object")},yr=ze,Tr=Wi,Er=fr,br=_r,Sr=Vi,kr=TypeError,Ir=Object.defineProperty,wr=Object.getOwnPropertyDescriptor,Ar="enumerable",Or="configurable",Dr="writable";pr.f=yr?Er?function(e,t,i){if(br(e),t=Sr(t),br(i),"function"==typeof e&&"prototype"===t&&"value"in i&&Dr in i&&!i[Dr]){var r=wr(e,t);r&&r[Dr]&&(e[t]=i.value,i={configurable:Or in i?i[Or]:r[Or],enumerable:Ar in i?i[Ar]:r[Ar],writable:!1})}return Ir(e,t,i)}:Ir:function(e,t,i){if(br(e),t=Sr(t),br(i),Tr)try{return Ir(e,t,i)}catch(e){}if("get"in i||"set"in i)throw kr("Accessors not supported");return"value"in i&&(e[t]=i.value),e};var Cr=pr,Nr=it,Rr=ze?function(e,t,i){return Cr.f(e,t,Nr(1,i))}:function(e,t,i){return e[t]=i,e},Mr=Oe,Pr=Me,Lr=Be,xr=We,Ur=Ke.f,Vr=cr,jr=_t,Br=lr,Fr=Rr,Hr=fi,Gr=function(e){var t=function(i,r,n){if(this instanceof t){switch(arguments.length){case 0:return new e;case 1:return new e(i);case 2:return new e(i,r)}return new e(i,r,n)}return Pr(e,this,arguments)};return t.prototype=e.prototype,t},Wr=function(e,t){var i,r,n,o,s,a,c,d,u,h=e.target,l=e.global,p=e.stat,f=e.proto,m=l?Mr:p?Mr[h]:(Mr[h]||{}).prototype,g=l?jr:jr[h]||Fr(jr,h,{})[h],v=g.prototype;for(o in t)r=!(i=Vr(l?o:h+(p?".":"#")+o,e.forced))&&m&&Hr(m,o),a=g[o],r&&(c=e.dontCallGetSet?(u=Ur(m,o))&&u.value:m[o]),s=r&&c?c:t[o],r&&typeof a==typeof s||(d=e.bind&&r?Br(s,Mr):e.wrap&&r?Gr(s):f&&xr(s)?Lr(s):s,(e.sham||s&&s.sham||a&&a.sham)&&Fr(d,"sham",!0),Fr(g,o,d),f&&(Hr(jr,n=h+"Prototype")||Fr(jr,n,{}),Fr(jr[n],o,s),e.real&&v&&(i||!v[o])&&Fr(v,o,s)))},Kr=Math.ceil,zr=Math.floor,qr=Math.trunc||function(e){var t=+e;return(t>0?zr:Kr)(t)},Yr=function(e){var t=+e;return t!=t||0===t?0:qr(t)},Jr=Yr,Qr=Math.max,Xr=Math.min,Zr=function(e,t){var i=Jr(e);return i<0?Qr(i+t,0):Xr(i,t)},$r=Yr,en=Math.min,tn=function(e){return e>0?en($r(e),9007199254740991):0},rn=function(e){return tn(e.length)},nn=ft,on=Zr,sn=rn,an=function(e){return function(t,i,r){var n,o=nn(t),s=sn(o),a=on(r,s);if(e&&i!=i){for(;s>a;)if((n=o[a++])!=n)return!0}else for(;s>a;a++)if((e||a in o)&&o[a]===i)return e||a||0;return!e&&-1}},cn={includes:an(!0),indexOf:an(!1)},dn=cn.includes;Wr({target:"Array",proto:!0,forced:ye((function(){return!Array(1).includes()}))},{includes:function(e){return dn(this,e,arguments.length>1?arguments[1]:void 0)}});var un=_t,hn=function(e){return un[e+"Prototype"]},ln=hn("Array").includes,pn=vt,fn=Ue,mn=Oi("match"),gn=function(e){var t;return pn(e)&&(void 0!==(t=e[mn])?!!t:"RegExp"==fn(e))},vn=TypeError,_n={};_n[Oi("toStringTag")]="z";var yn="[object z]"===String(_n),Tn=yn,En=We,bn=Ue,Sn=Oi("toStringTag"),kn=Object,In="Arguments"==bn(function(){return arguments}()),wn=Tn?bn:function(e){var t,i,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=function(e,t){try{return e[t]}catch(e){}}(t=kn(e),Sn))?i:In?bn(t):"Object"==(r=bn(t))&&En(t.callee)?"Arguments":r},An=wn,On=String,Dn=function(e){if("Symbol"===An(e))throw TypeError("Cannot convert a Symbol value to a string");return On(e)},Cn=Oi("match"),Nn=Wr,Rn=function(e){if(gn(e))throw vn("The method doesn't accept regular expressions");return e},Mn=ht,Pn=Dn,Ln=function(e){var t=/./;try{"/./"[e](t)}catch(i){try{return t[Cn]=!1,"/./"[e](t)}catch(e){}}return!1},xn=Ie("".indexOf);Nn({target:"String",proto:!0,forced:!Ln("includes")},{includes:function(e){return!!~xn(Pn(Mn(this)),Pn(Rn(e)),arguments.length>1?arguments[1]:void 0)}});var Un=hn("String").includes,Vn=we,jn=ln,Bn=Un,Fn=Array.prototype,Hn=String.prototype,Gn=_e((function(e){var t=e.includes;return e===Fn||Vn(Fn,e)&&t===Fn.includes?jn:"string"==typeof e||e===Hn||Vn(Hn,e)&&t===Hn.includes?Bn:t}));function Wn(e,t,i){return{sampleRate:e,stereo:t,bitrate:i}}function Kn(e,t,i,r,n){return{width:e,height:t,frameRate:i,bitrateMin:r,bitrateMax:n}}function zn(e,t,i,r,n){return{width:{max:e},height:{max:t},frameRate:i,bitrateMin:r,bitrateMax:n}}function qn(e,t){return{numSpatialLayers:e,numTemporalLayers:t}}const Yn={"90p":Kn(160,90),"90p_1":Kn(160,90),"120p":Kn(160,120,15,30,65),"120p_1":Kn(160,120,15,30,65),"120p_3":Kn(120,120,15,30,50),"120p_4":Kn(212,120),"180p":Kn(320,180,15,30,140),"180p_1":Kn(320,180,15,30,140),"180p_3":Kn(180,180,15,30,100),"180p_4":Kn(240,180,15,30,120),"240p":Kn(320,240,15,40,200),"240p_1":Kn(320,240,15,40,200),"240p_3":Kn(240,240,15,40,140),"240p_4":Kn(424,240,15,40,220),"360p":Kn(640,360,15,80,400),"360p_1":Kn(640,360,15,80,400),"360p_3":Kn(360,360,15,80,260),"360p_4":Kn(640,360,30,80,600),"360p_6":Kn(360,360,30,80,400),"360p_7":Kn(480,360,15,80,320),"360p_8":Kn(480,360,30,80,490),"360p_9":Kn(640,360,15,80,800),"360p_10":Kn(640,360,24,80,800),"360p_11":Kn(640,360,24,80,1e3),"480p":Kn(640,480,15,100,500),"480p_1":Kn(640,480,15,100,500),"480p_2":Kn(640,480,30,100,1e3),"480p_3":Kn(480,480,15,100,400),"480p_4":Kn(640,480,30,100,750),"480p_6":Kn(480,480,30,100,600),"480p_8":Kn(848,480,15,100,610),"480p_9":Kn(848,480,30,100,930),"480p_10":Kn(640,480,10,100,400),"720p":Kn(1280,720,15,120,1130),"720p_auto":Kn(1280,720,30,900,3e3),"720p_1":Kn(1280,720,15,120,1130),"720p_2":Kn(1280,720,30,120,2e3),"720p_3":Kn(1280,720,30,120,1710),"720p_5":Kn(960,720,15,120,910),"720p_6":Kn(960,720,30,120,1380),"1080p":Kn(1920,1080,15,120,2080),"1080p_1":Kn(1920,1080,15,120,2080),"1080p_2":Kn(1920,1080,30,120,3e3),"1080p_3":Kn(1920,1080,30,120,3150),"1080p_5":Kn(1920,1080,60,120,4780),"1440p":Kn(2560,1440,30,120,4850),"1440p_1":Kn(2560,1440,30,120,4850),"1440p_2":Kn(2560,1440,60,120,7350),"4k":Kn(3840,2160,30,120,8910),"4k_1":Kn(3840,2160,30,120,8910),"4k_3":Kn(3840,2160,60,120,13500)},Jn=[{scaleResolutionDownBy:2,width:1280,height:720,frameRate:30,bitrateMin:300,bitrateMax:900},{scaleResolutionDownBy:1.333333,width:1280,height:720,frameRate:30,bitrateMin:600,bitrateMax:2e3},{scaleResolutionDownBy:1,width:1280,height:720,frameRate:30,bitrateMin:900,bitrateMax:3e3}],Qn={"480p":zn(640,480,5),"480p_1":zn(640,480,5),"480p_2":zn(640,480,30),"480p_3":zn(640,480,15),"720p":zn(1280,720,5),"720p_auto":Kn(1280,720,30,900,3e3),"720p_1":zn(1280,720,5),"720p_2":zn(1280,720,30),"720p_3":zn(1280,720,15),"1080p":zn(1920,1080,5),"1080p_1":zn(1920,1080,5),"1080p_2":zn(1920,1080,30),"1080p_3":zn(1920,1080,15)},Xn={"1SL1TL":qn(1,1),"3SL3TL":qn(3,3),"2SL3TL":qn(2,3)};function Zn(e){return e||(e="480p_1"),"string"==typeof e?Object.assign({},Yn[e]):e}function $n(e){return"string"==typeof e?Object.assign({},Qn[e]):e}function eo(e){return"string"==typeof e?Object.assign({},Xn[e]):e}const to={speech_low_quality:Wn(16e3,!1),speech_standard:Wn(32e3,!1,18),music_standard:Wn(48e3,!1),standard_stereo:Wn(48e3,!0,56),high_quality:Wn(48e3,!1,128),high_quality_stereo:Wn(48e3,!0,192)};function io(e){return"string"==typeof e?Object.assign({},to[e]):e}const ro=[];function no(e){Gn(ro).call(ro,e)||ro.push(e)}function oo(e){const t=ro.indexOf(e);-1!==t&&ro.splice(t,1)}function so(i){return e(i.width,"config.width"),e(i.height,"config.height"),void 0!==i.frameRate&&e(i.frameRate,"config.frameRate"),void 0!==i.bitrateMax&&t(i.bitrateMax,"config.bitrateMax"),void 0!==i.bitrateMin&&t(i.bitrateMin,"config.bitrateMin"),!0}function ao(e){return void 0!==e.sampleRate&&t(e.sampleRate,"config.sampleRate",0,96e3,!0),void 0!==e.sampleSize&&t(e.sampleRate,"config.sampleSize",0,128,!0),void 0!==e.stereo&&i(e.stereo,"config.stereo"),void 0!==e.bitrate&&t(e.bitrate,"config.bitrate",0,1e4,!1),!0}function co(e){return"string"==typeof e?r(e,"profile",Object.keys(Yn)):so(e),!0}function uo(e){return"string"==typeof e?r(e,"profile",Object.keys(to)):ao(e),!0}function ho(e){return r(e,"mediaSource",["screen","window","application"]),!0}var lo,po,fo,mo,go,vo,_o,yo,To,Eo;function bo(i){if(!i)throw new n(o.INVALID_PARAMS);return s(i.width)||e(i.width,"streamParameter.width"),s(i.height)||e(i.height,"streamParameter.height"),s(i.framerate)||e(i.framerate,"streamParameter.framerate"),s(i.bitrate)||t(i.bitrate,"streamParameter.bitrate"),!0}!function(e){e.NEED_RENEGOTIATE="@need_renegotiate",e.NEED_REPLACE_TRACK="@need_replace_track",e.NEED_CLOSE="@need_close",e.NEED_ENABLE_TRACK="@need_enable_track",e.NEED_DISABLE_TRACK="@need_disable_track",e.NEED_SESSION_ID="@need_sid",e.SET_OPTIMIZATION_MODE="@set_optimization_mode",e.GET_STATS="@get_stats",e.GET_RTC_STATS="@get_rtc_stats",e.GET_LOW_VIDEO_TRACK="@get_low_video_track",e.NEED_RESET_REMOTE_SDP="@need_reset_remote_sdp",e.NEED_UPDATE_VIDEO_ENCODER="@need_update_video_encoder",e.NEED_MUTE_TRACK="@need_mute_track",e.NEED_UNMUTE_TRACK="@need_unmute_track"}(lo||(lo={})),function(e){e.SCREEN_TRACK="screen_track",e.CUSTOM_TRACK="custome_track",e.LOW_STREAM="low_stream"}(po||(po={})),function(e){e[e.HIGH_STREAM=0]="HIGH_STREAM",e[e.LOW_STREAM=1]="LOW_STREAM"}(fo||(fo={})),function(e){e[e.HIGH_STREAM=0]="HIGH_STREAM",e[e.LOW_STREAM=1]="LOW_STREAM"}(mo||(mo={})),function(e){e[e.DISABLE=0]="DISABLE",e[e.LOW_STREAM=1]="LOW_STREAM",e[e.AUDIO_ONLY=2]="AUDIO_ONLY"}(go||(go={})),function(e){e.TRANSCEIVER_UPDATED="transceiver-updated"}(vo||(vo={})),function(e){e.SOURCE_STATE_CHANGE="source-state-change",e.TRACK_ENDED="track-ended",e.BEAUTY_EFFECT_OVERLOAD="beauty-effect-overload",e.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status",e.CLOSED="closed"}(_o||(_o={})),function(e){e.FIRST_FRAME_DECODED="first-frame-decoded",e.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status"}(yo||(yo={})),function(e){e.AUDIO_SOURCE_STATE_CHANGE="audio_source_state_change",e.RECEIVE_TRACK_BUFFER="receive_track_buffer",e.ON_AUDIO_BUFFER="on_audio_buffer",e.UPDATE_SOURCE="update_source"}(To||(To={})),function(e){e.UPDATE_TRACK_SOURCE="update-track-source"}(Eo||(Eo={}));const So={sendVolumeLevel:0,sendBitrate:0,sendBytes:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,currentPacketLossRate:0},ko={sendBytes:0,sendBitrate:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,sendResolutionHeight:0,sendResolutionWidth:0,captureResolutionHeight:0,captureResolutionWidth:0,targetSendBitrate:0,totalDuration:0,totalFreezeTime:0,currentPacketLossRate:0},Io={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveLevel:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1},wo={uplinkNetworkQuality:0,downlinkNetworkQuality:0},Ao={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,receiveResolutionHeight:0,receiveResolutionWidth:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1};var Oo,Do,Co,No,Ro;function Mo(e){return void 0!==e.smoothnessLevel&&t(e.smoothnessLevel,"options.smoothnessLevel",0,1,!1),void 0!==e.lighteningLevel&&t(e.lighteningLevel,"options.lighteningLevel",0,1,!1),void 0!==e.rednessLevel&&t(e.rednessLevel,"options.rednessLevel",0,1,!1),void 0!==e.lighteningContrastLevel&&r(e.lighteningContrastLevel,"options.lighteningContrastLevel",[0,1,2]),!0}!function(e){e.ON_TRACK="on_track",e.ON_NODE="on_node"}(Oo||(Oo={})),function(e){e.REQUEST_UPDATE_CONSTRAINTS="request_update_constraints",e.REQUEST_CONSTRAINTS="request_constraints"}(Do||(Do={})),function(e){e.IDLE="IDLE",e.INITING="INITING",e.INITEND="INITEND"}(Co||(Co={})),function(e){e.STATE_CHANGE="state_change",e.RECORDING_DEVICE_CHANGED="recordingDeviceChanged",e.PLAYOUT_DEVICE_CHANGED="playoutDeviceChanged",e.CAMERA_DEVICE_CHANGED="cameraDeviceChanged"}(No||(No={})),function(e){e.NONE="none",e.INIT="init",e.CANPLAY="canplay",e.PLAYING="playing",e.PAUSED="paused",e.SUSPEND="suspend",e.STALLED="stalled",e.WAITING="waiting",e.ERROR="error",e.DESTROYED="destroyed",e.ABORT="abort",e.ENDED="ended",e.EMPTIED="emptied",e.LOADEDDATA="loadeddata"}(Ro||(Ro={}));const Po={uninit:100,none:110,init:120,loadeddata:130,canplay:200,playing:210,paused:220,suspend:300,stalled:310,waiting:320,error:330,destroyed:340,abort:350,ended:360,emptied:370};var Lo;!function(e){e.OPEN="open",e.MESSAGE="message",e.CLOSE="close",e.CLOSING="closing",e.ERROR="error"}(Lo||(Lo={}));var xo={exports:{}},Uo=Wr,Vo=ze,jo=pr.f;Uo({target:"Object",stat:!0,forced:Object.defineProperty!==jo,sham:!Vo},{defineProperty:jo});var Bo=_t.Object,Fo=xo.exports=function(e,t,i){return Bo.defineProperty(e,t,i)};Bo.defineProperty.sham&&(Fo.sham=!0);var Ho=_e(xo.exports),Go=Ue,Wo=Array.isArray||function(e){return"Array"==Go(e)},Ko=TypeError,zo=Vi,qo=pr,Yo=it,Jo=function(e,t,i){var r=zo(t);r in e?qo.f(e,r,Yo(0,i)):e[r]=i},Qo=We,Xo=si,Zo=Ie(Function.toString);Qo(Xo.inspectSource)||(Xo.inspectSource=function(e){return Zo(e)});var $o=Xo.inspectSource,es=Ie,ts=ye,is=We,rs=wn,ns=$o,os=function(){},ss=[],as=St("Reflect","construct"),cs=/^\s*(?:class|function)\b/,ds=es(cs.exec),us=!cs.exec(os),hs=function(e){if(!is(e))return!1;try{return as(os,ss,e),!0}catch(e){return!1}},ls=function(e){if(!is(e))return!1;switch(rs(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return us||!!ds(cs,ns(e))}catch(e){return!0}};ls.sham=!0;var ps=!as||ts((function(){var e;return hs(hs.call)||!hs(Object)||!hs((function(){e=!0}))||e}))?ls:hs,fs=Wo,ms=ps,gs=vt,vs=Oi("species"),_s=Array,ys=function(e){var t;return fs(e)&&(t=e.constructor,(ms(t)&&(t===_s||fs(t.prototype))||gs(t)&&null===(t=t[vs]))&&(t=void 0)),void 0===t?_s:t},Ts=function(e,t){return new(ys(e))(0===t?0:t)},Es=ye,bs=Nt,Ss=Oi("species"),ks=Wr,Is=ye,ws=Wo,As=vt,Os=hi,Ds=rn,Cs=function(e){if(e>9007199254740991)throw Ko("Maximum allowed index exceeded");return e},Ns=Jo,Rs=Ts,Ms=function(e){return bs>=51||!Es((function(){var t=[];return(t.constructor={})[Ss]=function(){return{foo:1}},1!==t[e](Boolean).foo}))},Ps=Nt,Ls=Oi("isConcatSpreadable"),xs=Ps>=51||!Is((function(){var e=[];return e[Ls]=!1,e.concat()[0]!==e})),Us=function(e){if(!As(e))return!1;var t=e[Ls];return void 0!==t?!!t:ws(e)};ks({target:"Array",proto:!0,arity:1,forced:!xs||!Ms("concat")},{concat:function(e){var t,i,r,n,o,s=Os(this),a=Rs(s,0),c=0;for(t=-1,r=arguments.length;t<r;t++)if(Us(o=-1===t?s:arguments[t]))for(n=Ds(o),Cs(c+n),i=0;i<n;i++,c++)i in o&&Ns(a,c,o[i]);else Cs(c+1),Ns(a,c++,o);return a.length=c,a}});var Vs={},js={},Bs=fi,Fs=ft,Hs=cn.indexOf,Gs=js,Ws=Ie([].push),Ks=function(e,t){var i,r=Fs(e),n=0,o=[];for(i in r)!Bs(Gs,i)&&Bs(r,i)&&Ws(o,i);for(;t.length>n;)Bs(r,i=t[n++])&&(~Hs(o,i)||Ws(o,i));return o},zs=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],qs=Ks,Ys=zs,Js=Object.keys||function(e){return qs(e,Ys)},Qs=ze,Xs=fr,Zs=pr,$s=_r,ea=ft,ta=Js;Vs.f=Qs&&!Xs?Object.defineProperties:function(e,t){$s(e);for(var i,r=ea(t),n=ta(t),o=n.length,s=0;o>s;)Zs.f(e,i=n[s++],r[i]);return e};var ia,ra=St("document","documentElement"),na=yi,oa=ci("keys"),sa=function(e){return oa[e]||(oa[e]=na(e))},aa=_r,ca=Vs,da=zs,ua=js,ha=ra,la=Hi,pa="prototype",fa="script",ma=sa("IE_PROTO"),ga=function(){},va=function(e){return"<"+fa+">"+e+"</"+fa+">"},_a=function(e){e.write(va("")),e.close();var t=e.parentWindow.Object;return e=null,t},ya=function(){try{ia=new ActiveXObject("htmlfile")}catch(e){}var e,t,i;ya="undefined"!=typeof document?document.domain&&ia?_a(ia):(t=la("iframe"),i="java"+fa+":",t.style.display="none",ha.appendChild(t),t.src=String(i),(e=t.contentWindow.document).open(),e.write(va("document.F=Object")),e.close(),e.F):_a(ia);for(var r=da.length;r--;)delete ya[pa][da[r]];return ya()};ua[ma]=!0;var Ta=Object.create||function(e,t){var i;return null!==e?(ga[pa]=aa(e),i=new ga,ga[pa]=null,i[ma]=e):i=ya(),void 0===t?i:ca.f(i,t)},Ea={},ba=Ks,Sa=zs.concat("length","prototype");Ea.f=Object.getOwnPropertyNames||function(e){return ba(e,Sa)};var ka={},Ia=Zr,wa=rn,Aa=Jo,Oa=Array,Da=Math.max,Ca=Ue,Na=ft,Ra=Ea.f,Ma=function(e,t,i){for(var r=wa(e),n=Ia(t,r),o=Ia(void 0===i?r:i,r),s=Oa(Da(o-n,0)),a=0;n<o;n++,a++)Aa(s,a,e[n]);return s.length=a,s},Pa="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];ka.f=function(e){return Pa&&"Window"==Ca(e)?function(e){try{return Ra(e)}catch(e){return Ma(Pa)}}(e):Ra(Na(e))};var La={};La.f=Object.getOwnPropertySymbols;var xa=Rr,Ua=function(e,t,i,r){return r&&r.enumerable?e[t]=i:xa(e,t,i),e},Va=pr,ja=function(e,t,i){return Va.f(e,t,i)},Ba={},Fa=Oi;Ba.f=Fa;var Ha,Ga,Wa,Ka=_t,za=fi,qa=Ba,Ya=pr.f,Ja=function(e){var t=Ka.Symbol||(Ka.Symbol={});za(t,e)||Ya(t,e,{value:qa.f(e)})},Qa=Je,Xa=St,Za=Oi,$a=Ua,ec=function(){var e=Xa("Symbol"),t=e&&e.prototype,i=t&&t.valueOf,r=Za("toPrimitive");t&&!t[r]&&$a(t,r,(function(e){return Qa(i,this)}),{arity:1})},tc=wn,ic=yn?{}.toString:function(){return"[object "+tc(this)+"]"},rc=yn,nc=pr.f,oc=Rr,sc=fi,ac=ic,cc=Oi("toStringTag"),dc=function(e,t,i,r){if(e){var n=i?e:e.prototype;sc(n,cc)||nc(n,cc,{configurable:!0,value:t}),r&&!rc&&oc(n,"toString",ac)}},uc=We,hc=Oe.WeakMap,lc=uc(hc)&&/native code/.test(String(hc)),pc=Oe,fc=vt,mc=Rr,gc=fi,vc=si,_c=sa,yc=js,Tc="Object already initialized",Ec=pc.TypeError,bc=pc.WeakMap;if(lc||vc.state){var Sc=vc.state||(vc.state=new bc);Sc.get=Sc.get,Sc.has=Sc.has,Sc.set=Sc.set,Ha=function(e,t){if(Sc.has(e))throw Ec(Tc);return t.facade=e,Sc.set(e,t),t},Ga=function(e){return Sc.get(e)||{}},Wa=function(e){return Sc.has(e)}}else{var kc=_c("state");yc[kc]=!0,Ha=function(e,t){if(gc(e,kc))throw Ec(Tc);return t.facade=e,mc(e,kc,t),t},Ga=function(e){return gc(e,kc)?e[kc]:{}},Wa=function(e){return gc(e,kc)}}var Ic={set:Ha,get:Ga,has:Wa,enforce:function(e){return Wa(e)?Ga(e):Ha(e,{})},getterFor:function(e){return function(t){var i;if(!fc(t)||(i=Ga(t)).type!==e)throw Ec("Incompatible receiver, "+e+" required");return i}}},wc=lr,Ac=at,Oc=hi,Dc=rn,Cc=Ts,Nc=Ie([].push),Rc=function(e){var t=1==e,i=2==e,r=3==e,n=4==e,o=6==e,s=7==e,a=5==e||o;return function(c,d,u,h){for(var l,p,f=Oc(c),m=Ac(f),g=wc(d,u),v=Dc(m),_=0,y=h||Cc,T=t?y(c,v):i||s?y(c,0):void 0;v>_;_++)if((a||_ in m)&&(p=g(l=m[_],_,f),e))if(t)T[_]=p;else if(p)switch(e){case 3:return!0;case 5:return l;case 6:return _;case 2:Nc(T,l)}else switch(e){case 4:return!1;case 7:Nc(T,l)}return o?-1:r||n?n:T}},Mc={forEach:Rc(0),map:Rc(1),filter:Rc(2),some:Rc(3),every:Rc(4),find:Rc(5),findIndex:Rc(6),filterReject:Rc(7)},Pc=Wr,Lc=Oe,xc=Je,Uc=Ie,Vc=ze,jc=Lt,Bc=ye,Fc=fi,Hc=we,Gc=_r,Wc=ft,Kc=Vi,zc=Dn,qc=it,Yc=Ta,Jc=Js,Qc=Ea,Xc=ka,Zc=La,$c=Ke,ed=pr,td=Vs,id=Qe,rd=Ua,nd=ja,od=ci,sd=js,ad=yi,cd=Oi,dd=Ba,ud=Ja,hd=ec,ld=dc,pd=Ic,fd=Mc.forEach,md=sa("hidden"),gd="Symbol",vd="prototype",_d=pd.set,yd=pd.getterFor(gd),Td=Object[vd],Ed=Lc.Symbol,bd=Ed&&Ed[vd],Sd=Lc.TypeError,kd=Lc.QObject,Id=$c.f,wd=ed.f,Ad=Xc.f,Od=id.f,Dd=Uc([].push),Cd=od("symbols"),Nd=od("op-symbols"),Rd=od("wks"),Md=!kd||!kd[vd]||!kd[vd].findChild,Pd=Vc&&Bc((function(){return 7!=Yc(wd({},"a",{get:function(){return wd(this,"a",{value:7}).a}})).a}))?function(e,t,i){var r=Id(Td,t);r&&delete Td[t],wd(e,t,i),r&&e!==Td&&wd(Td,t,r)}:wd,Ld=function(e,t){var i=Cd[e]=Yc(bd);return _d(i,{type:gd,tag:e,description:t}),Vc||(i.description=t),i},xd=function(e,t,i){e===Td&&xd(Nd,t,i),Gc(e);var r=Kc(t);return Gc(i),Fc(Cd,r)?(i.enumerable?(Fc(e,md)&&e[md][r]&&(e[md][r]=!1),i=Yc(i,{enumerable:qc(0,!1)})):(Fc(e,md)||wd(e,md,qc(1,{})),e[md][r]=!0),Pd(e,r,i)):wd(e,r,i)},Ud=function(e,t){Gc(e);var i=Wc(t),r=Jc(i).concat(Fd(i));return fd(r,(function(t){Vc&&!xc(Vd,i,t)||xd(e,t,i[t])})),e},Vd=function(e){var t=Kc(e),i=xc(Od,this,t);return!(this===Td&&Fc(Cd,t)&&!Fc(Nd,t))&&(!(i||!Fc(this,t)||!Fc(Cd,t)||Fc(this,md)&&this[md][t])||i)},jd=function(e,t){var i=Wc(e),r=Kc(t);if(i!==Td||!Fc(Cd,r)||Fc(Nd,r)){var n=Id(i,r);return!n||!Fc(Cd,r)||Fc(i,md)&&i[md][r]||(n.enumerable=!0),n}},Bd=function(e){var t=Ad(Wc(e)),i=[];return fd(t,(function(e){Fc(Cd,e)||Fc(sd,e)||Dd(i,e)})),i},Fd=function(e){var t=e===Td,i=Ad(t?Nd:Wc(e)),r=[];return fd(i,(function(e){!Fc(Cd,e)||t&&!Fc(Td,e)||Dd(r,Cd[e])})),r};jc||(rd(bd=(Ed=function(){if(Hc(bd,this))throw Sd("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?zc(arguments[0]):void 0,t=ad(e),i=function(e){this===Td&&xc(i,Nd,e),Fc(this,md)&&Fc(this[md],t)&&(this[md][t]=!1),Pd(this,t,qc(1,e))};return Vc&&Md&&Pd(Td,t,{configurable:!0,set:i}),Ld(t,e)})[vd],"toString",(function(){return yd(this).tag})),rd(Ed,"withoutSetter",(function(e){return Ld(ad(e),e)})),id.f=Vd,ed.f=xd,td.f=Ud,$c.f=jd,Qc.f=Xc.f=Bd,Zc.f=Fd,dd.f=function(e){return Ld(cd(e),e)},Vc&&nd(bd,"description",{configurable:!0,get:function(){return yd(this).description}})),Pc({global:!0,constructor:!0,wrap:!0,forced:!jc,sham:!jc},{Symbol:Ed}),fd(Jc(Rd),(function(e){ud(e)})),Pc({target:gd,stat:!0,forced:!jc},{useSetter:function(){Md=!0},useSimple:function(){Md=!1}}),Pc({target:"Object",stat:!0,forced:!jc,sham:!Vc},{create:function(e,t){return void 0===t?Yc(e):Ud(Yc(e),t)},defineProperty:xd,defineProperties:Ud,getOwnPropertyDescriptor:jd}),Pc({target:"Object",stat:!0,forced:!jc},{getOwnPropertyNames:Bd}),hd(),ld(Ed,gd),sd[md]=!0;var Hd=Lt&&!!Symbol.for&&!!Symbol.keyFor,Gd=Wr,Wd=St,Kd=fi,zd=Dn,qd=ci,Yd=Hd,Jd=qd("string-to-symbol-registry"),Qd=qd("symbol-to-string-registry");Gd({target:"Symbol",stat:!0,forced:!Yd},{for:function(e){var t=zd(e);if(Kd(Jd,t))return Jd[t];var i=Wd("Symbol")(t);return Jd[t]=i,Qd[i]=t,i}});var Xd=Wr,Zd=fi,$d=Ft,eu=Gt,tu=Hd,iu=ci("symbol-to-string-registry");Xd({target:"Symbol",stat:!0,forced:!tu},{keyFor:function(e){if(!$d(e))throw TypeError(eu(e)+" is not a symbol");if(Zd(iu,e))return iu[e]}});var ru=Ie([].slice),nu=Wo,ou=We,su=Ue,au=Dn,cu=Ie([].push),du=Wr,uu=St,hu=Me,lu=Je,pu=Ie,fu=ye,mu=We,gu=Ft,vu=ru,_u=function(e){if(ou(e))return e;if(nu(e)){for(var t=e.length,i=[],r=0;r<t;r++){var n=e[r];"string"==typeof n?cu(i,n):"number"!=typeof n&&"Number"!=su(n)&&"String"!=su(n)||cu(i,au(n))}var o=i.length,s=!0;return function(e,t){if(s)return s=!1,t;if(nu(this))return t;for(var r=0;r<o;r++)if(i[r]===e)return t}}},yu=Lt,Tu=String,Eu=uu("JSON","stringify"),bu=pu(/./.exec),Su=pu("".charAt),ku=pu("".charCodeAt),Iu=pu("".replace),wu=pu(1..toString),Au=/[\uD800-\uDFFF]/g,Ou=/^[\uD800-\uDBFF]$/,Du=/^[\uDC00-\uDFFF]$/,Cu=!yu||fu((function(){var e=uu("Symbol")();return"[null]"!=Eu([e])||"{}"!=Eu({a:e})||"{}"!=Eu(Object(e))})),Nu=fu((function(){return'"\\udf06\\ud834"'!==Eu("\udf06\ud834")||'"\\udead"'!==Eu("\udead")})),Ru=function(e,t){var i=vu(arguments),r=_u(t);if(mu(r)||void 0!==e&&!gu(e))return i[1]=function(e,t){if(mu(r)&&(t=lu(r,this,Tu(e),t)),!gu(t))return t},hu(Eu,null,i)},Mu=function(e,t,i){var r=Su(i,t-1),n=Su(i,t+1);return bu(Ou,e)&&!bu(Du,n)||bu(Du,e)&&!bu(Ou,r)?"\\u"+wu(ku(e,0),16):e};Eu&&du({target:"JSON",stat:!0,arity:3,forced:Cu||Nu},{stringify:function(e,t,i){var r=vu(arguments),n=hu(Cu?Ru:Eu,null,r);return Nu&&"string"==typeof n?Iu(n,Au,Mu):n}});var Pu=La,Lu=hi;Wr({target:"Object",stat:!0,forced:!Lt||ye((function(){Pu.f(1)}))},{getOwnPropertySymbols:function(e){var t=Pu.f;return t?t(Lu(e)):[]}}),Ja("asyncIterator"),Ja("hasInstance"),Ja("isConcatSpreadable"),Ja("iterator"),Ja("match"),Ja("matchAll"),Ja("replace"),Ja("search"),Ja("species"),Ja("split");var xu=ec;Ja("toPrimitive"),xu();var Uu=St,Vu=dc;Ja("toStringTag"),Vu(Uu("Symbol"),"Symbol"),Ja("unscopables"),dc(Oe.JSON,"JSON",!0);var ju,Bu,Fu,Hu=_t.Symbol,Gu={},Wu=ze,Ku=fi,zu=Function.prototype,qu=Wu&&Object.getOwnPropertyDescriptor,Yu=Ku(zu,"name"),Ju={EXISTS:Yu,PROPER:Yu&&"something"===function(){}.name,CONFIGURABLE:Yu&&(!Wu||Wu&&qu(zu,"name").configurable)},Qu=!ye((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype})),Xu=fi,Zu=We,$u=hi,eh=Qu,th=sa("IE_PROTO"),ih=Object,rh=ih.prototype,nh=eh?ih.getPrototypeOf:function(e){var t=$u(e);if(Xu(t,th))return t[th];var i=t.constructor;return Zu(i)&&t instanceof i?i.prototype:t instanceof ih?rh:null},oh=ye,sh=We,ah=vt,ch=Ta,dh=nh,uh=Ua,hh=Oi("iterator"),lh=!1;[].keys&&("next"in(Fu=[].keys())?(Bu=dh(dh(Fu)))!==Object.prototype&&(ju=Bu):lh=!0);var ph=!ah(ju)||oh((function(){var e={};return ju[hh].call(e)!==e}));sh((ju=ph?{}:ch(ju))[hh])||uh(ju,hh,(function(){return this}));var fh={IteratorPrototype:ju,BUGGY_SAFARI_ITERATORS:lh},mh=fh.IteratorPrototype,gh=Ta,vh=it,_h=dc,yh=Gu,Th=function(){return this},Eh=Ie,bh=qt,Sh=We,kh=String,Ih=TypeError,wh=function(e,t,i){try{return Eh(bh(Object.getOwnPropertyDescriptor(e,t)[i]))}catch(e){}},Ah=_r,Oh=function(e){if("object"==typeof e||Sh(e))return e;throw Ih("Can't set "+kh(e)+" as a prototype")},Dh=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,i={};try{(e=wh(Object.prototype,"__proto__","set"))(i,[]),t=i instanceof Array}catch(e){}return function(i,r){return Ah(i),Oh(r),t?e(i,r):i.__proto__=r,i}}():void 0),Ch=Wr,Nh=Je,Rh=Ju,Mh=function(e,t,i,r){var n=t+" Iterator";return e.prototype=gh(mh,{next:vh(+!r,i)}),_h(e,n,!1,!0),yh[n]=Th,e},Ph=nh,Lh=dc,xh=Ua,Uh=Gu,Vh=fh,jh=Rh.PROPER,Bh=Vh.BUGGY_SAFARI_ITERATORS,Fh=Oi("iterator"),Hh="keys",Gh="values",Wh="entries",Kh=function(){return this},zh=function(e,t,i,r,n,o,s){Mh(i,t,r);var a,c,d,u=function(e){if(e===n&&m)return m;if(!Bh&&e in p)return p[e];switch(e){case Hh:case Gh:case Wh:return function(){return new i(this,e)}}return function(){return new i(this)}},h=t+" Iterator",l=!1,p=e.prototype,f=p[Fh]||p["@@iterator"]||n&&p[n],m=!Bh&&f||u(n),g="Array"==t&&p.entries||f;if(g&&(a=Ph(g.call(new e)))!==Object.prototype&&a.next&&(Lh(a,h,!0,!0),Uh[h]=Kh),jh&&n==Gh&&f&&f.name!==Gh&&(l=!0,m=function(){return Nh(f,this)}),n)if(c={values:u(Gh),keys:o?m:u(Hh),entries:u(Wh)},s)for(d in c)(Bh||l||!(d in p))&&xh(p,d,c[d]);else Ch({target:t,proto:!0,forced:Bh||l},c);return s&&p[Fh]!==m&&xh(p,Fh,m,{name:n}),Uh[t]=m,c},qh=function(e,t){return{value:e,done:t}},Yh=ft,Jh=Gu,Qh=Ic;pr.f;var Xh=zh,Zh=qh,$h="Array Iterator",el=Qh.set,tl=Qh.getterFor($h);Xh(Array,"Array",(function(e,t){el(this,{type:$h,target:Yh(e),index:0,kind:t})}),(function(){var e=tl(this),t=e.target,i=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,Zh(void 0,!0)):Zh("keys"==i?r:"values"==i?t[r]:[r,t[r]],!1)}),"values"),Jh.Arguments=Jh.Array;var il={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},rl=Oe,nl=wn,ol=Rr,sl=Gu,al=Oi("toStringTag");for(var cl in il){var dl=rl[cl],ul=dl&&dl.prototype;ul&&nl(ul)!==al&&ol(ul,al,cl),sl[cl]=sl.Array}var hl=Hu,ll=Oi,pl=pr.f,fl=ll("metadata"),ml=Function.prototype;void 0===ml[fl]&&pl(ml,fl,{value:null}),Ja("dispose"),Ja("metadata");var gl=hl;Ja("asyncDispose");var vl=Ie,_l=St("Symbol"),yl=_l.keyFor,Tl=vl(_l.prototype.valueOf),El=_l.isRegisteredSymbol||function(e){try{return void 0!==yl(Tl(e))}catch(e){return!1}};Wr({target:"Symbol",stat:!0},{isRegisteredSymbol:El});for(var bl=ci,Sl=St,kl=Ie,Il=Ft,wl=Oi,Al=Sl("Symbol"),Ol=Al.isWellKnownSymbol,Dl=Sl("Object","getOwnPropertyNames"),Cl=kl(Al.prototype.valueOf),Nl=bl("wks"),Rl=0,Ml=Dl(Al),Pl=Ml.length;Rl<Pl;Rl++)try{var Ll=Ml[Rl];Il(Al[Ll])&&wl(Ll)}catch(e){}var xl=function(e){if(Ol&&Ol(e))return!0;try{for(var t=Cl(e),i=0,r=Dl(Nl),n=r.length;i<n;i++)if(Nl[r[i]]==t)return!0}catch(e){}return!1};Wr({target:"Symbol",stat:!0,forced:!0},{isWellKnownSymbol:xl}),Ja("matcher"),Ja("observable"),Wr({target:"Symbol",stat:!0,name:"isRegisteredSymbol"},{isRegistered:El}),Wr({target:"Symbol",stat:!0,name:"isWellKnownSymbol",forced:!0},{isWellKnown:xl}),Ja("metadataKey"),Ja("patternMatch"),Ja("replaceAll");var Ul=_e(gl),Vl=Ie,jl=Yr,Bl=Dn,Fl=ht,Hl=Vl("".charAt),Gl=Vl("".charCodeAt),Wl=Vl("".slice),Kl=function(e){return function(t,i){var r,n,o=Bl(Fl(t)),s=jl(i),a=o.length;return s<0||s>=a?e?"":void 0:(r=Gl(o,s))<55296||r>56319||s+1===a||(n=Gl(o,s+1))<56320||n>57343?e?Hl(o,s):r:e?Wl(o,s,s+2):n-56320+(r-55296<<10)+65536}},zl={codeAt:Kl(!1),charAt:Kl(!0)}.charAt,ql=Dn,Yl=Ic,Jl=zh,Ql=qh,Xl="String Iterator",Zl=Yl.set,$l=Yl.getterFor(Xl);Jl(String,"String",(function(e){Zl(this,{type:Xl,string:ql(e),index:0})}),(function(){var e,t=$l(this),i=t.string,r=t.index;return r>=i.length?Ql(void 0,!0):(e=zl(i,r),t.index+=e.length,Ql(e,!1))}));var ep=_e(Ba.f("iterator"));function tp(e){return tp="function"==typeof Ul&&"symbol"==typeof ep?function(e){return typeof e}:function(e){return e&&"function"==typeof Ul&&e.constructor===Ul&&e!==Ul.prototype?"symbol":typeof e},tp(e)}var ip=_e(Ba.f("toPrimitive"));function rp(e){var t=function(e,t){if("object"!==tp(e)||null===e)return e;var i=e[ip];if(void 0!==i){var r=i.call(e,t||"default");if("object"!==tp(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===tp(t)?t:String(t)}function np(e,t,i){return(t=rp(t))in e?Ho(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var op=St,sp=Ea,ap=La,cp=_r,dp=Ie([].concat),up=op("Reflect","ownKeys")||function(e){var t=sp.f(cp(e)),i=ap.f;return i?dp(t,i(e)):t},hp=fi,lp=up,pp=Ke,fp=pr,mp=vt,gp=Rr,vp=Error,_p=Ie("".replace),yp=String(vp("zxcasd").stack),Tp=/\n\s*at [^:]*:[^\n]*/,Ep=Tp.test(yp),bp=it,Sp=!ye((function(){var e=Error("a");return!("stack"in e)||(Object.defineProperty(e,"stack",bp(1,7)),7!==e.stack)})),kp=Rr,Ip=function(e,t){if(Ep&&"string"==typeof e&&!vp.prepareStackTrace)for(;t--;)e=_p(e,Tp,"");return e},wp=Sp,Ap=Error.captureStackTrace,Op=Gu,Dp=Oi("iterator"),Cp=Array.prototype,Np=wn,Rp=Qt,Mp=ct,Pp=Gu,Lp=Oi("iterator"),xp=function(e){if(!Mp(e))return Rp(e,Lp)||Rp(e,"@@iterator")||Pp[Np(e)]},Up=Je,Vp=qt,jp=_r,Bp=Gt,Fp=xp,Hp=TypeError,Gp=Je,Wp=_r,Kp=Qt,zp=lr,qp=Je,Yp=_r,Jp=Gt,Qp=function(e){return void 0!==e&&(Op.Array===e||Cp[Dp]===e)},Xp=rn,Zp=we,$p=function(e,t){var i=arguments.length<2?Fp(e):t;if(Vp(i))return jp(Up(i,e));throw Hp(Bp(e)+" is not iterable")},ef=xp,tf=function(e,t,i){var r,n;Wp(e);try{if(!(r=Kp(e,"return"))){if("throw"===t)throw i;return i}r=Gp(r,e)}catch(e){n=!0,r=e}if("throw"===t)throw i;if(n)throw r;return Wp(r),i},rf=TypeError,nf=function(e,t){this.stopped=e,this.result=t},of=nf.prototype,sf=function(e,t,i){var r,n,o,s,a,c,d,u=i&&i.that,h=!(!i||!i.AS_ENTRIES),l=!(!i||!i.IS_RECORD),p=!(!i||!i.IS_ITERATOR),f=!(!i||!i.INTERRUPTED),m=zp(t,u),g=function(e){return r&&tf(r,"normal",e),new nf(!0,e)},v=function(e){return h?(Yp(e),f?m(e[0],e[1],g):m(e[0],e[1])):f?m(e,g):m(e)};if(l)r=e.iterator;else if(p)r=e;else{if(!(n=ef(e)))throw rf(Jp(e)+" is not iterable");if(Qp(n)){for(o=0,s=Xp(e);s>o;o++)if((a=v(e[o]))&&Zp(of,a))return a;return new nf(!1)}r=$p(e,n)}for(c=l?e.next:r.next;!(d=qp(c,r)).done;){try{a=v(d.value)}catch(e){tf(r,"throw",e)}if("object"==typeof a&&a&&Zp(of,a))return a}return new nf(!1)},af=Dn,cf=Wr,df=we,uf=nh,hf=Dh,lf=function(e,t,i){for(var r=lp(t),n=fp.f,o=pp.f,s=0;s<r.length;s++){var a=r[s];hp(e,a)||i&&hp(i,a)||n(e,a,o(t,a))}},pf=Ta,ff=Rr,mf=it,gf=function(e,t){mp(t)&&"cause"in t&&gp(e,"cause",t.cause)},vf=function(e,t,i,r){wp&&(Ap?Ap(e,t):kp(e,"stack",Ip(i,r)))},_f=sf,yf=function(e,t){return void 0===e?arguments.length<2?"":t:af(e)},Tf=Oi("toStringTag"),Ef=Error,bf=[].push,Sf=function(e,t){var i,r=df(kf,this);hf?i=hf(Ef(),r?uf(this):kf):(i=r?this:pf(kf),ff(i,Tf,"Error")),void 0!==t&&ff(i,"message",yf(t)),vf(i,Sf,i.stack,1),arguments.length>2&&gf(i,arguments[2]);var n=[];return _f(e,bf,{that:n}),ff(i,"errors",n),i};hf?hf(Sf,Ef):lf(Sf,Ef,{name:!0});var kf=Sf.prototype=pf(Ef.prototype,{constructor:mf(1,Sf),message:mf(1,""),name:mf(1,"AggregateError")});cf({global:!0,constructor:!0,arity:2},{AggregateError:Sf});var If,wf,Af,Of,Df="undefined"!=typeof process&&"process"==Ue(process),Cf=St,Nf=ja,Rf=ze,Mf=Oi("species"),Pf=we,Lf=TypeError,xf=ps,Uf=Gt,Vf=TypeError,jf=_r,Bf=function(e){if(xf(e))return e;throw Vf(Uf(e)+" is not a constructor")},Ff=ct,Hf=Oi("species"),Gf=function(e,t){var i,r=jf(e).constructor;return void 0===r||Ff(i=jf(r)[Hf])?t:Bf(i)},Wf=TypeError,Kf=/(?:ipad|iphone|ipod).*applewebkit/i.test(kt),zf=Oe,qf=Me,Yf=lr,Jf=We,Qf=fi,Xf=ye,Zf=ra,$f=ru,em=Hi,tm=function(e,t){if(e<t)throw Wf("Not enough arguments");return e},im=Kf,rm=Df,nm=zf.setImmediate,om=zf.clearImmediate,sm=zf.process,am=zf.Dispatch,cm=zf.Function,dm=zf.MessageChannel,um=zf.String,hm=0,lm={},pm="onreadystatechange";Xf((function(){If=zf.location}));var fm=function(e){if(Qf(lm,e)){var t=lm[e];delete lm[e],t()}},mm=function(e){return function(){fm(e)}},gm=function(e){fm(e.data)},vm=function(e){zf.postMessage(um(e),If.protocol+"//"+If.host)};nm&&om||(nm=function(e){tm(arguments.length,1);var t=Jf(e)?e:cm(e),i=$f(arguments,1);return lm[++hm]=function(){qf(t,void 0,i)},wf(hm),hm},om=function(e){delete lm[e]},rm?wf=function(e){sm.nextTick(mm(e))}:am&&am.now?wf=function(e){am.now(mm(e))}:dm&&!im?(Of=(Af=new dm).port2,Af.port1.onmessage=gm,wf=Yf(Of.postMessage,Of)):zf.addEventListener&&Jf(zf.postMessage)&&!zf.importScripts&&If&&"file:"!==If.protocol&&!Xf(vm)?(wf=vm,zf.addEventListener("message",gm,!1)):wf=pm in em("script")?function(e){Zf.appendChild(em("script"))[pm]=function(){Zf.removeChild(this),fm(e)}}:function(e){setTimeout(mm(e),0)});var _m={set:nm,clear:om},ym=function(){this.head=null,this.tail=null};ym.prototype={add:function(e){var t={item:e,next:null},i=this.tail;i?i.next=t:this.head=t,this.tail=t},get:function(){var e=this.head;if(e)return null===(this.head=e.next)&&(this.tail=null),e.item}};var Tm,Em,bm,Sm,km,Im=ym,wm=/ipad|iphone|ipod/i.test(kt)&&"undefined"!=typeof Pebble,Am=/web0s(?!.*chrome)/i.test(kt),Om=Oe,Dm=lr,Cm=Ke.f,Nm=_m.set,Rm=Im,Mm=Kf,Pm=wm,Lm=Am,xm=Df,Um=Om.MutationObserver||Om.WebKitMutationObserver,Vm=Om.document,jm=Om.process,Bm=Om.Promise,Fm=Cm(Om,"queueMicrotask"),Hm=Fm&&Fm.value;if(!Hm){var Gm=new Rm,Wm=function(){var e,t;for(xm&&(e=jm.domain)&&e.exit();t=Gm.get();)try{t()}catch(e){throw Gm.head&&Tm(),e}e&&e.enter()};Mm||xm||Lm||!Um||!Vm?!Pm&&Bm&&Bm.resolve?((Sm=Bm.resolve(void 0)).constructor=Bm,km=Dm(Sm.then,Sm),Tm=function(){km(Wm)}):xm?Tm=function(){jm.nextTick(Wm)}:(Nm=Dm(Nm,Om),Tm=function(){Nm(Wm)}):(Em=!0,bm=Vm.createTextNode(""),new Um(Wm).observe(bm,{characterData:!0}),Tm=function(){bm.data=Em=!Em}),Hm=function(e){Gm.head||Tm(),Gm.add(e)}}var Km=Hm,zm=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}},qm=Oe.Promise,Ym="object"==typeof Deno&&Deno&&"object"==typeof Deno.version,Jm=!Ym&&!Df&&"object"==typeof window&&"object"==typeof document,Qm=Oe,Xm=qm,Zm=We,$m=cr,eg=$o,tg=Oi,ig=Jm,rg=Ym,ng=Nt,og=Xm&&Xm.prototype,sg=tg("species"),ag=!1,cg=Zm(Qm.PromiseRejectionEvent),dg=$m("Promise",(function(){var e=eg(Xm),t=e!==String(Xm);if(!t&&66===ng)return!0;if(!og.catch||!og.finally)return!0;if(!ng||ng<51||!/native code/.test(e)){var i=new Xm((function(e){e(1)})),r=function(e){e((function(){}),(function(){}))};if((i.constructor={})[sg]=r,!(ag=i.then((function(){}))instanceof r))return!0}return!t&&(ig||rg)&&!cg})),ug={CONSTRUCTOR:dg,REJECTION_EVENT:cg,SUBCLASSING:ag},hg={},lg=qt,pg=TypeError,fg=function(e){var t,i;this.promise=new e((function(e,r){if(void 0!==t||void 0!==i)throw pg("Bad Promise constructor");t=e,i=r})),this.resolve=lg(t),this.reject=lg(i)};hg.f=function(e){return new fg(e)};var mg,gg,vg=Wr,_g=Df,yg=Oe,Tg=Je,Eg=Ua,bg=dc,Sg=function(e){var t=Cf(e);Rf&&t&&!t[Mf]&&Nf(t,Mf,{configurable:!0,get:function(){return this}})},kg=qt,Ig=We,wg=vt,Ag=function(e,t){if(Pf(t,e))return e;throw Lf("Incorrect invocation")},Og=Gf,Dg=_m.set,Cg=Km,Ng=function(e,t){try{1==arguments.length?console.error(e):console.error(e,t)}catch(e){}},Rg=zm,Mg=Im,Pg=Ic,Lg=qm,xg=ug,Ug=hg,Vg="Promise",jg=xg.CONSTRUCTOR,Bg=xg.REJECTION_EVENT,Fg=Pg.getterFor(Vg),Hg=Pg.set,Gg=Lg&&Lg.prototype,Wg=Lg,Kg=Gg,zg=yg.TypeError,qg=yg.document,Yg=yg.process,Jg=Ug.f,Qg=Jg,Xg=!!(qg&&qg.createEvent&&yg.dispatchEvent),Zg="unhandledrejection",$g=function(e){var t;return!(!wg(e)||!Ig(t=e.then))&&t},ev=function(e,t){var i,r,n,o=t.value,s=1==t.state,a=s?e.ok:e.fail,c=e.resolve,d=e.reject,u=e.domain;try{a?(s||(2===t.rejection&&ov(t),t.rejection=1),!0===a?i=o:(u&&u.enter(),i=a(o),u&&(u.exit(),n=!0)),i===e.promise?d(zg("Promise-chain cycle")):(r=$g(i))?Tg(r,i,c,d):c(i)):d(o)}catch(e){u&&!n&&u.exit(),d(e)}},tv=function(e,t){e.notified||(e.notified=!0,Cg((function(){for(var i,r=e.reactions;i=r.get();)ev(i,e);e.notified=!1,t&&!e.rejection&&rv(e)})))},iv=function(e,t,i){var r,n;Xg?((r=qg.createEvent("Event")).promise=t,r.reason=i,r.initEvent(e,!1,!0),yg.dispatchEvent(r)):r={promise:t,reason:i},!Bg&&(n=yg["on"+e])?n(r):e===Zg&&Ng("Unhandled promise rejection",i)},rv=function(e){Tg(Dg,yg,(function(){var t,i=e.facade,r=e.value;if(nv(e)&&(t=Rg((function(){_g?Yg.emit("unhandledRejection",r,i):iv(Zg,i,r)})),e.rejection=_g||nv(e)?2:1,t.error))throw t.value}))},nv=function(e){return 1!==e.rejection&&!e.parent},ov=function(e){Tg(Dg,yg,(function(){var t=e.facade;_g?Yg.emit("rejectionHandled",t):iv("rejectionhandled",t,e.value)}))},sv=function(e,t,i){return function(r){e(t,r,i)}},av=function(e,t,i){e.done||(e.done=!0,i&&(e=i),e.value=t,e.state=2,tv(e,!0))},cv=function(e,t,i){if(!e.done){e.done=!0,i&&(e=i);try{if(e.facade===t)throw zg("Promise can't be resolved itself");var r=$g(t);r?Cg((function(){var i={done:!1};try{Tg(r,t,sv(cv,i,e),sv(av,i,e))}catch(t){av(i,t,e)}})):(e.value=t,e.state=1,tv(e,!1))}catch(t){av({done:!1},t,e)}}};jg&&(Kg=(Wg=function(e){Ag(this,Kg),kg(e),Tg(mg,this);var t=Fg(this);try{e(sv(cv,t),sv(av,t))}catch(e){av(t,e)}}).prototype,(mg=function(e){Hg(this,{type:Vg,done:!1,notified:!1,parent:!1,reactions:new Mg,rejection:!1,state:0,value:void 0})}).prototype=Eg(Kg,"then",(function(e,t){var i=Fg(this),r=Jg(Og(this,Wg));return i.parent=!0,r.ok=!Ig(e)||e,r.fail=Ig(t)&&t,r.domain=_g?Yg.domain:void 0,0==i.state?i.reactions.add(r):Cg((function(){ev(r,i)})),r.promise})),gg=function(){var e=new mg,t=Fg(e);this.promise=e,this.resolve=sv(cv,t),this.reject=sv(av,t)},Ug.f=Jg=function(e){return e===Wg||undefined===e?new gg(e):Qg(e)}),vg({global:!0,constructor:!0,wrap:!0,forced:jg},{Promise:Wg}),bg(Wg,Vg,!1,!0),Sg(Vg);var dv=Oi("iterator"),uv=!1;try{var hv=0,lv={next:function(){return{done:!!hv++}},return:function(){uv=!0}};lv[dv]=function(){return this},Array.from(lv,(function(){throw 2}))}catch(e){}var pv=qm,fv=function(e,t){if(!t&&!uv)return!1;var i=!1;try{var r={};r[dv]=function(){return{next:function(){return{done:i=!0}}}},e(r)}catch(e){}return i},mv=ug.CONSTRUCTOR||!fv((function(e){pv.all(e).then(void 0,(function(){}))})),gv=Je,vv=qt,_v=hg,yv=zm,Tv=sf;Wr({target:"Promise",stat:!0,forced:mv},{all:function(e){var t=this,i=_v.f(t),r=i.resolve,n=i.reject,o=yv((function(){var i=vv(t.resolve),o=[],s=0,a=1;Tv(e,(function(e){var c=s++,d=!1;a++,gv(i,t,e).then((function(e){d||(d=!0,o[c]=e,--a||r(o))}),n)})),--a||r(o)}));return o.error&&n(o.value),i.promise}});var Ev=Wr,bv=ug.CONSTRUCTOR;qm&&qm.prototype,Ev({target:"Promise",proto:!0,forced:bv,real:!0},{catch:function(e){return this.then(void 0,e)}});var Sv=Je,kv=qt,Iv=hg,wv=zm,Av=sf;Wr({target:"Promise",stat:!0,forced:mv},{race:function(e){var t=this,i=Iv.f(t),r=i.reject,n=wv((function(){var n=kv(t.resolve);Av(e,(function(e){Sv(n,t,e).then(i.resolve,r)}))}));return n.error&&r(n.value),i.promise}});var Ov=Je,Dv=hg;Wr({target:"Promise",stat:!0,forced:ug.CONSTRUCTOR},{reject:function(e){var t=Dv.f(this);return Ov(t.reject,void 0,e),t.promise}});var Cv=_r,Nv=vt,Rv=hg,Mv=function(e,t){if(Cv(e),Nv(t)&&t.constructor===e)return t;var i=Rv.f(e);return(0,i.resolve)(t),i.promise},Pv=Wr,Lv=qm,xv=ug.CONSTRUCTOR,Uv=Mv,Vv=St("Promise"),jv=!xv;Pv({target:"Promise",stat:!0,forced:true},{resolve:function(e){return Uv(jv&&this===Vv?Lv:this,e)}});var Bv=Je,Fv=qt,Hv=hg,Gv=zm,Wv=sf;Wr({target:"Promise",stat:!0,forced:mv},{allSettled:function(e){var t=this,i=Hv.f(t),r=i.resolve,n=i.reject,o=Gv((function(){var i=Fv(t.resolve),n=[],o=0,s=1;Wv(e,(function(e){var a=o++,c=!1;s++,Bv(i,t,e).then((function(e){c||(c=!0,n[a]={status:"fulfilled",value:e},--s||r(n))}),(function(e){c||(c=!0,n[a]={status:"rejected",reason:e},--s||r(n))}))})),--s||r(n)}));return o.error&&n(o.value),i.promise}});var Kv=Je,zv=qt,qv=St,Yv=hg,Jv=zm,Qv=sf,Xv="No one promise resolved";Wr({target:"Promise",stat:!0,forced:mv},{any:function(e){var t=this,i=qv("AggregateError"),r=Yv.f(t),n=r.resolve,o=r.reject,s=Jv((function(){var r=zv(t.resolve),s=[],a=0,c=1,d=!1;Qv(e,(function(e){var u=a++,h=!1;c++,Kv(r,t,e).then((function(e){h||d||(d=!0,n(e))}),(function(e){h||d||(h=!0,s[u]=e,--c||o(new i(s,Xv)))}))})),--c||o(new i(s,Xv))}));return s.error&&o(s.value),r.promise}});var Zv=Wr,$v=qm,e_=ye,t_=St,i_=We,r_=Gf,n_=Mv,o_=$v&&$v.prototype;Zv({target:"Promise",proto:!0,real:!0,forced:!!$v&&e_((function(){o_.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=r_(this,t_("Promise")),i=i_(e);return this.then(i?function(i){return n_(t,e()).then((function(){return i}))}:e,i?function(i){return n_(t,e()).then((function(){throw i}))}:e)}});var s_=_e(_t.Promise);function a_(e,t,i,r){var n,o=arguments.length,s=o<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,i):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,i,r);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(o<3?n(s):o>3?n(t,i,s):n(t,i))||s);return o>3&&s&&Object.defineProperty(t,i,s),s}function c_(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}class d_ extends a{constructor(e,t){super(),this._ID=void 0,this._rtpTransceiver=void 0,this._lowRtpTransceiver=void 0,this._hints=[],this._isClosed=!1,this._originMediaStreamTrack=void 0,this._mediaStreamTrack=void 0,this._external={},this._ID=t||c(8,"track-"),this._originMediaStreamTrack=e,this._mediaStreamTrack=e,no(this)}toString(){return this._ID}getTrackId(){return this._ID}getMediaStreamTrack(e){if(!e){const e=de.reportApiInvoke(null,{name:d.GET_MEDIA_STREAM_TRACK,options:[],tag:u.TRACER});this._mediaStreamTrack&&"string"==typeof this._mediaStreamTrack.label?e.onSuccess(this._mediaStreamTrack.label):e.onSuccess("")}return this._mediaStreamTrack}getRTCRtpTransceiver(e){return e===fo.LOW_STREAM?this._lowRtpTransceiver:this._rtpTransceiver}getMediaStreamTrackSettings(){return this.getMediaStreamTrack(!0).getSettings()}close(){this._isClosed=!0,this._lowRtpTransceiver=void 0,this._rtpTransceiver=void 0,oo(this),this.emit(_o.CLOSED)}_updateRtpTransceiver(e,t){if(t===fo.LOW_STREAM){if(this._lowRtpTransceiver===e)return;this._lowRtpTransceiver=e}else{if(this._rtpTransceiver===e)return;this._rtpTransceiver=e}this.emit(vo.TRANSCEIVER_UPDATED,e,t)}}class u_ extends d_{get isExternalTrack(){return this._isExternalTrack}get muted(){return this._muted}get enabled(){return this._enabled}get processorContext(){return this._processorContext}set processorContext(e){this._processorContext=e}constructor(e,t){super(e,t),this._enabled=!0,this._muted=!1,this._isExternalTrack=!1,this._isClosed=!1,this._enabledMutex=void 0,this.processor=void 0,this._handleTrackEnded=()=>{this.onTrackEnded()},this._enabledMutex=new h("".concat(this.getTrackId())),e.addEventListener("ended",this._handleTrackEnded)}getTrackLabel(){var e,t;return null!==(e=null===(t=this._originMediaStreamTrack)||void 0===t?void 0:t.label)&&void 0!==e?e:""}close(){this._isClosed||(this.stop(),this._originMediaStreamTrack.stop(),this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack.stop(),this._mediaStreamTrack=null),this._originMediaStreamTrack=null,this._enabledMutex=null,ue.debug("[".concat(this.getTrackId(),"] close")),this.emit(lo.NEED_CLOSE),super.close())}async _updateOriginMediaStreamTrack(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this._isExternalTrack=i,e!==this._originMediaStreamTrack&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),t&&this._originMediaStreamTrack.stop()),e.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=e,this._muted&&(this._originMediaStreamTrack.enabled=!1),this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await l(this,lo.NEED_REPLACE_TRACK,this),this.processor&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}))}_getDefaultPlayerConfig(){return{}}onTrackEnded(){ue.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(_o.TRACK_ENDED)}stateCheck(e,t){if(ue.debug("check track state, [muted: ".concat(this._muted,", enabled: ").concat(this._enabled,"] to [").concat(e,": ").concat(t,"]")),i(t,e),this._enabled&&this._muted&&"enabled"===e&&!1===t)throw new n(o.TRACK_STATE_UNREACHABLE,"cannot set enabled while the track is muted").print("error",ue);if(!this._enabled&&!this._muted&&"muted"===e&&!0===t)throw new n(o.TRACK_STATE_UNREACHABLE,"cannot set muted while the track is disabled").print("error",ue)}getProcessorStats(){return this.processorContext.gatherStats()}getProcessorUsage(){return this.processorContext.gatherUsage()}}function h_(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}const l_=window.AudioContext||window.webkitAudioContext;let p_=null;const f_=new class extends a{constructor(){super(...arguments),this.prevState=void 0,this.curState=void 0,this.currentTime=void 0,this.currentTimeStuckAt=void 0,this.interruptDetectorTrack=void 0,this.onLocalAudioTrackMute=()=>{ue.info("ios15-interruption-start"),this.emit(ge.IOS_15_16_INTERRUPTION_START)},this.onLocalAudioTrackUnmute=async()=>{ue.info("ios15-interruption-end"),"running"!==this.curState||this.duringInterruption?ue.info("ios15-interruption-end-canceled"):(p_&&await p_.suspend(),this.emit(ge.IOS_15_16_INTERRUPTION_END))}}get duringInterruption(){return"running"===this.prevState&&"interrupted"===this.curState}bindInterruptDetectorTrack(e){ue.debug("webaudio bindInterruptDetectorTrack ".concat(e.getTrackId())),this.interruptDetectorTrack||(this.interruptDetectorTrack=e,this.interruptDetectorTrack._mediaStreamTrack.onmute=this.onLocalAudioTrackMute,this.interruptDetectorTrack._mediaStreamTrack.onunmute=this.onLocalAudioTrackUnmute)}unbindInterruptDetectorTrack(e){ue.debug("webaudio unbindInterruptDetectorTrack ".concat(e.getTrackId())),this.interruptDetectorTrack&&this.interruptDetectorTrack===e&&(this.interruptDetectorTrack._mediaStreamTrack&&(this.interruptDetectorTrack._mediaStreamTrack.onmute=null,this.interruptDetectorTrack._mediaStreamTrack.onunmute=null),this.interruptDetectorTrack=void 0)}};function m_(){if(!l_)return void ue.error("your browser is not support web audio");ue.info("create audio context");const e=function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?h_(Object(i),!0).forEach((function(t){np(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):h_(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}({},f("WEBAUDIO_INIT_OPTIONS"));ue.debug("audio context init option:",JSON.stringify(e)),p_=new l_(e),f_.curState=p_.state,p_.onstatechange=()=>{f_.prevState=f_.curState,f_.curState=p_?p_.state:void 0;const{prevState:e,curState:t}=f_,i="running"===t,r="interrupted"===t,n="running"===e,o="suspended"===e,s="interrupted"===e,a=m().osVersion;(g()||v())&&n&&r&&(ue.info("ios".concat(a,"-interruption-start")),f_.emit(ge.IOS_INTERRUPTION_START)),(g()||v())&&(o||s)&&i&&(ue.info("ios".concat(a,"-interruption-end")),f_.emit(ge.IOS_INTERRUPTION_END)),e!==t&&(ue.debug("AudioContext State Change","".concat(e,"=>").concat(t)),f_.emit(ge.STATE_CHANGE))},setInterval((()=>{var e;const t=null===(e=p_)||void 0===e?void 0:e.currentTime;if(f_.currentTime!==t)f_.currentTimeStuckAt&&(ue.debug("AudioContext current time resume at ".concat(t)),f_.currentTimeStuckAt=void 0),f_.currentTime=t;else{if(t!==f_.currentTimeStuckAt){de.reportApiInvoke(null,{name:"WEB_AUDIO_CURRENT_TIME_STUCK",options:{currentTime:t},tag:u.TRACER}).onSuccess(),ue.warning("AudioContext current time stuck at ".concat(t))}f_.currentTimeStuckAt=t}}),5e3),async function(e){const t=["click","contextmenu","auxclick","dblclick","mousedown","mouseup","touchend","keydown","keyup"];let i,r=!1,n=!1,o=!1;function s(t){"running"===e.state?a(!1):g()||v()?"suspended"===e.state&&(a(!0),t&&e.resume().then(d,d)):"closed"!==e.state&&(a(!0),t&&e.resume().then(d,d))}function a(e){if(r!==e){r=e;for(let i=0,r=t;i<r.length;i+=1){const t=r[i];e?window.addEventListener(t,u,{capture:!0,passive:!0}):window.removeEventListener(t,u,{capture:!0,passive:!0})}}}function c(){s(!0)}function d(){s(!1)}function u(){s(!0)}function h(e){if(!o)if(i.paused)if(e){let e;l(!1),o=!0;try{e=i.play(),e?e.then(p,p):(i.addEventListener("playing",p),i.addEventListener("abort",p),i.addEventListener("error",p))}catch(e){p()}}else l(!0);else l(!1)}function l(e){if(n!==e){n=e;for(let i=0,r=t;i<r.length;i++){const t=r[i];e?window.addEventListener(t,f,{capture:!0,passive:!0}):window.removeEventListener(t,f,{capture:!0,passive:!0})}}}function p(){i.removeEventListener("playing",p),i.removeEventListener("abort",p),i.removeEventListener("error",p),o=!1,h(!1)}function f(){h(!0)}if(g()){const t=e.createMediaStreamDestination(),r=document.createElement("div");r.innerHTML="<audio x-webkit-airplay='deny'></audio>",i=r.children.item(0),i.controls=!1,i.disableRemotePlayback=!0,i.preload="auto",i.srcObject=t.stream,h(!0)}f_.on(ge.STATE_CHANGE,c),s(!1)}(p_)}function g_(){if(!p_){if(m_(),!p_)throw new n(o.NOT_SUPPORTED,"can not create audio context");return p_}return p_}function v_(){return!!p_}function __(e){if(function(){if(null!==T_)return T_;const e=g_(),t=e.createBufferSource(),i=e.createGain(),r=e.createGain();t.connect(i),t.connect(r),t.disconnect(i);let n=!1;try{t.disconnect(i)}catch(e){n=!0}return t.disconnect(),T_=n,n}())return;const t=e.connect,i=e.disconnect;e.connect=(i,r,n)=>{var o;return e._inputNodes||(e._inputNodes=[]),Gn(o=e._inputNodes).call(o,i)||(i instanceof AudioNode?(e._inputNodes.push(i),t.call(e,i,r,n)):t.call(e,i,r)),e},e.disconnect=(r,n,o)=>{i.call(e),r?p(e._inputNodes,r):e._inputNodes=[];for(const i of e._inputNodes)t.call(e,i)}}function y_(e){const t=g_();return new s_(((i,r)=>{t.decodeAudioData(e,(e=>{i(e)}),(e=>{r(new n(o.DECODE_AUDIO_FILE_FAILED,e.toString()))}))}))}let T_=null;function E_(e,t){let i=!1;const r=1/t;if(f("DISABLE_WEBAUDIO")){const t=window.setInterval((()=>{i?window.clearInterval(t):e(performance.now()/1e3)}),1e3*r)}else{const t=g_();let n=t.createGain();n.gain.value=0,n.connect(t.destination);const o=()=>{if(i)return void(n=null);const s=t.createOscillator();s.onended=o,s.connect(n),s.start(0),s.stop(t.currentTime+r),e(t.currentTime)};o()}return()=>{i=!0}}let b_=null;function S_(){if(b_)return b_;const e=g_();if(!e.createMediaStreamDestination)throw new n(o.NOT_SUPPORTED,"can not create silence audio track");const t=e.createBufferSource(),i=e.createBuffer(1,44100,44100);t.loop=!0,t.buffer=i;const r=e.createMediaStreamDestination();return t.connect(r),b_=r.stream.getAudioTracks()[0],b_}function k_(e){for(let t=0;t<e.outputBuffer.numberOfChannels;t+=1){const i=e.outputBuffer.getChannelData(t);for(let e=0;e<i.length;e+=1)i[e]=0}return e.inputBuffer}function I_(e){const t=e.getChannelData(0);let i=0,r=0;for(let e=0;e<t.length;e+=1)0===t[e]?(i+=1,i>r&&(r=i)):i=0;return r/t.length*e.duration}const w_={getDisplayMedia:!1,getStreamFromExtension:!1,supportUnifiedPlan:!1,supportMinBitrate:!1,supportSetRtpSenderParameters:!1,supportDualStream:!0,webAudioMediaStreamDest:!1,supportReplaceTrack:!1,supportWebGL:!1,webAudioWithAEC:!1,supportRequestFrame:!1,supportShareAudio:!1,supportDualStreamEncoding:!1,supportDataChannel:!1,supportPCSetConfiguration:!1,supportWebRTCEncodedTransform:!1,supportWebRTCInsertableStream:!1};function A_(){const e=m();w_.getDisplayMedia=function(e){if(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)return!0;return!1}(),w_.getStreamFromExtension=e.name===_.CHROME&&Number(e.version)>34,w_.supportUnifiedPlan=function(){if(!window.RTCRtpTransceiver)return!1;if(!("currentDirection"in RTCRtpTransceiver.prototype))return!1;const e=new RTCPeerConnection;let t=!1;try{e.addTransceiver("audio"),t=!0}catch(e){}return e.close(),t}(),w_.supportMinBitrate=e.name===_.CHROME||e.name===_.EDGE,w_.supportSetRtpSenderParameters=function(){const e=m();if(!window.RTCRtpSender||!window.RTCRtpSender.prototype.setParameters||!window.RTCRtpSender.prototype.getParameters)return!1;return!!y()||(!(!I()&&!w())||e.name===_.FIREFOX&&Number(e.version)>=64)}(),e.name===_.SAFARI&&(Number(e.version)>=14?w_.supportDualStream=!0:w_.supportDualStream=!1),w_.webAudioMediaStreamDest=function(){const e=m();if(e.name===_.SAFARI&&Number(e.version)<12)return!1;return!0}(),w_.supportReplaceTrack=function(){if(!window.RTCRtpSender)return!1;if("function"==typeof RTCRtpSender.prototype.replaceTrack)return!0;return!1}(),w_.supportWebGL="undefined"!=typeof WebGLRenderingContext,w_.supportRequestFrame=!!window.CanvasCaptureMediaStreamTrack,y()||(w_.webAudioWithAEC=!0),w_.supportShareAudio=function(){const e=m();if((e.os===k.WIN_10||e.os===k.WIN_81||e.os===k.WIN_7||e.os===k.LINUX||e.os===k.MAC_OS)&&e.name===_.CHROME&&Number(e.version)>=74)return!0;return!1}(),w_.supportDataChannel=function(){if(E(76)||b(68)||S(14))return!0;return!1}(),w_.supportPCSetConfiguration=function(){const e=window.RTCPeerConnection;return!A()&&!!e&&e.prototype.setConfiguration instanceof Function}(),w_.supportWebRTCEncodedTransform=function(){const e=m();return"Chrome"===e.name&&Number(e.version)>=86}(),w_.supportWebRTCInsertableStream=function(){const e=m();return(e.name===_.CHROME||e.name===_.EDGE)&&Number(e.version)>=94&&"MediaStreamTrackGenerator"in window&&"MediaStreamTrackProcessor"in window}(),T((()=>{w_.supportDualStreamEncoding=function(){const e=m();if(f("DISABLE_WEBAUDIO"))return!0;return"Safari"===e.name&&Number(e.version)>=14||!!("Chrome"===e.name&&/Windows/i.test(e.os||"")&&Number(e.version)>=100&&f("CHROME_DUAL_STREAM_USE_ENCODING"))}(),ue.info("browser compatibility",JSON.stringify(w_),JSON.stringify(e))}))}function O_(){return w_}var D_=qt,C_=hi,N_=at,R_=rn,M_=TypeError,P_=function(e){return function(t,i,r,n){D_(i);var o=C_(t),s=N_(o),a=R_(o),c=e?a-1:0,d=e?-1:1;if(r<2)for(;;){if(c in s){n=s[c],c+=d;break}if(c+=d,e?c<0:a<=c)throw M_("Reduce of empty array with no initial value")}for(;e?c>=0:a>c;c+=d)c in s&&(n=i(n,s[c],c,o));return n}},L_={left:P_(!1),right:P_(!0)},x_=ye,U_=L_.left,V_=function(e,t){var i=[][e];return!!i&&x_((function(){i.call(null,t||function(){return 1},1)}))};Wr({target:"Array",proto:!0,forced:!Df&&Nt>79&&Nt<83||!V_("reduce")},{reduce:function(e){var t=arguments.length;return U_(this,e,t,t>1?arguments[1]:void 0)}});var j_=hn("Array").reduce,B_=we,F_=j_,H_=Array.prototype,G_=_e((function(e){var t=e.reduce;return e===H_||B_(H_,e)&&t===H_.reduce?F_:t}));class W_{constructor(){this.context=void 0,this.analyserNode=void 0,this.sourceNode=void 0,this.context=g_(),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4}updateSource(e){if(e!==this.sourceNode){if(this.sourceNode)try{this.sourceNode.disconnect(this.analyserNode)}catch(e){}this.sourceNode=e,null==e||e.connect(this.analyserNode)}}getVolumeLevel(){if(!this.sourceNode)return 0;if(!this.context||g()||v()||"running"!==this.context.state&&this.context.resume(),!this.analyserNode)return 0;const e=new Float32Array(this.analyserNode.fftSize);if(this.analyserNode.getFloatTimeDomainData)this.analyserNode.getFloatTimeDomainData(e);else{const t=new Uint8Array(this.analyserNode.fftSize);this.analyserNode.getByteTimeDomainData(t);for(let i=0;i<e.length;++i)e[i]=t[i]/128-1}const t=G_(e).call(e,((e,t)=>e+t*t),0)/e.length;return Math.max(10*Math.log10(t)+100,0)/100}getAnalyserNode(){return this.analyserNode}rebuildAnalyser(){try{var e,t;null===(e=this.sourceNode)||void 0===e||e.disconnect(this.analyserNode),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4,null===(t=this.sourceNode)||void 0===t||t.connect(this.analyserNode)}catch(e){ue.warning("rebuild analyser node failed.")}}destroy(){this.updateSource(void 0)}}class K_ extends a{get processSourceNode(){return this.sourceNode}set processedNode(e){var t;if(!this.isDestroyed&&this._processedNode!==e){try{var i;null===(i=this.sourceNode)||void 0===i||i.disconnect(this.outputNode)}catch(e){}null===(t=this._processedNode)||void 0===t||t.disconnect(),this._processedNode=e,this.connect()}}get processedNode(){return this._processedNode}constructor(){super(),this.outputNode=void 0,this.outputTrack=void 0,this.isPlayed=!1,this.context=void 0,this.audioBufferNode=void 0,this.destNode=void 0,this.audioOutputLevel=0,this.volumeLevelAnalyser=void 0,this._processedNode=void 0,this.playNode=void 0,this.isDestroyed=!1,this.onNoAudioInput=void 0,this.isNoAudioInput=!1,this._noAudioInputCount=0,this.context=g_(),this.playNode=this.context.destination,this.outputNode=this.context.createGain(),__(this.outputNode),this.volumeLevelAnalyser=new W_}startGetAudioBuffer(e){this.audioBufferNode||(this.audioBufferNode=this.context.createScriptProcessor(e),this.outputNode.connect(this.audioBufferNode),this.audioBufferNode.connect(this.context.destination),this.audioBufferNode.onaudioprocess=e=>{this.emit(To.ON_AUDIO_BUFFER,k_(e))})}stopGetAudioBuffer(){this.audioBufferNode&&(this.audioBufferNode.onaudioprocess=null,this.outputNode.disconnect(this.audioBufferNode),this.audioBufferNode=void 0)}createOutputTrack(){if(!O_().webAudioMediaStreamDest)throw new n(o.NOT_SUPPORTED,"your browser is not support audio processor");return this.destNode&&this.outputTrack||(this.destNode=this.context.createMediaStreamDestination(),this.outputNode.connect(this.destNode),this.outputTrack=this.destNode.stream.getAudioTracks()[0]),this.outputTrack}play(e){"running"!==this.context.state&&T((()=>{f_.emit("autoplay-failed")})),this.isPlayed=!0,this.playNode=e||this.context.destination,this.outputNode.connect(this.playNode)}stop(){if(this.isPlayed)try{this.outputNode.disconnect(this.playNode)}catch(e){}this.isPlayed=!1}getAccurateVolumeLevel(){return this.volumeLevelAnalyser.getVolumeLevel()}async checkHasAudioInput(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(e>5)return this.isNoAudioInput=!0,this.onNoAudioInput&&this.onNoAudioInput(),!1;g()||v()?"suspended"===this.context.state&&this.context.resume():"running"!==this.context.state&&this.context.resume();const t=this.volumeLevelAnalyser.getAnalyserNode();let i;t.getFloatTimeDomainData?(i=new Float32Array(t.fftSize),t.getFloatTimeDomainData(i)):(i=new Uint8Array(t.fftSize),t.getByteTimeDomainData(i));let r=!1;for(let e=0;e<i.length;e++)0!==i[e]&&(r=!0);return r?(this.isNoAudioInput=!1,!0):(await O(200),await this.checkHasAudioInput(e?e+1:1)&&r)}getAudioVolume(){return this.outputNode.gain.value}setVolume(e){this.outputNode.gain.setValueAtTime(e,this.context.currentTime)}destroy(){this.disconnect(),this.stop(),this.isDestroyed=!0,this.onNoAudioInput=void 0}disconnect(){var e,t;null===(e=this.processedNode)||void 0===e||e.disconnect(),null===(t=this.sourceNode)||void 0===t||t.disconnect(),this.outputNode&&this.outputNode.disconnect()}connect(){var e;this.processedNode?null===(e=this.processedNode)||void 0===e||e.connect(this.outputNode):this.sourceNode&&this.sourceNode.connect(this.outputNode);this.volumeLevelAnalyser.updateSource(this.outputNode)}}class z_ extends K_{get isFreeze(){return!1}constructor(e,t,i){var r;if(super(),this.sourceNode=void 0,this.track=void 0,this.clonedTrack=void 0,this.audioElement=void 0,this.isCurrentTrackCloned=!1,this.isRemoteTrack=!1,this.originVolumeLevelAnalyser=void 0,this.rebuildWebAudio=async()=>{if(ue.debug("ready to rebuild web audio, state:",this.context.state),this.isNoAudioInput&&await this.checkHasAudioInput(),!this.isNoAudioInput||this.isDestroyed)return document.body.removeEventListener("click",this.rebuildWebAudio,!0),void ue.debug("rebuild web audio success, current volume status",this.getAccurateVolumeLevel());this.context.resume().then((()=>ue.info("resume success"))),ue.debug("rebuild web audio because of ios 12 bugs"),this.disconnect();const e=this.track;this.track=this.track.clone(),this.isCurrentTrackCloned?e.stop():this.isCurrentTrackCloned=!0;const t=new MediaStream([this.track]);this.sourceNode=this.context.createMediaStreamSource(t),__(this.sourceNode),this.volumeLevelAnalyser.rebuildAnalyser();const i=this.outputNode.gain.value;this.outputNode=this.context.createGain(),this.outputNode.gain.setValueAtTime(i,this.context.currentTime),__(this.outputNode),this.emit(To.UPDATE_SOURCE),this.connect(),this.audioElement.srcObject=t,this.isPlayed&&this.play(this.playNode),this.checkHasAudioInput()},"audio"!==e.kind)throw new n(o.UNEXPECTED_ERROR);this.track=e;const s=new MediaStream([this.track]);if(this.isRemoteTrack=!!t,this.sourceNode=this.context.createMediaStreamSource(s),__(this.sourceNode),i){const e=i.clone();e.enabled=!0,this.clonedTrack=e,ue.debug("create an unmuted track ".concat(e.id," from the original track ").concat(i.id," to get the volume"));const t=this.context.createMediaStreamSource(new MediaStream([e]));__(t),this.originVolumeLevelAnalyser=new W_,this.originVolumeLevelAnalyser.updateSource(t)}this.connect(),this.audioElement=document.createElement("audio"),this.audioElement.srcObject=s;const a=m();t&&a.os===k.IOS&&Number(null===(r=a.osVersion)||void 0===r?void 0:r.split(".")[0])<15&&(f_.on(ge.STATE_CHANGE,(()=>{"suspended"===this.context.state?document.body.addEventListener("click",this.rebuildWebAudio,!0):"running"===this.context.state&&this.rebuildWebAudio()})),this.checkHasAudioInput().then((e=>{e||document.body.addEventListener("click",this.rebuildWebAudio,!0)})))}updateTrack(e){this.sourceNode.disconnect(),this.track=e,this.isCurrentTrackCloned=!1;const t=new MediaStream([e]);this.sourceNode=this.context.createMediaStreamSource(t),__(this.sourceNode),this.processedNode||this.sourceNode.connect(this.outputNode),this.emit(To.UPDATE_SOURCE),this.audioElement.srcObject=t}destroy(){var e;this.audioElement.srcObject=null,this.audioElement.remove(),f_.off("state-change",this.rebuildWebAudio),null===(e=this.originVolumeLevelAnalyser)||void 0===e||e.destroy(),this.clonedTrack=void 0,super.destroy()}createMediaStreamSourceNode(e){return this.context.createMediaStreamSource(new MediaStream([e]))}updateOriginTrack(e){const t=e.clone();t.enabled=!0,this.clonedTrack&&(this.clonedTrack.stop(),this.clonedTrack=t),ue.debug("create an unmuted track ".concat(t.id," from the original track ").concat(e.id," to get the volume"));const i=this.context.createMediaStreamSource(new MediaStream([t]));__(i),this.originVolumeLevelAnalyser&&this.originVolumeLevelAnalyser.updateSource(i)}getOriginVolumeLevel(){return this.originVolumeLevelAnalyser?this.originVolumeLevelAnalyser.getVolumeLevel():this.getAccurateVolumeLevel()}}async function q_(e,t,i){const r=(e,t)=>e?"number"!=typeof e?e.max||e.exact||e.ideal||e.min||t:e:t,n={audio:!!i&&{mandatory:{chromeMediaSource:"desktop"}},video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:e,maxHeight:r(t.height,1080),maxWidth:r(t.width,1920)}}};return t.frameRate&&"number"!=typeof t.frameRate?(n.video.mandatory.maxFrameRate=t.frameRate.max,n.video.mandatory.minFrameRate=t.frameRate.min):"number"==typeof t.frameRate&&(n.video.mandatory.maxFrameRate=t.frameRate),await navigator.mediaDevices.getUserMedia(n)}async function Y_(e,t){const i=await J_(e.mediaSource),{sourceId:r,audio:n}=await D(i,t);return await q_(r,e,n)}async function J_(e){let t=["window","screen"];"application"!==e&&"window"!==e||(t=["window"]),"screen"===e&&(t=["screen"]);const i=C();if(!i)throw console.error("failed to fetch electron, please mount it to window"),new n(o.ELECTRON_IS_NULL);let r=null;try{var s;r=(null===(s=i.desktopCapturer)||void 0===s?void 0:s.getSources({types:t}))||i.ipcRenderer.invoke("DESKTOP_CAPTURER_GET_SOURCES",{types:t})}catch(e){r=null}r&&r.then||(r=new s_(((e,r)=>{i.desktopCapturer.getSources({types:t},((t,i)=>{t?r(t):e(i)}))})));try{return await r}catch(e){throw new n(o.ELECTRON_DESKTOP_CAPTURER_GET_SOURCES_ERROR,e.toString())}}function Q_(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}const X_=new h("safari");let Z_=!1,$_=!1;async function ey(e,t){let i=0,r=null;for(;i<2;)try{r=await ty(e,t,i>0);break}catch(e){if(e instanceof n)throw ue.error("[".concat(t,"] ").concat(e.toString())),e;const r=iy(e.name||e.code||e,e.message);if(r.code===o.MEDIA_OPTION_INVALID){ue.debug("[".concat(t,"] detect media option invalid, retry")),i+=1,await O(500);continue}throw ue.error("[".concat(t,"] ").concat(r.toString())),r}if(!r)throw new n(o.UNEXPECTED_ERROR,"can not find stream after getUserMedia");return r}async function ty(e,t,i){if(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)throw new n(o.NOT_SUPPORTED,"can not find getUserMedia");i&&(e.video&&(delete e.video.width,delete e.video.height),e.screen&&(delete e.screen.width,delete e.screen.height));const r=O_(),s=new MediaStream;if(e.audioSource&&s.addTrack(e.audioSource),e.videoSource&&s.addTrack(e.videoSource),!e.audio&&!e.video&&!e.screen)return ue.debug("Using Video Source/ Audio Source"),s;if(e.screen)if(N())if(e.screen.sourceId){ry(s,await q_(e.screen.sourceId,e.screen,e.screenAudio))}else{ry(s,await Y_(e.screen,e.screenAudio))}else if(R()&&e.screen.extensionId&&e.screen.mandatory){if(!r.getStreamFromExtension)throw new n(o.NOT_SUPPORTED,"This browser does not support screen sharing");ue.debug("[".concat(t,'] Screen access on chrome stable, looking for extension"'));const i=await(c=e.screen.extensionId,d=t,new s_(((e,t)=>{try{chrome.runtime.sendMessage(c,{getStream:!0},(i=>{if(!i||!i.streamId)return ue.error("[".concat(d,"] No response from Chrome Plugin. Plugin not installed properly"),i),void t(new n(o.CHROME_PLUGIN_NO_RESPONSE,"No response from Chrome Plugin. Plugin not installed properly"));e(i.streamId)}))}catch(e){ue.error("[".concat(d,"] AgoraRTC screensharing plugin is not accessible(").concat(c,")"),e.toString()),t(new n(o.CHROME_PLUGIN_NOT_INSTALL))}})));e.screen.mandatory.chromeMediaSourceId=i;ry(s,await navigator.mediaDevices.getUserMedia({video:{mandatory:e.screen.mandatory}}))}else if(r.getDisplayMedia){var a;e.screen.mediaSource&&ho(e.screen.mediaSource);const i={width:e.screen.width,height:e.screen.height,frameRate:e.screen.frameRate,displaySurface:null!==(a=e.screen.displaySurface)&&void 0!==a?a:"screen"===e.screen.mediaSource?"monitor":e.screen.mediaSource},{selfBrowserSurface:r,surfaceSwitching:n,systemAudio:o}=e.screen,c={selfBrowserSurface:r,surfaceSwitching:n,systemAudio:o};!r&&delete c.selfBrowserSurface,!n&&delete c.surfaceSwitching,!o&&delete c.systemAudio,ue.debug("[".concat(t,"] getDisplayMedia:"),JSON.stringify({video:i,audio:!!e.screenAudio,controls:c}));const d=await navigator.mediaDevices.getDisplayMedia(function(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?Q_(Object(i),!0).forEach((function(t){np(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Q_(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}({video:i,audio:!!e.screenAudio},c));ry(s,d)}else{if(!A())throw ue.error("[".concat(t,"] This browser does not support screenSharing")),new n(o.NOT_SUPPORTED,"This browser does not support screen sharing");{e.screen.mediaSource&&ho(e.screen.mediaSource);const i={video:{mediaSource:e.screen.mediaSource,width:e.screen.width,height:e.screen.height,frameRate:e.screen.frameRate}};ue.debug("[".concat(t,"] getUserMedia: ").concat(JSON.stringify(i)));ry(s,await navigator.mediaDevices.getUserMedia(i))}}var c,d;if(!e.video&&!e.audio)return s;let u={video:e.video,audio:e.audio},h=f("MEDIA_DEVICE_CONSTRAINTS");if(h)try{"string"==typeof h&&(h=JSON.parse(h)),u=M(u,h)}catch(e){}ue.debug("[".concat(t,"] GetUserMedia"),JSON.stringify(u)),m();let l,p=null;(I()||g()||w())&&(p=await X_.lock());try{l=await navigator.mediaDevices.getUserMedia(u)}catch(e){throw p&&p(),e}return u.audio&&(Z_=!0),u.video&&($_=!0),ry(s,l),p&&p(),s}function iy(e,t){switch(e){case"Starting video failed":case"OverconstrainedError":case"TrackStartError":return new n(o.MEDIA_OPTION_INVALID,"".concat(e,": ").concat(t));case"NotFoundError":case"DevicesNotFoundError":return new n(o.DEVICE_NOT_FOUND,"".concat(e,": ").concat(t));case"NotSupportedError":return new n(o.NOT_SUPPORTED,"".concat(e,": ").concat(t));case"NotReadableError":return new n(o.NOT_READABLE,"".concat(e,": ").concat(t));case"InvalidStateError":case"NotAllowedError":case"PERMISSION_DENIED":case"PermissionDeniedError":return new n(o.PERMISSION_DENIED,"".concat(e,": ").concat(t));case"ConstraintNotSatisfiedError":return new n(o.CONSTRAINT_NOT_SATISFIED,"".concat(e,": ").concat(t));default:return ue.error("getUserMedia unexpected error",e),new n(o.UNEXPECTED_ERROR,"".concat(e,": ").concat(t))}}function ry(e,t){const i=e.getVideoTracks()[0],r=e.getAudioTracks()[0],n=t.getVideoTracks()[0],o=t.getAudioTracks()[0];o&&(r&&e.removeTrack(r),e.addTrack(o)),n&&(i&&e.removeTrack(i),e.addTrack(n))}class ny extends a{get state(){return this._state}set state(e){e!==this._state&&(this.emit(No.STATE_CHANGE,e),this._state=e)}constructor(){super(),this._state=Co.IDLE,this.isAccessMicrophonePermission=!1,this.isAccessCameraPermission=!1,this.lastAccessMicrophonePermission=!1,this.lastAccessCameraPermission=!1,this.checkdeviceMatched=!1,this.deviceInfoMap=new Map,this.init().then((()=>{navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",this.updateDevicesInfo.bind(this)),window.setInterval((()=>{(f("ENUMERATE_DEVICES_INTERVAL")||(P()||L())&&y())&&this.updateDevicesInfo()}),f("ENUMERATE_DEVICES_INTERVAL_TIME"))})).catch((e=>ue.error(e.toString())))}async enumerateDevices(e,t){let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices){return new n(o.NOT_SUPPORTED,"enumerateDevices() not supported.").throw()}const r=await navigator.mediaDevices.enumerateDevices(),s=this.checkMediaDeviceInfoIsOk(r);let a=!this.isAccessMicrophonePermission&&e,c=!this.isAccessCameraPermission&&t;s.audio&&(a=!1),s.video&&(c=!1);let d=null,u=null,h=null;if(!i&&(a||c)){if(X_.isLocked){ue.debug("[device manager] wait GUM lock");(await X_.lock())(),ue.debug("[device manager] GUM unlock")}if(Z_&&(a=!1,this.isAccessMicrophonePermission=!0),$_&&(c=!1,this.isAccessCameraPermission=!0),ue.debug("[device manager] check media device permissions",e,t,a,c),a&&c){try{h=await navigator.mediaDevices.getUserMedia({audio:!0,video:!0})}catch(e){const t=iy(e.name||e.code||e,e.message);if(t.code===o.PERMISSION_DENIED)throw t;ue.warning("getUserMedia failed in getDevices",t)}this.isAccessCameraPermission=!0,this.isAccessMicrophonePermission=!0}else if(a){try{d=await navigator.mediaDevices.getUserMedia({audio:e})}catch(e){const t=iy(e.name||e.code||e,e.message);if(t.code===o.PERMISSION_DENIED)throw t;ue.warning("getUserMedia failed in getDevices",t)}this.isAccessMicrophonePermission=!0}else if(c){try{u=await navigator.mediaDevices.getUserMedia({video:t})}catch(e){const t=iy(e.name||e.code||e,e.message);if(t.code===o.PERMISSION_DENIED)throw t;ue.warning("getUserMedia failed in getDevices",t)}this.isAccessCameraPermission=!0}ue.debug("[device manager] mic permission",e,"cam permission",t)}try{const e=await navigator.mediaDevices.enumerateDevices();return d&&d.getTracks().forEach((e=>e.stop())),u&&u.getTracks().forEach((e=>e.stop())),h&&h.getTracks().forEach((e=>e.stop())),d=null,u=null,h=null,e}catch(e){d&&d.getTracks().forEach((e=>e.stop())),u&&u.getTracks().forEach((e=>e.stop())),h&&h.getTracks().forEach((e=>e.stop())),d=null,u=null,h=null;return new n(o.ENUMERATE_DEVICES_FAILED,e.toString()).throw()}}async getRecordingDevices(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return(await this.enumerateDevices(!0,!1,e)).filter((e=>"audioinput"===e.kind))}async getCamerasDevices(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return(await this.enumerateDevices(!1,!0,e)).filter((e=>"videoinput"===e.kind))}async getSpeakers(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return(await this.enumerateDevices(!0,!1,e)).filter((e=>"audiooutput"===e.kind))}searchDeviceIdByName(e){let t=null;return this.deviceInfoMap.forEach((i=>{i.device.label===e&&(t=i.device.deviceId)})),t}async getDeviceById(e){const t=(await this.enumerateDevices(!0,!0,!0)).find((t=>t.deviceId===e));if(!t)throw new n(o.DEVICE_NOT_FOUND,"deviceId: ".concat(e));return t}async init(){this.state=Co.INITING;try{await this.updateDevicesInfo(),this.state=Co.INITEND}catch(e){if(ue.warning("Device Detection functionality cannot start properly.",e.toString()),this.state=Co.IDLE,!x()){new n(o.WEB_SECURITY_RESTRICT,"Your context is limited by web security, please try using https protocol or localhost.").throw()}throw e}}async updateDevicesInfo(){const e=await this.enumerateDevices(!0,!0,!0),t=Date.now(),i=[];if(e[0]&&e[0].label&&!1===this.checkdeviceMatched){this.checkdeviceMatched=!0;const t=e.find((e=>"audioinput"===e.kind&&"default"===e.deviceId)),i=e.find((e=>"audiooutput"===e.kind&&"default"===e.deviceId));t&&i?i.groupId===t.groupId?ue.debug("[device-check] default input ".concat(t.label," and output ").concat(i.label," is the same group")):ue.warning("[device-check] default input ".concat(t.label," and output ").concat(i.label," is not the same group")):ue.debug("[device-check] default input or output not found")}const r=this.checkMediaDeviceInfoIsOk(e);if(e.forEach((e=>{if(!e.deviceId)return;const r=this.deviceInfoMap.get("".concat(e.kind,"_").concat(e.deviceId));if("ACTIVE"!==(r?r.state:"INACTIVE")){const r={initAt:t,updateAt:t,device:e,state:"ACTIVE"};this.deviceInfoMap.set("".concat(e.kind,"_").concat(e.deviceId),r),i.push(r)}r&&(r.updateAt=t)})),this.deviceInfoMap.forEach(((e,r)=>{"ACTIVE"===e.state&&e.updateAt!==t&&(e.state="INACTIVE",i.push(e))})),this.state!==Co.INITEND)return r.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),void(r.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0));i.forEach((e=>{switch(e.device.kind){case"audioinput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(No.RECORDING_DEVICE_CHANGED,e);break;case"videoinput":this.lastAccessCameraPermission&&this.isAccessCameraPermission&&this.emit(No.CAMERA_DEVICE_CHANGED,e);break;case"audiooutput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(No.PLAYOUT_DEVICE_CHANGED,e)}})),r.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),r.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0)}checkMediaDeviceInfoIsOk(e){const t=e.filter((e=>"audioinput"===e.kind)),i=e.filter((e=>"videoinput"===e.kind)),r={audio:!1,video:!1};for(const e of t)if(e.label&&e.deviceId){r.audio=!0;break}for(const e of i)if(e.label&&e.deviceId){r.video=!0;break}return r}}const oy=new ny;let sy=!1;const ay=new class extends a{constructor(){super(...arguments),this.onAutoplayFailed=void 0,this.onAudioAutoplayFailed=void 0}};function cy(){if(m(),!sy){const e=t=>{t.preventDefault(),sy=!1,U()?document.body.removeEventListener("click",e,!0):(document.body.removeEventListener("touchstart",e,!0),document.body.removeEventListener("mousedown",e,!0))};sy=!0,U()?document.body.addEventListener("click",e,!0):(document.body.addEventListener("touchstart",e,!0),document.body.addEventListener("mousedown",e,!0)),ue.info("detect media autoplay failed, document: https://docs.agora.io/cn/Voice/autoplay_policy_web_ng?platform=Web"),ay.onAutoplayFailed?ay.onAutoplayFailed():ay.onAudioAutoplayFailed?ue.warning("AgoraRTC.onAudioAutoplayFailed has been deprecated in favor of AgoraRTC.onAutoplayFailed.\n\n Please refer to the Agora document to migrate the newer API, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web ."):ue.warning("We have detected a media autoplay failed event, and found out that you haven't implemented AgoraRTC.onAutoplayFailed callback yet.\n\n It will cause audio/video element not playing automatically on some browsers without user interaction, possibly hurting user experiences.\n\n Please refer to the Agora document to properly handle autoplay failed event, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web ."),ay.emit("autoplay-failed")}}function dy(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function uy(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?dy(Object(i),!0).forEach((function(t){np(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):dy(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function hy(e,t,i,r){if(!e)return;const n=de.getBaseInfoBySessionId(e);if(!n)return;const o=n.info,s=Date.now(),a=uy(uy({},o),{},{vid:void 0===o.vid?0:Number(o.vid),lts:s,elapse:s-n.startTime,cbRegistered:ay.onAutoplayFailed||ay.onAudioAutoplayFailed?1:-1,errorMsg:i,mediaType:t,trackId:r,extend:void 0});de.send({type:he.AUTOPLAY_FAILED,data:a},!0)}const ly=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","error"],py=new class{constructor(){this.onAutoplayFailed=void 0,this.elementMap=new Map,this.elementStateMap=new Map,this.elementsNeedToResume=[],this.sinkIdMap=new Map,this.autoResumeAfterInterruption=()=>{Array.from(this.elementMap.entries()).forEach((e=>{let[t,i]=e;const r=this.elementStateMap.get(t),n=i.srcObject.getAudioTracks()[0];V()?n&&"live"===n.readyState&&"running"===f_.curState&&(ue.debug("auto resume after interruption for iOS 15"),i.pause(),i.play()):r&&"paused"===r&&n&&"live"===n.readyState&&"running"===f_.curState&&(ue.debug("auto resume after interruption for iOS"),i.play())}))},this.autoResumeAfterInterruptionOnIOS15_16=()=>{Array.from(this.elementMap.entries()).forEach((e=>{let[t,i]=e;const r=i.srcObject.getAudioTracks()[0];r&&"live"===r.readyState&&(ue.debug("auto resume after interruption inside autoResumeAfterInterruptionOnIOS15"),i.pause(),i.play())}))},this.autoResumeAudioElement(),f_.on(ge.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),f_.on(ge.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),f_.on(ge.STATE_CHANGE,(()=>{g()&&"suspended"===f_.prevState&&"running"===f_.curState&&this.autoResumeAfterInterruption()}))}async setSinkID(e,t){const i=this.elementMap.get(e);if(this.sinkIdMap.set(e,t),i)try{await i.setSinkId(t)}catch(e){throw new n(o.PERMISSION_DENIED,"can not set sink id: "+e.toString())}}play(e,t,i,r){if(this.elementMap.has(t))return;const n=document.createElement("audio");n.autoplay=!0,n.srcObject=new MediaStream([e]),this.bindAudioElementEvents(t,n),this.elementMap.set(t,n),this.elementStateMap.set(t,Ro.INIT),this.setVolume(t,i);const o=this.sinkIdMap.get(t);if(o)try{n.setSinkId(o).catch((e=>{ue.warning("[".concat(t,"] set sink id failed"),e.toString())}))}catch(e){ue.warning("[".concat(t,"] set sink id failed"),e.toString())}const s=n.play();s&&s.then&&s.catch((e=>{r&&hy(r,"audio",e.message,t),ue.warning("audio element play warning",e.toString()),this.elementMap.has(t)&&"NotAllowedError"===e.name&&(ue.warning("detected audio element autoplay failed"),this.elementsNeedToResume.push(n),T((()=>{this.onAutoplayFailed&&this.onAutoplayFailed(),cy()})))}))}updateTrack(e,t){const i=this.elementMap.get(e);i&&(i.srcObject=new MediaStream([t]))}isPlaying(e){return this.elementMap.has(e)&&"playing"===this.elementStateMap.get(e)}setVolume(e,t){const i=this.elementMap.get(e);i&&(t=Math.max(0,Math.min(100,t)),i.volume=t/100)}stop(e){const t=this.elementMap.get(e);if(this.sinkIdMap.delete(e),!t)return;const i=this.elementsNeedToResume.indexOf(t);this.elementsNeedToResume.splice(i,1),t.srcObject=null,t.remove(),this.elementMap.delete(e),this.elementStateMap.delete(e)}bindAudioElementEvents(e,t){ly.forEach((i=>{t.addEventListener(i,(i=>{const r=this.elementStateMap.get(e),n="pause"===i.type?"paused":i.type;if(ue.debug("[".concat(e,"] audio-element-status change ").concat(r," => ").concat(n)),"error"===i.type){const i=null==t?void 0:t.error;i&&ue.error("[".concat(e,"] media error, code: ").concat(i.code,", message: ").concat(i.message))}this.elementStateMap.set(e,n)}))}))}getPlayerState(e){return this.elementStateMap.get(e)||"uninit"}autoResumeAudioElement(){const e=()=>{this.elementsNeedToResume.forEach((e=>{e.play().then((e=>{ue.debug("Auto resume audio element success")})).catch((e=>{ue.warning("Auto resume audio element failed!",e)}))})),this.elementsNeedToResume=[]};j().then((()=>{U()?document.body.addEventListener("click",e,!0):(document.body.addEventListener("touchstart",e,!0),document.body.addEventListener("mousedown",e,!0))}))}};function fy(){return function(e,t,i){const r=i.value;return"function"==typeof r&&(i.value=function(){this._isClosed&&new n(o.INVALID_OPERATION,"[".concat(this.getTrackId(),"] cannot operate a closed track")).print("warning",ue);for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];const s=r.apply(this,t);return s instanceof s_?new s_(((e,t)=>{s.then(e).catch(t)})):s}),i}}var my=hn("Array").values,gy=wn,vy=fi,_y=we,yy=my,Ty=Array.prototype,Ey={DOMTokenList:!0,NodeList:!0},by=_e((function(e){var t=e.values;return e===Ty||_y(Ty,e)&&t===Ty.values||vy(Ey,gy(e))?yy:t}));function Sy(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function ky(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?Sy(Object(i),!0).forEach((function(t){np(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Sy(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}class Iy extends a{constructor(e){super(),this.name="VideoProcessorDestination",this.ID="0",this._source=void 0,this.videoContext=void 0,this.inputTrack=void 0,this.videoContext=e}get kind(){return"video"}get enabled(){return!0}pipe(){throw new n(o.NOT_SUPPORTED,"VideoProcessor cannot pipe to any other Processor")}unpipe(){throw new n(o.NOT_SUPPORTED,"VideoProcessor cannot unpipe to any other Processor")}enable(){}disable(){}updateInput(e){if(e.context!==this.videoContext)throw new Error("ProcessorContext passed to VideoTrack.processorDestination doesn't match it's belonging VideoTrack's context.\nProbably you are making pipeline like this:\nvideoTrack1.pipe(processor).pipe(videoTrack2.processorDestination).");e.track&&e.track!==this.inputTrack&&(this.videoContext.chained=!0,this.inputTrack=e.track,this.emit(Oo.ON_TRACK,e.track))}reset(){this.inputTrack=void 0,this.videoContext.chained=!1,this.emit(Oo.ON_TRACK,void 0)}}class wy extends a{set chained(e){this._chained=e}get chained(){return this._chained}constructor(e,t){super(),this.constraintsMap=new Map,this.statsRegistry=[],this.usageRegistry=[],this.trackId=void 0,this.direction=void 0,this._chained=!1,this.trackId=e,this.direction=t}async getConstraints(){return await B(this,Do.REQUEST_CONSTRAINTS)}async requestApplyConstraints(e,t){var i;return ue.info("processor ".concat(t.name," requestApplyConstraints for ").concat(this.trackId)),e&&this.constraintsMap.set(t,e),l(this,Do.REQUEST_UPDATE_CONSTRAINTS,Array.from(by(i=this.constraintsMap).call(i)))}async requestRevertConstraints(e){var t;if(this.constraintsMap.has(e))return ue.info("processor ".concat(e.name," requestRevertConstraints for ").concat(this.trackId)),this.constraintsMap.delete(e),l(this,Do.REQUEST_UPDATE_CONSTRAINTS,Array.from(by(t=this.constraintsMap).call(t)))}registerStats(e,t,i){this.statsRegistry.find((i=>i.processorID===e.ID&&i.processorName===e.name&&i.type===t))||this.statsRegistry.push({processorName:e.name,processorID:e.ID,type:t,cb:i})}unregisterStats(e,t){const i=this.statsRegistry.findIndex((i=>i.processorID===e.ID&&i.processorName===e.name&&i.type===t));-1!==i&&this.statsRegistry.splice(i,1)}gatherStats(){const e=[];for(const{processorID:t,processorName:i,type:r,cb:s}of this.statsRegistry)try{const n=s();e.push({processorID:t,processorName:i,type:r,stats:n})}catch(e){ue.error(new n(o.UNEXPECTED_ERROR,e.message))}return e}registerUsage(e,t){this.usageRegistry.find((t=>t.processorID===e.ID&&t.processorName===e.name))||this.usageRegistry.push({processorID:e.ID,processorName:e.name,cb:t})}unregisterUsage(e){const t=this.usageRegistry.findIndex((t=>t.processorID===e.ID&&t.processorName===e.name));-1!==t&&this.usageRegistry.splice(t,1)}async gatherUsage(){const e=[];if(!this.chained)return[];for(const{cb:t}of this.usageRegistry)try{let i=t();i instanceof s_&&(i=await i),e.push(ky(ky({},i),{},{direction:this.direction}))}catch(e){ue.error("gather extension usage error",e)}return e}getDirection(){return this.direction}}class Ay extends a{constructor(e){super(),this.name="AudioProcessorDestination",this.ID="0",this.inputTrack=void 0,this.inputNode=void 0,this.audioProcessorContext=void 0,this._source=void 0,this.audioProcessorContext=e}get kind(){return"audio"}get enabled(){return!0}pipe(){throw new n(o.NOT_SUPPORTED,"AudioProcessorDestination cannot pipe to any other Processor")}unpipe(){throw new n(o.NOT_SUPPORTED,"AudioProcessor cannot unpipe to any other Processor")}enable(){}disable(){}reset(){this.inputTrack=void 0,this.inputNode=void 0,this.audioProcessorContext.chained=!1,this.emit(Oo.ON_TRACK,void 0),this.emit(Oo.ON_NODE,void 0)}updateInput(e){if(e.context!==this.audioProcessorContext)throw new Error("ProcessorContext passed to AudioTrack.processorDestination doesn't match it's belonging AudioTrack's context.\n Probably you are making pipeline like this: audioTrack1.pipe(processor).pipe(audioTrack2.processorDestination).");e.track&&this.inputTrack!==e.track&&(this.audioProcessorContext.chained=!0,this.inputTrack=e.track,this.emit(Oo.ON_TRACK,this.inputTrack)),e.node&&this.inputNode!==e.node&&(this.audioProcessorContext.chained=!0,this.inputNode=e.node,this.emit(Oo.ON_NODE,this.inputNode))}}class Oy extends a{set chained(e){this._chained=e}get chained(){return this._chained}constructor(e,t,i){super(),this.constraintsMap=new Map,this.statsRegistry=[],this.audioContext=void 0,this.trackId=void 0,this.direction=void 0,this.usageRegistry=[],this._chained=!1,this.audioContext=e,this.trackId=t,this.direction=i}async getConstraints(){return B(this,Do.REQUEST_CONSTRAINTS)}getAudioContext(){return this.audioContext}async requestApplyConstraints(e,t){var i;return ue.info("processor ".concat(t.name," requestApplyConstraints for ").concat(this.trackId)),e&&this.constraintsMap.set(t,e),l(this,Do.REQUEST_UPDATE_CONSTRAINTS,Array.from(by(i=this.constraintsMap).call(i)))}async requestRevertConstraints(e){var t;if(this.constraintsMap.has(e))return this.constraintsMap.delete(e),l(this,Do.REQUEST_UPDATE_CONSTRAINTS,Array.from(by(t=this.constraintsMap).call(t)))}registerStats(e,t,i){this.statsRegistry.find((i=>i.processorID===e.ID&&i.processorName===e.name&&i.type===t))||this.statsRegistry.push({processorName:e.name,processorID:e.ID,type:t,cb:i})}unregisterStats(e,t){const i=this.statsRegistry.findIndex((i=>i.processorID===e.ID&&i.processorName===e.name&&i.type===t));-1!==i&&this.statsRegistry.splice(i,1)}gatherStats(){const e=[];for(const{processorID:t,processorName:i,type:r,cb:s}of this.statsRegistry)try{const n=s();e.push({processorID:t,processorName:i,type:r,stats:n})}catch(e){ue.error(new n(o.UNEXPECTED_ERROR,e.message))}return e}registerUsage(e,t){this.usageRegistry.find((t=>t.processorID===e.ID&&t.processorName===e.name))||this.usageRegistry.push({processorID:e.ID,processorName:e.name,cb:t})}unregisterUsage(e){const t=this.usageRegistry.findIndex((t=>t.processorID===e.ID&&t.processorName===e.name));-1!==t&&this.usageRegistry.splice(t,1)}async gatherUsage(){const e=[];if(!this.chained)return[];for(const{cb:t}of this.usageRegistry)try{let i=t();i instanceof s_&&(i=await i),e.push(ky(ky({},i),{},{direction:this.direction}))}catch(e){ue.error("gather extension usage error",e)}return e}getDirection(){return this.direction}}class Dy extends a{get isPlayed(){return!0}get isFreeze(){return!1}constructor(){super(),this.context=void 0,this.processSourceNode=void 0,this.outputTrack=void 0,this.processedNode=void 0,this.clonedTrack=void 0,this.outputNode=void 0,this.outputNode=new Cy}setVolume(){}createOutputTrack(){throw new n(o.NOT_SUPPORTED,"can not create output MediaStreamTrack when WebAudio disabled")}getOriginVolumeLevel(){return 0}getAccurateVolumeLevel(){return 0}stopGetAudioBuffer(){}startGetAudioBuffer(){}play(){}stop(){}destroy(){}updateTrack(){}updateOriginTrack(){}createMediaStreamSourceNode(){}}class Cy{disconnect(){}connect(){}}let Ny=null;class Ry{constructor(){this.state="open",this.trigger=void 0,this.tasks=[],ue.debug("[macro-task-queue] is created."),this.trigger=window.setTimeout((()=>{this.state="closed",ue.debug("[macro-task-queue] will be closed, all remaining tasks will execute. [".concat(this.tasks.map((e=>e.key)),"]")),this.trigger=void 0,this.tasks.forEach((e=>{let{func:t}=e;return t()})),this.tasks.length=0,ue.debug("[macro-task-queue] is closed.")}))}enqueue(e,t){"closed"!==this.state&&(this.tasks.push({key:e,func:t}),ue.debug("[macro-task-queue] is queued, current queue ".concat(this.tasks.length,". ").concat("string"==typeof e?e:"")))}runTask(e){if("closed"===this.state)return;const t=this.tasks.findIndex((t=>t.key===e));if(-1!==t){const i=this.tasks.splice(t,1);ue.debug("[macro-task-queue] is unqueued, current queue ".concat(this.tasks.length,". ").concat("string"==typeof e?e:"")),i[0].func()}}release(){this.trigger&&(this.state="closed",clearTimeout(this.trigger),this.trigger=void 0,this.tasks.length=0,ue.debug("[macro-task-queue] is closed."))}}function My(e){return function(t,i,r){var n;const o=null!==(n=r.value)&&void 0!==n?n:r.get,s=function(){Ny&&"open"===Ny.state&&Ny.runTask(e);for(var t=arguments.length,i=new Array(t),r=0;r<t;r++)i[r]=arguments[r];return null==o?void 0:o.apply(this,...i)};return r.value?r.value=s:r.get=s,r}}function Py(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function Ly(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?Py(Object(i),!0).forEach((function(t){np(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Py(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}class xy extends u_{get _source(){return this._trackSource}set _source(e){this._trackSource=e}get processorContext(){return this._processorContext}set processorContext(e){this._processorContext=e}get processorDestination(){return this._processorDestination}set processorDestination(e){this._processorDestination=e}get isPlaying(){return this._useAudioElement?py.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"LocalAudioTrack"}constructor(e,t,i,r,n){super(e,i),this.trackMediaType="audio",this._encoderConfig=void 0,this._trackSource=void 0,this._enabled=!0,this._volume=100,this._useAudioElement=!1,this._bypassWebAudio=!1,this.processor=void 0,this._processorContext=void 0,this._processorDestination=void 0,this._getOriginVolumeLevel=void 0,this._encoderConfig=t,this._getOriginVolumeLevel=!!r;const o=()=>{this.processorContext=new Oy(this._source.context,this.getTrackId(),"local"),this.processorDestination=new Ay(this.processorContext),this.bindProcessorDestinationEvents(),this._source.on(To.UPDATE_SOURCE,(()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:this.processorContext})}))},s=n&&I()&&!v_();if(f("DISABLE_WEBAUDIO")?(this._source=new Dy,this._useAudioElement=!0,this._bypassWebAudio=!0):s?this._source=new Dy:(this._source=new z_(e,!1,this._getOriginVolumeLevel?e:void 0),f("LOCAL_AUDIO_TRACK_USES_WEB_AUDIO")||(this._useAudioElement=!0)),o(),!f("DISABLE_WEBAUDIO")&&s){(Ny||(Ny=new Ry),Ny).enqueue("INIT_WEBAUDIO",(()=>{this._source=new z_(e,!1,this._getOriginVolumeLevel?e:void 0),f("LOCAL_AUDIO_TRACK_USES_WEB_AUDIO")||(this._useAudioElement=!0),o(),this.emit(Eo.UPDATE_TRACK_SOURCE)}))}}setVolume(e){t(e,"volume",0,1e3),this._volume=e,this._source.setVolume(e/100),this._useAudioElement&&py.setVolume(this.getTrackId(),e);try{if(this._bypassWebAudio)return void ue.debug("[".concat(this.getTrackId(),"] setVolume returned because no pass through WebAudio."));const e=this._source.createOutputTrack();this._mediaStreamTrack!==e&&(this._mediaStreamTrack=e,l(this,lo.NEED_REPLACE_TRACK,this).then((()=>{ue.debug("[".concat(this.getTrackId(),"] replace web audio track success"))})).catch((e=>{ue.warning("[".concat(this.getTrackId(),"] replace web audio track failed"),e)})))}catch(e){}}getVolumeLevel(){return this._muted&&this.enabled&&this._getOriginVolumeLevel?this._source.getOriginVolumeLevel():this._source.getAccurateVolumeLevel()}async setPlaybackDevice(e){if(!this._useAudioElement)throw new n(o.NOT_SUPPORTED,"your browser does not support setting the audio output device");await py.setSinkID(this.getTrackId(),e)}async setEnabled(e,t,i){return this._setEnabled(e,t,i)}async _setEnabled(e,t,i){if(!i){if(e===this._enabled)return;this.stateCheck("enabled",e)}if(ue.info("[".concat(this.getTrackId(),"] start setEnabled"),e),e){this._originMediaStreamTrack.enabled=!0;try{i||(this._enabled=!0),await l(this,lo.NEED_ENABLE_TRACK,this),ue.info("[".concat(this.getTrackId(),"] setEnabled to ").concat(e," success"))}catch(e){throw i||(this._enabled=!1),ue.error("[".concat(this.getTrackId(),"] setEnabled to true error"),e.toString()),e}}else{this._originMediaStreamTrack.enabled=!1,i||(this._enabled=!1);try{await l(this,lo.NEED_DISABLE_TRACK,this)}catch(e){throw i||(this._enabled=!0),ue.error("[".concat(this.getTrackId(),"] setEnabled to false error"),e.toString()),e}}}async setMuted(e){e!==this._muted&&(this.stateCheck("muted",e),this._muted=e,this._originMediaStreamTrack.enabled=!e,ue.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(e)),e?await l(this,lo.NEED_MUTE_TRACK,this):await l(this,lo.NEED_UNMUTE_TRACK,this))}getStats(){H((()=>{ue.warning("[deprecated] LocalAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalAudioStats instead")}),"localAudioTrackGetStatsWarning");const e=G(this,lo.GET_STATS);return e||Ly({},So)}setAudioFrameCallback(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4096;if(!e)return this._source.removeAllListeners(To.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(t),this._source.removeAllListeners(To.ON_AUDIO_BUFFER),this._source.on(To.ON_AUDIO_BUFFER,(t=>e(t)))}play(){ue.debug("[".concat(this.getTrackId(),"] start audio playback")),this._useAudioElement?(ue.debug("[".concat(this.getTrackId(),"] start audio playback in element")),py.play(this._mediaStreamTrack,this.getTrackId(),this._volume)):this._source.play()}stop(){ue.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._useAudioElement?py.stop(this.getTrackId()):this._source.stop()}close(){super.close(),this.unbindProcessorDestinationEvents(),this.unbindProcessorContextEvents(),this.unpipe(),this.processorDestination._source&&this.processorDestination._source.unpipe(),this._source.destroy()}_updatePlayerSource(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];ue.debug("[".concat(this.getTrackId(),"] update player source track")),e&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&py.updateTrack(this.getTrackId(),this._mediaStreamTrack)}async _updateOriginMediaStreamTrack(e,t){this._originMediaStreamTrack!==e&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),t&&this._originMediaStreamTrack.stop()),e.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=e,this._muted&&(this._originMediaStreamTrack.enabled=!1),this.processor&&this.processor.updateInput({track:e,context:this.processorContext}),this._mediaStreamTrack!==this._source.outputTrack?(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await l(this,lo.NEED_REPLACE_TRACK,this)):this._source.updateTrack(this._originMediaStreamTrack),this._getOriginVolumeLevel&&this._source.updateOriginTrack(e))}renewMediaStreamTrack(e){return s_.resolve(void 0)}pipe(e){if(this._bypassWebAudio)throw new n(o.INVALID_OPERATION,"Can not process AudioTrack when bypassWebAudio set to true.");if(this.processor===e)return e;if(e._source)throw new n(o.INVALID_OPERATION,"Processor ".concat(e.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=e,this.processor._source=this,e.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),e}unpipe(){var e;if(!this.processor)return;const t=this.processor;null===(e=this._source.processSourceNode)||void 0===e||e.disconnect(),this.processor._source=!1,this.processor=void 0,t.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(Oo.ON_TRACK,(async e=>{e?e!==this._mediaStreamTrack&&(this._mediaStreamTrack=e,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(e),await l(this,lo.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await l(this,lo.NEED_REPLACE_TRACK,this))})),this.processorDestination.on(Oo.ON_NODE,(e=>{this._source.processedNode=e}))}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Oo.ON_TRACK),this.processorDestination.removeAllListeners(Oo.ON_NODE)}unbindProcessorContextEvents(){this.processorContext.removeAllListeners(Do.REQUEST_UPDATE_CONSTRAINTS),this.processorContext.removeAllListeners(Do.REQUEST_CONSTRAINTS)}}a_([My("INIT_WEBAUDIO"),c_("design:type",Object),c_("design:paramtypes",[Object])],xy.prototype,"_source",null),a_([My("INIT_WEBAUDIO"),c_("design:type",Oy),c_("design:paramtypes",[Oy])],xy.prototype,"processorContext",null),a_([My("INIT_WEBAUDIO"),c_("design:type",Ay),c_("design:paramtypes",[Ay])],xy.prototype,"processorDestination",null),a_([le({argsMap:(e,t)=>[e.getTrackId(),t],throttleTime:300}),c_("design:type",Function),c_("design:paramtypes",[Number]),c_("design:returntype",void 0)],xy.prototype,"setVolume",null),a_([le({argsMap:(e,t)=>[e.getTrackId(),t]}),fy(),c_("design:type",Function),c_("design:paramtypes",[String]),c_("design:returntype",s_)],xy.prototype,"setPlaybackDevice",null),a_([F("LocalAudioTrack","_enabledMutex"),le({argsMap:(e,t)=>[e.getTrackId(),t]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Boolean,Object,Boolean]),c_("design:returntype",s_)],xy.prototype,"setEnabled",null),a_([F("LocalAudioTrack","_enabledMutex"),le({argsMap:(e,t)=>[e.getTrackId(),t]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Boolean]),c_("design:returntype",s_)],xy.prototype,"setMuted",null),a_([fy(),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",Object)],xy.prototype,"getStats",null),a_([fy(),c_("design:type",Function),c_("design:paramtypes",[Object,Number]),c_("design:returntype",void 0)],xy.prototype,"setAudioFrameCallback",null),a_([le({argsMap:e=>[e.getTrackId()]}),fy(),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],xy.prototype,"play",null),a_([le({argsMap:e=>[e.getTrackId()]}),fy(),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],xy.prototype,"stop",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],xy.prototype,"close",null),a_([le({argsMap:(e,t)=>[e.getTrackId(),t.name]}),c_("design:type",Function),c_("design:paramtypes",[Object]),c_("design:returntype",Object)],xy.prototype,"pipe",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],xy.prototype,"unpipe",null);class Uy extends xy{get __className__(){return"MicrophoneAudioTrack"}constructor(e,t,i,r){super(e,t.encoderConfig?io(t.encoderConfig):{},r,f("GET_VOLUME_OF_MUTED_AUDIO_TRACK"),!0),this._config=void 0,this._deviceName="default",this._constraints=void 0,this._originalConstraints=void 0,this._enabled=!0,this._config=t,this._constraints=i,this._originalConstraints=i,this._deviceName=e.label,"boolean"==typeof t.bypassWebAudio&&(this._bypassWebAudio=t.bypassWebAudio),(V()||W())&&f_.bindInterruptDetectorTrack(this),this.on(Eo.UPDATE_TRACK_SOURCE,(()=>{this.bindProcessorContextEvents()})),v_()&&this.bindProcessorContextEvents()}async setDevice(e){if(ue.info("[".concat(this.getTrackId(),"] start set device to ").concat(e)),this._enabled)try{const t=await oy.getDeviceById(e),i={};i.audio=Ly({},this._constraints),i.audio.deviceId={exact:e},this._originMediaStreamTrack.stop();let r=null;try{r=await ey(i,this.getTrackId())}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setDevice failed"),e.toString()),r=await ey({audio:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(r.getAudioTracks()[0],!1),e}await this._updateOriginMediaStreamTrack(r.getAudioTracks()[0],!1),this._deviceName=t.label,this._config.microphoneId=e,this._constraints.deviceId={exact:e}}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setDevice error"),e.toString()),e}else try{const t=await oy.getDeviceById(e);this._deviceName=t.label,this._config.microphoneId=e,this._constraints.deviceId={exact:e}}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setDevice error"),e.toString()),e}ue.info("[".concat(this.getTrackId(),"] set device to ").concat(e," success"))}async setEnabled(e,t,i){if(t)return ue.debug("[".concat(this.getTrackId(),"] setEnabled false (do not close microphone)")),await super._setEnabled(e);if(!i){if(e===this._enabled)return;this.stateCheck("enabled",e)}if(ue.info("[".concat(this.getTrackId(),"] start setEnabled"),e),!e){var r;this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop(),null===(r=this._source.clonedTrack)||void 0===r||r.stop(),i||(this._enabled=!1);try{await l(this,lo.NEED_DISABLE_TRACK,this)}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setEnabled false failed"),e.toString()),e}return}const n=Ly({},this._constraints),o=oy.searchDeviceIdByName(this._deviceName);o&&!n.deviceId&&(n.deviceId=o);try{i||(this._enabled=!0);const e=await ey({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(e.getAudioTracks()[0],!1),await l(this,lo.NEED_ENABLE_TRACK,this)}catch(e){throw i||(this._enabled=!1),ue.error("[".concat(this.getTrackId(),"] setEnabled true failed"),e.toString()),e}ue.info("[".concat(this.getTrackId(),"] setEnabled success"))}close(){super.close(),(V()||W())&&f_.unbindInterruptDetectorTrack(this)}onTrackEnded(){if((g()||v())&&this._enabled&&!this._isClosed&&f_.duringInterruption){const e=async()=>{f_.off(ge.IOS_INTERRUPTION_END,e),this._enabled&&!this._isClosed&&(ue.debug("[".concat(this.getTrackId(),"] try capture microphone media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};f_.on(ge.IOS_INTERRUPTION_END,e)}else ue.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(_o.TRACK_ENDED)}async renewMediaStreamTrack(e){const t=e||this._constraints,i=oy.searchDeviceIdByName(this._deviceName);if(i&&!t.deviceId&&(t.deviceId=i),this._constraints=t,this._enabled){this._originMediaStreamTrack.stop();const e=await ey({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(e.getAudioTracks()[0],!0)}}bindProcessorContextEvents(){this.processorContext.on(Do.REQUEST_UPDATE_CONSTRAINTS,(async(e,t,i)=>{try{const i=Object.assign({},this._originalConstraints,...e);await this.renewMediaStreamTrack(i),t()}catch(e){i(e)}})),this.processorContext.on(Do.REQUEST_CONSTRAINTS,(async e=>{e(this._originMediaStreamTrack.getSettings())}))}}a_([le({argsMap:(e,t)=>[e.getTrackId(),t]}),fy(),c_("design:type",Function),c_("design:paramtypes",[String]),c_("design:returntype",s_)],Uy.prototype,"setDevice",null),a_([F("MicrophoneAudioTrack","_enabledMutex"),le({argsMap:(e,t,i)=>[e.getTrackId(),t,i]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Boolean,Boolean,Boolean]),c_("design:returntype",s_)],Uy.prototype,"setEnabled",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],Uy.prototype,"close",null);class Vy extends xy{get __className__(){return"BufferSourceAudioTrack"}constructor(e,t,i,r){super(t.createOutputTrack(),i,r),this.source=void 0,this._bufferSource=void 0,this.source=e,this._bufferSource=t,this._bufferSource.on(To.AUDIO_SOURCE_STATE_CHANGE,(e=>{this.safeEmit(_o.SOURCE_STATE_CHANGE,e)}));try{this._mediaStreamTrack=this._source.createOutputTrack()}catch(e){}}get currentState(){return this._bufferSource.currentState}get duration(){return this._bufferSource.duration}get playbackSpeed(){return this._bufferSource.playbackSpeed}getCurrentTime(){return this._bufferSource.currentTime}startProcessAudioBuffer(e){e&&this._bufferSource.updateOptions(e),this._bufferSource.startProcessAudioBuffer()}pauseProcessAudioBuffer(){this._bufferSource.pauseProcessAudioBuffer()}seekAudioBuffer(e){this._bufferSource.seekAudioBuffer(e)}resumeProcessAudioBuffer(){this._bufferSource.resumeProcessAudioBuffer()}stopProcessAudioBuffer(){this._bufferSource.stopProcessAudioBuffer()}close(){this.source=null,this._bufferSource.destroy(),super.close()}setAudioBufferPlaybackSpeed(e){t(e,"speed",0),this._bufferSource.setAudioBufferPlaybackSpeed(e)}}a_([le({argsMap:(e,t)=>[e.getTrackId(),t,e.duration]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Object]),c_("design:returntype",void 0)],Vy.prototype,"startProcessAudioBuffer",null),a_([le({argsMap:e=>[e.getTrackId()]}),fy(),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],Vy.prototype,"pauseProcessAudioBuffer",null),a_([le({argsMap:e=>[e.getTrackId()]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Number]),c_("design:returntype",void 0)],Vy.prototype,"seekAudioBuffer",null),a_([le({argsMap:e=>[e.getTrackId()]}),fy(),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],Vy.prototype,"resumeProcessAudioBuffer",null),a_([le({argsMap:e=>[e.getTrackId()]}),fy(),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],Vy.prototype,"stopProcessAudioBuffer",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],Vy.prototype,"close",null),a_([le({argsMap:e=>[e.getTrackId()]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Number]),c_("design:returntype",void 0)],Vy.prototype,"setAudioBufferPlaybackSpeed",null);class jy extends xy{get __className__(){return"MixingAudioTrack"}get isActive(){for(const e of this.trackList)if(e._enabled&&!e._isClosed&&!e.muted)return!0;return!1}constructor(){const e=g_().createMediaStreamDestination();super(e.stream.getAudioTracks()[0],void 0,c(8,"track-mix-")),this.trackList=void 0,this.destNode=void 0;try{this._mediaStreamTrack=this._source.createOutputTrack()}catch(e){}this.destNode=e,this.trackList=[]}hasAudioTrack(e){return-1!==this.trackList.indexOf(e)}addAudioTrack(e){-1===this.trackList.indexOf(e)?(ue.debug("add ".concat(e.getTrackId()," to mixing track")),e._source.outputNode.connect(this.destNode),this.trackList.push(e),this.updateEncoderConfig()):ue.debug("track ".concat(e.getTrackId()," is already added"))}removeAudioTrack(e){if(-1!==this.trackList.indexOf(e)){ue.debug("remove ".concat(e.getTrackId()," from mixing track"));try{e._source.outputNode.disconnect(this.destNode)}catch(e){}p(this.trackList,e),this.updateEncoderConfig()}}updateEncoderConfig(){const e={};this.trackList.forEach((t=>{t._encoderConfig&&((t._encoderConfig.bitrate||0)>(e.bitrate||0)&&(e.bitrate=t._encoderConfig.bitrate),(t._encoderConfig.sampleRate||0)>(e.sampleRate||0)&&(e.sampleRate=t._encoderConfig.sampleRate),(t._encoderConfig.sampleSize||0)>(e.sampleSize||0)&&(e.sampleSize=t._encoderConfig.sampleSize),t._encoderConfig.stereo&&(e.stereo=!0))})),this._encoderConfig=e}_updateRtpTransceiver(e){this._rtpTransceiver!==e&&(this._rtpTransceiver=e,this.trackList.forEach((t=>{t instanceof jy?t.emit(vo.TRANSCEIVER_UPDATED,e):t._updateRtpTransceiver(e)})))}}function By(e){const t={};e.facingMode&&(t.facingMode=e.facingMode),e.cameraId&&(t.deviceId={exact:e.cameraId});const i=Zn(e.encoderConfig);return null!=i.width&&(t.width=i.width),null!=i.height&&(t.height=i.height),!K()&&i.frameRate&&(t.frameRate=i.frameRate),z()&&"object"==typeof t.frameRate&&(t.frameRate.max=60),A()&&(t.frameRate={ideal:30,max:30}),t}function Fy(e){const t={};e.screenSourceType&&(t.mediaSource=e.screenSourceType),e.extensionId&&R()&&(t.extensionId=e.extensionId);const{displaySurface:i,selfBrowserSurface:n,surfaceSwitching:o,systemAudio:s}=e;(E(107)||q(107)||Y(93))&&(i&&(r(i,"displaySurface",["browser","window","monitor"]),t.displaySurface=i),n?(r(n,"selfBrowserSurface",["exclude","include"]),t.selfBrowserSurface=n):t.selfBrowserSurface="include",o&&(r(o,"surfaceSwitching",["exclude","include"]),t.surfaceSwitching=o)),(E(105)||q(105)||Y(91))&&s&&(r(s,"systemAudio",["exclude","include"]),t.systemAudio=s),e.electronScreenSourceId&&(t.sourceId=e.electronScreenSourceId);const a=e.encoderConfig?$n(e.encoderConfig):null;return t.mandatory={chromeMediaSource:"desktop",maxWidth:a?a.width:void 0,maxHeight:a?a.height:void 0},a&&(a.frameRate&&("number"==typeof a.frameRate?(t.mandatory.maxFrameRate=a.frameRate,t.mandatory.minFrameRate=a.frameRate):(t.mandatory.maxFrameRate=a.frameRate.max||a.frameRate.ideal||a.frameRate.exact||void 0,t.mandatory.minFrameRate=a.frameRate.min||a.frameRate.ideal||a.frameRate.exact||void 0),t.frameRate=a.frameRate),a.width&&(t.width=a.width),a.height&&(t.height=a.height)),t}function Hy(e){const t={};if(K()||(void 0!==e.AGC&&(t.autoGainControl=e.AGC),void 0!==e.AEC&&(t.echoCancellation=e.AEC),void 0!==e.ANS&&(t.noiseSuppression=e.ANS,R()&&e.ANS&&(t.googHighpassFilter=e.ANS))),e.encoderConfig){const i=io(e.encoderConfig);t.channelCount=i.stereo?2:1,t.sampleRate=i.sampleRate,t.sampleSize=i.sampleSize}return e.microphoneId&&(t.deviceId={exact:e.microphoneId}),P()&&(t.sampleRate=void 0),t}class Gy extends K_{set currentState(e){e!==this._currentState&&(this._currentState=e,this.safeEmit(To.AUDIO_SOURCE_STATE_CHANGE,this._currentState))}get currentState(){return this._currentState}constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};super(),this.audioBuffer=void 0,this.sourceNode=void 0,this.startPlayTime=0,this.startPlayOffset=0,this.pausePlayTime=0,this.options=void 0,this.currentLoopCount=0,this.currentPlaybackSpeed=100,this._currentState="stopped",this.audioBuffer=e,this.options=t,this.startPlayOffset=this.options.startPlayTime||0}createWebAudioDiagram(){return this.context.createGain()}get duration(){return this.audioBuffer?this.audioBuffer.duration:0}get playbackSpeed(){return this.currentPlaybackSpeed}get currentTime(){return this.audioBuffer?"stopped"===this.currentState?0:"paused"===this.currentState?this.pausePlayTime:((this.context.currentTime-this.startPlayTime)*(this.playbackSpeed/100)+this.startPlayOffset)%this.audioBuffer.duration:0}updateOptions(e){"stopped"===this.currentState?(this.options=e,this.startPlayOffset=this.options.startPlayTime||0):ue.warning("can not set audio source options")}startProcessAudioBuffer(){this.sourceNode&&this.stopProcessAudioBuffer(),this.sourceNode=this.createSourceNode(),this.startSourceNode(),this.currentState="playing"}pauseProcessAudioBuffer(){this.sourceNode&&"playing"===this.currentState&&(this.pausePlayTime=this.currentTime,this.sourceNode.onended=null,this.sourceNode.stop(),this.sourceNode.buffer=null,this.sourceNode=this.createSourceNode(),this.currentState="paused")}seekAudioBuffer(e){this.sourceNode&&(this.sourceNode.onended=null,"playing"===this.currentState&&this.sourceNode.stop(),this.sourceNode=this.createSourceNode(),"playing"===this.currentState?(this.startPlayOffset=e,this.startSourceNode()):"paused"===this.currentState&&(this.pausePlayTime=e))}resumeProcessAudioBuffer(){"paused"===this.currentState&&this.sourceNode&&(this.startPlayOffset=this.pausePlayTime,this.pausePlayTime=0,this.startSourceNode(),this.currentState="playing")}stopProcessAudioBuffer(){if(this.sourceNode){this.sourceNode.onended=null;try{this.sourceNode.stop()}catch(e){}this.reset()}}destroy(){this.audioBuffer=null,super.destroy()}setAudioBufferPlaybackSpeed(e){this.sourceNode&&("playing"===this.currentState&&(this.startPlayOffset=this.currentTime,this.startPlayTime=this.context.currentTime),this.sourceNode.playbackRate.value=e/100),this.currentPlaybackSpeed=e}startSourceNode(){this.sourceNode&&this.sourceNode.buffer&&(this.sourceNode.start(0,this.startPlayOffset),this.startPlayTime=this.context.currentTime,this.sourceNode.onended=this.handleSourceNodeEnded.bind(this))}createSourceNode(){const e=this.context.createBufferSource();return e.buffer=this.audioBuffer,e.loop=!!this.options.loop,e.connect(this.outputNode),e.playbackRate.value=this.currentPlaybackSpeed/100,e}handleSourceNodeEnded(){if(this.currentLoopCount+=1,this.options.cycle&&this.options.cycle>this.currentLoopCount)return this.startPlayOffset=0,this.sourceNode=void 0,void this.startProcessAudioBuffer();this.reset()}reset(){this.startPlayOffset=this.options.startPlayTime||0,this.currentState="stopped",this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=void 0),this.currentLoopCount=0}}const Wy=new Map;const Ky=e=>{const t=document.createElement("canvas");return t.width=2,t.height=2,new s_(((i,r)=>{t.toBlob((async e=>{if(t.remove(),e){const r=await zy(e);i({buffer:r,width:t.width,height:t.height})}else r(new n(o.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))}),e,1)}))},zy=async e=>{const t=await e.arrayBuffer();return new Uint8Array(t)};const qy=new class extends a{get visibility(){return document.visibilityState}get lastHiddenTime(){return this._lastHiddenTime}get lastVisibleTime(){return this._lastVisibleTime}constructor(){super(),this._lastHiddenTime=0,this._lastVisibleTime=0,document.addEventListener("visibilitychange",(()=>{"hidden"===document.visibilityState?this._lastHiddenTime=performance.now():this._lastVisibleTime=performance.now(),ue.debug("document visibility went ".concat(document.visibilityState)),this.emit("VISIBILITY_CHANGE",document.visibilityState)}))}};function Yy(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function Jy(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?Yy(Object(i),!0).forEach((function(t){np(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):Yy(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}class Qy{get videoElementStatus(){return this._videoElementStatus}set videoElementStatus(e){e!==this._videoElementStatus&&(ue.debug("[".concat(this.trackId,"] video-element-status change ").concat(this._videoElementStatus," => ").concat(e)),this._videoElementStatus=e)}constructor(e){this.trackId=void 0,this.config=void 0,this.onFirstVideoFrameDecoded=void 0,this.freezeTimeCounterList=[],this.renderFreezeAccTime=0,this.isKeepLastFrame=!1,this.timeUpdatedCount=0,this.freezeTime=0,this.playbackTime=0,this.lastTimeUpdatedTime=0,this.autoplayFailed=!1,this.videoTrack=void 0,this.videoElement=void 0,this.cacheVideoElement=void 0,this.videoElementCheckInterval=void 0,this._videoElementStatus=Ro.NONE,this.isGettingVideoDimensions=!1,this.startGetVideoDimensions=()=>{const e=()=>{if(this.isGettingVideoDimensions=!0,this.videoElement.videoWidth*this.videoElement.videoHeight>4)return ue.debug("[".concat(this.trackId,"] current video dimensions:"),this.videoElement.videoWidth,this.videoElement.videoHeight),void(this.isGettingVideoDimensions=!1);setTimeout(e,500)};!this.isGettingVideoDimensions&&e()},this.autoResumeAfterInterruption=()=>{this.videoTrack&&"live"===this.videoTrack.readyState&&"running"===f_.curState&&(ue.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat(Q())),X()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))},this.handleVideoEvents=e=>{switch(e.type){case"play":case"playing":this.startGetVideoDimensions(),this.videoElementStatus=Ro.PLAYING;break;case"loadeddata":if(this.onFirstVideoFrameDecoded&&this.onFirstVideoFrameDecoded(),this.cacheVideoElement){try{this.cacheVideoElement.srcObject=null,this.cacheVideoElement.remove()}catch(e){}this.cacheVideoElement=void 0}break;case"canplay":this.videoElementStatus=Ro.CANPLAY;break;case"stalled":this.videoElementStatus=Ro.STALLED;break;case"suspend":this.videoElementStatus=Ro.SUSPEND;break;case"pause":this.videoElementStatus=Ro.PAUSED,g()||v()||I()&&this.autoplayFailed||!this.videoTrack||"live"!==this.videoTrack.readyState||(ue.debug("[track-".concat(this.trackId,"] video element paused, auto resume")),this.videoElement.play());break;case"waiting":this.videoElementStatus=Ro.WAITING;break;case"abort":this.videoElementStatus=Ro.ABORT;break;case"ended":this.videoElementStatus=Ro.ENDED;break;case"emptied":this.videoElementStatus=Ro.EMPTIED;break;case"error":{this.videoElementStatus=Ro.ERROR;const e=this.videoElement.error;e&&ue.error("[".concat(this.trackId,"] media error, code: ").concat(e.code,", message: ").concat(e.message));break}case"timeupdate":{const e=performance.now();if(this.timeUpdatedCount+=1,this.timeUpdatedCount<10)return void(this.lastTimeUpdatedTime=e);const t=e-this.lastTimeUpdatedTime,i=this.lastTimeUpdatedTime;if(this.lastTimeUpdatedTime=e,qy.lastVisibleTime<qy.lastHiddenTime||i<qy.lastHiddenTime||i<qy.lastVisibleTime)return;for(t>f("VIDEO_FREEZE_DURATION")&&(this.freezeTime+=t),this.playbackTime+=t;this.playbackTime>=6e3;){this.playbackTime-=6e3;const e=Math.min(6e3,this.freezeTime);this.freezeTimeCounterList.push(e),this.freezeTime=Math.max(0,this.freezeTime-6e3)}break}}},this.autoResumeAfterInterruptionOnIOS15_16=()=>{this.videoTrack&&"live"===this.videoTrack.readyState&&(ue.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat(Q())),X()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))},this.trackId=e.trackId,this.config=e,e.element instanceof HTMLVideoElement?this.videoElement=e.element:this.videoElement=document.createElement("video"),f_.on(ge.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),f_.on(ge.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16)}getVideoElement(){return this.videoElement}getContainerElement(){var e;return null!==(e=this.videoElement.parentElement)&&void 0!==e?e:void 0}updateConfig(e){this.config=e,this.trackId=e.trackId,e.element!==this.videoElement&&(this.destroy(),this.videoElement=e.element),this.videoTrack&&this.initVideoElement()}updateVideoTrack(e){this.videoTrack!==e&&(this.videoTrack=e,this.initVideoElement())}play(e){const t=this.videoElement.play();t&&t.catch&&t.catch((t=>{e&&hy(e,"video",t.message,this.trackId),"NotAllowedError"===t.name?(ue.warning("detected video element autoplay failed",t),this.autoplayFailed=!0,this.handleAutoPlayFailed()):ue.warning("[".concat(this.trackId,"] play warning: "),t)}));const i=m();if(("Safari"===i.name&&15===Number(i.version)||V())&&t&&t.then){const e=()=>{this.config.mirror&&(this.videoElement.style.transform="rotateY(180deg)")};t.then(e).catch(e)}}getCurrentFrame(){const e=document.createElement("canvas");e.width=this.videoElement.videoWidth,e.height=this.videoElement.videoHeight;const t=e.getContext("2d");if(!t)return ue.error("create canvas context failed!"),new ImageData(2,2);t.drawImage(this.videoElement,0,0,e.width,e.height);const i=t.getImageData(0,0,e.width,e.height);return e.remove(),i}async getCurrentFrameToUint8Array(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const i=document.createElement("canvas");i.width=this.videoElement.videoWidth,i.height=this.videoElement.videoHeight;const r=i.getContext("2d");return r?(r.drawImage(this.videoElement,0,0,i.width,i.height),new s_(((r,s)=>{i.toBlob((async e=>{if(i.remove(),e){const t=await zy(e);r({buffer:t,width:i.width,height:i.height})}else s(new n(o.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))}),e,t<0?.1:t>1?1:t)}))):await Ky(e)}destroy(){f_.off(ge.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),f_.off(ge.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),this.videoElement.srcObject=null,this.resetVideoElement(),this.freezeTimeCounterList=[]}initVideoElement(){if(this.videoElementStatus=Ro.INIT,!this.videoElementCheckInterval&&(Xy.forEach((e=>{this.videoElement.addEventListener(e,this.handleVideoEvents)})),this.videoElementCheckInterval=window.setInterval((()=>{Z(this.videoElement)||(this.videoElementStatus=Ro.DESTROYED)}),1e3),f("ENABLE_VIDEO_FRAME_CALLBACK"))){var e,t;let i;const r=(e,t)=>{if(this.videoElementStatus===Ro.PLAYING){if(i){const e=t.presentationTime-i.presentationTime;e>f("VIDEO_FREEZE_DURATION")&&qy.lastVisibleTime>=qy.lastHiddenTime&&i.timestamp>qy.lastVisibleTime&&i.timestamp>qy.lastHiddenTime&&(this.renderFreezeAccTime+=e)}i=Jy(Jy({},t),{},{timestamp:e})}var n,o;f("ENABLE_VIDEO_FRAME_CALLBACK")&&(null===(n=(o=this.videoElement).requestVideoFrameCallback)||void 0===n||n.call(o,r))};null===(e=(t=this.videoElement).requestVideoFrameCallback)||void 0===e||e.call(t,r)}this.videoElement.controls=!1,this.videoElement.setAttribute("playsinline",""),P()&&(this.videoElement.poster="noposter");const i=m();if("Safari"===i.name&&15===Number(i.version)||V()||!this.config.mirror||(this.videoElement.style.transform="rotateY(180deg)"),this.config.fit?this.videoElement.style.objectFit=this.config.fit:this.videoElement.style.objectFit="cover",this.videoElement.setAttribute("muted",""),this.videoElement.muted=!0,this.videoElement.srcObject&&this.videoElement.srcObject instanceof MediaStream){this.videoElement.srcObject.getVideoTracks()[0]!==this.videoTrack&&(this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,A()&&this.videoElement.load())}else this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,A()&&this.videoElement.load();const r=this.videoElement.play();void 0!==r&&r.catch((e=>{ue.debug("[".concat(this.trackId,"] playback interrupted"),e.toString())}))}resetVideoElement(){Xy.forEach((e=>{this.videoElement&&this.videoElement.removeEventListener(e,this.handleVideoEvents)})),this.videoElementCheckInterval&&(window.clearInterval(this.videoElementCheckInterval),this.videoElementCheckInterval=void 0),this.videoElementStatus=Ro.NONE}handleAutoPlayFailed(){const e=t=>{t.preventDefault(),this.videoElement.play().then((()=>{ue.debug("[".concat(this.trackId,"] Video element for trackId:").concat(this.trackId," autoplay resumed."))})).catch((e=>{ue.error(e)})),this.autoplayFailed=!1,U()?document.body.removeEventListener("click",e,!0):(document.body.removeEventListener("touchstart",e,!0),document.body.removeEventListener("mousedown",e,!0))};U()?document.body.addEventListener("click",e,!0):(document.body.addEventListener("touchstart",e,!0),document.body.addEventListener("mousedown",e,!0)),cy()}}const Xy=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","timeupdate","error"];class Zy extends Qy{constructor(e){super(e),this.container=void 0,this.slot=void 0,this.slot=e.element,this.updateConfig(e)}updateConfig(e){this.config=e,this.trackId=e.trackId;const t=e.element;t!==this.slot&&(this.destroy(),this.slot=t),this.createElements()}updateVideoTrack(e){this.videoTrack!==e&&(this.videoTrack=e,this.createElements())}play(e){var t;null!==(t=this.container)&&void 0!==t&&t.contains(this.videoElement)&&super.play(e)}getCurrentFrame(){var e;return null!==(e=this.container)&&void 0!==e&&e.contains(this.videoElement)?super.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameToUint8Array(e){var t;let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return null!==(t=this.container)&&void 0!==t&&t.contains(this.videoElement)?await super.getCurrentFrameToUint8Array(e,i):await Ky(e)}destroy(){if(super.destroy(),this.videoElement.remove(),this.videoElement=document.createElement("video"),this.container){try{this.container.remove(),this.slot.removeChild(this.container)}catch(e){}this.container=void 0}}createElements(){this.container||(this.container=document.createElement("div")),this.container.id="agora-video-player-".concat(this.trackId),this.container.style.width="100%",this.container.style.height="100%",this.container.style.position="relative",this.container.style.overflow="hidden",this.videoTrack?(this.container.style.backgroundColor="black",f("KEEP_LAST_FRAME")&&this.isKeepLastFrame&&this.videoElement.paused&&this.resetVideoElement(),this.mountedVideoElement()):this.unmountedVideoElement(),this.slot.appendChild(this.container)}mountedVideoElement(){var e;!this.container||null!==(e=this.container)&&void 0!==e&&e.contains(this.videoElement)||this.container.appendChild(this.videoElement),super.initVideoElement(),this.videoElement.id="video_".concat(this.trackId),this.videoElement.className="agora_video_player",this.videoElement.style.width="100%",this.videoElement.style.height="100%",this.videoElement.style.position="absolute",this.videoElement.style.left="0",this.videoElement.style.top="0"}unmountedVideoElement(){var e;if(null!==(e=this.container)&&void 0!==e&&e.contains(this.videoElement)){super.resetVideoElement();try{this.container&&this.container.removeChild(this.videoElement)}catch(e){}this.videoElement=document.createElement("video")}}resetVideoElement(){var e;null!==(e=this.container)&&void 0!==e&&e.contains(this.videoElement)&&(super.resetVideoElement(),this.cacheVideoElement=this.videoElement,this.videoElement=document.createElement("video"))}getContainerElement(){return this.container}}function $y(e){return new s_(((t,i)=>{let r=!1;const n=document.createElement("video");n.setAttribute("autoplay",""),n.setAttribute("muted",""),n.muted=!0,n.autoplay=!0,n.setAttribute("playsinline",""),n.setAttribute("style","position: fixed; top: 0; left: 0; width: 1px; height: 1px"),document.body.appendChild(n);const o=g()?"canplay":"playing";n.addEventListener(o,(()=>{const e=n.videoWidth,i=n.videoHeight;!e&&A()||(r=!0,n.srcObject=null,n.remove(),t([e,i]))})),n.srcObject=new MediaStream([e]),n.play().catch($),setTimeout((()=>{r||(n.srcObject=null,n.remove(),t([n.videoWidth,n.videoHeight]))}),4e3)}))}function eT(e,t,i,r){let n;const o=200*Math.pow(i/15,.6)*Math.pow(e*t/640/360,.75),s=o;if("STANDARD_BITRATE"===r)n=4*o;else{if("COMPATIABLE_BITRATE"!==r)return;n=2*o}return[Math.floor(n),Math.floor(s)]}const tT=async(e,t,i)=>await(async(e,t,i)=>{const r=ee(te(""+t+i)).slice(0,16),n=r.slice(0,12),o=await window.crypto.subtle.importKey("raw",r,"AES-GCM",!0,["encrypt"]);return new Uint8Array(await window.crypto.subtle.encrypt({name:"AES-GCM",iv:n},o,e))})(e.buffer,t,i);function iT(e,t){if("VideoFrame"in window&&"TransformStream"in window&&O_().supportWebRTCInsertableStream){const i=new MediaStreamTrackProcessor(e),r=new MediaStreamTrackGenerator({kind:"video"});let n,o,s=Date.now();const a=()=>{c&&(clearInterval(c),c=void 0),n&&(n.close(),n=void 0),e.stop(),o=void 0,r.removeEventListener("ended",a)};let c=window.setInterval((()=>{if(o&&n&&Date.now()-s>(null!=t?t:1e3))try{"live"===r.readyState?o.enqueue(n.clone()):a()}catch(e){a()}}),null!=t?t:1e3);const d=new TransformStream({transform:(e,t)=>{"live"===r.readyState?(o=t,s=Date.now(),void 0===n?(n=e,t.enqueue(e.clone())):(t.enqueue(n),n=e)):e.close()}});return r.addEventListener("ended",a),i.readable.pipeThrough(d).pipeTo(r.writable),r}}function rT(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function nT(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?rT(Object(i),!0).forEach((function(t){np(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):rT(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}class oT extends u_{get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Ro.PLAYING)}get processorContext(){return this._processorContext}set processorContext(e){this._processorContext=e}get __className__(){return"LocalVideoTrack"}constructor(e,t,i,r,n,o){if(super(e,n),this.trackMediaType="video",this._player=void 0,this.isUseScaleResolutionDownBy=!1,this._videoVisibleTimer=null,this._statsTimer=null,this._previousVideoVisibleStatus=void 0,this._clearPreviousVideoVisibleStatus=()=>this._previousVideoVisibleStatus=void 0,this._encoderConfig=void 0,this._scalabilityMode={numSpatialLayers:1,numTemporalLayers:1},this._optimizationMode=void 0,this._videoHeight=void 0,this._videoWidth=void 0,this._forceBitrateLimit=void 0,this._enabled=!0,this.processorDestination=void 0,this._processorContext=void 0,I()){const{width:t,height:i}=e.getSettings();this._videoWidth=t,this._videoHeight=i}else this.updateMediaStreamTrackResolution();if(this._encoderConfig=t,this._scalabilityMode=i,this._optimizationMode=r,this._hints=o||[],-1===this._hints.indexOf(po.SCREEN_TRACK))this.updateBitrateFromProfile();else if(ie(_.CHROME,115)&&re()){const t=iT(e);t&&(ue.info("local screen video track begin to inject frame"),this._mediaStreamTrack=t)}t&&-1!==this._hints.indexOf(po.CUSTOM_TRACK)&&this.setEncoderConfiguration(t),this.processorContext=new wy(this.getTrackId(),"local"),this.processorDestination=new Iy(this.processorContext),this.bindProcessorDestinationEvents()}play(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e){const t=document.getElementById(e);t?e=t:(ue.warning("[".concat(this.getTrackId(),'] can not find "#').concat(e,'" element, use document.body')),e=document.body)}ue.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(e instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(t));const i=nT(nT(nT({},this._getDefaultPlayerConfig()),t),{},{trackId:this.getTrackId(),element:e});this._player?this._player.updateConfig(i):(e instanceof HTMLVideoElement?this._player=new Qy(i):this._player=new Zy(i),this._player.updateVideoTrack(this._mediaStreamTrack)),this._player.play(),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval((()=>{try{const e=this.getVideoElementVisibleStatus();this.safeEmit(_o.VIDEO_ELEMENT_VISIBLE_STATUS,e)}catch(e){}}),f("CHECK_VIDEO_VISIBLE_INTERVAL"))}stop(){this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._statsTimer&&(this.isUseScaleResolutionDownBy=!1,window.clearInterval(this._statsTimer),this._statsTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(),this._player=void 0,ue.debug("[".concat(this.getTrackId(),"] stop video playback")))}async setEnabled(e,t){if(!t){if(e===this._enabled)return;this.stateCheck("enabled",e)}if(ue.info("[".concat(this.getTrackId(),"] start setEnabled"),e),!e){this._originMediaStreamTrack.enabled=!1;try{await l(this,lo.NEED_DISABLE_TRACK,this)}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setEnabled to false error"),e.toString()),e}return t||(this._enabled=!1),void ue.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}this._originMediaStreamTrack.enabled=!0;try{await l(this,lo.NEED_ENABLE_TRACK,this)}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setEnabled to true error"),e.toString()),e}ue.info("[".concat(this.getTrackId(),"] setEnabled to true success")),t||(this._enabled=!0)}async setMuted(e){e!==this._muted&&(this.stateCheck("muted",e),this._muted=e,this._originMediaStreamTrack.enabled=!e,ue.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(e)),e?await l(this,lo.NEED_MUTE_TRACK,this):await l(this,lo.NEED_UNMUTE_TRACK,this))}async setEncoderConfiguration(e,t){if(!this._enabled)throw new n(o.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");if("720p_auto"===e?this.startMonitorStats():this._statsTimer&&(window.clearInterval(this._statsTimer),this._statsTimer=null),e=Zn(e),this._forceBitrateLimit&&(e.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:e.bitrateMax,e.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:e.bitrateMin),e.width||e.height||e.frameRate){const t=By({encoderConfig:e});(I()||g()||v())&&(t.deviceId=void 0),ue.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(e),JSON.stringify(t));try{await this._originMediaStreamTrack.applyConstraints(t),this.updateMediaStreamTrackResolution()}catch(e){const t=new n(o.UNEXPECTED_ERROR,e.toString());throw ue.error("[".concat(this.getTrackId(),"] applyConstraints error"),t.toString()),t}}this._encoderConfig=e,-1===this._hints.indexOf(po.SCREEN_TRACK)&&this.updateBitrateFromProfile();try{await l(this,lo.NEED_UPDATE_VIDEO_ENCODER,this)}catch(e){return e.throw(ue)}}getStats(){H((()=>{ue.warning("[deprecated] LocalVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalVideoStats instead")}),"localVideoTrackGetStatsWarning");const e=G(this,lo.GET_STATS);return e||nT({},ko)}async setBeautyEffect(e){ue.error("LocalVideoTrack.setBeautyEffect was deprecated, please migrate to agora-extension-beauty-effect")}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameImage(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this._player?this._player.getCurrentFrameToUint8Array(e,t):await Ky(e)}async setBitrateLimit(e){if(ue.debug("[".concat(this.getTrackId(),"] set bitrate limit, ").concat(JSON.stringify(e))),e){this._forceBitrateLimit=e,this._encoderConfig&&(this._encoderConfig.bitrateMax?this._encoderConfig.bitrateMax=this._encoderConfig.bitrateMax<e.max_bitrate?this._encoderConfig.bitrateMax:e.max_bitrate:this._encoderConfig.bitrateMax=e.max_bitrate,this._encoderConfig.bitrateMin,this._encoderConfig.bitrateMin=e.min_bitrate);try{await l(this,lo.NEED_UPDATE_VIDEO_ENCODER,this)}catch(e){return e.throw(ue)}}}async setOptimizationMode(e){if("motion"!==e&&"detail"!==e&&"balanced"!==e)return void ue.error(o.INVALID_PARAMS,"optimization mode must be motion, detail or balanced");const t=this._optimizationMode;try{this._optimizationMode=e,await l(this,lo.SET_OPTIMIZATION_MODE,this)}catch(e){throw this._optimizationMode=t,ue.error("[".concat(this.getTrackId(),"] set optimization mode failed"),e.toString()),e}ue.info("[".concat(this.getTrackId(),"] set optimization mode success (").concat(e,")"))}setScalabiltyMode(e){if(1===e.numSpatialLayers&&1!==e.numTemporalLayers)return ue.error(o.INVALID_PARAMS,"scalability mode currently not supported, no SVC."),void(this._scalabilityMode={numSpatialLayers:1,numTemporalLayers:1});this._scalabilityMode=e,ue.info("[".concat(this.getTrackId(),"] set scalability mode success (").concat(e,")"))}updateMediaStreamTrackResolution(){$y(this._originMediaStreamTrack).then((e=>{let[t,i]=e;this._videoHeight=i,this._videoWidth=t})).catch($)}_updatePlayerSource(){this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}_getDefaultPlayerConfig(){return{fit:"contain"}}async setSenderConfiguration(e){if(!this._enabled)throw new n(o.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");ue.debug("[".concat(this.getTrackId(),"] setSenderConfiguration applyConstraints"),JSON.stringify(e)),e=Zn(e),this._forceBitrateLimit&&(e.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:e.bitrateMax,e.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:e.bitrateMin),this._encoderConfig=e,-1===this._hints.indexOf(po.SCREEN_TRACK)&&this.updateBitrateFromProfile();try{await l(this,lo.NEED_UPDATE_VIDEO_ENCODER,this)}catch(e){return e.throw(ue)}}updateBitrateFromProfile(){if(!this._encoderConfig)return;const{width:e,height:t,frameRate:i}=this.getMediaStreamTrackSettings();if(!e||!t||!i)return;const[r,n]=eT(e,t,i,f("BITRATE_ADAPTER_TYPE"))||[void 0,void 0];this._encoderConfig.bitrateMin||this._encoderConfig.bitrateMax||(this._encoderConfig.bitrateMin=n,this._encoderConfig.bitrateMax=r,ue.debug("[".concat(this.getTrackId(),"] update bitrate from profile, [w: ").concat(e,", h: ").concat(t,", fps: ").concat(i,"] => [brMax: ").concat(r,", brMin: ").concat(n,"]")))}getVideoElementVisibleStatus(){try{var e,t;const i=null==this||null===(e=this._player)||void 0===e?void 0:e.getContainerElement(),r={track:this,element:null==this||null===(t=this._player)||void 0===t?void 0:t.getVideoElement(),slot:null==i?void 0:i.parentElement},{element:n,slot:o}=r;if(this.isPlaying&&n instanceof HTMLVideoElement&&o instanceof HTMLElement){const e=ne.checkOneElementVisible(n),t=Object.assign({},e);if(t.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=t.visible;const e=de.reportApiInvoke(null,{tag:u.TRACER,name:d.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});t.visible?e.onSuccess("Video is visible"):e.onSuccess("Invisible because of ".concat(t.reason))}return t}return}catch(e){throw new n(o.GET_VIDEO_ELEMENT_VISIBLE_ERROR,e.message)}}async renewMediaStreamTrack(e){}pipe(e){if(this.processor===e)return e;if(e._source)throw new n(o.INVALID_OPERATION,"Processor ".concat(e.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=e,this.processor._source=this,e.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),e}unpipe(){if(!this.processor)return;const e=this.processor;this.processor._source=void 0,this.processor=void 0,e.reset()}close(){super.close(),this.unbindProcessorDestinationEvents(),this.unbindProcessorContextEvents(),this.unpipe(),this.processorDestination._source&&this.processorDestination._source.unpipe()}clone(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this._encoderConfig;e&&(i=nT(nT({},i),Zn(e))),i=oe(i);const r=c(8,"track-video-cloned-"),n=new oT(t?this._mediaStreamTrack.clone():this._mediaStreamTrack,i,oe(this._scalabilityMode),this._optimizationMode,r,oe(this._hints));return e&&i&&n.setEncoderConfiguration(i),ue.debug("clone video track from ".concat(this.getTrackId()," to ").concat(r,", clone ").concat(t)),n}async replaceTrack(e,t){if(!(e instanceof MediaStreamTrack))throw new n(o.INVALID_PARAMS,"track should be an instance of MediaStreamTrack");if("video"!==e.kind)throw new n(o.INVALID_PARAMS,"track should be a video MediaStreamTrack");await this._updateOriginMediaStreamTrack(e,t,!0),this.updateMediaStreamTrackResolution()}startMonitorStats(){if(!I()&&!g())return;this._statsTimer&&window.clearInterval(this._statsTimer);let e=2,t=Jn[e];let i=-1;let r=Date.now();const n=e=>{e>2||e<0||(r=Date.now(),t=Jn[e],this.setSenderConfiguration(t))};this.isUseScaleResolutionDownBy=!0,this._statsTimer=window.setInterval((()=>{const o=this.getStats(),s=G(this,lo.GET_RTC_STATS);if(o.sendPackets>0&&s){-1===i&&(i=Date.now());const a=Date.now();if(a-i<1e3||a-r<f("PROFILE_SWITCH_INTERVAL"))return;const c=o.sendFrameRate,d=.6*t.frameRate,u=.9*t.frameRate;"number"==typeof c&&c>0&&c<d?e>0&&(e--,n(e),ue.debug("[".concat(this.getTrackId(),"] step down for fps ").concat(c,", switchProfile to ").concat(e))):s.OutgoingAvailableBandwidth<t.bitrateMin?e>0&&(e--,n(e),ue.debug("[".concat(this.getTrackId(),"] step down for OutgoingAvailableBandwidth ").concat(s.OutgoingAvailableBandwidth,", bitrateMin ").concat(t.bitrateMin,", switchProfile to ").concat(e))):"number"==typeof c&&c>u&&e<Jn.length-1&&s.OutgoingAvailableBandwidth>1.2*Jn[e+1].bitrateMin&&(e++,n(e),ue.debug("[".concat(this.getTrackId(),"] step up for fps ").concat(c,", OutgoingAvailableBandwidth ").concat(s.OutgoingAvailableBandwidth,", switchProfile to ").concat(e)))}}),f("CHECK_LOCAL_STATS_INTERVAL"))}bindProcessorDestinationEvents(){this.processorDestination.on(Oo.ON_TRACK,(async e=>{e?e!==this._mediaStreamTrack&&(this._mediaStreamTrack=e,this._updatePlayerSource(),await l(this,lo.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await l(this,lo.NEED_REPLACE_TRACK,this))}))}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Oo.ON_TRACK)}unbindProcessorContextEvents(){this.processorContext.removeAllListeners(Do.REQUEST_UPDATE_CONSTRAINTS),this.processorContext.removeAllListeners(Do.REQUEST_CONSTRAINTS)}}a_([le({argsMap:(e,t,i)=>[e.getTrackId(),"string"==typeof t?t:t instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",i]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Object,Object]),c_("design:returntype",void 0)],oT.prototype,"play",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],oT.prototype,"stop",null),a_([F("LocalVideoTrack","_enabledMutex"),le({argsMap:(e,t)=>[e.getTrackId(),t]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Boolean,Boolean]),c_("design:returntype",s_)],oT.prototype,"setEnabled",null),a_([F("LocalVideoTrack","_enabledMutex"),le({argsMap:(e,t)=>[e.getTrackId(),t]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Boolean]),c_("design:returntype",s_)],oT.prototype,"setMuted",null),a_([le({argsMap:(e,t)=>[e.getTrackId(),t]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Object,Boolean]),c_("design:returntype",s_)],oT.prototype,"setEncoderConfiguration",null),a_([fy(),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",Object)],oT.prototype,"getStats",null),a_([le({argsMap:(e,t,i)=>[e.getTrackId(),t,i]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Boolean,Object]),c_("design:returntype",s_)],oT.prototype,"setBeautyEffect",null),a_([fy(),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",ImageData)],oT.prototype,"getCurrentFrameData",null),a_([fy(),c_("design:type",Function),c_("design:paramtypes",[String,Number]),c_("design:returntype",s_)],oT.prototype,"getCurrentFrameImage",null),a_([fy(),c_("design:type",Function),c_("design:paramtypes",[Object]),c_("design:returntype",s_)],oT.prototype,"setBitrateLimit",null),a_([fy(),c_("design:type",Function),c_("design:paramtypes",[String]),c_("design:returntype",s_)],oT.prototype,"setOptimizationMode",null),a_([fy(),c_("design:type",Function),c_("design:paramtypes",[Object]),c_("design:returntype",void 0)],oT.prototype,"setScalabiltyMode",null),a_([fy(),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],oT.prototype,"updateMediaStreamTrackResolution",null),a_([le({argsMap:(e,t)=>[e.getTrackId(),t.name]}),c_("design:type",Function),c_("design:paramtypes",[Object]),c_("design:returntype",Object)],oT.prototype,"pipe",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],oT.prototype,"unpipe",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],oT.prototype,"close",null),a_([le({argsMap:(e,t,i)=>[e.getTrackId(),t.label,i]}),c_("design:type",Function),c_("design:paramtypes",[MediaStreamTrack,Boolean]),c_("design:returntype",s_)],oT.prototype,"replaceTrack",null),a_([le(),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],oT.prototype,"startMonitorStats",null);class sT extends oT{get __className__(){return"CameraVideoTrack"}constructor(e,t,i,r,n,o){super(e,Zn(t.encoderConfig),r,n,o),this._config=void 0,this._originalConstraints=void 0,this._constraints=void 0,this._enabled=!0,this._deviceName="default",this.tryResumeVideoForIOS15_16WeChat=async()=>{(V()||W())&&!se()&&ae()&&this._enabled&&!this._isClosed&&(ue.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS 15 device on WeChat.")),await this.renewMediaStreamTrack())},this._config=t,this._originalConstraints=i,this._constraints=i,this._deviceName=e.label,this._encoderConfig=Zn(this._config.encoderConfig),f_.on(ge.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),f_.on(ge.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),this.bindProcessorContextEvents()}async setDevice(e){return"string"==typeof e?this._setDeviceById(e):e.deviceId?this._setDeviceById(e.deviceId):e.facingMode?this._setDeviceByFacingModel(e.facingMode):void 0}async _setDeviceById(e){if(ue.info("[".concat(this.getTrackId(),"] set device to ").concat(e)),this._enabled)try{const t=await oy.getDeviceById(e),i={};i.video=nT({},this._constraints),i.video.deviceId={exact:e},i.video.facingMode=void 0,this._originMediaStreamTrack.stop();let r=null;try{r=await ey(i,this.getTrackId())}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setDevice failed"),e.toString()),r=await ey({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(r.getVideoTracks()[0],!1),e}await this._updateOriginMediaStreamTrack(r.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution(),this._deviceName=t.label,this._config.cameraId=e,this._constraints.deviceId={exact:e}}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setDevice error"),e.toString()),e}else try{const t=await oy.getDeviceById(e);this._deviceName=t.label,this._config.cameraId=e,this._constraints.deviceId={exact:e}}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setDevice error"),e.toString()),e}ue.info("[".concat(this.getTrackId(),"] setDevice success"))}async _setDeviceByFacingModel(e){ue.info("[".concat(this.getTrackId(),"] set facingMode ").concat(e));const t={video:nT(nT({},this._constraints),{},{deviceId:void 0,facingMode:{exact:e}})};if(this._enabled){this._originMediaStreamTrack.stop();let e=null;try{e=await ey(t,this.getTrackId())}catch(t){throw ue.error("[".concat(this.getTrackId(),"] setDeviceByFacingModel failed"),t.toString()),e=await ey({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(e.getVideoTracks()[0],!1),t}await this._updateOriginMediaStreamTrack(e.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution()}this._deviceName="",this._config.facingMode=e,this._config.cameraId=void 0,this._constraints=nT({},t.video),ue.info("[".concat(this.getTrackId(),"] setDeviceByFacingModel success"))}async setEnabled(e,t){if(!t){if(e===this._enabled)return;this.stateCheck("enabled",e)}if(ue.info("[".concat(this.getTrackId(),"] start setEnabled"),e),e){try{if(this.isExternalTrack)this._originMediaStreamTrack.enabled=!0;else{const e=await ey({video:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(e.getVideoTracks()[0],!1)}await l(this,lo.NEED_ENABLE_TRACK,this)}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setEnabled true error"),e.toString()),e}this.updateMediaStreamTrackResolution(),ue.info("[".concat(this.getTrackId(),"] setEnabled to true success")),t||(this._enabled=!0)}else{this.isExternalTrack?this._originMediaStreamTrack.enabled=!1:(this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop()),t||(this._enabled=!1);try{await l(this,lo.NEED_DISABLE_TRACK,this)}catch(e){throw ue.error("[".concat(this.getTrackId(),"] setEnabled to false error"),e.toString()),e}ue.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}}async setEncoderConfiguration(e,t){if(!this._enabled)throw new n(o.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");"720p_auto"===e?this.startMonitorStats():this._statsTimer&&(window.clearInterval(this._statsTimer),this._statsTimer=null),e=Zn(e),this._forceBitrateLimit&&(e.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:e.bitrateMax,e.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:e.bitrateMin);const i=ce(this._config);i.encoderConfig=e;const r=By(i);(I()||g()||v())&&(r.deviceId=void 0),ue.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(e),JSON.stringify(r));try{await this._originMediaStreamTrack.applyConstraints(r),this.updateMediaStreamTrackResolution()}catch(e){const t=new n(o.UNEXPECTED_ERROR,e.toString());throw ue.error("[".concat(this.getTrackId(),"] applyConstraints error"),t.toString()),t}this._config=i,this._constraints=r,this._originalConstraints=r,this._encoderConfig=e,-1===this._hints.indexOf(po.SCREEN_TRACK)&&this.updateBitrateFromProfile();try{await l(this,lo.NEED_UPDATE_VIDEO_ENCODER,this)}catch(e){return e.throw(ue)}}_getDefaultPlayerConfig(){return{mirror:!0,fit:"cover"}}onTrackEnded(){if((g()||v())&&this._enabled&&!this._isClosed&&f_.duringInterruption){const e=async()=>{f_.off(ge.IOS_INTERRUPTION_END,e),this._enabled&&!this._isClosed&&(ue.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};f_.on(ge.IOS_INTERRUPTION_END,e)}else ue.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(_o.TRACK_ENDED)}async renewMediaStreamTrack(e){const t=e||this._constraints,i=oy.searchDeviceIdByName(this._deviceName);if(i&&!t.deviceId&&(t.deviceId={exact:i}),this._enabled){const e=await ey({video:t},this.getTrackId());this._constraints=t,await this._updateOriginMediaStreamTrack(e.getVideoTracks()[0],!0),this.updateMediaStreamTrackResolution()}}close(){super.close(),f_.off(ge.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),f_.off(ge.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat)}clone(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this._encoderConfig;e&&(i=nT(nT({},i),Zn(e))),i=oe(i);const r=c(8,"track-cam-cloned-"),n=new sT(t?this._mediaStreamTrack.clone():this._mediaStreamTrack,oe(nT(nT({},this._config),{},{encoderConfig:i})),oe(this._constraints),oe(this._scalabilityMode),this._optimizationMode,r);return e&&i&&n.setEncoderConfiguration(i),ue.debug("clone track from ".concat(this.getTrackId()," to ").concat(r,", clone ").concat(t)),n}bindProcessorContextEvents(){this.processorContext.on(Do.REQUEST_UPDATE_CONSTRAINTS,(async(e,t,i)=>{try{const i=Object.assign({},this._originalConstraints,...e);await this.renewMediaStreamTrack(i),t()}catch(e){i(e)}})),this.processorContext.on(Do.REQUEST_CONSTRAINTS,(async e=>{e(this._originMediaStreamTrack.getSettings())}))}}function aT(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function cT(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?aT(Object(i),!0).forEach((function(t){np(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):aT(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function dT(e){const t=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_CUSTOM_AUDIO_TRACK,options:[e]}),i=new xy(e.mediaStreamTrack,e.encoderConfig?io(e.encoderConfig):{},c(8,"track-cus-"),!1,!0);return ue.info("create custom audio track success with config",e,"trackId",i.getTrackId()),t.onSuccess(i.getTrackId()),i}async function uT(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_MIC_AUDIO_TRACK,options:[e]}),i=Hy(e),r=c(8,"track-mic-");let s=null;ue.info("start create microphone audio track with config",JSON.stringify(e),"trackId",r);try{s=(await ey({audio:i},r)).getAudioTracks()[0]||null}catch(e){throw t.onError(e),e}if(!s){const e=new n(o.UNEXPECTED_ERROR,"can not find track in media stream");return t.onError(e),e.throw(ue)}const a=new Uy(s,e,i,r);return t.onSuccess(a.getTrackId()),ue.info("create microphone audio track success, trackId:",r),a}async function hT(e){var t;const{cacheOnlineFile:i,encoderConfig:r}=e;let{source:s}=e;const a={source:s instanceof AudioBuffer?"AudioBuffer":s instanceof File?null!==(t=File.name)&&void 0!==t?t:"File":s,cacheOnlineFile:i,encoderConfig:r},h=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_BUFFER_AUDIO_TRACK,options:[a]});if(f("DISABLE_WEBAUDIO"))throw new n(o.NOT_SUPPORTED,"can not create BufferSourceAudioTrack when WebAudio disabled");const l=c(8,"track-buf-");ue.info("start create buffer source audio track with config",JSON.stringify(a),"trackId",l);const p=s;if(!(s instanceof AudioBuffer))try{s=await async function(e,t){let i=null;if("string"==typeof e){const t=Wy.get(e);if(t)return ue.debug("use cached audio resource: ",e),t;try{i=(await J((()=>pe.get(e,{responseType:"arraybuffer"})),void 0,void 0,{maxRetryCount:3})).data}catch(e){throw new n(o.FETCH_AUDIO_FILE_FAILED,e.toString())}}else{const t=new s_(((t,i)=>{const r=new FileReader;r.onload=e=>{e.target?t(e.target.result):i(new n(o.READ_LOCAL_AUDIO_FILE_ERROR))},r.onerror=()=>{i(new n(o.READ_LOCAL_AUDIO_FILE_ERROR))},r.readAsArrayBuffer(e)}));i=await t}const r=await y_(i);return"string"==typeof e&&t&&Wy.set(e,r),r}(s,i)}catch(e){return h.onError(e),e.throw(ue)}const m=new Gy(s),g=new Vy(p,m,r?io(r):{},l);return ue.info("create buffer source audio track success, trackId:",l),h.onSuccess(g.getTrackId()),g}function lT(e){const t=new jy;return e.forEach((e=>t.addAudioTrack(e))),t}function pT(e){const t=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_CUSTOM_VIDEO_TRACK,options:[e]}),i=new oT(e.mediaStreamTrack,{width:e.width,height:e.height,frameRate:e.frameRate,bitrateMax:e.bitrateMax,bitrateMin:e.bitrateMin},e.scalabiltyMode?eo(e.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},e.optimizationMode,c(8,"track-cus-"),[po.CUSTOM_TRACK]);return t.onSuccess(i.getTrackId()),ue.info("create custom video track success with config",e,"trackId",i.getTrackId()),i}async function fT(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_CAM_VIDEO_TRACK,options:[cT({},e)]}),i=By(e),r=c(8,"track-cam-");let s=null;const a="720p_auto"===e.encoderConfig;ue.info("start create camera video track with config",JSON.stringify(e),"trackId",r);try{s=(await ey({video:i},r)).getVideoTracks()[0]||null}catch(e){throw t.onError(e),e}if(!s){const e=new n(o.UNEXPECTED_ERROR,"can not find track in media stream");return t.onError(e),e.throw(ue)}e.optimizationMode&&vT(r,s,e,Zn(e.encoderConfig));const h=new sT(s,e,i,e.scalabiltyMode?eo(e.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},e.optimizationMode,r);return a&&h.startMonitorStats(),t.onSuccess(h.getTrackId()),ue.info("create camera video success, trackId:",r),h}async function mT(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const i=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_MIC_AND_CAM_TRACKS,options:[e,t]}),r="720p_auto"===t.encoderConfig,s=By(t),a=Hy(e),h=c(8,"track-mic-"),l=c(8,"track-cam-");let p=null,f=null;ue.info("start create camera video track(".concat(l,") and microphone audio track(").concat(h,") with config, audio: ").concat(JSON.stringify(e),", video: ").concat(JSON.stringify(t)));try{const e=await ey({audio:a,video:s},"".concat(h,"-").concat(l));p=e.getAudioTracks()[0],f=e.getVideoTracks()[0]}catch(e){throw i.onError(e),e}if(!p||!f){const e=new n(o.UNEXPECTED_ERROR,"can not find tracks in media stream");return i.onError(e),e.throw(ue)}t.optimizationMode&&vT(l,f,t,Zn(t.encoderConfig));const m=new Uy(p,e,a,h),g=new sT(f,t,s,t.scalabiltyMode?eo(t.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},t.optimizationMode,l);return r&&g.startMonitorStats(),i.onSuccess([m.getTrackId(),g.getTrackId()]),ue.info("create camera video track(".concat(l,") and microphone audio track(").concat(h,") success")),[m,g]}async function gT(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"disable";const i=de.reportApiInvoke(null,{tag:u.TRACER,name:d.CREATE_SCREEN_VIDEO_TRACK,options:[cT({},e),t]}),r="720p_auto"===e.encoderConfig;e.encoderConfig?"string"==typeof e.encoderConfig||e.encoderConfig.width&&e.encoderConfig.height||(e.encoderConfig.width={max:1920},e.encoderConfig.height={max:1080}):e.encoderConfig="1080p_2";const s=Fy(e),a=c(8,"track-scr-v-");let h=null,l=null;const p=O_();if(!p.supportShareAudio&&"enable"===t){const e=new n(o.NOT_SUPPORTED,"your browser or platform is not support share-screen with audio");return i.onError(e),e.throw(ue)}ue.info("start create screen video track with config",e,"withAudio",t,"trackId",a);try{const e=await ey({screen:s,screenAudio:"auto"===t?p.supportShareAudio:"enable"===t},a);h=e.getVideoTracks()[0]||null,l=e.getAudioTracks()[0]||null}catch(e){throw i.onError(e),e}if(!h){const e=new n(o.UNEXPECTED_ERROR,"can not find track in media stream");return i.onError(e),e.throw(ue)}if(!l&&"enable"===t){h&&h.stop();const e=new n(o.SHARE_AUDIO_NOT_ALLOWED);return i.onError(e),e.throw(ue)}if(e.optimizationMode||(e.optimizationMode="detail"),e.optimizationMode){vT(a,h,e,e.encoderConfig&&$n(e.encoderConfig)||void 0),e.encoderConfig&&"string"!=typeof e.encoderConfig&&(e.encoderConfig.bitrateMin=e.encoderConfig.bitrateMax)}const f=new oT(h,e.encoderConfig?$n(e.encoderConfig):{},e.scalabiltyMode?eo(e.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},e.optimizationMode,a,[po.SCREEN_TRACK]);if(r&&f.startMonitorStats(),!l)return i.onSuccess(f.getTrackId()),ue.info("create screen video track success","video:",f.getTrackId()),f;const m=new xy(l,void 0,c(8,"track-scr-a-"),!1,!0);return i.onSuccess([f.getTrackId(),m.getTrackId()]),ue.info("create screen video track success","video:",f.getTrackId(),"audio:",m.getTrackId()),[f,m]}function vT(e,t,i,r){i.optimizationMode&&(r&&r.width&&r.height?(i.encoderConfig=cT(cT({},r),{},{bitrateMin:r.bitrateMin,bitrateMax:r.bitrateMax}),"motion"!==i.optimizationMode&&"detail"!==i.optimizationMode||(t.contentHint=i.optimizationMode,t.contentHint===i.optimizationMode?ue.debug("[".concat(e,"] set content hint to"),i.optimizationMode):ue.debug("[".concat(e,"] set content hint failed")))):ue.warning("[".concat(e,"] can not apply optimization mode bitrate config, no encoderConfig")))}function _T(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function yT(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?_T(Object(i),!0).forEach((function(t){np(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):_T(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}a_([le({argsMap:(e,t)=>[e.getTrackId(),t]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Object]),c_("design:returntype",s_)],sT.prototype,"setDevice",null),a_([F("CameraVideoTrack","_enabledMutex"),le({argsMap:(e,t)=>[e.getTrackId(),t]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Boolean,Boolean]),c_("design:returntype",s_)],sT.prototype,"setEnabled",null),a_([le({argsMap:(e,t)=>[e.getTrackId(),t]}),fy(),c_("design:type",Function),c_("design:paramtypes",[Object,Boolean]),c_("design:returntype",s_)],sT.prototype,"setEncoderConfiguration",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],sT.prototype,"close",null);class TT extends d_{getUserId(){return this._userId}constructor(e,t,i,r){super(e,"track-".concat(e.kind,"-").concat(t,"-").concat(r.clientId,"_").concat(c(5,""))),this._userId=void 0,this._uintId=void 0,this._isDestroyed=!1,this.store=void 0,this.processor=void 0,this._userId=t,this._uintId=i,this.store=r}_updateOriginMediaStreamTrack(e){this._originMediaStreamTrack=e,this._mediaStreamTrack=e,this._updatePlayerSource(),this.processor&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this.processorContext})}_destroy(){this._isDestroyed=!0,ue.info("[".concat(this.getTrackId(),"] is destroyed")),this.stop(),super.close()}getProcessorStats(){return this.processorContext.gatherStats()}getProcessorUsage(){return this.processorContext.gatherUsage()}}class ET extends TT{get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Ro.PLAYING)}get __className__(){return"RemoteVideoTrack"}constructor(e,t,i,r){super(e,t,i,r),this._videoVisibleTimer=null,this._previousVideoVisibleStatus=void 0,this._clearPreviousVideoVisibleStatus=()=>this._previousVideoVisibleStatus=void 0,this.trackMediaType="video",this._videoWidth=void 0,this._videoHeight=void 0,this._player=void 0,this.processorDestination=void 0,this.processorContext=void 0,this.updateMediaStreamTrackResolution(),this.processorContext=new wy(this.getTrackId(),"remote"),this.processorDestination=new Iy(this.processorContext),this.bindProcessorDestinationEvents()}getStats(){H((()=>{ue.warning("[deprecated] RemoteVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteVideoStats instead")}),"remoteVideoTrackGetStatsWarning");return G(this,lo.GET_STATS)||yT({},Ao)}play(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if("string"==typeof e){const t=document.getElementById(e);t?e=t:(ue.warning("[".concat(this.getTrackId(),'] can not find "#').concat(e,'" element, use document.body')),e=document.body)}ue.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(e instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(t));const i=yT(yT({fit:"cover"},t),{},{trackId:this.getTrackId(),element:e});this._player?this._player.updateConfig(i):(e instanceof HTMLVideoElement?this._player=new Qy(i):this._player=new Zy(i),this._player.updateVideoTrack(this._mediaStreamTrack),this._player.onFirstVideoFrameDecoded=()=>{this.store.subscribe(this.getUserId(),"video",void 0,void 0,Date.now()),this.safeEmit(yo.FIRST_FRAME_DECODED)}),this._player.play(this.store.sessionId||void 0),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval((()=>{try{const e=this.getVideoElementVisibleStatus();this.safeEmit(yo.VIDEO_ELEMENT_VISIBLE_STATUS,e)}catch(e){}}),f("CHECK_VIDEO_VISIBLE_INTERVAL"))}stop(){this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(),this._player=void 0,ue.debug("[".concat(this.getTrackId(),"] stop video playback")))}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}updateMediaStreamTrackResolution(){$y(this._originMediaStreamTrack).then((e=>{let[t,i]=e;this._videoHeight=i,this._videoWidth=t})).catch($)}_updatePlayerSource(){ue.debug("[".concat(this.getTrackId(),"] update player source track")),this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}getVideoElementVisibleStatus(){try{var e,t;const i=null==this||null===(e=this._player)||void 0===e?void 0:e.getContainerElement(),r={track:this,element:null==this||null===(t=this._player)||void 0===t?void 0:t.getVideoElement(),slot:null==i?void 0:i.parentElement},{element:n,slot:o}=r;if(this.isPlaying&&n instanceof HTMLVideoElement&&o instanceof HTMLElement){const e=ne.checkOneElementVisible(n),t=Object.assign({},e);if(t.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=t.visible;const e=de.reportApiInvoke(null,{tag:u.TRACER,name:d.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});t.visible?e.onSuccess("Video is visible"):e.onSuccess("Invisible because of ".concat(t.reason))}return t}return}catch(e){throw new n(o.GET_VIDEO_ELEMENT_VISIBLE_ERROR,e.message)}}pipe(e){if(this.processor===e)return e;if(e._source)throw new n(o.INVALID_OPERATION,"Processor ".concat(e.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=e,this.processor._source=this,e.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),e}unpipe(){if(!this.processor)return;const e=this.processor;this.processor._source=void 0,this.processor=void 0,e.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(Oo.ON_TRACK,(async e=>{e?e!==this._mediaStreamTrack&&(this._mediaStreamTrack=e,this._updatePlayerSource()):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())}))}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Oo.ON_TRACK)}_destroy(){super._destroy(),this.unbindProcessorDestinationEvents()}}a_([le({argsMap:(e,t,i)=>[e.getTrackId(),"string"==typeof t?t:t instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",i]}),c_("design:type",Function),c_("design:paramtypes",[Object,Object]),c_("design:returntype",void 0)],ET.prototype,"play",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],ET.prototype,"stop",null),a_([le({argsMap:(e,t)=>[e.getTrackId(),t.name]}),c_("design:type",Function),c_("design:paramtypes",[Object]),c_("design:returntype",Object)],ET.prototype,"pipe",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],ET.prototype,"unpipe",null);class bT extends TT{get isPlaying(){return this._useAudioElement?py.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"RemoteAudioTrack"}constructor(e,t,i,r){super(e,t,i,r),this.trackMediaType="audio",this._source=void 0,this._useAudioElement=!0,this._volume=100,this.processorContext=void 0,this.processorDestination=void 0,this._played=!1,this._bypassWebAudio=!1,f("DISABLE_WEBAUDIO")?(this._source=new Dy,this._bypassWebAudio=!0,this._useAudioElement=!0):(this._source=new z_(e,!0),f("REMOTE_AUDIO_TRACK_USES_WEB_AUDIO")&&(this._useAudioElement=!1)),this._source.once(To.RECEIVE_TRACK_BUFFER,(()=>{this.safeEmit(yo.FIRST_FRAME_DECODED)})),this.processorContext=new Oy(this._source.context,this.getTrackId(),"remote"),this.processorDestination=new Ay(this.processorContext),this.bindProcessorDestinationEvents(),this._source.on(To.UPDATE_SOURCE,(()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:this.processorContext})}))}setAudioFrameCallback(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4096;if(!e)return this._source.removeAllListeners(To.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(t),this._source.removeAllListeners(To.ON_AUDIO_BUFFER),this._source.on(To.ON_AUDIO_BUFFER,(t=>e(t)))}setVolume(e){this._volume=e,this._useAudioElement?py.setVolume(this.getTrackId(),e):this._source.setVolume(e/100)}async setPlaybackDevice(e){if(!this._useAudioElement)throw new n(o.NOT_SUPPORTED,"your browser does not support setting the audio output device");await py.setSinkID(this.getTrackId(),e)}getVolumeLevel(){return this._source.getAccurateVolumeLevel()}getStats(){H((()=>{ue.warning("[deprecated] RemoteAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteAudioStats instead")}),"remoteAudioTrackGetStatsWarning");return G(this,lo.GET_STATS)||yT({},Io)}play(){ue.debug("[".concat(this.getTrackId(),"] start audio playback")),this._played=!0,this._useAudioElement?(ue.debug("[".concat(this.getTrackId(),"] use audio element to play")),py.play(this._mediaStreamTrack,this.getTrackId(),this._volume,this.store.sessionId||void 0)):this._source.play()}stop(){ue.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._played=!1,this._useAudioElement?py.stop(this.getTrackId()):this._source.stop()}_destroy(){super._destroy(),this._played=!1,this.unbindProcessorDestinationEvents(),this._source.destroy()}_isFreeze(){return this._source.isFreeze}_updatePlayerSource(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];ue.debug("[".concat(this.getTrackId(),"] update player source track")),e&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&py.updateTrack(this.getTrackId(),this._mediaStreamTrack)}pipe(e){if(this._bypassWebAudio)throw new n(o.NOT_SUPPORTED,"can not pipe extension when WebAudio disabled");if(this.processor===e)return e;if(e._source)throw new n(o.INVALID_OPERATION,"Processor ".concat(e.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=e,this.processor._source=this,e.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),e}unpipe(){var e;if(this._bypassWebAudio)throw new n(o.NOT_SUPPORTED,"can not unpipe extension when WebAudio disabled");if(!this.processor)return;const t=this.processor;null===(e=this._source.processSourceNode)||void 0===e||e.disconnect(),this.processor._source=!1,this.processor=void 0,t.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(Oo.ON_TRACK,(async e=>{e?e!==this._mediaStreamTrack&&(this._mediaStreamTrack=e,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(e)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())})),this.processorDestination.on(Oo.ON_NODE,(e=>{this._source.processedNode=e;const t=!e;this._useAudioElement!==t&&(this._played?(this.stop(),this._useAudioElement=t,this.play()):this._useAudioElement=t)}))}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Oo.ON_TRACK),this.processorDestination.removeAllListeners(Oo.ON_NODE)}}var ST;a_([le({argsMap:(e,t)=>[e.getTrackId(),t],throttleTime:300}),c_("design:type",Function),c_("design:paramtypes",[Number]),c_("design:returntype",void 0)],bT.prototype,"setVolume",null),a_([le({argsMap:(e,t)=>[e.getTrackId(),t]}),c_("design:type",Function),c_("design:paramtypes",[String]),c_("design:returntype",s_)],bT.prototype,"setPlaybackDevice",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],bT.prototype,"play",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],bT.prototype,"stop",null),a_([le({argsMap:(e,t)=>[e.getTrackId(),t.name]}),c_("design:type",Function),c_("design:paramtypes",[Object]),c_("design:returntype",Object)],bT.prototype,"pipe",null),a_([le({argsMap:e=>[e.getTrackId()]}),c_("design:type",Function),c_("design:paramtypes",[]),c_("design:returntype",void 0)],bT.prototype,"unpipe",null),function(e){e[e.ONE_BYTE=0]="ONE_BYTE",e[e.TWO_BYTE=1]="TWO_BYTE"}(ST||(ST={}));class kT{constructor(){this._sequence=0,this._startTime=Date.now(),this.isUseOneByte=!0}get startTime(){const e=Date.now()-this._startTime;return e<Math.pow(2,16)?e:(this._startTime+=Math.pow(2,16),this.startTime)}get sequence(){return this._sequence<Math.pow(2,32)?this._sequence++:(this._sequence-=Math.pow(2,32),this.sequence)}serialize(e){const t={commonPacketHeader:{length:0,reserved:0,extension:0,sequence:this.sequence},commonStreamHeader:this.startTime,extension:void 0,payload:e};if(e.byteLength>128){const i=new Uint8Array(4);i.set([1,0,0,0]);const r={id:0,length:4,data:i.buffer},n={profile:this.isUseOneByte?0:1,length:this.isUseOneByte?5:6,datas:[r]};t.commonPacketHeader.extension=1,t.extension=n,t.payload=this.compress(e),t.commonPacketHeader.length=8+(t.extension.length+2)+t.payload.byteLength}else t.commonPacketHeader.length=8+t.payload.byteLength;const i=new ArrayBuffer(t.commonPacketHeader.length),r=new Uint8Array(i),n=new DataView(i);let o=0;if(n.setUint16(o,t.commonPacketHeader.extension<<15|t.commonPacketHeader.reserved<<14|t.commonPacketHeader.length,!0),o+=2,n.setUint32(o,t.commonPacketHeader.sequence,!0),o+=4,n.setUint16(o,t.commonStreamHeader,!0),o+=2,t.extension){const e=this.serializeExtension(t.extension);r.set(new Uint8Array(e),o),o+=e.byteLength}if(r.set(new Uint8Array(t.payload),o),o+=t.payload.byteLength,o!==t.commonPacketHeader.length)throw Error("serialize error!");return i}deserialize(e){if(e.byteLength<4)return new ArrayBuffer(0);const t=new DataView(e);let i=0;const r=t.getUint16(i,!0);i+=2;const n=(32768&r)>>15;t.getUint16(i+2,!0),t.getUint16(i,!0);let o,s;if(i+=4,t.getUint16(i,!0),i+=2,n){s=this.deserializeExtension(e.slice(i)),i+=2+s.length,o=e.slice(i);let t=!1;if(s.datas.length>0){const e=s.datas.find((e=>0===e.id));if(e){t=1==(1&new DataView(e.data).getUint32(0,!0))}}o=t?this.decompress(o):o}else o=e.slice(8);return o}serializeExtension(e){const{profile:t,length:i,datas:r}=e,n=new ArrayBuffer(i+2),o=new Uint8Array(n),s=new DataView(n);let a=0;if(s.setUint8(a++,t),s.setUint8(a++,i),r.forEach((e=>{t?(s.setUint8(a++,e.id),s.setUint8(a++,e.length),o.set(new Uint8Array(e.data),a),a+=e.data.byteLength):(s.setUint8(a++,e.id|e.length<<4),o.set(new Uint8Array(e.data),a),a+=e.data.byteLength)})),a!==i+2)throw Error("serialize extension error, is ".concat(a,"!==").concat(i+2));return n}deserializeExtension(e){const t=new DataView(e);let i=0;const r=t.getUint8(i);i++;const n=t.getUint8(i);i++;const o=r===ST.TWO_BYTE,s=[],a=new DataView(e,2);let c=0;for(;c<n;){let e=0,t=0,i=new ArrayBuffer(0);o?(e=a.getUint8(c),c++,t=a.getUint8(c),c++):(e=15&a.getUint8(c),t=a.getUint8(c)>>4,c++),t>0&&(i=a.buffer.slice(c+2,c+2+t),c+=i.byteLength),s.push({id:e,length:t,data:i})}if(c!==n)throw Error("parse error");return{profile:r,length:n,datas:s}}decompress(e){return fe(new Uint8Array(e))}compress(e){return me(new Uint8Array(e))}}class IT extends a{constructor(e,t){super(),this._version=1,this._type=3,this._config=void 0,this._originDataChannel=void 0,this._dataStreamPacketHeader=new ArrayBuffer(4),this._dataStreamPacketHandler=void 0,this._datachannelEventMap=new Map,this._config=e,t&&(this._originDataChannel=t,this._bandDataChannelEvents(t)),this._initPacketHeader(),this._dataStreamPacketHandler=new kT}get id(){return this._config.id}get ordered(){return this._config.ordered}get maxRetransmits(){return f("DATASTREAM_MAX_RETRANSMITS")}get metadata(){return this._config.metadata}get readyState(){var e,t;return null!==(e=null===(t=this._originDataChannel)||void 0===t?void 0:t.readyState)&&void 0!==e?e:"connecting"}get _originDataChannelId(){var e,t;return null!==(e=null===(t=this._originDataChannel)||void 0===t?void 0:t.id)&&void 0!==e?e:null}getChannelId(){return this.id}getConfig(){return this._config}_close(){this._originDataChannel&&(this._unbindDataChannelEvents(this._originDataChannel),this._originDataChannel=void 0)}async _waitTillOpen(){return new s_(((e,t)=>{if(this._originDataChannel){"open"===this._originDataChannel.readyState&&e();const i=setTimeout((()=>{var e;t(new n(o.DATACHANNEL_CONNECTION_TIMEOUT,"Cannot create datachannel, id: ".concat(null===(e=this._originDataChannel)||void 0===e?void 0:e.id)))}),1e4);this._originDataChannel.onopen=()=>{clearTimeout(i),this._originDataChannel&&this._bandDataChannelEvents(this._originDataChannel),e()},this._originDataChannel.onerror=()=>{throw clearTimeout(i),new n(o.DATACHANNEL_CONNECTION_TIMEOUT)}}else t(new n(o.DATACHANNEL_CONNECTION_TIMEOUT,"cannot find dataChannel"))}))}_updateOriginDataChannel(e){this._originDataChannel=e,this._bandDataChannelEvents(e)}_initPacketHeader(){const e=new DataView(this._dataStreamPacketHeader);e.setUint16(0,this._version),e.setUint8(2,this._type),e.setUint8(3,this._config.id)}_bandDataChannelEvents(e){this._unbindDataChannelEvents(e),[Lo.OPEN,Lo.CLOSE,Lo.ERROR].forEach((t=>{const i=()=>{this.emit(t)};this._datachannelEventMap.set(t,i),e.addEventListener(t,i)}))}_unbindDataChannelEvents(e){Array.from(this._datachannelEventMap.entries()).forEach((t=>{let[i,r]=t;e.removeEventListener(i,r)})),this._datachannelEventMap.clear()}}class wT extends IT{constructor(e){super(e),this._messageListener=void 0,this._messageListener=e=>{if(e.data.byteLength<this._dataStreamPacketHeader.byteLength)throw Error("invalid byteLength: the byte length must exceed "+this._dataStreamPacketHeader.byteLength);const t=e.data.slice(0,this._dataStreamPacketHeader.byteLength);if(new DataView(t).getUint8(3)!==this.id)return;let i=e.data.slice(this._dataStreamPacketHeader.byteLength);i=this._dataStreamPacketHandler.deserialize(i),this.emit(Lo.MESSAGE,i)}}_updateOriginDataChannel(e){super._updateOriginDataChannel(e),this._bandRemoteDataChannelEvents()}_close(){this._originDataChannel&&(this._originDataChannel.removeEventListener("message",this._messageListener),super._close())}_bandRemoteDataChannelEvents(){this._originDataChannel&&this._originDataChannel.addEventListener("message",this._messageListener)}}class AT extends IT{send(e){if(this._originDataChannel){let t=e;t=this._dataStreamPacketHandler.serialize(e);const i=new Uint8Array(this._dataStreamPacketHeader.byteLength+t.byteLength);i.set(new Uint8Array(this._dataStreamPacketHeader),0),i.set(new Uint8Array(t),this._dataStreamPacketHeader.byteLength),this._originDataChannel.send(i.buffer)}}}export{ge as AUDIO_CONTEXT_EVENT,to as AUDIO_ENCODER_CONFIG_SETTINGS,Eo as AUDIO_TRACK_EVENT,Oy as AudioProcessorContext,Ay as AudioProcessorDestination,To as AudioSourceEvents,Vy as BufferSourceAudioTrack,sT as CameraVideoTrack,So as DEFAULT_LOCAL_AUDIO_TRACK_STATS,ko as DEFAULT_LOCAL_VIDEO_TRACK_STATS,wo as DEFAULT_NETWORK_QUALITY_STATS,Io as DEFAULT_REMOTE_AUDIO_TRACK_STATS,Ao as DEFAULT_REMOTE_VIDEO_TRACK_STATS,IT as DataChannel,Lo as DataChannelEvents,ny as DeviceManager,No as DeviceManagerEvent,Co as DeviceManagerState,Z_ as HAS_GUM_AUDIO,$_ as HAS_GUM_VIDEO,xy as LocalAudioTrack,AT as LocalDataChannel,u_ as LocalTrack,_o as LocalTrackEvents,oT as LocalVideoTrack,Po as MediaElementNumStatus,Ro as MediaElementStatus,Uy as MicrophoneAudioTrack,jy as MixingAudioTrack,Do as PROCESSOR_CONTEXT_EVENTS,Oo as PROCESSOR_DESTINATION_EVENTS,bT as RemoteAudioTrack,wT as RemoteDataChannel,go as RemoteStreamFallbackType,mo as RemoteStreamType,TT as RemoteTrack,yo as RemoteTrackEvents,ET as RemoteVideoTrack,X_ as SAFARI_GLOBAL_GUM_LOCK,Jn as SUPPORT_720P_AUTO_CONFIG_LIST,Qn as SUPPORT_SCREEN_ENCODER_CONFIG_LIST,Xn as SUPPORT_SVC_CONFIG_LIST,Yn as SUPPORT_VIDEO_ENCODER_CONFIG_LIST,fo as StreamType,d_ as Track,vo as TrackEvents,po as TrackHint,lo as TrackInternalEvent,wy as VideoProcessorContext,Iy as VideoProcessorDestination,ro as __TRACK_LIST__,no as addTrack,f_ as audioContextState,py as audioElementPlayCenter,E_ as audioTimerLoop,ay as autoPlayGestureEventEmitter,zy as blob2Uint8Array,$y as checkMediaStreamTrackResolution,fy as checkTrackState,hT as createBufferSourceAudioTrack,fT as createCameraVideoTrack,dT as createCustomAudioTrack,pT as createCustomVideoTrack,mT as createMicrophoneAndCameraTracks,uT as createMicrophoneAudioTrack,lT as createMixingAudioTrack,gT as createScreenVideoTrack,y_ as decodeAudioData,oy as deviceManager,Ky as emptyImage2TypedArray,tT as frameData2CryptoBuffer,g_ as getAudioContext,io as getAudioEncoderConfiguration,eT as getBitrateFromResAndFps,O_ as getCompatibility,By as getConstraintsFromCameraConfig,Hy as getConstraintsFromMicrophoneConfig,Fy as getConstraintsFromScreenConfig,J_ as getElectronScreenSources,q_ as getElectronScreenStream,Y_ as getElectronScreenStreamByUserSelect,ey as getLocalStream,eo as getScalabilityConfiguration,$n as getScreenEncoderConfiguration,S_ as getSilenceAudioTrack,I_ as getSilenceSamplesDuration,iT as getStaticTrackStream,Zn as getVideoEncoderConfiguration,iy as handleGetUserMediaError,v_ as hasAudioContext,ao as isAudioEncoderConfiguration,uo as isAudioEncoderConfigurationOrPreset,Mo as isBeautyEffectOptions,bo as isLowStreamParameter,ho as isScreenSourceType,so as isVideoEncoderConfiguration,co as isVideoEncoderConfigurationOrPreset,__ as polyfillAudioNode,oo as removeTrack,cy as requestAutoplayGesture,k_ as silenceScriptProcessHandler,A_ as updateAgoraRTCCompatibility,qy as visibilityWatcher};
|